DIPELM 2.0
Loading...
Searching...
No Matches
/scratch.ssd/codes/ukrmol-out-git/source/dipelm/dipelm_procs.f90 File Reference

Modules

module  dipelm_procs

Functions/Subroutines

subroutine dipelm_procs::calculate_oriented_dipoles (dipoles, ion_state, neutral_state, alpha, beta, gamma, ylm, mfdip)
subroutine dipelm_procs::calculate_MFPAD (dipoles, mfdip, ion_state, neutral_state, mfpad)
subroutine dipelm_procs::calculate_LFDip (dipoles, electron_direction, mol_orientation, steps_elec_direction, steps_mol_orientation, ion_state, neutral_state, mfdip)
subroutine dipelm_procs::calculate_MFDip (dipoles, electron_direction, mol_orientation, steps_elec_direction, steps_mol_orientation, ion_state, neutral_state, mfdip)
subroutine dipelm_procs::calculate_cross_section_and_beta_parameters (dipoles, select_ion_states, select_neutral_states, xsec, beta_1, beta_2l, beta_2c)
subroutine dipelm_procs::make_ritchie_AL_coeff (dipoles, ion_state, neutral_state, lbig, p, al_coefficient)
subroutine dipelm_procs::calculate_aligned_cross_section_and_beta_parameters (dipoles, select_ion_states, select_neutral_states, en_start, en_end, kq, akq, xsec, beta_lql, beta_lqc, lbig_max, perfect_aligned)
subroutine dipelm_procs::make_aligned_BLQ_coeff (dipoles, en_start, en_end, ion_state, neutral_state, kq, akq, p, blq_coefficient)
subroutine dipelm_procs::make_perfect_aligned_BLQ_coeff (dipoles, en_start, en_end, ion_state, neutral_state, polarization, n_t, blq_coefficient)
subroutine dipelm_procs::determine_states_selected (no_ion_states, select_ion_states, no_ion_states_all, no_neutral_states, select_neutral_states, no_neutral_states_all)
subroutine dipelm_procs::multiply_in_coulomb_phase_factor (dipoles)

Variables

integer, dimension(maxprop_par) lu_pw_dipoles = 0
 File units holding partial wave dipoles from rsolve.
integer, dimension(maxprop_par) nset_pw_dipoles = 0
 Set number of dipoles on each unit.
character(len=11) format_pw_dipoles = 'FORMATTED'
 Partial wave dipoles file format.
integer output_style = 0
 Choose output file style for randomly oriented molecule observables. 0 = All states in a single file. 1 = A file for each (ion state, neutral state) pair.
integer iprint = 0
 The higher the number the more is written to iwrite.
integer iwrite = 6
 Destination for writing calculation details.
real(idp) first_ip = 0._idp
 Allows adjustment of 1st Ip. If zero calculated Ip is used.
real(idp) ion_charge = 1._idp
 Charge of ionized molecule.
integer no_ion_states = 0
 No of ion states for which to calculate randomly oriented observables.
integer no_neutral_states = 0
 No of neutral states for which to calculate randomly oriented observables.
integer, dimension(:), allocatable select_ion_states
 Define subset of ion states for which to calculate randomly oriented observables.
integer, dimension(:), allocatable select_neutral_states
 Define subset of neutrals states for which to calculate randomly oriented observables.
logical calc_oriented_observables = .false.
 Controls calculation of oriented obsesrvables. If .true. namelist orient nust be supplied.
logical calc_aligned_observables = .false.
 Controls calculation of aligned PADs. If .true. namelist ALIGNINP nust be supplied.
logical smooth = .false.
 Controls gaussian smoothing of dipoles. If .true. namelist smooth must be supplied.
character(len=3) point_group = ''
 Not used currently.
type(moments) dipoles
integer, dimension(2) ngrdproj = [ 31, 4 ]
 No. of photoelectron direction points (no_theta, no_phi)
integer, dimension(3) ngrdalign = [ 1, 1, 1 ]
 No. of orientation (no_alpha, no_beta, no_gamma) points.
integer neutral_state
real(idp), dimension(6) euler_angle_limits = [ 0._idp, 0._idp, 0._idp, 360._idp, 180._idp, 360._idp ]
 Defines the angular range for the molecular orientation.
real(idp), dimension(4) scat_angle_limits = [ 0._idp, 0._idp, 180._idp, 360._idp ]
 Defines the angular range for the photoelectron.
logical legacy_input
integer ierr
integer i
character(len=1000) line
integer no_ion_states_all
integer no_neutral_states_all
integer, dimension(:), allocatable tmp_arr1
integer, dimension(:), allocatable tmp_arr2
logical use_exp_ip
real(idp) calc_1st_ip
complex(idp), dimension(:,:), allocatable u
complex(idp), dimension(:,:), allocatable u1
integer lmax
type(moments) cmp_dipoles
real(idp), dimension(:,:,:), allocatable xsec
real(idp), dimension(:,:,:), allocatable beta_1
real(idp), dimension(:,:,:), allocatable beta_2l
real(idp), dimension(:,:,:), allocatable beta_2c
complex(idp), dimension(:,:,:,:), allocatable cmp_xsec
complex(idp), dimension(:,:,:,:,:), allocatable beta_lql
complex(idp), dimension(:,:,:,:,:), allocatable beta_lqc
real(idp), dimension(:), allocatable time
integer, dimension(:,:), allocatable kq
complex(idp), dimension(:,:), allocatable akq
integer lbig_max
character(len=255) adm_kq_file = 'ADM_KQ.inp'
 Formatted file containing the ADM coefficients for molecules with ADM given by expansion into spherical harmonics.
character(len=255) time_file = 'time.txt'
 Formatted file containing the time steps (one per line). This is only used at output.
real(idp), dimension(:), allocatable select_photon_en
 Photon energies in eV for which the aligned PADs are to be saved to disk as individual files. They must must be from the energy interval specified by [en_start, en_end] below.
integer en_start = 1
integer en_end = -1
 Range of energy indices for which the calculation will be run. Value of en_end <= 0 stands for the last energy index.
integer l_max_write = -1
 Maximum L for which the aligned PADs will be written out to disk. Default is L_max_write = L_max.
logical perfect_aligned = .false.
 If set to .true. then betas for perfectly aligned case are computed for molecular axis in the z-y plane going for 90 points in the angular range [0,180] degrees. The input variables ADM_KQ_file, time_file are ignored.
integer no_ion_states_orient = 0
 No of ion states for which to calculate oriented observables.
integer no_neutral_states_orient = 0
 No of neutral states for which to calculate oriented observables.
integer, dimension(:), allocatable select_ion_states_orient
 Define subset of ion states for which to calculate oriented observables.
integer, dimension(:), allocatable select_neutral_states_orient
 Define subset of neutral states for which to calculate oriented observables.
logical calc_mol_frame_observables = .true.
 Controls calculation of molecular frame observables (alpha = beta = gamma = 0)
logical calc_lab_frame_observables = .false.
 Controls calculation of lab frame observables.
logical write_dipoles = .false.
 Controls writing of Energy-angle form of the dipoles.
integer no_channels
integer no_components
integer no_energies
integer ien
integer ion
integer ine
integer j
integer l
integer m
integer no_alpha
integer no_beta
integer no_gamma
integer no_euler
integer no_theta_phi
integer iangle
integer ia
integer ib
integer ig
complex(idp), dimension(:,:,:), allocatable mfdip
complex(idp), dimension(:,:,:,:), allocatable lfdip
complex(idp), dimension(:,:), allocatable ylm
real(idp), dimension(:,:,:), allocatable mfpad
real(idp), dimension(:,:,:,:), allocatable lfpad
real(idp), dimension(:), allocatable grid_alpha
real(idp), dimension(:), allocatable grid_beta
real(idp), dimension(:), allocatable grid_gamma

Variable Documentation

◆ adm_kq_file

character(len=255) adm_kq_file = 'ADM_KQ.inp'

Formatted file containing the ADM coefficients for molecules with ADM given by expansion into spherical harmonics.

◆ akq

complex(idp), dimension(:,:), allocatable akq

◆ beta_1

real(idp), dimension(:,:,:), allocatable beta_1

◆ beta_2c

real(idp), dimension(:,:,:), allocatable beta_2c

◆ beta_2l

real(idp), dimension(:,:,:), allocatable beta_2l

◆ beta_lqc

complex(idp), dimension(:,:,:,:,:), allocatable beta_lqc

◆ beta_lql

complex(idp), dimension(:,:,:,:,:), allocatable beta_lql

◆ calc_1st_ip

real(idp) calc_1st_ip

◆ cmp_dipoles

type(moments) cmp_dipoles

◆ cmp_xsec

complex(idp), dimension(:,:,:,:), allocatable cmp_xsec

◆ dipoles

type(moments) dipoles

◆ en_end

integer en_end = -1

Range of energy indices for which the calculation will be run. Value of en_end <= 0 stands for the last energy index.

◆ en_start

integer en_start = 1

◆ grid_alpha

real(idp), dimension(:), allocatable grid_alpha

◆ grid_beta

real(idp), dimension(:), allocatable grid_beta

◆ grid_gamma

real(idp), dimension(:), allocatable grid_gamma

◆ i

end else Output is a z dipole components evaluated for the n_en *n_en *n_en points in the ra space for i
Initial value:
1=1:obj.n_atoms
2 c = fscanf(fileid,'%s',1)

◆ ia

integer ia

◆ iangle

integer iangle

◆ ib

integer ib

◆ ien

integer ien

◆ ierr

integer ierr

◆ ig

integer ig

◆ ine

integer ine

◆ ion

integer ion

◆ j

for j
Initial value:
1=1:obj.n_final_states
2 c = fscanf(fileid,'%e',3)

◆ kq

integer, dimension(:,:), allocatable kq

◆ l

for l
Initial value:
1=0:obj.max_l
2 for m=-l:l
3 lm = lm + 1
integer m
Definition dipelm_procs.f90:397
integer l
Definition dipelm_procs.f90:397

◆ l_max_write

integer l_max_write = -1

Maximum L for which the aligned PADs will be written out to disk. Default is L_max_write = L_max.

◆ lbig_max

integer lbig_max

◆ legacy_input

logical legacy_input

◆ lfdip

complex(idp), dimension(:,:,:,:), allocatable lfdip

◆ lfpad

real(idp), dimension(:,:,:,:), allocatable lfpad

◆ line

character(len=1000) line

◆ lmax

integer lmax

◆ m

integer m

◆ mfdip

complex(idp), dimension(:,:,:), allocatable mfdip

◆ mfpad

real(idp), dimension(:,:,:), allocatable mfpad

◆ neutral_state

integer neutral_state

◆ no_alpha

integer no_alpha

◆ no_beta

integer no_beta

◆ no_channels

integer no_channels

◆ no_components

integer no_components

◆ no_energies

integer no_energies

◆ no_euler

integer no_euler

◆ no_gamma

integer no_gamma

◆ no_ion_states_all

integer no_ion_states_all

◆ no_neutral_states_all

integer no_neutral_states_all

◆ no_theta_phi

integer no_theta_phi

◆ perfect_aligned

logical perfect_aligned = .false.

If set to .true. then betas for perfectly aligned case are computed for molecular axis in the z-y plane going for 90 points in the angular range [0,180] degrees. The input variables ADM_KQ_file, time_file are ignored.

◆ select_photon_en

real(idp), dimension(:), allocatable select_photon_en

Photon energies in eV for which the aligned PADs are to be saved to disk as individual files. They must must be from the energy interval specified by [en_start, en_end] below.

◆ time

real(idp), dimension(:), allocatable time

◆ time_file

character(len=255) time_file = 'time.txt'

Formatted file containing the time steps (one per line). This is only used at output.

◆ tmp_arr1

integer, dimension(:), allocatable tmp_arr1

◆ tmp_arr2

integer, dimension(:), allocatable tmp_arr2

◆ u

complex(idp), dimension(:,:), allocatable u

◆ u1

complex(idp), dimension(:,:), allocatable u1

◆ use_exp_ip

logical use_exp_ip

◆ xsec

real(idp), dimension(:,:,:), allocatable xsec

◆ ylm

complex(idp), dimension(:,:), allocatable ylm