mirror of
https://github.com/cp2k/cp2k.git
synced 2026-07-29 06:35:28 -04:00
Add more initializers (#2896)
This commit is contained in:
parent
28fd90ebcf
commit
2968ed4d97
47 changed files with 1369 additions and 1494 deletions
|
|
@ -31,20 +31,20 @@ MODULE al_system_types
|
|||
|
||||
! **************************************************************************************************
|
||||
TYPE al_thermo_type
|
||||
INTEGER :: degrees_of_freedom
|
||||
REAL(KIND=dp) :: nkt
|
||||
REAL(KIND=dp) :: chi
|
||||
REAL(KIND=dp) :: mass
|
||||
REAL(KIND=dp) :: region_kin_energy
|
||||
INTEGER :: degrees_of_freedom = 0
|
||||
REAL(KIND=dp) :: nkt = 0.0_dp
|
||||
REAL(KIND=dp) :: chi = 0.0_dp
|
||||
REAL(KIND=dp) :: mass = 0.0_dp
|
||||
REAL(KIND=dp) :: region_kin_energy = 0.0_dp
|
||||
END TYPE al_thermo_type
|
||||
|
||||
! **************************************************************************************************
|
||||
TYPE al_system_type
|
||||
INTEGER :: region, glob_num_al, loc_num_al
|
||||
REAL(KIND=dp) :: tau_nh, tau_langevin, dt_fact
|
||||
REAL(KIND=dp) :: dt
|
||||
TYPE(al_thermo_type), POINTER :: nvt(:)
|
||||
TYPE(map_info_type), POINTER :: map_info
|
||||
INTEGER :: region = 0, glob_num_al = 0, loc_num_al = 0
|
||||
REAL(KIND=dp) :: tau_nh = 0.0_dp, tau_langevin = 0.0_dp, dt_fact = 0.0_dp
|
||||
REAL(KIND=dp) :: dt = 0.0_dp
|
||||
TYPE(al_thermo_type), POINTER :: nvt(:) => NULL()
|
||||
TYPE(map_info_type), POINTER :: map_info => NULL()
|
||||
END TYPE al_system_type
|
||||
|
||||
! *** Global parameters ***
|
||||
|
|
|
|||
|
|
@ -53,10 +53,10 @@ MODULE almo_scf_diis_types
|
|||
|
||||
TYPE almo_scf_diis_type
|
||||
|
||||
INTEGER :: diis_env_type
|
||||
INTEGER :: diis_env_type = 0
|
||||
|
||||
INTEGER :: buffer_length
|
||||
INTEGER :: max_buffer_length
|
||||
INTEGER :: buffer_length = 0
|
||||
INTEGER :: max_buffer_length = 0
|
||||
!INTEGER, DIMENSION(:), ALLOCATABLE :: history_index
|
||||
|
||||
TYPE(dbcsr_type), DIMENSION(:), ALLOCATABLE :: m_var
|
||||
|
|
@ -70,12 +70,12 @@ MODULE almo_scf_diis_types
|
|||
TYPE(domain_submatrix_type), DIMENSION(:), ALLOCATABLE :: m_b
|
||||
|
||||
! insertion point
|
||||
INTEGER :: in_point
|
||||
INTEGER :: in_point = 0
|
||||
|
||||
! in order to calculate the overlap between error vectors
|
||||
! it is desirable to know tensorial properties of the error
|
||||
! vector, e.g. convariant, contravariant, orthogonal
|
||||
INTEGER :: error_type
|
||||
INTEGER :: error_type = 0
|
||||
|
||||
END TYPE almo_scf_diis_type
|
||||
|
||||
|
|
|
|||
|
|
@ -39,11 +39,11 @@ MODULE almo_scf_lbfgs_types
|
|||
lbfgs_history_type
|
||||
|
||||
TYPE lbfgs_history_type
|
||||
INTEGER :: nstore
|
||||
INTEGER :: nstore = 0
|
||||
! istore counts the total number of action=2 pushes
|
||||
! istore is designed to become more than nstore eventually
|
||||
! there are two counters: the main variable and gradient
|
||||
INTEGER, DIMENSION(2) :: istore
|
||||
INTEGER, DIMENSION(2) :: istore = 0
|
||||
TYPE(dbcsr_type), DIMENSION(:, :, :), ALLOCATABLE :: matrix
|
||||
REAL(KIND=dp), DIMENSION(:, :), ALLOCATABLE :: rho
|
||||
END TYPE lbfgs_history_type
|
||||
|
|
|
|||
|
|
@ -48,11 +48,11 @@ MODULE almo_scf_types
|
|||
! methods that add penalty terms to the energy functional
|
||||
TYPE penalty_type
|
||||
|
||||
REAL(KIND=dp) :: final_determinant, penalty_strength, &
|
||||
determinant_tolerance, penalty_strength_dec_factor, &
|
||||
compactification_filter_start
|
||||
INTEGER :: operator_type
|
||||
LOGICAL :: virtual_nlmos
|
||||
REAL(KIND=dp) :: final_determinant = 0.0_dp, penalty_strength = 0.0_dp, &
|
||||
determinant_tolerance = 0.0_dp, penalty_strength_dec_factor = 0.0_dp, &
|
||||
compactification_filter_start = 0.0_dp
|
||||
INTEGER :: operator_type = 0
|
||||
LOGICAL :: virtual_nlmos = .FALSE.
|
||||
|
||||
END TYPE penalty_type
|
||||
|
||||
|
|
@ -60,41 +60,41 @@ MODULE almo_scf_types
|
|||
TYPE almo_analysis_type
|
||||
|
||||
! switch analysis on/off
|
||||
LOGICAL :: do_analysis
|
||||
LOGICAL :: do_analysis = .FALSE.
|
||||
|
||||
INTEGER :: frozen_mo_energy_term
|
||||
INTEGER :: frozen_mo_energy_term = 0
|
||||
|
||||
END TYPE almo_analysis_type
|
||||
|
||||
TYPE optimizer_options_type
|
||||
|
||||
REAL(KIND=dp) :: eps_error, &
|
||||
eps_error_early, &
|
||||
lin_search_eps_error, &
|
||||
lin_search_step_size_guess, &
|
||||
rho_do_not_update, &
|
||||
model_grad_norm_ratio, &
|
||||
initial_trust_radius, &
|
||||
max_trust_radius, &
|
||||
neglect_threshold
|
||||
REAL(KIND=dp) :: eps_error = 0.0_dp, &
|
||||
eps_error_early = 0.0_dp, &
|
||||
lin_search_eps_error = 0.0_dp, &
|
||||
lin_search_step_size_guess = 0.0_dp, &
|
||||
rho_do_not_update = 0.0_dp, &
|
||||
model_grad_norm_ratio = 0.0_dp, &
|
||||
initial_trust_radius = 0.0_dp, &
|
||||
max_trust_radius = 0.0_dp, &
|
||||
neglect_threshold = 0.0_dp
|
||||
|
||||
INTEGER :: optimizer_type ! diis, pcg, etc.
|
||||
TYPE(penalty_type) :: opt_penalty
|
||||
INTEGER :: optimizer_type = 0 ! diis, pcg, etc.
|
||||
TYPE(penalty_type) :: opt_penalty = penalty_type()
|
||||
|
||||
INTEGER :: preconditioner, & ! preconditioner type
|
||||
conjugator, & ! conjugator type
|
||||
max_iter, &
|
||||
max_iter_early, &
|
||||
max_iter_outer_loop, &
|
||||
trustr_algorithm, &
|
||||
ndiis ! diis history length
|
||||
INTEGER :: preconditioner = 0, & ! preconditioner type
|
||||
conjugator = 0, & ! conjugator type
|
||||
max_iter = 0, &
|
||||
max_iter_early = 0, &
|
||||
max_iter_outer_loop = 0, &
|
||||
trustr_algorithm = 0, &
|
||||
ndiis = 0 ! diis history length
|
||||
|
||||
LOGICAL :: early_stopping_on = .FALSE.
|
||||
|
||||
END TYPE optimizer_options_type
|
||||
|
||||
TYPE almo_scf_history_type
|
||||
INTEGER :: istore, nstore
|
||||
INTEGER :: istore = 0, nstore = 0
|
||||
TYPE(dbcsr_type), DIMENSION(:, :), ALLOCATABLE :: matrix_p_up_down
|
||||
!TYPE(dbcsr_type), DIMENSION(:, :), ALLOCATABLE :: matrix_x
|
||||
TYPE(dbcsr_type), DIMENSION(:), ALLOCATABLE :: matrix_t
|
||||
|
|
@ -103,12 +103,12 @@ MODULE almo_scf_types
|
|||
! the structure contains general info about the system
|
||||
TYPE almo_scf_env_type
|
||||
|
||||
TYPE(mp_para_env_type), POINTER :: para_env
|
||||
TYPE(cp_blacs_env_type), POINTER :: blacs_env
|
||||
TYPE(mp_para_env_type), POINTER :: para_env => NULL()
|
||||
TYPE(cp_blacs_env_type), POINTER :: blacs_env => NULL()
|
||||
|
||||
INTEGER :: nspins, nelectrons_total, naos
|
||||
INTEGER :: natoms, nmolecules
|
||||
INTEGER, DIMENSION(2) :: nelectrons_spin
|
||||
INTEGER :: nspins = 0, nelectrons_total = 0, naos = 0
|
||||
INTEGER :: natoms = 0, nmolecules = 0
|
||||
INTEGER, DIMENSION(2) :: nelectrons_spin = 0
|
||||
|
||||
! Definitions:
|
||||
! I. Domain - a subset of basis functions (e.g. AOs),
|
||||
|
|
@ -123,7 +123,7 @@ MODULE almo_scf_types
|
|||
! It follows that the number of domains is equal to the number of groups
|
||||
!
|
||||
! Number of domains
|
||||
INTEGER :: ndomains
|
||||
INTEGER :: ndomains = 0
|
||||
|
||||
! List of atoms, whose basis functions are included into the domain.
|
||||
! It is assumed that:
|
||||
|
|
@ -177,9 +177,9 @@ MODULE almo_scf_types
|
|||
! 2. Electrons can be grouped into:
|
||||
! a. molecular sets
|
||||
! b. atomic sets
|
||||
INTEGER :: domain_layout_mos, domain_layout_aos
|
||||
INTEGER :: domain_layout_mos = 0, domain_layout_aos = 0
|
||||
! ALMO constraint type.
|
||||
INTEGER :: constraint_type
|
||||
INTEGER :: constraint_type = 0
|
||||
|
||||
! Desciptors of molecules
|
||||
!INTEGER, DIMENSION(:), ALLOCATABLE :: molecule_index_of_atom
|
||||
|
|
@ -201,25 +201,25 @@ MODULE almo_scf_types
|
|||
! molecular blocks. Domain blocks should be equal or larger than
|
||||
! the distribution blocks (otherwise retain_sparsity does not work).
|
||||
! Possible values: almo_mat_distr_atomic, almo_mat_distr_molecular
|
||||
INTEGER :: mat_distr_aos, mat_distr_mos
|
||||
INTEGER :: mat_distr_aos = 0, mat_distr_mos = 0
|
||||
! Define mappping from a distribution block to a domain
|
||||
INTEGER, DIMENSION(:), ALLOCATABLE :: domain_index_of_ao_block
|
||||
INTEGER, DIMENSION(:), ALLOCATABLE :: domain_index_of_mo_block
|
||||
|
||||
LOGICAL :: need_previous_ks
|
||||
LOGICAL :: need_virtuals
|
||||
LOGICAL :: need_orbital_energies
|
||||
LOGICAL :: s_inv_done
|
||||
LOGICAL :: s_sqrt_done
|
||||
REAL(KIND=dp) :: almo_scf_energy
|
||||
LOGICAL :: orthogonal_basis, fixed_mu
|
||||
LOGICAL :: return_orthogonalized_mos, construct_nlmos
|
||||
LOGICAL :: need_previous_ks = .FALSE.
|
||||
LOGICAL :: need_virtuals = .FALSE.
|
||||
LOGICAL :: need_orbital_energies = .FALSE.
|
||||
LOGICAL :: s_inv_done = .FALSE.
|
||||
LOGICAL :: s_sqrt_done = .FALSE.
|
||||
REAL(KIND=dp) :: almo_scf_energy = 0.0_dp
|
||||
LOGICAL :: orthogonal_basis = .FALSE., fixed_mu = .FALSE.
|
||||
LOGICAL :: return_orthogonalized_mos = .FALSE., construct_nlmos = .FALSE.
|
||||
|
||||
!! Smearing control
|
||||
!! smear flag allow to retrieve eigenvalues in almo_scf with diag algorithm and create occupation-scaled ALMO orbitals
|
||||
LOGICAL :: smear
|
||||
LOGICAL :: smear = .FALSE.
|
||||
!! store relevant smearing parameters
|
||||
REAL(KIND=dp) :: smear_e_temp !! electronic temperature, required for Fermi-Dirac
|
||||
REAL(KIND=dp) :: smear_e_temp = 0.0_dp !! electronic temperature, required for Fermi-Dirac
|
||||
REAL(KIND=dp), DIMENSION(:), ALLOCATABLE :: kTS !! electronic entropy contribution of each spin system
|
||||
!! mo_energies(imo, ispin) stores the eigenvalue corresponding to the orbital imo with spin ispin
|
||||
REAL(KIND=dp), DIMENSION(:, :), ALLOCATABLE :: mo_energies
|
||||
|
|
@ -228,45 +228,45 @@ MODULE almo_scf_types
|
|||
REAL(KIND=dp), DIMENSION(:, :), ALLOCATABLE :: real_ne_of_domain
|
||||
|
||||
! Controls for the SCF procedure
|
||||
REAL(KIND=dp) :: eps_filter
|
||||
INTEGER :: xalmo_trial_wf
|
||||
INTEGER :: almo_scf_guess
|
||||
REAL(KIND=dp) :: eps_prev_guess
|
||||
INTEGER :: order_lanczos
|
||||
REAL(KIND=dp) :: matrix_iter_eps_error_factor
|
||||
REAL(KIND=dp) :: eps_lanczos
|
||||
INTEGER :: max_iter_lanczos
|
||||
REAL(KIND=dp) :: mixing_fraction
|
||||
REAL(KIND=dp) :: mu
|
||||
REAL(KIND=dp) :: eps_filter = 0.0_dp
|
||||
INTEGER :: xalmo_trial_wf = 0
|
||||
INTEGER :: almo_scf_guess = 0
|
||||
REAL(KIND=dp) :: eps_prev_guess = 0.0_dp
|
||||
INTEGER :: order_lanczos = 0
|
||||
REAL(KIND=dp) :: matrix_iter_eps_error_factor = 0.0_dp
|
||||
REAL(KIND=dp) :: eps_lanczos = 0.0_dp
|
||||
INTEGER :: max_iter_lanczos = 0
|
||||
REAL(KIND=dp) :: mixing_fraction = 0.0_dp
|
||||
REAL(KIND=dp) :: mu = 0.0_dp
|
||||
! SCF procedure for the block-diagonal ALMOs
|
||||
INTEGER :: almo_update_algorithm
|
||||
INTEGER :: almo_update_algorithm = 0
|
||||
! SCF procedure for the quenched ALMOs (xALMOs)
|
||||
INTEGER :: xalmo_update_algorithm
|
||||
INTEGER :: xalmo_update_algorithm = 0
|
||||
! mo overlap inversion algorithm
|
||||
INTEGER :: sigma_inv_algorithm
|
||||
INTEGER :: sigma_inv_algorithm = 0
|
||||
|
||||
! Determinant of the ALMO overlap matrix
|
||||
REAL(KIND=dp) :: overlap_determinant
|
||||
REAL(KIND=dp) :: overlap_determinant = 0.0_dp
|
||||
|
||||
! ALMO SCF delocalization control
|
||||
LOGICAL :: perturbative_delocalization
|
||||
INTEGER :: quencher_radius_type
|
||||
REAL(KIND=dp) :: quencher_r0_factor, &
|
||||
quencher_r1_factor, &
|
||||
LOGICAL :: perturbative_delocalization = .FALSE.
|
||||
INTEGER :: quencher_radius_type = 0
|
||||
REAL(KIND=dp) :: quencher_r0_factor = 0.0_dp, &
|
||||
quencher_r1_factor = 0.0_dp, &
|
||||
!quencher_r0_shift,&
|
||||
!quencher_r1_shift,&
|
||||
quencher_s0, &
|
||||
quencher_s1, &
|
||||
envelope_amplitude
|
||||
quencher_s0 = 0.0_dp, &
|
||||
quencher_s1 = 0.0_dp, &
|
||||
envelope_amplitude = 0.0_dp
|
||||
|
||||
! guess options
|
||||
TYPE(almo_scf_history_type) :: almo_history
|
||||
TYPE(almo_scf_history_type) :: xalmo_history
|
||||
INTEGER :: almo_extrapolation_order
|
||||
INTEGER :: xalmo_extrapolation_order
|
||||
TYPE(almo_scf_history_type) :: almo_history = almo_scf_history_type()
|
||||
TYPE(almo_scf_history_type) :: xalmo_history = almo_scf_history_type()
|
||||
INTEGER :: almo_extrapolation_order = 0
|
||||
INTEGER :: xalmo_extrapolation_order = 0
|
||||
|
||||
! forces
|
||||
LOGICAL :: calc_forces
|
||||
LOGICAL :: calc_forces = .FALSE.
|
||||
|
||||
!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!!!!!! MATRICES !!!!!!!
|
||||
|
|
@ -362,63 +362,63 @@ MODULE almo_scf_types
|
|||
INTEGER, DIMENSION(:), ALLOCATABLE :: cpu_of_domain
|
||||
|
||||
! Options for various subsection options collected neatly
|
||||
TYPE(almo_analysis_type) :: almo_analysis
|
||||
TYPE(almo_analysis_type) :: almo_analysis = almo_analysis_type()
|
||||
|
||||
! Options for various optimizers collected neatly
|
||||
TYPE(optimizer_options_type) :: opt_block_diag_diis
|
||||
TYPE(optimizer_options_type) :: opt_block_diag_pcg
|
||||
TYPE(optimizer_options_type) :: opt_xalmo_diis
|
||||
TYPE(optimizer_options_type) :: opt_xalmo_pcg
|
||||
TYPE(optimizer_options_type) :: opt_xalmo_trustr
|
||||
TYPE(optimizer_options_type) :: opt_nlmo_pcg
|
||||
TYPE(optimizer_options_type) :: opt_block_diag_trustr
|
||||
TYPE(optimizer_options_type) :: opt_xalmo_newton_pcg_solver
|
||||
TYPE(optimizer_options_type) :: opt_k_pcg
|
||||
TYPE(optimizer_options_type) :: opt_block_diag_diis = optimizer_options_type()
|
||||
TYPE(optimizer_options_type) :: opt_block_diag_pcg = optimizer_options_type()
|
||||
TYPE(optimizer_options_type) :: opt_xalmo_diis = optimizer_options_type()
|
||||
TYPE(optimizer_options_type) :: opt_xalmo_pcg = optimizer_options_type()
|
||||
TYPE(optimizer_options_type) :: opt_xalmo_trustr = optimizer_options_type()
|
||||
TYPE(optimizer_options_type) :: opt_nlmo_pcg = optimizer_options_type()
|
||||
TYPE(optimizer_options_type) :: opt_block_diag_trustr = optimizer_options_type()
|
||||
TYPE(optimizer_options_type) :: opt_xalmo_newton_pcg_solver = optimizer_options_type()
|
||||
TYPE(optimizer_options_type) :: opt_k_pcg = optimizer_options_type()
|
||||
|
||||
! keywords that control electron delocalization treatment
|
||||
! RZK-warning: many of these varibles should be collected
|
||||
! into an optimizer_options_type variable
|
||||
INTEGER :: deloc_method
|
||||
LOGICAL :: deloc_use_occ_orbs
|
||||
LOGICAL :: deloc_cayley_use_virt_orbs
|
||||
INTEGER :: deloc_cayley_tensor_type
|
||||
LOGICAL :: deloc_cayley_linear
|
||||
INTEGER :: deloc_cayley_conjugator
|
||||
REAL(KIND=dp) :: deloc_cayley_eps_convergence
|
||||
INTEGER :: deloc_cayley_max_iter
|
||||
INTEGER :: deloc_truncate_virt
|
||||
INTEGER :: deloc_virt_per_domain
|
||||
LOGICAL :: deloc_cayley_occ_precond
|
||||
LOGICAL :: deloc_cayley_vir_precond
|
||||
INTEGER :: deloc_method = 0
|
||||
LOGICAL :: deloc_use_occ_orbs = .FALSE.
|
||||
LOGICAL :: deloc_cayley_use_virt_orbs = .FALSE.
|
||||
INTEGER :: deloc_cayley_tensor_type = 0
|
||||
LOGICAL :: deloc_cayley_linear = .FALSE.
|
||||
INTEGER :: deloc_cayley_conjugator = 0
|
||||
REAL(KIND=dp) :: deloc_cayley_eps_convergence = 0.0_dp
|
||||
INTEGER :: deloc_cayley_max_iter = 0
|
||||
INTEGER :: deloc_truncate_virt = 0
|
||||
INTEGER :: deloc_virt_per_domain = 0
|
||||
LOGICAL :: deloc_cayley_occ_precond = .FALSE.
|
||||
LOGICAL :: deloc_cayley_vir_precond = .FALSE.
|
||||
|
||||
!! keywords that control optimization of retained orbitals
|
||||
INTEGER :: opt_k_conjugator !-> conjugartor
|
||||
REAL(KIND=dp) :: opt_k_eps_convergence !-> eps_error
|
||||
REAL(KIND=dp) :: opt_k_trial_step_size !-> lin_search_step_size_guess
|
||||
INTEGER :: opt_k_max_iter !-> max_iter
|
||||
INTEGER :: opt_k_outer_max_iter !-> max_iter for a separate 'outer' optimizer
|
||||
REAL(KIND=dp) :: opt_k_trial_step_size_multiplier !-> ?
|
||||
INTEGER :: opt_k_conj_iter_start !-> ?
|
||||
INTEGER :: opt_k_prec_iter_start !-> ?
|
||||
INTEGER :: opt_k_conj_iter_freq !-> ?
|
||||
INTEGER :: opt_k_prec_iter_freq !-> ?
|
||||
INTEGER :: opt_k_conjugator = 0 !-> conjugartor
|
||||
REAL(KIND=dp) :: opt_k_eps_convergence = 0.0_dp !-> eps_error
|
||||
REAL(KIND=dp) :: opt_k_trial_step_size = 0.0_dp !-> lin_search_step_size_guess
|
||||
INTEGER :: opt_k_max_iter = 0 !-> max_iter
|
||||
INTEGER :: opt_k_outer_max_iter = 0 !-> max_iter for a separate 'outer' optimizer
|
||||
REAL(KIND=dp) :: opt_k_trial_step_size_multiplier = 0.0_dp !-> ?
|
||||
INTEGER :: opt_k_conj_iter_start = 0 !-> ?
|
||||
INTEGER :: opt_k_prec_iter_start = 0 !-> ?
|
||||
INTEGER :: opt_k_conj_iter_freq = 0 !-> ?
|
||||
INTEGER :: opt_k_prec_iter_freq = 0 !-> ?
|
||||
|
||||
! development keywords
|
||||
INTEGER :: integer01
|
||||
INTEGER :: integer02
|
||||
INTEGER :: integer03
|
||||
INTEGER :: integer04
|
||||
INTEGER :: integer05
|
||||
REAL(KIND=dp) :: real01
|
||||
REAL(KIND=dp) :: real02
|
||||
REAL(KIND=dp) :: real03
|
||||
REAL(KIND=dp) :: real04
|
||||
REAL(KIND=dp) :: real05
|
||||
LOGICAL :: logical01
|
||||
LOGICAL :: logical02
|
||||
LOGICAL :: logical03
|
||||
LOGICAL :: logical04
|
||||
LOGICAL :: logical05
|
||||
INTEGER :: integer01 = 0
|
||||
INTEGER :: integer02 = 0
|
||||
INTEGER :: integer03 = 0
|
||||
INTEGER :: integer04 = 0
|
||||
INTEGER :: integer05 = 0
|
||||
REAL(KIND=dp) :: real01 = 0.0_dp
|
||||
REAL(KIND=dp) :: real02 = 0.0_dp
|
||||
REAL(KIND=dp) :: real03 = 0.0_dp
|
||||
REAL(KIND=dp) :: real04 = 0.0_dp
|
||||
REAL(KIND=dp) :: real05 = 0.0_dp
|
||||
LOGICAL :: logical01 = .FALSE.
|
||||
LOGICAL :: logical02 = .FALSE.
|
||||
LOGICAL :: logical03 = .FALSE.
|
||||
LOGICAL :: logical04 = .FALSE.
|
||||
LOGICAL :: logical05 = .FALSE.
|
||||
|
||||
END TYPE almo_scf_env_type
|
||||
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ MODULE atom_fit
|
|||
PUBLIC :: atom_fit_density, atom_fit_basis, atom_fit_pseudo, atom_fit_kgpot
|
||||
|
||||
TYPE wfn_init
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: wfn
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: wfn => NULL()
|
||||
END TYPE wfn_init
|
||||
|
||||
CONTAINS
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ MODULE atom_grb
|
|||
IMPLICIT NONE
|
||||
|
||||
TYPE basis_p_type
|
||||
TYPE(atom_basis_type), POINTER :: basis
|
||||
TYPE(atom_basis_type), POINTER :: basis => NULL()
|
||||
END TYPE basis_p_type
|
||||
|
||||
PRIVATE
|
||||
|
|
|
|||
|
|
@ -21,21 +21,21 @@ MODULE atom_optimization
|
|||
CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'atom_optimization'
|
||||
|
||||
TYPE hmat_type
|
||||
REAL(dp) :: energy
|
||||
REAL(dp) :: error
|
||||
REAL(dp), DIMENSION(:, :, :), POINTER :: emat
|
||||
REAL(dp), DIMENSION(:, :, :), POINTER :: fmat
|
||||
REAL(dp), DIMENSION(:, :, :), POINTER :: pmat
|
||||
REAL(dp) :: energy = 0.0_dp
|
||||
REAL(dp) :: error = 0.0_dp
|
||||
REAL(dp), DIMENSION(:, :, :), POINTER :: emat => NULL()
|
||||
REAL(dp), DIMENSION(:, :, :), POINTER :: fmat => NULL()
|
||||
REAL(dp), DIMENSION(:, :, :), POINTER :: pmat => NULL()
|
||||
END TYPE hmat_type
|
||||
|
||||
TYPE atom_history_type
|
||||
INTEGER :: max_history
|
||||
INTEGER :: hlen
|
||||
INTEGER :: hpos
|
||||
REAL(dp) :: damping
|
||||
REAL(dp) :: eps_diis
|
||||
REAL(dp), DIMENSION(:, :), POINTER :: dmat
|
||||
TYPE(hmat_type), DIMENSION(:), POINTER :: hmat
|
||||
INTEGER :: max_history = 0
|
||||
INTEGER :: hlen = 0
|
||||
INTEGER :: hpos = 0
|
||||
REAL(dp) :: damping = 0.0_dp
|
||||
REAL(dp) :: eps_diis = 0.0_dp
|
||||
REAL(dp), DIMENSION(:, :), POINTER :: dmat => NULL()
|
||||
TYPE(hmat_type), DIMENSION(:), POINTER :: hmat => NULL()
|
||||
END TYPE atom_history_type
|
||||
|
||||
PUBLIC :: atom_opt_fmat, &
|
||||
|
|
|
|||
|
|
@ -36,21 +36,21 @@ MODULE atom_sgp
|
|||
IMPLICIT NONE
|
||||
|
||||
TYPE atom_sgp_potential_type
|
||||
LOGICAL :: has_nonlocal
|
||||
INTEGER :: n_nonlocal
|
||||
INTEGER :: lmax
|
||||
LOGICAL :: has_nonlocal = .FALSE.
|
||||
INTEGER :: n_nonlocal = 0
|
||||
INTEGER :: lmax = 0
|
||||
LOGICAL, DIMENSION(0:5) :: is_nonlocal = .FALSE.
|
||||
REAL(KIND=dp), DIMENSION(:), POINTER :: a_nonlocal => Null()
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: h_nonlocal => Null()
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: c_nonlocal => Null()
|
||||
LOGICAL :: has_local
|
||||
INTEGER :: n_local
|
||||
REAL(KIND=dp) :: zval
|
||||
REAL(KIND=dp) :: ac_local
|
||||
LOGICAL :: has_local = .FALSE.
|
||||
INTEGER :: n_local = 0
|
||||
REAL(KIND=dp) :: zval = 0.0_dp
|
||||
REAL(KIND=dp) :: ac_local = 0.0_dp
|
||||
REAL(KIND=dp), DIMENSION(:), POINTER :: a_local => Null()
|
||||
REAL(KIND=dp), DIMENSION(:), POINTER :: c_local => Null()
|
||||
LOGICAL :: has_nlcc
|
||||
INTEGER :: n_nlcc
|
||||
LOGICAL :: has_nlcc = .FALSE.
|
||||
INTEGER :: n_nlcc = 0
|
||||
REAL(KIND=dp), DIMENSION(:), POINTER :: a_nlcc => Null()
|
||||
REAL(KIND=dp), DIMENSION(:), POINTER :: c_nlcc => Null()
|
||||
END TYPE
|
||||
|
|
|
|||
322
src/atom_types.F
322
src/atom_types.F
|
|
@ -30,10 +30,10 @@ MODULE atom_types
|
|||
parser_create,&
|
||||
parser_release
|
||||
USE input_constants, ONLY: &
|
||||
barrier_conf, contracted_gto, do_gapw_log, do_numeric, do_potential_coulomb, &
|
||||
do_potential_long, do_potential_mix_cl, do_potential_short, do_semi_analytic, ecp_pseudo, &
|
||||
gaussian, geometrical_gto, gth_pseudo, no_conf, no_pseudo, numerical, poly_conf, &
|
||||
sgp_pseudo, slater, upf_pseudo
|
||||
barrier_conf, contracted_gto, do_analytic, do_gapw_log, do_nonrel_atom, do_numeric, &
|
||||
do_potential_coulomb, do_potential_long, do_potential_mix_cl, do_potential_short, &
|
||||
do_rks_atom, do_semi_analytic, ecp_pseudo, gaussian, geometrical_gto, gth_pseudo, no_conf, &
|
||||
no_pseudo, numerical, poly_conf, sgp_pseudo, slater, upf_pseudo
|
||||
USE input_section_types, ONLY: section_vals_get,&
|
||||
section_vals_get_subs_vals,&
|
||||
section_vals_list_get,&
|
||||
|
|
@ -76,118 +76,118 @@ MODULE atom_types
|
|||
!> \brief Provides all information about a basis set
|
||||
! **************************************************************************************************
|
||||
TYPE atom_basis_type
|
||||
INTEGER :: basis_type
|
||||
INTEGER, DIMENSION(0:lmat) :: nbas
|
||||
INTEGER, DIMENSION(0:lmat) :: nprim
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: am !GTO exponents
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: cm !Contraction coeffs
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: as !STO exponents
|
||||
INTEGER, DIMENSION(:, :), POINTER :: ns !STO n-quantum numbers
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: bf !num. bsf
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: dbf !derivatives (num)
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: ddbf !2nd derivatives (num)
|
||||
REAL(KIND=dp) :: eps_eig
|
||||
TYPE(grid_atom_type), POINTER :: grid
|
||||
LOGICAL :: geometrical
|
||||
REAL(KIND=dp) :: aval, cval
|
||||
INTEGER, DIMENSION(0:lmat) :: start
|
||||
INTEGER :: basis_type = GTO_BASIS
|
||||
INTEGER, DIMENSION(0:lmat) :: nbas = 0
|
||||
INTEGER, DIMENSION(0:lmat) :: nprim = 0
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: am => NULL() !GTO exponents
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: cm => NULL() !Contraction coeffs
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: as => NULL() !STO exponents
|
||||
INTEGER, DIMENSION(:, :), POINTER :: ns => NULL() !STO n-quantum numbers
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: bf => NULL() !num. bsf
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: dbf => NULL() !derivatives (num)
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: ddbf => NULL() !2nd derivatives (num)
|
||||
REAL(KIND=dp) :: eps_eig = 0.0_dp
|
||||
TYPE(grid_atom_type), POINTER :: grid => NULL()
|
||||
LOGICAL :: geometrical = .FALSE.
|
||||
REAL(KIND=dp) :: aval = 0.0_dp, cval = 0.0_dp
|
||||
INTEGER, DIMENSION(0:lmat) :: start = 0
|
||||
END TYPE atom_basis_type
|
||||
|
||||
!> \brief Provides all information about a pseudopotential
|
||||
! **************************************************************************************************
|
||||
TYPE atom_gthpot_type
|
||||
CHARACTER(LEN=2) :: symbol
|
||||
CHARACTER(LEN=default_string_length) :: pname
|
||||
INTEGER, DIMENSION(0:lmat) :: econf
|
||||
REAL(dp) :: zion
|
||||
REAL(dp) :: rc
|
||||
INTEGER :: ncl
|
||||
REAL(dp), DIMENSION(5) :: cl
|
||||
INTEGER, DIMENSION(0:lmat) :: nl
|
||||
REAL(dp), DIMENSION(0:lmat) :: rcnl
|
||||
REAL(dp), DIMENSION(4, 4, 0:lmat) :: hnl
|
||||
CHARACTER(LEN=2) :: symbol = ""
|
||||
CHARACTER(LEN=default_string_length) :: pname = ""
|
||||
INTEGER, DIMENSION(0:lmat) :: econf = 0
|
||||
REAL(dp) :: zion = 0.0_dp
|
||||
REAL(dp) :: rc = 0.0_dp
|
||||
INTEGER :: ncl = 0
|
||||
REAL(dp), DIMENSION(5) :: cl = 0.0_dp
|
||||
INTEGER, DIMENSION(0:lmat) :: nl = 0
|
||||
REAL(dp), DIMENSION(0:lmat) :: rcnl = 0.0_dp
|
||||
REAL(dp), DIMENSION(4, 4, 0:lmat) :: hnl = 0.0_dp
|
||||
! type extensions
|
||||
! NLCC
|
||||
LOGICAL :: nlcc
|
||||
INTEGER :: nexp_nlcc
|
||||
REAL(KIND=dp), DIMENSION(10) :: alpha_nlcc
|
||||
INTEGER, DIMENSION(10) :: nct_nlcc
|
||||
REAL(KIND=dp), DIMENSION(4, 10) :: cval_nlcc
|
||||
LOGICAL :: nlcc = .FALSE.
|
||||
INTEGER :: nexp_nlcc = 0
|
||||
REAL(KIND=dp), DIMENSION(10) :: alpha_nlcc = 0.0_dp
|
||||
INTEGER, DIMENSION(10) :: nct_nlcc = 0
|
||||
REAL(KIND=dp), DIMENSION(4, 10) :: cval_nlcc = 0.0_dp
|
||||
! LSD potential
|
||||
LOGICAL :: lsdpot
|
||||
INTEGER :: nexp_lsd
|
||||
REAL(KIND=dp), DIMENSION(10) :: alpha_lsd
|
||||
INTEGER, DIMENSION(10) :: nct_lsd
|
||||
REAL(KIND=dp), DIMENSION(4, 10) :: cval_lsd
|
||||
LOGICAL :: lsdpot = .FALSE.
|
||||
INTEGER :: nexp_lsd = 0
|
||||
REAL(KIND=dp), DIMENSION(10) :: alpha_lsd = 0.0_dp
|
||||
INTEGER, DIMENSION(10) :: nct_lsd = 0
|
||||
REAL(KIND=dp), DIMENSION(4, 10) :: cval_lsd = 0.0_dp
|
||||
! extended local potential
|
||||
LOGICAL :: lpotextended
|
||||
INTEGER :: nexp_lpot
|
||||
REAL(KIND=dp), DIMENSION(10) :: alpha_lpot
|
||||
INTEGER, DIMENSION(10) :: nct_lpot
|
||||
REAL(KIND=dp), DIMENSION(4, 10) :: cval_lpot
|
||||
LOGICAL :: lpotextended = .FALSE.
|
||||
INTEGER :: nexp_lpot = 0
|
||||
REAL(KIND=dp), DIMENSION(10) :: alpha_lpot = 0.0_dp
|
||||
INTEGER, DIMENSION(10) :: nct_lpot = 0
|
||||
REAL(KIND=dp), DIMENSION(4, 10) :: cval_lpot = 0.0_dp
|
||||
END TYPE atom_gthpot_type
|
||||
|
||||
TYPE atom_ecppot_type
|
||||
CHARACTER(LEN=2) :: symbol
|
||||
CHARACTER(LEN=default_string_length) :: pname
|
||||
INTEGER, DIMENSION(0:lmat) :: econf
|
||||
REAL(dp) :: zion
|
||||
INTEGER :: lmax
|
||||
INTEGER :: nloc ! # terms
|
||||
INTEGER, DIMENSION(1:10) :: nrloc ! r**(n-2)
|
||||
REAL(dp), DIMENSION(1:10) :: aloc ! coefficient
|
||||
REAL(dp), DIMENSION(1:10) :: bloc ! exponent
|
||||
INTEGER, DIMENSION(0:10) :: npot ! # terms
|
||||
INTEGER, DIMENSION(1:10, 0:10) :: nrpot ! r**(n-2)
|
||||
REAL(dp), DIMENSION(1:10, 0:10) :: apot ! coefficient
|
||||
REAL(dp), DIMENSION(1:10, 0:10) :: bpot ! exponent
|
||||
CHARACTER(LEN=2) :: symbol = ""
|
||||
CHARACTER(LEN=default_string_length) :: pname = ""
|
||||
INTEGER, DIMENSION(0:lmat) :: econf = 0
|
||||
REAL(dp) :: zion = 0.0_dp
|
||||
INTEGER :: lmax = 0
|
||||
INTEGER :: nloc = 0 ! # terms
|
||||
INTEGER, DIMENSION(1:10) :: nrloc = 0 ! r**(n-2)
|
||||
REAL(dp), DIMENSION(1:10) :: aloc = 0.0_dp ! coefficient
|
||||
REAL(dp), DIMENSION(1:10) :: bloc = 0.0_dp ! exponent
|
||||
INTEGER, DIMENSION(0:10) :: npot = 0 ! # terms
|
||||
INTEGER, DIMENSION(1:10, 0:10) :: nrpot = 0 ! r**(n-2)
|
||||
REAL(dp), DIMENSION(1:10, 0:10) :: apot = 0.0_dp ! coefficient
|
||||
REAL(dp), DIMENSION(1:10, 0:10) :: bpot = 0.0_dp ! exponent
|
||||
END TYPE atom_ecppot_type
|
||||
|
||||
TYPE atom_sgppot_type
|
||||
CHARACTER(LEN=2) :: symbol
|
||||
CHARACTER(LEN=default_string_length) :: pname
|
||||
INTEGER, DIMENSION(0:lmat) :: econf
|
||||
REAL(dp) :: zion
|
||||
INTEGER :: lmax
|
||||
LOGICAL :: has_nonlocal
|
||||
INTEGER :: n_nonlocal
|
||||
CHARACTER(LEN=2) :: symbol = ""
|
||||
CHARACTER(LEN=default_string_length) :: pname = ""
|
||||
INTEGER, DIMENSION(0:lmat) :: econf = 0
|
||||
REAL(dp) :: zion = 0.0_dp
|
||||
INTEGER :: lmax = 0
|
||||
LOGICAL :: has_nonlocal = .FALSE.
|
||||
INTEGER :: n_nonlocal = 0
|
||||
LOGICAL, DIMENSION(0:5) :: is_nonlocal = .FALSE.
|
||||
REAL(KIND=dp), DIMENSION(nmax) :: a_nonlocal
|
||||
REAL(KIND=dp), DIMENSION(nmax, 0:lmat) :: h_nonlocal
|
||||
REAL(KIND=dp), DIMENSION(nmax, nmax, 0:lmat) :: c_nonlocal
|
||||
INTEGER :: n_local
|
||||
REAL(KIND=dp) :: ac_local
|
||||
REAL(KIND=dp), DIMENSION(nmax) :: a_local
|
||||
REAL(KIND=dp), DIMENSION(nmax) :: c_local
|
||||
LOGICAL :: has_nlcc
|
||||
INTEGER :: n_nlcc
|
||||
REAL(KIND=dp), DIMENSION(nmax) :: a_nlcc
|
||||
REAL(KIND=dp), DIMENSION(nmax) :: c_nlcc
|
||||
REAL(KIND=dp), DIMENSION(nmax) :: a_nonlocal = 0.0_dp
|
||||
REAL(KIND=dp), DIMENSION(nmax, 0:lmat) :: h_nonlocal = 0.0_dp
|
||||
REAL(KIND=dp), DIMENSION(nmax, nmax, 0:lmat) :: c_nonlocal = 0.0_dp
|
||||
INTEGER :: n_local = 0
|
||||
REAL(KIND=dp) :: ac_local = 0.0_dp
|
||||
REAL(KIND=dp), DIMENSION(nmax) :: a_local = 0.0_dp
|
||||
REAL(KIND=dp), DIMENSION(nmax) :: c_local = 0.0_dp
|
||||
LOGICAL :: has_nlcc = .FALSE.
|
||||
INTEGER :: n_nlcc = 0
|
||||
REAL(KIND=dp), DIMENSION(nmax) :: a_nlcc = 0.0_dp
|
||||
REAL(KIND=dp), DIMENSION(nmax) :: c_nlcc = 0.0_dp
|
||||
END TYPE atom_sgppot_type
|
||||
|
||||
TYPE atom_potential_type
|
||||
INTEGER :: ppot_type
|
||||
LOGICAL :: confinement
|
||||
INTEGER :: conf_type
|
||||
REAL(dp) :: acon
|
||||
REAL(dp) :: rcon
|
||||
REAL(dp) :: scon
|
||||
TYPE(atom_gthpot_type) :: gth_pot
|
||||
TYPE(atom_ecppot_type) :: ecp_pot
|
||||
TYPE(atom_upfpot_type) :: upf_pot
|
||||
TYPE(atom_sgppot_type) :: sgp_pot
|
||||
INTEGER :: ppot_type = 0
|
||||
LOGICAL :: confinement = .FALSE.
|
||||
INTEGER :: conf_type = 0
|
||||
REAL(dp) :: acon = 0.0_dp
|
||||
REAL(dp) :: rcon = 0.0_dp
|
||||
REAL(dp) :: scon = 0.0_dp
|
||||
TYPE(atom_gthpot_type) :: gth_pot = atom_gthpot_type()
|
||||
TYPE(atom_ecppot_type) :: ecp_pot = atom_ecppot_type()
|
||||
TYPE(atom_upfpot_type) :: upf_pot = atom_upfpot_type()
|
||||
TYPE(atom_sgppot_type) :: sgp_pot = atom_sgppot_type()
|
||||
END TYPE atom_potential_type
|
||||
|
||||
!> \brief Provides info about hartree-fock exchange (For now, we only support potentials that can be represented
|
||||
!> with Coulomb and longrange-coulomb potential)
|
||||
! **************************************************************************************************
|
||||
TYPE atom_hfx_type
|
||||
REAL(KIND=dp) :: scale_coulomb
|
||||
REAL(KIND=dp) :: scale_longrange
|
||||
REAL(KIND=dp) :: omega
|
||||
REAL(KIND=dp) :: scale_coulomb = 0.0_dp
|
||||
REAL(KIND=dp) :: scale_longrange = 0.0_dp
|
||||
REAL(KIND=dp) :: omega = 0.0_dp
|
||||
REAL(KIND=dp), ALLOCATABLE, DIMENSION(:, :, :) :: kernel
|
||||
LOGICAL :: do_gh
|
||||
INTEGER :: nr_gh
|
||||
LOGICAL :: do_gh = .FALSE.
|
||||
INTEGER :: nr_gh = 0
|
||||
END TYPE atom_hfx_type
|
||||
|
||||
!> \brief Provides all information on states and occupation
|
||||
|
|
@ -196,129 +196,129 @@ MODULE atom_types
|
|||
REAL(KIND=dp), DIMENSION(0:lmat, 10) :: occ = 0.0_dp
|
||||
REAL(KIND=dp), DIMENSION(0:lmat, 10) :: core = 0.0_dp
|
||||
REAL(KIND=dp), DIMENSION(0:lmat, 10) :: occupation = 0.0_dp
|
||||
INTEGER :: maxl_occ
|
||||
INTEGER :: maxl_occ = 0
|
||||
INTEGER, DIMENSION(0:lmat) :: maxn_occ = 0
|
||||
INTEGER :: maxl_calc
|
||||
INTEGER :: maxl_calc = 0
|
||||
INTEGER, DIMENSION(0:lmat) :: maxn_calc = 0
|
||||
INTEGER :: multiplicity
|
||||
INTEGER :: multiplicity = 0
|
||||
REAL(KIND=dp), DIMENSION(0:lmat, 10) :: occa = 0.0_dp, occb = 0.0_dp
|
||||
END TYPE atom_state
|
||||
|
||||
!> \brief Holds atomic integrals
|
||||
! **************************************************************************************************
|
||||
TYPE eri
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: int
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: int => NULL()
|
||||
END TYPE eri
|
||||
|
||||
TYPE atom_integrals
|
||||
INTEGER :: status = 0
|
||||
INTEGER :: ppstat = 0
|
||||
LOGICAL :: eri_coulomb
|
||||
LOGICAL :: eri_exchange
|
||||
LOGICAL :: all_nu
|
||||
INTEGER, DIMENSION(0:lmat) :: n, nne
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: ovlp, kin, core, clsd
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: utrans, uptrans
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: hnl
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: conf
|
||||
TYPE(eri), DIMENSION(100) :: ceri
|
||||
TYPE(eri), DIMENSION(100) :: eeri
|
||||
LOGICAL :: eri_coulomb = .FALSE.
|
||||
LOGICAL :: eri_exchange = .FALSE.
|
||||
LOGICAL :: all_nu = .FALSE.
|
||||
INTEGER, DIMENSION(0:lmat) :: n = 0, nne = 0
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: ovlp => NULL(), kin => NULL(), core => NULL(), clsd => NULL()
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: utrans => NULL(), uptrans => NULL()
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: hnl => NULL()
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: conf => NULL()
|
||||
TYPE(eri), DIMENSION(100) :: ceri = eri()
|
||||
TYPE(eri), DIMENSION(100) :: eeri = eri()
|
||||
INTEGER :: dkhstat = 0
|
||||
INTEGER :: zorastat = 0
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: tzora
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: hdkh
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: tzora => NULL()
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: hdkh => NULL()
|
||||
END TYPE atom_integrals
|
||||
|
||||
!> \brief Holds atomic orbitals and energies
|
||||
! **************************************************************************************************
|
||||
TYPE atom_orbitals
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: wfn, wfna, wfnb
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: pmat, pmata, pmatb
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: ener, enera, enerb
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: refene, refchg, refnod
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: wrefene, wrefchg, wrefnod
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: crefene, crefchg, crefnod
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: wpsir0, tpsir0
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: rcmax
|
||||
CHARACTER(LEN=2), DIMENSION(:, :, :), POINTER :: reftype
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: wfn => NULL(), wfna => NULL(), wfnb => NULL()
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: pmat => NULL(), pmata => NULL(), pmatb => NULL()
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: ener => NULL(), enera => NULL(), enerb => NULL()
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: refene => NULL(), refchg => NULL(), refnod => NULL()
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: wrefene => NULL(), wrefchg => NULL(), wrefnod => NULL()
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: crefene => NULL(), crefchg => NULL(), crefnod => NULL()
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: wpsir0 => NULL(), tpsir0 => NULL()
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: rcmax => NULL()
|
||||
CHARACTER(LEN=2), DIMENSION(:, :, :), POINTER :: reftype => NULL()
|
||||
END TYPE atom_orbitals
|
||||
|
||||
!> \brief Operator matrices
|
||||
! **************************************************************************************************
|
||||
TYPE opmat_type
|
||||
INTEGER, DIMENSION(0:lmat) :: n
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: op
|
||||
INTEGER, DIMENSION(0:lmat) :: n = 0
|
||||
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: op => NULL()
|
||||
END TYPE opmat_type
|
||||
|
||||
!> \brief Operator grids
|
||||
! **************************************************************************************************
|
||||
TYPE opgrid_type
|
||||
REAL(KIND=dp), DIMENSION(:), POINTER :: op
|
||||
TYPE(grid_atom_type), POINTER :: grid
|
||||
REAL(KIND=dp), DIMENSION(:), POINTER :: op => NULL()
|
||||
TYPE(grid_atom_type), POINTER :: grid => NULL()
|
||||
END TYPE opgrid_type
|
||||
|
||||
!> \brief All energies
|
||||
! **************************************************************************************************
|
||||
TYPE atom_energy_type
|
||||
REAL(KIND=dp) :: etot
|
||||
REAL(KIND=dp) :: eband
|
||||
REAL(KIND=dp) :: ekin
|
||||
REAL(KIND=dp) :: epot
|
||||
REAL(KIND=dp) :: ecore
|
||||
REAL(KIND=dp) :: elsd
|
||||
REAL(KIND=dp) :: epseudo
|
||||
REAL(KIND=dp) :: eploc
|
||||
REAL(KIND=dp) :: epnl
|
||||
REAL(KIND=dp) :: exc
|
||||
REAL(KIND=dp) :: ecoulomb
|
||||
REAL(KIND=dp) :: eexchange
|
||||
REAL(KIND=dp) :: econfinement
|
||||
REAL(KIND=dp) :: etot = 0.0_dp
|
||||
REAL(KIND=dp) :: eband = 0.0_dp
|
||||
REAL(KIND=dp) :: ekin = 0.0_dp
|
||||
REAL(KIND=dp) :: epot = 0.0_dp
|
||||
REAL(KIND=dp) :: ecore = 0.0_dp
|
||||
REAL(KIND=dp) :: elsd = 0.0_dp
|
||||
REAL(KIND=dp) :: epseudo = 0.0_dp
|
||||
REAL(KIND=dp) :: eploc = 0.0_dp
|
||||
REAL(KIND=dp) :: epnl = 0.0_dp
|
||||
REAL(KIND=dp) :: exc = 0.0_dp
|
||||
REAL(KIND=dp) :: ecoulomb = 0.0_dp
|
||||
REAL(KIND=dp) :: eexchange = 0.0_dp
|
||||
REAL(KIND=dp) :: econfinement = 0.0_dp
|
||||
END TYPE atom_energy_type
|
||||
|
||||
!> \brief Information on optimization procedure
|
||||
! **************************************************************************************************
|
||||
TYPE atom_optimization_type
|
||||
REAL(KIND=dp) :: damping
|
||||
REAL(KIND=dp) :: eps_scf
|
||||
REAL(KIND=dp) :: eps_diis
|
||||
INTEGER :: max_iter
|
||||
INTEGER :: n_diis
|
||||
REAL(KIND=dp) :: damping = 0.0_dp
|
||||
REAL(KIND=dp) :: eps_scf = 0.0_dp
|
||||
REAL(KIND=dp) :: eps_diis = 0.0_dp
|
||||
INTEGER :: max_iter = 0
|
||||
INTEGER :: n_diis = 0
|
||||
END TYPE atom_optimization_type
|
||||
|
||||
!> \brief Provides all information about an atomic kind
|
||||
! **************************************************************************************************
|
||||
TYPE atom_type
|
||||
INTEGER :: z
|
||||
INTEGER :: zcore
|
||||
LOGICAL :: pp_calc
|
||||
INTEGER :: z = 0
|
||||
INTEGER :: zcore = 0
|
||||
LOGICAL :: pp_calc = .FALSE.
|
||||
! ZMP adding in type some variables
|
||||
LOGICAL :: do_zmp, doread, read_vxc, dm
|
||||
CHARACTER(LEN=default_string_length) :: ext_file, ext_vxc_file, &
|
||||
zmp_restart_file
|
||||
LOGICAL :: do_zmp = .FALSE., doread = .FALSE., read_vxc = .FALSE., dm = .FALSE.
|
||||
CHARACTER(LEN=default_string_length) :: ext_file = "", ext_vxc_file = "", &
|
||||
zmp_restart_file = ""
|
||||
!
|
||||
INTEGER :: method_type
|
||||
INTEGER :: relativistic
|
||||
INTEGER :: coulomb_integral_type
|
||||
INTEGER :: exchange_integral_type
|
||||
INTEGER :: method_type = do_rks_atom
|
||||
INTEGER :: relativistic = do_nonrel_atom
|
||||
INTEGER :: coulomb_integral_type = do_analytic
|
||||
INTEGER :: exchange_integral_type = do_analytic
|
||||
! ZMP
|
||||
REAL(KIND=dp) :: lambda
|
||||
REAL(KIND=dp) :: rho_diff_integral
|
||||
REAL(KIND=dp) :: weight, zmpgrid_tol, zmpvxcgrid_tol
|
||||
REAL(KIND=dp) :: lambda = 0.0_dp
|
||||
REAL(KIND=dp) :: rho_diff_integral = 0.0_dp
|
||||
REAL(KIND=dp) :: weight = 0.0_dp, zmpgrid_tol = 0.0_dp, zmpvxcgrid_tol = 0.0_dp
|
||||
!
|
||||
TYPE(atom_basis_type), POINTER :: basis
|
||||
TYPE(atom_potential_type), POINTER :: potential
|
||||
TYPE(atom_state), POINTER :: state
|
||||
TYPE(atom_integrals), POINTER :: integrals
|
||||
TYPE(atom_orbitals), POINTER :: orbitals
|
||||
TYPE(atom_energy_type) :: energy
|
||||
TYPE(atom_optimization_type) :: optimization
|
||||
TYPE(section_vals_type), POINTER :: xc_section, zmp_section
|
||||
TYPE(opmat_type), POINTER :: fmat
|
||||
TYPE(atom_hfx_type) :: hfx_pot
|
||||
TYPE(atom_basis_type), POINTER :: basis => NULL()
|
||||
TYPE(atom_potential_type), POINTER :: potential => NULL()
|
||||
TYPE(atom_state), POINTER :: state => NULL()
|
||||
TYPE(atom_integrals), POINTER :: integrals => NULL()
|
||||
TYPE(atom_orbitals), POINTER :: orbitals => NULL()
|
||||
TYPE(atom_energy_type) :: energy = atom_energy_type()
|
||||
TYPE(atom_optimization_type) :: optimization = atom_optimization_type()
|
||||
TYPE(section_vals_type), POINTER :: xc_section => NULL(), zmp_section => NULL()
|
||||
TYPE(opmat_type), POINTER :: fmat => NULL()
|
||||
TYPE(atom_hfx_type) :: hfx_pot = atom_hfx_type()
|
||||
END TYPE atom_type
|
||||
! **************************************************************************************************
|
||||
TYPE atom_p_type
|
||||
TYPE(atom_type), POINTER :: atom
|
||||
TYPE(atom_type), POINTER :: atom => NULL()
|
||||
END TYPE atom_p_type
|
||||
|
||||
PUBLIC :: lmat
|
||||
|
|
|
|||
|
|
@ -30,24 +30,24 @@ MODULE atom_upf
|
|||
INTEGER, PARAMETER :: lmat = 3
|
||||
|
||||
TYPE atom_upfpot_type
|
||||
CHARACTER(LEN=2) :: symbol
|
||||
CHARACTER(LEN=2) :: symbol = ""
|
||||
CHARACTER(LEN=default_string_length) :: pname = ""
|
||||
INTEGER, DIMENSION(0:lmat) :: econf = 0
|
||||
REAL(dp) :: zion
|
||||
CHARACTER(LEN=default_string_length) :: version
|
||||
REAL(dp) :: zion = 0.0_dp
|
||||
CHARACTER(LEN=default_string_length) :: version = ""
|
||||
CHARACTER(LEN=default_string_length) :: filename = ""
|
||||
! <INFO>
|
||||
INTEGER :: maxinfo = 100
|
||||
CHARACTER(LEN=default_string_length), DIMENSION(100) &
|
||||
:: info
|
||||
:: info = ""
|
||||
! <HEADER>
|
||||
CHARACTER(LEN=default_string_length) :: generated
|
||||
CHARACTER(LEN=default_string_length) :: author
|
||||
CHARACTER(LEN=default_string_length) :: date
|
||||
CHARACTER(LEN=default_string_length) :: comment
|
||||
CHARACTER(LEN=4) :: pseudo_type
|
||||
CHARACTER(LEN=15) :: relativistic
|
||||
CHARACTER(LEN=default_string_length) :: functional
|
||||
CHARACTER(LEN=default_string_length) :: generated = ""
|
||||
CHARACTER(LEN=default_string_length) :: author = ""
|
||||
CHARACTER(LEN=default_string_length) :: date = ""
|
||||
CHARACTER(LEN=default_string_length) :: comment = ""
|
||||
CHARACTER(LEN=4) :: pseudo_type = ""
|
||||
CHARACTER(LEN=15) :: relativistic = ""
|
||||
CHARACTER(LEN=default_string_length) :: functional = ""
|
||||
LOGICAL :: is_ultrasoft = .FALSE.
|
||||
LOGICAL :: is_paw = .FALSE.
|
||||
LOGICAL :: is_coulomb = .FALSE.
|
||||
|
|
@ -56,20 +56,20 @@ MODULE atom_upf
|
|||
LOGICAL :: has_gipaw = .FALSE.
|
||||
LOGICAL :: paw_as_gipaw = .FALSE.
|
||||
LOGICAL :: core_correction = .FALSE.
|
||||
REAL(dp) :: total_psenergy
|
||||
REAL(dp) :: wfc_cutoff
|
||||
REAL(dp) :: rho_cutoff
|
||||
REAL(dp) :: total_psenergy = 0.0_dp
|
||||
REAL(dp) :: wfc_cutoff = 0.0_dp
|
||||
REAL(dp) :: rho_cutoff = 0.0_dp
|
||||
INTEGER :: l_max = -100
|
||||
INTEGER :: l_max_rho
|
||||
INTEGER :: l_local
|
||||
INTEGER :: mesh_size
|
||||
INTEGER :: number_of_wfc
|
||||
INTEGER :: number_of_proj
|
||||
INTEGER :: l_max_rho = -1
|
||||
INTEGER :: l_local = -1
|
||||
INTEGER :: mesh_size = -1
|
||||
INTEGER :: number_of_wfc = -1
|
||||
INTEGER :: number_of_proj = -1
|
||||
! <MESH>
|
||||
REAL(dp) :: dx
|
||||
REAL(dp) :: xmin
|
||||
REAL(dp) :: rmax
|
||||
REAL(dp) :: zmesh
|
||||
REAL(dp) :: dx = 0.0_dp
|
||||
REAL(dp) :: xmin = 0.0_dp
|
||||
REAL(dp) :: rmax = 0.0_dp
|
||||
REAL(dp) :: zmesh = 0.0_dp
|
||||
REAL(dp), DIMENSION(:), ALLOCATABLE :: r, rab
|
||||
! <NLCC>
|
||||
REAL(dp), DIMENSION(:), ALLOCATABLE :: rho_nlcc
|
||||
|
|
|
|||
|
|
@ -21,6 +21,6 @@ MODULE block_p_types
|
|||
PUBLIC :: block_p_type
|
||||
! **************************************************************************************************
|
||||
TYPE block_p_type
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: block
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: block => NULL()
|
||||
END TYPE block_p_type
|
||||
END MODULE block_p_types
|
||||
|
|
|
|||
|
|
@ -16,7 +16,9 @@ MODULE callgraph
|
|||
|
||||
#:call hash_map(prefix='callgraph', &
|
||||
key_type='INTEGER(kind=int_4), DIMENSION(2)', &
|
||||
value_type='TYPE(call_stat_type), POINTER')
|
||||
value_type='TYPE(call_stat_type), POINTER', &
|
||||
key_default_init=' = 0_int_4', &
|
||||
value_default_init=' => NULL()')
|
||||
#:endcall hash_map
|
||||
|
||||
! **************************************************************************************************
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
#! SPDX-License-Identifier: GPL-2.0-or-later !
|
||||
#!-------------------------------------------------------------------------------------------------!
|
||||
#:mute
|
||||
#:def hash_map(prefix, key_type, value_type)
|
||||
#:def hash_map(prefix, key_type, value_type, key_default_init, value_default_init)
|
||||
! **************************************************************************************************
|
||||
!> \brief A hash map (also known as hashtable or dictionary).
|
||||
!> Internally the hash map uses an array to holds its data.
|
||||
|
|
@ -33,9 +33,9 @@
|
|||
!for use during change_capacity().
|
||||
TYPE private_item_type
|
||||
PRIVATE
|
||||
${key_type}$ :: key
|
||||
${value_type}$ :: value
|
||||
INTEGER(KIND=int_8) :: hash
|
||||
${key_type}$ :: key ${key_default_init}$
|
||||
${value_type}$ :: value ${value_default_init}$
|
||||
INTEGER(KIND=int_8) :: hash = 0_int_8
|
||||
TYPE(private_item_type), POINTER :: next => Null()
|
||||
END TYPE private_item_type
|
||||
|
||||
|
|
@ -54,8 +54,8 @@
|
|||
|
||||
! this is a public type, its returned by ${prefix}$_items()
|
||||
TYPE ${prefix}$_item_type
|
||||
${key_type}$ :: key
|
||||
${value_type}$ :: value
|
||||
${key_type}$ :: key ${key_default_init}$
|
||||
${value_type}$ :: value ${value_default_init}$
|
||||
END TYPE ${prefix}$_item_type
|
||||
|
||||
CONTAINS
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@
|
|||
!this is an internal type
|
||||
TYPE private_item_type_${valuetype}$
|
||||
PRIVATE
|
||||
${valuetype_out}$ :: value
|
||||
${valuetype_out}$ :: value #{if valuetype_out.endswith("POINTER")}#=> NULL()#{else}#= ${valuetype_out[5:-1]}$()#{endif}#
|
||||
END TYPE private_item_type_${valuetype}$
|
||||
|
||||
!this is an internal type
|
||||
|
|
|
|||
|
|
@ -15,7 +15,9 @@ MODULE routine_map
|
|||
|
||||
#:call hash_map(prefix='routine_map', &
|
||||
key_type='CHARACTER(LEN=default_string_length)', &
|
||||
value_type='INTEGER(kind=int_4)')
|
||||
value_type='INTEGER(kind=int_4)', &
|
||||
key_default_init=' = ""', &
|
||||
value_default_init=' = 0_int_4')
|
||||
#:endcall hash_map
|
||||
|
||||
! **************************************************************************************************
|
||||
|
|
|
|||
|
|
@ -33,10 +33,10 @@ MODULE cp_control_types
|
|||
! \brief Control parameters for pw grids
|
||||
! **************************************************************************************************
|
||||
TYPE pw_grid_option
|
||||
LOGICAL :: spherical
|
||||
LOGICAL :: fullspace
|
||||
INTEGER, DIMENSION(2) :: distribution_layout
|
||||
INTEGER :: blocked
|
||||
LOGICAL :: spherical = .FALSE.
|
||||
LOGICAL :: fullspace = .FALSE.
|
||||
INTEGER, DIMENSION(2) :: distribution_layout = 0
|
||||
INTEGER :: blocked = 0
|
||||
END TYPE pw_grid_option
|
||||
! **************************************************************************************************
|
||||
! \brief parameters for EMD/RTP calculations involving MO projections
|
||||
|
|
@ -60,32 +60,32 @@ MODULE cp_control_types
|
|||
! \brief Control parameters for REAL_TIME_PROPAGATION calculations
|
||||
! **************************************************************************************************
|
||||
TYPE rtp_control_type
|
||||
LOGICAL :: converged
|
||||
REAL(KIND=dp) :: eps_ener
|
||||
INTEGER :: max_iter
|
||||
INTEGER :: mat_exp
|
||||
INTEGER :: propagator
|
||||
LOGICAL :: fixed_ions
|
||||
INTEGER :: initial_wfn
|
||||
REAL(dp) :: eps_exp
|
||||
LOGICAL :: initial_step
|
||||
LOGICAL :: hfx_redistribute
|
||||
INTEGER :: aspc_order
|
||||
INTEGER :: sc_check_start
|
||||
LOGICAL :: apply_delta_pulse
|
||||
LOGICAL :: apply_delta_pulse_mag
|
||||
LOGICAL :: periodic
|
||||
LOGICAL :: linear_scaling
|
||||
LOGICAL :: write_restart
|
||||
INTEGER :: mcweeny_max_iter
|
||||
INTEGER :: acc_ref
|
||||
REAL(dp) :: mcweeny_eps
|
||||
INTEGER, DIMENSION(3) :: delta_pulse_direction
|
||||
REAL(KIND=dp) :: delta_pulse_scale
|
||||
LOGICAL :: velocity_gauge
|
||||
REAL(KIND=dp), DIMENSION(3) :: vec_pot
|
||||
LOGICAL :: nl_gauge_transform
|
||||
LOGICAL :: is_proj_mo
|
||||
LOGICAL :: converged = .FALSE.
|
||||
REAL(KIND=dp) :: eps_ener = 0.0_dp
|
||||
INTEGER :: max_iter = 0
|
||||
INTEGER :: mat_exp = 0
|
||||
INTEGER :: propagator = 0
|
||||
LOGICAL :: fixed_ions = .FALSE.
|
||||
INTEGER :: initial_wfn = 0
|
||||
REAL(dp) :: eps_exp = 0.0_dp
|
||||
LOGICAL :: initial_step = .FALSE.
|
||||
LOGICAL :: hfx_redistribute = .FALSE.
|
||||
INTEGER :: aspc_order = 0
|
||||
INTEGER :: sc_check_start = 0
|
||||
LOGICAL :: apply_delta_pulse = .FALSE.
|
||||
LOGICAL :: apply_delta_pulse_mag = .FALSE.
|
||||
LOGICAL :: periodic = .FALSE.
|
||||
LOGICAL :: linear_scaling = .FALSE.
|
||||
LOGICAL :: write_restart = .FALSE.
|
||||
INTEGER :: mcweeny_max_iter = 0
|
||||
INTEGER :: acc_ref = 0
|
||||
REAL(dp) :: mcweeny_eps = 0.0_dp
|
||||
INTEGER, DIMENSION(3) :: delta_pulse_direction = 0
|
||||
REAL(KIND=dp) :: delta_pulse_scale = 0.0_dp
|
||||
LOGICAL :: velocity_gauge = .FALSE.
|
||||
REAL(KIND=dp), DIMENSION(3) :: vec_pot = 0.0_dp
|
||||
LOGICAL :: nl_gauge_transform = .FALSE.
|
||||
LOGICAL :: is_proj_mo = .FALSE.
|
||||
TYPE(proj_mo_p_type), DIMENSION(:), &
|
||||
POINTER :: proj_mo_list => NULL()
|
||||
END TYPE rtp_control_type
|
||||
|
|
@ -93,27 +93,27 @@ MODULE cp_control_types
|
|||
! \brief Control parameters for DFTB calculations
|
||||
! **************************************************************************************************
|
||||
TYPE dftb_control_type
|
||||
LOGICAL :: self_consistent
|
||||
LOGICAL :: orthogonal_basis
|
||||
LOGICAL :: dispersion
|
||||
INTEGER :: dispersion_type
|
||||
LOGICAL :: dftb3_diagonal
|
||||
LOGICAL :: hb_sr_damp
|
||||
REAL(KIND=dp) :: hb_sr_para
|
||||
REAL(KIND=dp) :: eps_disp
|
||||
REAL(KIND=dp) :: epscn
|
||||
REAL(KIND=dp) :: exp_pre
|
||||
REAL(KIND=dp) :: scaling
|
||||
REAL(KIND=dp) :: rcdisp
|
||||
REAL(KIND=dp), DIMENSION(3) :: sd3
|
||||
REAL(KIND=dp), DIMENSION(4) :: sd3bj
|
||||
LOGICAL :: do_ewald
|
||||
CHARACTER(LEN=default_path_length) :: sk_file_path
|
||||
CHARACTER(LEN=default_path_length) :: sk_file_list
|
||||
LOGICAL :: self_consistent = .FALSE.
|
||||
LOGICAL :: orthogonal_basis = .FALSE.
|
||||
LOGICAL :: dispersion = .FALSE.
|
||||
INTEGER :: dispersion_type = 0
|
||||
LOGICAL :: dftb3_diagonal = .FALSE.
|
||||
LOGICAL :: hb_sr_damp = .FALSE.
|
||||
REAL(KIND=dp) :: hb_sr_para = 0.0_dp
|
||||
REAL(KIND=dp) :: eps_disp = 0.0_dp
|
||||
REAL(KIND=dp) :: epscn = 0.0_dp
|
||||
REAL(KIND=dp) :: exp_pre = 0.0_dp
|
||||
REAL(KIND=dp) :: scaling = 0.0_dp
|
||||
REAL(KIND=dp) :: rcdisp = 0.0_dp
|
||||
REAL(KIND=dp), DIMENSION(3) :: sd3 = 0.0_dp
|
||||
REAL(KIND=dp), DIMENSION(4) :: sd3bj = 0.0_dp
|
||||
LOGICAL :: do_ewald = .FALSE.
|
||||
CHARACTER(LEN=default_path_length) :: sk_file_path = ""
|
||||
CHARACTER(LEN=default_path_length) :: sk_file_list = ""
|
||||
CHARACTER(LEN=default_string_length), &
|
||||
DIMENSION(:, :), POINTER :: sk_pair_list
|
||||
CHARACTER(LEN=default_path_length) :: uff_force_field
|
||||
CHARACTER(LEN=default_path_length) :: dispersion_parameter_file
|
||||
DIMENSION(:, :), POINTER :: sk_pair_list => NULL()
|
||||
CHARACTER(LEN=default_path_length) :: uff_force_field = ""
|
||||
CHARACTER(LEN=default_path_length) :: dispersion_parameter_file = ""
|
||||
END TYPE dftb_control_type
|
||||
|
||||
! **************************************************************************************************
|
||||
|
|
@ -121,155 +121,155 @@ MODULE cp_control_types
|
|||
! **************************************************************************************************
|
||||
TYPE xtb_control_type
|
||||
!
|
||||
LOGICAL :: do_ewald
|
||||
LOGICAL :: do_ewald = .FALSE.
|
||||
!
|
||||
INTEGER :: sto_ng
|
||||
INTEGER :: h_sto_ng
|
||||
INTEGER :: sto_ng = 0
|
||||
INTEGER :: h_sto_ng = 0
|
||||
!
|
||||
CHARACTER(LEN=default_path_length) :: parameter_file_path
|
||||
CHARACTER(LEN=default_path_length) :: parameter_file_name
|
||||
CHARACTER(LEN=default_path_length) :: parameter_file_path = ""
|
||||
CHARACTER(LEN=default_path_length) :: parameter_file_name = ""
|
||||
!
|
||||
CHARACTER(LEN=default_path_length) :: dispersion_parameter_file
|
||||
REAL(KIND=dp) :: epscn
|
||||
REAL(KIND=dp) :: rcdisp
|
||||
REAL(KIND=dp) :: s6, s8
|
||||
REAL(KIND=dp) :: a1, a2
|
||||
CHARACTER(LEN=default_path_length) :: dispersion_parameter_file = ""
|
||||
REAL(KIND=dp) :: epscn = 0.0_dp
|
||||
REAL(KIND=dp) :: rcdisp = 0.0_dp
|
||||
REAL(KIND=dp) :: s6 = 0.0_dp, s8 = 0.0_dp
|
||||
REAL(KIND=dp) :: a1 = 0.0_dp, a2 = 0.0_dp
|
||||
!
|
||||
REAL(KIND=dp) :: ks, kp, kd, ksp, k2sh
|
||||
REAL(KIND=dp) :: kg, kf
|
||||
REAL(KIND=dp) :: kcns, kcnp, kcnd
|
||||
REAL(KIND=dp) :: ken
|
||||
REAL(KIND=dp) :: kxr, kx2
|
||||
REAL(KIND=dp) :: ks = 0.0_dp, kp = 0.0_dp, kd = 0.0_dp, ksp = 0.0_dp, k2sh = 0.0_dp
|
||||
REAL(KIND=dp) :: kg = 0.0_dp, kf = 0.0_dp
|
||||
REAL(KIND=dp) :: kcns = 0.0_dp, kcnp = 0.0_dp, kcnd = 0.0_dp
|
||||
REAL(KIND=dp) :: ken = 0.0_dp
|
||||
REAL(KIND=dp) :: kxr = 0.0_dp, kx2 = 0.0_dp
|
||||
!
|
||||
LOGICAL :: xb_interaction
|
||||
LOGICAL :: do_nonbonded
|
||||
LOGICAL :: coulomb_interaction
|
||||
LOGICAL :: coulomb_lr
|
||||
LOGICAL :: tb3_interaction
|
||||
LOGICAL :: check_atomic_charges
|
||||
LOGICAL :: old_coulomb_damping
|
||||
LOGICAL :: xb_interaction = .FALSE.
|
||||
LOGICAL :: do_nonbonded = .FALSE.
|
||||
LOGICAL :: coulomb_interaction = .FALSE.
|
||||
LOGICAL :: coulomb_lr = .FALSE.
|
||||
LOGICAL :: tb3_interaction = .FALSE.
|
||||
LOGICAL :: check_atomic_charges = .FALSE.
|
||||
LOGICAL :: old_coulomb_damping = .FALSE.
|
||||
!
|
||||
REAL(KIND=dp) :: xb_radius
|
||||
REAL(KIND=dp) :: coulomb_sr_cut
|
||||
REAL(KIND=dp) :: coulomb_sr_eps
|
||||
REAL(KIND=dp) :: xb_radius = 0.0_dp
|
||||
REAL(KIND=dp) :: coulomb_sr_cut = 0.0_dp
|
||||
REAL(KIND=dp) :: coulomb_sr_eps = 0.0_dp
|
||||
!
|
||||
CHARACTER(LEN=default_string_length), &
|
||||
DIMENSION(:, :), POINTER :: kab_param
|
||||
INTEGER, DIMENSION(:, :), POINTER :: kab_types
|
||||
INTEGER :: kab_nval
|
||||
REAL, DIMENSION(:), POINTER :: kab_vals
|
||||
DIMENSION(:, :), POINTER :: kab_param => NULL()
|
||||
INTEGER, DIMENSION(:, :), POINTER :: kab_types => NULL()
|
||||
INTEGER :: kab_nval = 0
|
||||
REAL, DIMENSION(:), POINTER :: kab_vals => NULL()
|
||||
!
|
||||
TYPE(pair_potential_p_type), POINTER :: nonbonded
|
||||
TYPE(pair_potential_p_type), POINTER :: nonbonded => NULL()
|
||||
END TYPE xtb_control_type
|
||||
|
||||
! **************************************************************************************************
|
||||
! \brief Control parameters for semi empirical calculations
|
||||
! **************************************************************************************************
|
||||
TYPE semi_empirical_control_type
|
||||
LOGICAL :: orthogonal_basis
|
||||
LOGICAL :: analytical_gradients
|
||||
LOGICAL :: force_kdsod_EX
|
||||
LOGICAL :: do_ewald, do_ewald_r3, do_ewald_gks
|
||||
INTEGER :: integral_screening, periodic_type
|
||||
INTEGER :: max_multipole
|
||||
INTEGER :: ga_ncells
|
||||
REAL(KIND=dp) :: delta
|
||||
LOGICAL :: orthogonal_basis = .FALSE.
|
||||
LOGICAL :: analytical_gradients = .FALSE.
|
||||
LOGICAL :: force_kdsod_EX = .FALSE.
|
||||
LOGICAL :: do_ewald = .FALSE., do_ewald_r3 = .FALSE., do_ewald_gks = .FALSE.
|
||||
INTEGER :: integral_screening = 0, periodic_type = 0
|
||||
INTEGER :: max_multipole = 0
|
||||
INTEGER :: ga_ncells = 0
|
||||
REAL(KIND=dp) :: delta = 0.0_dp
|
||||
! Dispersion pair potential
|
||||
LOGICAL :: dispersion
|
||||
REAL(KIND=dp) :: rcdisp
|
||||
REAL(KIND=dp) :: epscn
|
||||
REAL(KIND=dp), DIMENSION(3) :: sd3
|
||||
CHARACTER(LEN=default_path_length) :: dispersion_parameter_file
|
||||
LOGICAL :: dispersion = .FALSE.
|
||||
REAL(KIND=dp) :: rcdisp = 0.0_dp
|
||||
REAL(KIND=dp) :: epscn = 0.0_dp
|
||||
REAL(KIND=dp), DIMENSION(3) :: sd3 = 0.0_dp
|
||||
CHARACTER(LEN=default_path_length) :: dispersion_parameter_file = ""
|
||||
! Parameters controlling the evaluation of the integrals
|
||||
REAL(KIND=dp) :: cutoff_lrc, taper_lrc, range_lrc
|
||||
REAL(KIND=dp) :: cutoff_cou, taper_cou, range_cou
|
||||
REAL(KIND=dp) :: cutoff_exc, taper_exc, range_exc
|
||||
REAL(KIND=dp) :: taper_scr, range_scr
|
||||
REAL(KIND=dp) :: cutoff_lrc = 0.0_dp, taper_lrc = 0.0_dp, range_lrc = 0.0_dp
|
||||
REAL(KIND=dp) :: cutoff_cou = 0.0_dp, taper_cou = 0.0_dp, range_cou = 0.0_dp
|
||||
REAL(KIND=dp) :: cutoff_exc = 0.0_dp, taper_exc = 0.0_dp, range_exc = 0.0_dp
|
||||
REAL(KIND=dp) :: taper_scr = 0.0_dp, range_scr = 0.0_dp
|
||||
END TYPE semi_empirical_control_type
|
||||
|
||||
! **************************************************************************************************
|
||||
! \brief Control parameters for GAPW method within QUICKSTEP ***
|
||||
! **************************************************************************************************
|
||||
TYPE gapw_control_type
|
||||
INTEGER :: basis_1c
|
||||
REAL(KIND=dp) :: eps_fit, &
|
||||
eps_iso, &
|
||||
eps_Vrho0, &
|
||||
eps_svd, &
|
||||
eps_cpc
|
||||
INTEGER :: ladd_rho0, &
|
||||
lmax_rho0, &
|
||||
lmax_sphere, &
|
||||
quadrature
|
||||
LOGICAL :: lrho1_eq_lrho0
|
||||
LOGICAL :: alpha0_hard_from_input, &
|
||||
force_paw, &
|
||||
non_paw_atoms, &
|
||||
nopaw_as_gpw
|
||||
REAL(KIND=dp) :: alpha0_hard
|
||||
REAL(KIND=dp) :: max_rad_local
|
||||
INTEGER :: basis_1c = 0
|
||||
REAL(KIND=dp) :: eps_fit = 0.0_dp, &
|
||||
eps_iso = 0.0_dp, &
|
||||
eps_Vrho0 = 0.0_dp, &
|
||||
eps_svd = 0.0_dp, &
|
||||
eps_cpc = 0.0_dp
|
||||
INTEGER :: ladd_rho0 = 0, &
|
||||
lmax_rho0 = 0, &
|
||||
lmax_sphere = 0, &
|
||||
quadrature = 0
|
||||
LOGICAL :: lrho1_eq_lrho0 = .FALSE.
|
||||
LOGICAL :: alpha0_hard_from_input = .FALSE., &
|
||||
force_paw = .FALSE., &
|
||||
non_paw_atoms = .FALSE., &
|
||||
nopaw_as_gpw = .FALSE.
|
||||
REAL(KIND=dp) :: alpha0_hard = 0.0_dp
|
||||
REAL(KIND=dp) :: max_rad_local = 0.0_dp
|
||||
END TYPE gapw_control_type
|
||||
! **************************************************************************************************
|
||||
! \brief parameters for calculations involving a time dependent electric field
|
||||
! **************************************************************************************************
|
||||
TYPE efield_type
|
||||
REAL(KIND=dp) :: actual_time
|
||||
REAL(KIND=dp) :: actual_time = 0.0_dp
|
||||
REAL(KIND=dp), DIMENSION(:), POINTER :: polarisation => NULL()
|
||||
INTEGER :: envelop_id
|
||||
INTEGER :: envelop_id = 0
|
||||
REAL(KIND=dp), DIMENSION(:), POINTER :: envelop_r_vars => NULL()
|
||||
INTEGER, DIMENSION(:), POINTER :: envelop_i_vars
|
||||
REAL(KIND=dp) :: strength
|
||||
REAL(KIND=dp) :: phase_offset
|
||||
REAL(KIND=dp) :: wavelength
|
||||
INTEGER, DIMENSION(:), POINTER :: envelop_i_vars => NULL()
|
||||
REAL(KIND=dp) :: strength = 0.0_dp
|
||||
REAL(KIND=dp) :: phase_offset = 0.0_dp
|
||||
REAL(KIND=dp) :: wavelength = 0.0_dp
|
||||
REAL(KIND=dp), DIMENSION(3) :: vec_pot_initial = 0.0_dp
|
||||
END TYPE efield_type
|
||||
|
||||
TYPE efield_p_type
|
||||
TYPE(efield_type), POINTER :: efield
|
||||
TYPE(efield_type), POINTER :: efield => NULL()
|
||||
END TYPE efield_p_type
|
||||
! **************************************************************************************************
|
||||
! \brief parameters for calculations involving a time dependent electric field
|
||||
! **************************************************************************************************
|
||||
TYPE period_efield_type
|
||||
LOGICAL :: displacement_field
|
||||
REAL(KIND=dp), DIMENSION(3) :: polarisation
|
||||
REAL(KIND=dp), DIMENSION(3) :: d_filter
|
||||
REAL(KIND=dp) :: strength
|
||||
LOGICAL :: displacement_field = .FALSE.
|
||||
REAL(KIND=dp), DIMENSION(3) :: polarisation = 0.0_dp
|
||||
REAL(KIND=dp), DIMENSION(3) :: d_filter = 0.0_dp
|
||||
REAL(KIND=dp) :: strength = 0.0_dp
|
||||
END TYPE period_efield_type
|
||||
|
||||
! **************************************************************************************************
|
||||
! \brief some parameters useful for mulliken_restraints
|
||||
! **************************************************************************************************
|
||||
TYPE mulliken_restraint_type
|
||||
REAL(KIND=dp) :: strength
|
||||
REAL(KIND=dp) :: TARGET
|
||||
INTEGER :: natoms
|
||||
INTEGER, POINTER, DIMENSION(:) :: atoms
|
||||
REAL(KIND=dp) :: strength = 0.0_dp
|
||||
REAL(KIND=dp) :: TARGET = 0.0_dp
|
||||
INTEGER :: natoms = 0
|
||||
INTEGER, POINTER, DIMENSION(:) :: atoms => NULL()
|
||||
END TYPE mulliken_restraint_type
|
||||
|
||||
! **************************************************************************************************
|
||||
! \brief some parameters useful for ddapc_restraints
|
||||
! **************************************************************************************************
|
||||
TYPE ddapc_restraint_type
|
||||
INTEGER :: ref_count
|
||||
REAL(KIND=dp) :: strength
|
||||
REAL(KIND=dp) :: TARGET
|
||||
REAL(KIND=dp) :: ddapc_order_p
|
||||
INTEGER :: functional_form
|
||||
INTEGER :: natoms
|
||||
INTEGER, POINTER, DIMENSION(:) :: atoms
|
||||
REAL(KIND=dp), POINTER, DIMENSION(:) :: coeff
|
||||
INTEGER :: density_type
|
||||
INTEGER :: ref_count = 0
|
||||
REAL(KIND=dp) :: strength = 0.0_dp
|
||||
REAL(KIND=dp) :: TARGET = 0.0_dp
|
||||
REAL(KIND=dp) :: ddapc_order_p = 0.0_dp
|
||||
INTEGER :: functional_form = 0
|
||||
INTEGER :: natoms = 0
|
||||
INTEGER, POINTER, DIMENSION(:) :: atoms => NULL()
|
||||
REAL(KIND=dp), POINTER, DIMENSION(:) :: coeff => NULL()
|
||||
INTEGER :: density_type = 0
|
||||
END TYPE ddapc_restraint_type
|
||||
|
||||
! **************************************************************************************************
|
||||
! \brief some parameters useful for s2_restraints
|
||||
! **************************************************************************************************
|
||||
TYPE s2_restraint_type
|
||||
REAL(KIND=dp) :: strength
|
||||
REAL(KIND=dp) :: TARGET
|
||||
REAL(KIND=dp) :: s2_order_p
|
||||
INTEGER :: functional_form
|
||||
REAL(KIND=dp) :: strength = 0.0_dp
|
||||
REAL(KIND=dp) :: TARGET = 0.0_dp
|
||||
REAL(KIND=dp) :: s2_order_p = 0.0_dp
|
||||
INTEGER :: functional_form = 0
|
||||
END TYPE s2_restraint_type
|
||||
|
||||
! **************************************************************************************************
|
||||
|
|
@ -280,14 +280,14 @@ MODULE cp_control_types
|
|||
END TYPE admm_block_type
|
||||
|
||||
TYPE admm_control_type
|
||||
REAL(KIND=dp) :: eps_filter
|
||||
INTEGER :: purification_method
|
||||
INTEGER :: method
|
||||
LOGICAL :: charge_constrain
|
||||
INTEGER :: scaling_model
|
||||
INTEGER :: aux_exch_func
|
||||
LOGICAL :: aux_exch_func_param
|
||||
REAL(KIND=dp), DIMENSION(3) :: aux_x_param
|
||||
REAL(KIND=dp) :: eps_filter = 0.0_dp
|
||||
INTEGER :: purification_method = 0
|
||||
INTEGER :: method = 0
|
||||
LOGICAL :: charge_constrain = .FALSE.
|
||||
INTEGER :: scaling_model = 0
|
||||
INTEGER :: aux_exch_func = 0
|
||||
LOGICAL :: aux_exch_func_param = .FALSE.
|
||||
REAL(KIND=dp), DIMENSION(3) :: aux_x_param = 0.0_dp
|
||||
TYPE(admm_block_type), DIMENSION(:), &
|
||||
ALLOCATABLE :: blocks
|
||||
END TYPE admm_control_type
|
||||
|
|
@ -296,19 +296,19 @@ MODULE cp_control_types
|
|||
! \brief Parameters for external potential
|
||||
! **************************************************************************************************
|
||||
TYPE expot_control_type
|
||||
LOGICAL :: read_from_cube
|
||||
LOGICAL :: maxwell_solver
|
||||
LOGICAL :: static
|
||||
REAL(KIND=dp) :: scaling_factor
|
||||
LOGICAL :: read_from_cube = .FALSE.
|
||||
LOGICAL :: maxwell_solver = .FALSE.
|
||||
LOGICAL :: static = .FALSE.
|
||||
REAL(KIND=dp) :: scaling_factor = 0.0_dp
|
||||
END TYPE expot_control_type
|
||||
|
||||
! **************************************************************************************************
|
||||
! \brief Parameters useful for Maxwell equation evaluation of external potential
|
||||
! **************************************************************************************************
|
||||
TYPE maxwell_control_type
|
||||
LOGICAL :: log_test
|
||||
INTEGER :: int_test
|
||||
REAL(KIND=dp) :: real_test
|
||||
LOGICAL :: log_test = .FALSE.
|
||||
INTEGER :: int_test = 0
|
||||
REAL(KIND=dp) :: real_test = 0.0_dp
|
||||
END TYPE maxwell_control_type
|
||||
|
||||
! **************************************************************************************************
|
||||
|
|
@ -317,63 +317,63 @@ MODULE cp_control_types
|
|||
! Gaussian-type functions (primitive basis functions).
|
||||
! **************************************************************************************************
|
||||
TYPE qs_control_type
|
||||
INTEGER :: method_id
|
||||
REAL(KIND=dp) :: eps_core_charge, &
|
||||
eps_kg_orb, &
|
||||
eps_pgf_orb, &
|
||||
eps_ppl, &
|
||||
eps_ppnl, &
|
||||
eps_rho_gspace, &
|
||||
eps_rho_rspace, &
|
||||
eps_filter_matrix, &
|
||||
eps_gvg_rspace, &
|
||||
progression_factor, &
|
||||
relative_cutoff
|
||||
LOGICAL :: do_almo_scf
|
||||
LOGICAL :: do_ls_scf
|
||||
LOGICAL :: do_kg
|
||||
LOGICAL :: commensurate_mgrids
|
||||
LOGICAL :: realspace_mgrids
|
||||
LOGICAL :: gapw, gapw_xc, gpw, pao
|
||||
LOGICAL :: lrigpw, rigpw
|
||||
LOGICAL :: lri_optbas
|
||||
LOGICAL :: ofgpw
|
||||
LOGICAL :: dftb
|
||||
LOGICAL :: xtb
|
||||
LOGICAL :: semi_empirical
|
||||
LOGICAL :: mulliken_restraint
|
||||
LOGICAL :: ddapc_restraint
|
||||
LOGICAL :: ddapc_restraint_is_spin
|
||||
LOGICAL :: ddapc_explicit_potential
|
||||
LOGICAL :: cdft
|
||||
LOGICAL :: et_coupling_calc
|
||||
LOGICAL :: s2_restraint
|
||||
INTEGER :: do_ppl_method
|
||||
INTEGER :: wf_interpolation_method_nr
|
||||
INTEGER :: wf_extrapolation_order
|
||||
INTEGER :: periodicity
|
||||
REAL(KIND=dp) :: pairlist_radius
|
||||
REAL(KIND=dp) :: cutoff
|
||||
REAL(KIND=dp), DIMENSION(:), POINTER :: e_cutoff
|
||||
INTEGER :: method_id = 0
|
||||
REAL(KIND=dp) :: eps_core_charge = 0.0_dp, &
|
||||
eps_kg_orb = 0.0_dp, &
|
||||
eps_pgf_orb = 0.0_dp, &
|
||||
eps_ppl = 0.0_dp, &
|
||||
eps_ppnl = 0.0_dp, &
|
||||
eps_rho_gspace = 0.0_dp, &
|
||||
eps_rho_rspace = 0.0_dp, &
|
||||
eps_filter_matrix = 0.0_dp, &
|
||||
eps_gvg_rspace = 0.0_dp, &
|
||||
progression_factor = 0.0_dp, &
|
||||
relative_cutoff = 0.0_dp
|
||||
LOGICAL :: do_almo_scf = .FALSE.
|
||||
LOGICAL :: do_ls_scf = .FALSE.
|
||||
LOGICAL :: do_kg = .FALSE.
|
||||
LOGICAL :: commensurate_mgrids = .FALSE.
|
||||
LOGICAL :: realspace_mgrids = .FALSE.
|
||||
LOGICAL :: gapw = .FALSE., gapw_xc = .FALSE., gpw = .FALSE., pao = .FALSE.
|
||||
LOGICAL :: lrigpw = .FALSE., rigpw = .FALSE.
|
||||
LOGICAL :: lri_optbas = .FALSE.
|
||||
LOGICAL :: ofgpw = .FALSE.
|
||||
LOGICAL :: dftb = .FALSE.
|
||||
LOGICAL :: xtb = .FALSE.
|
||||
LOGICAL :: semi_empirical = .FALSE.
|
||||
LOGICAL :: mulliken_restraint = .FALSE.
|
||||
LOGICAL :: ddapc_restraint = .FALSE.
|
||||
LOGICAL :: ddapc_restraint_is_spin = .FALSE.
|
||||
LOGICAL :: ddapc_explicit_potential = .FALSE.
|
||||
LOGICAL :: cdft = .FALSE.
|
||||
LOGICAL :: et_coupling_calc = .FALSE.
|
||||
LOGICAL :: s2_restraint = .FALSE.
|
||||
INTEGER :: do_ppl_method = 0
|
||||
INTEGER :: wf_interpolation_method_nr = 0
|
||||
INTEGER :: wf_extrapolation_order = 0
|
||||
INTEGER :: periodicity = 0
|
||||
REAL(KIND=dp) :: pairlist_radius = 0.0_dp
|
||||
REAL(KIND=dp) :: cutoff = 0.0_dp
|
||||
REAL(KIND=dp), DIMENSION(:), POINTER :: e_cutoff => NULL()
|
||||
TYPE(mulliken_restraint_type), &
|
||||
POINTER :: mulliken_restraint_control
|
||||
POINTER :: mulliken_restraint_control => NULL()
|
||||
TYPE(ddapc_restraint_type), &
|
||||
DIMENSION(:), POINTER :: ddapc_restraint_control
|
||||
TYPE(cdft_control_type), POINTER :: cdft_control
|
||||
TYPE(s2_restraint_type), POINTER :: s2_restraint_control
|
||||
TYPE(dftb_control_type), POINTER :: dftb_control
|
||||
TYPE(xtb_control_type), POINTER :: xtb_control
|
||||
DIMENSION(:), POINTER :: ddapc_restraint_control => NULL()
|
||||
TYPE(cdft_control_type), POINTER :: cdft_control => NULL()
|
||||
TYPE(s2_restraint_type), POINTER :: s2_restraint_control => NULL()
|
||||
TYPE(dftb_control_type), POINTER :: dftb_control => NULL()
|
||||
TYPE(xtb_control_type), POINTER :: xtb_control => NULL()
|
||||
TYPE(semi_empirical_control_type), &
|
||||
POINTER :: se_control
|
||||
TYPE(gapw_control_type), POINTER :: gapw_control
|
||||
TYPE(pw_grid_option) :: pw_grid_opt
|
||||
LOGICAL :: skip_load_balance_distributed
|
||||
POINTER :: se_control => NULL()
|
||||
TYPE(gapw_control_type), POINTER :: gapw_control => NULL()
|
||||
TYPE(pw_grid_option) :: pw_grid_opt = pw_grid_option()
|
||||
LOGICAL :: skip_load_balance_distributed = .FALSE.
|
||||
! Types of subsystems for embedding
|
||||
LOGICAL :: ref_embed_subsys
|
||||
LOGICAL :: cluster_embed_subsys
|
||||
LOGICAL :: high_level_embed_subsys
|
||||
LOGICAL :: dfet_embedded
|
||||
LOGICAL :: dmfet_embedded
|
||||
LOGICAL :: ref_embed_subsys = .FALSE.
|
||||
LOGICAL :: cluster_embed_subsys = .FALSE.
|
||||
LOGICAL :: high_level_embed_subsys = .FALSE.
|
||||
LOGICAL :: dfet_embedded = .FALSE.
|
||||
LOGICAL :: dmfet_embedded = .FALSE.
|
||||
END TYPE qs_control_type
|
||||
|
||||
! **************************************************************************************************
|
||||
|
|
@ -415,26 +415,26 @@ MODULE cp_control_types
|
|||
! **************************************************************************************************
|
||||
TYPE tddfpt_control_type
|
||||
TYPE(cp_fm_type), DIMENSION(:), &
|
||||
POINTER :: lumos
|
||||
REAL(KIND=dp) :: tolerance
|
||||
INTEGER :: n_ev
|
||||
INTEGER :: max_kv
|
||||
INTEGER :: n_restarts
|
||||
INTEGER :: n_reortho
|
||||
LOGICAL :: do_kernel
|
||||
LOGICAL :: lsd_singlets
|
||||
LOGICAL :: invert_S
|
||||
LOGICAL :: precond
|
||||
LOGICAL :: drho_by_collocation
|
||||
LOGICAL :: use_kinetic_energy_density
|
||||
INTEGER :: res_etype
|
||||
INTEGER :: diag_method
|
||||
INTEGER :: oe_corr
|
||||
INTEGER :: sic_method_id
|
||||
INTEGER :: sic_list_id
|
||||
REAL(KIND=dp) :: sic_scaling_a, sic_scaling_b
|
||||
POINTER :: lumos => NULL()
|
||||
REAL(KIND=dp) :: tolerance = 0.0_dp
|
||||
INTEGER :: n_ev = 0
|
||||
INTEGER :: max_kv = 0
|
||||
INTEGER :: n_restarts = 0
|
||||
INTEGER :: n_reortho = 0
|
||||
LOGICAL :: do_kernel = .FALSE.
|
||||
LOGICAL :: lsd_singlets = .FALSE.
|
||||
LOGICAL :: invert_S = .FALSE.
|
||||
LOGICAL :: precond = .FALSE.
|
||||
LOGICAL :: drho_by_collocation = .FALSE.
|
||||
LOGICAL :: use_kinetic_energy_density = .FALSE.
|
||||
INTEGER :: res_etype = 0
|
||||
INTEGER :: diag_method = 0
|
||||
INTEGER :: oe_corr = 0
|
||||
INTEGER :: sic_method_id = 0
|
||||
INTEGER :: sic_list_id = 0
|
||||
REAL(KIND=dp) :: sic_scaling_a = 0.0_dp, sic_scaling_b = 0.0_dp
|
||||
REAL(KIND=dp), DIMENSION(:, :), &
|
||||
POINTER :: lumos_eigenvalues
|
||||
POINTER :: lumos_eigenvalues => NULL()
|
||||
END TYPE tddfpt_control_type
|
||||
|
||||
! **************************************************************************************************
|
||||
|
|
@ -443,14 +443,14 @@ MODULE cp_control_types
|
|||
! \par NOTES
|
||||
! **************************************************************************************************
|
||||
TYPE stda_control_type
|
||||
LOGICAL :: do_ewald
|
||||
LOGICAL :: do_exchange
|
||||
REAL(KIND=dp) :: hfx_fraction
|
||||
REAL(KIND=dp) :: eps_td_filter
|
||||
REAL(KIND=dp) :: mn_alpha
|
||||
REAL(KIND=dp) :: mn_beta
|
||||
REAL(KIND=dp) :: coulomb_sr_cut
|
||||
REAL(KIND=dp) :: coulomb_sr_eps
|
||||
LOGICAL :: do_ewald = .FALSE.
|
||||
LOGICAL :: do_exchange = .FALSE.
|
||||
REAL(KIND=dp) :: hfx_fraction = 0.0_dp
|
||||
REAL(KIND=dp) :: eps_td_filter = 0.0_dp
|
||||
REAL(KIND=dp) :: mn_alpha = 0.0_dp
|
||||
REAL(KIND=dp) :: mn_beta = 0.0_dp
|
||||
REAL(KIND=dp) :: coulomb_sr_cut = 0.0_dp
|
||||
REAL(KIND=dp) :: coulomb_sr_eps = 0.0_dp
|
||||
END TYPE stda_control_type
|
||||
|
||||
! **************************************************************************************************
|
||||
|
|
@ -458,87 +458,87 @@ MODULE cp_control_types
|
|||
! **************************************************************************************************
|
||||
TYPE tddfpt2_control_type
|
||||
!> compute TDDFPT excitation energies and oscillator strengths
|
||||
LOGICAL :: enabled
|
||||
LOGICAL :: enabled = .FALSE.
|
||||
!> number of excited states to converge
|
||||
INTEGER :: nstates
|
||||
INTEGER :: nstates = 0
|
||||
!> maximal number of iterations to be performed
|
||||
INTEGER :: niters
|
||||
INTEGER :: niters = 0
|
||||
!> maximal number of Krylov space vectors
|
||||
INTEGER :: nkvs
|
||||
INTEGER :: nkvs = 0
|
||||
!> number of unoccupied (virtual) molecular orbitals to consider
|
||||
INTEGER :: nlumo
|
||||
INTEGER :: nlumo = 0
|
||||
!> minimal number of MPI processes to be used per excited state
|
||||
INTEGER :: nprocs
|
||||
INTEGER :: nprocs = 0
|
||||
!> type of kernel function/approximation to use
|
||||
INTEGER :: kernel
|
||||
INTEGER :: kernel = 0
|
||||
!> for full kernel, do we have HFX/ADMM
|
||||
LOGICAL :: do_hfx
|
||||
LOGICAL :: do_admm
|
||||
LOGICAL :: do_hfx = .FALSE.
|
||||
LOGICAL :: do_admm = .FALSE.
|
||||
!> for full kernel, do we have long-range HFX and/or Kxc potential
|
||||
LOGICAL :: do_hfxlr
|
||||
LOGICAL :: do_exck
|
||||
LOGICAL :: do_hfxlr = .FALSE.
|
||||
LOGICAL :: do_exck = .FALSE.
|
||||
!> options used in sTDA calculation (Kernel)
|
||||
TYPE(stda_control_type) :: stda_control
|
||||
TYPE(stda_control_type) :: stda_control = stda_control_type()
|
||||
!> algorithm to correct orbital energies
|
||||
INTEGER :: oe_corr
|
||||
INTEGER :: oe_corr = 0
|
||||
!> eigenvalue shifts
|
||||
REAL(KIND=dp) :: ev_shift, eos_shift
|
||||
REAL(KIND=dp) :: ev_shift = 0.0_dp, eos_shift = 0.0_dp
|
||||
!> target accuracy
|
||||
REAL(kind=dp) :: conv
|
||||
REAL(kind=dp) :: conv = 0.0_dp
|
||||
!> the smallest excitation amplitude to print
|
||||
REAL(kind=dp) :: min_excitation_amplitude
|
||||
REAL(kind=dp) :: min_excitation_amplitude = 0.0_dp
|
||||
!> threshold which controls when two wave functions considered to be orthogonal:
|
||||
!> maxabs(Ci^T * S * Cj) <= orthogonal_eps
|
||||
REAL(kind=dp) :: orthogonal_eps
|
||||
REAL(kind=dp) :: orthogonal_eps = 0.0_dp
|
||||
!> read guess wave functions from restart file if exists
|
||||
LOGICAL :: is_restart
|
||||
LOGICAL :: is_restart = .FALSE.
|
||||
!> compute triplet excited states using spin-unpolarised molecular orbitals
|
||||
LOGICAL :: rks_triplets
|
||||
LOGICAL :: rks_triplets = .FALSE.
|
||||
!> local resolution of identity for Coulomb contribution
|
||||
LOGICAL :: do_lrigpw
|
||||
LOGICAL :: do_lrigpw = .FALSE.
|
||||
! automatic generation of auxiliary basis for LRI-TDDFT
|
||||
INTEGER :: auto_basis_p_lri_aux = 1
|
||||
!> use symmetric definition of ADMM Kernel correction
|
||||
LOGICAL :: admm_symm
|
||||
LOGICAL :: admm_symm = .FALSE.
|
||||
!> Use/Ignore possible ADMM Kernel XC correction
|
||||
LOGICAL :: admm_xc_correction
|
||||
LOGICAL :: admm_xc_correction = .FALSE.
|
||||
!
|
||||
! DIPOLE_MOMENTS subsection
|
||||
!
|
||||
! form of the dipole operator used to compute oscillator strengths
|
||||
INTEGER :: dipole_form
|
||||
INTEGER :: dipole_form = 0
|
||||
!> type of the reference point used for calculation of electrostatic dipole moments
|
||||
INTEGER :: dipole_reference
|
||||
INTEGER :: dipole_reference = 0
|
||||
!> user-defined reference point
|
||||
REAL(kind=dp), DIMENSION(:), POINTER :: dipole_ref_point
|
||||
REAL(kind=dp), DIMENSION(:), POINTER :: dipole_ref_point => NULL()
|
||||
!
|
||||
! SOC subsection
|
||||
LOGICAL :: do_soc
|
||||
LOGICAL :: do_soc = .FALSE.
|
||||
!
|
||||
! MGRID subsection
|
||||
!
|
||||
!> number of plain-wave grids
|
||||
INTEGER :: mgrid_ngrids
|
||||
INTEGER :: mgrid_ngrids = 0
|
||||
!> create commensurate grids (progression factor and cutoff values of sub-grids will be ignored)
|
||||
LOGICAL :: mgrid_commensurate_mgrids
|
||||
LOGICAL :: mgrid_commensurate_mgrids = .FALSE.
|
||||
!> signals that MGRID section has been explicitly given. Other mgrid_* variables
|
||||
!> are not initialised when it is equal to .FALSE. as in this case the default
|
||||
!> set of plain-wave grids will be used
|
||||
LOGICAL :: mgrid_is_explicit
|
||||
LOGICAL :: mgrid_is_explicit = .FALSE.
|
||||
!> same as qs_control%realspace_mgrids
|
||||
LOGICAL :: mgrid_realspace_mgrids
|
||||
LOGICAL :: mgrid_realspace_mgrids = .FALSE.
|
||||
!> do not perform load balancing
|
||||
LOGICAL :: mgrid_skip_load_balance
|
||||
LOGICAL :: mgrid_skip_load_balance = .FALSE.
|
||||
!> cutoff value at the finest grid level
|
||||
REAL(kind=dp) :: mgrid_cutoff
|
||||
REAL(kind=dp) :: mgrid_cutoff = 0.0_dp
|
||||
!> cutoff at the next grid level will be smaller then the cutoff
|
||||
!> at the current grid by this number of times
|
||||
REAL(kind=dp) :: mgrid_progression_factor
|
||||
REAL(kind=dp) :: mgrid_progression_factor = 0.0_dp
|
||||
!> cutoff that determines to which grid a particular Gaussian function will be mapped
|
||||
REAL(kind=dp) :: mgrid_relative_cutoff
|
||||
REAL(kind=dp) :: mgrid_relative_cutoff = 0.0_dp
|
||||
!> manually provided the list of cutoff values for each grid level
|
||||
!> (when it is null(), the cutoff values will be assigned automatically)
|
||||
REAL(kind=dp), DIMENSION(:), POINTER :: mgrid_e_cutoff
|
||||
REAL(kind=dp), DIMENSION(:), POINTER :: mgrid_e_cutoff => NULL()
|
||||
END TYPE tddfpt2_control_type
|
||||
|
||||
! **************************************************************************************************
|
||||
|
|
@ -547,26 +547,26 @@ MODULE cp_control_types
|
|||
! 10.2019 added variables related to surface dipole correction [Soumya Ghosh]
|
||||
! **************************************************************************************************
|
||||
TYPE dft_control_type
|
||||
TYPE(admm_control_type), POINTER :: admm_control
|
||||
TYPE(period_efield_type), POINTER :: period_efield
|
||||
TYPE(qs_control_type), POINTER :: qs_control
|
||||
TYPE(rtp_control_type), POINTER :: rtp_control
|
||||
TYPE(sccs_control_type), POINTER :: sccs_control
|
||||
TYPE(tddfpt_control_type), POINTER :: tddfpt_control
|
||||
TYPE(tddfpt2_control_type), POINTER :: tddfpt2_control
|
||||
TYPE(xas_control_type), POINTER :: xas_control
|
||||
TYPE(expot_control_type), POINTER :: expot_control
|
||||
TYPE(maxwell_control_type), POINTER :: maxwell_control
|
||||
TYPE(admm_control_type), POINTER :: admm_control => NULL()
|
||||
TYPE(period_efield_type), POINTER :: period_efield => NULL()
|
||||
TYPE(qs_control_type), POINTER :: qs_control => NULL()
|
||||
TYPE(rtp_control_type), POINTER :: rtp_control => NULL()
|
||||
TYPE(sccs_control_type), POINTER :: sccs_control => NULL()
|
||||
TYPE(tddfpt_control_type), POINTER :: tddfpt_control => NULL()
|
||||
TYPE(tddfpt2_control_type), POINTER :: tddfpt2_control => NULL()
|
||||
TYPE(xas_control_type), POINTER :: xas_control => NULL()
|
||||
TYPE(expot_control_type), POINTER :: expot_control => NULL()
|
||||
TYPE(maxwell_control_type), POINTER :: maxwell_control => NULL()
|
||||
TYPE(efield_p_type), POINTER, &
|
||||
DIMENSION(:) :: efield_fields
|
||||
INTEGER :: nspins, &
|
||||
charge, &
|
||||
multiplicity, &
|
||||
sic_method_id, &
|
||||
plus_u_method_id, &
|
||||
dir_surf_dip, &
|
||||
DIMENSION(:) :: efield_fields => NULL()
|
||||
INTEGER :: nspins = 0, &
|
||||
charge = 0, &
|
||||
multiplicity = 0, &
|
||||
sic_method_id = 0, &
|
||||
plus_u_method_id = 0, &
|
||||
dir_surf_dip = 0, &
|
||||
nimages = 1
|
||||
INTEGER :: sic_list_id
|
||||
INTEGER :: sic_list_id = 0
|
||||
INTEGER :: auto_basis_ri_aux = 1, &
|
||||
auto_basis_aux_fit = 1, &
|
||||
auto_basis_lri_aux = 1, &
|
||||
|
|
@ -574,42 +574,42 @@ MODULE cp_control_types
|
|||
auto_basis_ri_hxc = 1, &
|
||||
auto_basis_ri_xas = 1, &
|
||||
auto_basis_ri_hfx = 1
|
||||
REAL(KIND=dp) :: relax_multiplicity, &
|
||||
sic_scaling_a, &
|
||||
sic_scaling_b, &
|
||||
pos_dir_surf_dip
|
||||
LOGICAL :: do_tddfpt_calculation, &
|
||||
do_xas_calculation, &
|
||||
do_xas_tdp_calculation, &
|
||||
drho_by_collocation, &
|
||||
use_kinetic_energy_density, &
|
||||
restricted, &
|
||||
roks, &
|
||||
uks, &
|
||||
lsd, &
|
||||
dft_plus_u, &
|
||||
apply_efield, &
|
||||
apply_efield_field, &
|
||||
apply_vector_potential, &
|
||||
apply_period_efield, &
|
||||
apply_external_potential, &
|
||||
eval_external_potential, &
|
||||
do_admm, &
|
||||
do_admm_dm, &
|
||||
do_admm_mo, &
|
||||
smear, &
|
||||
low_spin_roks, &
|
||||
apply_external_density, &
|
||||
read_external_density, &
|
||||
apply_external_vxc, &
|
||||
read_external_vxc, &
|
||||
correct_surf_dip, &
|
||||
surf_dip_correct_switch, &
|
||||
switch_surf_dip, &
|
||||
correct_el_density_dip, &
|
||||
do_sccs, &
|
||||
apply_embed_pot, &
|
||||
apply_dmfet_pot
|
||||
REAL(KIND=dp) :: relax_multiplicity = 0.0_dp, &
|
||||
sic_scaling_a = 0.0_dp, &
|
||||
sic_scaling_b = 0.0_dp, &
|
||||
pos_dir_surf_dip = 0.0_dp
|
||||
LOGICAL :: do_tddfpt_calculation = .FALSE., &
|
||||
do_xas_calculation = .FALSE., &
|
||||
do_xas_tdp_calculation = .FALSE., &
|
||||
drho_by_collocation = .FALSE., &
|
||||
use_kinetic_energy_density = .FALSE., &
|
||||
restricted = .FALSE., &
|
||||
roks = .FALSE., &
|
||||
uks = .FALSE., &
|
||||
lsd = .FALSE., &
|
||||
dft_plus_u = .FALSE., &
|
||||
apply_efield = .FALSE., &
|
||||
apply_efield_field = .FALSE., &
|
||||
apply_vector_potential = .FALSE., &
|
||||
apply_period_efield = .FALSE., &
|
||||
apply_external_potential = .FALSE., &
|
||||
eval_external_potential = .FALSE., &
|
||||
do_admm = .FALSE., &
|
||||
do_admm_dm = .FALSE., &
|
||||
do_admm_mo = .FALSE., &
|
||||
smear = .FALSE., &
|
||||
low_spin_roks = .FALSE., &
|
||||
apply_external_density = .FALSE., &
|
||||
read_external_density = .FALSE., &
|
||||
apply_external_vxc = .FALSE., &
|
||||
read_external_vxc = .FALSE., &
|
||||
correct_surf_dip = .FALSE., &
|
||||
surf_dip_correct_switch = .FALSE., &
|
||||
switch_surf_dip = .FALSE., &
|
||||
correct_el_density_dip = .FALSE., &
|
||||
do_sccs = .FALSE., &
|
||||
apply_embed_pot = .FALSE., &
|
||||
apply_dmfet_pot = .FALSE.
|
||||
END TYPE dft_control_type
|
||||
|
||||
CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'cp_control_types'
|
||||
|
|
|
|||
|
|
@ -51,27 +51,27 @@ MODULE cp_ddapc_types
|
|||
!> \author Teodoro Laino
|
||||
! **************************************************************************************************
|
||||
TYPE cp_ddapc_type
|
||||
REAL(KIND=dp) :: c0
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: AmI
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: Md ! decoupling
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: Mr ! recoupling
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: Mt ! decoupling+recoupling
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: Ms ! solvation
|
||||
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: gfunc
|
||||
REAL(KIND=dp), POINTER, DIMENSION(:) :: w
|
||||
REAL(KIND=dp) :: c0 = 0.0_dp
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: AmI => NULL()
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: Md => NULL() ! decoupling
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: Mr => NULL() ! recoupling
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: Mt => NULL() ! decoupling+recoupling
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: Ms => NULL() ! solvation
|
||||
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: gfunc => NULL()
|
||||
REAL(KIND=dp), POINTER, DIMENSION(:) :: w => NULL()
|
||||
END TYPE cp_ddapc_type
|
||||
|
||||
! **************************************************************************************************
|
||||
TYPE cp_ddapc_ewald_type
|
||||
LOGICAL :: do_decoupling
|
||||
LOGICAL :: do_qmmm_periodic_decpl
|
||||
LOGICAL :: do_solvation
|
||||
LOGICAL :: do_property
|
||||
LOGICAL :: do_restraint
|
||||
TYPE(section_vals_type), POINTER :: ewald_section
|
||||
TYPE(pw_pool_type), POINTER :: pw_pool_qm, pw_pool_mm
|
||||
TYPE(pw_grid_type), POINTER :: pw_grid_qm, pw_grid_mm
|
||||
TYPE(pw_type), POINTER :: coeff_qm, coeff_mm
|
||||
LOGICAL :: do_decoupling = .FALSE.
|
||||
LOGICAL :: do_qmmm_periodic_decpl = .FALSE.
|
||||
LOGICAL :: do_solvation = .FALSE.
|
||||
LOGICAL :: do_property = .FALSE.
|
||||
LOGICAL :: do_restraint = .FALSE.
|
||||
TYPE(section_vals_type), POINTER :: ewald_section => NULL()
|
||||
TYPE(pw_pool_type), POINTER :: pw_pool_qm => NULL(), pw_pool_mm => NULL()
|
||||
TYPE(pw_grid_type), POINTER :: pw_grid_qm => NULL(), pw_grid_mm => NULL()
|
||||
TYPE(pw_type), POINTER :: coeff_qm => NULL(), coeff_mm => NULL()
|
||||
END TYPE cp_ddapc_ewald_type
|
||||
|
||||
CONTAINS
|
||||
|
|
|
|||
|
|
@ -40,12 +40,12 @@ MODULE cryssym
|
|||
INTEGER :: punit = -1
|
||||
INTEGER :: istriz = -1
|
||||
REAL(KIND=dp) :: delta = 1.0e-8_dp
|
||||
REAL(KIND=dp), DIMENSION(3, 3) :: hmat
|
||||
REAL(KIND=dp), DIMENSION(3, 3) :: hmat = 0.0_dp
|
||||
! KPOINTS
|
||||
REAL(KIND=dp), DIMENSION(3) :: wvk0 = 0.0_dp
|
||||
INTEGER, DIMENSION(3) :: mesh
|
||||
INTEGER :: nkpoint
|
||||
INTEGER :: nat
|
||||
INTEGER, DIMENSION(3) :: mesh = 0
|
||||
INTEGER :: nkpoint = 0
|
||||
INTEGER :: nat = 0
|
||||
INTEGER, DIMENSION(:), ALLOCATABLE :: atype
|
||||
REAL(KIND=dp), DIMENSION(:, :), ALLOCATABLE :: scoord
|
||||
REAL(KIND=dp), DIMENSION(:, :), ALLOCATABLE :: xkpoint
|
||||
|
|
@ -54,10 +54,10 @@ MODULE cryssym
|
|||
INTEGER, DIMENSION(:, :), ALLOCATABLE :: kplink
|
||||
INTEGER, DIMENSION(:), ALLOCATABLE :: kpop
|
||||
!SPGLIB
|
||||
CHARACTER(len=11) :: international_symbol
|
||||
CHARACTER(len=6) :: pointgroup_symbol
|
||||
CHARACTER(len=10) :: schoenflies
|
||||
INTEGER :: n_operations
|
||||
CHARACTER(len=11) :: international_symbol = ""
|
||||
CHARACTER(len=6) :: pointgroup_symbol = ""
|
||||
CHARACTER(len=10) :: schoenflies = ""
|
||||
INTEGER :: n_operations = 0
|
||||
INTEGER, DIMENSION(:, :, :), ALLOCATABLE :: rotations
|
||||
REAL(KIND=dp), DIMENSION(:, :), ALLOCATABLE :: translations
|
||||
END TYPE csym_type
|
||||
|
|
|
|||
|
|
@ -35,19 +35,19 @@ MODULE csvr_system_types
|
|||
|
||||
! **************************************************************************************************
|
||||
TYPE csvr_thermo_type
|
||||
INTEGER :: degrees_of_freedom
|
||||
REAL(KIND=dp) :: nkt
|
||||
REAL(KIND=dp) :: thermostat_energy
|
||||
REAL(KIND=dp) :: region_kin_energy
|
||||
TYPE(rng_stream_type) :: gaussian_rng_stream
|
||||
INTEGER :: degrees_of_freedom = 0
|
||||
REAL(KIND=dp) :: nkt = 0.0_dp
|
||||
REAL(KIND=dp) :: thermostat_energy = 0.0_dp
|
||||
REAL(KIND=dp) :: region_kin_energy = 0.0_dp
|
||||
TYPE(rng_stream_type) :: gaussian_rng_stream = rng_stream_type()
|
||||
END TYPE csvr_thermo_type
|
||||
|
||||
! **************************************************************************************************
|
||||
TYPE csvr_system_type
|
||||
INTEGER :: region, glob_num_csvr, loc_num_csvr
|
||||
REAL(KIND=dp) :: tau_csvr, dt_fact
|
||||
TYPE(csvr_thermo_type), POINTER :: nvt(:)
|
||||
TYPE(map_info_type), POINTER :: map_info
|
||||
INTEGER :: region = 0, glob_num_csvr = 0, loc_num_csvr = 0
|
||||
REAL(KIND=dp) :: tau_csvr = 0.0_dp, dt_fact = 0.0_dp
|
||||
TYPE(csvr_thermo_type), POINTER :: nvt(:) => NULL()
|
||||
TYPE(map_info_type), POINTER :: map_info => NULL()
|
||||
END TYPE csvr_system_type
|
||||
|
||||
! *** Global parameters ***
|
||||
|
|
|
|||
|
|
@ -39,32 +39,32 @@ MODULE ct_types
|
|||
! this type contains options for cayley transformation routines
|
||||
|
||||
! use orbitals or projectors?
|
||||
LOGICAL :: use_occ_orbs, use_virt_orbs
|
||||
LOGICAL :: occ_orbs_orthogonal, virt_orbs_orthogonal
|
||||
LOGICAL :: use_occ_orbs = .FALSE., use_virt_orbs = .FALSE.
|
||||
LOGICAL :: occ_orbs_orthogonal = .FALSE., virt_orbs_orthogonal = .FALSE.
|
||||
! tensor properties of matrix indeces:
|
||||
! tensor_up_down, tensor_orthogonal
|
||||
INTEGER :: tensor_type
|
||||
INTEGER :: tensor_type = 0
|
||||
! neglect the quadratic term in riccati equations?
|
||||
LOGICAL :: neglect_quadratic_term
|
||||
LOGICAL :: neglect_quadratic_term = .FALSE.
|
||||
! what kind of output do we produce?
|
||||
LOGICAL :: update_p, update_q, calculate_energy_corr
|
||||
LOGICAL :: update_p = .FALSE., update_q = .FALSE., calculate_energy_corr = .FALSE.
|
||||
! variety of conjugate gradient
|
||||
INTEGER :: conjugator
|
||||
INTEGER :: conjugator = 0
|
||||
|
||||
! type of preconditioner
|
||||
LOGICAL :: pp_preconditioner_full, &
|
||||
qq_preconditioner_full
|
||||
LOGICAL :: pp_preconditioner_full = .FALSE., &
|
||||
qq_preconditioner_full = .FALSE.
|
||||
|
||||
REAL(KIND=dp) :: eps_convergence
|
||||
REAL(KIND=dp) :: eps_filter
|
||||
INTEGER :: max_iter
|
||||
REAL(KIND=dp) :: eps_convergence = 0.0_dp
|
||||
REAL(KIND=dp) :: eps_filter = 0.0_dp
|
||||
INTEGER :: max_iter = 0
|
||||
!INTEGER :: nspins
|
||||
LOGICAL :: converged
|
||||
INTEGER :: order_lanczos
|
||||
REAL(KIND=dp) :: eps_lancsoz
|
||||
INTEGER :: max_iter_lanczos
|
||||
LOGICAL :: converged = .FALSE.
|
||||
INTEGER :: order_lanczos = 0
|
||||
REAL(KIND=dp) :: eps_lancsoz = 0.0_dp
|
||||
INTEGER :: max_iter_lanczos = 0
|
||||
|
||||
REAL(KIND=dp) :: energy_correction
|
||||
REAL(KIND=dp) :: energy_correction = 0.0_dp
|
||||
|
||||
!SPIN!!! ! metric matrices for covariant to contravariant transformations
|
||||
!SPIN!!! TYPE(dbcsr_type), DIMENSION(:), POINTER :: p_index_up=>NULL()
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ MODULE dbcsr_vector
|
|||
END TYPE ele_type
|
||||
|
||||
TYPE hash_table_type
|
||||
TYPE(ele_type), DIMENSION(:), POINTER :: table
|
||||
TYPE(ele_type), DIMENSION(:), POINTER :: table => NULL()
|
||||
INTEGER :: nele = 0
|
||||
INTEGER :: nmax = 0
|
||||
INTEGER :: prime = 0
|
||||
|
|
@ -75,23 +75,23 @@ MODULE dbcsr_vector
|
|||
! **************************************************************************************************
|
||||
TYPE block_ptr_d
|
||||
REAL(real_8), DIMENSION(:, :), POINTER :: ptr => NULL()
|
||||
INTEGER :: assigned_thread
|
||||
INTEGER :: assigned_thread = -1
|
||||
END TYPE
|
||||
TYPE block_ptr_s
|
||||
REAL(real_4), DIMENSION(:, :), POINTER :: ptr => NULL()
|
||||
INTEGER :: assigned_thread
|
||||
INTEGER :: assigned_thread = -1
|
||||
END TYPE
|
||||
TYPE block_ptr_c
|
||||
COMPLEX(real_4), DIMENSION(:, :), POINTER :: ptr => NULL()
|
||||
INTEGER :: assigned_thread
|
||||
INTEGER :: assigned_thread = -1
|
||||
END TYPE
|
||||
TYPE block_ptr_z
|
||||
COMPLEX(real_8), DIMENSION(:, :), POINTER :: ptr => NULL()
|
||||
INTEGER :: assigned_thread
|
||||
INTEGER :: assigned_thread = -1
|
||||
END TYPE
|
||||
|
||||
TYPE fast_vec_access_type
|
||||
TYPE(hash_table_type) :: hash_table
|
||||
TYPE(hash_table_type) :: hash_table = hash_table_type()
|
||||
TYPE(block_ptr_d), DIMENSION(:), ALLOCATABLE :: blk_map_d
|
||||
TYPE(block_ptr_s), DIMENSION(:), ALLOCATABLE :: blk_map_s
|
||||
TYPE(block_ptr_c), DIMENSION(:), ALLOCATABLE :: blk_map_c
|
||||
|
|
|
|||
|
|
@ -60,18 +60,18 @@ MODULE distribution_2d_types
|
|||
!> \author Joost & Fawzi
|
||||
! **************************************************************************************************
|
||||
TYPE distribution_2d_type
|
||||
INTEGER, DIMENSION(:, :), POINTER :: row_distribution
|
||||
INTEGER, DIMENSION(:, :), POINTER :: col_distribution
|
||||
INTEGER :: n_row_distribution
|
||||
INTEGER :: n_col_distribution
|
||||
INTEGER, DIMENSION(:), POINTER :: n_local_rows
|
||||
INTEGER, DIMENSION(:), POINTER :: n_local_cols
|
||||
TYPE(cp_1d_i_p_type), DIMENSION(:), POINTER :: local_rows
|
||||
TYPE(cp_1d_i_p_type), DIMENSION(:), POINTER :: local_cols
|
||||
INTEGER, DIMENSION(:), POINTER :: flat_local_rows
|
||||
INTEGER, DIMENSION(:), POINTER :: flat_local_cols
|
||||
TYPE(cp_blacs_env_type), POINTER :: blacs_env
|
||||
INTEGER :: ref_count
|
||||
INTEGER, DIMENSION(:, :), POINTER :: row_distribution => NULL()
|
||||
INTEGER, DIMENSION(:, :), POINTER :: col_distribution => NULL()
|
||||
INTEGER :: n_row_distribution = 0
|
||||
INTEGER :: n_col_distribution = 0
|
||||
INTEGER, DIMENSION(:), POINTER :: n_local_rows => NULL()
|
||||
INTEGER, DIMENSION(:), POINTER :: n_local_cols => NULL()
|
||||
TYPE(cp_1d_i_p_type), DIMENSION(:), POINTER :: local_rows => NULL()
|
||||
TYPE(cp_1d_i_p_type), DIMENSION(:), POINTER :: local_cols => NULL()
|
||||
INTEGER, DIMENSION(:), POINTER :: flat_local_rows => NULL()
|
||||
INTEGER, DIMENSION(:), POINTER :: flat_local_cols => NULL()
|
||||
TYPE(cp_blacs_env_type), POINTER :: blacs_env => NULL()
|
||||
INTEGER :: ref_count = 0
|
||||
END TYPE distribution_2d_type
|
||||
|
||||
CONTAINS
|
||||
|
|
|
|||
|
|
@ -40,16 +40,16 @@ MODULE dm_ls_scf_types
|
|||
ls_scf_curvy_type
|
||||
|
||||
TYPE ls_mstruct_type
|
||||
INTEGER :: cluster_type
|
||||
LOGICAL :: single_precision
|
||||
LOGICAL :: do_pao
|
||||
INTEGER :: cluster_type = -1
|
||||
LOGICAL :: single_precision = .FALSE.
|
||||
LOGICAL :: do_pao = .FALSE.
|
||||
INTEGER, DIMENSION(:), ALLOCATABLE :: atom_to_molecule
|
||||
TYPE(dbcsr_type) :: matrix_A
|
||||
TYPE(dbcsr_type) :: matrix_B
|
||||
END TYPE
|
||||
|
||||
TYPE ls_mat_history_type
|
||||
INTEGER :: istore, nstore
|
||||
INTEGER :: istore = 0, nstore = 0
|
||||
TYPE(dbcsr_type), DIMENSION(:, :), ALLOCATABLE :: matrix
|
||||
END TYPE
|
||||
|
||||
|
|
@ -58,28 +58,28 @@ MODULE dm_ls_scf_types
|
|||
TYPE(dbcsr_type), DIMENSION(:), ALLOCATABLE :: matrix_p
|
||||
TYPE(dbcsr_type), DIMENSION(:, :), ALLOCATABLE :: matrix_psave
|
||||
TYPE(dbcsr_type), DIMENSION(:, :), ALLOCATABLE :: matrix_BCH
|
||||
REAL(KIND=dp) :: step_size(2)
|
||||
REAL(KIND=dp) :: shift(2)
|
||||
REAL(KIND=dp) :: cg_denom(2)
|
||||
REAL(KIND=dp) :: cg_numer(2)
|
||||
REAL(KIND=dp), DIMENSION(6) :: energies
|
||||
INTEGER :: line_search_step
|
||||
INTEGER :: BCH_saved(2)
|
||||
LOGICAL :: double_step_size
|
||||
LOGICAL :: fix_shift(2)
|
||||
REAL(KIND=dp), DIMENSION(2) :: step_size = 0.0_dp
|
||||
REAL(KIND=dp), DIMENSION(2) :: shift = 0.0_dp
|
||||
REAL(KIND=dp), DIMENSION(2) :: cg_denom = 0.0_dp
|
||||
REAL(KIND=dp), DIMENSION(2) :: cg_numer = 0.0_dp
|
||||
REAL(KIND=dp), DIMENSION(6) :: energies = 0.0_dp
|
||||
INTEGER :: line_search_step = 0
|
||||
INTEGER, DIMENSION(2) :: BCH_saved = 0
|
||||
LOGICAL :: double_step_size = .FALSE.
|
||||
LOGICAL, DIMENSION(2) :: fix_shift = .FALSE.
|
||||
|
||||
INTEGER :: line_search_type
|
||||
INTEGER :: n_bch_hist
|
||||
REAL(KIND=dp) :: scale_filter
|
||||
REAL(KIND=dp) :: filter_factor
|
||||
REAL(KIND=dp) :: min_shift
|
||||
REAL(KIND=dp) :: min_filter
|
||||
INTEGER :: line_search_type = 0
|
||||
INTEGER :: n_bch_hist = 0
|
||||
REAL(KIND=dp) :: scale_filter = 0.0_dp
|
||||
REAL(KIND=dp) :: filter_factor = 0.0_dp
|
||||
REAL(KIND=dp) :: min_shift = 0.0_dp
|
||||
REAL(KIND=dp) :: min_filter = 0.0_dp
|
||||
END TYPE
|
||||
|
||||
TYPE chebyshev_type
|
||||
LOGICAL :: compute_chebyshev
|
||||
INTEGER :: n_chebyshev
|
||||
INTEGER :: n_gridpoint_dos
|
||||
LOGICAL :: compute_chebyshev = .FALSE.
|
||||
INTEGER :: n_chebyshev = 0
|
||||
INTEGER :: n_gridpoint_dos = 0
|
||||
REAL(KIND=dp), DIMENSION(:), POINTER :: min_energy => NULL()
|
||||
REAL(KIND=dp), DIMENSION(:), POINTER :: max_energy => NULL()
|
||||
TYPE(section_vals_type), POINTER :: print_key_dos => NULL()
|
||||
|
|
@ -87,43 +87,44 @@ MODULE dm_ls_scf_types
|
|||
END TYPE
|
||||
|
||||
TYPE ls_scf_env_type
|
||||
INTEGER :: nspins, natoms
|
||||
INTEGER :: nelectron_total
|
||||
INTEGER, DIMENSION(2) :: nelectron_spin
|
||||
REAL(KIND=dp), DIMENSION(2) :: mu_spin
|
||||
REAL(KIND=dp), DIMENSION(2) :: homo_spin
|
||||
REAL(KIND=dp), DIMENSION(2) :: lumo_spin
|
||||
INTEGER :: nspins = 0, natoms = 0
|
||||
INTEGER :: nelectron_total = 0
|
||||
INTEGER, DIMENSION(2) :: nelectron_spin = 0
|
||||
REAL(KIND=dp), DIMENSION(2) :: mu_spin = 0.0_dp
|
||||
REAL(KIND=dp), DIMENSION(2) :: homo_spin = 0.0_dp
|
||||
REAL(KIND=dp), DIMENSION(2) :: lumo_spin = 0.0_dp
|
||||
|
||||
TYPE(ls_mat_history_type) :: scf_history
|
||||
INTEGER :: extrapolation_order
|
||||
TYPE(ls_mat_history_type) :: scf_history = ls_mat_history_type()
|
||||
INTEGER :: extrapolation_order = -1
|
||||
|
||||
LOGICAL :: has_unit_metric
|
||||
LOGICAL :: has_unit_metric = .FALSE.
|
||||
|
||||
LOGICAL :: curvy_steps
|
||||
INTEGER :: s_preconditioner_type
|
||||
INTEGER :: s_inversion_type
|
||||
INTEGER :: purification_method
|
||||
INTEGER :: sign_method
|
||||
INTEGER :: sign_order
|
||||
LOGICAL :: sign_symmetric
|
||||
INTEGER :: submatrix_sign_method
|
||||
INTEGER :: s_sqrt_method
|
||||
INTEGER :: s_sqrt_order
|
||||
LOGICAL :: curvy_steps = .FALSE.
|
||||
INTEGER :: s_preconditioner_type = 0
|
||||
INTEGER :: s_inversion_type = 0
|
||||
INTEGER :: purification_method = 0
|
||||
INTEGER :: sign_method = 0
|
||||
INTEGER :: sign_order = 0
|
||||
LOGICAL :: sign_symmetric = .FALSE.
|
||||
INTEGER :: submatrix_sign_method = -1
|
||||
INTEGER :: s_sqrt_method = 0
|
||||
INTEGER :: s_sqrt_order = 0
|
||||
|
||||
LOGICAL :: needs_s_inv, has_s_preconditioner, fixed_mu, dynamic_threshold, check_s_inv
|
||||
LOGICAL :: restart_read, restart_write, non_monotonic
|
||||
REAL(KIND=dp) :: eps_filter, eps_scf
|
||||
LOGICAL :: needs_s_inv = .FALSE., has_s_preconditioner = .FALSE., fixed_mu = .FALSE., &
|
||||
dynamic_threshold = .FALSE., check_s_inv = .FALSE.
|
||||
LOGICAL :: restart_read = .FALSE., restart_write = .FALSE., non_monotonic = .FALSE.
|
||||
REAL(KIND=dp) :: eps_filter = 0.0_dp, eps_scf = 0.0_dp
|
||||
|
||||
REAL(KIND=dp) :: eps_lanczos
|
||||
INTEGER :: max_iter_lanczos
|
||||
REAL(KIND=dp) :: eps_lanczos = 0.0_dp
|
||||
INTEGER :: max_iter_lanczos = 0
|
||||
|
||||
REAL(KIND=dp) :: mixing_fraction
|
||||
INTEGER :: max_scf
|
||||
LOGICAL :: ls_diis
|
||||
INTEGER :: iter_ini_diis
|
||||
INTEGER :: nmixing, max_diis
|
||||
REAL(KIND=dp) :: eps_diis
|
||||
REAL(KIND=dp) :: energy_init
|
||||
REAL(KIND=dp) :: mixing_fraction = 0.0_dp
|
||||
INTEGER :: max_scf = 0
|
||||
LOGICAL :: ls_diis = .FALSE.
|
||||
INTEGER :: iter_ini_diis = 0
|
||||
INTEGER :: nmixing = 0, max_diis = 0
|
||||
REAL(KIND=dp) :: eps_diis = 0.0_dp
|
||||
REAL(KIND=dp) :: energy_init = 0.0_dp
|
||||
|
||||
TYPE(dbcsr_type) :: matrix_s_inv
|
||||
TYPE(dbcsr_type) :: matrix_s
|
||||
|
|
@ -132,25 +133,25 @@ MODULE dm_ls_scf_types
|
|||
TYPE(dbcsr_type), DIMENSION(:), ALLOCATABLE :: matrix_ks
|
||||
TYPE(dbcsr_type), DIMENSION(:), ALLOCATABLE :: matrix_p
|
||||
|
||||
LOGICAL :: report_all_sparsities, perform_mu_scan, use_s_sqrt
|
||||
LOGICAL :: report_all_sparsities = .FALSE., perform_mu_scan = .FALSE., use_s_sqrt = .FALSE.
|
||||
|
||||
TYPE(ls_mstruct_type) :: ls_mstruct
|
||||
TYPE(ls_scf_curvy_type) :: curvy_data
|
||||
TYPE(ls_scf_curvy_type) :: curvy_data = ls_scf_curvy_type()
|
||||
|
||||
TYPE(chebyshev_type) :: chebyshev
|
||||
TYPE(chebyshev_type) :: chebyshev = chebyshev_type()
|
||||
|
||||
LOGICAL :: do_rho_mixing
|
||||
INTEGER :: density_mixing_method
|
||||
TYPE(mixing_storage_type), POINTER :: mixing_store
|
||||
LOGICAL :: do_rho_mixing = .FALSE.
|
||||
INTEGER :: density_mixing_method = 0
|
||||
TYPE(mixing_storage_type), POINTER :: mixing_store => NULL()
|
||||
|
||||
LOGICAL :: do_transport
|
||||
LOGICAL :: do_pexsi
|
||||
LOGICAL :: do_transport = .FALSE.
|
||||
LOGICAL :: do_pexsi = .FALSE.
|
||||
|
||||
LOGICAL :: calculate_forces
|
||||
LOGICAL :: calculate_forces = .FALSE.
|
||||
|
||||
TYPE(lib_pexsi_env) :: pexsi
|
||||
|
||||
TYPE(mp_para_env_type), POINTER :: para_env
|
||||
TYPE(mp_para_env_type), POINTER :: para_env => NULL()
|
||||
LOGICAL :: do_pao = .FALSE.
|
||||
TYPE(pao_env_type) :: pao_env
|
||||
END TYPE ls_scf_env_type
|
||||
|
|
|
|||
|
|
@ -30,18 +30,18 @@ MODULE domain_submatrix_types
|
|||
! submatrix storage with the meta-data necessary to convert
|
||||
! the submatrix into the DBCSR format
|
||||
TYPE domain_submatrix_type
|
||||
INTEGER :: domain
|
||||
INTEGER :: domain = 0
|
||||
REAL(KIND=dp), DIMENSION(:, :), ALLOCATABLE :: mdata
|
||||
INTEGER :: nbrows
|
||||
INTEGER :: nbcols
|
||||
INTEGER :: nrows
|
||||
INTEGER :: ncols
|
||||
INTEGER :: nbrows = 0
|
||||
INTEGER :: nbcols = 0
|
||||
INTEGER :: nrows = 0
|
||||
INTEGER :: ncols = 0
|
||||
INTEGER, DIMENSION(:), ALLOCATABLE :: dbcsr_row
|
||||
INTEGER, DIMENSION(:), ALLOCATABLE :: dbcsr_col
|
||||
INTEGER, DIMENSION(:), ALLOCATABLE :: size_brow
|
||||
INTEGER, DIMENSION(:), ALLOCATABLE :: size_bcol
|
||||
INTEGER :: nnodes
|
||||
TYPE(mp_comm_type) :: group
|
||||
INTEGER :: nnodes = 0
|
||||
TYPE(mp_comm_type) :: group = mp_comm_type()
|
||||
END TYPE domain_submatrix_type
|
||||
|
||||
TYPE domain_map_type
|
||||
|
|
|
|||
|
|
@ -52,69 +52,71 @@ MODULE ec_env_types
|
|||
!> \author JGH
|
||||
! *****************************************************************************
|
||||
TYPE energy_correction_type
|
||||
CHARACTER(len=20) :: ec_name
|
||||
INTEGER :: energy_functional
|
||||
INTEGER :: ks_solver
|
||||
INTEGER :: factorization
|
||||
INTEGER :: ec_initial_guess
|
||||
REAL(KIND=dp) :: eps_default
|
||||
LOGICAL :: do_ec_admm
|
||||
LOGICAL :: do_ec_hfx
|
||||
LOGICAL :: should_update
|
||||
LOGICAL :: use_ls_solver
|
||||
LOGICAL :: reuse_hfx
|
||||
LOGICAL :: basis_inconsistent
|
||||
CHARACTER(len=20) :: ec_name = ""
|
||||
INTEGER :: energy_functional = 0
|
||||
INTEGER :: ks_solver = 0
|
||||
INTEGER :: factorization = 0
|
||||
INTEGER :: ec_initial_guess = 0
|
||||
REAL(KIND=dp) :: eps_default = 0.0_dp
|
||||
LOGICAL :: do_ec_admm = .FALSE.
|
||||
LOGICAL :: do_ec_hfx = .FALSE.
|
||||
LOGICAL :: should_update = .FALSE.
|
||||
LOGICAL :: use_ls_solver = .FALSE.
|
||||
LOGICAL :: reuse_hfx = .FALSE.
|
||||
LOGICAL :: basis_inconsistent = .FALSE.
|
||||
! debug
|
||||
LOGICAL :: debug_forces = .FALSE.
|
||||
LOGICAL :: debug_stress = .FALSE.
|
||||
! basis set
|
||||
CHARACTER(len=20) :: basis
|
||||
LOGICAL :: mao
|
||||
CHARACTER(len=20) :: basis = ""
|
||||
LOGICAL :: mao = .FALSE.
|
||||
! Skip EC calculation if ground-state didnt converge
|
||||
LOGICAL :: do_skip, skip_ec
|
||||
INTEGER :: mao_max_iter
|
||||
REAL(KIND=dp) :: mao_eps_grad
|
||||
REAL(KIND=dp) :: mao_eps1
|
||||
INTEGER :: mao_iolevel
|
||||
LOGICAL :: do_skip = .FALSE., skip_ec = .FALSE.
|
||||
INTEGER :: mao_max_iter = 0
|
||||
REAL(KIND=dp) :: mao_eps_grad = 0.0_dp
|
||||
REAL(KIND=dp) :: mao_eps1 = 0.0_dp
|
||||
INTEGER :: mao_iolevel = 0
|
||||
! energy components
|
||||
REAL(KIND=dp) :: etotal, old_etotal
|
||||
REAL(KIND=dp) :: eband, ecore, exc, ehartree, vhxc
|
||||
REAL(KIND=dp) :: edispersion, efield_elec, &
|
||||
efield_nuclear, ex, exc_aux_fit
|
||||
REAL(KIND=dp) :: etotal = 0.0_dp, old_etotal = 0.0_dp
|
||||
REAL(KIND=dp) :: eband = 0.0_dp, ecore = 0.0_dp, exc = 0.0_dp, &
|
||||
ehartree = 0.0_dp, vhxc = 0.0_dp
|
||||
REAL(KIND=dp) :: edispersion = 0.0_dp, efield_elec = 0.0_dp, &
|
||||
efield_nuclear = 0.0_dp, ex = 0.0_dp, exc_aux_fit = 0.0_dp
|
||||
! forces
|
||||
TYPE(qs_force_type), DIMENSION(:), POINTER :: force => Null()
|
||||
! full neighbor lists and corresponding task list
|
||||
TYPE(neighbor_list_set_p_type), &
|
||||
DIMENSION(:), POINTER :: sab_orb, sac_ppl, sap_ppnl
|
||||
TYPE(task_list_type), POINTER :: task_list
|
||||
DIMENSION(:), POINTER :: sab_orb => Null(), sac_ppl => Null(), sap_ppnl => Null()
|
||||
TYPE(task_list_type), POINTER :: task_list => Null()
|
||||
! the XC function to be used for the correction, dispersion info
|
||||
TYPE(section_vals_type), POINTER :: xc_section
|
||||
TYPE(qs_dispersion_type), POINTER :: dispersion_env
|
||||
TYPE(section_vals_type), POINTER :: xc_section => Null()
|
||||
TYPE(qs_dispersion_type), POINTER :: dispersion_env => Null()
|
||||
! matrices in complete basis
|
||||
! KS: Kohn-Sham; H: Core; S: overlap; T: kinetic energy;
|
||||
! P: Harris density, W: Harris energy weighted density
|
||||
TYPE(dbcsr_p_type), DIMENSION(:, :), POINTER :: matrix_ks, &
|
||||
matrix_h, &
|
||||
matrix_s, &
|
||||
matrix_t, &
|
||||
matrix_p, &
|
||||
matrix_w
|
||||
TYPE(dbcsr_p_type), DIMENSION(:, :), POINTER :: matrix_ks => Null(), &
|
||||
matrix_h => Null(), &
|
||||
matrix_s => Null(), &
|
||||
matrix_t => Null(), &
|
||||
matrix_p => Null(), &
|
||||
matrix_w => Null()
|
||||
! reduce basis
|
||||
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: mao_coef
|
||||
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: mao_coef => Null()
|
||||
! CP equations
|
||||
TYPE(qs_p_env_type), POINTER :: p_env
|
||||
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: matrix_hz, matrix_wz, matrix_z, z_admm
|
||||
TYPE(qs_p_env_type), POINTER :: p_env => Null()
|
||||
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: matrix_hz => Null(), matrix_wz => Null(), &
|
||||
matrix_z => Null(), z_admm => Null()
|
||||
! Harris (rhoout), and response density (rhoz) on grid
|
||||
TYPE(pw_type), DIMENSION(:), POINTER :: rhoout_r, rhoz_r
|
||||
TYPE(pw_type), DIMENSION(:), POINTER :: rhoout_r => Null(), rhoz_r => Null()
|
||||
! potentials from input density
|
||||
TYPE(pw_type) :: vh_rspace
|
||||
TYPE(pw_type), DIMENSION(:), POINTER :: vxc_rspace, vtau_rspace, vadmm_rspace
|
||||
TYPE(pw_type) :: vh_rspace = pw_type()
|
||||
TYPE(pw_type), DIMENSION(:), POINTER :: vxc_rspace => Null(), vtau_rspace => Null(), vadmm_rspace => Null()
|
||||
! efield
|
||||
TYPE(efield_berry_type), POINTER :: efield => NULL()
|
||||
! LS matrices and types
|
||||
TYPE(ls_scf_env_type), POINTER :: ls_env
|
||||
TYPE(ls_scf_env_type), POINTER :: ls_env => Null()
|
||||
! Environment for Hartree-Fock exchange
|
||||
TYPE(hfx_type), DIMENSION(:, :), POINTER :: x_data
|
||||
TYPE(hfx_type), DIMENSION(:, :), POINTER :: x_data => Null()
|
||||
! ADMM XC environments
|
||||
TYPE(section_vals_type), POINTER :: xc_section_primary => Null(), &
|
||||
xc_section_aux => Null()
|
||||
|
|
|
|||
|
|
@ -81,20 +81,20 @@ MODULE eip_environment_types
|
|||
!> \author Thomas D. Kuehne (tkuehne@phys.chem.ethz.ch)
|
||||
! **************************************************************************************************
|
||||
TYPE eip_environment_type
|
||||
INTEGER :: eip_model
|
||||
REAL(KIND=dp) :: eip_energy, &
|
||||
eip_kinetic_energy, &
|
||||
eip_potential_energy, &
|
||||
eip_energy_var
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: eip_forces
|
||||
REAL(KIND=dp) :: coord_avg, &
|
||||
coord_var, &
|
||||
count
|
||||
TYPE(cp_subsys_type), POINTER :: subsys
|
||||
TYPE(section_vals_type), POINTER :: eip_input, &
|
||||
force_env_input
|
||||
TYPE(cell_type), POINTER :: cell_ref
|
||||
LOGICAL :: use_ref_cell
|
||||
INTEGER :: eip_model = 0
|
||||
REAL(KIND=dp) :: eip_energy = 0.0_dp, &
|
||||
eip_kinetic_energy = 0.0_dp, &
|
||||
eip_potential_energy = 0.0_dp, &
|
||||
eip_energy_var = 0.0_dp
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: eip_forces => Null()
|
||||
REAL(KIND=dp) :: coord_avg = 0.0_dp, &
|
||||
coord_var = 0.0_dp, &
|
||||
count = 0.0_dp
|
||||
TYPE(cp_subsys_type), POINTER :: subsys => Null()
|
||||
TYPE(section_vals_type), POINTER :: eip_input => Null(), &
|
||||
force_env_input => Null()
|
||||
TYPE(cell_type), POINTER :: cell_ref => Null()
|
||||
LOGICAL :: use_ref_cell = .FALSE.
|
||||
END TYPE eip_environment_type
|
||||
|
||||
CONTAINS
|
||||
|
|
|
|||
|
|
@ -100,12 +100,12 @@ MODULE et_coupling_proj
|
|||
! m_transf_inv - inversion transformation matrix
|
||||
! block - atomic data blocks
|
||||
TYPE et_cpl
|
||||
INTEGER :: n_atoms
|
||||
INTEGER :: n_blocks
|
||||
REAL(KIND=dp), DIMENSION(:), POINTER :: fermi
|
||||
TYPE(cp_fm_type), POINTER :: m_transf
|
||||
TYPE(cp_fm_type), POINTER :: m_transf_inv
|
||||
TYPE(et_cpl_block), DIMENSION(:), POINTER :: block
|
||||
INTEGER :: n_atoms = 0
|
||||
INTEGER :: n_blocks = 0
|
||||
REAL(KIND=dp), DIMENSION(:), POINTER :: fermi => NULL()
|
||||
TYPE(cp_fm_type), POINTER :: m_transf => NULL()
|
||||
TYPE(cp_fm_type), POINTER :: m_transf_inv => NULL()
|
||||
TYPE(et_cpl_block), DIMENSION(:), POINTER :: block => NULL()
|
||||
END TYPE et_cpl
|
||||
|
||||
! Electronic-coupling data block
|
||||
|
|
@ -117,12 +117,12 @@ MODULE et_coupling_proj
|
|||
! mo - electronic states
|
||||
! hab - electronic-coupling elements
|
||||
TYPE et_cpl_block
|
||||
INTEGER :: n_atoms
|
||||
INTEGER :: n_electrons
|
||||
INTEGER :: n_ao
|
||||
TYPE(et_cpl_atom), DIMENSION(:), POINTER :: atom
|
||||
TYPE(mo_set_type), DIMENSION(:), POINTER :: mo
|
||||
TYPE(cp_fm_type), DIMENSION(:, :), POINTER :: hab
|
||||
INTEGER :: n_atoms = 0
|
||||
INTEGER :: n_electrons = 0
|
||||
INTEGER :: n_ao = 0
|
||||
TYPE(et_cpl_atom), DIMENSION(:), POINTER :: atom => NULL()
|
||||
TYPE(mo_set_type), DIMENSION(:), POINTER :: mo => NULL()
|
||||
TYPE(cp_fm_type), DIMENSION(:, :), POINTER :: hab => NULL()
|
||||
END TYPE et_cpl_block
|
||||
|
||||
! Electronic-coupling block-atom data
|
||||
|
|
@ -130,9 +130,9 @@ MODULE et_coupling_proj
|
|||
! n_ao - number of AO basis functions
|
||||
! ao_pos - position of atom in array of AO functions
|
||||
TYPE et_cpl_atom
|
||||
INTEGER :: id
|
||||
INTEGER :: n_ao
|
||||
INTEGER :: ao_pos
|
||||
INTEGER :: id = 0
|
||||
INTEGER :: n_ao = 0
|
||||
INTEGER :: ao_pos = 0
|
||||
END TYPE et_cpl_atom
|
||||
|
||||
PUBLIC :: calc_et_coupling_proj
|
||||
|
|
|
|||
|
|
@ -39,11 +39,11 @@ MODULE et_coupling_types
|
|||
!> \author fschiff
|
||||
! **************************************************************************************************
|
||||
TYPE et_coupling_type
|
||||
TYPE(cp_fm_type), DIMENSION(:), POINTER :: et_mo_coeff
|
||||
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: rest_mat
|
||||
LOGICAL :: first_run
|
||||
LOGICAL :: keep_matrix
|
||||
REAL(KIND=dp) :: energy, e1, order_p
|
||||
TYPE(cp_fm_type), DIMENSION(:), POINTER :: et_mo_coeff => NULL()
|
||||
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: rest_mat => NULL()
|
||||
LOGICAL :: first_run = .FALSE.
|
||||
LOGICAL :: keep_matrix = .FALSE.
|
||||
REAL(KIND=dp) :: energy = 0.0_dp, e1 = 0.0_dp, order_p = 0.0_dp
|
||||
END TYPE
|
||||
|
||||
CONTAINS
|
||||
|
|
|
|||
|
|
@ -149,17 +149,17 @@ MODULE f77_interface
|
|||
|
||||
! **************************************************************************************************
|
||||
TYPE f_env_p_type
|
||||
TYPE(f_env_type), POINTER :: f_env
|
||||
TYPE(f_env_type), POINTER :: f_env => NULL()
|
||||
END TYPE f_env_p_type
|
||||
|
||||
! **************************************************************************************************
|
||||
TYPE f_env_type
|
||||
INTEGER :: id_nr
|
||||
TYPE(force_env_type), POINTER :: force_env
|
||||
TYPE(cp_logger_type), POINTER :: logger
|
||||
TYPE(timer_env_type), POINTER :: timer_env
|
||||
TYPE(mp_perf_env_type), POINTER :: mp_perf_env
|
||||
CHARACTER(len=default_path_length) :: my_path, old_path
|
||||
INTEGER :: id_nr = 0
|
||||
TYPE(force_env_type), POINTER :: force_env => NULL()
|
||||
TYPE(cp_logger_type), POINTER :: logger => NULL()
|
||||
TYPE(timer_env_type), POINTER :: timer_env => NULL()
|
||||
TYPE(mp_perf_env_type), POINTER :: mp_perf_env => NULL()
|
||||
CHARACTER(len=default_path_length) :: my_path = "", old_path = ""
|
||||
END TYPE f_env_type
|
||||
|
||||
TYPE(f_env_p_type), DIMENSION(:), POINTER, SAVE :: f_envs
|
||||
|
|
|
|||
|
|
@ -137,24 +137,24 @@ MODULE force_env_types
|
|||
!> \author fawzi
|
||||
! **************************************************************************************************
|
||||
TYPE force_env_type
|
||||
INTEGER :: ref_count, in_use, method_name_id
|
||||
REAL(KIND=dp) :: additional_potential
|
||||
TYPE(fist_environment_type), POINTER :: fist_env
|
||||
TYPE(meta_env_type), POINTER :: meta_env
|
||||
TYPE(fp_type), POINTER :: fp_env
|
||||
TYPE(qs_environment_type), POINTER :: qs_env
|
||||
TYPE(eip_environment_type), POINTER :: eip_env
|
||||
TYPE(pwdft_environment_type), POINTER :: pwdft_env
|
||||
TYPE(global_environment_type), POINTER :: globenv
|
||||
TYPE(mp_para_env_type), POINTER :: para_env
|
||||
TYPE(force_env_p_type), DIMENSION(:), POINTER :: sub_force_env
|
||||
TYPE(qmmm_env_type), POINTER :: qmmm_env
|
||||
TYPE(qmmmx_env_type), POINTER :: qmmmx_env
|
||||
TYPE(mixed_environment_type), POINTER :: mixed_env
|
||||
TYPE(nnp_type), POINTER :: nnp_env
|
||||
TYPE(embed_env_type), POINTER :: embed_env
|
||||
TYPE(section_vals_type), POINTER :: force_env_section
|
||||
TYPE(section_vals_type), POINTER :: root_section
|
||||
INTEGER :: ref_count = 0, in_use = 0, method_name_id = 0
|
||||
REAL(KIND=dp) :: additional_potential = 0.0_dp
|
||||
TYPE(fist_environment_type), POINTER :: fist_env => NULL()
|
||||
TYPE(meta_env_type), POINTER :: meta_env => NULL()
|
||||
TYPE(fp_type), POINTER :: fp_env => NULL()
|
||||
TYPE(qs_environment_type), POINTER :: qs_env => NULL()
|
||||
TYPE(eip_environment_type), POINTER :: eip_env => NULL()
|
||||
TYPE(pwdft_environment_type), POINTER :: pwdft_env => NULL()
|
||||
TYPE(global_environment_type), POINTER :: globenv => NULL()
|
||||
TYPE(mp_para_env_type), POINTER :: para_env => NULL()
|
||||
TYPE(force_env_p_type), DIMENSION(:), POINTER :: sub_force_env => NULL()
|
||||
TYPE(qmmm_env_type), POINTER :: qmmm_env => NULL()
|
||||
TYPE(qmmmx_env_type), POINTER :: qmmmx_env => NULL()
|
||||
TYPE(mixed_environment_type), POINTER :: mixed_env => NULL()
|
||||
TYPE(nnp_type), POINTER :: nnp_env => NULL()
|
||||
TYPE(embed_env_type), POINTER :: embed_env => NULL()
|
||||
TYPE(section_vals_type), POINTER :: force_env_section => NULL()
|
||||
TYPE(section_vals_type), POINTER :: root_section => NULL()
|
||||
END TYPE force_env_type
|
||||
|
||||
! **************************************************************************************************
|
||||
|
|
@ -165,7 +165,7 @@ MODULE force_env_types
|
|||
!> \author MJM
|
||||
! **************************************************************************************************
|
||||
TYPE force_env_p_type
|
||||
TYPE(force_env_type), POINTER :: force_env
|
||||
TYPE(force_env_type), POINTER :: force_env => NULL()
|
||||
END TYPE force_env_p_type
|
||||
|
||||
CONTAINS
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@ MODULE mp_perf_env
|
|||
USE kinds, ONLY: dp
|
||||
#include "../base/base_uses.f90"
|
||||
|
||||
PRIVATE
|
||||
|
||||
PUBLIC :: mp_perf_env_type
|
||||
PUBLIC :: mp_perf_env_retain, mp_perf_env_release
|
||||
PUBLIC :: add_mp_perf_env, rm_mp_perf_env, get_mp_perf_env, describe_mp_perf_env
|
||||
|
|
|
|||
|
|
@ -28,12 +28,14 @@ MODULE mp_perf_test
|
|||
|
||||
#if defined(__parallel)
|
||||
#if defined(__MPI_F08)
|
||||
USE mpi_f08
|
||||
USE mpi_f08, ONLY: mpi_wtime
|
||||
#else
|
||||
USE mpi
|
||||
USE mpi, ONLY: mpi_wtime
|
||||
#endif
|
||||
#endif
|
||||
|
||||
PRIVATE
|
||||
|
||||
PUBLIC :: mpi_perf_test
|
||||
|
||||
CONTAINS
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ MODULE pair_potential_types
|
|||
CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'pair_potential_types'
|
||||
|
||||
PRIVATE
|
||||
! when adding a new nonbonedd potential please update also the list_pot
|
||||
! when adding a new nonbonded potential please update also the list_pot
|
||||
! used for the linear scaling screening of potential calculation
|
||||
INTEGER, PUBLIC, PARAMETER :: multi_type = -1, &
|
||||
nn_type = 0, &
|
||||
|
|
@ -119,64 +119,64 @@ MODULE pair_potential_types
|
|||
|
||||
! **************************************************************************************************
|
||||
TYPE ipbv_pot_type
|
||||
REAL(KIND=dp), DIMENSION(2:15) :: a
|
||||
REAL(KIND=dp) :: rcore
|
||||
REAL(KIND=dp) :: m
|
||||
REAL(KIND=dp) :: b
|
||||
REAL(KIND=dp), DIMENSION(2:15) :: a = 0.0_dp
|
||||
REAL(KIND=dp) :: rcore = 0.0_dp
|
||||
REAL(KIND=dp) :: m = 0.0_dp
|
||||
REAL(KIND=dp) :: b = 0.0_dp
|
||||
END TYPE ipbv_pot_type
|
||||
|
||||
! **************************************************************************************************
|
||||
TYPE lj_pot_type
|
||||
REAL(KIND=dp) :: epsilon
|
||||
REAL(KIND=dp) :: sigma6
|
||||
REAL(KIND=dp) :: sigma12
|
||||
REAL(KIND=dp) :: epsilon = 0.0_dp
|
||||
REAL(KIND=dp) :: sigma6 = 0.0_dp
|
||||
REAL(KIND=dp) :: sigma12 = 0.0_dp
|
||||
END TYPE Lj_pot_type
|
||||
|
||||
! **************************************************************************************************
|
||||
TYPE ft_pot_type
|
||||
REAL(KIND=dp) :: A
|
||||
REAL(KIND=dp) :: B
|
||||
REAL(KIND=dp) :: C
|
||||
REAL(KIND=dp) :: D
|
||||
REAL(KIND=dp) :: A = 0.0_dp
|
||||
REAL(KIND=dp) :: B = 0.0_dp
|
||||
REAL(KIND=dp) :: C = 0.0_dp
|
||||
REAL(KIND=dp) :: D = 0.0_dp
|
||||
END TYPE ft_pot_type
|
||||
|
||||
! **************************************************************************************************
|
||||
TYPE ftd_pot_type
|
||||
REAL(KIND=dp) :: A
|
||||
REAL(KIND=dp) :: B
|
||||
REAL(KIND=dp) :: C
|
||||
REAL(KIND=dp) :: D
|
||||
REAL(KIND=dp), DIMENSION(2) :: BD
|
||||
REAL(KIND=dp) :: A = 0.0_dp
|
||||
REAL(KIND=dp) :: B = 0.0_dp
|
||||
REAL(KIND=dp) :: C = 0.0_dp
|
||||
REAL(KIND=dp) :: D = 0.0_dp
|
||||
REAL(KIND=dp), DIMENSION(2) :: BD = 0.0_dp
|
||||
END TYPE ftd_pot_type
|
||||
|
||||
! **************************************************************************************************
|
||||
TYPE williams_pot_type
|
||||
REAL(KIND=dp) :: a
|
||||
REAL(KIND=dp) :: b
|
||||
REAL(KIND=dp) :: c
|
||||
REAL(KIND=dp) :: a = 0.0_dp
|
||||
REAL(KIND=dp) :: b = 0.0_dp
|
||||
REAL(KIND=dp) :: c = 0.0_dp
|
||||
END TYPE williams_pot_type
|
||||
|
||||
! **************************************************************************************************
|
||||
TYPE goodwin_pot_type
|
||||
REAL(KIND=dp) :: vr0
|
||||
REAL(KIND=dp) :: m, mc
|
||||
REAL(KIND=dp) :: d, dc
|
||||
REAL(KIND=dp) :: vr0 = 0.0_dp
|
||||
REAL(KIND=dp) :: m = 0.0_dp, mc = 0.0_dp
|
||||
REAL(KIND=dp) :: d = 0.0_dp, dc = 0.0_dp
|
||||
END TYPE goodwin_pot_type
|
||||
|
||||
! **************************************************************************************************
|
||||
TYPE eam_pot_type
|
||||
CHARACTER(LEN=default_path_length) :: eam_file_name
|
||||
INTEGER :: npoints
|
||||
REAL(KIND=dp) :: drar, drhoar, acutal
|
||||
REAL(KIND=dp), POINTER, DIMENSION(:) :: rho, phi, frho, rhoval, rval
|
||||
REAL(KIND=dp), POINTER, DIMENSION(:) :: rhop, phip, frhop
|
||||
CHARACTER(LEN=default_path_length) :: eam_file_name = ""
|
||||
INTEGER :: npoints = 0
|
||||
REAL(KIND=dp) :: drar = 0.0_dp, drhoar = 0.0_dp, acutal = 0.0_dp
|
||||
REAL(KIND=dp), POINTER, DIMENSION(:) :: rho => NULL(), phi => NULL(), frho => NULL(), rhoval => NULL(), rval => NULL()
|
||||
REAL(KIND=dp), POINTER, DIMENSION(:) :: rhop => NULL(), phip => NULL(), frhop => NULL()
|
||||
END TYPE eam_pot_type
|
||||
|
||||
! **************************************************************************************************
|
||||
TYPE quip_pot_type
|
||||
CHARACTER(LEN=default_path_length) :: quip_file_name
|
||||
CHARACTER(LEN=1024) :: init_args
|
||||
CHARACTER(LEN=1024) :: calc_args
|
||||
CHARACTER(LEN=default_path_length) :: quip_file_name = ""
|
||||
CHARACTER(LEN=1024) :: init_args = ""
|
||||
CHARACTER(LEN=1024) :: calc_args = ""
|
||||
END TYPE quip_pot_type
|
||||
|
||||
! **************************************************************************************************
|
||||
|
|
@ -203,204 +203,204 @@ MODULE pair_potential_types
|
|||
|
||||
! **************************************************************************************************
|
||||
TYPE buck4ran_pot_type
|
||||
REAL(KIND=dp) :: a
|
||||
REAL(KIND=dp) :: b
|
||||
REAL(KIND=dp) :: c
|
||||
REAL(KIND=dp) :: r1
|
||||
REAL(KIND=dp) :: r2
|
||||
REAL(KIND=dp) :: r3
|
||||
INTEGER :: npoly1, npoly2
|
||||
REAL(KIND=dp), DIMENSION(0:10) :: poly1
|
||||
REAL(KIND=dp), DIMENSION(0:10) :: poly2
|
||||
REAL(KIND=dp) :: a = 0.0_dp
|
||||
REAL(KIND=dp) :: b = 0.0_dp
|
||||
REAL(KIND=dp) :: c = 0.0_dp
|
||||
REAL(KIND=dp) :: r1 = 0.0_dp
|
||||
REAL(KIND=dp) :: r2 = 0.0_dp
|
||||
REAL(KIND=dp) :: r3 = 0.0_dp
|
||||
INTEGER :: npoly1 = 0, npoly2 = 0
|
||||
REAL(KIND=dp), DIMENSION(0:10) :: poly1 = 0.0_dp
|
||||
REAL(KIND=dp), DIMENSION(0:10) :: poly2 = 0.0_dp
|
||||
END TYPE buck4ran_pot_type
|
||||
|
||||
! **************************************************************************************************
|
||||
TYPE buckmorse_pot_type
|
||||
REAL(KIND=dp) :: f0
|
||||
REAL(KIND=dp) :: a1
|
||||
REAL(KIND=dp) :: a2
|
||||
REAL(KIND=dp) :: b1
|
||||
REAL(KIND=dp) :: b2
|
||||
REAL(KIND=dp) :: c
|
||||
REAL(KIND=dp) :: d
|
||||
REAL(KIND=dp) :: r0
|
||||
REAL(KIND=dp) :: beta
|
||||
REAL(KIND=dp) :: f0 = 0.0_dp
|
||||
REAL(KIND=dp) :: a1 = 0.0_dp
|
||||
REAL(KIND=dp) :: a2 = 0.0_dp
|
||||
REAL(KIND=dp) :: b1 = 0.0_dp
|
||||
REAL(KIND=dp) :: b2 = 0.0_dp
|
||||
REAL(KIND=dp) :: c = 0.0_dp
|
||||
REAL(KIND=dp) :: d = 0.0_dp
|
||||
REAL(KIND=dp) :: r0 = 0.0_dp
|
||||
REAL(KIND=dp) :: beta = 0.0_dp
|
||||
END TYPE buckmorse_pot_type
|
||||
|
||||
! **************************************************************************************************
|
||||
TYPE gp_pot_type
|
||||
INTEGER :: myid
|
||||
CHARACTER(LEN=default_path_length) :: potential
|
||||
INTEGER :: myid = 0
|
||||
CHARACTER(LEN=default_path_length) :: potential = ""
|
||||
CHARACTER(LEN=default_string_length), &
|
||||
POINTER, DIMENSION(:) :: parameters, units
|
||||
CHARACTER(LEN=default_string_length) :: variables
|
||||
REAL(KIND=dp), DIMENSION(:), POINTER :: values
|
||||
POINTER, DIMENSION(:) :: parameters => NULL(), units => NULL()
|
||||
CHARACTER(LEN=default_string_length) :: variables = ""
|
||||
REAL(KIND=dp), DIMENSION(:), POINTER :: values => NULL()
|
||||
END TYPE gp_pot_type
|
||||
|
||||
! **************************************************************************************************
|
||||
TYPE tersoff_pot_type
|
||||
! Get this stuff from the PRB V38, N14 9902 (1988) by Tersoff
|
||||
REAL(KIND=dp) :: A
|
||||
REAL(KIND=dp) :: B
|
||||
REAL(KIND=dp) :: lambda1
|
||||
REAL(KIND=dp) :: lambda2
|
||||
REAL(KIND=dp) :: alpha
|
||||
REAL(KIND=dp) :: beta
|
||||
REAL(KIND=dp) :: n
|
||||
REAL(KIND=dp) :: c
|
||||
REAL(KIND=dp) :: d
|
||||
REAL(KIND=dp) :: h
|
||||
REAL(KIND=dp) :: lambda3
|
||||
REAL(KIND=dp) :: bigR ! Used to be R = Rij + D
|
||||
REAL(KIND=dp) :: bigD ! Used to be D = Rij - D
|
||||
REAL(KIND=dp) :: rcutsq ! Always set to (bigR+bigD)^2
|
||||
REAL(KIND=dp) :: A = 0.0_dp
|
||||
REAL(KIND=dp) :: B = 0.0_dp
|
||||
REAL(KIND=dp) :: lambda1 = 0.0_dp
|
||||
REAL(KIND=dp) :: lambda2 = 0.0_dp
|
||||
REAL(KIND=dp) :: alpha = 0.0_dp
|
||||
REAL(KIND=dp) :: beta = 0.0_dp
|
||||
REAL(KIND=dp) :: n = 0.0_dp
|
||||
REAL(KIND=dp) :: c = 0.0_dp
|
||||
REAL(KIND=dp) :: d = 0.0_dp
|
||||
REAL(KIND=dp) :: h = 0.0_dp
|
||||
REAL(KIND=dp) :: lambda3 = 0.0_dp
|
||||
REAL(KIND=dp) :: bigR = 0.0_dp ! Used to be R = Rij + D
|
||||
REAL(KIND=dp) :: bigD = 0.0_dp ! Used to be D = Rij - D
|
||||
REAL(KIND=dp) :: rcutsq = 0.0_dp ! Always set to (bigR+bigD)^2
|
||||
END TYPE tersoff_pot_type
|
||||
|
||||
! **************************************************************************************************
|
||||
TYPE siepmann_pot_type
|
||||
REAL(KIND=dp) :: B
|
||||
REAL(KIND=dp) :: D
|
||||
REAL(KIND=dp) :: E
|
||||
REAL(KIND=dp) :: F
|
||||
REAL(KIND=dp) :: beta
|
||||
REAL(KIND=dp) :: rcutsq
|
||||
LOGICAL :: allow_oh_formation
|
||||
LOGICAL :: allow_h3o_formation
|
||||
LOGICAL :: allow_o_formation
|
||||
REAL(KIND=dp) :: B = 0.0_dp
|
||||
REAL(KIND=dp) :: D = 0.0_dp
|
||||
REAL(KIND=dp) :: E = 0.0_dp
|
||||
REAL(KIND=dp) :: F = 0.0_dp
|
||||
REAL(KIND=dp) :: beta = 0.0_dp
|
||||
REAL(KIND=dp) :: rcutsq = 0.0_dp
|
||||
LOGICAL :: allow_oh_formation = .FALSE.
|
||||
LOGICAL :: allow_h3o_formation = .FALSE.
|
||||
LOGICAL :: allow_o_formation = .FALSE.
|
||||
END TYPE siepmann_pot_type
|
||||
|
||||
! **************************************************************************************************
|
||||
TYPE gal_pot_type
|
||||
CHARACTER(LEN=2) :: met1
|
||||
CHARACTER(LEN=2) :: met2
|
||||
REAL(KIND=dp) :: epsilon
|
||||
REAL(KIND=dp) :: bxy
|
||||
REAL(KIND=dp) :: bz
|
||||
REAL(KIND=dp) :: r1
|
||||
REAL(KIND=dp) :: r2
|
||||
REAL(KIND=dp) :: a1
|
||||
REAL(KIND=dp) :: a2
|
||||
REAL(KIND=dp) :: a3
|
||||
REAL(KIND=dp) :: a4
|
||||
REAL(KIND=dp) :: a
|
||||
REAL(KIND=dp) :: b
|
||||
REAL(KIND=dp) :: c
|
||||
REAL(KIND=dp), POINTER, DIMENSION(:) :: gcn
|
||||
CHARACTER(LEN=2) :: met1 = ""
|
||||
CHARACTER(LEN=2) :: met2 = ""
|
||||
REAL(KIND=dp) :: epsilon = 0.0_dp
|
||||
REAL(KIND=dp) :: bxy = 0.0_dp
|
||||
REAL(KIND=dp) :: bz = 0.0_dp
|
||||
REAL(KIND=dp) :: r1 = 0.0_dp
|
||||
REAL(KIND=dp) :: r2 = 0.0_dp
|
||||
REAL(KIND=dp) :: a1 = 0.0_dp
|
||||
REAL(KIND=dp) :: a2 = 0.0_dp
|
||||
REAL(KIND=dp) :: a3 = 0.0_dp
|
||||
REAL(KIND=dp) :: a4 = 0.0_dp
|
||||
REAL(KIND=dp) :: a = 0.0_dp
|
||||
REAL(KIND=dp) :: b = 0.0_dp
|
||||
REAL(KIND=dp) :: c = 0.0_dp
|
||||
REAL(KIND=dp), POINTER, DIMENSION(:) :: gcn => NULL()
|
||||
REAL(KIND=dp), ALLOCATABLE, DIMENSION(:, :) :: n_vectors
|
||||
REAL(KIND=dp) :: rcutsq
|
||||
LOGICAL :: express
|
||||
REAL(KIND=dp) :: rcutsq = 0.0_dp
|
||||
LOGICAL :: express = .FALSE.
|
||||
END TYPE gal_pot_type
|
||||
|
||||
! **************************************************************************************************
|
||||
|
||||
TYPE gal21_pot_type
|
||||
CHARACTER(LEN=2) :: met1
|
||||
CHARACTER(LEN=2) :: met2
|
||||
REAL(KIND=dp) :: epsilon1
|
||||
REAL(KIND=dp) :: epsilon2
|
||||
REAL(KIND=dp) :: epsilon3
|
||||
REAL(KIND=dp) :: bxy1
|
||||
REAL(KIND=dp) :: bxy2
|
||||
REAL(KIND=dp) :: bz1
|
||||
REAL(KIND=dp) :: bz2
|
||||
REAL(KIND=dp) :: r1
|
||||
REAL(KIND=dp) :: r2
|
||||
REAL(KIND=dp) :: a11
|
||||
REAL(KIND=dp) :: a12
|
||||
REAL(KIND=dp) :: a13
|
||||
REAL(KIND=dp) :: a21
|
||||
REAL(KIND=dp) :: a22
|
||||
REAL(KIND=dp) :: a23
|
||||
REAL(KIND=dp) :: a31
|
||||
REAL(KIND=dp) :: a32
|
||||
REAL(KIND=dp) :: a33
|
||||
REAL(KIND=dp) :: a41
|
||||
REAL(KIND=dp) :: a42
|
||||
REAL(KIND=dp) :: a43
|
||||
REAL(KIND=dp) :: AO1
|
||||
REAL(KIND=dp) :: AO2
|
||||
REAL(KIND=dp) :: BO1
|
||||
REAL(KIND=dp) :: BO2
|
||||
REAL(KIND=dp) :: c
|
||||
REAL(KIND=dp) :: AH1
|
||||
REAL(KIND=dp) :: AH2
|
||||
REAL(KIND=dp) :: BH1
|
||||
REAL(KIND=dp) :: BH2
|
||||
REAL(KIND=dp), POINTER, DIMENSION(:) :: gcn
|
||||
CHARACTER(LEN=2) :: met1 = ""
|
||||
CHARACTER(LEN=2) :: met2 = ""
|
||||
REAL(KIND=dp) :: epsilon1 = 0.0_dp
|
||||
REAL(KIND=dp) :: epsilon2 = 0.0_dp
|
||||
REAL(KIND=dp) :: epsilon3 = 0.0_dp
|
||||
REAL(KIND=dp) :: bxy1 = 0.0_dp
|
||||
REAL(KIND=dp) :: bxy2 = 0.0_dp
|
||||
REAL(KIND=dp) :: bz1 = 0.0_dp
|
||||
REAL(KIND=dp) :: bz2 = 0.0_dp
|
||||
REAL(KIND=dp) :: r1 = 0.0_dp
|
||||
REAL(KIND=dp) :: r2 = 0.0_dp
|
||||
REAL(KIND=dp) :: a11 = 0.0_dp
|
||||
REAL(KIND=dp) :: a12 = 0.0_dp
|
||||
REAL(KIND=dp) :: a13 = 0.0_dp
|
||||
REAL(KIND=dp) :: a21 = 0.0_dp
|
||||
REAL(KIND=dp) :: a22 = 0.0_dp
|
||||
REAL(KIND=dp) :: a23 = 0.0_dp
|
||||
REAL(KIND=dp) :: a31 = 0.0_dp
|
||||
REAL(KIND=dp) :: a32 = 0.0_dp
|
||||
REAL(KIND=dp) :: a33 = 0.0_dp
|
||||
REAL(KIND=dp) :: a41 = 0.0_dp
|
||||
REAL(KIND=dp) :: a42 = 0.0_dp
|
||||
REAL(KIND=dp) :: a43 = 0.0_dp
|
||||
REAL(KIND=dp) :: AO1 = 0.0_dp
|
||||
REAL(KIND=dp) :: AO2 = 0.0_dp
|
||||
REAL(KIND=dp) :: BO1 = 0.0_dp
|
||||
REAL(KIND=dp) :: BO2 = 0.0_dp
|
||||
REAL(KIND=dp) :: c = 0.0_dp
|
||||
REAL(KIND=dp) :: AH1 = 0.0_dp
|
||||
REAL(KIND=dp) :: AH2 = 0.0_dp
|
||||
REAL(KIND=dp) :: BH1 = 0.0_dp
|
||||
REAL(KIND=dp) :: BH2 = 0.0_dp
|
||||
REAL(KIND=dp), POINTER, DIMENSION(:) :: gcn => NULL()
|
||||
REAL(KIND=dp), ALLOCATABLE, DIMENSION(:, :) :: n_vectors
|
||||
REAL(KIND=dp) :: rcutsq
|
||||
LOGICAL :: express
|
||||
REAL(KIND=dp) :: rcutsq = 0.0_dp
|
||||
LOGICAL :: express = .FALSE.
|
||||
END TYPE gal21_pot_type
|
||||
|
||||
! **************************************************************************************************
|
||||
|
||||
TYPE tab_pot_type
|
||||
CHARACTER(LEN=default_path_length) :: tabpot_file_name
|
||||
INTEGER :: npoints, index
|
||||
REAL(KIND=dp) :: dr, rcut
|
||||
REAL(KIND=dp), POINTER, DIMENSION(:) :: r, e, f
|
||||
CHARACTER(LEN=default_path_length) :: tabpot_file_name = ""
|
||||
INTEGER :: npoints = 0, index = 0
|
||||
REAL(KIND=dp) :: dr = 0.0_dp, rcut = 0.0_dp
|
||||
REAL(KIND=dp), POINTER, DIMENSION(:) :: r => NULL(), e => NULL(), f => NULL()
|
||||
END TYPE tab_pot_type
|
||||
|
||||
! **************************************************************************************************
|
||||
|
||||
TYPE pot_set_type
|
||||
REAL(KIND=dp) :: rmin, rmax
|
||||
TYPE(ipbv_pot_type), POINTER :: ipbv
|
||||
TYPE(gp_pot_type), POINTER :: gp
|
||||
TYPE(lj_pot_type), POINTER :: lj
|
||||
TYPE(ft_pot_type), POINTER :: ft
|
||||
TYPE(williams_pot_type), POINTER :: willis
|
||||
TYPE(goodwin_pot_type), POINTER :: goodwin
|
||||
TYPE(eam_pot_type), POINTER :: eam
|
||||
TYPE(quip_pot_type), POINTER :: quip
|
||||
TYPE(nequip_pot_type), POINTER :: nequip
|
||||
TYPE(allegro_pot_type), POINTER :: allegro
|
||||
TYPE(buck4ran_pot_type), POINTER :: buck4r
|
||||
TYPE(buckmorse_pot_type), POINTER :: buckmo
|
||||
TYPE(tersoff_pot_type), POINTER :: tersoff
|
||||
TYPE(siepmann_pot_type), POINTER :: siepmann
|
||||
TYPE(gal_pot_type), POINTER :: gal
|
||||
TYPE(gal21_pot_type), POINTER :: gal21
|
||||
TYPE(ftd_pot_type), POINTER :: ftd
|
||||
TYPE(tab_pot_type), POINTER :: tab
|
||||
REAL(KIND=dp) :: rmin = 0.0_dp, rmax = 0.0_dp
|
||||
TYPE(ipbv_pot_type), POINTER :: ipbv => NULL()
|
||||
TYPE(gp_pot_type), POINTER :: gp => NULL()
|
||||
TYPE(lj_pot_type), POINTER :: lj => NULL()
|
||||
TYPE(ft_pot_type), POINTER :: ft => NULL()
|
||||
TYPE(williams_pot_type), POINTER :: willis => NULL()
|
||||
TYPE(goodwin_pot_type), POINTER :: goodwin => NULL()
|
||||
TYPE(eam_pot_type), POINTER :: eam => NULL()
|
||||
TYPE(quip_pot_type), POINTER :: quip => NULL()
|
||||
TYPE(nequip_pot_type), POINTER :: nequip => NULL()
|
||||
TYPE(allegro_pot_type), POINTER :: allegro => NULL()
|
||||
TYPE(buck4ran_pot_type), POINTER :: buck4r => NULL()
|
||||
TYPE(buckmorse_pot_type), POINTER :: buckmo => NULL()
|
||||
TYPE(tersoff_pot_type), POINTER :: tersoff => NULL()
|
||||
TYPE(siepmann_pot_type), POINTER :: siepmann => NULL()
|
||||
TYPE(gal_pot_type), POINTER :: gal => NULL()
|
||||
TYPE(gal21_pot_type), POINTER :: gal21 => NULL()
|
||||
TYPE(ftd_pot_type), POINTER :: ftd => NULL()
|
||||
TYPE(tab_pot_type), POINTER :: tab => NULL()
|
||||
END TYPE pot_set_type
|
||||
|
||||
! **************************************************************************************************
|
||||
TYPE pair_potential_single_type
|
||||
REAL(KIND=dp) :: rcutsq
|
||||
REAL(KIND=dp) :: e_fac
|
||||
REAL(KIND=dp) :: e_fcc
|
||||
REAL(KIND=dp) :: e_fcs
|
||||
REAL(KIND=dp) :: e_fsc
|
||||
REAL(KIND=dp) :: z1
|
||||
REAL(KIND=dp) :: z2
|
||||
REAL(KIND=dp) :: zbl_poly(0:5)
|
||||
REAL(KIND=dp) :: zbl_rcut(2)
|
||||
LOGICAL :: undef, & ! non-bonding interaction not defined
|
||||
no_mb, & ! no many-body potential
|
||||
no_pp ! no pair (=two-body) potential
|
||||
INTEGER :: shell_type
|
||||
CHARACTER(LEN=default_string_length) :: at1
|
||||
CHARACTER(LEN=default_string_length) :: at2
|
||||
INTEGER, POINTER, DIMENSION(:) :: TYPE
|
||||
TYPE(pot_set_type), POINTER, DIMENSION(:) :: set
|
||||
TYPE(spline_data_p_type), POINTER, DIMENSION(:) :: pair_spline_data
|
||||
TYPE(spline_factor_type), POINTER :: spl_f
|
||||
REAL(KIND=dp) :: rcutsq = 0.0_dp
|
||||
REAL(KIND=dp) :: e_fac = 0.0_dp
|
||||
REAL(KIND=dp) :: e_fcc = 0.0_dp
|
||||
REAL(KIND=dp) :: e_fcs = 0.0_dp
|
||||
REAL(KIND=dp) :: e_fsc = 0.0_dp
|
||||
REAL(KIND=dp) :: z1 = 0.0_dp
|
||||
REAL(KIND=dp) :: z2 = 0.0_dp
|
||||
REAL(KIND=dp), DIMENSION(0:5) :: zbl_poly = 0.0_dp
|
||||
REAL(KIND=dp), DIMENSION(2) :: zbl_rcut = 0.0_dp
|
||||
LOGICAL :: undef = .FALSE., & ! non-bonding interaction not defined
|
||||
no_mb = .FALSE., & ! no many-body potential
|
||||
no_pp = .FALSE. ! no pair (=two-body) potential
|
||||
INTEGER :: shell_type = 0
|
||||
CHARACTER(LEN=default_string_length) :: at1 = ""
|
||||
CHARACTER(LEN=default_string_length) :: at2 = ""
|
||||
INTEGER, POINTER, DIMENSION(:) :: TYPE => NULL()
|
||||
TYPE(pot_set_type), POINTER, DIMENSION(:) :: set => NULL()
|
||||
TYPE(spline_data_p_type), POINTER, DIMENSION(:) :: pair_spline_data => NULL()
|
||||
TYPE(spline_factor_type), POINTER :: spl_f => NULL()
|
||||
END TYPE pair_potential_single_type
|
||||
|
||||
! **************************************************************************************************
|
||||
TYPE pair_potential_type
|
||||
TYPE(pair_potential_single_type), POINTER :: pot
|
||||
TYPE(pair_potential_single_type), POINTER :: pot => NULL()
|
||||
END TYPE pair_potential_type
|
||||
|
||||
! **************************************************************************************************
|
||||
TYPE pair_potential_p_type
|
||||
TYPE(pair_potential_type), DIMENSION(:), POINTER :: pot
|
||||
TYPE(pair_potential_type), DIMENSION(:), POINTER :: pot => NULL()
|
||||
END TYPE pair_potential_p_type
|
||||
|
||||
! **************************************************************************************************
|
||||
TYPE pair_potential_pp_type
|
||||
TYPE(pair_potential_type), DIMENSION(:, :), POINTER :: pot
|
||||
TYPE(pair_potential_type), DIMENSION(:, :), POINTER :: pot => NULL()
|
||||
END TYPE pair_potential_pp_type
|
||||
|
||||
CONTAINS
|
||||
|
|
|
|||
|
|
@ -340,7 +340,7 @@ CONTAINS
|
|||
RMR = MATMUL(RM, R)
|
||||
F = RMR*D !Hadamard product
|
||||
RF = MATMUL(R, F)
|
||||
RFR = REAL(MATMUL(RF, TRANSPOSE(CONJG(R))))
|
||||
RFR = REAL(MATMUL(RF, TRANSPOSE(CONJG(R))), dp)
|
||||
|
||||
! gradient dE/dX has to be anti-symmetric
|
||||
G = 0.5_dp*(TRANSPOSE(RFR) - RFR)
|
||||
|
|
@ -408,8 +408,8 @@ CONTAINS
|
|||
|
||||
CALL ZHEEVD('V', 'U', n, A(1, 1), n, eigenvalues(1), &
|
||||
work(1), lwork, rwork(1), lrwork, iwork(1), liwork, info)
|
||||
lwork = INT(REAL(work(1)))
|
||||
lrwork = INT(REAL(rwork(1)))
|
||||
lwork = INT(REAL(work(1), dp))
|
||||
lrwork = INT(REAL(rwork(1), dp))
|
||||
liwork = iwork(1)
|
||||
|
||||
DEALLOCATE (iwork, rwork, work)
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ MODULE pao_types
|
|||
PUBLIC :: pao_env_type, training_matrix_type, pao_finalize
|
||||
|
||||
TYPE filename_type
|
||||
CHARACTER(LEN=default_path_length) :: fn
|
||||
CHARACTER(LEN=default_path_length) :: fn = ""
|
||||
END TYPE filename_type
|
||||
|
||||
! **************************************************************************************************
|
||||
|
|
@ -172,7 +172,7 @@ MODULE pao_types
|
|||
REAL(KIND=dp) :: energy_prev = 0.0_dp
|
||||
REAL(KIND=dp) :: step_start_time = 0.0_dp
|
||||
REAL(KIND=dp) :: norm_G = 0.0_dp
|
||||
TYPE(linesearch_type) :: linesearch
|
||||
TYPE(linesearch_type) :: linesearch = linesearch_type()
|
||||
LOGICAL :: matrix_X_ready = .FALSE.
|
||||
LOGICAL :: matrix_P_ready = .FALSE.
|
||||
LOGICAL :: constants_ready = .FALSE.
|
||||
|
|
|
|||
|
|
@ -50,25 +50,25 @@ MODULE paw_proj_set_types
|
|||
! Define the projector types
|
||||
|
||||
TYPE paw_proj_set_type
|
||||
INTEGER :: maxl, ncgauprj, nsgauprj
|
||||
INTEGER, DIMENSION(:), POINTER :: nprj ! 0:maxl
|
||||
INTEGER, DIMENSION(:), POINTER :: lx, ly, lz ! ncgauprj
|
||||
INTEGER, DIMENSION(:), POINTER :: ll, m ! nsgauprj
|
||||
INTEGER, DIMENSION(:), POINTER :: first_prj, last_prj ! 0:maxl
|
||||
INTEGER, DIMENSION(:), POINTER :: first_prjs ! 0:maxl
|
||||
REAL(KIND=dp) :: rcprj
|
||||
REAL(KIND=dp), DIMENSION(:), POINTER :: zisomin
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: zetprj ! maxnprj,0:maxl
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: rzetprj ! maxnprj,0:maxl
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: csprj ! ncgauprj, np_so
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: chprj ! ncgauprj, np_so
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: local_oce_sphi_h, local_oce_sphi_s ! maxco,nsgf
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: sphi_h, sphi_s
|
||||
LOGICAL, DIMENSION(:, :), POINTER :: isoprj ! maxnprj,0:maxl
|
||||
INTEGER :: nsatbas
|
||||
INTEGER :: nsotot
|
||||
INTEGER, DIMENSION(:), POINTER :: o2nindex ! maxso*nset
|
||||
INTEGER, DIMENSION(:), POINTER :: n2oindex ! maxso*nset
|
||||
INTEGER :: maxl = -1, ncgauprj = -1, nsgauprj = -1
|
||||
INTEGER, DIMENSION(:), POINTER :: nprj => NULL() ! 0:maxl
|
||||
INTEGER, DIMENSION(:), POINTER :: lx => NULL(), ly => NULL(), lz => NULL() ! ncgauprj
|
||||
INTEGER, DIMENSION(:), POINTER :: ll => NULL(), m => NULL() ! nsgauprj
|
||||
INTEGER, DIMENSION(:), POINTER :: first_prj => NULL(), last_prj => NULL() ! 0:maxl
|
||||
INTEGER, DIMENSION(:), POINTER :: first_prjs => NULL() ! 0:maxl
|
||||
REAL(KIND=dp) :: rcprj = 0.0_dp
|
||||
REAL(KIND=dp), DIMENSION(:), POINTER :: zisomin => NULL()
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: zetprj => NULL() ! maxnprj,0:maxl
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: rzetprj => NULL() ! maxnprj,0:maxl
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: csprj => NULL() ! ncgauprj, np_so
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: chprj => NULL() ! ncgauprj, np_so
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: local_oce_sphi_h => NULL(), local_oce_sphi_s => NULL() ! maxco,nsgf
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: sphi_h => NULL(), sphi_s => NULL()
|
||||
LOGICAL, DIMENSION(:, :), POINTER :: isoprj => NULL() ! maxnprj,0:maxl
|
||||
INTEGER :: nsatbas = -1
|
||||
INTEGER :: nsotot = -1
|
||||
INTEGER, DIMENSION(:), POINTER :: o2nindex => NULL() ! maxso*nset
|
||||
INTEGER, DIMENSION(:), POINTER :: n2oindex => NULL() ! maxso*nset
|
||||
|
||||
END TYPE paw_proj_set_type
|
||||
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ MODULE pwdft_environment_types
|
|||
!> \author JHU
|
||||
! **************************************************************************************************
|
||||
TYPE pwdft_energy_type
|
||||
REAL(KIND=dp) :: etotal
|
||||
REAL(KIND=dp) :: etotal = 0.0_dp
|
||||
END TYPE pwdft_energy_type
|
||||
|
||||
! **************************************************************************************************
|
||||
|
|
@ -70,17 +70,17 @@ MODULE pwdft_environment_types
|
|||
TYPE(section_vals_type), POINTER :: xc_input => NULL()
|
||||
TYPE(pwdft_energy_type), POINTER :: energy => NULL()
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: forces => NULL()
|
||||
REAL(KIND=dp), DIMENSION(3, 3) :: stress
|
||||
REAL(KIND=dp), DIMENSION(3, 3) :: stress = 0.0_dp
|
||||
! 16 different functionals should be enough
|
||||
CHARACTER(len=80) :: xc_func(16)
|
||||
CHARACTER(len=80), DIMENSION(16) :: xc_func = ""
|
||||
#if defined(__SIRIUS)
|
||||
TYPE(sirius_context_handler) :: sctx
|
||||
TYPE(sirius_ground_state_handler) :: gs_handler
|
||||
TYPE(sirius_kpoint_set_handler) :: ks_handler
|
||||
#else
|
||||
TYPE(C_PTR) :: sctx
|
||||
TYPE(C_PTR) :: gs_handler
|
||||
TYPE(C_PTR) :: ks_handler
|
||||
TYPE(C_PTR) :: sctx = C_NULL_PTR
|
||||
TYPE(C_PTR) :: gs_handler = C_NULL_PTR
|
||||
TYPE(C_PTR) :: ks_handler = C_NULL_PTR
|
||||
#endif
|
||||
|
||||
END TYPE pwdft_environment_type
|
||||
|
|
|
|||
|
|
@ -40,25 +40,25 @@ MODULE qs_active_space_types
|
|||
!> \author JGH
|
||||
! **************************************************************************************************
|
||||
TYPE eri_gpw_type
|
||||
LOGICAL :: redo_poisson
|
||||
REAL(KIND=dp) :: cutoff
|
||||
REAL(KIND=dp) :: rel_cutoff
|
||||
REAL(KIND=dp) :: eps_grid
|
||||
INTEGER :: print_level
|
||||
LOGICAL :: store_wfn
|
||||
LOGICAL :: redo_poisson = .FALSE.
|
||||
REAL(KIND=dp) :: cutoff = 0.0_dp
|
||||
REAL(KIND=dp) :: rel_cutoff = 0.0_dp
|
||||
REAL(KIND=dp) :: eps_grid = 0.0_dp
|
||||
INTEGER :: print_level = 0
|
||||
LOGICAL :: store_wfn = .FALSE.
|
||||
END TYPE eri_gpw_type
|
||||
|
||||
TYPE eri_type
|
||||
INTEGER :: method
|
||||
INTEGER :: OPERATOR
|
||||
REAL(KIND=dp) :: operator_parameter
|
||||
INTEGER, DIMENSION(3) :: periodicity
|
||||
REAL(KIND=dp) :: cutoff_radius
|
||||
REAL(KIND=dp) :: eps_integral
|
||||
TYPE(eri_gpw_type) :: eri_gpw
|
||||
INTEGER :: method = 0
|
||||
INTEGER :: OPERATOR = 0
|
||||
REAL(KIND=dp) :: operator_parameter = 0.0_dp
|
||||
INTEGER, DIMENSION(3) :: periodicity = 0
|
||||
REAL(KIND=dp) :: cutoff_radius = 0.0_dp
|
||||
REAL(KIND=dp) :: eps_integral = 0.0_dp
|
||||
TYPE(eri_gpw_type) :: eri_gpw = eri_gpw_type()
|
||||
TYPE(dbcsr_csr_p_type), &
|
||||
DIMENSION(:), POINTER :: eri => NULL()
|
||||
INTEGER :: norb
|
||||
INTEGER :: norb = 0
|
||||
|
||||
CONTAINS
|
||||
PROCEDURE :: eri_foreach => eri_type_eri_foreach
|
||||
|
|
@ -73,31 +73,31 @@ MODULE qs_active_space_types
|
|||
END TYPE eri_type_eri_element_func
|
||||
|
||||
TYPE active_space_type
|
||||
INTEGER :: nelec_active
|
||||
INTEGER, POINTER, DIMENSION(:, :):: active_orbitals
|
||||
INTEGER, POINTER, DIMENSION(:, :):: inactive_orbitals
|
||||
INTEGER :: nelec_inactive
|
||||
INTEGER, DIMENSION(2) :: nelec_inactive_spinwise
|
||||
INTEGER, DIMENSION(2) :: nelec_total
|
||||
INTEGER :: multiplicity
|
||||
INTEGER :: nspins
|
||||
LOGICAL :: molecule
|
||||
INTEGER :: model
|
||||
REAL(KIND=dp) :: energy_total
|
||||
REAL(KIND=dp) :: energy_ref
|
||||
REAL(KIND=dp) :: energy_inactive
|
||||
REAL(KIND=dp) :: energy_active
|
||||
LOGICAL :: read_p_act
|
||||
CHARACTER(LEN=default_path_length) :: p_act_filename
|
||||
TYPE(mo_set_type), DIMENSION(:), POINTER :: mos_active
|
||||
TYPE(mo_set_type), DIMENSION(:), POINTER :: mos_inactive
|
||||
TYPE(eri_type) :: eri
|
||||
TYPE(cp_fm_type), DIMENSION(:), POINTER :: p_active
|
||||
TYPE(cp_fm_type), DIMENSION(:), POINTER :: ks_sub
|
||||
TYPE(cp_fm_type), DIMENSION(:), POINTER :: vxc_sub
|
||||
TYPE(cp_fm_type), DIMENSION(:), POINTER :: h_sub
|
||||
TYPE(cp_fm_type), DIMENSION(:), POINTER :: fock_sub
|
||||
TYPE(dbcsr_p_type), DIMENSION(:), POINTER:: pmat_inactive
|
||||
INTEGER :: nelec_active = 0
|
||||
INTEGER, POINTER, DIMENSION(:, :) :: active_orbitals => NULL()
|
||||
INTEGER, POINTER, DIMENSION(:, :) :: inactive_orbitals => NULL()
|
||||
INTEGER :: nelec_inactive = 0
|
||||
INTEGER, DIMENSION(2) :: nelec_inactive_spinwise = 0
|
||||
INTEGER, DIMENSION(2) :: nelec_total = 0
|
||||
INTEGER :: multiplicity = 0
|
||||
INTEGER :: nspins = 0
|
||||
LOGICAL :: molecule = .FALSE.
|
||||
INTEGER :: model = 0
|
||||
REAL(KIND=dp) :: energy_total = 0.0_dp
|
||||
REAL(KIND=dp) :: energy_ref = 0.0_dp
|
||||
REAL(KIND=dp) :: energy_inactive = 0.0_dp
|
||||
REAL(KIND=dp) :: energy_active = 0.0_dp
|
||||
LOGICAL :: read_p_act = .FALSE.
|
||||
CHARACTER(LEN=default_path_length) :: p_act_filename = ""
|
||||
TYPE(mo_set_type), DIMENSION(:), POINTER :: mos_active => NULL()
|
||||
TYPE(mo_set_type), DIMENSION(:), POINTER :: mos_inactive => NULL()
|
||||
TYPE(eri_type) :: eri = eri_type()
|
||||
TYPE(cp_fm_type), DIMENSION(:), POINTER :: p_active => NULL()
|
||||
TYPE(cp_fm_type), DIMENSION(:), POINTER :: ks_sub => NULL()
|
||||
TYPE(cp_fm_type), DIMENSION(:), POINTER :: vxc_sub => NULL()
|
||||
TYPE(cp_fm_type), DIMENSION(:), POINTER :: h_sub => NULL()
|
||||
TYPE(cp_fm_type), DIMENSION(:), POINTER :: fock_sub => NULL()
|
||||
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: pmat_inactive => NULL()
|
||||
END TYPE active_space_type
|
||||
|
||||
ABSTRACT INTERFACE
|
||||
|
|
|
|||
|
|
@ -52,8 +52,8 @@ MODULE qs_tddfpt2_soc_types
|
|||
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: dipmat => Null()
|
||||
REAL(dp), POINTER, DIMENSION(:) :: evals_a => Null(), &
|
||||
evals_b => Null()
|
||||
TYPE(cp_fm_type) :: a_coeff, &
|
||||
b_coeff
|
||||
TYPE(cp_fm_type) :: a_coeff = cp_fm_type(), &
|
||||
b_coeff = cp_fm_type()
|
||||
REAL(dp), ALLOCATABLE, DIMENSION(:) :: soc_evals, &
|
||||
soc_osc
|
||||
END TYPE
|
||||
|
|
@ -71,7 +71,7 @@ MODULE qs_tddfpt2_soc_types
|
|||
TYPE(grid_atom_p_type), DIMENSION(:), POINTER :: grid_atom_set => Null()
|
||||
TYPE(harmonics_atom_p_type), DIMENSION(:), POINTER :: harmonics_atom_set => Null()
|
||||
TYPE(cp_2d_r_p_type), DIMENSION(:), POINTER :: orb_sphi_so => Null()
|
||||
TYPE(dbcsr_p_type), DIMENSION(:, :), POINTER :: soc_pp
|
||||
TYPE(dbcsr_p_type), DIMENSION(:, :), POINTER :: soc_pp => Null()
|
||||
END TYPE
|
||||
|
||||
CONTAINS
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ MODULE cp2k_shell
|
|||
TYPE(mp_para_env_type), POINTER :: para_env => Null()
|
||||
CHARACTER(LEN=5) :: units = "au"
|
||||
INTEGER :: env_id = -1
|
||||
INTEGER :: iw
|
||||
INTEGER :: iw = -1
|
||||
END TYPE cp2k_shell_type
|
||||
|
||||
PUBLIC :: launch_cp2k_shell
|
||||
|
|
|
|||
|
|
@ -50,8 +50,8 @@ MODULE libcp2k
|
|||
PRIVATE
|
||||
|
||||
TYPE, EXTENDS(eri_type_eri_element_func) :: eri2array
|
||||
INTEGER(C_INT), POINTER :: coords(:)
|
||||
REAL(C_DOUBLE), POINTER :: values(:)
|
||||
INTEGER(C_INT), POINTER :: coords(:) => NULL()
|
||||
REAL(C_DOUBLE), POINTER :: values(:) => NULL()
|
||||
INTEGER :: idx = 1
|
||||
CONTAINS
|
||||
PROCEDURE :: func => eri2array_func
|
||||
|
|
|
|||
|
|
@ -57,9 +57,9 @@ MODULE task_list_types
|
|||
|
||||
TYPE task_list_type
|
||||
TYPE(task_type), DIMENSION(:), POINTER :: tasks => Null()
|
||||
INTEGER :: ntasks
|
||||
INTEGER, DIMENSION(:, :), POINTER :: taskstart, taskstop
|
||||
INTEGER, DIMENSION(:), POINTER :: npairs
|
||||
INTEGER :: ntasks = 0
|
||||
INTEGER, DIMENSION(:, :), POINTER :: taskstart => Null(), taskstop => Null()
|
||||
INTEGER, DIMENSION(:), POINTER :: npairs => Null()
|
||||
|
||||
TYPE(atom_pair_type), DIMENSION(:), POINTER :: atom_pair_send => Null()
|
||||
INTEGER, DIMENSION(:), POINTER :: pair_offsets_send => Null()
|
||||
|
|
@ -74,9 +74,9 @@ MODULE task_list_types
|
|||
INTEGER :: buffer_size_recv = 0
|
||||
|
||||
TYPE(grid_basis_set_type), DIMENSION(:), POINTER :: grid_basis_sets => Null()
|
||||
TYPE(grid_task_list_type) :: grid_task_list
|
||||
TYPE(offload_buffer_type) :: pab_buffer
|
||||
TYPE(offload_buffer_type) :: hab_buffer
|
||||
TYPE(grid_task_list_type) :: grid_task_list = grid_task_list_type()
|
||||
TYPE(offload_buffer_type) :: pab_buffer = offload_buffer_type()
|
||||
TYPE(offload_buffer_type) :: hab_buffer = offload_buffer_type()
|
||||
END TYPE task_list_type
|
||||
|
||||
INTEGER, PARAMETER :: task_size_in_int8 = 17
|
||||
|
|
|
|||
|
|
@ -38,26 +38,26 @@ MODULE xas_control
|
|||
!> \brief A type that holds controlling information for a xas calculation
|
||||
! **************************************************************************************************
|
||||
TYPE xas_control_type
|
||||
INTEGER :: nexc_atoms
|
||||
INTEGER :: nexc_search
|
||||
INTEGER :: spin_channel
|
||||
INTEGER :: state_type
|
||||
INTEGER :: xas_method
|
||||
INTEGER :: dipole_form
|
||||
INTEGER :: added_mos
|
||||
INTEGER :: max_iter_added
|
||||
INTEGER :: ngauss
|
||||
INTEGER :: stride
|
||||
INTEGER, DIMENSION(:), POINTER :: exc_atoms
|
||||
INTEGER, DIMENSION(:), POINTER :: orbital_list
|
||||
LOGICAL :: cubes, do_centers
|
||||
LOGICAL :: xas_restart
|
||||
INTEGER, DIMENSION(:), POINTER :: list_cubes
|
||||
INTEGER :: nexc_atoms = 0
|
||||
INTEGER :: nexc_search = 0
|
||||
INTEGER :: spin_channel = 0
|
||||
INTEGER :: state_type = 0
|
||||
INTEGER :: xas_method = 0
|
||||
INTEGER :: dipole_form = 0
|
||||
INTEGER :: added_mos = 0
|
||||
INTEGER :: max_iter_added = 0
|
||||
INTEGER :: ngauss = 0
|
||||
INTEGER :: stride = 0
|
||||
INTEGER, DIMENSION(:), POINTER :: exc_atoms => NULL()
|
||||
INTEGER, DIMENSION(:), POINTER :: orbital_list => NULL()
|
||||
LOGICAL :: cubes = .FALSE., do_centers = .FALSE.
|
||||
LOGICAL :: xas_restart = .FALSE.
|
||||
INTEGER, DIMENSION(:), POINTER :: list_cubes => NULL()
|
||||
!
|
||||
REAL(dp) :: eps_added, overlap_threshold
|
||||
REAL(dp) :: xes_core_occupation
|
||||
REAL(dp) :: xes_homo_occupation
|
||||
REAL(dp) :: nel_tot, xas_core_occupation
|
||||
REAL(dp) :: eps_added = 0.0_dp, overlap_threshold = 0.0_dp
|
||||
REAL(dp) :: xes_core_occupation = 0.0_dp
|
||||
REAL(dp) :: xes_homo_occupation = 0.0_dp
|
||||
REAL(dp) :: nel_tot = 0.0_dp, xas_core_occupation = 0.0_dp
|
||||
END TYPE xas_control_type
|
||||
|
||||
CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'xas_control'
|
||||
|
|
|
|||
|
|
@ -67,39 +67,39 @@ MODULE xas_env_types
|
|||
!> \author MI
|
||||
! **************************************************************************************************
|
||||
TYPE xas_environment_type
|
||||
INTEGER :: nao, exc_state, xas_estate
|
||||
INTEGER :: nexc_search, nexc_atoms
|
||||
INTEGER :: spin_channel
|
||||
INTEGER :: nvirtual, nvirtual2
|
||||
INTEGER :: unoccupied_max_iter
|
||||
INTEGER :: nao = 0, exc_state = 0, xas_estate = 0
|
||||
INTEGER :: nexc_search = 0, nexc_atoms = 0
|
||||
INTEGER :: spin_channel = 0
|
||||
INTEGER :: nvirtual = 0, nvirtual2 = 0
|
||||
INTEGER :: unoccupied_max_iter = 0
|
||||
|
||||
INTEGER, DIMENSION(:), POINTER :: atom_of_state
|
||||
INTEGER, DIMENSION(:), POINTER :: type_of_state
|
||||
INTEGER, DIMENSION(:), POINTER :: mykind_of_atom
|
||||
INTEGER, DIMENSION(:), POINTER :: mykind_of_kind
|
||||
INTEGER, DIMENSION(:), POINTER :: exc_atoms
|
||||
INTEGER, DIMENSION(:), POINTER :: nexc_states
|
||||
INTEGER, DIMENSION(:, :), POINTER :: state_of_atom
|
||||
INTEGER, DIMENSION(:), POINTER :: atom_of_state => NULL()
|
||||
INTEGER, DIMENSION(:), POINTER :: type_of_state => NULL()
|
||||
INTEGER, DIMENSION(:), POINTER :: mykind_of_atom => NULL()
|
||||
INTEGER, DIMENSION(:), POINTER :: mykind_of_kind => NULL()
|
||||
INTEGER, DIMENSION(:), POINTER :: exc_atoms => NULL()
|
||||
INTEGER, DIMENSION(:), POINTER :: nexc_states => NULL()
|
||||
INTEGER, DIMENSION(:, :), POINTER :: state_of_atom => NULL()
|
||||
|
||||
REAL(dp) :: ip_energy, occ_estate, unoccupied_eps, xas_nelectron, homo_occ
|
||||
REAL(dp), DIMENSION(:), POINTER :: all_evals
|
||||
REAL(dp), DIMENSION(:), POINTER :: unoccupied_evals
|
||||
REAL(dp), DIMENSION(:, :), POINTER :: spectrum
|
||||
REAL(dp), DIMENSION(:, :), POINTER :: centers_wfn
|
||||
TYPE(cp_2d_r_p_type), DIMENSION(:), POINTER :: stogto_overlap
|
||||
TYPE(gto_basis_set_p_type), DIMENSION(:), POINTER :: my_gto_basis
|
||||
TYPE(cp_fm_type), DIMENSION(:), POINTER :: groundstate_coeff
|
||||
TYPE(cp_fm_type), DIMENSION(:, :), POINTER :: dip_fm_set
|
||||
REAL(dp) :: ip_energy = 0.0_dp, occ_estate = 0.0_dp, unoccupied_eps = 0.0_dp, xas_nelectron = 0.0_dp, homo_occ = 0.0_dp
|
||||
REAL(dp), DIMENSION(:), POINTER :: all_evals => NULL()
|
||||
REAL(dp), DIMENSION(:), POINTER :: unoccupied_evals => NULL()
|
||||
REAL(dp), DIMENSION(:, :), POINTER :: spectrum => NULL()
|
||||
REAL(dp), DIMENSION(:, :), POINTER :: centers_wfn => NULL()
|
||||
TYPE(cp_2d_r_p_type), DIMENSION(:), POINTER :: stogto_overlap => NULL()
|
||||
TYPE(gto_basis_set_p_type), DIMENSION(:), POINTER :: my_gto_basis => NULL()
|
||||
TYPE(cp_fm_type), DIMENSION(:), POINTER :: groundstate_coeff => NULL()
|
||||
TYPE(cp_fm_type), DIMENSION(:, :), POINTER :: dip_fm_set => NULL()
|
||||
TYPE(cp_fm_pool_p_type), DIMENSION(:), &
|
||||
POINTER :: ao_mo_fm_pools
|
||||
TYPE(cp_fm_type), POINTER :: excvec_coeff
|
||||
TYPE(cp_fm_type), POINTER :: excvec_overlap
|
||||
TYPE(cp_fm_type), POINTER :: unoccupied_orbs
|
||||
TYPE(cp_fm_type), POINTER :: all_vectors
|
||||
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: ostrength_sm
|
||||
TYPE(qs_loc_env_type), POINTER :: qs_loc_env
|
||||
TYPE(qs_scf_env_type), POINTER :: scf_env
|
||||
TYPE(scf_control_type), POINTER :: scf_control
|
||||
POINTER :: ao_mo_fm_pools => NULL()
|
||||
TYPE(cp_fm_type), POINTER :: excvec_coeff => NULL()
|
||||
TYPE(cp_fm_type), POINTER :: excvec_overlap => NULL()
|
||||
TYPE(cp_fm_type), POINTER :: unoccupied_orbs => NULL()
|
||||
TYPE(cp_fm_type), POINTER :: all_vectors => NULL()
|
||||
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: ostrength_sm => NULL()
|
||||
TYPE(qs_loc_env_type), POINTER :: qs_loc_env => NULL()
|
||||
TYPE(qs_scf_env_type), POINTER :: scf_env => NULL()
|
||||
TYPE(scf_control_type), POINTER :: scf_control => NULL()
|
||||
|
||||
END TYPE xas_environment_type
|
||||
|
||||
|
|
|
|||
|
|
@ -100,57 +100,57 @@ MODULE xas_tdp_types
|
|||
!> \param ot_eps_iter convergence threshold for OT diagonalization
|
||||
! **************************************************************************************************
|
||||
TYPE xas_tdp_control_type
|
||||
INTEGER :: define_excited
|
||||
INTEGER :: dipole_form
|
||||
INTEGER :: n_search
|
||||
INTEGER :: n_excited
|
||||
INTEGER :: ot_max_iter
|
||||
REAL(dp) :: e_range
|
||||
REAL(dp) :: sx
|
||||
REAL(dp) :: eps_range
|
||||
REAL(dp) :: eps_screen
|
||||
REAL(dp) :: eps_pgf
|
||||
REAL(dp) :: eps_filter
|
||||
REAL(dp) :: ot_eps_iter
|
||||
TYPE(libint_potential_type) :: x_potential
|
||||
TYPE(libint_potential_type) :: ri_m_potential
|
||||
REAL(dp) :: ri_radius
|
||||
LOGICAL :: do_ot
|
||||
LOGICAL :: do_hfx
|
||||
LOGICAL :: do_xc
|
||||
LOGICAL :: do_coulomb
|
||||
LOGICAL :: do_ri_metric
|
||||
LOGICAL :: check_only
|
||||
LOGICAL :: tamm_dancoff
|
||||
LOGICAL :: do_quad
|
||||
LOGICAL :: xyz_dip
|
||||
LOGICAL :: do_loc
|
||||
LOGICAL :: do_uks
|
||||
LOGICAL :: do_roks
|
||||
LOGICAL :: do_soc
|
||||
LOGICAL :: do_singlet
|
||||
LOGICAL :: do_triplet
|
||||
LOGICAL :: do_spin_cons
|
||||
LOGICAL :: do_spin_flip
|
||||
LOGICAL :: is_periodic
|
||||
INTEGER, DIMENSION(:), POINTER :: list_ex_atoms
|
||||
INTEGER :: define_excited = 0
|
||||
INTEGER :: dipole_form = 0
|
||||
INTEGER :: n_search = 0
|
||||
INTEGER :: n_excited = 0
|
||||
INTEGER :: ot_max_iter = 0
|
||||
REAL(dp) :: e_range = 0.0_dp
|
||||
REAL(dp) :: sx = 0.0_dp
|
||||
REAL(dp) :: eps_range = 0.0_dp
|
||||
REAL(dp) :: eps_screen = 0.0_dp
|
||||
REAL(dp) :: eps_pgf = 0.0_dp
|
||||
REAL(dp) :: eps_filter = 0.0_dp
|
||||
REAL(dp) :: ot_eps_iter = 0.0_dp
|
||||
TYPE(libint_potential_type) :: x_potential = libint_potential_type()
|
||||
TYPE(libint_potential_type) :: ri_m_potential = libint_potential_type()
|
||||
REAL(dp) :: ri_radius = 0.0_dp
|
||||
LOGICAL :: do_ot = .FALSE.
|
||||
LOGICAL :: do_hfx = .FALSE.
|
||||
LOGICAL :: do_xc = .FALSE.
|
||||
LOGICAL :: do_coulomb = .FALSE.
|
||||
LOGICAL :: do_ri_metric = .FALSE.
|
||||
LOGICAL :: check_only = .FALSE.
|
||||
LOGICAL :: tamm_dancoff = .FALSE.
|
||||
LOGICAL :: do_quad = .FALSE.
|
||||
LOGICAL :: xyz_dip = .FALSE.
|
||||
LOGICAL :: do_loc = .FALSE.
|
||||
LOGICAL :: do_uks = .FALSE.
|
||||
LOGICAL :: do_roks = .FALSE.
|
||||
LOGICAL :: do_soc = .FALSE.
|
||||
LOGICAL :: do_singlet = .FALSE.
|
||||
LOGICAL :: do_triplet = .FALSE.
|
||||
LOGICAL :: do_spin_cons = .FALSE.
|
||||
LOGICAL :: do_spin_flip = .FALSE.
|
||||
LOGICAL :: is_periodic = .FALSE.
|
||||
INTEGER, DIMENSION(:), POINTER :: list_ex_atoms => NULL()
|
||||
CHARACTER(len=default_string_length), &
|
||||
DIMENSION(:), POINTER :: list_ex_kinds
|
||||
INTEGER, DIMENSION(:, :), POINTER :: state_types
|
||||
TYPE(section_vals_type), POINTER :: loc_subsection
|
||||
TYPE(section_vals_type), POINTER :: print_loc_subsection
|
||||
DIMENSION(:), POINTER :: list_ex_kinds => NULL()
|
||||
INTEGER, DIMENSION(:, :), POINTER :: state_types => NULL()
|
||||
TYPE(section_vals_type), POINTER :: loc_subsection => NULL()
|
||||
TYPE(section_vals_type), POINTER :: print_loc_subsection => NULL()
|
||||
CHARACTER(len=default_string_length), &
|
||||
DIMENSION(:, :), POINTER :: grid_info
|
||||
TYPE(qs_ot_settings_type), POINTER :: ot_settings
|
||||
DIMENSION(:, :), POINTER :: grid_info => NULL()
|
||||
TYPE(qs_ot_settings_type), POINTER :: ot_settings => NULL()
|
||||
|
||||
LOGICAL :: do_gw2x
|
||||
LOGICAL :: xps_only
|
||||
REAL(dp) :: gw2x_eps
|
||||
LOGICAL :: pseudo_canonical
|
||||
INTEGER :: max_gw2x_iter
|
||||
REAL(dp) :: c_os
|
||||
REAL(dp) :: c_ss
|
||||
INTEGER :: batch_size
|
||||
LOGICAL :: do_gw2x = .FALSE.
|
||||
LOGICAL :: xps_only = .FALSE.
|
||||
REAL(dp) :: gw2x_eps = 0.0_dp
|
||||
LOGICAL :: pseudo_canonical = .FALSE.
|
||||
INTEGER :: max_gw2x_iter = 0
|
||||
REAL(dp) :: c_os = 0.0_dp
|
||||
REAL(dp) :: c_ss = 0.0_dp
|
||||
INTEGER :: batch_size = 0
|
||||
|
||||
END TYPE xas_tdp_control_type
|
||||
|
||||
|
|
@ -192,44 +192,44 @@ MODULE xas_tdp_types
|
|||
!> \param lumo_evals the associated LUMO evals
|
||||
!> *************************************************************************************************
|
||||
TYPE xas_tdp_env_type
|
||||
CHARACTER(len=2), DIMENSION(3) :: state_type_char
|
||||
INTEGER :: nex_atoms
|
||||
INTEGER :: nex_kinds
|
||||
INTEGER, DIMENSION(:), POINTER :: ex_atom_indices
|
||||
INTEGER, DIMENSION(:), POINTER :: ex_kind_indices
|
||||
INTEGER, DIMENSION(:, :), POINTER :: state_types
|
||||
TYPE(dbt_type), POINTER :: ri_3c_coul
|
||||
TYPE(dbt_type), POINTER :: ri_3c_ex
|
||||
CHARACTER(len=2), DIMENSION(3) :: state_type_char = ""
|
||||
INTEGER :: nex_atoms = 0
|
||||
INTEGER :: nex_kinds = 0
|
||||
INTEGER, DIMENSION(:), POINTER :: ex_atom_indices => NULL()
|
||||
INTEGER, DIMENSION(:), POINTER :: ex_kind_indices => NULL()
|
||||
INTEGER, DIMENSION(:, :), POINTER :: state_types => NULL()
|
||||
TYPE(dbt_type), POINTER :: ri_3c_coul => NULL()
|
||||
TYPE(dbt_type), POINTER :: ri_3c_ex => NULL()
|
||||
TYPE(donor_state_type), DIMENSION(:), &
|
||||
POINTER :: donor_states
|
||||
INTEGER, DIMENSION(:, :, :), POINTER :: mos_of_ex_atoms
|
||||
TYPE(qs_loc_env_type), POINTER :: qs_loc_env
|
||||
REAL(dp), DIMENSION(:, :), POINTER :: ri_inv_coul
|
||||
REAL(dp), DIMENSION(:, :), POINTER :: ri_inv_ex
|
||||
TYPE(distribution_2d_type), POINTER :: opt_dist2d_coul
|
||||
TYPE(distribution_2d_type), POINTER :: opt_dist2d_ex
|
||||
POINTER :: donor_states => NULL()
|
||||
INTEGER, DIMENSION(:, :, :), POINTER :: mos_of_ex_atoms => NULL()
|
||||
TYPE(qs_loc_env_type), POINTER :: qs_loc_env => NULL()
|
||||
REAL(dp), DIMENSION(:, :), POINTER :: ri_inv_coul => NULL()
|
||||
REAL(dp), DIMENSION(:, :), POINTER :: ri_inv_ex => NULL()
|
||||
TYPE(distribution_2d_type), POINTER :: opt_dist2d_coul => NULL()
|
||||
TYPE(distribution_2d_type), POINTER :: opt_dist2d_ex => NULL()
|
||||
TYPE(dbcsr_p_type), DIMENSION(:), &
|
||||
POINTER :: q_projector
|
||||
POINTER :: q_projector => NULL()
|
||||
TYPE(dbcsr_p_type), DIMENSION(:), &
|
||||
POINTER :: dipmat
|
||||
POINTER :: dipmat => NULL()
|
||||
TYPE(dbcsr_p_type), DIMENSION(:), &
|
||||
POINTER :: quadmat
|
||||
POINTER :: quadmat => NULL()
|
||||
TYPE(cp_2d_r_p_type), DIMENSION(:, :), &
|
||||
POINTER :: ri_fxc
|
||||
LOGICAL :: fxc_avail
|
||||
POINTER :: ri_fxc => NULL()
|
||||
LOGICAL :: fxc_avail = .FALSE.
|
||||
TYPE(dbcsr_p_type), DIMENSION(:), &
|
||||
POINTER :: orb_soc
|
||||
TYPE(cp_fm_type), POINTER :: matrix_shalf
|
||||
POINTER :: orb_soc => NULL()
|
||||
TYPE(cp_fm_type), POINTER :: matrix_shalf => NULL()
|
||||
TYPE(cp_fm_type), DIMENSION(:), &
|
||||
POINTER :: lumo_evecs
|
||||
POINTER :: lumo_evecs => NULL()
|
||||
|
||||
TYPE(cp_1d_r_p_type), DIMENSION(:), &
|
||||
POINTER :: lumo_evals
|
||||
POINTER :: lumo_evals => NULL()
|
||||
TYPE(dbcsr_p_type), DIMENSION(:), &
|
||||
POINTER :: ot_prec
|
||||
POINTER :: ot_prec => NULL()
|
||||
TYPE(dbcsr_p_type), DIMENSION(:), &
|
||||
POINTER :: fock_matrix
|
||||
TYPE(cp_fm_type), POINTER :: lumo_coeffs
|
||||
POINTER :: fock_matrix => NULL()
|
||||
TYPE(cp_fm_type), POINTER :: lumo_coeffs => NULL()
|
||||
END TYPE xas_tdp_env_type
|
||||
|
||||
!> *************************************************************************************************
|
||||
|
|
@ -267,59 +267,59 @@ MODULE xas_tdp_types
|
|||
!> \param dbcsr_dist the distribution of the dbcsr matrices
|
||||
!> *************************************************************************************************
|
||||
TYPE donor_state_type
|
||||
INTEGER :: at_index
|
||||
INTEGER :: kind_index
|
||||
INTEGER :: ndo_mo
|
||||
CHARACTER(LEN=default_string_length) :: at_symbol
|
||||
INTEGER :: state_type
|
||||
INTEGER, DIMENSION(:), POINTER :: blk_size
|
||||
REAL(dp), DIMENSION(:, :), POINTER :: energy_evals
|
||||
REAL(dp), DIMENSION(:, :), POINTER :: gw2x_evals
|
||||
INTEGER, DIMENSION(:, :), POINTER :: mo_indices
|
||||
TYPE(cp_fm_type), POINTER :: sc_coeffs
|
||||
TYPE(cp_fm_type), POINTER :: sf_coeffs
|
||||
TYPE(cp_fm_type), POINTER :: sg_coeffs
|
||||
TYPE(cp_fm_type), POINTER :: tp_coeffs
|
||||
TYPE(cp_fm_type), POINTER :: gs_coeffs
|
||||
REAL(dp), DIMENSION(:, :), POINTER :: contract_coeffs
|
||||
REAL(dp), DIMENSION(:), POINTER :: sc_evals
|
||||
REAL(dp), DIMENSION(:), POINTER :: sf_evals
|
||||
REAL(dp), DIMENSION(:), POINTER :: sg_evals
|
||||
REAL(dp), DIMENSION(:), POINTER :: tp_evals
|
||||
REAL(dp), DIMENSION(:), POINTER :: soc_evals
|
||||
REAL(dp), DIMENSION(:, :), POINTER :: osc_str
|
||||
REAL(dp), DIMENSION(:, :), POINTER :: soc_osc_str
|
||||
REAL(dp), DIMENSION(:), POINTER :: quad_osc_str
|
||||
REAL(dp), DIMENSION(:), POINTER :: soc_quad_osc_str
|
||||
TYPE(dbcsr_type), POINTER :: sc_matrix_tdp
|
||||
TYPE(dbcsr_type), POINTER :: sf_matrix_tdp
|
||||
TYPE(dbcsr_type), POINTER :: sg_matrix_tdp
|
||||
TYPE(dbcsr_type), POINTER :: tp_matrix_tdp
|
||||
INTEGER :: at_index = 0
|
||||
INTEGER :: kind_index = 0
|
||||
INTEGER :: ndo_mo = 0
|
||||
CHARACTER(LEN=default_string_length) :: at_symbol = ""
|
||||
INTEGER :: state_type = 0
|
||||
INTEGER, DIMENSION(:), POINTER :: blk_size => NULL()
|
||||
REAL(dp), DIMENSION(:, :), POINTER :: energy_evals => NULL()
|
||||
REAL(dp), DIMENSION(:, :), POINTER :: gw2x_evals => NULL()
|
||||
INTEGER, DIMENSION(:, :), POINTER :: mo_indices => NULL()
|
||||
TYPE(cp_fm_type), POINTER :: sc_coeffs => NULL()
|
||||
TYPE(cp_fm_type), POINTER :: sf_coeffs => NULL()
|
||||
TYPE(cp_fm_type), POINTER :: sg_coeffs => NULL()
|
||||
TYPE(cp_fm_type), POINTER :: tp_coeffs => NULL()
|
||||
TYPE(cp_fm_type), POINTER :: gs_coeffs => NULL()
|
||||
REAL(dp), DIMENSION(:, :), POINTER :: contract_coeffs => NULL()
|
||||
REAL(dp), DIMENSION(:), POINTER :: sc_evals => NULL()
|
||||
REAL(dp), DIMENSION(:), POINTER :: sf_evals => NULL()
|
||||
REAL(dp), DIMENSION(:), POINTER :: sg_evals => NULL()
|
||||
REAL(dp), DIMENSION(:), POINTER :: tp_evals => NULL()
|
||||
REAL(dp), DIMENSION(:), POINTER :: soc_evals => NULL()
|
||||
REAL(dp), DIMENSION(:, :), POINTER :: osc_str => NULL()
|
||||
REAL(dp), DIMENSION(:, :), POINTER :: soc_osc_str => NULL()
|
||||
REAL(dp), DIMENSION(:), POINTER :: quad_osc_str => NULL()
|
||||
REAL(dp), DIMENSION(:), POINTER :: soc_quad_osc_str => NULL()
|
||||
TYPE(dbcsr_type), POINTER :: sc_matrix_tdp => NULL()
|
||||
TYPE(dbcsr_type), POINTER :: sf_matrix_tdp => NULL()
|
||||
TYPE(dbcsr_type), POINTER :: sg_matrix_tdp => NULL()
|
||||
TYPE(dbcsr_type), POINTER :: tp_matrix_tdp => NULL()
|
||||
TYPE(dbcsr_p_type), DIMENSION(:), &
|
||||
POINTER :: metric
|
||||
TYPE(dbcsr_type), POINTER :: matrix_aux
|
||||
TYPE(dbcsr_distribution_type), POINTER :: dbcsr_dist
|
||||
POINTER :: metric => NULL()
|
||||
TYPE(dbcsr_type), POINTER :: matrix_aux => NULL()
|
||||
TYPE(dbcsr_distribution_type), POINTER :: dbcsr_dist => NULL()
|
||||
|
||||
END TYPE donor_state_type
|
||||
|
||||
! Some helper types for xas_tdp_atom
|
||||
TYPE grid_atom_p_type
|
||||
TYPE(grid_atom_type), POINTER :: grid_atom
|
||||
TYPE(grid_atom_type), POINTER :: grid_atom => NULL()
|
||||
END TYPE grid_atom_p_type
|
||||
|
||||
TYPE harmonics_atom_p_type
|
||||
TYPE(harmonics_atom_type), POINTER :: harmonics_atom
|
||||
TYPE(harmonics_atom_type), POINTER :: harmonics_atom => NULL()
|
||||
END TYPE harmonics_atom_p_type
|
||||
|
||||
TYPE batch_info_type
|
||||
TYPE(mp_para_env_type) :: para_env
|
||||
INTEGER :: batch_size
|
||||
INTEGER :: nbatch
|
||||
INTEGER :: ibatch
|
||||
INTEGER :: ipe
|
||||
TYPE(mp_para_env_type) :: para_env = mp_para_env_type()
|
||||
INTEGER :: batch_size = 0
|
||||
INTEGER :: nbatch = 0
|
||||
INTEGER :: ibatch = 0
|
||||
INTEGER :: ipe = 0
|
||||
INTEGER, DIMENSION(:), ALLOCATABLE :: nso_proc
|
||||
INTEGER, DIMENSION(:, :), ALLOCATABLE :: so_bo
|
||||
TYPE(cp_2d_i_p_type), POINTER, DIMENSION(:) :: so_proc_info
|
||||
TYPE(cp_2d_i_p_type), POINTER, DIMENSION(:) :: so_proc_info => NULL()
|
||||
END TYPE batch_info_type
|
||||
|
||||
! **************************************************************************************************
|
||||
|
|
@ -341,20 +341,20 @@ MODULE xas_tdp_types
|
|||
!> \param dga2 second angular part of the gradient of the RI spherical gaussians
|
||||
!> *************************************************************************************************
|
||||
TYPE xas_atom_env_type
|
||||
INTEGER :: nspins
|
||||
REAL(dp) :: ri_radius
|
||||
INTEGER, DIMENSION(:), POINTER :: excited_atoms
|
||||
INTEGER, DIMENSION(:), POINTER :: excited_kinds
|
||||
INTEGER, DIMENSION(:), POINTER :: proc_of_exat
|
||||
TYPE(grid_atom_p_type), DIMENSION(:), POINTER :: grid_atom_set
|
||||
INTEGER :: nspins = 0
|
||||
REAL(dp) :: ri_radius = 0.0_dp
|
||||
INTEGER, DIMENSION(:), POINTER :: excited_atoms => NULL()
|
||||
INTEGER, DIMENSION(:), POINTER :: excited_kinds => NULL()
|
||||
INTEGER, DIMENSION(:), POINTER :: proc_of_exat => NULL()
|
||||
TYPE(grid_atom_p_type), DIMENSION(:), POINTER :: grid_atom_set => NULL()
|
||||
TYPE(harmonics_atom_p_type), DIMENSION(:), &
|
||||
POINTER :: harmonics_atom_set
|
||||
TYPE(cp_1d_r_p_type), DIMENSION(:, :, :), POINTER :: ri_dcoeff
|
||||
TYPE(cp_2d_r_p_type), DIMENSION(:), POINTER :: ri_sphi_so
|
||||
TYPE(cp_2d_r_p_type), DIMENSION(:), POINTER :: orb_sphi_so
|
||||
TYPE(cp_1d_i_p_type), DIMENSION(:), POINTER :: exat_neighbors
|
||||
TYPE(cp_2d_r_p_type), DIMENSION(:), POINTER :: ga, gr, dgr1, dgr2
|
||||
TYPE(cp_3d_r_p_type), DIMENSION(:), POINTER :: dga1, dga2
|
||||
POINTER :: harmonics_atom_set => NULL()
|
||||
TYPE(cp_1d_r_p_type), DIMENSION(:, :, :), POINTER :: ri_dcoeff => NULL()
|
||||
TYPE(cp_2d_r_p_type), DIMENSION(:), POINTER :: ri_sphi_so => NULL()
|
||||
TYPE(cp_2d_r_p_type), DIMENSION(:), POINTER :: orb_sphi_so => NULL()
|
||||
TYPE(cp_1d_i_p_type), DIMENSION(:), POINTER :: exat_neighbors => NULL()
|
||||
TYPE(cp_2d_r_p_type), DIMENSION(:), POINTER :: ga => NULL(), gr => NULL(), dgr1 => NULL(), dgr2 => NULL()
|
||||
TYPE(cp_3d_r_p_type), DIMENSION(:), POINTER :: dga1 => NULL(), dga2 => NULL()
|
||||
END TYPE xas_atom_env_type
|
||||
|
||||
CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'xas_tdp_types'
|
||||
|
|
|
|||
|
|
@ -91,14 +91,14 @@ MODULE xas_tdp_utils
|
|||
|
||||
!A helper type for SOC
|
||||
TYPE dbcsr_soc_package_type
|
||||
TYPE(dbcsr_type), POINTER :: dbcsr_sg
|
||||
TYPE(dbcsr_type), POINTER :: dbcsr_tp
|
||||
TYPE(dbcsr_type), POINTER :: dbcsr_sc
|
||||
TYPE(dbcsr_type), POINTER :: dbcsr_sf
|
||||
TYPE(dbcsr_type), POINTER :: dbcsr_prod
|
||||
TYPE(dbcsr_type), POINTER :: dbcsr_ovlp
|
||||
TYPE(dbcsr_type), POINTER :: dbcsr_tmp
|
||||
TYPE(dbcsr_type), POINTER :: dbcsr_work
|
||||
TYPE(dbcsr_type), POINTER :: dbcsr_sg => NULL()
|
||||
TYPE(dbcsr_type), POINTER :: dbcsr_tp => NULL()
|
||||
TYPE(dbcsr_type), POINTER :: dbcsr_sc => NULL()
|
||||
TYPE(dbcsr_type), POINTER :: dbcsr_sf => NULL()
|
||||
TYPE(dbcsr_type), POINTER :: dbcsr_prod => NULL()
|
||||
TYPE(dbcsr_type), POINTER :: dbcsr_ovlp => NULL()
|
||||
TYPE(dbcsr_type), POINTER :: dbcsr_tmp => NULL()
|
||||
TYPE(dbcsr_type), POINTER :: dbcsr_work => NULL()
|
||||
END TYPE dbcsr_soc_package_type
|
||||
|
||||
CONTAINS
|
||||
|
|
|
|||
|
|
@ -1,36 +1,5 @@
|
|||
almo_scf_diis_types.F: Found type almo_scf_diis_type without initializer https://cp2k.org/conv#c016
|
||||
almo_scf.F: Found WRITE statement with hardcoded unit in "almo_scf_init" https://cp2k.org/conv#c012
|
||||
almo_scf_lbfgs_types.F: Found type lbfgs_history_type without initializer https://cp2k.org/conv#c016
|
||||
almo_scf_types.F: Found type almo_analysis_type without initializer https://cp2k.org/conv#c016
|
||||
almo_scf_types.F: Found type almo_scf_env_type without initializer https://cp2k.org/conv#c016
|
||||
almo_scf_types.F: Found type almo_scf_history_type without initializer https://cp2k.org/conv#c016
|
||||
almo_scf_types.F: Found type optimizer_options_type without initializer https://cp2k.org/conv#c016
|
||||
almo_scf_types.F: Found type penalty_type without initializer https://cp2k.org/conv#c016
|
||||
al_system_dynamics.F: Found WRITE statement with hardcoded unit in "dump_vel" https://cp2k.org/conv#c012
|
||||
al_system_types.F: Found type al_system_type without initializer https://cp2k.org/conv#c016
|
||||
al_system_types.F: Found type al_thermo_type without initializer https://cp2k.org/conv#c016
|
||||
atom_fit.F: Found type wfn_init without initializer https://cp2k.org/conv#c016
|
||||
atom_grb.F: Found type basis_p_type without initializer https://cp2k.org/conv#c016
|
||||
atom_optimization.F: Found type atom_history_type without initializer https://cp2k.org/conv#c016
|
||||
atom_optimization.F: Found type hmat_type without initializer https://cp2k.org/conv#c016
|
||||
atom_sgp.F: Found type atom_sgp_potential_type without initializer https://cp2k.org/conv#c016
|
||||
atom_types.F: Found type atom_basis_type without initializer https://cp2k.org/conv#c016
|
||||
atom_types.F: Found type atom_ecppot_type without initializer https://cp2k.org/conv#c016
|
||||
atom_types.F: Found type atom_energy_type without initializer https://cp2k.org/conv#c016
|
||||
atom_types.F: Found type atom_gthpot_type without initializer https://cp2k.org/conv#c016
|
||||
atom_types.F: Found type atom_hfx_type without initializer https://cp2k.org/conv#c016
|
||||
atom_types.F: Found type atom_integrals without initializer https://cp2k.org/conv#c016
|
||||
atom_types.F: Found type atom_optimization_type without initializer https://cp2k.org/conv#c016
|
||||
atom_types.F: Found type atom_orbitals without initializer https://cp2k.org/conv#c016
|
||||
atom_types.F: Found type atom_potential_type without initializer https://cp2k.org/conv#c016
|
||||
atom_types.F: Found type atom_p_type without initializer https://cp2k.org/conv#c016
|
||||
atom_types.F: Found type atom_sgppot_type without initializer https://cp2k.org/conv#c016
|
||||
atom_types.F: Found type atom_state without initializer https://cp2k.org/conv#c016
|
||||
atom_types.F: Found type atom_type without initializer https://cp2k.org/conv#c016
|
||||
atom_types.F: Found type eri without initializer https://cp2k.org/conv#c016
|
||||
atom_types.F: Found type opgrid_type without initializer https://cp2k.org/conv#c016
|
||||
atom_types.F: Found type opmat_type without initializer https://cp2k.org/conv#c016
|
||||
atom_upf.F: Found type atom_upfpot_type without initializer https://cp2k.org/conv#c016
|
||||
base_hooks.F: Found CALL m_abort in procedure "cp_abort" https://cp2k.org/conv#c102
|
||||
base_hooks.F: Found STOP statement in procedure "cp_abort" https://cp2k.org/conv#c205
|
||||
base_hooks.F: Found STOP statement in procedure "cp__a" https://cp2k.org/conv#c205
|
||||
|
|
@ -40,37 +9,11 @@ base_hooks.F: Found WRITE statement with hardcoded unit in "cp_hint" https://cp2
|
|||
base_hooks.F: Found WRITE statement with hardcoded unit in "cp_warn" https://cp2k.org/conv#c012
|
||||
beta_gamma_psi.F: Found GOTO statement in procedure "bratio" https://cp2k.org/conv#c201
|
||||
bfgs_optimizer.F: Found GOTO statement in procedure "rat_fun_opt" https://cp2k.org/conv#c201
|
||||
block_p_types.F: Found type block_p_type without initializer https://cp2k.org/conv#c016
|
||||
callgraph.F: Found type callgraph_item_type without initializer https://cp2k.org/conv#c016
|
||||
callgraph.F: Found type private_item_type without initializer https://cp2k.org/conv#c016
|
||||
cg_test.F: Found WRITE statement with hardcoded unit in "clebsch_gordon_test" https://cp2k.org/conv#c012
|
||||
cp2k_shell.F: Found type cp2k_shell_type without initializer https://cp2k.org/conv#c016
|
||||
cp_control_types.F: Found type admm_control_type without initializer https://cp2k.org/conv#c016
|
||||
cp_control_types.F: Found type ddapc_restraint_type without initializer https://cp2k.org/conv#c016
|
||||
cp_control_types.F: Found type dftb_control_type without initializer https://cp2k.org/conv#c016
|
||||
cp_control_types.F: Found type dft_control_type without initializer https://cp2k.org/conv#c016
|
||||
cp_control_types.F: Found type efield_p_type without initializer https://cp2k.org/conv#c016
|
||||
cp_control_types.F: Found type efield_type without initializer https://cp2k.org/conv#c016
|
||||
cp_control_types.F: Found type expot_control_type without initializer https://cp2k.org/conv#c016
|
||||
cp_control_types.F: Found type gapw_control_type without initializer https://cp2k.org/conv#c016
|
||||
cp_control_types.F: Found type maxwell_control_type without initializer https://cp2k.org/conv#c016
|
||||
cp_control_types.F: Found type mulliken_restraint_type without initializer https://cp2k.org/conv#c016
|
||||
cp_control_types.F: Found type period_efield_type without initializer https://cp2k.org/conv#c016
|
||||
cp_control_types.F: Found type pw_grid_option without initializer https://cp2k.org/conv#c016
|
||||
cp_control_types.F: Found type qs_control_type without initializer https://cp2k.org/conv#c016
|
||||
cp_control_types.F: Found type rtp_control_type without initializer https://cp2k.org/conv#c016
|
||||
cp_control_types.F: Found type s2_restraint_type without initializer https://cp2k.org/conv#c016
|
||||
cp_control_types.F: Found type semi_empirical_control_type without initializer https://cp2k.org/conv#c016
|
||||
cp_control_types.F: Found type stda_control_type without initializer https://cp2k.org/conv#c016
|
||||
cp_control_types.F: Found type tddfpt2_control_type without initializer https://cp2k.org/conv#c016
|
||||
cp_control_types.F: Found type tddfpt_control_type without initializer https://cp2k.org/conv#c016
|
||||
cp_control_types.F: Found type xtb_control_type without initializer https://cp2k.org/conv#c016
|
||||
cp_dbcsr_operations.F: Found CALL cp_fm_gemm in procedure "cp_dbcsr_plus_fm_fm_t" https://cp2k.org/conv#c101
|
||||
cp_dbcsr_operations.F: Found WRITE statement with hardcoded unit in "cp_dbcsr_plus_fm_fm_t" https://cp2k.org/conv#c012
|
||||
cp_dbcsr_operations.F: Found WRITE statement with hardcoded unit in "create_bl_distribution" https://cp2k.org/conv#c012
|
||||
cp_dbcsr_operations.F: Found WRITE statement with hardcoded unit in "dbcsr_create_dist_block_cyclic" https://cp2k.org/conv#c012
|
||||
cp_ddapc_types.F: Found type cp_ddapc_ewald_type without initializer https://cp2k.org/conv#c016
|
||||
cp_ddapc_types.F: Found type cp_ddapc_type without initializer https://cp2k.org/conv#c016
|
||||
cp_ddapc_util.F: Found WRITE statement with hardcoded unit in "debug_charge" https://cp2k.org/conv#c012
|
||||
cp_ddapc_util.F: Found WRITE statement with hardcoded unit in "debug_der_a_matrix" https://cp2k.org/conv#c012
|
||||
cp_ddapc_util.F: Found WRITE statement with hardcoded unit in "debug_der_b_vector" https://cp2k.org/conv#c012
|
||||
|
|
@ -92,47 +35,24 @@ cp_log_handling.F: Found WRITE statement with hardcoded unit in "cp_int_to_strin
|
|||
cp_log_handling.F: Found WRITE statement with hardcoded unit in "cp_logger_get_default_unit_nr" https://cp2k.org/conv#c012
|
||||
cp_log_handling.F: Found WRITE statement with hardcoded unit in "cp_real_dp_to_string" https://cp2k.org/conv#c012
|
||||
cp_parser_inpp_methods.F: Found READ with unchecked STAT in "inpp_process_directive" https://cp2k.org/conv#c001
|
||||
cryssym.F: Found type csym_type without initializer https://cp2k.org/conv#c016
|
||||
csvr_system_types.F: Found type csvr_system_type without initializer https://cp2k.org/conv#c016
|
||||
csvr_system_types.F: Found type csvr_thermo_type without initializer https://cp2k.org/conv#c016
|
||||
ct_types.F: Found type ct_step_env_type without initializer https://cp2k.org/conv#c016
|
||||
cube_utils.F: Found WRITE statement with hardcoded unit in "return_cube_nonortho" https://cp2k.org/conv#c012
|
||||
d3_poly.F: Found CALL RANDOM_NUMBER in procedure "poly_random" https://cp2k.org/conv#c104
|
||||
dbcsr_vector.F: Found type block_ptr_c without initializer https://cp2k.org/conv#c016
|
||||
dbcsr_vector.F: Found type block_ptr_d without initializer https://cp2k.org/conv#c016
|
||||
dbcsr_vector.F: Found type block_ptr_s without initializer https://cp2k.org/conv#c016
|
||||
dbcsr_vector.F: Found type block_ptr_z without initializer https://cp2k.org/conv#c016
|
||||
dbcsr_vector.F: Found type fast_vec_access_type without initializer https://cp2k.org/conv#c016
|
||||
dbcsr_vector.F: Found type hash_table_type without initializer https://cp2k.org/conv#c016
|
||||
distribution_2d_types.F: Found type distribution_2d_type without initializer https://cp2k.org/conv#c016
|
||||
dkh_main.F: Found WRITE statement with hardcoded unit in "kintegral_a" https://cp2k.org/conv#c012
|
||||
dkh_main.F: Found WRITE statement with hardcoded unit in "kintegral" https://cp2k.org/conv#c012
|
||||
dm_ls_scf_types.F: Found type chebyshev_type without initializer https://cp2k.org/conv#c016
|
||||
dm_ls_scf_types.F: Found type ls_mat_history_type without initializer https://cp2k.org/conv#c016
|
||||
dm_ls_scf_types.F: Found type ls_mstruct_type without initializer https://cp2k.org/conv#c016
|
||||
dm_ls_scf_types.F: Found type ls_scf_curvy_type without initializer https://cp2k.org/conv#c016
|
||||
dm_ls_scf_types.F: Found type ls_scf_env_type without initializer https://cp2k.org/conv#c016
|
||||
domain_submatrix_methods.F: Found WRITE statement with hardcoded unit in "print_submatrices" https://cp2k.org/conv#c012
|
||||
domain_submatrix_types.F: Found type domain_submatrix_type without initializer https://cp2k.org/conv#c016
|
||||
dumpdcd.F: Found CLOSE statement in procedure "dumpdcd" https://cp2k.org/conv#c204
|
||||
dumpdcd.F: Found OPEN statement in procedure "dumpdcd" https://cp2k.org/conv#c203
|
||||
dumpdcd.F: Found STOP statement in procedure "abort_program" https://cp2k.org/conv#c205
|
||||
dumpdcd.F: Found STOP statement in procedure "dumpdcd" https://cp2k.org/conv#c205
|
||||
dumpdcd.F: Found WRITE statement with hardcoded unit in "abort_program" https://cp2k.org/conv#c012
|
||||
dumpdcd.F: Found WRITE statement with hardcoded unit in "print_help" https://cp2k.org/conv#c012
|
||||
ec_env_types.F: Found type energy_correction_type without initializer https://cp2k.org/conv#c016
|
||||
eip_environment_types.F: Found type eip_environment_type without initializer https://cp2k.org/conv#c016
|
||||
eip_silicon.F: Found OPEN statement in procedure "eip_bazant_silicon" https://cp2k.org/conv#c203
|
||||
eip_silicon.F: Found OPEN statement in procedure "eip_lenosky_silicon" https://cp2k.org/conv#c203
|
||||
eip_silicon.F: Found WRITE statement with hardcoded unit in "eip_bazant_silicon" https://cp2k.org/conv#c012
|
||||
eip_silicon.F: Found WRITE statement with hardcoded unit in "eip_lenosky_silicon" https://cp2k.org/conv#c012
|
||||
eip_silicon.F: Found WRITE statement with hardcoded unit in "subfeniat_b" https://cp2k.org/conv#c012
|
||||
eip_silicon.F: Found WRITE statement with hardcoded unit in "subfeniat_l" https://cp2k.org/conv#c012
|
||||
environment.F: Module "mp_perf_env" USEd without ONLY clause or not PRIVATE https://cp2k.org/conv#c002
|
||||
et_coupling_proj.F: Found type et_cpl_atom without initializer https://cp2k.org/conv#c016
|
||||
et_coupling_proj.F: Found type et_cpl_block without initializer https://cp2k.org/conv#c016
|
||||
et_coupling_proj.F: Found type et_cpl without initializer https://cp2k.org/conv#c016
|
||||
et_coupling_types.F: Found type et_coupling_type without initializer https://cp2k.org/conv#c016
|
||||
ewald_environment_types.F: Found type ewald_environment_type without initializer https://cp2k.org/conv#c016
|
||||
ewald_pw_types.F: Found type ewald_pw_type without initializer https://cp2k.org/conv#c016
|
||||
exclusion_types.F: Found type exclusion_type without initializer https://cp2k.org/conv#c016
|
||||
|
|
@ -144,9 +64,6 @@ extended_system_types.F: Found type map_info_type without initializer https://cp
|
|||
extended_system_types.F: Found type nhc_info_type without initializer https://cp2k.org/conv#c016
|
||||
extended_system_types.F: Found type npt_info_type without initializer https://cp2k.org/conv#c016
|
||||
extended_system_types.F: Found type point_info_type without initializer https://cp2k.org/conv#c016
|
||||
f77_interface.F: Found type f_env_p_type without initializer https://cp2k.org/conv#c016
|
||||
f77_interface.F: Found type f_env_type without initializer https://cp2k.org/conv#c016
|
||||
f77_interface.F: Module "mp_perf_env" USEd without ONLY clause or not PRIVATE https://cp2k.org/conv#c002
|
||||
farming_methods.F: Found CLOSE statement in procedure "farming_parse_input" https://cp2k.org/conv#c204
|
||||
farming_methods.F: Found OPEN statement in procedure "farming_parse_input" https://cp2k.org/conv#c203
|
||||
farming_types.F: Found type farming_env_type without initializer https://cp2k.org/conv#c016
|
||||
|
|
@ -162,8 +79,6 @@ fist_force.F: Found type debug_variables_type without initializer https://cp2k.o
|
|||
fist_neighbor_lists.F: Found type local_atoms_type without initializer https://cp2k.org/conv#c016
|
||||
fist_neighbor_list_types.F: Found type fist_neighbor_type without initializer https://cp2k.org/conv#c016
|
||||
fist_neighbor_list_types.F: Found type neighbor_kind_pairs_type without initializer https://cp2k.org/conv#c016
|
||||
force_env_types.F: Found type force_env_p_type without initializer https://cp2k.org/conv#c016
|
||||
force_env_types.F: Found type force_env_type without initializer https://cp2k.org/conv#c016
|
||||
force_field_types.F: Found type amber_info_type without initializer https://cp2k.org/conv#c016
|
||||
force_field_types.F: Found type charmm_info_type without initializer https://cp2k.org/conv#c016
|
||||
force_field_types.F: Found type force_field_type without initializer https://cp2k.org/conv#c016
|
||||
|
|
@ -199,7 +114,6 @@ hartree_local_types.F: Found type ecoul_1center_type without initializer https:/
|
|||
hartree_local_types.F: Found type hartree_local_type without initializer https://cp2k.org/conv#c016
|
||||
hfx_compression_methods.F: Found READ with unchecked STAT in "hfx_decompress_cache" https://cp2k.org/conv#c001
|
||||
hfx_energy_potential.F: Found WRITE statement with hardcoded unit in "print_integrals" https://cp2k.org/conv#c012
|
||||
hfx_types.F: Found type hfx_ri_type without initializer https://cp2k.org/conv#c016
|
||||
hirshfeld_types.F: Found type hirshfeld_type without initializer https://cp2k.org/conv#c016
|
||||
hirshfeld_types.F: Found type shape_fn without initializer https://cp2k.org/conv#c016
|
||||
input_enumeration_types.F: Found WRITE statement with hardcoded unit in "enum_i2c" https://cp2k.org/conv#c012
|
||||
|
|
@ -227,10 +141,6 @@ library_tests.F: Found CALL RANDOM_NUMBER in procedure "copy_test" https://cp2k.
|
|||
library_tests.F: Found CALL RANDOM_NUMBER in procedure "cp_fm_gemm_test" https://cp2k.org/conv#c104
|
||||
library_tests.F: Found CALL RANDOM_NUMBER in procedure "fft_test" https://cp2k.org/conv#c104
|
||||
library_tests.F: Found CALL RANDOM_NUMBER in procedure "rs_pw_transfer_test" https://cp2k.org/conv#c104
|
||||
library_tests.F: Module "mp_perf_test" USEd without ONLY clause or not PRIVATE https://cp2k.org/conv#c002
|
||||
list_routinereport.F: Found type private_item_type_routinereport without initializer https://cp2k.org/conv#c016
|
||||
list_routinestat.F: Found type private_item_type_routinestat without initializer https://cp2k.org/conv#c016
|
||||
list_timerenv.F: Found type private_item_type_timerenv without initializer https://cp2k.org/conv#c016
|
||||
lri_environment_types.F: Found type carray without initializer https://cp2k.org/conv#c016
|
||||
lri_environment_types.F: Found type int_container without initializer https://cp2k.org/conv#c016
|
||||
lri_environment_types.F: Found type lri_bas_type without initializer https://cp2k.org/conv#c016
|
||||
|
|
@ -279,7 +189,6 @@ message_passing.F: Found OPEN statement in procedure "mp_file_open" https://cp2k
|
|||
message_passing.F: Found STOP statement in procedure "mp_abort" https://cp2k.org/conv#c205
|
||||
message_passing.F: Rank mismatch between actual argument at (1) and actual argument at (2) (scalar and rank-1)
|
||||
message_passing.F: USE statement at (1) has no ONLY qualifier [-Wuse-without-only]
|
||||
message_passing.F: Module "mp_perf_env" USEd without ONLY clause or not PRIVATE https://cp2k.org/conv#c002
|
||||
message_passing.fypp: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)
|
||||
message_passing.fypp: Rank mismatch between actual argument at (1) and actual argument at (2) (scalar and rank-1)
|
||||
message_passing.fypp: Rank mismatch between actual argument at (1) and actual argument at (2) (scalar and rank-3)
|
||||
|
|
@ -305,8 +214,6 @@ mm_mapping_library.F: Found type ff_map_type without initializer https://cp2k.or
|
|||
mode_selective.F: Found READ with unchecked STAT in "bfgs_guess" https://cp2k.org/conv#c001
|
||||
mode_selective.F: Found type ms_vib_type without initializer https://cp2k.org/conv#c016
|
||||
molsym.F: Found type molsym_type without initializer https://cp2k.org/conv#c016
|
||||
mp_perf_test.F: USE statement at (1) has no ONLY qualifier [-Wuse-without-only]
|
||||
mp2_integrals.F: Found type intermediate_matrix_type without initializer https://cp2k.org/conv#c016
|
||||
mscfg_types.F: Found type molecular_scf_guess_env_type without initializer https://cp2k.org/conv#c016
|
||||
negf_atom_map.F: Found type negf_atom_map_type without initializer https://cp2k.org/conv#c016
|
||||
negf_control_types.F: Found type negf_control_contact_type without initializer https://cp2k.org/conv#c016
|
||||
|
|
@ -339,34 +246,10 @@ optimize_input.F: Found type oi_env_type without initializer https://cp2k.org/co
|
|||
optimize_input.F: Found type variable_type without initializer https://cp2k.org/conv#c016
|
||||
outer_scf_control_types.F: Found type outer_scf_control_type without initializer https://cp2k.org/conv#c016
|
||||
outer_scf_control_types.F: Found type qs_outer_scf_type without initializer https://cp2k.org/conv#c016
|
||||
pair_potential_types.F: Found type buck4ran_pot_type without initializer https://cp2k.org/conv#c016
|
||||
pair_potential_types.F: Found type buckmorse_pot_type without initializer https://cp2k.org/conv#c016
|
||||
pair_potential_types.F: Found type eam_pot_type without initializer https://cp2k.org/conv#c016
|
||||
pair_potential_types.F: Found type ftd_pot_type without initializer https://cp2k.org/conv#c016
|
||||
pair_potential_types.F: Found type ft_pot_type without initializer https://cp2k.org/conv#c016
|
||||
pair_potential_types.F: Found type gal21_pot_type without initializer https://cp2k.org/conv#c016
|
||||
pair_potential_types.F: Found type gal_pot_type without initializer https://cp2k.org/conv#c016
|
||||
pair_potential_types.F: Found type goodwin_pot_type without initializer https://cp2k.org/conv#c016
|
||||
pair_potential_types.F: Found type gp_pot_type without initializer https://cp2k.org/conv#c016
|
||||
pair_potential_types.F: Found type ipbv_pot_type without initializer https://cp2k.org/conv#c016
|
||||
pair_potential_types.F: Found type lj_pot_type without initializer https://cp2k.org/conv#c016
|
||||
pair_potential_types.F: Found type pair_potential_pp_type without initializer https://cp2k.org/conv#c016
|
||||
pair_potential_types.F: Found type pair_potential_p_type without initializer https://cp2k.org/conv#c016
|
||||
pair_potential_types.F: Found type pair_potential_single_type without initializer https://cp2k.org/conv#c016
|
||||
pair_potential_types.F: Found type pair_potential_type without initializer https://cp2k.org/conv#c016
|
||||
pair_potential_types.F: Found type pot_set_type without initializer https://cp2k.org/conv#c016
|
||||
pair_potential_types.F: Found type quip_pot_type without initializer https://cp2k.org/conv#c016
|
||||
pair_potential_types.F: Found type siepmann_pot_type without initializer https://cp2k.org/conv#c016
|
||||
pair_potential_types.F: Found type tab_pot_type without initializer https://cp2k.org/conv#c016
|
||||
pair_potential_types.F: Found type tersoff_pot_type without initializer https://cp2k.org/conv#c016
|
||||
pair_potential_types.F: Found type williams_pot_type without initializer https://cp2k.org/conv#c016
|
||||
pao_param_exp.F: Found lossy conversion real_4_r8 without KIND argument in "zheevd_wrapper" https://cp2k.org/conv#c015
|
||||
pao_types.F: Found type filename_type without initializer https://cp2k.org/conv#c016
|
||||
parallel_gemm_api.F: Found CALL cp_fm_gemm in procedure "parallel_gemm_fm" https://cp2k.org/conv#c101
|
||||
parallel_rng_types_unittest.F: Found WRITE statement with hardcoded unit in "dump_reload_check" https://cp2k.org/conv#c012
|
||||
parallel_rng_types_unittest.F: Found WRITE statement with hardcoded unit in "parallel_rng_types_test" https://cp2k.org/conv#c012
|
||||
parallel_rng_types_unittest.F: Found WRITE statement with hardcoded unit in "shuffle_check" https://cp2k.org/conv#c012
|
||||
paw_proj_set_types.F: Found type paw_proj_set_type without initializer https://cp2k.org/conv#c016
|
||||
pexsi_types.F: Found type lib_pexsi_env without initializer https://cp2k.org/conv#c016
|
||||
powell.F: Found GOTO statement in procedure "newuob" https://cp2k.org/conv#c201
|
||||
preconditioner_makes.F: Found WRITE statement with hardcoded unit in "make_full_all" https://cp2k.org/conv#c012
|
||||
|
|
@ -384,8 +267,6 @@ ps_wavelet_scaling_function.F: Found WRITE statement with hardcoded unit in "sca
|
|||
ps_wavelet_scaling_function.F: Found WRITE statement with hardcoded unit in "wavelet_function" https://cp2k.org/conv#c012
|
||||
ps_wavelet_util.F: Found WRITE statement with hardcoded unit in "p_fft_dimensions" https://cp2k.org/conv#c012
|
||||
ps_wavelet_util.F: Found WRITE statement with hardcoded unit in "s_fft_dimensions" https://cp2k.org/conv#c012
|
||||
pwdft_environment_types.F: Found type pwdft_energy_type without initializer https://cp2k.org/conv#c016
|
||||
pwdft_environment_types.F: Found type pwdft_environment_type without initializer https://cp2k.org/conv#c016
|
||||
pw_grids.F: Found WRITE statement with hardcoded unit in "pw_grid_sort" https://cp2k.org/conv#c012
|
||||
qmmm_gaussian_types.F: Found type qmmm_gaussian_p_type without initializer https://cp2k.org/conv#c016
|
||||
qmmm_gaussian_types.F: Found type qmmm_gaussian_type without initializer https://cp2k.org/conv#c016
|
||||
|
|
@ -407,9 +288,6 @@ qmmm_types_low.F: Found type qmmm_pseudo_link_p_type without initializer https:/
|
|||
qmmm_types_low.F: Found type qmmm_pseudo_link_type without initializer https://cp2k.org/conv#c016
|
||||
qs_active_space_methods.F: Found type eri_fcidump_checksum without initializer https://cp2k.org/conv#c016
|
||||
qs_active_space_methods.F: Found type eri_fcidump_print without initializer https://cp2k.org/conv#c016
|
||||
qs_active_space_types.F: Found type active_space_type without initializer https://cp2k.org/conv#c016
|
||||
qs_active_space_types.F: Found type eri_gpw_type without initializer https://cp2k.org/conv#c016
|
||||
qs_active_space_types.F: Found type eri_type without initializer https://cp2k.org/conv#c016
|
||||
qs_atomic_block.F: Found type atom_matrix_type without initializer https://cp2k.org/conv#c016
|
||||
qs_block_davidson_types.F: Found type davidson_type without initializer https://cp2k.org/conv#c016
|
||||
qs_cdft_opt_types.F: Found type cdft_opt_type without initializer https://cp2k.org/conv#c016
|
||||
|
|
@ -535,9 +413,6 @@ qs_wf_history_types.F: Found type qs_wf_snapshot_type without initializer https:
|
|||
rel_control_types.F: Found type rel_control_type without initializer https://cp2k.org/conv#c016
|
||||
replica_types.F: Found type replica_env_p_type without initializer https://cp2k.org/conv#c016
|
||||
replica_types.F: Found type replica_env_type without initializer https://cp2k.org/conv#c016
|
||||
routine_map.F: Found type private_item_type without initializer https://cp2k.org/conv#c016
|
||||
routine_map.F: Found type routine_map_item_type without initializer https://cp2k.org/conv#c016
|
||||
rpa_im_time_force_types.F: Found type im_time_force_type without initializer https://cp2k.org/conv#c016
|
||||
scf_control_types.F: Found type diagonalization_type without initializer https://cp2k.org/conv#c016
|
||||
scf_control_types.F: Found type scf_control_type without initializer https://cp2k.org/conv#c016
|
||||
scf_control_types.F: Found type smear_type without initializer https://cp2k.org/conv#c016
|
||||
|
|
@ -587,7 +462,6 @@ swarm_mpi.F: Found CLOSE statement in procedure "logger_init_master" https://cp2
|
|||
swarm_mpi.F: Found OPEN statement in procedure "logger_finalize" https://cp2k.org/conv#c203
|
||||
taper_types.F: Found type taper_type without initializer https://cp2k.org/conv#c016
|
||||
task_list_methods.F: Found WRITE statement with hardcoded unit in "generate_qs_task_list" https://cp2k.org/conv#c012
|
||||
task_list_types.F: Found type task_list_type without initializer https://cp2k.org/conv#c016
|
||||
timings.F: Found WRITE statement with hardcoded unit in "timestop_handler" https://cp2k.org/conv#c012
|
||||
tip_scan_types.F: Found type scanning_type without initializer https://cp2k.org/conv#c016
|
||||
tmc_analysis.F: Found WRITE statement with hardcoded unit in "print_average_displacement" https://cp2k.org/conv#c012
|
||||
|
|
@ -614,16 +488,6 @@ topology_types.F: Found type topology_parameters_type without initializer https:
|
|||
transport_env_types.F: Found type cp2k_csr_interop_type without initializer https://cp2k.org/conv#c016
|
||||
transport_env_types.F: Found type cp2k_transport_parameters without initializer https://cp2k.org/conv#c016
|
||||
transport_env_types.F: Found type transport_env_type without initializer https://cp2k.org/conv#c016
|
||||
xas_control.F: Found type xas_control_type without initializer https://cp2k.org/conv#c016
|
||||
xas_env_types.F: Found type xas_environment_type without initializer https://cp2k.org/conv#c016
|
||||
xas_tdp_types.F: Found type batch_info_type without initializer https://cp2k.org/conv#c016
|
||||
xas_tdp_types.F: Found type donor_state_type without initializer https://cp2k.org/conv#c016
|
||||
xas_tdp_types.F: Found type grid_atom_p_type without initializer https://cp2k.org/conv#c016
|
||||
xas_tdp_types.F: Found type harmonics_atom_p_type without initializer https://cp2k.org/conv#c016
|
||||
xas_tdp_types.F: Found type xas_atom_env_type without initializer https://cp2k.org/conv#c016
|
||||
xas_tdp_types.F: Found type xas_tdp_control_type without initializer https://cp2k.org/conv#c016
|
||||
xas_tdp_types.F: Found type xas_tdp_env_type without initializer https://cp2k.org/conv#c016
|
||||
xas_tdp_utils.F: Found type dbcsr_soc_package_type without initializer https://cp2k.org/conv#c016
|
||||
xc.F: Found CLOSE statement in procedure "xc_vxc_pw_create_debug" https://cp2k.org/conv#c204
|
||||
xc.F: Found CLOSE statement in procedure "xc_vxc_pw_create_test_lsd" https://cp2k.org/conv#c204
|
||||
xc.F: Found OPEN statement in procedure "xc_vxc_pw_create_debug" https://cp2k.org/conv#c203
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue