process Module

process module adapted from xatom



Derived Types

type, public ::  process_data

process information

Components

Type Visibility Attributes Name Initial
integer, public, allocatable :: occ(:)
integer, public :: n_process
real(kind=long), public :: e_tot
character(len=1), public, allocatable :: tag(:)
real(kind=long), public, allocatable :: value(:)
integer, public, allocatable :: e_ev(:)
integer, public, allocatable :: occ_up(:,:)
integer, public, allocatable :: occ_down(:,:)
integer, public, allocatable :: initial_occ(:,:)
integer, public, allocatable :: initial_csf_num(:)
integer, public, allocatable :: final_csf_num(:)
integer, public, allocatable :: initial_irrep(:)
integer, public, allocatable :: initial_spin_multp(:)
integer, public, allocatable :: initial_state_num(:)
integer, public, allocatable :: final_irrep(:)
integer, public, allocatable :: final_spin_multp(:)
integer, public, allocatable :: final_state_num(:)
real(kind=long), public, allocatable :: e_au(:)

Functions

public function create_process(occ, n_proc_max, spin, ci) result(s)

creates process structure

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: occ(:)
integer, intent(in) :: n_proc_max
logical, intent(in), optional :: spin
logical, intent(in), optional :: ci

Return Value type(process_data)

public function occ_process(s, k) result(occ_final)

returns the final occupation numbers for a specific

Arguments

Type IntentOptional Attributes Name
type(process_data), intent(in) :: s
integer, intent(in) :: k

Return Value integer, (size(s%occ))


Subroutines

public subroutine add_process(p, f, s, str, value, e, i, j, jp, initial_occ, initial_multp, initial_csf_num, initial_state_num, initial_irrep, final_multp, final_csf_num, final_state_num, final_irrep)

add one process to S - S%value(k): rate or cross section - S%E_eV(k): transition energy in eV, rounded to nearest integer - S%N_process is increased by one. - S%tag is given by P, V, A, F, 2 (two-photon abs.), 3 (three-photon), ...

Read more…

Arguments

Type IntentOptional Attributes Name
type(param), intent(in) :: p
type(wf_data), intent(in) :: f
type(process_data), intent(inout) :: s
character(len=*), intent(in) :: str
real(kind=long), intent(in) :: value
real(kind=long), intent(in) :: e
integer, intent(in) :: i
integer, intent(in), optional :: j
integer, intent(in), optional :: jp
integer, intent(in), optional :: initial_occ(:)
integer, intent(in), optional :: initial_multp
integer, intent(in), optional :: initial_csf_num
integer, intent(in), optional :: initial_state_num
integer, intent(in), optional :: initial_irrep
integer, intent(in), optional :: final_multp
integer, intent(in), optional :: final_csf_num
integer, intent(in), optional :: final_state_num
integer, intent(in), optional :: final_irrep

public subroutine sum_equivalent_configuration(s)

sum up process data over equivalent configurations

Arguments

Type IntentOptional Attributes Name
type(process_data), intent(inout) :: s

public subroutine purge_process(s)

purges process data

Arguments

Type IntentOptional Attributes Name
type(process_data), intent(inout) :: s

public subroutine print_process(s, output)

Arguments

Type IntentOptional Attributes Name
type(process_data), intent(in) :: s
integer, intent(in) :: output