read_param Module

READ_PARAM module for atomic system and polyatomic molecular system written by Son, Sang-Kil in Jan. 2005, Jun. 2005 re-written by Son, Sang-Kil in Oct. 2007 for polyatomic molecules re-written by Son, Sang-Kil and Hao, Yajiang in Mar. 2014 for xmolecule adapated by Ludger Inhester USAGE: type(Param) :: P call read_parameters( P ) call print_parameters( P, "your title" )

SUBROUTINES: - SR read_parameters( P, calc_string ): read all parameters - SR read_[]_param( P, ARG ) []: molecule, grid, XFEL, DFT, MC, process, plasma, and misc - SR print_parameters( P, title ): print out all relevant parameters - SR print_[]_param( P ) []: molecule, grid, XFEL, DFT, MC, process, plasma, and misc - SR dump_parameters( P ): print all parameters as they are



Variables

Type Visibility Attributes Name Initial
type(c_ptr), public, bind(c, name="0") :: version_str_ptr
type(c_ptr), public, bind(c, name="0") :: build_time_str_ptr
character(len=10), public, parameter :: functional_x_name(7) = (/"LSDA  ", "LDA   ", "Xa    ", "LB    ", "LBa   ", "B     ", "Slater"/)
character(len=10), public, parameter :: functional_c_name(5) = (/"none", "CA  ", "VWN ", "PW  ", "LYP "/)

Derived Types

type, public ::  average_occ

index of MOs for which we average occupation number

Components

Type Visibility Attributes Name Initial
integer, public, allocatable :: mo(:)

type, public ::  gas

general active space specifications orbitals and occupation number limits

Components

Type Visibility Attributes Name Initial
integer, public, allocatable :: orbitals(:)
integer, public :: nmin
integer, public :: nmax

type, public ::  param

Param: all parameters to be used in main program

Components

Type Visibility Attributes Name Initial
integer, public :: calc_type

Calculation type ------------------------------------------------------- - 0 : static (electronic structure) - 1 : ionization dynamics simulated by direct rate equaiton (REQ) solver - 2 : ionization dynamics simulated by Monte Carlo on the fly (MC_FLY) - 3 : ionization and molecular dynamcis by Monte Carlo on the fly

character(len=80), public :: system_name

name of the system

integer, public :: n_nuc

num. of nuclei

integer, public :: charge

total charge of molecule

integer, public :: n_elec

num. of electrons

integer, public :: n_a

num. of alpha and beta electrons

integer, public :: n_b

num. of alpha and beta electrons

integer, public :: n_orb

num. of orbitals (or subshells)

real(kind=long), public, allocatable :: x_nuc(:)

position and mass of the nuclei

real(kind=long), public, allocatable :: y_nuc(:)

position and mass of the nuclei

real(kind=long), public, allocatable :: z_nuc(:)

position and mass of the nuclei

real(kind=long), public, allocatable :: mass_nuc(:)

position and mass of the nuclei

integer, public, allocatable :: charge_nuc(:)

integer charge of the nuclei

real(kind=long), public, allocatable :: fcharge_nuc(:)

fractional charge of the nuclei, spatial width (stddev) of the nuclei charge

real(kind=long), public, allocatable :: sigma_nuc(:)

fractional charge of the nuclei, spatial width (stddev) of the nuclei charge

real(kind=long), public :: e_nuc

nucleus-nucleus repulsion energy

integer, public, allocatable :: n_occ(:)

num. of occupation in [1...N_orb]

real(kind=long), public, allocatable :: f_occ(:)

num. of occupation (fractional) in [1...N_orb]

real(kind=long), public, allocatable :: f_occ_a(:)

num. of alpha occupation in [1...N_orb]

real(kind=long), public, allocatable :: f_occ_b(:)

num. of beta occupation in [1...N_orb]

character(len=80), public, allocatable :: nao_name(:)

the basis name printed out

character(len=5), public, allocatable :: nuc_name(:)

the name of the atom as specified in the input file

character(len=512), public, allocatable :: nao_file_nuc(:)

filename, (1:N_nuc)

integer, public, allocatable :: n_nao_table(:,:)

(0:lmax,1:N_nuc)

integer, public :: n_basis

total num. of basis func.

integer, public :: n_grid

total number of molecular grids

integer, public :: n

number of radial grid points, number of max. angular moment defining the angular grid points

integer, public :: lmax

number of radial grid points, number of max. angular moment defining the angular grid points

real(kind=long), public :: l
real(kind=long), public :: rmax
integer, public, allocatable :: n_ag(:)

(1:N_nuc)

integer, public, allocatable :: lmax_ag(:)

(1:N_nuc)

real(kind=long), public, allocatable :: l_ag(:)

(1:N_nuc)

real(kind=long), public, allocatable :: rmax_ag(:)

(1:N_nuc)

integer, public :: n_gg
integer, public :: lmax_gg
real(kind=long), public :: l_gg
real(kind=long), public :: rmax_gg
real(kind=long), public :: dx_gg
character(len=20), public :: type_radial
character(len=20), public :: type_radial_gg
character(len=20), public :: type_angular
character(len=20), public :: type_angular_gg
logical, public :: yes_overlap
logical, public :: yes_squeeze
logical, public :: yes_global
logical, public :: yes_atomic
logical, public :: yes_cartesian
integer, public :: n_theta_scattering

Num of zenith & azimuth pts used to discretize the scattered particle momentum

integer, public :: n_phi_scattering

Num of zenith & azimuth pts used to discretize the scattered particle momentum

integer, public :: x_type

exchange and correlation functional names

integer, public :: c_type

exchange and correlation functional names

real(kind=long), public :: alpha

parameters for the particular functional

real(kind=long), public :: beta

parameters for the particular functional

logical, public :: yes_oep_kli

turn on or off the OEP-KLI procedure

logical, public :: yes_latter

turn on or off the Latter tail correction

integer, public :: scf_max_iter

the maximum iteration of SCF

real(kind=long), public :: mcscf_gradient_conv

the convergence of SCF with E diff

real(kind=long), public :: scf_energy_conv

the convergence of SCF with E diff

real(kind=long), public :: scf_density_conv

the conv. of SCF with density diff

real(kind=long), public :: scf_mixing

mixing ratio of old and new pot.

logical, public :: yes_load_pot

load the potential from file

integer, public :: lmax_mp

lmax for multipole expansion in direct Coulomb term

real(kind=long), public :: scf_sr_den_conv

the conv. of density before DIIS

real(kind=long), public :: scf_sr_pot_conv

the conv. of eff. pot. before DIIS

logical, public :: yes_diis

turn on DIIS

logical, public :: yes_cphfdiis

turn on/off CPHFDIIS

integer, public :: diis_nvector

num. of stored vector in DIIS

logical, public :: yes_chk_fid_ini

conserve the Ini. MO symmetry of during SCF

logical, public :: yes_population

Mulliken atomic population analysis

logical, public :: yes_population_l

population analysis resolved for L basis functions=S,P,D

logical, public :: yes_stability

stability analysis

logical, public :: yes_levelshift

turn on LevelShifting

logical, public :: yes_levelshiftdynamic

turn on Dynamic LevelShifting

real(kind=long), public :: lshift

level shift

real(kind=long), public :: switchtodiiscriterion(2)

28.07.2015 : (2):density deviation threshold is added

integer, public :: switchtodiisiter
real(kind=long), public :: switchtorstrctcriterion
real(kind=long), public :: switchlevelshiftoffcriterion
logical, public :: yes_rstrct
logical, public :: yes_mom
integer, public :: momtype
integer, public, allocatable :: freeze(:)
integer, public, allocatable :: localize(:)
integer, public, allocatable :: final_hole(:)
integer, public, allocatable :: cis_hole(:)
integer, public, allocatable :: fix_nuc_mo(:)
integer, public, allocatable :: fix_nuc_n(:)
type(average_occ), public, allocatable :: av_occ(:)
type(gas), public, allocatable :: gas(:)
type(gas), public, allocatable :: auger_gas(:)
type(gas), public, allocatable :: ras(:)
integer, public, allocatable :: active_space_mo(:)
integer, public, allocatable :: final_active_space_mo(:)
logical, public :: yes_auto_average
logical, public :: yes_average_rates
logical, public :: yes_average_csf_rates
logical, public :: yes_all_occs
logical, public :: yes_all_multps
logical, public :: yes_sym
logical, public :: yes_nat_orb
integer, public, allocatable :: nat_trans_orb(:)
integer, public :: state_irrep
integer, public, allocatable :: irrep_mo(:)
real(kind=long), public :: eps_overlap
real(kind=long), public :: eps_overlap_single
real(kind=long), public :: eps_00
real(kind=long), public :: eps_lm
real(kind=long), public :: eps_r
real(kind=long), public :: r_cutoff
logical, public :: yes_cutoff
real(kind=long), public :: eps_auger
real(kind=long), public :: eps_teint
real(kind=long), public :: r_softcore
logical, public :: yes_overlap_twocenter
real(kind=long), public :: basissetoverlaplim
logical, public :: yes_hf
logical, public :: yes_mcscf
logical, public :: yes_cis
logical, public :: yes_ci
integer, public :: mcscf_type
integer, public :: multp
integer, public :: state
integer, public :: nstates
real(kind=long), public, allocatable :: sa_weights(:)
logical, public :: yes_state_average
real(kind=long), public, allocatable :: ci_coef(:)
logical, public :: yes_openshell
integer, public :: rohf_variant
logical, public :: yes_unrestricted
real(kind=long), public :: t_ev
logical, public :: yes_thermal
logical, public :: yes_broadening
logical, public :: yes_direct_scf
logical, public :: yes_valgs_occ
logical, public :: yes_valgs_occ_part
integer, public :: ncore
logical, public :: yes_ddiff
integer, public :: n_ddiff_save
logical, public :: yes_gradient
logical, public :: yes_orbital_energy_gradient
logical, public :: fix_geom
logical, public :: yes_atomic_potential
logical, public :: yes_periodic
real(kind=long), public :: unitcell_x
real(kind=long), public :: unitcell_y
real(kind=long), public :: unitcell_z
logical, public :: yes_periodic_fuzzy
integer, public :: n_tr_max
logical, public :: yes_test_fallback
logical, public :: yes_freezebadoverlap
logical, public :: yes_ionization_dynamics
logical, public :: yes_shakeup
logical, public :: yes_fluorescence
logical, public :: yes_auger
logical, public :: yes_process_spin
logical, public :: yes_process_cont
logical, public :: yes_process_ci
logical, public :: yes_process_cis
logical, public :: yes_process_cis_ini
logical, public :: yes_process_cisd
logical, public :: yes_process_ci_relaxed
integer, public :: process_ci_relaxed_variant
integer, public :: cis_limit(2) = (/-1, -1/)
real(kind=long), public :: cis_e_limit = -huge(1)
character(len=512), public :: process_relaxed_wf_filename
logical, public :: yes_auger_random
logical, public :: yes_auger_random_2
logical, public :: yes_pcs
logical, public :: yes_absorption
logical, public :: yes_tpcs
logical, public :: yes_spectra
logical, public :: yes_dispersion
logical, public :: yes_compton
logical, public :: yes_wh_elec_scattering
logical, public :: yes_elec_scattering
logical, public :: yes_scattering
integer, public :: n_proc_max
logical, public :: yes_qmmm
logical, public :: yes_screening
integer, public :: pulse_type
integer, public :: n_time
real(kind=long), public :: pe
real(kind=long), public :: fwhm
real(kind=long), public :: pulse_duration
real(kind=long), public :: pulse_multiple
real(kind=long), public :: dt_au
real(kind=long), public :: t_start_au
real(kind=long), public :: t_end_au
real(kind=long), public :: t_pulse_offset
real(kind=long), public :: n_photons
real(kind=long), public :: width
real(kind=long), public :: fluence
real(kind=long), public :: direction(3)
real(kind=long), public :: pol_axis(3)
integer, public :: n_mc_max = -1
real(kind=long), public :: mc_conv
integer, public :: mc_max_events
integer, public :: mc_step
real(kind=long), public :: mc_dt_ratio
logical, public :: yes_pathway
integer, public :: n_pathway
real(kind=long), public :: mc_ratesum_cutoff
logical, public :: yes_reuse_previousresults
integer, public :: mc_filetablesizemax
integer, public :: mc_nfilesavemax
integer, public :: mc_nvisitthreshold
integer, public :: mc_nprocesstobesaved
integer, public :: mc_dumpoutput
real(kind=long), public :: mc_maxnfaultratio
logical, public :: yes_adapt_for_all_ao
integer, public :: mc_nstepupl_cache
integer, public, allocatable :: mc_seeds(:)
character(len=512), public :: wffilename
character(len=512), public :: wfafilename
character(len=512), public :: wfbfilename
character(len=512), public :: basisfilename
character(len=512), public :: ref_wf
character(len=512), public :: ref_basis
integer, public :: scf_n_iter_large
integer, public :: output = stdout
integer, public :: output2 = stdout
logical, public :: yes_verbose
integer, public :: print_level
integer, public :: nmo_print
logical, public :: yes_test_only
logical, public :: yes_gaussian
logical, public :: yes_print_wf
logical, public :: yes_readini
logical, public :: yes_saveini
logical, public :: yes_readshell
logical, public :: yes_coreini
logical, public :: yes_plot_potential
logical, public :: yes_plot_density
character(len=512), public :: filename
character(len=512), public :: file_out
character(len=512), public :: file_out2
character(len=512), public :: dir_womersley
character(len=512), public :: file_data
character(len=:), public, allocatable :: gto_file_path
character(len=:), public, allocatable :: gto_file_path2
character(len=:), public, allocatable :: gto_file_path_nuc(:)
character(len=:), public, allocatable :: gto_file_path2_nuc(:)
character(len=256), public :: gto_dir
character(len=256), public :: ini_file_path
character(len=256), public :: xatom_path
character(len=256), public :: work_dir_path
character(len=512), public :: molden_file
real(kind=long), public, allocatable :: vini(:)
integer, public :: fluorescence_energy_threshold_ev
real(kind=long), public :: avgsqrovlp_tol(2) = (/-one, -one/)
real(kind=long), public :: guess_overlap_tol(2) = (/0.50_long, -one/)
real(kind=long), public :: mo_fidelity_tol(2) = (/-one, -one/)
logical, public :: yes_dump_ints
logical, public :: yes_use_arpack
logical, public :: yes_use_krylov
logical, public :: yes_use_davidson
integer, public :: davblock
integer, public :: davmax
logical, public :: yes_density_cube
logical, public :: yes_spin_density_cube
integer, public :: nvoxel
integer, public, allocatable :: mo_cube(:)
logical, public :: yes_soscf
real(kind=long), public :: soscf_start(3)
real(kind=long), public, allocatable :: scf_acceptable_convergence(:)
real(kind=long), public :: tstepmd
real(kind=long), public, allocatable :: internuc_dist_upl_au(:)
real(kind=long), public, allocatable :: internuc_dist_lwl_au(:)
real(kind=long), public :: md_maxtime
character(len=256), public :: pulse_file_path
integer, public :: pulse_file_offset
real(kind=long), public :: max_theta

Subroutines

public subroutine read_parameters(p, calc_string, filename)

read all parameters added 31.Mar.2015: minimize print-outs for dynamical calc

Arguments

Type IntentOptional Attributes Name
type(param), intent(inout) :: p
character(len=*), intent(in), optional :: calc_string
character(len=*), intent(in), optional :: filename

public subroutine put_minimal_basis_set(charge, n_nao_each)

places minimal nao functions and counts the shells

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: charge
integer, intent(out) :: n_nao_each(0:)

public subroutine put_basis_function(basis_string, n_nao_each)

counts the number of shells for the basis functions

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: basis_string
integer, intent(out) :: n_nao_each(0:)

public subroutine print_parameters(p, title, iout)

print all parameters

Arguments

Type IntentOptional Attributes Name
type(param), intent(in) :: p
character(len=*), intent(in), optional :: title
integer, intent(in), optional :: iout

public subroutine dump_parameters(p, iout)

print all parameters

Arguments

Type IntentOptional Attributes Name
type(param), intent(in) :: p
integer, intent(in), optional :: iout

public subroutine purge_parameters(p)

purge parameters

Arguments

Type IntentOptional Attributes Name
type(param), intent(inout) :: p