blob: d8fa73d6991c27bb8ef6b8c2aa77ce73713fb23e [file] [log] [blame]
module state_matrices
implicit none
private
public :: state_matrix_copy
public :: state_matrix_t
public :: matrix_element_t
type :: matrix_element_t
private
integer, dimension(:), allocatable :: f
end type matrix_element_t
type :: state_matrix_t
private
type(matrix_element_t), dimension(:), allocatable :: me
end type state_matrix_t
type :: polarization_t
logical :: polarized = .false.
integer :: spin_type = 0
integer :: multiplicity = 0
type(state_matrix_t) :: state
end type polarization_t
contains
function polarization_copy (pol_in) result (pol)
type(polarization_t) :: pol
type(polarization_t), intent(in) :: pol_in
!!! type(state_matrix_t) :: state_dummy
pol%polarized = pol_in%polarized
pol%spin_type = pol_in%spin_type
pol%multiplicity = pol_in%multiplicity
!!! state_dummy = state_matrix_copy (pol_in%state)
!!! pol%state = state_dummy
pol%state = state_matrix_copy (pol_in%state)
end function polarization_copy
function state_matrix_copy (state_in) result (state)
type(state_matrix_t) :: state
type(state_matrix_t), intent(in), target :: state_in
end function state_matrix_copy
end module state_matrices