Conventions: Fix uninitialised variables and missing default initializers (#3480)

This PR:
- fixes uninitialised variables
- adds default initializers for most types
- adds an implicit interface to one module
- removes ~300 suppressions of the convention checker

Default initializers are still missing due if the respective type member variables of the libraries
- DBCSR
- SIRIUS
- PEXSI

For the record:
- Types derived from the abstract type eri_type_eri_element_func may be false positives as all their member variables have a default (the base type does not have any member variables)
- semi_empirical_int_debug could be reimplemented using submodules (requiring adjustments on the build system) due to dependencies between this file and semi_empirical_int_utils
This commit is contained in:
Frederick Stein 2024-06-17 10:31:33 +02:00 committed by GitHub
parent fe903831ab
commit b7b4e7f64f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
126 changed files with 2420 additions and 2634 deletions

View file

@ -80,7 +80,7 @@ MODULE cp_eri_mme_interface
TYPE(cp_logger_type), POINTER :: logger => NULL()
! There is a bug with some older compilers preventing a default initialization of derived types with allocatable components
#if __GNUC__ < 9 || (__GNUC__ == 9 && __GNUC_MINOR__ < 5)
TYPE(eri_mme_param) :: par
TYPE(eri_mme_param) :: par = eri_mme_param(minimax_grid=NULL())
#else
TYPE(eri_mme_param) :: par = eri_mme_param()
#endif

View file

@ -54,24 +54,24 @@ MODULE ewald_environment_types
! **************************************************************************************************
TYPE ewald_environment_type
PRIVATE
LOGICAL :: do_multipoles ! Flag for using the multipole code
INTEGER :: do_ipol ! Solver for induced dipoles
INTEGER :: max_multipole ! max expansion in the multipoles
INTEGER :: max_ipol_iter ! max number of interaction for induced dipoles
INTEGER :: ewald_type ! type of ewald
INTEGER :: gmax(3) ! max Miller index
INTEGER :: ns_max ! # grid points for small grid (PME)
INTEGER :: o_spline ! order of spline (SPME)
REAL(KIND=dp) :: precs ! precision achieved when evaluating the real-space part
REAL(KIND=dp) :: alpha, rcut ! ewald alpha and real-space cutoff
REAL(KIND=dp) :: epsilon ! tolerance for small grid (PME)
REAL(KIND=dp) :: eps_pol ! tolerance for convergence of induced dipoles
TYPE(mp_para_env_type), POINTER :: para_env
TYPE(section_vals_type), POINTER :: poisson_section
LOGICAL :: do_multipoles = .FALSE. ! Flag for using the multipole code
INTEGER :: do_ipol = -1 ! Solver for induced dipoles
INTEGER :: max_multipole = -1 ! max expansion in the multipoles
INTEGER :: max_ipol_iter = -1 ! max number of interaction for induced dipoles
INTEGER :: ewald_type = -1 ! type of ewald
INTEGER :: gmax(3) = -1 ! max Miller index
INTEGER :: ns_max = -1 ! # grid points for small grid (PME)
INTEGER :: o_spline = -1 ! order of spline (SPME)
REAL(KIND=dp) :: precs = 0.0_dp ! precision achieved when evaluating the real-space part
REAL(KIND=dp) :: alpha = 0.0_dp, rcut = 0.0_dp ! ewald alpha and real-space cutoff
REAL(KIND=dp) :: epsilon = 0.0_dp ! tolerance for small grid (PME)
REAL(KIND=dp) :: eps_pol = 0.0_dp ! tolerance for convergence of induced dipoles
TYPE(mp_para_env_type), POINTER :: para_env => NULL()
TYPE(section_vals_type), POINTER :: poisson_section => NULL()
! interaction cutoff is required to make the electrostatic interaction
! continuous at a pair distance equal to rcut. this is ignored by the
! multipole code and is otherwise only active when SHIFT_CUTOFF is used.
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: interaction_cutoffs
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: interaction_cutoffs => NULL()
! store current cell, used to rebuild lazily.
REAL(KIND=dp), DIMENSION(3, 3) :: cell_hmat = -1.0_dp
END TYPE ewald_environment_type

View file

@ -8,15 +8,13 @@
#:def ewalds_multipole_sr_macro(mode, damping=False, store_energy=False, store_forces=False)
! Compute the Short Range constribution according the task
IF (debug_this_module) THEN
f = HUGE(0.0_dp)
tij = HUGE(0.0_dp)
tij_a = HUGE(0.0_dp)
tij_ab = HUGE(0.0_dp)
tij_abc = HUGE(0.0_dp)
tij_abcd = HUGE(0.0_dp)
tij_abcde = HUGE(0.0_dp)
END IF
f = HUGE(0.0_dp)
tij = HUGE(0.0_dp)
tij_a = HUGE(0.0_dp)
tij_ab = HUGE(0.0_dp)
tij_abc = HUGE(0.0_dp)
tij_abcd = HUGE(0.0_dp)
tij_abcde = HUGE(0.0_dp)
r = SQRT(rab2)
irab2 = 1.0_dp/rab2
ir = 1.0_dp/r

View file

@ -19,9 +19,9 @@ MODULE exclusion_types
!> 12.2010 created [Joost VandeVondele]
! **************************************************************************************************
TYPE exclusion_type
INTEGER, POINTER, DIMENSION(:) :: list_exclude_vdw
INTEGER, POINTER, DIMENSION(:) :: list_exclude_ei
INTEGER, POINTER, DIMENSION(:) :: list_onfo
INTEGER, POINTER, DIMENSION(:) :: list_exclude_vdw => NULL()
INTEGER, POINTER, DIMENSION(:) :: list_exclude_ei => NULL()
INTEGER, POINTER, DIMENSION(:) :: list_onfo => NULL()
END TYPE
PUBLIC :: exclusion_type, &

View file

@ -38,11 +38,11 @@ MODULE exstates_types
! *****************************************************************************
TYPE wfn_history_type
INTEGER :: state
REAL(KIND=dp) :: evalue
INTEGER :: state = -1
REAL(KIND=dp) :: evalue = 0.0_dp
TYPE(cp_fm_type), POINTER, DIMENSION(:) :: evect => NULL()
TYPE(cp_fm_type), POINTER, DIMENSION(:) :: cpmos => NULL()
REAL(KIND=dp) :: xsval, gsval, gsmin
REAL(KIND=dp) :: xsval = 0.0_dp, gsval = 0.0_dp, gsmin = 0.0_dp
END TYPE wfn_history_type
! *****************************************************************************
@ -52,11 +52,11 @@ MODULE exstates_types
!> \author JGH
! *****************************************************************************
TYPE excited_energy_type
INTEGER :: state
REAL(KIND=dp) :: evalue
INTEGER :: xc_kernel_method
INTEGER :: state = -1
REAL(KIND=dp) :: evalue = 0.0_dp
INTEGER :: xc_kernel_method = -1
REAL(KIND=dp) :: eps_delta_rho = 1.E-02_dp
INTEGER :: diff_order
INTEGER :: diff_order = -1
LOGICAL :: debug_forces = .FALSE.
TYPE(cp_fm_type), POINTER, DIMENSION(:) :: evect => NULL()
TYPE(cp_fm_type), POINTER, DIMENSION(:) :: cpmos => NULL()
@ -68,13 +68,13 @@ MODULE exstates_types
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: matrix_px1_asymm => NULL()
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: matrix_px1_admm_asymm => NULL()
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: matrix_wx1 => NULL()
TYPE(pw_r3d_rs_type) :: vh_rspace
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: vxc_rspace => NULL()
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: vtau_rspace => NULL()
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: vadmm_rspace => NULL()
TYPE(pw_r3d_rs_type) :: vh_rspace = pw_r3d_rs_type()
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: vxc_rspace => NULL()
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: vtau_rspace => NULL()
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: vadmm_rspace => NULL()
TYPE(local_rho_type), POINTER :: local_rho_set => NULL()
TYPE(local_rho_type), POINTER :: local_rho_set_admm => NULL()
TYPE(wfn_history_type) :: wfn_history
TYPE(wfn_history_type) :: wfn_history = wfn_history_type()
END TYPE excited_energy_type
CONTAINS

View file

@ -21,33 +21,33 @@ MODULE farming_types
! **************************************************************************************************
TYPE job_type
CHARACTER(LEN=default_path_length) :: cwd ! the directory to go to
CHARACTER(LEN=default_path_length) :: input ! the input file to use
CHARACTER(LEN=default_path_length) :: output ! the output file to use
INTEGER :: ID ! the ID of this job
INTEGER, POINTER, DIMENSION(:) :: dependencies ! the dependencies of this job
INTEGER :: status ! pending,running,finished
CHARACTER(LEN=default_path_length) :: cwd = "" ! the directory to go to
CHARACTER(LEN=default_path_length) :: input = "" ! the input file to use
CHARACTER(LEN=default_path_length) :: output = "" ! the output file to use
INTEGER :: ID = -1 ! the ID of this job
INTEGER, POINTER, DIMENSION(:) :: dependencies => NULL() ! the dependencies of this job
INTEGER :: status = -1 ! pending,running,finished
END TYPE job_type
! **************************************************************************************************
TYPE farming_env_type
INTEGER :: group_size_wish
LOGICAL :: group_size_wish_set
INTEGER :: ngroup_wish
LOGICAL :: ngroup_wish_set
LOGICAL :: restart
LOGICAL :: CYCLE
LOGICAL :: captain_minion
INTEGER, DIMENSION(:), POINTER :: group_partition ! user preference for partitioning the cpus
CHARACTER(LEN=default_path_length) :: restart_file_name ! restart file for farming
CHARACTER(LEN=default_path_length) :: cwd ! directory we started from
INTEGER :: Njobs ! how many jobs to run
INTEGER :: restart_n ! where to start
INTEGER :: max_steps ! max number of steps,
INTEGER :: group_size_wish = -1
LOGICAL :: group_size_wish_set = .FALSE.
INTEGER :: ngroup_wish = -1
LOGICAL :: ngroup_wish_set = .FALSE.
LOGICAL :: restart = .FALSE.
LOGICAL :: CYCLE = .FALSE.
LOGICAL :: captain_minion = .FALSE.
INTEGER, DIMENSION(:), POINTER :: group_partition => NULL() ! user preference for partitioning the cpus
CHARACTER(LEN=default_path_length) :: restart_file_name = "" ! restart file for farming
CHARACTER(LEN=default_path_length) :: cwd = "" ! directory we started from
INTEGER :: Njobs = -1 ! how many jobs to run
INTEGER :: restart_n = -1 ! where to start
INTEGER :: max_steps = -1 ! max number of steps,
! results in max_steps*Ngroup jobs being run
INTEGER :: stride ! for creating minion groups.
TYPE(job_type), DIMENSION(:), POINTER :: job ! a list of jobs
REAL(KIND=dp) :: wait_time
INTEGER :: stride = -1 ! for creating minion groups.
TYPE(job_type), DIMENSION(:), POINTER :: job => NULL() ! a list of jobs
REAL(KIND=dp) :: wait_time = 0.0_dp
END TYPE farming_env_type
CONTAINS

View file

@ -25,9 +25,9 @@ MODULE fist_efield_types
TYPE fist_efield_type
LOGICAL :: apply_field = .FALSE.
LOGICAL :: displacement = .FALSE.
REAL(KIND=dp) :: strength
REAL(KIND=dp), DIMENSION(3) :: polarisation
REAL(KIND=dp), DIMENSION(3) :: dfilter
REAL(KIND=dp) :: strength = 0.0_dp
REAL(KIND=dp), DIMENSION(3) :: polarisation = 0.0_dp
REAL(KIND=dp), DIMENSION(3) :: dfilter = 0.0_dp
END TYPE fist_efield_type
! **************************************************************************************************

View file

@ -22,8 +22,9 @@ MODULE fist_energy_types
! **************************************************************************************************
TYPE fist_energy_type
REAL(kind=dp) :: kin, pot, e_gspace, e_self, e_neut, e_bonded, e_induction
REAL(kind=dp) :: kin_shell, harm_shell
REAL(kind=dp) :: kin = 0.0_dp, pot = 0.0_dp, e_gspace = 0.0_dp, e_self = 0.0_dp, &
e_neut = 0.0_dp, e_bonded = 0.0_dp, e_induction = 0.0_dp
REAL(kind=dp) :: kin_shell = 0.0_dp, harm_shell = 0.0_dp
END TYPE fist_energy_type
! *** Public data types ***

View file

@ -70,19 +70,19 @@ MODULE fist_environment_types
! **************************************************************************************************
TYPE fist_environment_type
PRIVATE
LOGICAL :: qmmm
LOGICAL :: shell_model, shell_model_ad
TYPE(qmmm_env_mm_type), POINTER :: qmmm_env
TYPE(cell_type), POINTER :: cell_ref
TYPE(ewald_environment_type), POINTER :: ewald_env
TYPE(ewald_pw_type), POINTER :: ewald_pw
TYPE(fist_energy_type), POINTER :: thermo
TYPE(mp_para_env_type), POINTER :: para_env
TYPE(cp_subsys_type), POINTER :: subsys
TYPE(fist_nonbond_env_type), POINTER :: fist_nonbond_env
TYPE(section_vals_type), POINTER :: input
TYPE(exclusion_type), DIMENSION(:), POINTER :: exclusions
TYPE(fist_efield_type), POINTER :: efield
LOGICAL :: qmmm = .FALSE.
LOGICAL :: shell_model = .FALSE., shell_model_ad = .FALSE.
TYPE(qmmm_env_mm_type), POINTER :: qmmm_env => NULL()
TYPE(cell_type), POINTER :: cell_ref => NULL()
TYPE(ewald_environment_type), POINTER :: ewald_env => NULL()
TYPE(ewald_pw_type), POINTER :: ewald_pw => NULL()
TYPE(fist_energy_type), POINTER :: thermo => NULL()
TYPE(mp_para_env_type), POINTER :: para_env => NULL()
TYPE(cp_subsys_type), POINTER :: subsys => NULL()
TYPE(fist_nonbond_env_type), POINTER :: fist_nonbond_env => NULL()
TYPE(section_vals_type), POINTER :: input => NULL()
TYPE(exclusion_type), DIMENSION(:), POINTER :: exclusions => NULL()
TYPE(fist_efield_type), POINTER :: efield => NULL()
END TYPE fist_environment_type
! *** Public data types ***

View file

@ -79,16 +79,16 @@ MODULE fist_force
CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'fist_force'
TYPE debug_variables_type
REAL(KIND=dp) :: pot_manybody, pot_bend, pot_torsion
REAL(KIND=dp) :: pot_nonbond, pot_g, pot_bond
REAL(KIND=dp) :: pot_imptors, pot_urey_bradley
REAL(KIND=dp) :: pot_opbend
REAL(KIND=dp), DIMENSION(:, :), POINTER :: f_nonbond, f_g, f_bond, f_bend, &
f_torsion, f_imptors, f_ub, &
f_opbend
REAL(KIND=dp), DIMENSION(3, 3) :: pv_nonbond, pv_g, pv_bond, pv_ub, &
pv_bend, pv_torsion, pv_imptors, &
pv_opbend
REAL(KIND=dp) :: pot_manybody = 0.0_dp, pot_bend = 0.0_dp, pot_torsion = 0.0_dp
REAL(KIND=dp) :: pot_nonbond = 0.0_dp, pot_g = 0.0_dp, pot_bond = 0.0_dp
REAL(KIND=dp) :: pot_imptors = 0.0_dp, pot_urey_bradley = 0.0_dp
REAL(KIND=dp) :: pot_opbend = 0.0_dp
REAL(KIND=dp), DIMENSION(:, :), POINTER :: f_nonbond => NULL(), f_g => NULL(), f_bond => NULL(), f_bend => NULL(), &
f_torsion => NULL(), f_imptors => NULL(), f_ub => NULL(), &
f_opbend => NULL()
REAL(KIND=dp), DIMENSION(3, 3) :: pv_nonbond = 0.0_dp, pv_g = 0.0_dp, pv_bond = 0.0_dp, pv_ub = 0.0_dp, &
pv_bend = 0.0_dp, pv_torsion = 0.0_dp, pv_imptors = 0.0_dp, &
pv_opbend = 0.0_dp
END TYPE debug_variables_type
CONTAINS

View file

@ -24,12 +24,12 @@ MODULE fist_neighbor_list_types
! **************************************************************************************************
TYPE neighbor_kind_pairs_type
INTEGER, POINTER, DIMENSION(:, :) :: list, ij_kind
INTEGER, POINTER, DIMENSION(:) :: id_kind
INTEGER, POINTER, DIMENSION(:) :: grp_kind_start, grp_kind_end
INTEGER :: cell_vector(3), npairs
INTEGER :: ngrp_kind
REAL(KIND=dp) :: rmax
INTEGER, POINTER, DIMENSION(:, :) :: list => NULL(), ij_kind => NULL()
INTEGER, POINTER, DIMENSION(:) :: id_kind => NULL()
INTEGER, POINTER, DIMENSION(:) :: grp_kind_start => NULL(), grp_kind_end => NULL()
INTEGER :: cell_vector(3) = -1, npairs = -1
INTEGER :: ngrp_kind = -1
REAL(KIND=dp) :: rmax = 0.0_dp
! The *_scale arrays are scaling factors for the corresponding nonbonding
! interaction energies and forces for the pairs in 'list'. To keep the size
! of these arrays small, pairs whose interaction must be scaled are moved
@ -38,16 +38,16 @@ MODULE fist_neighbor_list_types
! reallocate the *_scale arrays for every new scaled pair interaction.
! The field is_info is only used to switch between the regular nonbonded
! and the nonbonded14 splines for the van der waals interactions.
REAL(KIND=dp), POINTER, DIMENSION(:) :: ei_scale
REAL(KIND=dp), POINTER, DIMENSION(:) :: vdw_scale
LOGICAL, POINTER, DIMENSION(:) :: is_onfo
INTEGER :: nscale
REAL(KIND=dp), POINTER, DIMENSION(:) :: ei_scale => NULL()
REAL(KIND=dp), POINTER, DIMENSION(:) :: vdw_scale => NULL()
LOGICAL, POINTER, DIMENSION(:) :: is_onfo => NULL()
INTEGER :: nscale = -1
END TYPE neighbor_kind_pairs_type
! **************************************************************************************************
TYPE fist_neighbor_type
TYPE(neighbor_kind_pairs_type), DIMENSION(:), POINTER :: neighbor_kind_pairs
INTEGER :: nlists
TYPE(neighbor_kind_pairs_type), DIMENSION(:), POINTER :: neighbor_kind_pairs => NULL()
INTEGER :: nlists = -1
END TYPE fist_neighbor_type
PUBLIC :: neighbor_kind_pairs_type, &

View file

@ -66,8 +66,8 @@ MODULE fist_neighbor_lists
CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'fist_neighbor_lists'
TYPE local_atoms_type
INTEGER, DIMENSION(:), POINTER :: list, &
list_local_a_index
INTEGER, DIMENSION(:), POINTER :: list => NULL(), &
list_local_a_index => NULL()
END TYPE local_atoms_type
! Public subroutines

View file

@ -36,173 +36,173 @@ MODULE force_field_types
! **************************************************************************************************
TYPE input_info_type
CHARACTER(LEN=default_string_length), POINTER :: charge_atm(:)
REAL(KIND=dp), POINTER :: charge(:)
CHARACTER(LEN=default_string_length), POINTER :: apol_atm(:)
REAL(KIND=dp), POINTER :: apol(:)
CHARACTER(LEN=default_string_length), POINTER :: cpol_atm(:)
REAL(KIND=dp), POINTER :: cpol(:)
INTEGER, POINTER :: bond_kind(:)
CHARACTER(LEN=default_string_length), POINTER :: bond_a(:)
CHARACTER(LEN=default_string_length), POINTER :: bond_b(:)
REAL(KIND=dp), POINTER :: bond_k(:, :)
REAL(KIND=dp), POINTER :: bond_r0(:)
REAL(KIND=dp), POINTER :: bond_cs(:)
INTEGER, POINTER :: bend_kind(:)
CHARACTER(LEN=default_string_length), POINTER :: bend_a(:)
CHARACTER(LEN=default_string_length), POINTER :: bend_b(:)
CHARACTER(LEN=default_string_length), POINTER :: bend_c(:)
REAL(KIND=dp), POINTER :: bend_k(:)
REAL(KIND=dp), POINTER :: bend_theta0(:)
REAL(KIND=dp), POINTER :: bend_cb(:)
REAL(KIND=dp), POINTER, DIMENSION(:) :: bend_r012, &
bend_r032, &
bend_kbs12, &
bend_kbs32, &
bend_kss
TYPE(legendre_data_type), POINTER, DIMENSION(:):: bend_legendre
INTEGER, POINTER :: ub_kind(:)
CHARACTER(LEN=default_string_length), POINTER :: ub_a(:)
CHARACTER(LEN=default_string_length), POINTER :: ub_b(:)
CHARACTER(LEN=default_string_length), POINTER :: ub_c(:)
REAL(KIND=dp), POINTER :: ub_k(:, :)
REAL(KIND=dp), POINTER :: ub_r0(:)
INTEGER, POINTER :: torsion_kind(:)
CHARACTER(LEN=default_string_length), POINTER :: torsion_a(:)
CHARACTER(LEN=default_string_length), POINTER :: torsion_b(:)
CHARACTER(LEN=default_string_length), POINTER :: torsion_c(:)
CHARACTER(LEN=default_string_length), POINTER :: torsion_d(:)
REAL(KIND=dp), POINTER :: torsion_k(:)
INTEGER, POINTER :: torsion_m(:)
REAL(KIND=dp), POINTER :: torsion_phi0(:)
INTEGER, POINTER :: impr_kind(:)
CHARACTER(LEN=default_string_length), POINTER :: impr_a(:)
CHARACTER(LEN=default_string_length), POINTER :: impr_b(:)
CHARACTER(LEN=default_string_length), POINTER :: impr_c(:)
CHARACTER(LEN=default_string_length), POINTER :: impr_d(:)
REAL(KIND=dp), POINTER :: impr_k(:)
REAL(KIND=dp), POINTER :: impr_phi0(:)
INTEGER, POINTER :: opbend_kind(:)
CHARACTER(LEN=default_string_length), POINTER :: opbend_a(:)
CHARACTER(LEN=default_string_length), POINTER :: opbend_b(:)
CHARACTER(LEN=default_string_length), POINTER :: opbend_c(:)
CHARACTER(LEN=default_string_length), POINTER :: opbend_d(:)
REAL(KIND=dp), POINTER :: opbend_k(:)
REAL(KIND=dp), POINTER :: opbend_phi0(:)
TYPE(pair_potential_p_type), POINTER :: nonbonded
TYPE(pair_potential_p_type), POINTER :: nonbonded14
TYPE(shell_p_type), DIMENSION(:), POINTER :: shell_list
TYPE(damping_info_type), DIMENSION(:), POINTER :: damping_list
CHARACTER(LEN=default_string_length), POINTER :: charge_atm(:) => NULL()
REAL(KIND=dp), POINTER :: charge(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: apol_atm(:) => NULL()
REAL(KIND=dp), POINTER :: apol(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: cpol_atm(:) => NULL()
REAL(KIND=dp), POINTER :: cpol(:) => NULL()
INTEGER, POINTER :: bond_kind(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: bond_a(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: bond_b(:) => NULL()
REAL(KIND=dp), POINTER :: bond_k(:, :) => NULL()
REAL(KIND=dp), POINTER :: bond_r0(:) => NULL()
REAL(KIND=dp), POINTER :: bond_cs(:) => NULL()
INTEGER, POINTER :: bend_kind(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: bend_a(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: bend_b(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: bend_c(:) => NULL()
REAL(KIND=dp), POINTER :: bend_k(:) => NULL()
REAL(KIND=dp), POINTER :: bend_theta0(:) => NULL()
REAL(KIND=dp), POINTER :: bend_cb(:) => NULL()
REAL(KIND=dp), POINTER, DIMENSION(:) :: bend_r012 => NULL(), &
bend_r032 => NULL(), &
bend_kbs12 => NULL(), &
bend_kbs32 => NULL(), &
bend_kss => NULL()
TYPE(legendre_data_type), POINTER, DIMENSION(:):: bend_legendre => NULL()
INTEGER, POINTER :: ub_kind(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: ub_a(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: ub_b(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: ub_c(:) => NULL()
REAL(KIND=dp), POINTER :: ub_k(:, :) => NULL()
REAL(KIND=dp), POINTER :: ub_r0(:) => NULL()
INTEGER, POINTER :: torsion_kind(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: torsion_a(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: torsion_b(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: torsion_c(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: torsion_d(:) => NULL()
REAL(KIND=dp), POINTER :: torsion_k(:) => NULL()
INTEGER, POINTER :: torsion_m(:) => NULL()
REAL(KIND=dp), POINTER :: torsion_phi0(:) => NULL()
INTEGER, POINTER :: impr_kind(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: impr_a(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: impr_b(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: impr_c(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: impr_d(:) => NULL()
REAL(KIND=dp), POINTER :: impr_k(:) => NULL()
REAL(KIND=dp), POINTER :: impr_phi0(:) => NULL()
INTEGER, POINTER :: opbend_kind(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: opbend_a(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: opbend_b(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: opbend_c(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: opbend_d(:) => NULL()
REAL(KIND=dp), POINTER :: opbend_k(:) => NULL()
REAL(KIND=dp), POINTER :: opbend_phi0(:) => NULL()
TYPE(pair_potential_p_type), POINTER :: nonbonded => NULL()
TYPE(pair_potential_p_type), POINTER :: nonbonded14 => NULL()
TYPE(shell_p_type), DIMENSION(:), POINTER :: shell_list => NULL()
TYPE(damping_info_type), DIMENSION(:), POINTER :: damping_list => NULL()
END TYPE input_info_type
! **************************************************************************************************
TYPE charmm_info_type
CHARACTER(LEN=default_string_length), POINTER :: bond_a(:)
CHARACTER(LEN=default_string_length), POINTER :: bond_b(:)
REAL(KIND=dp), POINTER :: bond_k(:)
REAL(KIND=dp), POINTER :: bond_r0(:)
CHARACTER(LEN=default_string_length), POINTER :: bend_a(:)
CHARACTER(LEN=default_string_length), POINTER :: bend_b(:)
CHARACTER(LEN=default_string_length), POINTER :: bend_c(:)
REAL(KIND=dp), POINTER :: bend_k(:)
REAL(KIND=dp), POINTER :: bend_theta0(:)
CHARACTER(LEN=default_string_length), POINTER :: ub_a(:)
CHARACTER(LEN=default_string_length), POINTER :: ub_b(:)
CHARACTER(LEN=default_string_length), POINTER :: ub_c(:)
REAL(KIND=dp), POINTER :: ub_k(:)
REAL(KIND=dp), POINTER :: ub_r0(:)
CHARACTER(LEN=default_string_length), POINTER :: torsion_a(:)
CHARACTER(LEN=default_string_length), POINTER :: torsion_b(:)
CHARACTER(LEN=default_string_length), POINTER :: torsion_c(:)
CHARACTER(LEN=default_string_length), POINTER :: torsion_d(:)
REAL(KIND=dp), POINTER :: torsion_k(:)
INTEGER, POINTER :: torsion_m(:)
REAL(KIND=dp), POINTER :: torsion_phi0(:)
CHARACTER(LEN=default_string_length), POINTER :: impr_a(:)
CHARACTER(LEN=default_string_length), POINTER :: impr_b(:)
CHARACTER(LEN=default_string_length), POINTER :: impr_c(:)
CHARACTER(LEN=default_string_length), POINTER :: impr_d(:)
REAL(KIND=dp), POINTER :: impr_k(:)
REAL(KIND=dp), POINTER :: impr_phi0(:)
CHARACTER(LEN=default_string_length), POINTER :: nonbond_a(:)
REAL(KIND=dp), POINTER :: nonbond_eps(:)
REAL(KIND=dp), POINTER :: nonbond_rmin2(:)
CHARACTER(LEN=default_string_length), POINTER :: nonbond_a_14(:)
REAL(KIND=dp), POINTER :: nonbond_eps_14(:)
REAL(KIND=dp), POINTER :: nonbond_rmin2_14(:)
CHARACTER(LEN=default_string_length), POINTER :: bond_a(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: bond_b(:) => NULL()
REAL(KIND=dp), POINTER :: bond_k(:) => NULL()
REAL(KIND=dp), POINTER :: bond_r0(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: bend_a(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: bend_b(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: bend_c(:) => NULL()
REAL(KIND=dp), POINTER :: bend_k(:) => NULL()
REAL(KIND=dp), POINTER :: bend_theta0(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: ub_a(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: ub_b(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: ub_c(:) => NULL()
REAL(KIND=dp), POINTER :: ub_k(:) => NULL()
REAL(KIND=dp), POINTER :: ub_r0(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: torsion_a(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: torsion_b(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: torsion_c(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: torsion_d(:) => NULL()
REAL(KIND=dp), POINTER :: torsion_k(:) => NULL()
INTEGER, POINTER :: torsion_m(:) => NULL()
REAL(KIND=dp), POINTER :: torsion_phi0(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: impr_a(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: impr_b(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: impr_c(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: impr_d(:) => NULL()
REAL(KIND=dp), POINTER :: impr_k(:) => NULL()
REAL(KIND=dp), POINTER :: impr_phi0(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: nonbond_a(:) => NULL()
REAL(KIND=dp), POINTER :: nonbond_eps(:) => NULL()
REAL(KIND=dp), POINTER :: nonbond_rmin2(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: nonbond_a_14(:) => NULL()
REAL(KIND=dp), POINTER :: nonbond_eps_14(:) => NULL()
REAL(KIND=dp), POINTER :: nonbond_rmin2_14(:) => NULL()
END TYPE charmm_info_type
! **************************************************************************************************
TYPE amber_info_type
CHARACTER(LEN=default_string_length), POINTER :: bond_a(:)
CHARACTER(LEN=default_string_length), POINTER :: bond_b(:)
REAL(KIND=dp), POINTER :: bond_k(:)
REAL(KIND=dp), POINTER :: bond_r0(:)
CHARACTER(LEN=default_string_length), POINTER :: bend_a(:)
CHARACTER(LEN=default_string_length), POINTER :: bend_b(:)
CHARACTER(LEN=default_string_length), POINTER :: bend_c(:)
REAL(KIND=dp), POINTER :: bend_k(:)
REAL(KIND=dp), POINTER :: bend_theta0(:)
CHARACTER(LEN=default_string_length), POINTER :: torsion_a(:)
CHARACTER(LEN=default_string_length), POINTER :: torsion_b(:)
CHARACTER(LEN=default_string_length), POINTER :: torsion_c(:)
CHARACTER(LEN=default_string_length), POINTER :: torsion_d(:)
REAL(KIND=dp), POINTER :: torsion_k(:)
INTEGER, POINTER :: torsion_m(:)
REAL(KIND=dp), POINTER :: torsion_phi0(:)
CHARACTER(LEN=default_string_length), POINTER :: nonbond_a(:)
REAL(KIND=dp), POINTER :: nonbond_eps(:)
REAL(KIND=dp), POINTER :: nonbond_rmin2(:)
INTEGER, POINTER :: raw_torsion_id(:, :)
REAL(KIND=dp), POINTER :: raw_torsion_k(:)
REAL(KIND=dp), POINTER :: raw_torsion_m(:)
REAL(KIND=dp), POINTER :: raw_torsion_phi0(:)
CHARACTER(LEN=default_string_length), POINTER :: bond_a(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: bond_b(:) => NULL()
REAL(KIND=dp), POINTER :: bond_k(:) => NULL()
REAL(KIND=dp), POINTER :: bond_r0(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: bend_a(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: bend_b(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: bend_c(:) => NULL()
REAL(KIND=dp), POINTER :: bend_k(:) => NULL()
REAL(KIND=dp), POINTER :: bend_theta0(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: torsion_a(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: torsion_b(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: torsion_c(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: torsion_d(:) => NULL()
REAL(KIND=dp), POINTER :: torsion_k(:) => NULL()
INTEGER, POINTER :: torsion_m(:) => NULL()
REAL(KIND=dp), POINTER :: torsion_phi0(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: nonbond_a(:) => NULL()
REAL(KIND=dp), POINTER :: nonbond_eps(:) => NULL()
REAL(KIND=dp), POINTER :: nonbond_rmin2(:) => NULL()
INTEGER, POINTER :: raw_torsion_id(:, :) => NULL()
REAL(KIND=dp), POINTER :: raw_torsion_k(:) => NULL()
REAL(KIND=dp), POINTER :: raw_torsion_m(:) => NULL()
REAL(KIND=dp), POINTER :: raw_torsion_phi0(:) => NULL()
END TYPE amber_info_type
! **************************************************************************************************
TYPE gromos_info_type
INTEGER :: ff_gromos_type
REAL(KIND=dp), POINTER :: solvent_k(:)
REAL(KIND=dp), POINTER :: solvent_r0(:)
REAL(KIND=dp), POINTER :: bond_k(:)
REAL(KIND=dp), POINTER :: bond_r0(:)
REAL(KIND=dp), POINTER :: bend_k(:)
REAL(KIND=dp), POINTER :: bend_theta0(:)
REAL(KIND=dp), POINTER :: torsion_k(:)
INTEGER, POINTER :: torsion_m(:)
REAL(KIND=dp), POINTER :: torsion_phi0(:)
REAL(KIND=dp), POINTER :: impr_k(:)
REAL(KIND=dp), POINTER :: impr_phi0(:)
CHARACTER(LEN=default_string_length), POINTER :: nonbond_a(:)
REAL(KIND=dp), POINTER :: nonbond_c6(:, :)
REAL(KIND=dp), POINTER :: nonbond_c12(:, :)
CHARACTER(LEN=default_string_length), POINTER :: nonbond_a_14(:)
REAL(KIND=dp), POINTER :: nonbond_c6_14(:, :)
REAL(KIND=dp), POINTER :: nonbond_c12_14(:, :)
INTEGER :: ff_gromos_type = -1
REAL(KIND=dp), POINTER :: solvent_k(:) => NULL()
REAL(KIND=dp), POINTER :: solvent_r0(:) => NULL()
REAL(KIND=dp), POINTER :: bond_k(:) => NULL()
REAL(KIND=dp), POINTER :: bond_r0(:) => NULL()
REAL(KIND=dp), POINTER :: bend_k(:) => NULL()
REAL(KIND=dp), POINTER :: bend_theta0(:) => NULL()
REAL(KIND=dp), POINTER :: torsion_k(:) => NULL()
INTEGER, POINTER :: torsion_m(:) => NULL()
REAL(KIND=dp), POINTER :: torsion_phi0(:) => NULL()
REAL(KIND=dp), POINTER :: impr_k(:) => NULL()
REAL(KIND=dp), POINTER :: impr_phi0(:) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: nonbond_a(:) => NULL()
REAL(KIND=dp), POINTER :: nonbond_c6(:, :) => NULL()
REAL(KIND=dp), POINTER :: nonbond_c12(:, :) => NULL()
CHARACTER(LEN=default_string_length), POINTER :: nonbond_a_14(:) => NULL()
REAL(KIND=dp), POINTER :: nonbond_c6_14(:, :) => NULL()
REAL(KIND=dp), POINTER :: nonbond_c12_14(:, :) => NULL()
END TYPE gromos_info_type
! **************************************************************************************************
TYPE force_field_type
LOGICAL :: shift_cutoff, &
do_nonbonded, &
do_electrostatics, &
electrostatics, &
multiple_potential, &
ignore_missing_critical
INTEGER :: ff_type
REAL(KIND=dp) :: rcut_nb
REAL(KIND=dp) :: ei_scale14
REAL(KIND=dp) :: vdw_scale14
REAL(KIND=dp) :: eps_spline, &
max_energy, &
emax_spline, &
rlow_nb
INTEGER :: npoints
CHARACTER(LEN=default_path_length) :: ff_file_name
TYPE(input_info_type), POINTER :: inp_info
TYPE(charmm_info_type), POINTER :: chm_info
TYPE(gromos_info_type), POINTER :: gro_info
TYPE(amber_info_type), POINTER :: amb_info
LOGICAL :: shift_cutoff = .FALSE., &
do_nonbonded = .FALSE., &
do_electrostatics = .FALSE., &
electrostatics = .FALSE., &
multiple_potential = .FALSE., &
ignore_missing_critical = .FALSE.
INTEGER :: ff_type = -1
REAL(KIND=dp) :: rcut_nb = 0.0_dp
REAL(KIND=dp) :: ei_scale14 = 0.0_dp
REAL(KIND=dp) :: vdw_scale14 = 0.0_dp
REAL(KIND=dp) :: eps_spline = 0.0_dp, &
max_energy = 0.0_dp, &
emax_spline = 0.0_dp, &
rlow_nb = 0.0_dp
INTEGER :: npoints = -1
CHARACTER(LEN=default_path_length) :: ff_file_name = ""
TYPE(input_info_type), POINTER :: inp_info => NULL()
TYPE(charmm_info_type), POINTER :: chm_info => NULL()
TYPE(gromos_info_type), POINTER :: gro_info => NULL()
TYPE(amber_info_type), POINTER :: amb_info => NULL()
END TYPE force_field_type
! *** Public subroutines ***

View file

@ -37,21 +37,21 @@ MODULE fp_types
TYPE fp_type
! input related objects
LOGICAL :: use_fp
LOGICAL :: use_fp = .FALSE.
INTEGER :: central_atom
INTEGER, DIMENSION(:), POINTER :: inner_atoms, outer_atoms
REAL(KIND=dp) :: inner_radius, outer_radius
REAL(KIND=dp) :: strength, smooth_width
LOGICAL :: bias
REAL(KIND=dp) :: temperature
TYPE(section_vals_type), POINTER :: print_section
INTEGER :: central_atom = -1
INTEGER, DIMENSION(:), POINTER :: inner_atoms => NULL(), outer_atoms => NULL()
REAL(KIND=dp) :: inner_radius = 0.0_dp, outer_radius = 0.0_dp
REAL(KIND=dp) :: strength = 0.0_dp, smooth_width = 0.0_dp
LOGICAL :: bias = .FALSE.
REAL(KIND=dp) :: temperature = 0.0_dp
TYPE(section_vals_type), POINTER :: print_section => NULL()
! computed during runs
INTEGER :: i1, i2, o1, o2
REAL(KIND=dp) :: ri1, ri2, ro1, ro2
REAL(KIND=dp) :: weight, comb_weight, bias_weight
REAL(KIND=dp) :: energy, bias_energy, restraint_energy
INTEGER :: i1 = -1, i2 = -1, o1 = -1, o2 = -1
REAL(KIND=dp) :: ri1 = 0.0_dp, ri2 = 0.0_dp, ro1 = 0.0_dp, ro2 = 0.0_dp
REAL(KIND=dp) :: weight = 0.0_dp, comb_weight = 0.0_dp, bias_weight = 0.0_dp
REAL(KIND=dp) :: energy = 0.0_dp, bias_energy = 0.0_dp, restraint_energy = 0.0_dp
END TYPE fp_type
CONTAINS

View file

@ -35,45 +35,45 @@ MODULE free_energy_types
! **************************************************************************************************
TYPE ui_var_type
REAL(KIND=dp), DIMENSION(:), POINTER :: ss
INTEGER :: icolvar
REAL(KIND=dp), DIMENSION(:), POINTER :: ss => NULL()
INTEGER :: icolvar = -1
END TYPE ui_var_type
! **************************************************************************************************
TYPE ui_conv_type
! Specifying convergence parameters
INTEGER :: cg_width, max_cg_width
INTEGER :: cg_points
REAL(KIND=dp) :: eps_conv
REAL(KIND=dp) :: k_conf_lm
REAL(KIND=dp) :: sw_conf_lm
REAL(KIND=dp) :: vn_conf_lm
LOGICAL :: test_k, &
test_sw, &
test_vn
INTEGER :: cg_width = -1, max_cg_width = -1
INTEGER :: cg_points = -1
REAL(KIND=dp) :: eps_conv = 0.0_dp
REAL(KIND=dp) :: k_conf_lm = 0.0_dp
REAL(KIND=dp) :: sw_conf_lm = 0.0_dp
REAL(KIND=dp) :: vn_conf_lm = 0.0_dp
LOGICAL :: test_k = .FALSE., &
test_sw = .FALSE., &
test_vn = .FALSE.
END TYPE ui_conv_type
! **************************************************************************************************
TYPE statistical_type
! Collecting coarse grained data
REAL(KIND=dp), DIMENSION(:), POINTER :: avg
REAL(KIND=dp), DIMENSION(:, :), POINTER :: var
REAL(KIND=dp), DIMENSION(:), POINTER :: avg => NULL()
REAL(KIND=dp), DIMENSION(:, :), POINTER :: var => NULL()
END TYPE statistical_type
! **************************************************************************************************
TYPE free_energy_type
INTEGER :: ncolvar
INTEGER :: TYPE
INTEGER :: nr_points, &
nr_rejected
TYPE(ui_conv_type), POINTER :: conv_par
TYPE(ui_var_type), POINTER, DIMENSION(:) :: uivar
TYPE(statistical_type), DIMENSION(:), POINTER :: cg_data
INTEGER :: ncolvar = -1
INTEGER :: TYPE = -1
INTEGER :: nr_points = -1, &
nr_rejected = -1
TYPE(ui_conv_type), POINTER :: conv_par => NULL()
TYPE(ui_var_type), POINTER, DIMENSION(:) :: uivar => NULL()
TYPE(statistical_type), DIMENSION(:), POINTER :: cg_data => NULL()
! Old data
REAL(KIND=dp) :: eps_conv
REAL(KIND=dp), DIMENSION(:, :), POINTER :: covmx
REAL(KIND=dp) :: eps_conv = 0.0_dp
REAL(KIND=dp), DIMENSION(:, :), POINTER :: covmx => NULL()
CHARACTER(len=default_string_length) :: plumed_input_file
CHARACTER(len=default_string_length) :: plumed_input_file = ""
END TYPE free_energy_type
CONTAINS

View file

@ -35,22 +35,22 @@ MODULE gle_system_types
!
TYPE gle_thermo_type
INTEGER :: degrees_of_freedom
REAL(KIND=dp) :: nkt, kin_energy, thermostat_energy
REAL(KIND=dp), DIMENSION(:), POINTER :: s
TYPE(rng_stream_type) :: gaussian_rng_stream
INTEGER :: degrees_of_freedom = -1
REAL(KIND=dp) :: nkt = 0.0_dp, kin_energy = 0.0_dp, thermostat_energy = 0.0_dp
REAL(KIND=dp), DIMENSION(:), POINTER :: s => NULL()
TYPE(rng_stream_type) :: gaussian_rng_stream = rng_stream_type()
END TYPE gle_thermo_type
! **************************************************************************************************
TYPE gle_type
INTEGER :: ndim
INTEGER :: glob_num_gle, loc_num_gle, region
INTEGER, DIMENSION(:), POINTER :: mal
REAL(dp) :: temp, dt, dt_fact
REAL(dp), POINTER :: gle_s(:, :), gle_t(:, :)
REAL(dp), POINTER :: a_mat(:, :), c_mat(:, :)
TYPE(gle_thermo_type), POINTER :: nvt(:)
TYPE(map_info_type), POINTER :: map_info
INTEGER :: ndim = -1
INTEGER :: glob_num_gle = -1, loc_num_gle = -1, region = -1
INTEGER, DIMENSION(:), POINTER :: mal => NULL()
REAL(dp) :: temp = 0.0_dp, dt = 0.0_dp, dt_fact = 0.0_dp
REAL(dp), POINTER :: gle_s(:, :) => NULL(), gle_t(:, :) => NULL()
REAL(dp), POINTER :: a_mat(:, :) => NULL(), c_mat(:, :) => NULL()
TYPE(gle_thermo_type), POINTER :: nvt(:) => NULL()
TYPE(map_info_type), POINTER :: map_info => NULL()
END TYPE gle_type
CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'gle_system_types'

View file

@ -35,30 +35,30 @@ MODULE graphcon
! (the number is the index of the other vertex in the array that builds the molecule)
! **************************************************************************************************
TYPE graph_type
TYPE(vertex), POINTER, DIMENSION(:) :: graph
TYPE(vertex), POINTER, DIMENSION(:) :: graph => NULL()
END TYPE graph_type
! **************************************************************************************************
TYPE vertex
INTEGER :: kind
INTEGER, POINTER, DIMENSION(:) :: bonds
INTEGER :: kind = -1
INTEGER, POINTER, DIMENSION(:) :: bonds => NULL()
END TYPE vertex
! **************************************************************************************************
TYPE class
INTEGER, DIMENSION(:), POINTER :: reference
INTEGER, DIMENSION(:), POINTER :: unordered
INTEGER :: kind
INTEGER :: Nele
LOGICAL :: first
INTEGER, DIMENSION(:), POINTER :: order
INTEGER, DIMENSION(:), POINTER :: q
INTEGER, DIMENSION(:), POINTER :: reference => NULL()
INTEGER, DIMENSION(:), POINTER :: unordered => NULL()
INTEGER :: kind = -1
INTEGER :: Nele = -1
LOGICAL :: first = .FALSE.
INTEGER, DIMENSION(:), POINTER :: order => NULL()
INTEGER, DIMENSION(:), POINTER :: q => NULL()
END TYPE class
! **************************************************************************************************
TYPE superclass
INTEGER :: Nele
INTEGER, DIMENSION(:), POINTER :: classes
INTEGER :: Nele = -1
INTEGER, DIMENSION(:), POINTER :: classes => NULL()
END TYPE
CONTAINS

View file

@ -23,7 +23,7 @@ MODULE hartree_local_types
! **************************************************************************************************
TYPE ecoul_1center_type
TYPE(rho_atom_coeff), POINTER :: Vh1_h, Vh1_s
TYPE(rho_atom_coeff), POINTER :: Vh1_h => NULL(), Vh1_s => NULL()
REAL(dp) :: ecoul_1_h = 0.0_dp, &
ecoul_1_s = 0.0_dp, &
ecoul_1_z = 0.0_dp, &
@ -33,7 +33,7 @@ MODULE hartree_local_types
! **************************************************************************************************
TYPE hartree_local_type
TYPE(ecoul_1center_type), &
DIMENSION(:), POINTER :: ecoul_1c
DIMENSION(:), POINTER :: ecoul_1c => NULL()
END TYPE hartree_local_type
! *** Public subroutines ***

View file

@ -34,24 +34,24 @@ MODULE hirshfeld_types
!> \author JGH
! **************************************************************************************************
TYPE hirshfeld_type
LOGICAL :: iterative, &
use_bohr
INTEGER :: shape_function_type
INTEGER :: ref_charge, &
radius_type
LOGICAL :: iterative = .FALSE., &
use_bohr = .FALSE.
INTEGER :: shape_function_type = -1
INTEGER :: ref_charge = -1, &
radius_type = -1
TYPE(shape_fn), DIMENSION(:), &
POINTER :: kind_shape_fn
POINTER :: kind_shape_fn => NULL()
REAL(KIND=dp), DIMENSION(:), &
POINTER :: charges
TYPE(pw_r3d_rs_type), POINTER :: fnorm
POINTER :: charges => NULL()
TYPE(pw_r3d_rs_type), POINTER :: fnorm => NULL()
END TYPE hirshfeld_type
TYPE shape_fn
INTEGER :: numexp
INTEGER :: numexp = -1
REAL(KIND=dp), DIMENSION(:), &
POINTER :: zet
POINTER :: zet => NULL()
REAL(KIND=dp), DIMENSION(:), &
POINTER :: coef
POINTER :: coef => NULL()
END TYPE shape_fn
! **************************************************************************************************

View file

@ -17,12 +17,12 @@ MODULE integration_grid_types
CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'integration_grid_types'
TYPE grid_batch_val_1d_type
INTEGER :: np1
INTEGER :: np1 = -1
REAL(KIND=dp), DIMENSION(:), ALLOCATABLE :: val1d
END TYPE grid_batch_val_1d_type
TYPE grid_batch_val_2d_type
INTEGER :: np1, np2
INTEGER :: np1 = -1, np2 = -1
REAL(KIND=dp), DIMENSION(:, :), ALLOCATABLE :: val2d
END TYPE grid_batch_val_2d_type
@ -32,12 +32,12 @@ MODULE integration_grid_types
END TYPE gnlist_type
TYPE grid_batch_info_type
INTEGER :: np
INTEGER :: ref_atom
INTEGER :: ibatch
TYPE(gnlist_type) :: gnlist
REAL(KIND=dp), DIMENSION(3) :: rcenter
REAL(KIND=dp) :: radius
INTEGER :: np = -1
INTEGER :: ref_atom = -1
INTEGER :: ibatch = -1
TYPE(gnlist_type) :: gnlist = gnlist_type()
REAL(KIND=dp), DIMENSION(3) :: rcenter = 0.0_dp
REAL(KIND=dp) :: radius = 0.0_dp
REAL(dp), DIMENSION(:, :), ALLOCATABLE :: rco
REAL(dp), DIMENSION(:), ALLOCATABLE :: weight
REAL(dp), DIMENSION(:), ALLOCATABLE :: wref
@ -45,12 +45,12 @@ MODULE integration_grid_types
END TYPE grid_batch_info_type
TYPE integration_grid_type
INTEGER :: nbatch
INTEGER :: nbatch = -1
TYPE(grid_batch_info_type), DIMENSION(:), ALLOCATABLE :: grid_batch
END TYPE integration_grid_type
TYPE integration_grid_value_type
INTEGER :: nbatch
INTEGER :: nbatch = -1
TYPE(grid_batch_val_1d_type), DIMENSION(:), ALLOCATABLE :: grid_val_1d
TYPE(grid_batch_val_2d_type), DIMENSION(:), ALLOCATABLE :: grid_val_2d
END TYPE integration_grid_value_type

View file

@ -42,8 +42,8 @@ MODULE kg_environment_types
PUBLIC :: kg_environment_type, kg_env_release, energy_correction_type
TYPE subset_type
TYPE(neighbor_list_set_p_type), DIMENSION(:), POINTER :: sab_orb
TYPE(task_list_type), POINTER :: task_list
TYPE(neighbor_list_set_p_type), DIMENSION(:), POINTER :: sab_orb => NULL()
TYPE(task_list_type), POINTER :: task_list => NULL()
END TYPE subset_type
! *****************************************************************************
@ -53,36 +53,36 @@ MODULE kg_environment_types
!> \author JGH
! *****************************************************************************
TYPE energy_correction_type
CHARACTER(len=20) :: ec_name
INTEGER :: energy_functional
INTEGER :: ks_solver
INTEGER :: factorization
REAL(KIND=dp) :: eps_default
CHARACTER(len=20) :: ec_name = ""
INTEGER :: energy_functional = -1
INTEGER :: ks_solver = -1
INTEGER :: factorization = -1
REAL(KIND=dp) :: eps_default = 0.0_dp
! basis set
CHARACTER(len=20) :: basis
LOGICAL :: mao
INTEGER :: mao_max_iter
REAL(KIND=dp) :: mao_eps_grad
CHARACTER(len=20) :: basis = ""
LOGICAL :: mao = .FALSE.
INTEGER :: mao_max_iter = -1
REAL(KIND=dp) :: mao_eps_grad = 0.0_dp
! energy components
REAL(KIND=dp) :: etotal
REAL(KIND=dp) :: eband, exc, ehartree, vhxc
REAL(KIND=dp) :: edispersion
REAL(KIND=dp) :: etotal = 0.0_dp
REAL(KIND=dp) :: eband = 0.0_dp, exc = 0.0_dp, ehartree = 0.0_dp, vhxc = 0.0_dp
REAL(KIND=dp) :: edispersion = 0.0_dp
! 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;
TYPE(dbcsr_p_type), DIMENSION(:, :), POINTER :: matrix_ks
TYPE(dbcsr_p_type), DIMENSION(:, :), POINTER :: matrix_h
TYPE(dbcsr_p_type), DIMENSION(:, :), POINTER :: matrix_s
TYPE(dbcsr_p_type), DIMENSION(:, :), POINTER :: matrix_t
TYPE(dbcsr_p_type), DIMENSION(:, :), POINTER :: matrix_p
TYPE(dbcsr_p_type), DIMENSION(:, :), POINTER :: matrix_ks => NULL()
TYPE(dbcsr_p_type), DIMENSION(:, :), POINTER :: matrix_h => NULL()
TYPE(dbcsr_p_type), DIMENSION(:, :), POINTER :: matrix_s => NULL()
TYPE(dbcsr_p_type), DIMENSION(:, :), POINTER :: matrix_t => NULL()
TYPE(dbcsr_p_type), DIMENSION(:, :), POINTER :: matrix_p => NULL()
! reduce basis
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: mao_coef
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: mao_coef => NULL()
END TYPE energy_correction_type
! **************************************************************************************************
@ -100,29 +100,29 @@ MODULE kg_environment_types
!> \author Martin Haeufel
! **************************************************************************************************
TYPE kg_environment_type
INTEGER :: nspins
INTEGER :: natom
TYPE(section_vals_type), POINTER :: xc_section_kg
INTEGER :: nspins = -1
INTEGER :: natom = -1
TYPE(section_vals_type), POINTER :: xc_section_kg => NULL()
INTEGER, ALLOCATABLE, DIMENSION(:) :: atom_to_molecule
TYPE(molecule_type), DIMENSION(:), POINTER :: molecule_set
INTEGER :: tnadd_method
TYPE(molecule_type), DIMENSION(:), POINTER :: molecule_set => NULL()
INTEGER :: tnadd_method = -1
TYPE(neighbor_list_set_p_type), &
DIMENSION(:), POINTER :: sab_orb_full, sac_kin
DIMENSION(:), POINTER :: sab_orb_full => NULL(), sac_kin => NULL()
!
INTEGER, DIMENSION(:), POINTER :: subset_of_mol
TYPE(subset_type), DIMENSION(:), POINTER :: subset
INTEGER :: nsubsets
INTEGER :: maxdegree
INTEGER :: coloring_method
INTEGER, DIMENSION(:), POINTER :: subset_of_mol => NULL()
TYPE(subset_type), DIMENSION(:), POINTER :: subset => NULL()
INTEGER :: nsubsets = -1
INTEGER :: maxdegree = -1
INTEGER :: coloring_method = -1
!
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: tnadd_mat
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: tnadd_mat => NULL()
! LRI
TYPE(lri_environment_type), POINTER :: lri_env, lri_env1
TYPE(lri_density_type), POINTER :: lri_density, lri_rho1
TYPE(lri_environment_type), POINTER :: lri_env => NULL(), lri_env1 => NULL()
TYPE(lri_density_type), POINTER :: lri_density => NULL(), lri_rho1 => NULL()
! atomic grid
TYPE(atom_integration_grid_type), POINTER :: int_grid_atom
TYPE(integration_grid_type), POINTER :: int_grid_molecules
TYPE(integration_grid_type), POINTER :: int_grid_full
TYPE(atom_integration_grid_type), POINTER :: int_grid_atom => NULL()
TYPE(integration_grid_type), POINTER :: int_grid_molecules => NULL()
TYPE(integration_grid_type), POINTER :: int_grid_full => NULL()
END TYPE kg_environment_type
CONTAINS

View file

@ -42,16 +42,16 @@ MODULE kg_vertex_coloring_methods
PRIVATE
TYPE vertex
INTEGER :: id
INTEGER :: color
INTEGER :: degree ! degree (number of neighbors)
INTEGER :: dsat ! degree of saturation
INTEGER :: id = -1
INTEGER :: color = -1
INTEGER :: degree = -1 ! degree (number of neighbors)
INTEGER :: dsat = -1 ! degree of saturation
LOGICAL, ALLOCATABLE, DIMENSION(:) :: color_present ! the colors present on neighbors
TYPE(vertex_p_type), DIMENSION(:), POINTER :: neighbors => NULL()
END TYPE vertex
TYPE vertex_p_type
TYPE(vertex), POINTER :: vertex
TYPE(vertex), POINTER :: vertex => NULL()
END TYPE vertex_p_type
CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'kg_vertex_coloring_methods'

View file

@ -70,19 +70,19 @@ MODULE kpoint_types
!> \author JGH
! **************************************************************************************************
TYPE kpoint_env_type
INTEGER :: nkpoint
REAL(KIND=dp) :: wkp
REAL(KIND=dp), DIMENSION(3) :: xkp
LOGICAL :: is_local
TYPE(mo_set_type), DIMENSION(:, :), POINTER :: mos
TYPE(cp_fm_type), DIMENSION(:, :), POINTER :: pmat
TYPE(cp_fm_type), DIMENSION(:, :), POINTER :: wmat
TYPE(cp_fm_type), DIMENSION(:, :), POINTER :: smat
TYPE(cp_fm_type), DIMENSION(:, :), POINTER :: amat
INTEGER :: nkpoint = -1
REAL(KIND=dp) :: wkp = 0.0_dp
REAL(KIND=dp), DIMENSION(3) :: xkp = 0.0_dp
LOGICAL :: is_local = .FALSE.
TYPE(mo_set_type), DIMENSION(:, :), POINTER :: mos => NULL()
TYPE(cp_fm_type), DIMENSION(:, :), POINTER :: pmat => NULL()
TYPE(cp_fm_type), DIMENSION(:, :), POINTER :: wmat => NULL()
TYPE(cp_fm_type), DIMENSION(:, :), POINTER :: smat => NULL()
TYPE(cp_fm_type), DIMENSION(:, :), POINTER :: amat => NULL()
END TYPE kpoint_env_type
TYPE kpoint_env_p_type
TYPE(kpoint_env_type), POINTER :: kpoint_env
TYPE(kpoint_env_type), POINTER :: kpoint_env => NULL()
END TYPE kpoint_env_p_type
! **************************************************************************************************
@ -95,15 +95,15 @@ MODULE kpoint_types
!> \author JGH
! **************************************************************************************************
TYPE kpoint_sym_type
LOGICAL :: apply_symmetry
INTEGER :: nwght
REAL(KIND=dp), DIMENSION(:, :), POINTER :: xkp
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: rot
INTEGER, DIMENSION(:, :), POINTER :: f0
LOGICAL :: apply_symmetry = .FALSE.
INTEGER :: nwght = -1
REAL(KIND=dp), DIMENSION(:, :), POINTER :: xkp => NULL()
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: rot => NULL()
INTEGER, DIMENSION(:, :), POINTER :: f0 => NULL()
END TYPE kpoint_sym_type
TYPE kpoint_sym_p_type
TYPE(kpoint_sym_type), POINTER :: kpoint_sym
TYPE(kpoint_sym_type), POINTER :: kpoint_sym => NULL()
END TYPE kpoint_sym_p_type
! **************************************************************************************************
@ -136,16 +136,16 @@ MODULE kpoint_types
!> \author JGH
! **************************************************************************************************
TYPE kpoint_type
CHARACTER(LEN=default_string_length) :: kp_scheme
INTEGER, DIMENSION(3) :: nkp_grid
REAL(KIND=dp), DIMENSION(3) :: kp_shift
LOGICAL :: use_real_wfn
LOGICAL :: symmetry
LOGICAL :: full_grid
LOGICAL :: verbose
REAL(KIND=dp) :: eps_geo
INTEGER :: parallel_group_size
INTEGER :: nkp
CHARACTER(LEN=default_string_length) :: kp_scheme = ""
INTEGER, DIMENSION(3) :: nkp_grid = -1
REAL(KIND=dp), DIMENSION(3) :: kp_shift = 0.0_dp
LOGICAL :: use_real_wfn = .FALSE.
LOGICAL :: symmetry = .FALSE.
LOGICAL :: full_grid = .FALSE.
LOGICAL :: verbose = .FALSE.
REAL(KIND=dp) :: eps_geo = 0.0_dp
INTEGER :: parallel_group_size = -1
INTEGER :: nkp = -1
REAL(KIND=dp), DIMENSION(:, :), POINTER :: xkp => Null()
REAL(KIND=dp), DIMENSION(:), POINTER :: wkp => Null()
! parallel environment
@ -153,10 +153,10 @@ MODULE kpoint_types
TYPE(cp_blacs_env_type), POINTER :: blacs_env_all => Null()
TYPE(mp_para_env_type), POINTER :: para_env_kp => Null(), &
para_env_inter_kp => Null()
LOGICAL :: iogrp
INTEGER :: nkp_groups
LOGICAL :: iogrp = .FALSE.
INTEGER :: nkp_groups = -1
INTEGER, DIMENSION(:, :), POINTER :: kp_dist => Null()
INTEGER, DIMENSION(2) :: kp_range
INTEGER, DIMENSION(2) :: kp_range = -1
TYPE(cp_blacs_env_type), POINTER :: blacs_env => Null()
INTEGER, DIMENSION(:, :, :), POINTER :: cell_to_index => Null()
INTEGER, DIMENSION(:, :), POINTER :: index_to_cell => Null()

View file

@ -45,62 +45,63 @@ MODULE lri_environment_types
! **************************************************************************************************
! Integral container
TYPE carray
INTEGER :: compression
REAL(KIND=dp), DIMENSION(:), POINTER :: cdp
REAL(KIND=sp), DIMENSION(:), POINTER :: csp
INTEGER(INT_8), DIMENSION(:), POINTER :: cip
INTEGER :: compression = -1
REAL(KIND=dp), DIMENSION(:), POINTER :: cdp => NULL()
REAL(KIND=sp), DIMENSION(:), POINTER :: csp => NULL()
INTEGER(INT_8), DIMENSION(:), POINTER :: cip => NULL()
END TYPE carray
TYPE int_container
INTEGER :: na, nb, nc
TYPE(carray), DIMENSION(:), POINTER :: ca
INTEGER :: na = -1, nb = -1, nc = -1
TYPE(carray), DIMENSION(:), POINTER :: ca => NULL()
END TYPE int_container
! **************************************************************************************************
TYPE lri_rhoab_type
! number of spherical basis functions (a)
INTEGER :: nba
INTEGER :: nba = -1
! number of spherical basis functions (b)
INTEGER :: nbb
INTEGER :: nbb = -1
! number of spherical fit basis functions (ai)
INTEGER :: nfa
INTEGER :: nfa = -1
! number of spherical fit basis functions (bi)
INTEGER :: nfb
INTEGER :: nfb = -1
! expansion coeffs for RI density
REAL(KIND=dp), DIMENSION(:), POINTER :: avec
REAL(KIND=dp), DIMENSION(:), POINTER :: aveca
REAL(KIND=dp), DIMENSION(:), POINTER :: avecb
REAL(KIND=dp), DIMENSION(:), POINTER :: avec => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: aveca => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: avecb => NULL()
! projection coeffs for RI density: SUM_ab (ab,i)*Pab
REAL(KIND=dp), DIMENSION(:), POINTER :: tvec
REAL(KIND=dp), DIMENSION(:), POINTER :: tveca
REAL(KIND=dp), DIMENSION(:), POINTER :: tvecb
REAL(KIND=dp), DIMENSION(:), POINTER :: tvec => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: tveca => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: tvecb => NULL()
! integral (ai) * sinv * tvec
REAL(KIND=dp) :: nst
REAL(KIND=dp) :: nsta
REAL(KIND=dp) :: nstb
REAL(KIND=dp) :: nst = 0.0_dp
REAL(KIND=dp) :: nsta = 0.0_dp
REAL(KIND=dp) :: nstb = 0.0_dp
! Lagrange parameter
REAL(KIND=dp) :: lambda
REAL(KIND=dp) :: lambdaa
REAL(KIND=dp) :: lambdab
REAL(KIND=dp) :: lambda = 0.0_dp
REAL(KIND=dp) :: lambdaa = 0.0_dp
REAL(KIND=dp) :: lambdab = 0.0_dp
! Charge of pair density
REAL(KIND=dp) :: charge
REAL(KIND=dp) :: chargea
REAL(KIND=dp) :: chargeb
REAL(KIND=dp) :: charge = 0.0_dp
REAL(KIND=dp) :: chargea = 0.0_dp
REAL(KIND=dp) :: chargeb = 0.0_dp
END TYPE lri_rhoab_type
! **************************************************************************************************
TYPE lri_int_type
! whether to calculate force for pair
LOGICAL :: calc_force_pair
LOGICAL :: calc_force_pair = .FALSE.
! number of spherical basis functions (a)
INTEGER :: nba
INTEGER :: nba = -1
! number of spherical basis functions (b)
INTEGER :: nbb
INTEGER :: nbb = -1
! number of spherical fit basis functions (ai)
INTEGER :: nfa
INTEGER :: nfa = -1
! number of spherical fit basis functions (bi)
INTEGER :: nfb
INTEGER :: nfb = -1
! condition number of overlap matrix
REAL(KIND=dp) :: cond_num
REAL(KIND=dp) :: cond_num = 0.0_dp
! integrals (a,b,ai)
REAL(KIND=dp), DIMENSION(:, :, :), ALLOCATABLE :: abaint
REAL(KIND=dp), DIMENSION(:), ALLOCATABLE :: abascr
@ -108,9 +109,9 @@ MODULE lri_environment_types
REAL(KIND=dp), DIMENSION(:, :, :), ALLOCATABLE :: abbint
REAL(KIND=dp), DIMENSION(:), ALLOCATABLE :: abbscr
! compressed aba integrals
TYPE(int_container) :: cabai
TYPE(int_container) :: cabai = int_container()
! compressed abb integrals
TYPE(int_container) :: cabbi
TYPE(int_container) :: cabbi = int_container()
! integrals (da/dA,b,dai/dA)
REAL(KIND=dp), DIMENSION(:, :, :, :), ALLOCATABLE :: dabdaint
! integrals (da/dA,b,bi)
@ -124,38 +125,38 @@ MODULE lri_environment_types
! derivative d(ai,bi)/dA
REAL(KIND=dp), DIMENSION(:, :, :), ALLOCATABLE :: dsab
! inverse of integrals (ai,bi)
REAL(KIND=dp), DIMENSION(:, :), POINTER :: sinv
REAL(KIND=dp), DIMENSION(:, :), POINTER :: sinv => NULL()
! integral (ai) / (bi), dim(1..nfa,nfa+1..nfa+nfb)
REAL(KIND=dp), DIMENSION(:), POINTER :: n
REAL(KIND=dp), DIMENSION(:), POINTER :: n => NULL()
! sinv * (ai)
REAL(KIND=dp), DIMENSION(:), POINTER :: sn
REAL(KIND=dp), DIMENSION(:), POINTER :: sn => NULL()
! (ai) * sinv * (ai)
REAL(KIND=dp) :: nsn
REAL(KIND=dp) :: nsn = 0.0_dp
! distant pair approximation
LOGICAL :: lrisr
LOGICAL :: lriff
REAL(KIND=dp) :: wsr, wff, dwsr, dwff
REAL(KIND=dp), DIMENSION(:, :), POINTER :: asinv, bsinv
REAL(KIND=dp), DIMENSION(:), POINTER :: na, nb
REAL(KIND=dp), DIMENSION(:), POINTER :: sna, snb
REAL(KIND=dp) :: nsna, nsnb
LOGICAL :: lrisr = .FALSE.
LOGICAL :: lriff = .FALSE.
REAL(KIND=dp) :: wsr = 0.0_dp, wff = 0.0_dp, dwsr = 0.0_dp, dwff = 0.0_dp
REAL(KIND=dp), DIMENSION(:, :), POINTER :: asinv => NULL(), bsinv => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: na => NULL(), nb => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: sna => NULL(), snb => NULL()
REAL(KIND=dp) :: nsna = 0.0_dp, nsnb = 0.0_dp
!
! dmax: max deviation for integrals of primitive gtos; for debugging
! dmax for overlap integrals (ai,bi); fit bas
REAL(KIND=dp) :: dmax_ab
REAL(KIND=dp) :: dmax_ab = 0.0_dp
! dmax for overlap integrals (a,b); orb bas
REAL(KIND=dp) :: dmax_oo
REAL(KIND=dp) :: dmax_oo = 0.0_dp
! dmax for integrals (a,b,ai)
REAL(KIND=dp) :: dmax_aba
REAL(KIND=dp) :: dmax_aba = 0.0_dp
! dmax for integrals (a,b,bi)
REAL(KIND=dp) :: dmax_abb
REAL(KIND=dp) :: dmax_abb = 0.0_dp
END TYPE lri_int_type
TYPE lri_int_rho_type
! integrals (aa,bb), orb basis
REAL(KIND=dp), DIMENSION(:, :, :, :), POINTER :: soaabb
REAL(KIND=dp), DIMENSION(:, :, :, :), POINTER :: soaabb => NULL()
! dmax for (aa,bb) integrals; for debugging
REAL(KIND=dp) :: dmax_aabb
REAL(KIND=dp) :: dmax_aabb = 0.0_dp
END TYPE lri_int_rho_type
TYPE lri_node_type
@ -182,174 +183,175 @@ MODULE lri_environment_types
! **************************************************************************************************
TYPE lri_bas_type
INTEGER, DIMENSION(:, :, :), POINTER :: orb_index
INTEGER, DIMENSION(:, :, :), POINTER :: ri_index
INTEGER, DIMENSION(:, :, :), POINTER :: orb_index => NULL()
INTEGER, DIMENSION(:, :, :), POINTER :: ri_index => NULL()
! integral of ri basis fbas
REAL(KIND=dp), DIMENSION(:), POINTER :: int_fbas
REAL(KIND=dp), DIMENSION(:), POINTER :: int_fbas => NULL()
! self overlap ri basis
REAL(KIND=dp), DIMENSION(:, :), POINTER :: ri_ovlp
REAL(KIND=dp), DIMENSION(:, :), POINTER :: ri_ovlp => NULL()
! inverse of self overlap ri basis
REAL(KIND=dp), DIMENSION(:, :), POINTER :: ri_ovlp_inv
REAL(KIND=dp), DIMENSION(:, :), POINTER :: ri_ovlp_inv => NULL()
! self overlap orb basis
REAL(KIND=dp), DIMENSION(:, :), POINTER :: orb_ovlp
REAL(KIND=dp), DIMENSION(:, :), POINTER :: orb_ovlp => NULL()
! self overlap (a,a,fa)
REAL(KIND=dp), DIMENSION(:, :, :), ALLOCATABLE :: ovlp3
! contraction matrix for SHG integrals ri basis
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: scon_ri
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: scon_ri => NULL()
! contraction matrix for SHG integrals orb basis
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: scon_orb
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: scon_orb => NULL()
! contraction matrix for SHG integrals aba/abb
REAL(KIND=dp), DIMENSION(:, :, :, :), POINTER :: scon_mix
REAL(KIND=dp), DIMENSION(:, :, :, :), POINTER :: scon_mix => NULL()
END TYPE lri_bas_type
! **************************************************************************************************
TYPE lri_clebsch_gordon_type
! Clebsch-Gordon (CG) coefficients
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: cg_coeff
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: cg_coeff => NULL()
! list of non-zero CG coefficients
INTEGER, DIMENSION(:, :, :), POINTER :: cg_none0_list
INTEGER, DIMENSION(:, :, :), POINTER :: cg_none0_list => NULL()
! number of non-zero CG coefficients
INTEGER, DIMENSION(:, :), POINTER :: ncg_none0
INTEGER, DIMENSION(:, :), POINTER :: ncg_none0 => NULL()
END TYPE lri_clebsch_gordon_type
! **************************************************************************************************
TYPE lri_ppl_type
! integrals Vppl*fbas (potential*fit basis) dim(natom,nsgf)
REAL(KIND=dp), DIMENSION(:, :), POINTER :: v_int
REAL(KIND=dp), DIMENSION(:, :), POINTER :: v_int => NULL()
END TYPE lri_ppl_type
TYPE lri_ppl_int_type
TYPE(lri_ppl_type), DIMENSION(:), POINTER :: lri_ppl
REAL(KIND=dp) :: ecore_pp_ri
TYPE(lri_ppl_type), DIMENSION(:), POINTER :: lri_ppl => NULL()
REAL(KIND=dp) :: ecore_pp_ri = 0.0_dp
END TYPE lri_ppl_int_type
! **************************************************************************************************
TYPE ri_fit_type
INTEGER, DIMENSION(:, :), POINTER :: bas_ptr
REAL(KIND=dp), DIMENSION(:), POINTER :: nvec
REAL(KIND=dp), DIMENSION(:), POINTER :: rm1n
REAL(KIND=dp), DIMENSION(:, :), POINTER :: tvec
REAL(KIND=dp), DIMENSION(:, :), POINTER :: rm1t
REAL(KIND=dp), DIMENSION(:, :), POINTER :: avec
REAL(KIND=dp), DIMENSION(:, :), POINTER :: fout
REAL(KIND=dp) :: ntrm1n
REAL(KIND=dp), DIMENSION(2) :: ftrm1n
REAL(KIND=dp), DIMENSION(2) :: echarge
REAL(KIND=dp), DIMENSION(2) :: lambda
INTEGER, DIMENSION(:, :), POINTER :: bas_ptr => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: nvec => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: rm1n => NULL()
REAL(KIND=dp), DIMENSION(:, :), POINTER :: tvec => NULL()
REAL(KIND=dp), DIMENSION(:, :), POINTER :: rm1t => NULL()
REAL(KIND=dp), DIMENSION(:, :), POINTER :: avec => NULL()
REAL(KIND=dp), DIMENSION(:, :), POINTER :: fout => NULL()
REAL(KIND=dp) :: ntrm1n = 0.0_dp
REAL(KIND=dp), DIMENSION(2) :: ftrm1n = 0.0_dp
REAL(KIND=dp), DIMENSION(2) :: echarge = 0.0_dp
REAL(KIND=dp), DIMENSION(2) :: lambda = 0.0_dp
END TYPE ri_fit_type
! **************************************************************************************************
TYPE wmat_type
REAL(KIND=dp), DIMENSION(:, :), POINTER :: mat
REAL(KIND=dp), DIMENSION(:, :), POINTER :: mat => NULL()
END TYPE wmat_type
TYPE wbas_type
REAL(KIND=dp), DIMENSION(:), POINTER :: vec
REAL(KIND=dp), DIMENSION(:), POINTER :: vec => NULL()
END TYPE wbas_type
! **************************************************************************************************
TYPE stat_type
REAL(KIND=dp) :: pairs_tt
REAL(KIND=dp) :: pairs_sr
REAL(KIND=dp) :: pairs_ff
REAL(KIND=dp) :: overlap_error
REAL(KIND=dp) :: rho_tt
REAL(KIND=dp) :: rho_sr
REAL(KIND=dp) :: rho_ff
REAL(KIND=dp) :: rho_1c
REAL(KIND=dp) :: coef_mem
REAL(KIND=dp) :: oint_mem
REAL(KIND=dp) :: rhos_mem
REAL(KIND=dp) :: abai_mem
REAL(KIND=dp) :: ppli_mem
REAL(KIND=dp) :: pairs_tt = 0.0_dp
REAL(KIND=dp) :: pairs_sr = 0.0_dp
REAL(KIND=dp) :: pairs_ff = 0.0_dp
REAL(KIND=dp) :: overlap_error = 0.0_dp
REAL(KIND=dp) :: rho_tt = 0.0_dp
REAL(KIND=dp) :: rho_sr = 0.0_dp
REAL(KIND=dp) :: rho_ff = 0.0_dp
REAL(KIND=dp) :: rho_1c = 0.0_dp
REAL(KIND=dp) :: coef_mem = 0.0_dp
REAL(KIND=dp) :: oint_mem = 0.0_dp
REAL(KIND=dp) :: rhos_mem = 0.0_dp
REAL(KIND=dp) :: abai_mem = 0.0_dp
REAL(KIND=dp) :: ppli_mem = 0.0_dp
END TYPE stat_type
! **************************************************************************************************
TYPE lri_environment_type
! parameter for (pseudo)inverse of overlap
INTEGER :: lri_overlap_inv
INTEGER :: lri_overlap_inv = -1
! flag for debugging lri integrals
LOGICAL :: debug
LOGICAL :: debug = .FALSE.
! flag for shg (solid haromonic Gaussian) integrals
LOGICAL :: use_shg_integrals
LOGICAL :: use_shg_integrals = .FALSE.
! parameter for inversion (autoselect); maximal condition
! number up to where inversion is legal
REAL(KIND=dp) :: cond_max
REAL(KIND=dp) :: cond_max = 0.0_dp
! parameter for checking distance between atom pairs
REAL(KIND=dp) :: delta
REAL(KIND=dp) :: delta = 0.0_dp
! threshold for aba and abb integrals
REAL(KIND=dp) :: eps_o3_int
REAL(KIND=dp) :: eps_o3_int = 0.0_dp
! orbital basis set
TYPE(gto_basis_set_p_type), DIMENSION(:), POINTER :: orb_basis
TYPE(gto_basis_set_p_type), DIMENSION(:), POINTER :: orb_basis => NULL()
! lri (fit) basis set
TYPE(gto_basis_set_p_type), DIMENSION(:), POINTER :: ri_basis
TYPE(gto_basis_set_p_type), DIMENSION(:), POINTER :: ri_basis => NULL()
! orb_basis neighborlist
TYPE(neighbor_list_set_p_type), DIMENSION(:), POINTER :: soo_list
TYPE(neighbor_list_set_p_type), DIMENSION(:), POINTER :: saa_list
TYPE(neighbor_list_set_p_type), DIMENSION(:), POINTER :: soa_list
TYPE(neighbor_list_set_p_type), DIMENSION(:), POINTER :: soo_list => NULL()
TYPE(neighbor_list_set_p_type), DIMENSION(:), POINTER :: saa_list => NULL()
TYPE(neighbor_list_set_p_type), DIMENSION(:), POINTER :: soa_list => NULL()
! local RI integrals
TYPE(lri_list_type), POINTER :: lri_ints
TYPE(lri_list_type), POINTER :: lri_ints => NULL()
! local Vppl integrals
TYPE(lri_ppl_int_type), POINTER :: lri_ppl_ints
TYPE(lri_ppl_int_type), POINTER :: lri_ppl_ints => NULL()
! local integral of rho**2; for optimization
TYPE(lri_list_type), POINTER :: lri_ints_rho
TYPE(lri_list_type), POINTER :: lri_ints_rho => NULL()
! properties of orb and aux basis
TYPE(lri_bas_type), DIMENSION(:), POINTER :: bas_prop
TYPE(lri_bas_type), DIMENSION(:), POINTER :: bas_prop => NULL()
! Clebsch-Gordon for solid harmonics
TYPE(lri_clebsch_gordon_type), POINTER :: cg_shg
TYPE(lri_clebsch_gordon_type), POINTER :: cg_shg => NULL()
! orbital basis overlap
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: ob_smat
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: ob_smat => NULL()
! statistics
LOGICAL :: statistics
TYPE(stat_type) :: stat
LOGICAL :: statistics = .FALSE.
TYPE(stat_type) :: stat = stat_type()
! exact one-center terms
LOGICAL :: exact_1c_terms
LOGICAL :: exact_1c_terms = .FALSE.
! use RI for local pp
LOGICAL :: ppl_ri
LOGICAL :: ppl_ri = .FALSE.
! store integrals (needed for basis optimization)
LOGICAL :: store_integrals
LOGICAL :: store_integrals = .FALSE.
! distant pair approximation
LOGICAL :: distant_pair_approximation
CHARACTER(len=10) :: distant_pair_method
REAL(KIND=dp) :: r_in
REAL(KIND=dp) :: r_out
REAL(KIND=dp), DIMENSION(:), POINTER :: aradius
TYPE(wbas_type), DIMENSION(:), POINTER :: wbas
TYPE(wmat_type), DIMENSION(:, :), POINTER :: wmat
LOGICAL :: distant_pair_approximation = .FALSE.
CHARACTER(len=10) :: distant_pair_method = ""
REAL(KIND=dp) :: r_in = 0.0_dp
REAL(KIND=dp) :: r_out = 0.0_dp
REAL(KIND=dp), DIMENSION(:), POINTER :: aradius => NULL()
TYPE(wbas_type), DIMENSION(:), POINTER :: wbas => NULL()
TYPE(wmat_type), DIMENSION(:, :), POINTER :: wmat => NULL()
! RI overlap and inverse
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: ri_smat, &
ri_sinv
TYPE(ri_fit_type), POINTER :: ri_fit
CHARACTER(len=10) :: ri_sinv_app
TYPE(o3c_container_type), POINTER :: o3c
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: ri_smat => NULL(), &
ri_sinv => NULL()
TYPE(ri_fit_type), POINTER :: ri_fit => NULL()
CHARACTER(len=10) :: ri_sinv_app = ""
TYPE(o3c_container_type), POINTER :: o3c => NULL()
END TYPE lri_environment_type
! **************************************************************************************************
TYPE lri_kind_type
! expansion coeff for lri density dim(natom,nsgf)
REAL(KIND=dp), DIMENSION(:, :), POINTER :: acoef
REAL(KIND=dp), DIMENSION(:, :), POINTER :: acoef => NULL()
! integrals V*fbas (potential*fit basis) dim(natom,nsgf)
REAL(KIND=dp), DIMENSION(:, :), POINTER :: v_int
REAL(KIND=dp), DIMENSION(:, :), POINTER :: v_int => NULL()
! SUM_i integral(V*fbas_i)*davec/dR dim(natom,3)
REAL(KIND=dp), DIMENSION(:, :), POINTER :: v_dadr
REAL(KIND=dp), DIMENSION(:, :), POINTER :: v_dadr => NULL()
! integrals V*dfbas/dR
REAL(KIND=dp), DIMENSION(:, :), POINTER :: v_dfdr
REAL(KIND=dp), DIMENSION(:, :), POINTER :: v_dfdr => NULL()
END TYPE lri_kind_type
TYPE lri_spin_type
TYPE(lri_kind_type), DIMENSION(:), POINTER :: lri_kinds
TYPE(lri_kind_type), DIMENSION(:), POINTER :: lri_kinds => NULL()
END TYPE lri_spin_type
! **************************************************************************************************
TYPE lri_force_type
REAL(KIND=dp), DIMENSION(:), POINTER :: st
REAL(KIND=dp), DIMENSION(:, :), POINTER :: dssn, &
dsst
REAL(KIND=dp), DIMENSION(:), POINTER :: st => NULL()
REAL(KIND=dp), DIMENSION(:, :), POINTER :: dssn => NULL(), &
dsst => NULL()
! derivative dtvec/dR
REAL(KIND=dp), DIMENSION(:, :), POINTER :: dtvec
REAL(KIND=dp), DIMENSION(:, :), POINTER :: dtvec => NULL()
END TYPE lri_force_type
! **************************************************************************************************

View file

@ -34,35 +34,35 @@ MODULE lri_optimize_ri_basis_types
TYPE lri_gcc_p_type
! gcc without normalization factor
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: gcc_orig
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: gcc_orig => NULL()
END TYPE lri_gcc_p_type
TYPE lri_subset_type
! amount of l quantum numbers per set
INTEGER :: nl
INTEGER :: nl = -1
! number of contraction per l quantum number for a given set
INTEGER, DIMENSION(:), POINTER :: ncont_l
INTEGER, DIMENSION(:), POINTER :: ncont_l => NULL()
END TYPE lri_subset_type
TYPE lri_opt_type
LOGICAL :: opt_exps
LOGICAL :: opt_coeffs
LOGICAL :: use_condition_number
LOGICAL :: use_geometric_seq
LOGICAL :: use_constraints
INTEGER :: nexp
INTEGER :: ncoeff
REAL(KIND=dp) :: cond_weight
REAL(KIND=dp) :: scale_exp
REAL(KIND=dp) :: fermi_exp
REAL(KIND=dp) :: rho_diff
LOGICAL :: opt_exps = .FALSE.
LOGICAL :: opt_coeffs = .FALSE.
LOGICAL :: use_condition_number = .FALSE.
LOGICAL :: use_geometric_seq = .FALSE.
LOGICAL :: use_constraints = .FALSE.
INTEGER :: nexp = -1
INTEGER :: ncoeff = -1
REAL(KIND=dp) :: cond_weight = 0.0_dp
REAL(KIND=dp) :: scale_exp = 0.0_dp
REAL(KIND=dp) :: fermi_exp = 0.0_dp
REAL(KIND=dp) :: rho_diff = 0.0_dp
! array holding the variables that are optimized
REAL(KIND=dp), DIMENSION(:), POINTER :: x
REAL(KIND=dp), DIMENSION(:), POINTER :: x => NULL()
! initial exponents
REAL(KIND=dp), DIMENSION(:), POINTER :: zet_init
REAL(KIND=dp), DIMENSION(:), POINTER :: zet_init => NULL()
! holds the original contraction coeff of the lri basis
TYPE(lri_gcc_p_type), DIMENSION(:), POINTER :: ri_gcc_orig
TYPE(lri_subset_type), DIMENSION(:), POINTER :: subset
TYPE(lri_gcc_p_type), DIMENSION(:), POINTER :: ri_gcc_orig => NULL()
TYPE(lri_subset_type), DIMENSION(:), POINTER :: subset => NULL()
END TYPE lri_opt_type
! **************************************************************************************************

View file

@ -65,9 +65,9 @@ MODULE mao_methods
CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'mao_methods'
TYPE mblocks
INTEGER :: n, ma
REAL(KIND=dp), DIMENSION(:, :), POINTER :: mat
REAL(KIND=dp), DIMENSION(:), POINTER :: eig
INTEGER :: n = -1, ma = -1
REAL(KIND=dp), DIMENSION(:, :), POINTER :: mat => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: eig => NULL()
END TYPE mblocks
PUBLIC :: mao_initialization, mao_function, mao_function_gradient, mao_orthogonalization, &

View file

@ -24,7 +24,7 @@ MODULE mao_types
!> \author JGH
! **************************************************************************************************
TYPE mao_type
INTEGER :: ref_basis
INTEGER :: ref_basis = -1
END TYPE mao_type
! **************************************************************************************************

View file

@ -19,13 +19,13 @@ MODULE mdctrl_types
PRIVATE
TYPE glbopt_mdctrl_data_type
INTEGER :: md_bump_counter
INTEGER :: md_bump_counter = -1
REAL(KIND=dp), DIMENSION(:), ALLOCATABLE :: epot_history
INTEGER :: output_unit
INTEGER :: itimes
INTEGER :: bump_steps_upwards
INTEGER :: bump_steps_downwards
INTEGER :: md_bumps_max
INTEGER :: output_unit = -1
INTEGER :: itimes = -1
INTEGER :: bump_steps_upwards = -1
INTEGER :: bump_steps_downwards = -1
INTEGER :: md_bumps_max = -1
END TYPE glbopt_mdctrl_data_type
TYPE mdctrl_type

View file

@ -38,87 +38,88 @@ MODULE metadynamics_types
!> \brief defines types for HILLS
! **************************************************************************************************
TYPE hills_env_type
LOGICAL :: restart, slow_growth, wtcontrol
LOGICAL :: restart = .FALSE., slow_growth = .FALSE., wtcontrol = .FALSE.
!RG Adaptive hills
REAL(KIND=dp) :: ww, min_disp, energy
INTEGER :: n_hills, nt_hills, min_nt_hills
INTEGER :: old_hill_number, old_hill_step
REAL(KIND=dp) :: ww = 0.0_dp, min_disp = 0.0_dp, energy = 0.0_dp
INTEGER :: n_hills = -1, nt_hills = -1, min_nt_hills = -1
INTEGER :: old_hill_number = -1, old_hill_step = -1
!RG Adaptive hills
REAL(KIND=dp), DIMENSION(:, :), POINTER :: ss_history
REAL(KIND=dp), DIMENSION(:, :), POINTER :: delta_s_history
REAL(KIND=dp), DIMENSION(:), POINTER :: ww_history
REAL(KIND=dp), DIMENSION(:), POINTER :: invdt_history
REAL(KIND=dp), DIMENSION(:, :), POINTER :: ss_history => NULL()
REAL(KIND=dp), DIMENSION(:, :), POINTER :: delta_s_history => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: ww_history => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: invdt_history => NULL()
!Hills tail damping
REAL(KIND=dp) :: tail_cutoff
INTEGER :: p_exp, q_exp
REAL(KIND=dp) :: tail_cutoff = 0.0_dp
INTEGER :: p_exp = -1, q_exp = -1
END TYPE hills_env_type
! **************************************************************************************************
!> \brief defines types for WALLS
! **************************************************************************************************
TYPE wall_type
INTEGER :: id_type, id_direction
REAL(KIND=dp) :: pos, pos0
REAL(KIND=dp) :: k_quadratic, k_quartic, ww_gauss, sigma_gauss
INTEGER :: id_type = -1, id_direction = -1
REAL(KIND=dp) :: pos = 0.0_dp, pos0 = 0.0_dp
REAL(KIND=dp) :: k_quadratic = 0.0_dp, k_quartic = 0.0_dp, &
ww_gauss = 0.0_dp, sigma_gauss = 0.0_dp
END TYPE wall_type
! **************************************************************************************************
!> \brief defines types for COLVAR used in the metadynamics
! **************************************************************************************************
TYPE metavar_type
INTEGER :: icolvar
LOGICAL :: do_wall, periodic
REAL(KIND=dp) :: mass, lambda, vvp
REAL(KIND=dp) :: gamma
REAL(KIND=dp) :: epot_s, delta_s, epot_walls
REAL(KIND=dp) :: ss, ss0, ff_s, ff_hills, ff_walls
TYPE(wall_type), DIMENSION(:), POINTER :: walls
INTEGER :: icolvar = -1
LOGICAL :: do_wall = .FALSE., periodic = .FALSE.
REAL(KIND=dp) :: mass = 0.0_dp, lambda = 0.0_dp, vvp = 0.0_dp
REAL(KIND=dp) :: gamma = 0.0_dp
REAL(KIND=dp) :: epot_s = 0.0_dp, delta_s = 0.0_dp, epot_walls = 0.0_dp
REAL(KIND=dp) :: ss = 0.0_dp, ss0 = 0.0_dp, ff_s = 0.0_dp, ff_hills = 0.0_dp, ff_walls = 0.0_dp
TYPE(wall_type), DIMENSION(:), POINTER :: walls => NULL()
END TYPE metavar_type
! **************************************************************************************************
!> \brief defines types for multiple walkers run
! **************************************************************************************************
TYPE multiple_walkers_type
INTEGER :: n_hills_local
INTEGER :: walker_id
INTEGER :: walkers_tot_nr
INTEGER :: walkers_freq_comm
INTEGER, DIMENSION(:), POINTER :: walkers_status
INTEGER :: n_hills_local = -1
INTEGER :: walker_id = -1
INTEGER :: walkers_tot_nr = -1
INTEGER :: walkers_freq_comm = -1
INTEGER, DIMENSION(:), POINTER :: walkers_status => NULL()
CHARACTER(LEN=default_path_length), &
DIMENSION(:), POINTER :: walkers_file_name
DIMENSION(:), POINTER :: walkers_file_name => NULL()
END TYPE multiple_walkers_type
! **************************************************************************************************
!> \brief defines meta_env type
! **************************************************************************************************
TYPE meta_env_type
LOGICAL :: do_hills, do_multiple_walkers
LOGICAL :: extended_lagrange
LOGICAL :: well_tempered
LOGICAL :: langevin
LOGICAL :: use_plumed
CHARACTER(LEN=default_path_length) :: plumed_input_file
INTEGER :: n_colvar
REAL(KIND=dp) :: ekin_s, epot_s, dt, &
avg_temp, epot_walls
LOGICAL :: tempcontrol, restart
REAL(KIND=dp) :: temp_wanted, toll_temp
REAL(KIND=dp) :: delta_t, invdt, &
wtgamma, wttemperature
INTEGER :: n_steps
LOGICAL :: do_hills = .FALSE., do_multiple_walkers = .FALSE.
LOGICAL :: extended_lagrange = .FALSE.
LOGICAL :: well_tempered = .FALSE.
LOGICAL :: langevin = .FALSE.
LOGICAL :: use_plumed = .FALSE.
CHARACTER(LEN=default_path_length) :: plumed_input_file = ""
INTEGER :: n_colvar = -1
REAL(KIND=dp) :: ekin_s = 0.0_dp, epot_s = 0.0_dp, dt = 0.0_dp, &
avg_temp = 0.0_dp, epot_walls = 0.0_dp
LOGICAL :: tempcontrol = .FALSE., restart = .FALSE.
REAL(KIND=dp) :: temp_wanted = 0.0_dp, toll_temp = 0.0_dp
REAL(KIND=dp) :: delta_t = 0.0_dp, invdt = 0.0_dp, &
wtgamma = 0.0_dp, wttemperature = 0.0_dp
INTEGER :: n_steps = -1
! time pointer should never be allocated itself.. that's a quite bad
! choice derived from the md_env.. So whenever the meta_env type is
! used the pointer time should be pointer to the high level time counter
REAL(KIND=dp), POINTER :: time
TYPE(hills_env_type), POINTER :: hills_env
TYPE(metavar_type), POINTER, DIMENSION(:) :: metavar
TYPE(multiple_walkers_type), POINTER :: multiple_walkers
TYPE(mp_para_env_type), POINTER :: para_env
TYPE(section_vals_type), POINTER :: metadyn_section
REAL(KIND=dp), POINTER :: time => NULL()
TYPE(hills_env_type), POINTER :: hills_env => NULL()
TYPE(metavar_type), POINTER, DIMENSION(:) :: metavar => NULL()
TYPE(multiple_walkers_type), POINTER :: multiple_walkers => NULL()
TYPE(mp_para_env_type), POINTER :: para_env => NULL()
TYPE(section_vals_type), POINTER :: metadyn_section => NULL()
TYPE(rng_stream_type), DIMENSION(:), &
ALLOCATABLE :: rng
INTEGER :: TAMCSteps
REAL(kind=dp) :: zdt
INTEGER :: TAMCSteps = -1
REAL(kind=dp) :: zdt = 0.0_dp
END TYPE meta_env_type
CONTAINS

View file

@ -64,13 +64,13 @@ MODULE mixed_cdft_types
! **************************************************************************************************
TYPE mixed_cdft_work_type
! Matrix representations of the CDFT weight functions
TYPE(dbcsr_p_type), DIMENSION(:, :), POINTER :: w_matrix
TYPE(dbcsr_p_type), DIMENSION(:, :), POINTER :: w_matrix => NULL()
! AO overlap matrix
TYPE(dbcsr_type), POINTER :: mixed_matrix_s
TYPE(dbcsr_type), POINTER :: mixed_matrix_s => NULL()
! MO coefficients of each CDFT state
TYPE(cp_fm_type), DIMENSION(:, :), POINTER :: mixed_mo_coeff
TYPE(cp_fm_type), DIMENSION(:, :), POINTER :: mixed_mo_coeff => NULL()
! Density matrices of the CDFT states
TYPE(dbcsr_p_type), DIMENSION(:, :), POINTER :: density_matrix
TYPE(dbcsr_p_type), DIMENSION(:, :), POINTER :: density_matrix => NULL()
END TYPE mixed_cdft_work_type
! **************************************************************************************************
@ -82,18 +82,18 @@ MODULE mixed_cdft_types
!> \param gradients the gradients to send
! **************************************************************************************************
TYPE buffers
INTEGER :: rank(2), tag(2)
INTEGER :: rank(2) = -1, tag(2) = -1
REAL(KIND=dp), POINTER, &
DIMENSION(:, :, :) :: cavity, weight
DIMENSION(:, :, :) :: cavity => NULL(), weight => NULL()
REAL(KIND=dp), POINTER, &
DIMENSION(:, :, :, :) :: gradients
DIMENSION(:, :, :, :) :: gradients => NULL()
END TYPE buffers
! **************************************************************************************************
!> \brief To build array of buffers
!> \param buffs the pointer to the buffers type
! **************************************************************************************************
TYPE p_buffers
TYPE(buffers), DIMENSION(:), POINTER :: buffs
TYPE(buffers), DIMENSION(:), POINTER :: buffs => NULL()
END TYPE p_buffers
! **************************************************************************************************
!> \brief Information about load balancing
@ -101,8 +101,8 @@ MODULE mixed_cdft_types
!> \param target_list the target_list array of the processor that sends me data
! **************************************************************************************************
TYPE repl_info
INTEGER, DIMENSION(:), POINTER :: matrix_info
INTEGER, DIMENSION(:, :), POINTER :: target_list
INTEGER, DIMENSION(:), POINTER :: matrix_info => NULL()
INTEGER, DIMENSION(:, :), POINTER :: target_list => NULL()
END TYPE repl_info
! **************************************************************************************************
!> \brief Load balancing control for mixed CDFT calculation
@ -134,23 +134,23 @@ MODULE mixed_cdft_types
!> \param recv_info additional information on the data this processor will receive
! **************************************************************************************************
TYPE mixed_cdft_dlb_type
INTEGER :: my_source, distributed(2), &
my_dest_repl(2), dest_tags_repl(2), &
more_work
INTEGER, DIMENSION(:), POINTER :: bo, expected_work, &
prediction_error
INTEGER, DIMENSION(:, :), POINTER :: target_list
LOGICAL :: recv_work, send_work
LOGICAL, DIMENSION(:), POINTER :: recv_work_repl
REAL(KIND=dp) :: load_scale, very_overloaded
INTEGER :: my_source = -1, distributed(2) = -1, &
my_dest_repl(2) = -1, dest_tags_repl(2) = -1, &
more_work = -1
INTEGER, DIMENSION(:), POINTER :: bo => NULL(), expected_work => NULL(), &
prediction_error => NULL()
INTEGER, DIMENSION(:, :), POINTER :: target_list => NULL()
LOGICAL :: recv_work = .FALSE., send_work = .FALSE.
LOGICAL, DIMENSION(:), POINTER :: recv_work_repl => NULL()
REAL(KIND=dp) :: load_scale = 0.0_dp, very_overloaded = 0.0_dp
REAL(KIND=dp), POINTER, &
DIMENSION(:, :, :) :: cavity, weight
DIMENSION(:, :, :) :: cavity => NULL(), weight => NULL()
REAL(KIND=dp), POINTER, &
DIMENSION(:, :, :, :) :: gradients
DIMENSION(:, :, :, :) :: gradients => NULL()
! Should convert to TYPE(p_buffers), POINTER
TYPE(buffers), DIMENSION(:), POINTER :: sendbuff
TYPE(p_buffers), DIMENSION(:), POINTER :: recvbuff
TYPE(repl_info), DIMENSION(:), POINTER :: recv_info
TYPE(buffers), DIMENSION(:), POINTER :: sendbuff => NULL()
TYPE(p_buffers), DIMENSION(:), POINTER :: recvbuff => NULL()
TYPE(repl_info), DIMENSION(:), POINTER :: recv_info => NULL()
END TYPE mixed_cdft_dlb_type
! **************************************************************************************************
!> \brief Main mixed CDFT control type
@ -202,65 +202,65 @@ MODULE mixed_cdft_types
!> \param occupations occupation numbers in case non-uniform occupation
! **************************************************************************************************
TYPE mixed_cdft_type
INTEGER :: sim_step, multiplicity, &
nconstraint, &
run_type
INTEGER :: sim_step = -1, multiplicity = -1, &
nconstraint = -1, &
run_type = -1
INTEGER, DIMENSION(:, :), ALLOCATABLE :: constraint_type
INTEGER, POINTER, DIMENSION(:) :: source_list, dest_list, &
recv_bo, source_list_save, &
dest_list_save
INTEGER, POINTER, DIMENSION(:, :) :: source_list_bo, dest_list_bo, &
source_bo_save, dest_bo_save
LOGICAL :: is_pencil, dlb, &
is_special, first_iteration, &
calculate_metric, &
wfn_overlap_method, &
has_unit_metric, &
use_lowdin, &
do_ci, nonortho_coupling, &
identical_constraints, &
block_diagonalize
REAL(KIND=dp) :: eps_rho_rspace, sim_dt, &
eps_svd
REAL(KIND=dp), POINTER, DIMENSION(:, :, :) :: weight, cavity
TYPE(cdft_control_type), POINTER :: cdft_control
TYPE(buffers), DIMENSION(:), POINTER :: sendbuff
INTEGER, POINTER, DIMENSION(:) :: source_list => NULL(), dest_list => NULL(), &
recv_bo => NULL(), source_list_save => NULL(), &
dest_list_save => NULL()
INTEGER, POINTER, DIMENSION(:, :) :: source_list_bo => NULL(), dest_list_bo => NULL(), &
source_bo_save => NULL(), dest_bo_save => NULL()
LOGICAL :: is_pencil = .FALSE., dlb = .FALSE., &
is_special = .FALSE., first_iteration = .FALSE., &
calculate_metric = .FALSE., &
wfn_overlap_method = .FALSE., &
has_unit_metric = .FALSE., &
use_lowdin = .FALSE., &
do_ci = .FALSE., nonortho_coupling = .FALSE., &
identical_constraints = .FALSE., &
block_diagonalize = .FALSE.
REAL(KIND=dp) :: eps_rho_rspace = 0.0_dp, sim_dt = 0.0_dp, &
eps_svd = 0.0_dp
REAL(KIND=dp), POINTER, DIMENSION(:, :, :) :: weight => NULL(), cavity => NULL()
TYPE(cdft_control_type), POINTER :: cdft_control => NULL()
TYPE(buffers), DIMENSION(:), POINTER :: sendbuff => NULL()
TYPE(cp_1d_r_p_type), ALLOCATABLE, &
DIMENSION(:, :) :: occupations
TYPE(cp_blacs_env_type), POINTER :: blacs_env
TYPE(cp_logger_p_type), DIMENSION(:), POINTER :: sub_logger
TYPE(mixed_cdft_result_type) :: results
TYPE(mixed_cdft_work_type) :: matrix
TYPE(mixed_cdft_dlb_type), POINTER :: dlb_control
TYPE(pw_env_type), POINTER :: pw_env
TYPE(cp_blacs_env_type), POINTER :: blacs_env => NULL()
TYPE(cp_logger_p_type), DIMENSION(:), POINTER :: sub_logger => NULL()
TYPE(mixed_cdft_result_type) :: results = mixed_cdft_result_type()
TYPE(mixed_cdft_work_type) :: matrix = mixed_cdft_work_type()
TYPE(mixed_cdft_dlb_type), POINTER :: dlb_control => NULL()
TYPE(pw_env_type), POINTER :: pw_env => NULL()
TYPE(qs_kind_type), DIMENSION(:), &
POINTER :: qs_kind_set
POINTER :: qs_kind_set => NULL()
END TYPE mixed_cdft_type
! **************************************************************************************************
!> \brief Container for constraint settings to check consistency of force_evals
! **************************************************************************************************
TYPE mixed_cdft_settings_type
LOGICAL :: is_spherical, &
is_odd
LOGICAL, DIMENSION(:, :), POINTER :: sb
INTEGER :: ncdft, &
max_nkinds
INTEGER, DIMENSION(2, 3) :: bo
INTEGER, DIMENSION(:), POINTER :: grid_span, &
spherical, &
odd
INTEGER, DIMENSION(:, :), POINTER :: si, &
rs_dims, &
atoms, &
npts
REAL(KIND=dp) :: radius
REAL(KIND=dp), DIMENSION(:), POINTER :: cutoff, &
rel_cutoff
REAL(KIND=dp), DIMENSION(:, :), POINTER :: sr, &
coeffs, &
cutoffs, &
radii
LOGICAL :: is_spherical = .FALSE., &
is_odd = .FALSE.
LOGICAL, DIMENSION(:, :), POINTER :: sb => NULL()
INTEGER :: ncdft = -1, &
max_nkinds = -1
INTEGER, DIMENSION(2, 3) :: bo = -1
INTEGER, DIMENSION(:), POINTER :: grid_span => NULL(), &
spherical => NULL(), &
odd => NULL()
INTEGER, DIMENSION(:, :), POINTER :: si => NULL(), &
rs_dims => NULL(), &
atoms => NULL(), &
npts => NULL()
REAL(KIND=dp) :: radius = 0.0_dp
REAL(KIND=dp), DIMENSION(:), POINTER :: cutoff => NULL(), &
rel_cutoff => NULL()
REAL(KIND=dp), DIMENSION(:, :), POINTER :: sr => NULL(), &
coeffs => NULL(), &
cutoffs => NULL(), &
radii => NULL()
END TYPE mixed_cdft_settings_type
! *** Public data types ***

View file

@ -20,13 +20,13 @@ MODULE mixed_energy_types
! **************************************************************************************************
TYPE mixed_energy_type
REAL(kind=dp) :: pot
REAL(kind=dp) :: kin
REAL(kind=dp) :: pot = 0.0_dp
REAL(kind=dp) :: kin = 0.0_dp
END TYPE mixed_energy_type
! **************************************************************************************************
TYPE mixed_force_type
REAL(KIND=dp), DIMENSION(:, :), POINTER :: forces
REAL(KIND=dp), DIMENSION(:, :), POINTER :: forces => NULL()
END TYPE mixed_force_type
! Public data types

View file

@ -27,8 +27,8 @@ MODULE mm_mapping_library
! **************************************************************************************************
TYPE ff_map_type
CHARACTER(LEN=default_string_length), DIMENSION(:), POINTER :: kind
CHARACTER(LEN=default_string_length), DIMENSION(:), POINTER :: element
CHARACTER(LEN=default_string_length), DIMENSION(:), POINTER :: kind => NULL()
CHARACTER(LEN=default_string_length), DIMENSION(:), POINTER :: element => NULL()
END TYPE ff_map_type
TYPE(ff_map_type), POINTER, PUBLIC :: amber_map, &

View file

@ -60,25 +60,25 @@ MODULE mode_selective
LOGICAL, PARAMETER :: debug_this_module = .FALSE.
TYPE ms_vib_type
INTEGER :: mat_size
INTEGER :: select_id
INTEGER, DIMENSION(:), POINTER :: inv_atoms
REAL(KIND=dp) :: eps(2)
REAL(KIND=dp) :: sel_freq
REAL(KIND=dp) :: low_freq
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: b_vec
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: delta_vec
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: ms_force
REAL(KIND=dp), DIMENSION(:), POINTER :: eig_bfgs
REAL(KIND=dp), DIMENSION(:), POINTER :: f_range
REAL(KIND=dp), DIMENSION(:), POINTER :: inv_range
REAL(KIND=dp), POINTER, DIMENSION(:) :: step_b
REAL(KIND=dp), POINTER, DIMENSION(:) :: step_r
REAL(KIND=dp), DIMENSION(:, :), POINTER :: b_mat
REAL(KIND=dp), DIMENSION(:, :), POINTER :: dip_deriv
REAL(KIND=dp), DIMENSION(:, :), POINTER :: hes_bfgs
REAL(KIND=dp), DIMENSION(:, :), POINTER :: s_mat
INTEGER :: initial_guess
INTEGER :: mat_size = -1
INTEGER :: select_id = -1
INTEGER, DIMENSION(:), POINTER :: inv_atoms => NULL()
REAL(KIND=dp) :: eps(2) = 0.0_dp
REAL(KIND=dp) :: sel_freq = 0.0_dp
REAL(KIND=dp) :: low_freq = 0.0_dp
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: b_vec => NULL()
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: delta_vec => NULL()
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: ms_force => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: eig_bfgs => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: f_range => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: inv_range => NULL()
REAL(KIND=dp), POINTER, DIMENSION(:) :: step_b => NULL()
REAL(KIND=dp), POINTER, DIMENSION(:) :: step_r => NULL()
REAL(KIND=dp), DIMENSION(:, :), POINTER :: b_mat => NULL()
REAL(KIND=dp), DIMENSION(:, :), POINTER :: dip_deriv => NULL()
REAL(KIND=dp), DIMENSION(:, :), POINTER :: hes_bfgs => NULL()
REAL(KIND=dp), DIMENSION(:, :), POINTER :: s_mat => NULL()
INTEGER :: initial_guess = -1
END TYPE ms_vib_type
PUBLIC :: ms_vb_anal

View file

@ -92,23 +92,26 @@ MODULE molsym
!> \author jgh
! **************************************************************************************************
TYPE molsym_type
CHARACTER(LEN=4) :: point_group_symbol
INTEGER :: point_group_order
INTEGER :: ncn, ndod, ngroup, nico, nlin, nsig, nsn, ntet
LOGICAL :: cubic, dgroup, igroup, invers, linear, maxis, &
ogroup, sgroup, sigmad, sigmah, sigmav, tgroup
REAL(KIND=dp) :: eps_geo
REAL(KIND=dp), DIMENSION(3) :: center_of_mass, tenval
REAL(KIND=dp), DIMENSION(3) :: x_axis, y_axis, z_axis
REAL(KIND=dp), DIMENSION(:), POINTER :: ain, aw
REAL(KIND=dp), DIMENSION(3, 3) :: inptostd, rotmat, tenmat, tenvec
REAL(KIND=dp), DIMENSION(3, maxsig) :: sig
REAL(KIND=dp), DIMENSION(3, maxsec, 2:maxcn) :: sec
REAL(KIND=dp), DIMENSION(3, maxses, 2:maxsn) :: ses
INTEGER, DIMENSION(maxcn) :: nsec
INTEGER, DIMENSION(maxsn) :: nses
INTEGER, DIMENSION(:), POINTER :: group_of, llequatom, nequatom, &
symequ_list, ulequatom
CHARACTER(LEN=4) :: point_group_symbol = ""
INTEGER :: point_group_order = -1
INTEGER :: ncn = -1, ndod = -1, ngroup = -1, nico = -1, &
nlin = -1, nsig = -1, nsn = -1, ntet = -1
LOGICAL :: cubic = .FALSE., dgroup = .FALSE., igroup = .FALSE., &
invers = .FALSE., linear = .FALSE., maxis = .FALSE., &
ogroup = .FALSE., sgroup = .FALSE., sigmad = .FALSE., &
sigmah = .FALSE., sigmav = .FALSE., tgroup = .FALSE.
REAL(KIND=dp) :: eps_geo = 0.0_dp
REAL(KIND=dp), DIMENSION(3) :: center_of_mass = 0.0_dp, tenval = 0.0_dp
REAL(KIND=dp), DIMENSION(3) :: x_axis = 0.0_dp, y_axis = 0.0_dp, z_axis = 0.0_dp
REAL(KIND=dp), DIMENSION(:), POINTER :: ain => NULL(), aw => NULL()
REAL(KIND=dp), DIMENSION(3, 3) :: inptostd = 0.0_dp, rotmat = 0.0_dp, tenmat = 0.0_dp, tenvec = 0.0_dp
REAL(KIND=dp), DIMENSION(3, maxsig) :: sig = 0.0_dp
REAL(KIND=dp), DIMENSION(3, maxsec, 2:maxcn) :: sec = 0.0_dp
REAL(KIND=dp), DIMENSION(3, maxses, 2:maxsn) :: ses = 0.0_dp
INTEGER, DIMENSION(maxcn) :: nsec = -1
INTEGER, DIMENSION(maxsn) :: nses = -1
INTEGER, DIMENSION(:), POINTER :: group_of => NULL(), llequatom => NULL(), nequatom => NULL(), &
symequ_list => NULL(), ulequatom => NULL()
END TYPE molsym_type
! **************************************************************************************************

View file

@ -60,28 +60,28 @@ MODULE integrator_utils
! **************************************************************************************************
TYPE old_variables_type
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: v
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: r
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: eps
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: veps
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: h
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: v => NULL()
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: r => NULL()
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: eps => NULL()
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: veps => NULL()
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: h => NULL()
END TYPE old_variables_type
! **************************************************************************************************
TYPE tmp_variables_type
INTEGER, POINTER :: itimes
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: pos
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: vel
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: shell_pos
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: shell_vel
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: core_pos
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: core_vel
REAL(KIND=dp) :: max_vel, max_vel_sc
REAL(KIND=dp) :: max_dvel, max_dvel_sc
REAL(KIND=dp) :: max_dr, max_dsc
REAL(KIND=dp) :: arg_r(3), arg_v(3), u(3, 3), e_val(3), s, ds
REAL(KIND=dp), DIMENSION(3) :: poly_r, &
poly_v, scale_r, scale_v
INTEGER, POINTER :: itimes => NULL()
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: pos => NULL()
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: vel => NULL()
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: shell_pos => NULL()
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: shell_vel => NULL()
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: core_pos => NULL()
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: core_vel => NULL()
REAL(KIND=dp) :: max_vel = 0.0_dp, max_vel_sc = 0.0_dp
REAL(KIND=dp) :: max_dvel = 0.0_dp, max_dvel_sc = 0.0_dp
REAL(KIND=dp) :: max_dr = 0.0_dp, max_dsc = 0.0_dp
REAL(KIND=dp) :: arg_r(3) = 0.0_dp, arg_v(3) = 0.0_dp, u(3, 3) = 0.0_dp, e_val(3) = 0.0_dp, s = 0.0_dp, ds = 0.0_dp
REAL(KIND=dp), DIMENSION(3) :: poly_r = 0.0_dp, &
poly_v = 0.0_dp, scale_r = 0.0_dp, scale_v = 0.0_dp
END TYPE tmp_variables_type
INTERFACE set

View file

@ -42,11 +42,11 @@ MODULE mscfg_types
TYPE molecular_scf_guess_env_type
! Useful flags to pass around
LOGICAL :: is_fast_dirty, &
is_crystal
LOGICAL :: is_fast_dirty = .FALSE., &
is_crystal = .FALSE.
! Real data
INTEGER :: nfrags
INTEGER :: nfrags = -1
REAL(KIND=dp), DIMENSION(:), ALLOCATABLE :: energy_of_frag
INTEGER, DIMENSION(:), ALLOCATABLE :: nmosets_of_frag
TYPE(dbcsr_type), DIMENSION(:, :), ALLOCATABLE :: mos_of_frag

View file

@ -37,9 +37,9 @@ MODULE negf_atom_map
! **************************************************************************************************
TYPE negf_atom_map_type
!> atomic index within the target FORCE_EVAL
INTEGER :: iatom
INTEGER :: iatom = -1
!> cell replica
INTEGER, DIMENSION(3) :: cell
INTEGER, DIMENSION(3) :: cell = -1
END TYPE negf_atom_map_type
PRIVATE :: qs_kind_group_type, qs_kind_groups_create, qs_kind_groups_release
@ -49,11 +49,11 @@ MODULE negf_atom_map
! **************************************************************************************************
TYPE qs_kind_group_type
!> atomic symbol
CHARACTER(len=2) :: element_symbol
CHARACTER(len=2) :: element_symbol = ""
!> number of atoms of this kind in 'atom_list'
INTEGER :: natoms
INTEGER :: natoms = -1
!> number of spherical Gaussian functions per atom
INTEGER :: nsgf
INTEGER :: nsgf = -1
!> list of atomic indices
INTEGER, ALLOCATABLE, DIMENSION(:) :: atom_list
!> atomic coordinates [3 x natoms]

View file

@ -51,18 +51,18 @@ MODULE negf_control_types
TYPE(negf_allocatable_ivector), ALLOCATABLE, &
DIMENSION(:) :: atomlist_cell
!> index of the sub_force_env which should be used for bulk calculation
INTEGER :: force_env_index
INTEGER :: force_env_index = -1
!> contact Fermi level needs to be computed prior NEGF run
LOGICAL :: compute_fermi_level
LOGICAL :: compute_fermi_level = .FALSE.
!> when computing contact Fermi level, use the energy given in 'fermi_level' (instead of HOMO)
!> (instead of the HOMO energy) as a starting point
LOGICAL :: refine_fermi_level
LOGICAL :: refine_fermi_level = .FALSE.
!> Fermi level
REAL(kind=dp) :: fermi_level
REAL(kind=dp) :: fermi_level = -1.0_dp
!> temperature [in a.u.]
REAL(kind=dp) :: temperature
REAL(kind=dp) :: temperature = -1.0_dp
!> applied electric potential
REAL(kind=dp) :: v_external
REAL(kind=dp) :: v_external = 0.0_dp
END TYPE negf_control_contact_type
! **************************************************************************************************
@ -79,43 +79,43 @@ MODULE negf_control_types
!> screening regions of all the contacts
INTEGER, ALLOCATABLE, DIMENSION(:) :: atomlist_S_screening
!> do not keep contact self-energy matrices
LOGICAL :: disable_cache
LOGICAL :: disable_cache = .FALSE.
!> convergence criteria for adaptive integration methods
REAL(kind=dp) :: conv_density
REAL(kind=dp) :: conv_density = -1.0_dp
!> convergence criteria for iterative Lopez-Sancho algorithm
REAL(kind=dp) :: conv_green
REAL(kind=dp) :: conv_green = -1.0_dp
!> convergence criteria for self-consistent iterations
REAL(kind=dp) :: conv_scf
REAL(kind=dp) :: conv_scf = -1.0_dp
!> accuracy in mapping atoms between different force environments
REAL(kind=dp) :: eps_geometry
REAL(kind=dp) :: eps_geometry = -1.0_dp
!> applied bias [in a.u.]
REAL(kind=dp) :: v_bias
REAL(kind=dp) :: v_bias = -1.0_dp
!> integration lower bound [in a.u.]
REAL(kind=dp) :: energy_lbound
REAL(kind=dp) :: energy_lbound = -1.0_dp
!> infinitesimal offset along the imaginary axis [in a.u.]
REAL(kind=dp) :: eta
REAL(kind=dp) :: eta = -1.0_dp
!> initial guess to determine the actual Fermi level of bulk contacts [in a.u.]
REAL(kind=dp) :: homo_lumo_gap
REAL(kind=dp) :: homo_lumo_gap = -1.0_dp
!> number of residuals (poles of the Fermi function)
INTEGER :: delta_npoles
INTEGER :: delta_npoles = -1
!> offset along the x-axis away from the poles of the Fermi function [in units of kT]
INTEGER :: gamma_kT
INTEGER :: gamma_kT = -1
!> integration method
INTEGER :: integr_method
INTEGER :: integr_method = -1
!> minimal number of grid points along the closed contour
INTEGER :: integr_min_points
INTEGER :: integr_min_points = -1
!> maximal number of grid points along the closed contour
INTEGER :: integr_max_points
INTEGER :: integr_max_points = -1
!> maximal number of SCF iterations
INTEGER :: max_scf
INTEGER :: max_scf = -1
!> minimal number of MPI processes to be used to compute Green's function per energy point
INTEGER :: nprocs
INTEGER :: nprocs = -1
!> shift in Hartree potential [in a.u.]
REAL(kind=dp) :: v_shift
REAL(kind=dp) :: v_shift = -1.0_dp
!> initial offset to determine the correct shift in Hartree potential [in a.u.]
REAL(kind=dp) :: v_shift_offset
REAL(kind=dp) :: v_shift_offset = -1.0_dp
!> maximal number of iteration to determine the shift in Hartree potential
INTEGER :: v_shift_maxiters
INTEGER :: v_shift_maxiters = -1
END TYPE negf_control_type
PRIVATE :: read_negf_atomlist

View file

@ -85,11 +85,11 @@ MODULE negf_env_types
!> \author Sergey Chulkov
! **************************************************************************************************
TYPE negf_env_contact_type
REAL(kind=dp), DIMENSION(3) :: direction_vector, origin
REAL(kind=dp), DIMENSION(3) :: direction_vector_bias, origin_bias
REAL(kind=dp), DIMENSION(3) :: direction_vector = -1.0_dp, origin = -1.0_dp
REAL(kind=dp), DIMENSION(3) :: direction_vector_bias = -1.0_dp, origin_bias = -1.0_dp
!> an axis towards the secondary contact unit cell which coincides with the transport direction
!> 0 (undefined), 1 (+x), 2 (+y), 3 (+z), -1 (-x), -2 (-y), -3 (-z)
INTEGER :: direction_axis
INTEGER :: direction_axis = -1
!> atoms belonging to a primary contact unit cell
INTEGER, ALLOCATABLE, DIMENSION(:) :: atomlist_cell0
!> atoms belonging to a secondary contact unit cell (will be removed one day ...)
@ -98,7 +98,7 @@ MODULE negf_env_types
TYPE(negf_atom_map_type), ALLOCATABLE, &
DIMENSION(:) :: atom_map_cell0, atom_map_cell1
!> energy of the HOMO
REAL(kind=dp) :: homo_energy
REAL(kind=dp) :: homo_energy = -1.0_dp
!> diagonal (h_00) and off-diagonal (h_01) blocks of the contact Kohn-Sham matrix ([number_of_spins]).
!> The matrix h_01 is of the shape [nao_cell0 x nao_cell1]
TYPE(cp_fm_type), ALLOCATABLE, DIMENSION(:) :: h_00, h_01
@ -127,9 +127,9 @@ MODULE negf_env_types
!> overlap matrix of the scattering region -- contact interface for every contact ([ncontacts])
TYPE(cp_fm_type), ALLOCATABLE, DIMENSION(:) :: s_sc
!> structure needed for density mixing
TYPE(mixing_storage_type), POINTER :: mixing_storage
TYPE(mixing_storage_type), POINTER :: mixing_storage => NULL()
!> density mixing method
INTEGER :: mixing_method
INTEGER :: mixing_method = -1
END TYPE negf_env_type
! **************************************************************************************************

View file

@ -45,21 +45,21 @@ MODULE negf_green_methods
TYPE sancho_work_matrices_type
! A_{n+1} = A_n + D_n + E_n
TYPE(cp_cfm_type), POINTER :: a
TYPE(cp_cfm_type), POINTER :: a => NULL()
! A0_{n+1} = A0_n + D_n
TYPE(cp_cfm_type), POINTER :: a0
TYPE(cp_cfm_type), POINTER :: a0 => NULL()
! A_inv = A^-1
TYPE(cp_cfm_type), POINTER :: a_inv
TYPE(cp_cfm_type), POINTER :: a_inv => NULL()
! B_{n+1} = - B_n A_n^-1 B_n \equiv B_n A_n^-1 B_n
TYPE(cp_cfm_type), POINTER :: b
TYPE(cp_cfm_type), POINTER :: b => NULL()
! C_{n+1} = - C_n A_n^-1 C_n \equiv C_n A_n^-1 C_n
TYPE(cp_cfm_type), POINTER :: c
TYPE(cp_cfm_type), POINTER :: c => NULL()
! D_n = - B_n A_n^-1 C_n
TYPE(cp_cfm_type), POINTER :: d
TYPE(cp_cfm_type), POINTER :: d => NULL()
! E_n = - C_n A_n^-1 B_n
TYPE(cp_cfm_type), POINTER :: e
TYPE(cp_cfm_type), POINTER :: e => NULL()
! a scratch area for matrix multiplication
TYPE(cp_cfm_type), POINTER :: scratch
TYPE(cp_cfm_type), POINTER :: scratch => NULL()
END TYPE sancho_work_matrices_type
CONTAINS

View file

@ -31,7 +31,8 @@ MODULE negf_integr_cc
USE kahan_sum, ONLY: accurate_sum
USE kinds, ONLY: dp,&
int_8
USE mathconstants, ONLY: z_one
USE mathconstants, ONLY: z_one,&
z_zero
USE negf_integr_utils, ONLY: contour_shape_arc,&
contour_shape_linear,&
equidistant_nodes_a_b,&
@ -64,23 +65,23 @@ MODULE negf_integr_cc
! **************************************************************************************************
TYPE ccquad_type
!> integration lower and upper bounds
COMPLEX(kind=dp) :: a, b
COMPLEX(kind=dp) :: a = z_zero, b = z_zero
!> integration interval:
!> cc_interval_full -- [a .. b],
!> grid density: 'a' .. . . . . . .. 'b';
!> cc_interval_half -- [a .. 2b-a], assuming int_{b}^{2b-a} f(x) dx = 0,
!> grid density: 'a' .. . . . 'b'
INTEGER :: interval_id
INTEGER :: interval_id = -1
!> integration shape
INTEGER :: shape_id
INTEGER :: shape_id = -1
!> estimated error
REAL(kind=dp) :: error
REAL(kind=dp) :: error = -1.0_dp
!> approximate integral value
TYPE(cp_cfm_type), POINTER :: integral
TYPE(cp_cfm_type), POINTER :: integral => NULL()
!> error estimate for every element of the 'integral' matrix
TYPE(cp_fm_type), POINTER :: error_fm
TYPE(cp_fm_type), POINTER :: error_fm => NULL()
!> weights associated with matrix elements; the 'error' variable contains the value Trace(error_fm * weights)
TYPE(cp_fm_type), POINTER :: weights
TYPE(cp_fm_type), POINTER :: weights => NULL()
!> integrand value at grid points. Due to symmetry of Clenshaw-Curtis quadratures,
!> we only need to keep the left half-interval
TYPE(cp_cfm_type), ALLOCATABLE, DIMENSION(:) :: zdata_cache

View file

@ -54,13 +54,14 @@ MODULE negf_integr_simpson
! **************************************************************************************************
TYPE simpsonrule_subinterval_type
!> unscaled lower and upper boundaries within the interval [-1 .. 1]
REAL(kind=dp) :: lb, ub
REAL(kind=dp) :: lb = -1.0_dp, ub = -1.0_dp
!> target accuracy for this sub-interval
REAL(kind=dp) :: conv
REAL(kind=dp) :: conv = -1.0_dp
!> estimated error value on this sub-interval
REAL(kind=dp) :: error
REAL(kind=dp) :: error = -1.0_dp
!> integrand values at equally spaced points [a, b, c, d, e] located on the curve shape([lb .. ub])
TYPE(cp_cfm_type) :: fa, fb, fc, fd, fe
TYPE(cp_cfm_type) :: fa = cp_cfm_type(), fb = cp_cfm_type(), fc = cp_cfm_type(), &
fd = cp_cfm_type(), fe = cp_cfm_type()
END TYPE simpsonrule_subinterval_type
! **************************************************************************************************
@ -68,24 +69,24 @@ MODULE negf_integr_simpson
! **************************************************************************************************
TYPE simpsonrule_type
!> lower and upper boundaries of the curve on the complex plane
COMPLEX(kind=dp) :: a, b
COMPLEX(kind=dp) :: a = z_zero, b = z_zero
!> ID number which determines the shape of a curve along which the integral will be evaluated
INTEGER :: shape_id
INTEGER :: shape_id = -1
!> target accuracy
REAL(kind=dp) :: conv
REAL(kind=dp) :: conv = -1.0_dp
!> estimated error value on the entire integration interval,
!> as well as on converged sub-intervals only
REAL(kind=dp) :: error, error_conv
REAL(kind=dp) :: error = -1.0_dp, error_conv = -1.0_dp
!> the estimated value of the integral on the entire interval
TYPE(cp_cfm_type), POINTER :: integral
TYPE(cp_cfm_type), POINTER :: integral => NULL()
!> work matrix to store the contribution to the integral on converged sub-intervals
TYPE(cp_cfm_type), POINTER :: integral_conv
TYPE(cp_cfm_type), POINTER :: integral_conv => NULL()
!> work matrices which stores approximated integral computed by using a/b/c, c/d/e, and a/c/e points respectively
TYPE(cp_cfm_type), POINTER :: integral_abc, integral_cde, integral_ace
TYPE(cp_cfm_type), POINTER :: integral_abc => NULL(), integral_cde => NULL(), integral_ace => NULL()
!> work matrix to temporarily store error estimate of the integral on a sub-interval for every matrix element
TYPE(cp_fm_type), POINTER :: error_fm
TYPE(cp_fm_type), POINTER :: error_fm => NULL()
!> weights associated with matrix elements; the final error is computed as Trace(error_fm * weights)
TYPE(cp_fm_type), POINTER :: weights
TYPE(cp_fm_type), POINTER :: weights => NULL()
! non-converged sub-intervals
TYPE(simpsonrule_subinterval_type), ALLOCATABLE, &
DIMENSION(:) :: subintervals

View file

@ -140,8 +140,8 @@ MODULE negf_methods
!> \author Sergey Chulkov
! **************************************************************************************************
TYPE integration_status_type
INTEGER :: npoints
REAL(kind=dp) :: error
INTEGER :: npoints = -1
REAL(kind=dp) :: error = -1.0_dp
END TYPE integration_status_type
CONTAINS
@ -265,7 +265,6 @@ CONTAINS
END DO
IF (ncontacts > 1) THEN
NULLIFY (qs_env)
CALL force_env_get(force_env, qs_env=qs_env)
CALL shift_potential(negf_env, negf_control, sub_env, qs_env, base_contact=1, log_unit=log_unit)
@ -1309,7 +1308,6 @@ CONTAINS
CALL timeset(routineN, handle)
npoints = SIZE(omega)
NULLIFY (fm_struct)
CALL cp_fm_get_info(s0, matrix_struct=fm_struct)
CALL sancho_work_matrices_create(work, fm_struct)

View file

@ -85,32 +85,32 @@ MODULE nnp_environment_types
TYPE(nnp_acsf_ang_type), DIMENSION(:), POINTER :: ang => NULL() ! DIM(n_ele)
INTEGER, DIMENSION(:), ALLOCATABLE :: n_rad ! # radial symfnct for this element
INTEGER, DIMENSION(:), ALLOCATABLE :: n_ang ! # angular symfnct for this element
INTEGER :: n_ele ! # elements
INTEGER :: n_ele = -1 ! # elements
CHARACTER(len=2), ALLOCATABLE, DIMENSION(:) :: ele ! elements(n_ele)
INTEGER, ALLOCATABLE, DIMENSION(:) :: nuc_ele ! elements(n_ele)
LOGICAL :: scale_acsf
LOGICAL :: scale_sigma_acsf
LOGICAL :: center_acsf
LOGICAL :: normnodes
INTEGER :: n_radgrp
INTEGER :: n_anggrp
INTEGER :: cut_type ! cutofftype
REAL(KIND=dp) :: eshortmin
REAL(KIND=dp) :: eshortmax
REAL(KIND=dp) :: scmax !scale
REAL(KIND=dp) :: scmin !scale
REAL(KIND=dp) :: max_cut !largest cutoff
LOGICAL :: scale_acsf = .FALSE.
LOGICAL :: scale_sigma_acsf = .FALSE.
LOGICAL :: center_acsf = .FALSE.
LOGICAL :: normnodes = .FALSE.
INTEGER :: n_radgrp = -1
INTEGER :: n_anggrp = -1
INTEGER :: cut_type = -1 ! cutofftype
REAL(KIND=dp) :: eshortmin = -1.0_dp
REAL(KIND=dp) :: eshortmax = -1.0_dp
REAL(KIND=dp) :: scmax = -1.0_dp !scale
REAL(KIND=dp) :: scmin = -1.0_dp !scale
REAL(KIND=dp) :: max_cut = -1.0_dp !largest cutoff
REAL(KIND=dp), ALLOCATABLE, DIMENSION(:) :: atom_energies !DIM(n_ele)
TYPE(nnp_arc_type), POINTER, DIMENSION(:) :: arc => NULL() ! DIM(n_ele)
INTEGER :: n_committee
INTEGER :: n_hlayer
INTEGER :: n_layer
INTEGER :: n_committee = -1
INTEGER :: n_hlayer = -1
INTEGER :: n_layer = -1
INTEGER, ALLOCATABLE, DIMENSION(:) :: n_hnodes
INTEGER, ALLOCATABLE, DIMENSION(:) :: actfnct
INTEGER :: expol ! extrapolation coutner
LOGICAL :: output_expol ! output extrapolation
INTEGER :: expol = -1 ! extrapolation coutner
LOGICAL :: output_expol = .FALSE. ! output extrapolation
! structures for calculation
INTEGER :: num_atoms
INTEGER :: num_atoms = -1
REAL(KIND=dp), ALLOCATABLE, DIMENSION(:, :) :: atomic_energy
REAL(KIND=dp), ALLOCATABLE, DIMENSION(:) :: committee_energy
INTEGER, ALLOCATABLE, DIMENSION(:) :: ele_ind, nuc_atoms, sort, sort_inv
@ -120,7 +120,7 @@ MODULE nnp_environment_types
CHARACTER(len=default_string_length), &
ALLOCATABLE, DIMENSION(:) :: atoms
REAL(KIND=dp), DIMENSION(:, :), ALLOCATABLE :: nnp_forces
REAL(KIND=dp) :: nnp_potential_energy
REAL(KIND=dp) :: nnp_potential_energy = -1.0_dp
TYPE(cp_subsys_type), POINTER :: subsys => NULL()
TYPE(section_vals_type), POINTER :: nnp_input => NULL()
TYPE(section_vals_type), POINTER :: force_env_input => NULL()
@ -128,12 +128,12 @@ MODULE nnp_environment_types
TYPE(cell_type), POINTER :: cell_ref => NULL()
LOGICAL :: use_ref_cell = .FALSE.
! bias
LOGICAL :: bias
LOGICAL :: bias_align
REAL(KIND=dp) :: bias_energy
REAL(KIND=dp) :: bias_kb
REAL(KIND=dp) :: bias_sigma0
REAL(KIND=dp) :: bias_sigma
LOGICAL :: bias = .FALSE.
LOGICAL :: bias_align = .FALSE.
REAL(KIND=dp) :: bias_energy = -1.0_dp
REAL(KIND=dp) :: bias_kb = -1.0_dp
REAL(KIND=dp) :: bias_sigma0 = -1.0_dp
REAL(KIND=dp) :: bias_sigma = -1.0_dp
REAL(KIND=dp), DIMENSION(:, :), ALLOCATABLE :: bias_forces
REAL(KIND=dp), DIMENSION(:), ALLOCATABLE :: bias_e_avrg
END TYPE nnp_type
@ -148,11 +148,11 @@ MODULE nnp_environment_types
!> \date 2020-10-10
! **************************************************************************************************
TYPE nnp_symfgrp_type
INTEGER :: n_symf
INTEGER :: n_symf = -1
INTEGER, DIMENSION(:), ALLOCATABLE :: symf
INTEGER, DIMENSION(:), ALLOCATABLE :: ele_ind
CHARACTER(LEN=2), DIMENSION(:), ALLOCATABLE :: ele
REAL(KIND=dp) :: cutoff
REAL(KIND=dp) :: cutoff = -1.0_dp
END TYPE
! **************************************************************************************************
@ -181,7 +181,7 @@ MODULE nnp_environment_types
REAL(KIND=dp), ALLOCATABLE, DIMENSION(:) :: sigma
CHARACTER(len=2), ALLOCATABLE, DIMENSION(:) :: ele
INTEGER, ALLOCATABLE, DIMENSION(:) :: nuc_ele
INTEGER :: n_symfgrp
INTEGER :: n_symfgrp = -1
TYPE(nnp_symfgrp_type), DIMENSION(:), ALLOCATABLE :: symfgrp
END TYPE
@ -216,7 +216,7 @@ MODULE nnp_environment_types
CHARACTER(len=2), ALLOCATABLE, DIMENSION(:) :: ele2
INTEGER, ALLOCATABLE, DIMENSION(:) :: nuc_ele1
INTEGER, ALLOCATABLE, DIMENSION(:) :: nuc_ele2
INTEGER :: n_symfgrp
INTEGER :: n_symfgrp = -1
TYPE(nnp_symfgrp_type), DIMENSION(:), ALLOCATABLE :: symfgrp
END TYPE
@ -228,7 +228,7 @@ MODULE nnp_environment_types
!> \date 2020-10-10
! **************************************************************************************************
TYPE nnp_neighbor_type
INTEGER, DIMENSION(3) :: pbc_copies
INTEGER, DIMENSION(3) :: pbc_copies = -1
INTEGER, DIMENSION(:), ALLOCATABLE :: n_rad
INTEGER, DIMENSION(:), ALLOCATABLE :: n_ang1
INTEGER, DIMENSION(:), ALLOCATABLE :: n_ang2
@ -246,7 +246,7 @@ MODULE nnp_environment_types
!> \date 2020-10-10
! **************************************************************************************************
TYPE nnp_arc_type
TYPE(nnp_arc_layer_type), POINTER, DIMENSION(:) :: layer ! DIM(n_layer)
TYPE(nnp_arc_layer_type), POINTER, DIMENSION(:) :: layer => NULL() ! DIM(n_layer)
INTEGER, ALLOCATABLE, DIMENSION(:) :: n_nodes
END TYPE

View file

@ -23,9 +23,9 @@ MODULE optimize_basis_types
! constraint information for a single constraing. boundary is translateed into a fermi function
! like setting as for variational limited case
TYPE exp_constraint_type
INTEGER :: const_type
REAL(KIND=dp) :: llim, ulim
REAL(KIND=dp) :: init, var_fac
INTEGER :: const_type = -1
REAL(KIND=dp) :: llim = -1.0_dp, ulim = -1.0_dp
REAL(KIND=dp) :: init = -1.0_dp, var_fac = -1.0_dp
END TYPE
! Subset of a basis+ additional information on what to optimize.
@ -33,8 +33,8 @@ MODULE optimize_basis_types
! opt_* logical whether quantity ahould be optimized
! *_const information for exponents used to constrain them
TYPE subset_type
INTEGER :: lmin, lmax, nexp
INTEGER :: n, ncon_tot, nl
INTEGER :: lmin = -1, lmax = -1, nexp = -1
INTEGER :: n = -1, ncon_tot = -1, nl = -1
INTEGER, DIMENSION(:), ALLOCATABLE :: l
REAL(KIND=dp), DIMENSION(:, :), ALLOCATABLE :: coeff
LOGICAL, DIMENSION(:, :), ALLOCATABLE :: opt_coeff
@ -49,9 +49,9 @@ MODULE optimize_basis_types
! Top level information for basis sets+ vector subset with the real information
TYPE flex_basis_type
CHARACTER(LEN=default_string_length) :: basis_name
INTEGER :: nopt
INTEGER :: nsets
CHARACTER(LEN=default_string_length) :: basis_name = ""
INTEGER :: nopt = -1
INTEGER :: nsets = -1
TYPE(subset_type), DIMENSION(:), ALLOCATABLE :: subset
END TYPE
@ -62,10 +62,10 @@ MODULE optimize_basis_types
! information about how to generate the derived basis sets
TYPE derived_basis_info
CHARACTER(LEN=default_string_length) :: basis_name
INTEGER :: reference_set
CHARACTER(LEN=default_string_length) :: basis_name = ""
INTEGER :: reference_set = -1
INTEGER, DIMENSION(:, :), ALLOCATABLE :: remove_contr
INTEGER :: nsets, ncontr
INTEGER :: nsets = -1, ncontr = -1
INTEGER, DIMENSION(:), ALLOCATABLE :: remove_set
LOGICAL, DIMENSION(:), ALLOCATABLE :: in_use_set
TYPE(use_contr_type), DIMENSION(:), ALLOCATABLE :: use_contr
@ -77,9 +77,9 @@ MODULE optimize_basis_types
! ATTENTION: both vectors go from 0:nbasis_deriv. entry 0 is the one specified
! in the template basis file
TYPE kind_basis_type
CHARACTER(LEN=default_string_length) :: basis_name
CHARACTER(LEN=default_string_length) :: element
INTEGER :: nbasis_deriv
CHARACTER(LEN=default_string_length) :: basis_name = ""
CHARACTER(LEN=default_string_length) :: element = ""
INTEGER :: nbasis_deriv = -1
TYPE(derived_basis_info), DIMENSION(:), &
ALLOCATABLE :: deriv_info
TYPE(flex_basis_type), DIMENSION(:), ALLOCATABLE :: flex_basis
@ -96,27 +96,27 @@ MODULE optimize_basis_types
! **************************************************************************************************
TYPE basis_optimization_type
TYPE(comp_group_type), DIMENSION(:), ALLOCATABLE :: comp_group
INTEGER :: ntraining_sets
INTEGER :: ncombinations
LOGICAL :: use_condition_number
INTEGER, DIMENSION(:), POINTER :: group_partition
INTEGER :: n_groups_created
INTEGER :: ntraining_sets = -1
INTEGER :: ncombinations = -1
LOGICAL :: use_condition_number = .FALSE.
INTEGER, DIMENSION(:), POINTER :: group_partition => NULL()
INTEGER :: n_groups_created = -1
INTEGER, DIMENSION(:), ALLOCATABLE :: sub_sources
INTEGER, DIMENSION(:, :), ALLOCATABLE :: combination
REAL(KIND=dp), DIMENSION(:), ALLOCATABLE :: fval_weight
REAL(KIND=dp), DIMENSION(:), ALLOCATABLE :: condition_weight
INTEGER :: nkind
INTEGER :: write_frequency
INTEGER :: nbasis_deriv_types
INTEGER :: nkind = -1
INTEGER :: write_frequency = -1
INTEGER :: nbasis_deriv_types = -1
REAL(KIND=dp), DIMENSION(:), ALLOCATABLE :: x_opt
TYPE(opt_state_type) :: powell_param
TYPE(opt_state_type) :: powell_param = opt_state_type()
CHARACTER(LEN=default_path_length), DIMENSION(:), ALLOCATABLE :: training_input
CHARACTER(LEN=default_path_length), DIMENSION(:), ALLOCATABLE :: training_dir
CHARACTER(LEN=default_path_length) :: work_basis_file
CHARACTER(LEN=default_path_length) :: output_basis_file
CHARACTER(LEN=default_path_length) :: template_basis_file
CHARACTER(LEN=default_path_length) :: work_basis_file = ""
CHARACTER(LEN=default_path_length) :: output_basis_file = ""
CHARACTER(LEN=default_path_length) :: template_basis_file = ""
TYPE(kind_basis_type), DIMENSION(:), ALLOCATABLE :: kind_basis
INTEGER :: opt_id
INTEGER :: opt_id = -1
END TYPE
CONTAINS

View file

@ -54,38 +54,38 @@ MODULE optimize_input
PUBLIC :: run_optimize_input
TYPE fm_env_type
CHARACTER(LEN=default_path_length) :: optimize_file_name
CHARACTER(LEN=default_path_length) :: optimize_file_name = ""
CHARACTER(LEN=default_path_length) :: ref_traj_file_name
CHARACTER(LEN=default_path_length) :: ref_force_file_name
CHARACTER(LEN=default_path_length) :: ref_cell_file_name
CHARACTER(LEN=default_path_length) :: ref_traj_file_name = ""
CHARACTER(LEN=default_path_length) :: ref_force_file_name = ""
CHARACTER(LEN=default_path_length) :: ref_cell_file_name = ""
INTEGER :: group_size
INTEGER :: group_size = -1
REAL(KIND=dp) :: energy_weight
REAL(KIND=dp) :: shift_mm
REAL(KIND=dp) :: shift_qm
LOGICAL :: shift_average
INTEGER :: frame_start, frame_stop, frame_stride, frame_count
REAL(KIND=dp) :: energy_weight = -1.0_dp
REAL(KIND=dp) :: shift_mm = -1.0_dp
REAL(KIND=dp) :: shift_qm = -1.0_dp
LOGICAL :: shift_average = .FALSE.
INTEGER :: frame_start = -1, frame_stop = -1, frame_stride = -1, frame_count = -1
END TYPE
TYPE variable_type
CHARACTER(LEN=default_string_length) :: label
REAL(KIND=dp) :: value
LOGICAL :: fixed
CHARACTER(LEN=default_string_length) :: label = ""
REAL(KIND=dp) :: value = -1.0_dp
LOGICAL :: fixed = .FALSE.
END TYPE
TYPE oi_env_type
INTEGER :: method
INTEGER :: seed
CHARACTER(LEN=default_path_length) :: project_name
TYPE(fm_env_type) :: fm_env
INTEGER :: method = -1
INTEGER :: seed = -1
CHARACTER(LEN=default_path_length) :: project_name = ""
TYPE(fm_env_type) :: fm_env = fm_env_type()
TYPE(variable_type), DIMENSION(:), ALLOCATABLE :: variables
REAL(KIND=dp) :: rhobeg, rhoend
INTEGER :: maxfun
INTEGER :: iter_start_val
REAL(KIND=dp) :: randomize_variables
REAL(KIND=dp) :: start_time, target_time
REAL(KIND=dp) :: rhobeg = -1.0_dp, rhoend = -1.0_dp
INTEGER :: maxfun = -1
INTEGER :: iter_start_val = -1
REAL(KIND=dp) :: randomize_variables = -1.0_dp
REAL(KIND=dp) :: start_time = -1.0_dp, target_time = -1.0_dp
END TYPE
CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'optimize_input'

View file

@ -61,30 +61,30 @@ MODULE outer_scf_control_types
! **************************************************************************************************
TYPE outer_scf_control_type
LOGICAL :: have_scf
INTEGER :: max_scf
REAL(KIND=dp) :: eps_scf, step_size
INTEGER :: TYPE
INTEGER :: optimizer
INTEGER :: diis_buffer_length
INTEGER :: extrapolation_order
INTEGER :: bisect_trust_count
TYPE(cdft_opt_type), POINTER :: cdft_opt_control
LOGICAL :: have_scf = .FALSE.
INTEGER :: max_scf = -1
REAL(KIND=dp) :: eps_scf = -1.0_dp, step_size = -1.0_dp
INTEGER :: TYPE = -1
INTEGER :: optimizer = -1
INTEGER :: diis_buffer_length = -1
INTEGER :: extrapolation_order = -1
INTEGER :: bisect_trust_count = -1
TYPE(cdft_opt_type), POINTER :: cdft_opt_control => NULL()
END TYPE outer_scf_control_type
TYPE qs_outer_scf_type
INTEGER :: iter_count
LOGICAL :: deallocate_jacobian
INTEGER :: iter_count = -1
LOGICAL :: deallocate_jacobian = .FALSE.
! these are the variable of outer loop.
! right now, we assume that they can be easily written as
! small arrays, but we might want to go the cp_fm_types
! at a later stage
! also, we just store the full iteration history
REAL(KIND=dp), DIMENSION(:), POINTER :: energy
REAL(KIND=dp), DIMENSION(:, :), POINTER :: variables
REAL(KIND=dp), DIMENSION(:, :), POINTER :: gradient
REAL(KIND=dp), DIMENSION(:, :), POINTER :: inv_jacobian
INTEGER, DIMENSION(:), POINTER :: count
REAL(KIND=dp), DIMENSION(:), POINTER :: energy => NULL()
REAL(KIND=dp), DIMENSION(:, :), POINTER :: variables => NULL()
REAL(KIND=dp), DIMENSION(:, :), POINTER :: gradient => NULL()
REAL(KIND=dp), DIMENSION(:, :), POINTER :: inv_jacobian => NULL()
INTEGER, DIMENSION(:), POINTER :: count => NULL()
END TYPE qs_outer_scf_type
CONTAINS

View file

@ -93,17 +93,17 @@ MODULE pexsi_types
REAL(KIND=dp), DIMENSION(:), POINTER :: kTS => NULL()
TYPE(dbcsr_p_type), DIMENSION(:), &
POINTER :: matrix_w => NULL()
INTEGER(KIND=C_INTPTR_T) :: plan
INTEGER :: nspin, num_ranks_per_pole
TYPE(mp_comm_type) :: mp_group
INTEGER(KIND=C_INTPTR_T) :: plan = 0_C_INTPTR_T
INTEGER :: nspin = -1, num_ranks_per_pole = -1
TYPE(mp_comm_type) :: mp_group = mp_comm_type()
TYPE(dbcsr_type), DIMENSION(:), &
POINTER :: max_ev_vector
POINTER :: max_ev_vector => NULL()
TYPE(dbcsr_type) :: csr_sparsity
INTEGER, DIMENSION(2) :: mp_dims
INTEGER, DIMENSION(2) :: mp_dims = -1
LOGICAL :: csr_screening, do_adaptive_tol_nel
REAL(KIND=dp) :: adaptive_nel_alpha, adaptive_nel_beta, &
tol_nel_initial, tol_nel_target
LOGICAL :: csr_screening = .FALSE., do_adaptive_tol_nel = .FALSE.
REAL(KIND=dp) :: adaptive_nel_alpha = -1.0_dp, adaptive_nel_beta = -1.0_dp, &
tol_nel_initial = -1.0_dp, tol_nel_target = -1.0_dp
END TYPE lib_pexsi_env
CONTAINS

View file

@ -41,23 +41,23 @@ MODULE preconditioner_types
! **************************************************************************************************
TYPE preconditioner_type
! PRIVATE
TYPE(dbcsr_type), POINTER :: sparse_matrix
TYPE(cp_fm_type), POINTER :: fm
TYPE(dbcsr_type), POINTER :: dbcsr_matrix
TYPE(dbcsr_type), POINTER :: max_ev_vector
TYPE(dbcsr_type), POINTER :: min_ev_vector
TYPE(dbcsr_p_type), POINTER, DIMENSION(:) :: inverse_history
TYPE(mp_para_env_type), POINTER :: para_env
TYPE(cp_blacs_env_type), POINTER :: ctxt
INTEGER :: in_use, solver, ihistory, cholesky_use
REAL(KIND=dp), DIMENSION(:), POINTER :: occ_evals, full_evals
REAL(KIND=dp) :: energy_gap
REAL(KIND=dp) :: condition_num
TYPE(dbcsr_type), POINTER :: sparse_matrix => NULL()
TYPE(cp_fm_type), POINTER :: fm => NULL()
TYPE(dbcsr_type), POINTER :: dbcsr_matrix => NULL()
TYPE(dbcsr_type), POINTER :: max_ev_vector => NULL()
TYPE(dbcsr_type), POINTER :: min_ev_vector => NULL()
TYPE(dbcsr_p_type), POINTER, DIMENSION(:) :: inverse_history => NULL()
TYPE(mp_para_env_type), POINTER :: para_env => NULL()
TYPE(cp_blacs_env_type), POINTER :: ctxt => NULL()
INTEGER :: in_use = -1, solver = -1, ihistory = -1, cholesky_use = -1
REAL(KIND=dp), DIMENSION(:), POINTER :: occ_evals => NULL(), full_evals => NULL()
REAL(KIND=dp) :: energy_gap = -1.0_dp
REAL(KIND=dp) :: condition_num = -1.0_dp
END TYPE preconditioner_type
! **************************************************************************************************
TYPE preconditioner_p_type
TYPE(preconditioner_type), POINTER :: preconditioner
TYPE(preconditioner_type), POINTER :: preconditioner => NULL()
END TYPE preconditioner_p_type
CONTAINS

View file

@ -563,8 +563,11 @@ CONTAINS
! If this fails (e.g. for MKL's FFTW3 interface), fall back to the
! FFTW3 threaded 3D transform instead of the hand-optimised version
dim_n(1) = 1
dim_n(2) = 1
dim_istride(1) = 1
dim_istride(2) = 1
dim_ostride(1) = 1
dim_ostride(2) = 1
howmany_n(1) = 1
howmany_n(2) = 1
howmany_istride(1) = 1

View file

@ -90,7 +90,7 @@ MODULE pwdft_environment_types
CONTAINS
! **************************************************************************************************
!> \brief Releases the given pwdft environment (see doc/ReferenceCounting.html)
!> \brief Releases the given pwdft environment
!> \param pwdft_env The pwdft environment to release
!> \par History
!> 07.2018 initial create

View file

@ -25,10 +25,10 @@ MODULE qmmm_gaussian_types
!> \author Laino Teodoro
! **************************************************************************************************
TYPE qmmm_gaussian_type
INTEGER :: number_of_gaussians
REAL(KIND=dp) :: Elp_Radius, Elp_Radius_Corr
INTEGER, DIMENSION(:), POINTER :: grid_level
REAL(KIND=dp), DIMENSION(:), POINTER :: Ak, Gk
INTEGER :: number_of_gaussians = -1
REAL(KIND=dp) :: Elp_Radius = -1.0_dp, Elp_Radius_Corr = -1.0_dp
INTEGER, DIMENSION(:), POINTER :: grid_level => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: Ak => NULL(), Gk => NULL()
END TYPE qmmm_gaussian_type
! **************************************************************************************************
@ -40,7 +40,7 @@ MODULE qmmm_gaussian_types
!> \author Teodoro Laino
! **************************************************************************************************
TYPE qmmm_gaussian_p_type
TYPE(qmmm_gaussian_type), POINTER :: pgf
TYPE(qmmm_gaussian_type), POINTER :: pgf => NULL()
END TYPE qmmm_gaussian_p_type
PUBLIC :: qmmm_gaussian_type, &

View file

@ -66,186 +66,186 @@ MODULE qmmm_types_low
!> Teodoro Laino
! **************************************************************************************************
TYPE gridlevel_info_type
INTEGER :: auxbas_grid
INTEGER :: coarser_grid
INTEGER :: auxbas_grid = -1
INTEGER :: coarser_grid = -1
END TYPE gridlevel_info_type
! **************************************************************************************************
!> \brief Real Space Potential
! **************************************************************************************************
TYPE qmmm_pot_type
REAL(KIND=dp), DIMENSION(:, :), POINTER :: Pot0_2
REAL(KIND=dp) :: Rmax, Rmin, dx, Rc
INTEGER :: npts
INTEGER, DIMENSION(:), POINTER :: mm_atom_index
REAL(KIND=dp), DIMENSION(:, :), POINTER :: Pot0_2 => NULL()
REAL(KIND=dp) :: Rmax = -1.0_dp, Rmin = -1.0_dp, dx = -1.0_dp, Rc = -1.0_dp
INTEGER :: npts = -1
INTEGER, DIMENSION(:), POINTER :: mm_atom_index => NULL()
END TYPE qmmm_pot_type
TYPE qmmm_pot_p_type
TYPE(qmmm_pot_type), POINTER :: pot
TYPE(qmmm_pot_type), POINTER :: pot => NULL()
END TYPE qmmm_pot_p_type
! **************************************************************************************************
!> \brief Periodic Potential
! **************************************************************************************************
TYPE qmmm_per_pot_type
REAL(KIND=dp), DIMENSION(:), POINTER :: lg, gx, gy, gz
REAL(KIND=dp) :: Gmax, Fac(3)
INTEGER :: Kmax(3), n_rep_real(3)
INTEGER, DIMENSION(:), POINTER :: mm_atom_index
TYPE(pw_pool_type), POINTER :: pw_pool
TYPE(pw_grid_type), POINTER :: pw_grid
TYPE(pw_r3d_rs_type), POINTER :: TabLR
REAL(KIND=dp), DIMENSION(:), POINTER :: lg => NULL(), gx => NULL(), gy => NULL(), gz => NULL()
REAL(KIND=dp) :: Gmax = -1.0_dp, Fac(3) = -1.0_dp
INTEGER :: Kmax(3) = -1, n_rep_real(3) = -1
INTEGER, DIMENSION(:), POINTER :: mm_atom_index => NULL()
TYPE(pw_pool_type), POINTER :: pw_pool => NULL()
TYPE(pw_grid_type), POINTER :: pw_grid => NULL()
TYPE(pw_r3d_rs_type), POINTER :: TabLR => NULL()
END TYPE qmmm_per_pot_type
TYPE qmmm_per_pot_p_type
TYPE(qmmm_per_pot_type), POINTER :: pot
TYPE(qmmm_per_pot_type), POINTER :: pot => NULL()
END TYPE qmmm_per_pot_p_type
! **************************************************************************************************
!> \brief LINKs IMOMM
! **************************************************************************************************
TYPE qmmm_imomm_link_type
INTEGER :: qm_index, mm_index
REAL(KIND=dp) :: alpha
INTEGER :: qm_index = -1, mm_index = -1
REAL(KIND=dp) :: alpha = -1.0_dp
END TYPE qmmm_imomm_link_type
TYPE qmmm_imomm_link_p_type
TYPE(qmmm_imomm_link_type), POINTER :: link
TYPE(qmmm_imomm_link_type), POINTER :: link => NULL()
END TYPE qmmm_imomm_link_p_type
! **************************************************************************************************
!> \brief LINKs PSEUDO
! **************************************************************************************************
TYPE qmmm_pseudo_link_type
INTEGER :: qm_index, mm_index
INTEGER :: qm_index = -1, mm_index = -1
END TYPE qmmm_pseudo_link_type
TYPE qmmm_pseudo_link_p_type
TYPE(qmmm_pseudo_link_type), POINTER :: link
TYPE(qmmm_pseudo_link_type), POINTER :: link => NULL()
END TYPE qmmm_pseudo_link_p_type
! **************************************************************************************************
!> \brief LINKs summary
! **************************************************************************************************
TYPE qmmm_links_type
TYPE(qmmm_imomm_link_p_type), DIMENSION(:), POINTER :: imomm
TYPE(qmmm_pseudo_link_p_type), DIMENSION(:), POINTER :: pseudo
TYPE(qmmm_imomm_link_p_type), DIMENSION(:), POINTER :: imomm => NULL()
TYPE(qmmm_pseudo_link_p_type), DIMENSION(:), POINTER :: pseudo => NULL()
END TYPE qmmm_links_type
! **************************************************************************************************
!> \brief ...
! **************************************************************************************************
TYPE add_env_type
INTEGER :: Index1, Index2
REAL(KIND=dp) :: alpha
INTEGER :: Index1 = -1, Index2 = -1
REAL(KIND=dp) :: alpha = -1.0_dp
END TYPE add_env_type
! **************************************************************************************************
!> \brief ...
! **************************************************************************************************
TYPE add_set_type
INTEGER :: num_mm_atoms
TYPE(add_env_type), DIMENSION(:), POINTER :: add_env
TYPE(particle_type), DIMENSION(:), POINTER :: added_particles
INTEGER, DIMENSION(:), POINTER :: mm_atom_index
REAL(KIND=dp), DIMENSION(:), POINTER :: mm_atom_chrg
REAL(KIND=dp), DIMENSION(:), POINTER :: mm_el_pot_radius
REAL(KIND=dp), DIMENSION(:), POINTER :: mm_el_pot_radius_corr
TYPE(qmmm_pot_p_type), DIMENSION(:), POINTER :: Potentials
TYPE(qmmm_per_pot_p_type), DIMENSION(:), POINTER :: Per_Potentials
TYPE(qmmm_gaussian_p_type), DIMENSION(:), POINTER :: pgfs
INTEGER :: num_mm_atoms = -1
TYPE(add_env_type), DIMENSION(:), POINTER :: add_env => NULL()
TYPE(particle_type), DIMENSION(:), POINTER :: added_particles => NULL()
INTEGER, DIMENSION(:), POINTER :: mm_atom_index => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: mm_atom_chrg => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: mm_el_pot_radius => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: mm_el_pot_radius_corr => NULL()
TYPE(qmmm_pot_p_type), DIMENSION(:), POINTER :: Potentials => NULL()
TYPE(qmmm_per_pot_p_type), DIMENSION(:), POINTER :: Per_Potentials => NULL()
TYPE(qmmm_gaussian_p_type), DIMENSION(:), POINTER :: pgfs => NULL()
END TYPE add_set_type
! **************************************************************************************************
!> \brief parameters for core-shell model potentials
! **************************************************************************************************
TYPE add_shell_type
INTEGER :: num_mm_atoms
TYPE(particle_type), DIMENSION(:), POINTER :: added_particles
TYPE(particle_type), DIMENSION(:), POINTER :: added_cores
INTEGER, DIMENSION(:), POINTER :: mm_core_index
REAL(KIND=dp), DIMENSION(:), POINTER :: mm_core_chrg
REAL(KIND=dp), DIMENSION(:), POINTER :: mm_el_pot_radius
REAL(KIND=dp), DIMENSION(:), POINTER :: mm_el_pot_radius_corr
TYPE(qmmm_pot_p_type), DIMENSION(:), POINTER :: Potentials
TYPE(qmmm_per_pot_p_type), DIMENSION(:), POINTER :: Per_Potentials
TYPE(qmmm_gaussian_p_type), DIMENSION(:), POINTER :: pgfs
INTEGER :: num_mm_atoms = -1
TYPE(particle_type), DIMENSION(:), POINTER :: added_particles => NULL()
TYPE(particle_type), DIMENSION(:), POINTER :: added_cores => NULL()
INTEGER, DIMENSION(:), POINTER :: mm_core_index => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: mm_core_chrg => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: mm_el_pot_radius => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: mm_el_pot_radius_corr => NULL()
TYPE(qmmm_pot_p_type), DIMENSION(:), POINTER :: Potentials => NULL()
TYPE(qmmm_per_pot_p_type), DIMENSION(:), POINTER :: Per_Potentials => NULL()
TYPE(qmmm_gaussian_p_type), DIMENSION(:), POINTER :: pgfs => NULL()
END TYPE add_shell_type
! **************************************************************************************************
!> \brief ...
! **************************************************************************************************
TYPE image_charge_type
LOGICAL :: all_mm
LOGICAL :: coeff_iterative
LOGICAL :: image_restart
INTEGER :: state_image_matrix
INTEGER, DIMENSION(:), POINTER :: image_mm_list
TYPE(particle_type), DIMENSION(:), POINTER :: particles_all
REAL(KIND=dp), DIMENSION(:, :), POINTER :: image_forcesMM
REAL(KIND=dp) :: V0
REAL(KIND=dp) :: eta
INTEGER :: image_matrix_method
TYPE(cp_eri_mme_param) :: eri_mme_param
LOGICAL :: all_mm = .FALSE.
LOGICAL :: coeff_iterative = .FALSE.
LOGICAL :: image_restart = .FALSE.
INTEGER :: state_image_matrix = -1
INTEGER, DIMENSION(:), POINTER :: image_mm_list => NULL()
TYPE(particle_type), DIMENSION(:), POINTER :: particles_all => NULL()
REAL(KIND=dp), DIMENSION(:, :), POINTER :: image_forcesMM => NULL()
REAL(KIND=dp) :: V0 = -1.0_dp
REAL(KIND=dp) :: eta = -1.0_dp
INTEGER :: image_matrix_method = -1
TYPE(cp_eri_mme_param) :: eri_mme_param = cp_eri_mme_param()
END TYPE image_charge_type
! **************************************************************************************************
!> \brief ...
! **************************************************************************************************
TYPE qmmm_env_qm_type
LOGICAL :: center_qm_subsys
LOGICAL :: center_qm_subsys0, do_translate
LOGICAL :: center_qm_subsys_pbc_aware
LOGICAL :: do_force_mixing
LOGICAL :: compatibility
LOGICAL :: qmmm_link
LOGICAL :: move_mm_charges
LOGICAL :: add_mm_charges
LOGICAL :: periodic
LOGICAL :: multipole
LOGICAL :: image_charge
INTEGER :: par_scheme
INTEGER :: qmmm_coupl_type
INTEGER :: num_qm_atoms
INTEGER :: num_mm_atoms
INTEGER :: num_image_mm_atoms
REAL(KIND=dp) :: eps_mm_rspace
REAL(KIND=dp), DIMENSION(3) :: dOmmOqm, utrasl, transl_v
REAL(KIND=dp), DIMENSION(2) :: spherical_cutoff
REAL(KIND=dp), DIMENSION(:), POINTER :: maxradius
INTEGER, DIMENSION(:), POINTER :: qm_atom_index
INTEGER, DIMENSION(:), POINTER :: mm_atom_index
INTEGER, DIMENSION(:), POINTER :: mm_link_atoms
REAL(KIND=dp), DIMENSION(:), POINTER :: mm_atom_chrg
REAL(KIND=dp), DIMENSION(:), POINTER :: mm_el_pot_radius
REAL(KIND=dp), DIMENSION(:), POINTER :: mm_el_pot_radius_corr
TYPE(qmmm_pot_p_type), DIMENSION(:), POINTER :: Potentials
TYPE(qmmm_per_pot_p_type), DIMENSION(:), POINTER :: Per_Potentials
TYPE(gridlevel_info_type) :: gridlevel_info
TYPE(qmmm_gaussian_p_type), DIMENSION(:), POINTER :: pgfs
TYPE(pw_pool_p_type), DIMENSION(:), POINTER :: aug_pools
TYPE(qmmm_links_type), POINTER :: qmmm_links
TYPE(add_set_type), POINTER :: added_charges
TYPE(add_shell_type), POINTER :: added_shells
TYPE(image_charge_type), POINTER :: image_charge_pot
TYPE(ewald_environment_type), POINTER :: ewald_env
TYPE(ewald_pw_type), POINTER :: ewald_pw
LOGICAL :: center_qm_subsys = .FALSE.
LOGICAL :: center_qm_subsys0 = .FALSE., do_translate = .FALSE.
LOGICAL :: center_qm_subsys_pbc_aware = .FALSE.
LOGICAL :: do_force_mixing = .FALSE.
LOGICAL :: compatibility = .FALSE.
LOGICAL :: qmmm_link = .FALSE.
LOGICAL :: move_mm_charges = .FALSE.
LOGICAL :: add_mm_charges = .FALSE.
LOGICAL :: periodic = .FALSE.
LOGICAL :: multipole = .FALSE.
LOGICAL :: image_charge = .FALSE.
INTEGER :: par_scheme = -1
INTEGER :: qmmm_coupl_type = -1
INTEGER :: num_qm_atoms = -1
INTEGER :: num_mm_atoms = -1
INTEGER :: num_image_mm_atoms = -1
REAL(KIND=dp) :: eps_mm_rspace = -1.0_dp
REAL(KIND=dp), DIMENSION(3) :: dOmmOqm = -1.0_dp, utrasl = -1.0_dp, transl_v = -1.0_dp
REAL(KIND=dp), DIMENSION(2) :: spherical_cutoff = -1.0_dp
REAL(KIND=dp), DIMENSION(:), POINTER :: maxradius => NULL()
INTEGER, DIMENSION(:), POINTER :: qm_atom_index => NULL()
INTEGER, DIMENSION(:), POINTER :: mm_atom_index => NULL()
INTEGER, DIMENSION(:), POINTER :: mm_link_atoms => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: mm_atom_chrg => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: mm_el_pot_radius => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: mm_el_pot_radius_corr => NULL()
TYPE(qmmm_pot_p_type), DIMENSION(:), POINTER :: Potentials => NULL()
TYPE(qmmm_per_pot_p_type), DIMENSION(:), POINTER :: Per_Potentials => NULL()
TYPE(gridlevel_info_type) :: gridlevel_info = gridlevel_info_type()
TYPE(qmmm_gaussian_p_type), DIMENSION(:), POINTER :: pgfs => NULL()
TYPE(pw_pool_p_type), DIMENSION(:), POINTER :: aug_pools => NULL()
TYPE(qmmm_links_type), POINTER :: qmmm_links => NULL()
TYPE(add_set_type), POINTER :: added_charges => NULL()
TYPE(add_shell_type), POINTER :: added_shells => NULL()
TYPE(image_charge_type), POINTER :: image_charge_pot => NULL()
TYPE(ewald_environment_type), POINTER :: ewald_env => NULL()
TYPE(ewald_pw_type), POINTER :: ewald_pw => NULL()
END TYPE qmmm_env_qm_type
! **************************************************************************************************
!> \brief ...
! **************************************************************************************************
TYPE qmmm_env_mm_type
LOGICAL :: qmmm_link
LOGICAL :: use_qmmm_ff
LOGICAL :: multiple_potential
INTEGER :: qmmm_coupl_type
INTEGER, DIMENSION(:), POINTER :: qm_atom_index
INTEGER, DIMENSION(:), POINTER :: mm_link_atoms
REAL(KIND=dp), DIMENSION(:), POINTER :: mm_link_scale_factor
REAL(KIND=dp), DIMENSION(:), POINTER :: fist_scale_charge_link
INTEGER, DIMENSION(:), POINTER :: qm_molecule_index
TYPE(input_info_type), POINTER :: inp_info
LOGICAL :: qmmm_link = .FALSE.
LOGICAL :: use_qmmm_ff = .FALSE.
LOGICAL :: multiple_potential = .FALSE.
INTEGER :: qmmm_coupl_type = -1
INTEGER, DIMENSION(:), POINTER :: qm_atom_index => NULL()
INTEGER, DIMENSION(:), POINTER :: mm_link_atoms => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: mm_link_scale_factor => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: fist_scale_charge_link => NULL()
INTEGER, DIMENSION(:), POINTER :: qm_molecule_index => NULL()
TYPE(input_info_type), POINTER :: inp_info => NULL()
END TYPE qmmm_env_mm_type
CONTAINS

View file

@ -161,7 +161,7 @@ MODULE qs_active_space_methods
PUBLIC :: active_space_main
TYPE, EXTENDS(eri_type_eri_element_func) :: eri_fcidump_print
INTEGER :: unit_nr, bra_start, ket_start
INTEGER :: unit_nr = -1, bra_start = -1, ket_start = -1
CONTAINS
PROCEDURE :: func => eri_fcidump_print_func
END TYPE

View file

@ -33,7 +33,7 @@ MODULE qs_atomic_block
PUBLIC :: calculate_atomic_block_dm
TYPE atom_matrix_type
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: mat
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: mat => NULL()
END TYPE atom_matrix_type
CONTAINS

View file

@ -36,11 +36,11 @@ MODULE qs_block_davidson_types
block_davidson_env_create, davidson_type
TYPE davidson_type
INTEGER :: max_iter, prec_type, solver_type, niter_new_prec, first_prec
LOGICAL :: use_sparse_mos
REAL(KIND=dp) :: conv_percent, energy_gap, eps_iter
TYPE(cp_fm_type), POINTER :: H_block_mat, H_block_vec, &
matrix_z, matrix_pz, S_block_mat, W_block_mat
INTEGER :: max_iter = -1, prec_type = -1, solver_type = -1, niter_new_prec = -1, first_prec = -1
LOGICAL :: use_sparse_mos = .FALSE.
REAL(KIND=dp) :: conv_percent = -1.0_dp, energy_gap = -1.0_dp, eps_iter = -1.0_dp
TYPE(cp_fm_type), POINTER :: H_block_mat => NULL(), H_block_vec => NULL(), &
matrix_z => NULL(), matrix_pz => NULL(), S_block_mat => NULL(), W_block_mat => NULL()
END TYPE davidson_type
CONTAINS

View file

@ -63,22 +63,22 @@ MODULE qs_cdft_opt_types
! **************************************************************************************************
TYPE cdft_opt_type
LOGICAL :: build_jacobian
LOGICAL :: broyden_update
LOGICAL :: continue_ls
LOGICAL :: jacobian_restart
REAL(KIND=dp) :: newton_step
REAL(KIND=dp) :: newton_step_save
REAL(KIND=dp) :: factor_ls
LOGICAL :: build_jacobian = .FALSE.
LOGICAL :: broyden_update = .FALSE.
LOGICAL :: continue_ls = .FALSE.
LOGICAL :: jacobian_restart = .FALSE.
REAL(KIND=dp) :: newton_step = 0.0_dp
REAL(KIND=dp) :: newton_step_save = 0.0_dp
REAL(KIND=dp) :: factor_ls = 0.0_dp
REAL(KIND=dp), DIMENSION(:), &
ALLOCATABLE :: jacobian_step
REAL(KIND=dp), DIMENSION(:), &
POINTER :: jacobian_vector
INTEGER :: jacobian_type
INTEGER :: broyden_type
INTEGER :: jacobian_freq(2)
INTEGER :: ijacobian(2)
INTEGER :: max_ls
POINTER :: jacobian_vector => NULL()
INTEGER :: jacobian_type = -1
INTEGER :: broyden_type = -1
INTEGER :: jacobian_freq(2) = -1
INTEGER :: ijacobian(2) = -1
INTEGER :: max_ls = -1
END TYPE cdft_opt_type
CONTAINS

View file

@ -62,7 +62,7 @@ MODULE qs_cdft_types
! **************************************************************************************************
! Utility vector container for building becke constraint
TYPE becke_vector_buffer
LOGICAL :: store_vectors
LOGICAL :: store_vectors = .FALSE.
REAL(kind=dp), ALLOCATABLE, &
DIMENSION(:) :: distances
REAL(kind=dp), ALLOCATABLE, &
@ -74,23 +74,23 @@ MODULE qs_cdft_types
END TYPE becke_vector_buffer
TYPE becke_constraint_type
INTEGER :: cavity_shape, cutoff_type, &
confine_bounds(2)
LOGICAL :: in_memory, &
adjust, cavity_confine, &
should_skip, print_cavity, &
use_bohr
REAL(KIND=dp) :: rglobal, &
rcavity, eps_cavity
REAL(KIND=dp), DIMENSION(:), POINTER :: cutoffs, cutoffs_tmp, &
radii_tmp, radii
INTEGER :: cavity_shape = -1, cutoff_type = -1, &
confine_bounds(2) = -1
LOGICAL :: in_memory = .FALSE., &
adjust = .FALSE., cavity_confine = .FALSE., &
should_skip = .FALSE., print_cavity = .FALSE., &
use_bohr = .FALSE.
REAL(KIND=dp) :: rglobal = -1.0_dp, &
rcavity = -1.0_dp, eps_cavity = -1.0_dp
REAL(KIND=dp), DIMENSION(:), POINTER :: cutoffs => NULL(), cutoffs_tmp => NULL(), &
radii_tmp => NULL(), radii => NULL()
REAL(KIND=dp), POINTER, &
DIMENSION(:, :) :: aij
DIMENSION(:, :) :: aij => NULL()
REAL(KIND=dp), POINTER, &
DIMENSION(:, :, :) :: cavity_mat
TYPE(becke_vector_buffer) :: vector_buffer
TYPE(hirshfeld_type), POINTER :: cavity_env
TYPE(pw_r3d_rs_type) :: cavity
DIMENSION(:, :, :) :: cavity_mat => NULL()
TYPE(becke_vector_buffer) :: vector_buffer = becke_vector_buffer()
TYPE(hirshfeld_type), POINTER :: cavity_env => NULL()
TYPE(pw_r3d_rs_type) :: cavity = pw_r3d_rs_type()
END TYPE becke_constraint_type
! **************************************************************************************************
@ -108,11 +108,11 @@ MODULE qs_cdft_types
!> \param hirshfeld_env auxiliary type storing information about the Gaussians
! **************************************************************************************************
TYPE hirshfeld_constraint_type
INTEGER :: gaussian_shape, shape_function, atoms_memory
LOGICAL :: use_bohr, print_density, use_atomic_cutoff
REAL(KIND=dp) :: radius, eps_cutoff, atomic_cutoff
REAL(KIND=dp), DIMENSION(:), POINTER :: radii
TYPE(hirshfeld_type), POINTER :: hirshfeld_env
INTEGER :: gaussian_shape = -1, shape_function = -1, atoms_memory = -1
LOGICAL :: use_bohr = .FALSE., print_density = .FALSE., use_atomic_cutoff = .FALSE.
REAL(KIND=dp) :: radius = -1.0_dp, eps_cutoff = -1.0_dp, atomic_cutoff = -1.0_dp
REAL(KIND=dp), DIMENSION(:), POINTER :: radii => NULL()
TYPE(hirshfeld_type), POINTER :: hirshfeld_env => NULL()
END TYPE hirshfeld_constraint_type
! **************************************************************************************************
@ -185,77 +185,77 @@ MODULE qs_cdft_types
! To build multiple constraints
TYPE cdft_group_type
! Atoms of this constraint group
INTEGER, POINTER, DIMENSION(:) :: atoms
INTEGER, POINTER, DIMENSION(:) :: atoms => NULL()
! Constraint type: charge constraint, magnetization density constraint, or spin channel specific constraint
INTEGER :: constraint_type
INTEGER :: constraint_type = -1
! Is the constraint fragment based
LOGICAL :: is_fragment_constraint
LOGICAL :: is_fragment_constraint = .FALSE.
! Temporary array holding a component of the weight function gradient that only includes
! terms defined on constraint atoms
REAL(kind=dp), ALLOCATABLE, &
DIMENSION(:, :) :: d_sum_const_dR
! Coefficients that determine how to sum up the atoms to form the constraint
REAL(KIND=dp), POINTER, DIMENSION(:) :: coeff
REAL(KIND=dp), POINTER, DIMENSION(:) :: coeff => NULL()
! Result of integration dw/dR * rho_r dr where dw/dR is the weight function gradient
REAL(KIND=dp), POINTER, &
DIMENSION(:, :) :: integrated
DIMENSION(:, :) :: integrated => NULL()
! Atomic gradients of the weight function at every grid point
REAL(KIND=dp), POINTER, &
DIMENSION(:, :, :, :) :: gradients
DIMENSION(:, :, :, :) :: gradients => NULL()
REAL(KIND=dp), POINTER, &
DIMENSION(:, :, :, :) :: gradients_x
DIMENSION(:, :, :, :) :: gradients_x => NULL()
REAL(KIND=dp), POINTER, &
DIMENSION(:, :, :, :) :: gradients_y
DIMENSION(:, :, :, :) :: gradients_y => NULL()
REAL(KIND=dp), POINTER, &
DIMENSION(:, :, :, :) :: gradients_z
DIMENSION(:, :, :, :) :: gradients_z => NULL()
! The weight function of this constraint group
TYPE(pw_r3d_rs_type), POINTER :: weight
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: hw_rho_atomic
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: hw_rho_atomic_dr
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: hw_rho_atomic_charge
TYPE(pw_r3d_rs_type) :: hw_rho_total_constraint
TYPE(pw_r3d_rs_type) :: hw_rho_total
TYPE(pw_r3d_rs_type), POINTER :: weight => NULL()
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: hw_rho_atomic => NULL()
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: hw_rho_atomic_dr => NULL()
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: hw_rho_atomic_charge => NULL()
TYPE(pw_r3d_rs_type) :: hw_rho_total_constraint = pw_r3d_rs_type()
TYPE(pw_r3d_rs_type) :: hw_rho_total = pw_r3d_rs_type()
END TYPE cdft_group_type
TYPE cdft_control_type
CHARACTER(LEN=default_path_length) :: fragment_a_fname, &
fragment_b_fname, &
fragment_a_spin_fname, &
fragment_b_spin_fname
INTEGER :: ref_count, total_steps, TYPE, &
precond_freq, nreused, max_reuse, &
purge_freq, nbad_conv, purge_offset, &
istep, ienergy, natoms
INTEGER, POINTER, DIMENSION(:) :: atoms
LOGICAL :: need_pot, save_pot, do_et, &
reuse_precond, purge_history, &
should_purge, calculate_metric, &
atomic_charges, fragment_density, &
fragments_integrated, flip_fragment(2), &
transfer_pot, external_control, &
first_iteration, print_weight, in_memory
LOGICAL, POINTER, DIMENSION(:) :: is_constraint
REAL(KIND=dp), DIMENSION(:), POINTER :: strength, TARGET, value
CHARACTER(LEN=default_path_length) :: fragment_a_fname = "", &
fragment_b_fname = "", &
fragment_a_spin_fname = "", &
fragment_b_spin_fname = ""
INTEGER :: ref_count = -1, total_steps = -1, TYPE = -1, &
precond_freq = -1, nreused = -1, max_reuse = -1, &
purge_freq = -1, nbad_conv = -1, purge_offset = -1, &
istep = -1, ienergy = -1, natoms = -1
INTEGER, POINTER, DIMENSION(:) :: atoms => NULL()
LOGICAL :: need_pot = .FALSE., save_pot = .FALSE., do_et = .FALSE., &
reuse_precond = .FALSE., purge_history = .FALSE., &
should_purge = .FALSE., calculate_metric = .FALSE., &
atomic_charges = .FALSE., fragment_density = .FALSE., &
fragments_integrated = .FALSE., flip_fragment(2) = .FALSE., &
transfer_pot = .FALSE., external_control = .FALSE., &
first_iteration = .FALSE., print_weight = .FALSE., in_memory = .FALSE.
LOGICAL, POINTER, DIMENSION(:) :: is_constraint => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: strength => NULL(), TARGET => NULL(), value => NULL()
REAL(KIND=dp), POINTER, &
DIMENSION(:, :) :: charges_fragment
TYPE(becke_constraint_type), POINTER :: becke_control
DIMENSION(:, :) :: charges_fragment => NULL()
TYPE(becke_constraint_type), POINTER :: becke_control => NULL()
TYPE(cdft_group_type), POINTER, &
DIMENSION(:) :: group
DIMENSION(:) :: group => NULL()
TYPE(cp_1d_r_p_type), ALLOCATABLE, &
DIMENSION(:) :: occupations
TYPE(cp_fm_type), DIMENSION(:), &
POINTER :: mo_coeff
POINTER :: mo_coeff => NULL()
TYPE(dbcsr_p_type) :: matrix_s
TYPE(dbcsr_p_type), DIMENSION(:), &
POINTER :: wmat, matrix_p
POINTER :: wmat => NULL(), matrix_p => NULL()
TYPE(hirshfeld_constraint_type), &
POINTER :: hirshfeld_control
TYPE(outer_scf_control_type) :: constraint_control, ot_control
POINTER :: hirshfeld_control => NULL()
TYPE(outer_scf_control_type) :: constraint_control = outer_scf_control_type(), ot_control = outer_scf_control_type()
TYPE(pw_r3d_rs_type), POINTER, &
DIMENSION(:) :: charge
DIMENSION(:) :: charge => NULL()
TYPE(pw_r3d_rs_type), POINTER, &
DIMENSION(:, :) :: fragments
TYPE(qs_outer_scf_type) :: constraint
DIMENSION(:, :) :: fragments => NULL()
TYPE(qs_outer_scf_type) :: constraint = qs_outer_scf_type()
END TYPE cdft_control_type
CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'qs_cdft_types'

View file

@ -39,12 +39,12 @@ MODULE qs_charges_types
!> \author Fawzi Mohamed
! **************************************************************************************************
TYPE qs_charges_type
REAL(KIND=dp) :: total_rho_core_rspace, total_rho_gspace
REAL(KIND=dp) :: total_rho0_soft_rspace, total_rho0_hard_lebedev
REAL(KIND=dp) :: total_rho_soft_gspace
REAL(KIND=dp), DIMENSION(:), POINTER :: total_rho1_hard, &
total_rho1_soft
REAL(KIND=dp) :: background
REAL(KIND=dp) :: total_rho_core_rspace = -1.0_dp, total_rho_gspace = -1.0_dp
REAL(KIND=dp) :: total_rho0_soft_rspace = -1.0_dp, total_rho0_hard_lebedev = -1.0_dp
REAL(KIND=dp) :: total_rho_soft_gspace = -1.0_dp
REAL(KIND=dp), DIMENSION(:), POINTER :: total_rho1_hard => NULL(), &
total_rho1_soft => NULL()
REAL(KIND=dp) :: background = -1.0_dp
END TYPE qs_charges_type
CONTAINS

View file

@ -49,46 +49,46 @@ MODULE qs_density_mixing_types
PUBLIC :: cp_1d_z_p_type, mixing_storage_create, mixing_storage_type, mixing_storage_release, create_mixing_section
TYPE cp_1d_z_p_type
COMPLEX(dp), DIMENSION(:), POINTER :: cc
COMPLEX(dp), DIMENSION(:), POINTER :: cc => NULL()
END TYPE cp_1d_z_p_type
TYPE mixing_storage_type
INTEGER :: ig_max, ncall, ncall_p(2), nbuffer, n_simple_mix, &
nskip_mixing, p_metric_method
INTEGER, POINTER, DIMENSION(:) :: ig_global_index
LOGICAL :: gmix_p
LOGICAL, POINTER, DIMENSION(:) :: paw
CHARACTER(len=15) :: iter_method
REAL(KIND=dp) :: alpha, bconst, beta, broy_w0, &
max_g2, max_gvec_exp, pulay_alpha, &
pulay_beta, r_step, reg_par, &
sigma_max, wc, wmax
REAL(KIND=dp), DIMENSION(:), POINTER :: p_metric
REAL(KIND=dp), DIMENSION(:), POINTER :: kerker_factor
REAL(KIND=dp), DIMENSION(:), POINTER :: special_metric
REAL(KIND=dp), DIMENSION(:, :), POINTER :: weight
REAL(KIND=dp), DIMENSION(:, :), POINTER :: norm_res_buffer
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: fmat, gmat, pulay_matrix, smat
INTEGER :: ig_max = -1, ncall = -1, ncall_p(2) = -1, nbuffer = -1, n_simple_mix = -1, &
nskip_mixing = -1, p_metric_method = -1
INTEGER, POINTER, DIMENSION(:) :: ig_global_index => NULL()
LOGICAL :: gmix_p = .FALSE.
LOGICAL, POINTER, DIMENSION(:) :: paw => NULL()
CHARACTER(len=15) :: iter_method = ""
REAL(KIND=dp) :: alpha = -1.0_dp, bconst = -1.0_dp, beta = -1.0_dp, broy_w0 = -1.0_dp, &
max_g2 = -1.0_dp, max_gvec_exp = -1.0_dp, pulay_alpha = -1.0_dp, &
pulay_beta = -1.0_dp, r_step = -1.0_dp, reg_par = -1.0_dp, &
sigma_max = -1.0_dp, wc = -1.0_dp, wmax = -1.0_dp
REAL(KIND=dp), DIMENSION(:), POINTER :: p_metric => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: kerker_factor => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: special_metric => NULL()
REAL(KIND=dp), DIMENSION(:, :), POINTER :: weight => NULL()
REAL(KIND=dp), DIMENSION(:, :), POINTER :: norm_res_buffer => NULL()
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: fmat => NULL(), gmat => NULL(), pulay_matrix => NULL(), smat => NULL()
!
INTEGER :: nat_local, max_shell
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: acharge
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: dacharge
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: dfbroy
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: ubroy
REAL(KIND=dp), DIMENSION(:, :), POINTER :: abroy
REAL(KIND=dp), DIMENSION(:), POINTER :: wbroy
INTEGER, DIMENSION(:), POINTER :: atlist
INTEGER :: nat_local = -1, max_shell = -1
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: acharge => NULL()
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: dacharge => NULL()
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: dfbroy => NULL()
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: ubroy => NULL()
REAL(KIND=dp), DIMENSION(:, :), POINTER :: abroy => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: wbroy => NULL()
INTEGER, DIMENSION(:), POINTER :: atlist => NULL()
!
TYPE(cp_1d_z_p_type), DIMENSION(:), POINTER :: last_res, rhoin, rhoin_old
TYPE(cp_1d_z_p_type), DIMENSION(:, :), POINTER :: delta_res, u_vec, z_vec
TYPE(cp_1d_z_p_type), DIMENSION(:, :), POINTER :: drho_buffer, rhoin_buffer, res_buffer
TYPE(cp_1d_z_p_type), DIMENSION(:), POINTER :: last_res => NULL(), rhoin => NULL(), rhoin_old => NULL()
TYPE(cp_1d_z_p_type), DIMENSION(:, :), POINTER :: delta_res => NULL(), u_vec => NULL(), z_vec => NULL()
TYPE(cp_1d_z_p_type), DIMENSION(:, :), POINTER :: drho_buffer => NULL(), rhoin_buffer => NULL(), res_buffer => NULL()
!
TYPE(rho_atom_coeff), DIMENSION(:, :), POINTER :: cpc_h_lastres, cpc_s_lastres
TYPE(rho_atom_coeff), DIMENSION(:, :), POINTER :: cpc_h_in, cpc_s_in
TYPE(rho_atom_coeff), DIMENSION(:, :), POINTER :: cpc_h_old, cpc_s_old
TYPE(rho_atom_coeff), DIMENSION(:, :, :), POINTER :: cpc_h_in_buffer, cpc_s_in_buffer
TYPE(rho_atom_coeff), DIMENSION(:, :, :), POINTER :: cpc_h_res_buffer, cpc_s_res_buffer
TYPE(rho_atom_coeff), DIMENSION(:, :, :), POINTER :: dcpc_h_in, dcpc_s_in
TYPE(rho_atom_coeff), DIMENSION(:, :), POINTER :: cpc_h_lastres => NULL(), cpc_s_lastres => NULL()
TYPE(rho_atom_coeff), DIMENSION(:, :), POINTER :: cpc_h_in => NULL(), cpc_s_in => NULL()
TYPE(rho_atom_coeff), DIMENSION(:, :), POINTER :: cpc_h_old => NULL(), cpc_s_old => NULL()
TYPE(rho_atom_coeff), DIMENSION(:, :, :), POINTER :: cpc_h_in_buffer => NULL(), cpc_s_in_buffer => NULL()
TYPE(rho_atom_coeff), DIMENSION(:, :, :), POINTER :: cpc_h_res_buffer => NULL(), cpc_s_res_buffer => NULL()
TYPE(rho_atom_coeff), DIMENSION(:, :, :), POINTER :: dcpc_h_in => NULL(), dcpc_s_in => NULL()
END TYPE mixing_storage_type
CONTAINS

View file

@ -26,46 +26,46 @@ MODULE qs_dftb_types
! **************************************************************************************************
TYPE qs_dftb_atom_type
! PRIVATE
CHARACTER(LEN=default_string_length) :: typ
CHARACTER(LEN=default_string_length) :: name
LOGICAL :: defined
INTEGER :: z !atomic number
REAL(KIND=dp) :: zeff !effective core charge
INTEGER :: natorb !number of orbitals
INTEGER :: lmax !max angular momentum
REAL(KIND=dp), DIMENSION(0:3) :: skself !orbital energy
REAL(KIND=dp), DIMENSION(0:3) :: occupation !free atom occupation
REAL(KIND=dp), DIMENSION(0:3) :: eta !orbital hardness
REAL(KIND=dp) :: energy !free atom energy
REAL(KIND=dp) :: cutoff !cutoff radius for f matrix
REAL(KIND=dp) :: xi, di !London parameter
REAL(KIND=dp) :: rcdisp !cutoff radius for vdW
REAL(KIND=dp) :: dudq !DFTB3 hardness derivative
CHARACTER(LEN=default_string_length) :: typ = ""
CHARACTER(LEN=default_string_length) :: name = ""
LOGICAL :: defined = .FALSE.
INTEGER :: z = -1 !atomic number
REAL(KIND=dp) :: zeff = -1.0_dp !effective core charge
INTEGER :: natorb = -1 !number of orbitals
INTEGER :: lmax = -1 !max angular momentum
REAL(KIND=dp), DIMENSION(0:3) :: skself = -1.0_dp !orbital energy
REAL(KIND=dp), DIMENSION(0:3) :: occupation = -1.0_dp !free atom occupation
REAL(KIND=dp), DIMENSION(0:3) :: eta = -1.0_dp !orbital hardness
REAL(KIND=dp) :: energy = -1.0_dp !free atom energy
REAL(KIND=dp) :: cutoff = -1.0_dp !cutoff radius for f matrix
REAL(KIND=dp) :: xi = -1.0_dp, di = -1.0_dp !London parameter
REAL(KIND=dp) :: rcdisp = -1.0_dp !cutoff radius for vdW
REAL(KIND=dp) :: dudq = -1.0_dp !DFTB3 hardness derivative
END TYPE qs_dftb_atom_type
! **************************************************************************************************
TYPE qs_dftb_pairpot_type
REAL(KIND=dp) :: dgrd ! grid spacing
INTEGER :: ngrd ! number of grid points
INTEGER :: ngrdcut ! grid cutoff
INTEGER :: llm ! number of interactions (l,l,m)
INTEGER :: n_urpoly ! order of polynomial
REAL(KIND=dp) :: urep_cut ! cutoff for repulsive pot.
REAL(KIND=dp), DIMENSION(10) :: urep ! coefficients for repulsive
REAL(KIND=dp) :: dgrd = -1.0_dp ! grid spacing
INTEGER :: ngrd = -1 ! number of grid points
INTEGER :: ngrdcut = -1 ! grid cutoff
INTEGER :: llm = -1 ! number of interactions (l,l,m)
INTEGER :: n_urpoly = -1 ! order of polynomial
REAL(KIND=dp) :: urep_cut = -1.0_dp ! cutoff for repulsive pot.
REAL(KIND=dp), DIMENSION(10) :: urep = -1.0_dp ! coefficients for repulsive
! potential in polynomial form
INTEGER :: spdim ! number of points for
INTEGER :: spdim = -1 ! number of points for
! spline representation
REAL(KIND=dp) :: s_cut ! left-hand cutoff
REAL(KIND=dp), DIMENSION(3) :: srep ! coefficients for extrapolation
REAL(KIND=dp), DIMENSION(:, :), POINTER :: spxr ! spline points
REAL(KIND=dp), DIMENSION(:, :), POINTER :: scoeff ! spline coefficients
REAL(KIND=dp), DIMENSION(2) :: surr ! coefficients for last point
REAL(KIND=dp), DIMENSION(:, :), POINTER :: fmat ! Slater-Koster table (Hamiltonian)
REAL(KIND=dp), DIMENSION(:, :), POINTER :: smat ! Slater-Koster table (overlap)
REAL(KIND=dp) :: s_cut = -1.0_dp ! left-hand cutoff
REAL(KIND=dp), DIMENSION(3) :: srep = -1.0_dp ! coefficients for extrapolation
REAL(KIND=dp), DIMENSION(:, :), POINTER :: spxr => NULL() ! spline points
REAL(KIND=dp), DIMENSION(:, :), POINTER :: scoeff => NULL() ! spline coefficients
REAL(KIND=dp), DIMENSION(2) :: surr = -1.0_dp ! coefficients for last point
REAL(KIND=dp), DIMENSION(:, :), POINTER :: fmat => NULL() ! Slater-Koster table (Hamiltonian)
REAL(KIND=dp), DIMENSION(:, :), POINTER :: smat => NULL() ! Slater-Koster table (overlap)
! van der Waals parameter
REAL(KIND=dp) :: xij, dij ! standard LJ parameters
REAL(KIND=dp) :: x0ij ! Evdw(x0) = 0
REAL(KIND=dp) :: a, b, c ! Short range polynomial coeffs
REAL(KIND=dp) :: xij = -1.0_dp, dij = -1.0_dp ! standard LJ parameters
REAL(KIND=dp) :: x0ij = -1.0_dp ! Evdw(x0) = 0
REAL(KIND=dp) :: a = -1.0_dp, b = -1.0_dp, c = -1.0_dp ! Short range polynomial coeffs
END TYPE qs_dftb_pairpot_type
! *** Public data types ***

View file

@ -92,10 +92,10 @@ MODULE qs_dispersion_pairpot
qs_dispersion_setcn
TYPE dcnum_type
INTEGER :: neighbors
INTEGER, DIMENSION(:), POINTER :: nlist
REAL(KIND=dp), DIMENSION(:), POINTER :: dvals
REAL(KIND=dp), DIMENSION(:, :), POINTER :: rik
INTEGER :: neighbors = -1
INTEGER, DIMENSION(:), POINTER :: nlist => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: dvals => NULL()
REAL(KIND=dp), DIMENSION(:, :), POINTER :: rik => NULL()
END TYPE dcnum_type
PUBLIC :: d3_cnumber, dcnum_type, dcnum_distribute

View file

@ -29,88 +29,88 @@ MODULE qs_dispersion_types
INTEGER, PARAMETER :: dftd3_pp = 2
TYPE qs_dispersion_type
INTEGER :: TYPE
INTEGER :: pp_type
INTEGER :: nl_type
CHARACTER(LEN=default_string_length) :: ref_functional
REAL(KIND=dp) :: scaling
REAL(KIND=dp) :: rc_disp
REAL(KIND=dp) :: exp_pre
TYPE(section_vals_type), POINTER :: dftd_section
LOGICAL :: verbose !extended output
CHARACTER(LEN=default_string_length) :: parameter_file_name
CHARACTER(LEN=default_string_length) :: kernel_file_name
INTEGER :: TYPE = -1
INTEGER :: pp_type = -1
INTEGER :: nl_type = -1
CHARACTER(LEN=default_string_length) :: ref_functional = ""
REAL(KIND=dp) :: scaling = -1.0_dp
REAL(KIND=dp) :: rc_disp = -1.0_dp
REAL(KIND=dp) :: exp_pre = -1.0_dp
TYPE(section_vals_type), POINTER :: dftd_section => NULL()
LOGICAL :: verbose = .FALSE. !extended output
CHARACTER(LEN=default_string_length) :: parameter_file_name = ""
CHARACTER(LEN=default_string_length) :: kernel_file_name = ""
!DFT-D3 global parameters
INTEGER :: max_elem !elements parametrized
INTEGER :: maxc !max coordination number references per element
REAL(KIND=dp) :: k1, k2, k3 !ad hoc parameters
REAL(KIND=dp) :: alp !ad hoc parameters
REAL(KIND=dp) :: s6, s8, sr6 !scaling parameters
REAL(KIND=dp) :: a1, a2 !BJ scaling parameters
REAL(KIND=dp) :: eps_cn
LOGICAL :: doabc !neglect C9 terms
LOGICAL :: c9cnst !use constant c9 terms
LOGICAL :: lrc !calculate a long range correction
LOGICAL :: srb !calculate a short range bond correction
REAL(KIND=dp), DIMENSION(4) :: srb_params ! parameters for SRB (s,g,t1,t2)
INTEGER :: max_elem = -1 !elements parametrized
INTEGER :: maxc = -1 !max coordination number references per element
REAL(KIND=dp) :: k1 = -1.0_dp, k2 = -1.0_dp, k3 = -1.0_dp !ad hoc parameters
REAL(KIND=dp) :: alp = -1.0_dp !ad hoc parameters
REAL(KIND=dp) :: s6 = -1.0_dp, s8 = -1.0_dp, sr6 = -1.0_dp !scaling parameters
REAL(KIND=dp) :: a1 = -1.0_dp, a2 = -1.0_dp !BJ scaling parameters
REAL(KIND=dp) :: eps_cn = -1.0_dp
LOGICAL :: doabc = .FALSE. !neglect C9 terms
LOGICAL :: c9cnst = .FALSE. !use constant c9 terms
LOGICAL :: lrc = .FALSE. !calculate a long range correction
LOGICAL :: srb = .FALSE. !calculate a short range bond correction
REAL(KIND=dp), DIMENSION(4) :: srb_params = -1.0_dp ! parameters for SRB (s,g,t1,t2)
TYPE(neighbor_list_set_p_type), &
DIMENSION(:), POINTER :: sab_vdw, sab_cn ! neighborlists for pair interactions
DIMENSION(:), POINTER :: sab_vdw => NULL(), sab_cn => NULL() ! neighborlists for pair interactions
REAL(KIND=dp), DIMENSION(:, :, :, :, :), POINTER &
:: c6ab
INTEGER, DIMENSION(:), POINTER :: maxci
REAL(KIND=dp), DIMENSION(:, :), POINTER :: r0ab
REAL(KIND=dp), DIMENSION(:), POINTER :: rcov !covalent radii
REAL(KIND=dp), DIMENSION(:), POINTER :: r2r4 !atomic <r^2>/<r^4> values
REAL(KIND=dp), DIMENSION(:), POINTER :: cn !coordination numbers (defaults)
:: c6ab => NULL()
INTEGER, DIMENSION(:), POINTER :: maxci => NULL()
REAL(KIND=dp), DIMENSION(:, :), POINTER :: r0ab => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: rcov => NULL() !covalent radii
REAL(KIND=dp), DIMENSION(:), POINTER :: r2r4 => NULL() !atomic <r^2>/<r^4> values
REAL(KIND=dp), DIMENSION(:), POINTER :: cn => NULL() !coordination numbers (defaults)
TYPE(cn_kind_list), DIMENSION(:), POINTER &
:: cnkind
:: cnkind => NULL()
TYPE(cn_atom_list), DIMENSION(:), POINTER &
:: cnlist
:: cnlist => NULL()
! KG molecular corrections
LOGICAL :: domol
REAL(KIND=dp) :: kgc8 !s8 scaling parameter
LOGICAL :: domol = .FALSE.
REAL(KIND=dp) :: kgc8 = -1.0_dp !s8 scaling parameter
!vdW-DF variables
REAL(KIND=dp) :: pw_cutoff
REAL(KIND=dp) :: b_value, c_value, scale_rvv10 !parameters for the rVV10 functional
INTEGER :: nqs, nr_points
REAL(KIND=dp) :: pw_cutoff = -1.0_dp
REAL(KIND=dp) :: b_value = -1.0_dp, c_value = -1.0_dp, scale_rvv10 = -1.0_dp !parameters for the rVV10 functional
INTEGER :: nqs = -1, nr_points = -1
!! The number of q points and radial points
!! used in generating the kernel phi(q1*r, q2*r)
!! (see DION 14-16 and SOLER 3)
REAL(KIND=dp) :: r_max, q_cut, q_min, dk
REAL(KIND=dp) :: r_max = -1.0_dp, q_cut = -1.0_dp, q_min = -1.0_dp, dk = -1.0_dp
!! The maximum value of r, the maximum and minimum
!! values of q and the k-space spacing of grid points.
!! Note that, during a vdW run, values of q0 found
!! larger than q_cut will be saturated (SOLER 6-7) to
!! q_cut
REAL(KIND=dp), DIMENSION(:), POINTER :: q_mesh !! The values of all the q points used
REAL(KIND=dp), DIMENSION(:), POINTER :: q_mesh => NULL() !! The values of all the q points used
REAL(KIND=dp), DIMENSION(:, :, :), POINTER &
:: kernel !! A matrix holding the Fourier transformed kernel function
:: kernel => NULL() !! A matrix holding the Fourier transformed kernel function
!! for each pair of q values. The ordering is
!! kernel(k_point, q1_value, q2_value)
REAL(KIND=dp), DIMENSION(:, :, :), POINTER &
:: d2phi_dk2 !! A matrix holding the second derivatives of the above
:: d2phi_dk2 => NULL() !! A matrix holding the second derivatives of the above
!! kernel matrix at each of the q points. Stored as
!! d2phi_dk2(k_point, q1_value, q2_value)
REAL(KIND=dp), DIMENSION(:, :), POINTER :: d2y_dx2 !! 2nd derivatives of q_mesh for interpolation
INTEGER, DIMENSION(:, :), POINTER :: d3_exclude_pair
INTEGER :: nd3_exclude_pair
REAL(KIND=dp), DIMENSION(:, :), POINTER :: d2y_dx2 => NULL() !! 2nd derivatives of q_mesh for interpolation
INTEGER, DIMENSION(:, :), POINTER :: d3_exclude_pair => NULL()
INTEGER :: nd3_exclude_pair = -1
END TYPE qs_dispersion_type
TYPE qs_atom_dispersion_type
INTEGER :: TYPE
LOGICAL :: defined
REAL(KIND=dp) :: vdw_radii !van der Waals radii
REAL(KIND=dp) :: c6 !c6 coefficients
INTEGER :: TYPE = -1
LOGICAL :: defined = .FALSE.
REAL(KIND=dp) :: vdw_radii = -1.0_dp !van der Waals radii
REAL(KIND=dp) :: c6 = -1.0_dp !c6 coefficients
END TYPE qs_atom_dispersion_type
TYPE cn_kind_list
REAL(KIND=dp) :: cnum
INTEGER :: kind
REAL(KIND=dp) :: cnum = -1.0_dp
INTEGER :: kind = -1
END TYPE cn_kind_list
TYPE cn_atom_list
REAL(KIND=dp) :: cnum
INTEGER :: natom
INTEGER, DIMENSION(:), POINTER :: atom
REAL(KIND=dp) :: cnum = -1.0_dp
INTEGER :: natom = -1
INTEGER, DIMENSION(:), POINTER :: atom => NULL()
END TYPE cn_atom_list
! **************************************************************************************************

View file

@ -74,8 +74,8 @@ MODULE qs_energy_types
surf_dipole = 0.0_dp, &
embed_corr = 0.0_dp, & ! correction for embedding potential
xtb_xb_inter = 0.0_dp, & ! correction for halogen bonding within GFN1-xTB
xtb_nonbonded ! correction for nonbonded interactions within GFN1-xTB
REAL(KIND=dp), DIMENSION(:), POINTER :: ddapc_restraint
xtb_nonbonded = 0.0_dp ! correction for nonbonded interactions within GFN1-xTB
REAL(KIND=dp), DIMENSION(:), POINTER :: ddapc_restraint => NULL()
END TYPE qs_energy_type
! Public data types

View file

@ -213,101 +213,101 @@ MODULE qs_environment_types
! **************************************************************************************************
TYPE qs_environment_type
LOGICAL :: qmmm, qmmm_periodic
LOGICAL :: requires_mo_derivs
LOGICAL :: requires_matrix_vxc
LOGICAL :: has_unit_metric
LOGICAL :: run_rtp
LOGICAL :: linres_run
LOGICAL :: calc_image_preconditioner
LOGICAL :: do_transport
LOGICAL :: single_point_run
LOGICAL :: given_embed_pot
LOGICAL :: energy_correction
REAL(KIND=dp) :: sim_time
REAL(KIND=dp) :: start_time, target_time
REAL(KIND=dp), DIMENSION(:, :), POINTER :: image_matrix
REAL(KIND=dp), DIMENSION(:), POINTER :: image_coeff
INTEGER, DIMENSION(:), POINTER :: ipiv
INTEGER :: sim_step
TYPE(ls_scf_env_type), POINTER :: ls_scf_env
TYPE(almo_scf_env_type), POINTER :: almo_scf_env
TYPE(transport_env_type), POINTER :: transport_env
TYPE(cell_type), POINTER :: super_cell
TYPE(mo_set_type), DIMENSION(:), POINTER :: mos
TYPE(cp_fm_type), DIMENSION(:), POINTER :: mo_loc_history
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: mo_derivs
TYPE(scf_control_type), POINTER :: scf_control
TYPE(rel_control_type), POINTER :: rel_control
LOGICAL :: qmmm = .FALSE., qmmm_periodic = .FALSE.
LOGICAL :: requires_mo_derivs = .FALSE.
LOGICAL :: requires_matrix_vxc = .FALSE.
LOGICAL :: has_unit_metric = .FALSE.
LOGICAL :: run_rtp = .FALSE.
LOGICAL :: linres_run = .FALSE.
LOGICAL :: calc_image_preconditioner = .FALSE.
LOGICAL :: do_transport = .FALSE.
LOGICAL :: single_point_run = .FALSE.
LOGICAL :: given_embed_pot = .FALSE.
LOGICAL :: energy_correction = .FALSE.
REAL(KIND=dp) :: sim_time = -1.0_dp
REAL(KIND=dp) :: start_time = -1.0_dp, target_time = -1.0_dp
REAL(KIND=dp), DIMENSION(:, :), POINTER :: image_matrix => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: image_coeff => NULL()
INTEGER, DIMENSION(:), POINTER :: ipiv => NULL()
INTEGER :: sim_step = -1
TYPE(ls_scf_env_type), POINTER :: ls_scf_env => NULL()
TYPE(almo_scf_env_type), POINTER :: almo_scf_env => NULL()
TYPE(transport_env_type), POINTER :: transport_env => NULL()
TYPE(cell_type), POINTER :: super_cell => NULL()
TYPE(mo_set_type), DIMENSION(:), POINTER :: mos => NULL()
TYPE(cp_fm_type), DIMENSION(:), POINTER :: mo_loc_history => NULL()
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: mo_derivs => NULL()
TYPE(scf_control_type), POINTER :: scf_control => NULL()
TYPE(rel_control_type), POINTER :: rel_control => NULL()
! ZMP adding variables
TYPE(qs_rho_type), POINTER :: rho_external
TYPE(pw_r3d_rs_type), POINTER :: external_vxc
TYPE(pw_r3d_rs_type), POINTER :: mask
TYPE(qs_charges_type), POINTER :: qs_charges
TYPE(qs_ks_env_type), POINTER :: ks_env
TYPE(qs_ks_qmmm_env_type), POINTER :: ks_qmmm_env
TYPE(qmmm_env_qm_type), POINTER :: qmmm_env_qm
TYPE(qs_wf_history_type), POINTER :: wf_history
TYPE(qs_scf_env_type), POINTER :: scf_env
TYPE(qs_matrix_pools_type), POINTER :: mpools
TYPE(oce_matrix_type), POINTER :: oce
TYPE(local_rho_type), POINTER :: local_rho_set
TYPE(hartree_local_type), POINTER :: hartree_local
TYPE(section_vals_type), POINTER :: input
TYPE(linres_control_type), POINTER :: linres_control
TYPE(xas_environment_type), POINTER :: xas_env
TYPE(cp_ddapc_type), POINTER :: cp_ddapc_env
TYPE(cp_ddapc_ewald_type), POINTER :: cp_ddapc_ewald
REAL(KIND=dp), DIMENSION(:, :), POINTER :: outer_scf_history
INTEGER :: outer_scf_ihistory
REAL(KIND=dp), DIMENSION(:, :), POINTER :: gradient_history, &
variable_history
TYPE(hfx_type), DIMENSION(:, :), POINTER :: x_data
TYPE(et_coupling_type), POINTER :: et_coupling
TYPE(qs_dftb_pairpot_type), DIMENSION(:, :), POINTER :: dftb_potential
TYPE(admm_type), POINTER :: admm_env
TYPE(active_space_type), POINTER :: active_space
TYPE(qs_rho_type), POINTER :: rho_external => NULL()
TYPE(pw_r3d_rs_type), POINTER :: external_vxc => NULL()
TYPE(pw_r3d_rs_type), POINTER :: mask => NULL()
TYPE(qs_charges_type), POINTER :: qs_charges => NULL()
TYPE(qs_ks_env_type), POINTER :: ks_env => NULL()
TYPE(qs_ks_qmmm_env_type), POINTER :: ks_qmmm_env => NULL()
TYPE(qmmm_env_qm_type), POINTER :: qmmm_env_qm => NULL()
TYPE(qs_wf_history_type), POINTER :: wf_history => NULL()
TYPE(qs_scf_env_type), POINTER :: scf_env => NULL()
TYPE(qs_matrix_pools_type), POINTER :: mpools => NULL()
TYPE(oce_matrix_type), POINTER :: oce => NULL()
TYPE(local_rho_type), POINTER :: local_rho_set => NULL()
TYPE(hartree_local_type), POINTER :: hartree_local => NULL()
TYPE(section_vals_type), POINTER :: input => NULL()
TYPE(linres_control_type), POINTER :: linres_control => NULL()
TYPE(xas_environment_type), POINTER :: xas_env => NULL()
TYPE(cp_ddapc_type), POINTER :: cp_ddapc_env => NULL()
TYPE(cp_ddapc_ewald_type), POINTER :: cp_ddapc_ewald => NULL()
REAL(KIND=dp), DIMENSION(:, :), POINTER :: outer_scf_history => NULL()
INTEGER :: outer_scf_ihistory = -1
REAL(KIND=dp), DIMENSION(:, :), POINTER :: gradient_history => NULL(), &
variable_history => NULL()
TYPE(hfx_type), DIMENSION(:, :), POINTER :: x_data => NULL()
TYPE(et_coupling_type), POINTER :: et_coupling => NULL()
TYPE(qs_dftb_pairpot_type), DIMENSION(:, :), POINTER :: dftb_potential => NULL()
TYPE(admm_type), POINTER :: admm_env => NULL()
TYPE(active_space_type), POINTER :: active_space => NULL()
! LRI
TYPE(lri_environment_type), POINTER :: lri_env
TYPE(lri_density_type), POINTER :: lri_density
TYPE(lri_environment_type), POINTER :: lri_env => NULL()
TYPE(lri_density_type), POINTER :: lri_density => NULL()
! Energy correction
TYPE(energy_correction_type), POINTER :: ec_env
TYPE(energy_correction_type), POINTER :: ec_env => NULL()
! Excited States
LOGICAL :: excited_state
TYPE(excited_energy_type), POINTER :: exstate_env
LOGICAL :: excited_state = .FALSE.
TYPE(excited_energy_type), POINTER :: exstate_env => NULL()
! Empirical dispersion
TYPE(qs_dispersion_type), POINTER :: dispersion_env
TYPE(qs_dispersion_type), POINTER :: dispersion_env => NULL()
! Empirical geometrical BSSE correction
TYPE(qs_gcp_type), POINTER :: gcp_env
TYPE(qs_gcp_type), POINTER :: gcp_env => NULL()
! Semi-empirical and DFTB types
TYPE(ewald_environment_type), POINTER :: ewald_env
TYPE(ewald_pw_type), POINTER :: ewald_pw
TYPE(ewald_environment_type), POINTER :: ewald_env => NULL()
TYPE(ewald_pw_type), POINTER :: ewald_pw => NULL()
! Semi-empirical types
TYPE(se_taper_type), POINTER :: se_taper
TYPE(semi_empirical_si_type), POINTER :: se_store_int_env
TYPE(nddo_mpole_type), POINTER :: se_nddo_mpole
TYPE(fist_nonbond_env_type), POINTER :: se_nonbond_env
TYPE(rt_prop_type), POINTER :: rtp
TYPE(efield_berry_type), POINTER :: efield
TYPE(se_taper_type), POINTER :: se_taper => NULL()
TYPE(semi_empirical_si_type), POINTER :: se_store_int_env => NULL()
TYPE(nddo_mpole_type), POINTER :: se_nddo_mpole => NULL()
TYPE(fist_nonbond_env_type), POINTER :: se_nonbond_env => NULL()
TYPE(rt_prop_type), POINTER :: rtp => NULL()
TYPE(efield_berry_type), POINTER :: efield => NULL()
! a history for the broyden ot
REAL(KIND=dp) :: broyden_adaptive_sigma
REAL(KIND=dp) :: broyden_adaptive_sigma = -1.0_dp
TYPE(mp2_type), POINTER :: mp2_env => NULL()
TYPE(post_scf_bandstructure_type), POINTER :: bs_env => NULL()
TYPE(kg_environment_type), POINTER :: kg_env
TYPE(kg_environment_type), POINTER :: kg_env => NULL()
TYPE(wannier_centres_type), POINTER, DIMENSION(:) :: WannierCentres => NULL()
TYPE(molecular_scf_guess_env_type), POINTER :: molecular_scf_guess_env => NULL()
! Subsystem densities
TYPE(qs_rho_p_type), DIMENSION(:), POINTER :: subsys_dens
TYPE(qs_rho_p_type), DIMENSION(:), POINTER :: subsys_dens => NULL()
! Embedding potential
TYPE(pw_r3d_rs_type), POINTER :: embed_pot
TYPE(pw_r3d_rs_type), POINTER :: spin_embed_pot
TYPE(pw_r3d_rs_type), POINTER :: embed_pot => NULL()
TYPE(pw_r3d_rs_type), POINTER :: spin_embed_pot => NULL()
! Polarizability tensor
TYPE(polar_env_type), POINTER :: polar_env
TYPE(polar_env_type), POINTER :: polar_env => NULL()
! Resp charges
REAL(KIND=dp), DIMENSION(:), POINTER :: rhs => NULL()
REAL(KIND=dp) :: total_zeff_corr, surface_dipole_moment
LOGICAL :: surface_dipole_switch_off
TYPE(mo_set_type), DIMENSION(:), POINTER :: mos_last_converged
REAL(KIND=dp) :: total_zeff_corr = -1.0_dp, surface_dipole_moment = -1.0_dp
LOGICAL :: surface_dipole_switch_off = .FALSE.
TYPE(mo_set_type), DIMENSION(:), POINTER :: mos_last_converged => NULL()
END TYPE qs_environment_type
CONTAINS

View file

@ -78,13 +78,13 @@ MODULE qs_fb_atomic_halo_types
!> \author Lianheng Tong (LT) lianheng.tong@kcl.ac.uk
! **************************************************************************************************
TYPE fb_atomic_halo_data
INTEGER :: owner_atom
INTEGER :: owner_id_in_halo
INTEGER :: natoms
INTEGER :: nelectrons
INTEGER, DIMENSION(:), POINTER :: halo_atoms
LOGICAL :: sorted
REAL(KIND=dp) :: cost
INTEGER :: owner_atom = -1
INTEGER :: owner_id_in_halo = -1
INTEGER :: natoms = -1
INTEGER :: nelectrons = -1
INTEGER, DIMENSION(:), POINTER :: halo_atoms => NULL()
LOGICAL :: sorted = .FALSE.
REAL(KIND=dp) :: cost = -1.0_dp
END TYPE fb_atomic_halo_data
! **************************************************************************************************
@ -92,7 +92,7 @@ MODULE qs_fb_atomic_halo_types
!> \author Lianheng Tong (LT) lianheng.tong@kcl.ac.uk
! **************************************************************************************************
TYPE fb_atomic_halo_obj
TYPE(fb_atomic_halo_data), POINTER, PRIVATE :: obj
TYPE(fb_atomic_halo_data), POINTER, PRIVATE :: obj => NULL()
END TYPE fb_atomic_halo_obj
! **************************************************************************************************
@ -104,9 +104,9 @@ MODULE qs_fb_atomic_halo_types
!> \author Lianheng Tong (LT) lianheng.tong@kcl.ac.uk
! **************************************************************************************************
TYPE fb_atomic_halo_list_data
INTEGER :: nhalos
INTEGER :: max_nhalos
TYPE(fb_atomic_halo_obj), DIMENSION(:), POINTER :: halos
INTEGER :: nhalos = -1
INTEGER :: max_nhalos = -1
TYPE(fb_atomic_halo_obj), DIMENSION(:), POINTER :: halos => NULL()
END TYPE fb_atomic_halo_list_data
! **************************************************************************************************
@ -114,7 +114,7 @@ MODULE qs_fb_atomic_halo_types
!> \author Lianheng Tong (LT) lianheng.tong@kcl.ac.uk
! **************************************************************************************************
TYPE fb_atomic_halo_list_obj
TYPE(fb_atomic_halo_list_data), POINTER, PRIVATE :: obj
TYPE(fb_atomic_halo_list_data), POINTER, PRIVATE :: obj => NULL()
END TYPE fb_atomic_halo_list_obj
CONTAINS

View file

@ -41,10 +41,10 @@ MODULE qs_fb_buffer_types
!> \author Lianheng Tong (LT) lianheng.tong@kcl.ac.uk
! **********************************************************************
TYPE fb_buffer_i_data
INTEGER :: ref_count
INTEGER :: n
INTEGER, DIMENSION(:), POINTER :: disps
INTEGER, DIMENSION(:), POINTER :: data_1d
INTEGER :: ref_count = -1
INTEGER :: n = -1
INTEGER, DIMENSION(:), POINTER :: disps => NULL()
INTEGER, DIMENSION(:), POINTER :: data_1d => NULL()
END TYPE fb_buffer_i_data
! **********************************************************************
@ -68,10 +68,10 @@ MODULE qs_fb_buffer_types
!> \author Lianheng Tong (LT) lianheng.tong@kcl.ac.uk
! **********************************************************************
TYPE fb_buffer_d_data
INTEGER :: ref_count
INTEGER :: n
INTEGER, DIMENSION(:), POINTER :: disps
REAL(KIND=dp), DIMENSION(:), POINTER :: data_1d
INTEGER :: ref_count = -1
INTEGER :: n = -1
INTEGER, DIMENSION(:), POINTER :: disps => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: data_1d => NULL()
END TYPE fb_buffer_d_data
! **********************************************************************

View file

@ -96,10 +96,10 @@ MODULE qs_fb_com_tasks_types
! **********************************************************************
TYPE fb_com_tasks_data
! use pure integer arrays to facilitate easier MPI coms
INTEGER(KIND=int_8), DIMENSION(:, :), POINTER :: tasks
INTEGER :: task_dim
INTEGER :: ntasks
INTEGER :: nencode
INTEGER(KIND=int_8), DIMENSION(:, :), POINTER :: tasks => NULL()
INTEGER :: task_dim = -1
INTEGER :: ntasks = -1
INTEGER :: nencode = -1
END TYPE fb_com_tasks_data
!**********************************************************************
@ -107,7 +107,7 @@ MODULE qs_fb_com_tasks_types
!> \author Lianheng Tong (LT) lianheng.tong@kcl.ac.uk
!**********************************************************************
TYPE fb_com_tasks_obj
TYPE(fb_com_tasks_data), POINTER, PRIVATE :: obj
TYPE(fb_com_tasks_data), POINTER, PRIVATE :: obj => NULL()
END TYPE fb_com_tasks_obj
! **********************************************************************
@ -126,9 +126,9 @@ MODULE qs_fb_com_tasks_types
!> \author Lianheng Tong (LT) lianheng.tong@kcl.ac.uk
! **********************************************************************
TYPE fb_com_atom_pairs_data
INTEGER(KIND=int_8), DIMENSION(:), POINTER :: pairs
INTEGER :: npairs
INTEGER :: natoms_encode
INTEGER(KIND=int_8), DIMENSION(:), POINTER :: pairs => NULL()
INTEGER :: npairs = -1
INTEGER :: natoms_encode = -1
END TYPE fb_com_atom_pairs_data
! **********************************************************************
@ -136,7 +136,7 @@ MODULE qs_fb_com_tasks_types
!> \author Lianheng Tong (LT) lianheng.tong@kcl.ac.uk
! **********************************************************************
TYPE fb_com_atom_pairs_obj
TYPE(fb_com_atom_pairs_data), POINTER, PRIVATE :: obj
TYPE(fb_com_atom_pairs_data), POINTER, PRIVATE :: obj => NULL()
END TYPE fb_com_atom_pairs_obj
CONTAINS

View file

@ -51,8 +51,8 @@ MODULE qs_fb_distribution_methods
!> \author Lianheng Tong (LT) lianheng.tong@kcl.ac.uk
! **************************************************************************************************
TYPE fb_distribution_element
INTEGER :: id
REAL(KIND=dp) :: cost
INTEGER :: id = -1
REAL(KIND=dp) :: cost = -1.0_dp
END TYPE fb_distribution_element
! **************************************************************************************************
@ -64,8 +64,8 @@ MODULE qs_fb_distribution_methods
! **************************************************************************************************
TYPE fb_distribution_list
TYPE(fb_distribution_element), DIMENSION(:), POINTER :: list => NULL()
INTEGER :: nelements
REAL(KIND=dp) :: cost
INTEGER :: nelements = -1
REAL(KIND=dp) :: cost = -1.0_dp
END TYPE fb_distribution_list
! **************************************************************************************************
@ -86,7 +86,7 @@ MODULE qs_fb_distribution_methods
! **************************************************************************************************
TYPE fb_preferred_procs_list
INTEGER, DIMENSION(:), POINTER :: list => NULL()
INTEGER :: nprocs
INTEGER :: nprocs = -1
END TYPE fb_preferred_procs_list
! Parameters related to automatic resizing of the hash_table:

View file

@ -65,16 +65,16 @@ MODULE qs_fb_env_types
!> \author Lianheng Tong (LT) lianheng.tong@kcl.ac.uk
! **********************************************************************
TYPE fb_env_data
INTEGER :: ref_count
REAL(KIND=dp), DIMENSION(:), POINTER :: rcut
TYPE(fb_atomic_halo_list_obj) :: atomic_halos
TYPE(fb_trial_fns_obj) :: trial_fns
REAL(KIND=dp) :: filter_temperature
REAL(KIND=dp) :: auto_cutoff_scale
REAL(KIND=dp) :: eps_default
LOGICAL :: collective_com
INTEGER, DIMENSION(:), POINTER :: local_atoms
INTEGER :: nlocal_atoms
INTEGER :: ref_count = -1
REAL(KIND=dp), DIMENSION(:), POINTER :: rcut => NULL()
TYPE(fb_atomic_halo_list_obj) :: atomic_halos = fb_atomic_halo_list_obj()
TYPE(fb_trial_fns_obj) :: trial_fns = fb_trial_fns_obj()
REAL(KIND=dp) :: filter_temperature = -1.0_dp
REAL(KIND=dp) :: auto_cutoff_scale = -1.0_dp
REAL(KIND=dp) :: eps_default = -1.0_dp
LOGICAL :: collective_com = .FALSE.
INTEGER, DIMENSION(:), POINTER :: local_atoms => NULL()
INTEGER :: nlocal_atoms = -1
END TYPE fb_env_data
! **************************************************************************************************
@ -84,7 +84,7 @@ MODULE qs_fb_env_types
!> \author Lianheng Tong (LT) lianheng.tong@kcl.ac.uk
! **************************************************************************************************
TYPE fb_env_obj
TYPE(fb_env_data), POINTER, PRIVATE :: obj
TYPE(fb_env_data), POINTER, PRIVATE :: obj => NULL()
END TYPE fb_env_obj
CONTAINS

View file

@ -62,8 +62,8 @@ MODULE qs_fb_hash_table_types
!> \author Lianheng Tong (LT) lianheng.tong@kcl.ac.uk
! **************************************************************************************************
TYPE fb_hash_table_element
INTEGER(KIND=int_8) :: key
INTEGER :: val
INTEGER(KIND=int_8) :: key = -1_int_8
INTEGER :: val = -1
END TYPE fb_hash_table_element
! **************************************************************************************************
@ -78,9 +78,9 @@ MODULE qs_fb_hash_table_types
! **************************************************************************************************
TYPE fb_hash_table_data
TYPE(fb_hash_table_element), DIMENSION(:), POINTER :: table => NULL()
INTEGER :: nelements
INTEGER :: nmax
INTEGER :: prime
INTEGER :: nelements = -1
INTEGER :: nmax = -1
INTEGER :: prime = -1
END TYPE fb_hash_table_data
! **************************************************************************************************

View file

@ -60,11 +60,11 @@ MODULE qs_fb_matrix_data_types
!> \author Lianheng Tong (LT) lianheng.tong@kcl.ac.uk
! **************************************************************************************************
TYPE fb_matrix_data_data
INTEGER :: nmax
INTEGER :: nblks
INTEGER :: nencode
TYPE(fb_hash_table_obj) :: ind
TYPE(fb_buffer_d_obj) :: blks
INTEGER :: nmax = -1
INTEGER :: nblks = -1
INTEGER :: nencode = -1
TYPE(fb_hash_table_obj) :: ind = fb_hash_table_obj()
TYPE(fb_buffer_d_obj) :: blks = fb_buffer_d_obj()
INTEGER, DIMENSION(:), POINTER :: lds => NULL()
END TYPE fb_matrix_data_data

View file

@ -40,9 +40,9 @@ MODULE qs_fb_trial_fns_types
!> \author Lianheng Tong (LT) lianheng.tong@kcl.ac.uk
! **************************************************************************************************
TYPE fb_trial_fns_data
INTEGER :: ref_count
INTEGER, DIMENSION(:), POINTER :: nfunctions
INTEGER, DIMENSION(:, :), POINTER :: functions
INTEGER :: ref_count = -1
INTEGER, DIMENSION(:), POINTER :: nfunctions => NULL()
INTEGER, DIMENSION(:, :), POINTER :: functions => NULL()
END TYPE fb_trial_fns_data
! **************************************************************************************************
@ -52,7 +52,7 @@ MODULE qs_fb_trial_fns_types
!> \author Lianheng Tong (LT) lianheng.tong@kcl.ac.uk
! **************************************************************************************************
TYPE fb_trial_fns_obj
TYPE(fb_trial_fns_data), POINTER, PRIVATE :: obj
TYPE(fb_trial_fns_data), POINTER, PRIVATE :: obj => NULL()
END TYPE fb_trial_fns_obj
CONTAINS

View file

@ -26,30 +26,30 @@ MODULE qs_force_types
PRIVATE
TYPE qs_force_type
REAL(KIND=dp), DIMENSION(:, :), POINTER :: all_potential, &
core_overlap, &
gth_ppl, &
gth_nlcc, &
gth_ppnl, &
kinetic, &
overlap, &
overlap_admm, &
rho_core, &
rho_elec, &
rho_lri_elec, &
vhxc_atom, &
g0s_Vh_elec, &
repulsive, &
dispersion, &
gcp, &
other, &
ch_pulay, &
fock_4c, &
ehrenfest, &
efield, &
eev, &
mp2_non_sep, &
total
REAL(KIND=dp), DIMENSION(:, :), POINTER :: all_potential => NULL(), &
core_overlap => NULL(), &
gth_ppl => NULL(), &
gth_nlcc => NULL(), &
gth_ppnl => NULL(), &
kinetic => NULL(), &
overlap => NULL(), &
overlap_admm => NULL(), &
rho_core => NULL(), &
rho_elec => NULL(), &
rho_lri_elec => NULL(), &
vhxc_atom => NULL(), &
g0s_Vh_elec => NULL(), &
repulsive => NULL(), &
dispersion => NULL(), &
gcp => NULL(), &
other => NULL(), &
ch_pulay => NULL(), &
fock_4c => NULL(), &
ehrenfest => NULL(), &
efield => NULL(), &
eev => NULL(), &
mp2_non_sep => NULL(), &
total => NULL()
END TYPE qs_force_type
PUBLIC :: qs_force_type

View file

@ -25,26 +25,26 @@ MODULE qs_gcp_types
! **************************************************************************************************
TYPE qs_gcp_kind_type
INTEGER :: za
REAL(KIND=dp) :: asto
REAL(KIND=dp) :: rcsto
INTEGER :: nq
REAL(KIND=dp) :: nbvirt
REAL(KIND=dp) :: eamiss
REAL(KIND=dp), DIMENSION(6) :: al
REAL(KIND=dp), DIMENSION(6) :: cl
INTEGER :: za = -1
REAL(KIND=dp) :: asto = -1.0_dp
REAL(KIND=dp) :: rcsto = -1.0_dp
INTEGER :: nq = -1
REAL(KIND=dp) :: nbvirt = -1.0_dp
REAL(KIND=dp) :: eamiss = -1.0_dp
REAL(KIND=dp), DIMENSION(6) :: al = -1.0_dp
REAL(KIND=dp), DIMENSION(6) :: cl = -1.0_dp
END TYPE qs_gcp_kind_type
! **************************************************************************************************
TYPE qs_gcp_type
LOGICAL :: do_gcp = .FALSE.
LOGICAL :: verbose !extended output
CHARACTER(LEN=default_string_length) :: parameter_file_name
LOGICAL :: verbose = .FALSE. !extended output
CHARACTER(LEN=default_string_length) :: parameter_file_name = ""
! parameter input
CHARACTER(LEN=default_string_length), &
DIMENSION(:), POINTER :: kind_type => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: ea => NULL()
!global parameters
REAL(KIND=dp) :: alpha, beta, sigma, eta
REAL(KIND=dp) :: alpha = -1.0_dp, beta = -1.0_dp, sigma = -1.0_dp, eta = -1.0_dp
!neighborlist
TYPE(neighbor_list_set_p_type), &
DIMENSION(:), POINTER :: sab_gcp => Null() ! neighborlists for pair interactions

View file

@ -24,32 +24,32 @@ MODULE qs_grid_atom
CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'qs_grid_atom'
TYPE grid_batch_type
INTEGER :: np
REAL(KIND=dp), DIMENSION(3) :: rcenter
REAL(KIND=dp) :: rad
INTEGER :: np = -1
REAL(KIND=dp), DIMENSION(3) :: rcenter = -1.0_dp
REAL(KIND=dp) :: rad = -1.0_dp
REAL(dp), DIMENSION(:, :), ALLOCATABLE :: rco
REAL(dp), DIMENSION(:), ALLOCATABLE :: weight
END TYPE grid_batch_type
TYPE atom_integration_grid_type
INTEGER :: nr, na
INTEGER :: np, ntot
INTEGER :: lebedev_grid
INTEGER :: nr = -1, na = -1
INTEGER :: np = -1, ntot = -1
INTEGER :: lebedev_grid = -1
REAL(dp), DIMENSION(:), ALLOCATABLE :: rr
REAL(dp), DIMENSION(:), ALLOCATABLE :: wr, wa
INTEGER :: nbatch
INTEGER :: nbatch = -1
TYPE(grid_batch_type), DIMENSION(:), ALLOCATABLE :: batch
END TYPE atom_integration_grid_type
TYPE grid_atom_type
INTEGER :: quadrature
INTEGER :: nr, ng_sphere
REAL(dp), DIMENSION(:), POINTER :: rad, rad2, &
wr, wa, &
azi, cos_azi, sin_azi, &
pol, cos_pol, sin_pol, usin_azi
INTEGER :: quadrature = -1
INTEGER :: nr = -1, ng_sphere = -1
REAL(dp), DIMENSION(:), POINTER :: rad => NULL(), rad2 => NULL(), &
wr => NULL(), wa => NULL(), &
azi => NULL(), cos_azi => NULL(), sin_azi => NULL(), &
pol => NULL(), cos_pol => NULL(), sin_pol => NULL(), usin_azi => NULL()
REAL(dp), DIMENSION(:, :), &
POINTER :: rad2l, oorad2l, weight
POINTER :: rad2l => NULL(), oorad2l => NULL(), weight => NULL()
END TYPE grid_atom_type
PUBLIC :: allocate_grid_atom, create_grid_atom, deallocate_grid_atom

View file

@ -30,17 +30,17 @@ MODULE qs_harmonics_atom
CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'qs_harmonics_atom'
TYPE harmonics_atom_type
INTEGER :: max_s_harm, llmax, &
max_iso_not0, &
dmax_iso_not0, &
damax_iso_not0, &
ngrid
REAL(dp), DIMENSION(:, :), POINTER :: a, slm
REAL(dp), DIMENSION(:, :, :), POINTER :: dslm, dslm_dxyz
REAL(dp), DIMENSION(:, :, :), POINTER :: my_CG
REAL(dp), DIMENSION(:, :, :, :), POINTER :: my_CG_dxyz
REAL(dp), DIMENSION(:, :, :, :), POINTER :: my_CG_dxyz_asym
REAL(dp), DIMENSION(:), POINTER :: slm_int
INTEGER :: max_s_harm = -1, llmax = -1, &
max_iso_not0 = -1, &
dmax_iso_not0 = -1, &
damax_iso_not0 = -1, &
ngrid = -1
REAL(dp), DIMENSION(:, :), POINTER :: a => NULL(), slm => NULL()
REAL(dp), DIMENSION(:, :, :), POINTER :: dslm => NULL(), dslm_dxyz => NULL()
REAL(dp), DIMENSION(:, :, :), POINTER :: my_CG => NULL()
REAL(dp), DIMENSION(:, :, :, :), POINTER :: my_CG_dxyz => NULL()
REAL(dp), DIMENSION(:, :, :, :), POINTER :: my_CG_dxyz_asym => NULL()
REAL(dp), DIMENSION(:), POINTER :: slm_int => NULL()
END TYPE harmonics_atom_type

View file

@ -111,7 +111,7 @@ MODULE qs_initial_guess
PUBLIC :: calculate_atomic_fock_matrix
TYPE atom_matrix_type
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: mat
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: mat => NULL()
END TYPE atom_matrix_type
CONTAINS

View file

@ -49,23 +49,23 @@ MODULE qs_kernel_types
! response density
TYPE(xc_rho_set_type), POINTER :: xc_rho1_set => Null()
!> first and second derivatives of exchange-correlation functional
TYPE(xc_derivative_set_type) :: xc_deriv_set
TYPE(xc_derivative_set_type) :: xc_deriv_set = xc_derivative_set_type()
!> XC input section
LOGICAL :: do_exck
LOGICAL :: do_exck = .FALSE.
TYPE(section_vals_type), POINTER :: xc_section => Null()
!> flags which indicate required components of the exchange-correlation functional
!> (density, gradient, etc)
TYPE(xc_rho_cflags_type) :: xc_rho1_cflags
TYPE(xc_rho_cflags_type) :: xc_rho1_cflags = xc_rho_cflags_type()
!> the method used to compute position derivatives of densities and potentials
INTEGER :: deriv_method_id
INTEGER :: deriv_method_id = -1
!> the density smoothing method
INTEGER :: rho_smooth_id
INTEGER :: rho_smooth_id = -1
!> scaling coefficients in the linear combination:
!> K = alpha * K_{\alpha,\alpha} + beta * K_{\alpha,\beta}
REAL(kind=dp) :: alpha, beta
REAL(kind=dp) :: alpha = -1.0_dp, beta = -1.0_dp
!> flags for finite differences/analytic XC kernels
LOGICAL :: deriv2_analytic
LOGICAL :: deriv3_analytic
LOGICAL :: deriv2_analytic = .FALSE.
LOGICAL :: deriv3_analytic = .FALSE.
! Local resolution of the identity for Coulomb
TYPE(lri_environment_type), POINTER :: lri_env => Null()
TYPE(lri_density_type), POINTER :: lri_density => Null()

View file

@ -128,7 +128,7 @@ MODULE qs_kind_types
INTEGER :: max_scf = -1
REAL(KIND=dp) :: eps_u_ramping = 0.0_dp
REAL(KIND=dp) :: eps_scf = HUGE(0.0_dp)
REAL(KIND=dp) :: u_minus_j_target
REAL(KIND=dp) :: u_minus_j_target = 0.0_dp
REAL(KIND=dp) :: u_minus_j = 0.0_dp
REAL(KIND=dp) :: u_ramping = 0.0_dp
REAL(KIND=dp) :: U = 0.0_dp
@ -183,7 +183,7 @@ MODULE qs_kind_types
TYPE(atom_upfpot_type), POINTER :: upf_potential => Null()
!
TYPE(basis_set_container_type), &
DIMENSION(20) :: basis_sets
DIMENSION(20) :: basis_sets = basis_set_container_type()
! Atomic radii
REAL(KIND=dp) :: covalent_radius = 0.0_dp
REAL(KIND=dp) :: vdw_radius = 0.0_dp
@ -228,7 +228,7 @@ MODULE qs_kind_types
! **************************************************************************************************
TYPE qs_kind_p_type
TYPE(qs_kind_type), DIMENSION(:), &
POINTER :: qs_kind_set
POINTER :: qs_kind_set => NULL()
END TYPE qs_kind_p_type
! Public subroutines

View file

@ -45,14 +45,14 @@ MODULE qs_ks_qmmm_types
!> \author Teodoro Laino
! **************************************************************************************************
TYPE qs_ks_qmmm_env_type
INTEGER :: n_evals
REAL(KIND=dp) :: pc_ener
TYPE(pw_env_type), POINTER :: pw_env
TYPE(pw_r3d_rs_type) :: v_qmmm_rspace
TYPE(pw_r3d_rs_type), POINTER :: v_metal_rspace
TYPE(cube_info_type), DIMENSION(:), POINTER :: cube_info
INTEGER :: n_evals = -1
REAL(KIND=dp) :: pc_ener = -1.0_dp
TYPE(pw_env_type), POINTER :: pw_env => NULL()
TYPE(pw_r3d_rs_type) :: v_qmmm_rspace = pw_r3d_rs_type()
TYPE(pw_r3d_rs_type), POINTER :: v_metal_rspace => NULL()
TYPE(cube_info_type), DIMENSION(:), POINTER :: cube_info => NULL()
TYPE(dbcsr_p_type), DIMENSION(:), &
POINTER :: matrix_h
POINTER :: matrix_h => NULL()
END TYPE qs_ks_qmmm_env_type
CONTAINS

View file

@ -141,8 +141,8 @@ MODULE qs_linres_current
CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'qs_linres_current'
TYPE box_type
INTEGER :: n
REAL(dp), POINTER, DIMENSION(:, :) :: r
INTEGER :: n = -1
REAL(dp), POINTER, DIMENSION(:, :) :: r => NULL()
END TYPE box_type
REAL(dp), DIMENSION(3, 3, 3), PARAMETER :: Levi_Civita = RESHAPE((/ &
0.0_dp, 0.0_dp, 0.0_dp, 0.0_dp, 0.0_dp, -1.0_dp, 0.0_dp, 1.0_dp, 0.0_dp, &

View file

@ -78,10 +78,10 @@ MODULE qs_loc_types
!> \author MI
! **************************************************************************************************
TYPE qs_loc_env_type
LOGICAL :: do_localize, first_time
LOGICAL :: molecular_states
LOGICAL :: wannier_states
CHARACTER(LEN=default_string_length) :: tag_mo
LOGICAL :: do_localize = .FALSE., first_time = .FALSE.
LOGICAL :: molecular_states = .FALSE.
LOGICAL :: wannier_states = .FALSE.
CHARACTER(LEN=default_string_length) :: tag_mo = ""
TYPE(mp_para_env_type), POINTER :: para_env => NULL()
TYPE(cp_fm_type), DIMENSION(:), &
POINTER :: moloc_coeff => NULL()
@ -95,9 +95,9 @@ MODULE qs_loc_types
POINTER :: particle_set => NULL()
TYPE(dbcsr_p_type), DIMENSION(:, :), &
POINTER :: op_sm_set => NULL()
REAL(KIND=dp) :: start_time, target_time
REAL(KIND=dp) :: weights(6)
INTEGER :: dim_op
REAL(KIND=dp) :: start_time = -1.0_dp, target_time = -1.0_dp
REAL(KIND=dp) :: weights(6) = -1.0_dp
INTEGER :: dim_op = -1
END TYPE qs_loc_env_type
! **************************************************************************************************
@ -119,32 +119,32 @@ MODULE qs_loc_types
!> \param spreads_file_name output file names
! **************************************************************************************************
TYPE localized_wfn_control_type
INTEGER :: ref_count
INTEGER :: min_or_max
INTEGER :: localization_method
INTEGER :: operator_type
INTEGER, DIMENSION(2) :: nloc_states, nguess
INTEGER :: set_of_states
INTEGER, DIMENSION(2, 2) :: lu_bound_states
INTEGER :: max_iter
INTEGER :: out_each
INTEGER :: nextra
INTEGER :: coeff_po_guess, coeff_po_guess_mo_space
REAL(KIND=dp) :: eps_localization
REAL(KIND=dp) :: max_crazy_angle
REAL(KIND=dp) :: crazy_scale
REAL(KIND=dp) :: eps_occ
REAL(KIND=dp), DIMENSION(2) :: lu_ene_bound
LOGICAL :: crazy_use_diag
LOGICAL :: print_cubes, jacobi_fallback, jacobi_refinement
LOGICAL :: print_centers
LOGICAL :: print_spreads
LOGICAL :: do_homo
LOGICAL :: do_mixed, do_cg_po
LOGICAL :: loc_restart
LOGICAL :: use_history
INTEGER :: ref_count = -1
INTEGER :: min_or_max = -1
INTEGER :: localization_method = -1
INTEGER :: operator_type = -1
INTEGER, DIMENSION(2) :: nloc_states = -1, nguess = -1
INTEGER :: set_of_states = -1
INTEGER, DIMENSION(2, 2) :: lu_bound_states = -1
INTEGER :: max_iter = -1
INTEGER :: out_each = -1
INTEGER :: nextra = -1
INTEGER :: coeff_po_guess = -1, coeff_po_guess_mo_space = -1
REAL(KIND=dp) :: eps_localization = -1.0_dp
REAL(KIND=dp) :: max_crazy_angle = -1.0_dp
REAL(KIND=dp) :: crazy_scale = -1.0_dp
REAL(KIND=dp) :: eps_occ = -1.0_dp
REAL(KIND=dp), DIMENSION(2) :: lu_ene_bound = -1.0_dp
LOGICAL :: crazy_use_diag = .FALSE.
LOGICAL :: print_cubes = .FALSE., jacobi_fallback = .FALSE., jacobi_refinement = .FALSE.
LOGICAL :: print_centers = .FALSE.
LOGICAL :: print_spreads = .FALSE.
LOGICAL :: do_homo = .FALSE.
LOGICAL :: do_mixed = .FALSE., do_cg_po = .FALSE.
LOGICAL :: loc_restart = .FALSE.
LOGICAL :: use_history = .FALSE.
INTEGER, POINTER, DIMENSION(:, :) :: loc_states => NULL()
TYPE(cp_2d_r_p_type), DIMENSION(2) :: centers_set
TYPE(cp_2d_r_p_type), DIMENSION(2) :: centers_set = cp_2d_r_p_type()
END TYPE localized_wfn_control_type
! *** Public ***

View file

@ -33,19 +33,19 @@ MODULE qs_local_rho_types
! **************************************************************************************************
TYPE rhoz_type
REAL(dp) :: one_atom
REAL(dp), DIMENSION(:), POINTER :: r_coef
REAL(dp), DIMENSION(:), POINTER :: dr_coef
REAL(dp), DIMENSION(:), POINTER :: vr_coef
REAL(dp) :: one_atom = -1.0_dp
REAL(dp), DIMENSION(:), POINTER :: r_coef => NULL()
REAL(dp), DIMENSION(:), POINTER :: dr_coef => NULL()
REAL(dp), DIMENSION(:), POINTER :: vr_coef => NULL()
END TYPE rhoz_type
! **************************************************************************************************
TYPE local_rho_type
TYPE(rho_atom_type), DIMENSION(:), POINTER :: rho_atom_set
TYPE(rho0_mpole_type), POINTER :: rho0_mpole
TYPE(rho0_atom_type), DIMENSION(:), POINTER :: rho0_atom_set
TYPE(rhoz_type), DIMENSION(:), POINTER :: rhoz_set
REAL(dp) :: rhoz_tot
TYPE(rho_atom_type), DIMENSION(:), POINTER :: rho_atom_set => NULL()
TYPE(rho0_mpole_type), POINTER :: rho0_mpole => NULL()
TYPE(rho0_atom_type), DIMENSION(:), POINTER :: rho0_atom_set => NULL()
TYPE(rhoz_type), DIMENSION(:), POINTER :: rhoz_set => NULL()
REAL(dp) :: rhoz_tot = -1.0_dp
END TYPE local_rho_type
! Public Types

View file

@ -75,10 +75,11 @@ MODULE qs_localization_methods
PRIVATE
TYPE set_c_1d_type
COMPLEX(KIND=dp), POINTER, DIMENSION(:) :: c_array
COMPLEX(KIND=dp), POINTER, DIMENSION(:) :: c_array => NULL()
END TYPE
TYPE set_c_2d_type
COMPLEX(KIND=dp), POINTER, DIMENSION(:, :) :: c_array
COMPLEX(KIND=dp), POINTER, DIMENSION(:, :) :: c_array => NULL()
END TYPE
CONTAINS

View file

@ -64,11 +64,11 @@ MODULE qs_matrix_pools
!> \author fawzi
! **************************************************************************************************
TYPE qs_matrix_pools_type
INTEGER :: ref_count
TYPE(cp_fm_pool_p_type), DIMENSION(:), POINTER :: ao_mo_fm_pools, &
ao_ao_fm_pools, mo_mo_fm_pools
TYPE(cp_fm_pool_p_type), DIMENSION(:), POINTER :: ao_mosub_fm_pools, &
mosub_mosub_fm_pools
INTEGER :: ref_count = -1
TYPE(cp_fm_pool_p_type), DIMENSION(:), POINTER :: ao_mo_fm_pools => NULL(), &
ao_ao_fm_pools => NULL(), mo_mo_fm_pools => NULL()
TYPE(cp_fm_pool_p_type), DIMENSION(:), POINTER :: ao_mosub_fm_pools => NULL(), &
mosub_mosub_fm_pools => NULL()
END TYPE qs_matrix_pools_type
CONTAINS

View file

@ -79,7 +79,7 @@ MODULE qs_mo_types
END TYPE mo_set_type
TYPE mo_set_p_type
TYPE(mo_set_type), POINTER :: mo_set
TYPE(mo_set_type), POINTER :: mo_set => NULL()
END TYPE mo_set_p_type
PUBLIC :: mo_set_p_type, &

View file

@ -34,63 +34,63 @@ MODULE qs_neighbor_list_types
! **************************************************************************************************
TYPE neighbor_node_type
PRIVATE
TYPE(neighbor_node_type), POINTER :: next_neighbor_node
REAL(dp), DIMENSION(3) :: r
INTEGER, DIMENSION(3) :: cell
INTEGER :: neighbor
TYPE(neighbor_node_type), POINTER :: next_neighbor_node => NULL()
REAL(dp), DIMENSION(3) :: r = -1.0_dp
INTEGER, DIMENSION(3) :: cell = -1
INTEGER :: neighbor = -1
END TYPE neighbor_node_type
! **************************************************************************************************
TYPE neighbor_list_type
PRIVATE
TYPE(neighbor_list_type), POINTER :: next_neighbor_list
TYPE(neighbor_node_type), POINTER :: first_neighbor_node, &
last_neighbor_node
INTEGER :: atom, nnode
TYPE(neighbor_list_type), POINTER :: next_neighbor_list => NULL()
TYPE(neighbor_node_type), POINTER :: first_neighbor_node => NULL(), &
last_neighbor_node => NULL()
INTEGER :: atom = -1, nnode = -1
END TYPE neighbor_list_type
! **************************************************************************************************
TYPE neighbor_list_set_type
PRIVATE
TYPE(neighbor_list_type), POINTER :: first_neighbor_list, &
last_neighbor_list
INTEGER :: nlist
LOGICAL :: symmetric
TYPE(neighbor_list_type), POINTER :: first_neighbor_list => NULL(), &
last_neighbor_list => NULL()
INTEGER :: nlist = -1
LOGICAL :: symmetric = .FALSE.
END TYPE neighbor_list_set_type
! **************************************************************************************************
TYPE neighbor_list_p_type
TYPE(neighbor_list_type), POINTER :: neighbor_list
TYPE(neighbor_list_type), POINTER :: neighbor_list => NULL()
END TYPE neighbor_list_p_type
! **************************************************************************************************
TYPE neighbor_list_set_p_type
TYPE(neighbor_list_set_type), POINTER :: neighbor_list_set
INTEGER :: nl_size
INTEGER :: nl_start
INTEGER :: nl_end
TYPE(neighbor_list_task_type), DIMENSION(:), POINTER :: nlist_task
TYPE(neighbor_list_set_type), POINTER :: neighbor_list_set => NULL()
INTEGER :: nl_size = -1
INTEGER :: nl_start = -1
INTEGER :: nl_end = -1
TYPE(neighbor_list_task_type), DIMENSION(:), POINTER :: nlist_task => NULL()
END TYPE neighbor_list_set_p_type
! **************************************************************************************************
TYPE list_search_type
PRIVATE
INTEGER :: nlist
INTEGER, DIMENSION(:), POINTER :: atom_list
INTEGER, DIMENSION(:), POINTER :: atom_index
INTEGER :: nlist = -1
INTEGER, DIMENSION(:), POINTER :: atom_list => NULL()
INTEGER, DIMENSION(:), POINTER :: atom_index => NULL()
TYPE(neighbor_list_p_type), &
DIMENSION(:), POINTER :: neighbor_list
DIMENSION(:), POINTER :: neighbor_list => NULL()
END TYPE list_search_type
! **************************************************************************************************
TYPE neighbor_list_task_type
INTEGER :: iatom, jatom, &
ikind, jkind, nkind, &
ilist, nlist, inode, nnode
REAL(KIND=dp), DIMENSION(3) :: r
INTEGER, DIMENSION(3) :: cell
INTEGER :: iatom = -1, jatom = -1, &
ikind = -1, jkind = -1, nkind = -1, &
ilist = -1, nlist = -1, inode = -1, nnode = -1
REAL(KIND=dp), DIMENSION(3) :: r = -1.0_dp
INTEGER, DIMENSION(3) :: cell = -1
TYPE(neighbor_list_task_type), &
POINTER :: next ! Pointer for forming a linked list of tasks
POINTER :: next => NULL() ! Pointer for forming a linked list of tasks
END TYPE neighbor_list_task_type
INTERFACE nl_sub_iterate
@ -103,21 +103,21 @@ MODULE qs_neighbor_list_types
! **************************************************************************************************
TYPE neighbor_list_iterator_type
PRIVATE
INTEGER :: ikind, jkind, ilist, inode
INTEGER :: nkind, nlist, nnode
INTEGER :: iatom, jatom
INTEGER :: ikind = -1, jkind = -1, ilist = -1, inode = -1
INTEGER :: nkind = -1, nlist = -1, nnode = -1
INTEGER :: iatom = -1, jatom = -1
TYPE(neighbor_list_set_p_type), &
DIMENSION(:), POINTER :: nl
TYPE(neighbor_list_type), POINTER :: neighbor_list
TYPE(neighbor_node_type), POINTER :: neighbor_node
DIMENSION(:), POINTER :: nl => NULL()
TYPE(neighbor_list_type), POINTER :: neighbor_list => NULL()
TYPE(neighbor_node_type), POINTER :: neighbor_node => NULL()
TYPE(list_search_type), &
DIMENSION(:), POINTER :: list_search
DIMENSION(:), POINTER :: list_search => NULL()
END TYPE neighbor_list_iterator_type
TYPE neighbor_list_iterator_p_type
PRIVATE
TYPE(neighbor_list_iterator_type), POINTER :: neighbor_list_iterator
INTEGER :: last
TYPE(neighbor_list_iterator_type), POINTER :: neighbor_list_iterator => NULL()
INTEGER :: last = -1
END TYPE neighbor_list_iterator_p_type
! **************************************************************************************************

View file

@ -102,12 +102,12 @@ MODULE qs_neighbor_lists
! **************************************************************************************************
TYPE local_atoms_type
INTEGER, DIMENSION(:), POINTER :: list, &
list_local_a_index, &
list_local_b_index, &
list_1d, &
list_a_mol, &
list_b_mol
INTEGER, DIMENSION(:), POINTER :: list => NULL(), &
list_local_a_index => NULL(), &
list_local_b_index => NULL(), &
list_1d => NULL(), &
list_a_mol => NULL(), &
list_b_mol => NULL()
END TYPE local_atoms_type
! **************************************************************************************************

View file

@ -63,8 +63,8 @@ MODULE qs_nl_hash_table_types
!> \param val : value of the entry
! **************************************************************************************************
TYPE nl_hash_table_element
INTEGER(KIND=int_8) :: key
TYPE(neighbor_list_task_type), POINTER :: val
INTEGER(KIND=int_8) :: key = -1_int_8
TYPE(neighbor_list_task_type), POINTER :: val => NULL()
END TYPE nl_hash_table_element
! **************************************************************************************************
@ -78,9 +78,9 @@ MODULE qs_nl_hash_table_types
! **************************************************************************************************
TYPE nl_hash_table_data
TYPE(nl_hash_table_element), DIMENSION(:), POINTER :: table => NULL()
INTEGER :: nelements
INTEGER :: nmax
INTEGER :: prime
INTEGER :: nelements = -1
INTEGER :: nmax = -1
INTEGER :: prime = -1
END TYPE nl_hash_table_data
! **************************************************************************************************

View file

@ -32,40 +32,40 @@ MODULE qs_o3c_types
TYPE o3c_int_type
PRIVATE
INTEGER :: katom, kkind
INTEGER :: ni, nj, nk
REAL(KIND=dp), DIMENSION(3) :: rik
INTEGER, DIMENSION(3) :: cellk
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: integral
REAL(KIND=dp), DIMENSION(:, :), POINTER :: tvec
REAL(KIND=dp), DIMENSION(:, :), POINTER :: force_i
REAL(KIND=dp), DIMENSION(:, :), POINTER :: force_j
REAL(KIND=dp), DIMENSION(:, :), POINTER :: force_k
INTEGER :: katom = -1, kkind = -1
INTEGER :: ni = -1, nj = -1, nk = -1
REAL(KIND=dp), DIMENSION(3) :: rik = -1.0_dp
INTEGER, DIMENSION(3) :: cellk = -1
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: integral => NULL()
REAL(KIND=dp), DIMENSION(:, :), POINTER :: tvec => NULL()
REAL(KIND=dp), DIMENSION(:, :), POINTER :: force_i => NULL()
REAL(KIND=dp), DIMENSION(:, :), POINTER :: force_j => NULL()
REAL(KIND=dp), DIMENSION(:, :), POINTER :: force_k => NULL()
END TYPE o3c_int_type
TYPE o3c_pair_type
PRIVATE
INTEGER :: iatom, ikind
INTEGER :: jatom, jkind
REAL(KIND=dp), DIMENSION(3) :: rij
INTEGER, DIMENSION(3) :: cellj
INTEGER :: nklist
TYPE(o3c_int_type), DIMENSION(:), POINTER :: ijk
INTEGER :: iatom = -1, ikind = -1
INTEGER :: jatom = -1, jkind = -1
REAL(KIND=dp), DIMENSION(3) :: rij = -1.0_dp
INTEGER, DIMENSION(3) :: cellj = -1
INTEGER :: nklist = -1
TYPE(o3c_int_type), DIMENSION(:), POINTER :: ijk => NULL()
END TYPE o3c_pair_type
TYPE o3c_container_type
PRIVATE
LOGICAL :: ijsymmetric
INTEGER :: nijpairs
INTEGER :: nspin
TYPE(o3c_pair_type), DIMENSION(:), POINTER :: ijpair
LOGICAL :: ijsymmetric = .FALSE.
INTEGER :: nijpairs = -1
INTEGER :: nspin = -1
TYPE(o3c_pair_type), DIMENSION(:), POINTER :: ijpair => NULL()
! basis sets and neighbor lists are pointing to other resources
! we don't keep track if the data is available and correct
TYPE(gto_basis_set_p_type), DIMENSION(:), &
POINTER :: basis_set_list_a, basis_set_list_b, &
basis_set_list_c
POINTER :: basis_set_list_a => NULL(), basis_set_list_b => NULL(), &
basis_set_list_c => NULL()
TYPE(neighbor_list_set_p_type), &
DIMENSION(:), POINTER :: sab_nl, sac_nl
DIMENSION(:), POINTER :: sab_nl => NULL(), sac_nl => NULL()
END TYPE o3c_container_type
! **************************************************************************************************
@ -74,9 +74,9 @@ MODULE qs_o3c_types
TYPE o3c_iterator_type
PRIVATE
TYPE(o3c_container_type), POINTER :: o3c
INTEGER :: ijp_last, k_last
INTEGER, DIMENSION(:), POINTER :: ijp_thread, k_thread
TYPE(o3c_container_type), POINTER :: o3c => NULL()
INTEGER :: ijp_last = -1, k_last = -1
INTEGER, DIMENSION(:), POINTER :: ijp_thread => NULL(), k_thread => NULL()
END TYPE o3c_iterator_type
! **************************************************************************************************
@ -85,8 +85,8 @@ MODULE qs_o3c_types
TYPE o3c_vec_type
PRIVATE
INTEGER :: n
REAL(KIND=dp), DIMENSION(:), POINTER :: v
INTEGER :: n = -1
REAL(KIND=dp), DIMENSION(:), POINTER :: v => NULL()
END TYPE o3c_vec_type
! **************************************************************************************************

View file

@ -63,142 +63,142 @@ MODULE qs_ot_types
! needed for spins as e.g. in qs_ot_scf !
! **************************************************************************************************
TYPE qs_ot_settings_type
LOGICAL :: do_rotation, do_ener
LOGICAL :: ks
CHARACTER(LEN=4) :: ot_method
CHARACTER(LEN=3) :: ot_algorithm
CHARACTER(LEN=4) :: line_search_method
CHARACTER(LEN=20) :: preconditioner_name
INTEGER :: preconditioner_type
INTEGER :: cholesky_type
CHARACTER(LEN=20) :: precond_solver_name
INTEGER :: precond_solver_type
LOGICAL :: safer_diis
REAL(KIND=dp) :: ds_min
REAL(KIND=dp) :: energy_gap
INTEGER :: diis_m
REAL(KIND=dp) :: gold_target
REAL(KIND=dp) :: eps_taylor ! minimum accuracy of the taylor expansion
INTEGER :: max_taylor ! maximum order of the taylor expansion before switching to diagonalization
INTEGER :: irac_degree ! this is used to control the refinement polynomial degree
INTEGER :: max_irac ! maximum number of iteration for the refinement
REAL(KIND=dp) :: eps_irac ! target accuracy for the refinement
REAL(KIND=dp) :: eps_irac_quick_exit
REAL(dp) :: eps_irac_filter_matrix
REAL(KIND=dp) :: eps_irac_switch
LOGICAL :: on_the_fly_loc
CHARACTER(LEN=4) :: ortho_irac
LOGICAL :: occupation_preconditioner, add_nondiag_energy
REAL(KIND=dp) :: nondiag_energy_strength
REAL(KIND=dp) :: broyden_beta, broyden_gamma, broyden_sigma
REAL(KIND=dp) :: broyden_eta, broyden_omega, broyden_sigma_decrease
REAL(KIND=dp) :: broyden_sigma_min
LOGICAL :: broyden_forget_history, broyden_adaptive_sigma
LOGICAL :: broyden_enable_flip
LOGICAL :: do_rotation = .FALSE., do_ener = .FALSE.
LOGICAL :: ks = .FALSE.
CHARACTER(LEN=4) :: ot_method = ""
CHARACTER(LEN=3) :: ot_algorithm = ""
CHARACTER(LEN=4) :: line_search_method = ""
CHARACTER(LEN=20) :: preconditioner_name = ""
INTEGER :: preconditioner_type = -1
INTEGER :: cholesky_type = -1
CHARACTER(LEN=20) :: precond_solver_name = ""
INTEGER :: precond_solver_type = -1
LOGICAL :: safer_diis = .FALSE.
REAL(KIND=dp) :: ds_min = -1.0_dp
REAL(KIND=dp) :: energy_gap = -1.0_dp
INTEGER :: diis_m = -1
REAL(KIND=dp) :: gold_target = -1.0_dp
REAL(KIND=dp) :: eps_taylor = -1.0_dp ! minimum accuracy of the taylor expansion
INTEGER :: max_taylor = -1 ! maximum order of the taylor expansion before switching to diagonalization
INTEGER :: irac_degree = -1 ! this is used to control the refinement polynomial degree
INTEGER :: max_irac = -1 ! maximum number of iteration for the refinement
REAL(KIND=dp) :: eps_irac = -1.0_dp ! target accuracy for the refinement
REAL(KIND=dp) :: eps_irac_quick_exit = -1.0_dp
REAL(KIND=dp) :: eps_irac_filter_matrix = -1.0_dp
REAL(KIND=dp) :: eps_irac_switch = -1.0_dp
LOGICAL :: on_the_fly_loc = .FALSE.
CHARACTER(LEN=4) :: ortho_irac = ""
LOGICAL :: occupation_preconditioner = .FALSE., add_nondiag_energy = .FALSE.
REAL(KIND=dp) :: nondiag_energy_strength = -1.0_dp
REAL(KIND=dp) :: broyden_beta = -1.0_dp, broyden_gamma = -1.0_dp, broyden_sigma = -1.0_dp
REAL(KIND=dp) :: broyden_eta = -1.0_dp, broyden_omega = -1.0_dp, broyden_sigma_decrease = -1.0_dp
REAL(KIND=dp) :: broyden_sigma_min = -1.0_dp
LOGICAL :: broyden_forget_history = .FALSE., broyden_adaptive_sigma = .FALSE.
LOGICAL :: broyden_enable_flip = .FALSE.
END TYPE qs_ot_settings_type
! **************************************************************************************************
TYPE qs_ot_type
! this sets the method to be used
TYPE(qs_ot_settings_type) :: settings
LOGICAL :: restricted
TYPE(qs_ot_settings_type) :: settings = qs_ot_settings_type()
LOGICAL :: restricted = .FALSE.
! first part of the variables, for occupied subspace invariant optimisation
! add a preconditioner matrix. should be symmetric and positive definite
! the type of this matrix might change in the future
TYPE(preconditioner_type), POINTER :: preconditioner
TYPE(preconditioner_type), POINTER :: preconditioner => NULL()
! these will/might change during iterations
! OT / TOD
TYPE(dbcsr_type), POINTER :: matrix_p
TYPE(dbcsr_type), POINTER :: matrix_r
TYPE(dbcsr_type), POINTER :: matrix_sinp
TYPE(dbcsr_type), POINTER :: matrix_cosp
TYPE(dbcsr_type), POINTER :: matrix_sinp_b
TYPE(dbcsr_type), POINTER :: matrix_cosp_b
TYPE(dbcsr_type), POINTER :: matrix_buf1
TYPE(dbcsr_type), POINTER :: matrix_buf2
TYPE(dbcsr_type), POINTER :: matrix_buf3
TYPE(dbcsr_type), POINTER :: matrix_buf4
TYPE(dbcsr_type), POINTER :: matrix_os
TYPE(dbcsr_type), POINTER :: matrix_buf1_ortho
TYPE(dbcsr_type), POINTER :: matrix_buf2_ortho
TYPE(dbcsr_type), POINTER :: matrix_p => NULL()
TYPE(dbcsr_type), POINTER :: matrix_r => NULL()
TYPE(dbcsr_type), POINTER :: matrix_sinp => NULL()
TYPE(dbcsr_type), POINTER :: matrix_cosp => NULL()
TYPE(dbcsr_type), POINTER :: matrix_sinp_b => NULL()
TYPE(dbcsr_type), POINTER :: matrix_cosp_b => NULL()
TYPE(dbcsr_type), POINTER :: matrix_buf1 => NULL()
TYPE(dbcsr_type), POINTER :: matrix_buf2 => NULL()
TYPE(dbcsr_type), POINTER :: matrix_buf3 => NULL()
TYPE(dbcsr_type), POINTER :: matrix_buf4 => NULL()
TYPE(dbcsr_type), POINTER :: matrix_os => NULL()
TYPE(dbcsr_type), POINTER :: matrix_buf1_ortho => NULL()
TYPE(dbcsr_type), POINTER :: matrix_buf2_ortho => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: evals
REAL(KIND=dp), DIMENSION(:), POINTER :: dum
REAL(KIND=dp), DIMENSION(:), POINTER :: evals => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: dum => NULL()
! matrix os valid
LOGICAL os_valid
LOGICAL :: os_valid = .FALSE.
! for efficient/parallel writing to the blacs_matrix
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()
! mo-like vectors
TYPE(dbcsr_type), POINTER :: matrix_c0, matrix_sc0, matrix_psc0
TYPE(dbcsr_type), POINTER :: matrix_c0 => NULL(), matrix_sc0 => NULL(), matrix_psc0 => NULL()
! OT / IR
TYPE(dbcsr_type), POINTER :: buf1_k_k_nosym, buf2_k_k_nosym, &
buf3_k_k_nosym, buf4_k_k_nosym, &
buf1_k_k_sym, buf2_k_k_sym, buf3_k_k_sym, buf4_k_k_sym, &
p_k_k_sym, buf1_n_k, buf1_n_k_dp
TYPE(dbcsr_type), POINTER :: buf1_k_k_nosym => NULL(), buf2_k_k_nosym => NULL(), &
buf3_k_k_nosym => NULL(), buf4_k_k_nosym => NULL(), &
buf1_k_k_sym => NULL(), buf2_k_k_sym => NULL(), buf3_k_k_sym => NULL(), buf4_k_k_sym => NULL(), &
p_k_k_sym => NULL(), buf1_n_k => NULL(), buf1_n_k_dp => NULL()
! only here for the ease of programming. These will have to be supplied
! explicitly at all times
TYPE(dbcsr_type), POINTER :: matrix_x, matrix_sx, matrix_gx
TYPE(dbcsr_type), POINTER :: matrix_dx, matrix_gx_old
TYPE(dbcsr_type), POINTER :: matrix_x => NULL(), matrix_sx => NULL(), matrix_gx => NULL()
TYPE(dbcsr_type), POINTER :: matrix_dx => NULL(), matrix_gx_old => NULL()
LOGICAL :: use_gx_old, use_dx
LOGICAL :: use_gx_old = .FALSE., use_dx = .FALSE.
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: matrix_h_e, matrix_h_x
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: matrix_h_e => NULL(), matrix_h_x => NULL()
REAL(KIND=dp), DIMENSION(:, :), POINTER :: ls_diis
REAL(KIND=dp), DIMENSION(:, :), POINTER :: lss_diis
REAL(KIND=dp), DIMENSION(:), POINTER :: c_diis
REAL(KIND=dp), DIMENSION(:), POINTER :: c_broy
REAL(KIND=dp), DIMENSION(:), POINTER :: energy_h
INTEGER, DIMENSION(:), POINTER :: ipivot
REAL(KIND=dp), DIMENSION(:, :), POINTER :: ls_diis => NULL()
REAL(KIND=dp), DIMENSION(:, :), POINTER :: lss_diis => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: c_diis => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: c_broy => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: energy_h => NULL()
INTEGER, DIMENSION(:), POINTER :: ipivot => NULL()
REAL(KIND=dp) :: ot_pos(53), ot_energy(53), ot_grad(53) ! HARD LIMIT FOR THE LS
INTEGER :: line_search_left, line_search_right, line_search_mid
INTEGER :: line_search_count
LOGICAL :: line_search_might_be_done
REAL(KIND=dp) :: delta, gnorm, gnorm_old, etotal, gradient
LOGICAL :: energy_only
INTEGER :: diis_iter
CHARACTER(LEN=8) :: OT_METHOD_FULL
INTEGER :: OT_count
REAL(KIND=dp) :: ds_min
REAL(KIND=dp) :: broyden_adaptive_sigma
REAL(KIND=dp) :: ot_pos(53) = -1.0_dp, ot_energy(53) = -1.0_dp, ot_grad(53) = -1.0_dp ! HARD LIMIT FOR THE LS
INTEGER :: line_search_left = -1, line_search_right = -1, line_search_mid = -1
INTEGER :: line_search_count = -1
LOGICAL :: line_search_might_be_done = .FALSE.
REAL(KIND=dp) :: delta = -1.0_dp, gnorm = -1.0_dp, gnorm_old = -1.0_dp, etotal = -1.0_dp, gradient = -1.0_dp
LOGICAL :: energy_only = .FALSE.
INTEGER :: diis_iter = -1
CHARACTER(LEN=8) :: OT_METHOD_FULL = ""
INTEGER :: OT_count = -1
REAL(KIND=dp) :: ds_min = -1.0_dp
REAL(KIND=dp) :: broyden_adaptive_sigma = -1.0_dp
LOGICAL :: do_taylor
INTEGER :: taylor_order
REAL(KIND=dp) :: largest_eval_upper_bound
LOGICAL :: do_taylor = .FALSE.
INTEGER :: taylor_order = -1
REAL(KIND=dp) :: largest_eval_upper_bound = -1.0_dp
! second part of the variables, if an explicit rotation is required as well
TYPE(dbcsr_type), POINTER :: rot_mat_u ! rotation matrix
TYPE(dbcsr_type), POINTER :: rot_mat_x ! antisymmetric matrix that parametrises rot_matrix_u
TYPE(dbcsr_type), POINTER :: rot_mat_dedu ! derivative of the total energy wrt to u
TYPE(dbcsr_type), POINTER :: rot_mat_chc ! for convencience, the matrix c^T H c
TYPE(dbcsr_type), POINTER :: rot_mat_u => NULL() ! rotation matrix
TYPE(dbcsr_type), POINTER :: rot_mat_x => NULL() ! antisymmetric matrix that parametrises rot_matrix_u
TYPE(dbcsr_type), POINTER :: rot_mat_dedu => NULL() ! derivative of the total energy wrt to u
TYPE(dbcsr_type), POINTER :: rot_mat_chc => NULL() ! for convencience, the matrix c^T H c
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: rot_mat_h_e
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: rot_mat_h_x
TYPE(dbcsr_type), POINTER :: rot_mat_gx
TYPE(dbcsr_type), POINTER :: rot_mat_gx_old
TYPE(dbcsr_type), POINTER :: rot_mat_dx
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: rot_mat_h_e => NULL()
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: rot_mat_h_x => NULL()
TYPE(dbcsr_type), POINTER :: rot_mat_gx => NULL()
TYPE(dbcsr_type), POINTER :: rot_mat_gx_old => NULL()
TYPE(dbcsr_type), POINTER :: rot_mat_dx => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: rot_mat_evals
TYPE(dbcsr_type), POINTER :: rot_mat_evec
REAL(KIND=dp), DIMENSION(:), POINTER :: rot_mat_evals => NULL()
TYPE(dbcsr_type), POINTER :: rot_mat_evec => NULL()
! third part of the variables, if we need to optimize orbital energies
REAL(KIND=dp), POINTER, DIMENSION(:) :: ener_x
REAL(KIND=dp), POINTER, DIMENSION(:) :: ener_dx
REAL(KIND=dp), POINTER, DIMENSION(:) :: ener_gx
REAL(KIND=dp), POINTER, DIMENSION(:) :: ener_gx_old
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: ener_h_e
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: ener_h_x
REAL(KIND=dp), POINTER, DIMENSION(:) :: ener_x => NULL()
REAL(KIND=dp), POINTER, DIMENSION(:) :: ener_dx => NULL()
REAL(KIND=dp), POINTER, DIMENSION(:) :: ener_gx => NULL()
REAL(KIND=dp), POINTER, DIMENSION(:) :: ener_gx_old => NULL()
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: ener_h_e => NULL()
REAL(KIND=dp), POINTER, DIMENSION(:, :) :: ener_h_x => NULL()
END TYPE qs_ot_type
CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'qs_ot_types'

View file

@ -56,7 +56,7 @@ MODULE qs_p_env_types
!> for the moment no smearing of the orbitals.
! **************************************************************************************************
TYPE qs_p_env_type
LOGICAL :: orthogonal_orbitals
LOGICAL :: orthogonal_orbitals = .FALSE.
TYPE(qs_kpp1_env_type), POINTER :: kpp1_env => NULL()
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: kpp1 => NULL()
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: kpp1_admm => NULL()
@ -70,8 +70,8 @@ MODULE qs_p_env_types
TYPE(qs_rho_type), POINTER :: rho1 => NULL()
TYPE(qs_rho_type), POINTER :: rho1_xc => NULL()
TYPE(qs_rho_type), POINTER :: rho1_admm => NULL()
INTEGER, DIMENSION(2) :: n_mo, & ! no of molecular orbitals
n_ao ! no of basis functions
INTEGER, DIMENSION(2) :: n_mo = -1, & ! no of molecular orbitals
n_ao = -1 ! no of basis functions
! GAPW stuff
TYPE(hartree_local_type), POINTER :: hartree_local => NULL()
TYPE(local_rho_type), POINTER :: local_rho_set => NULL()
@ -81,7 +81,7 @@ MODULE qs_p_env_types
TYPE(cp_fm_type), DIMENSION(:), POINTER :: PS_psi0 => NULL()
! preconditioner matrix should be symmetric and positive definite
LOGICAL :: new_preconditioner
LOGICAL :: new_preconditioner = .FALSE.
TYPE(preconditioner_type), DIMENSION(:), POINTER :: preconditioner => NULL()
END TYPE qs_p_env_type

View file

@ -88,29 +88,29 @@ MODULE qs_pdos
PUBLIC :: calculate_projected_dos
TYPE ldos_type
INTEGER :: maxl, nlist
LOGICAL :: separate_components
INTEGER, DIMENSION(:), POINTER :: list_index
INTEGER :: maxl = -1, nlist = -1
LOGICAL :: separate_components = .FALSE.
INTEGER, DIMENSION(:), POINTER :: list_index => NULL()
REAL(KIND=dp), DIMENSION(:, :), &
POINTER :: pdos_array
POINTER :: pdos_array => NULL()
END TYPE ldos_type
TYPE r_ldos_type
INTEGER :: nlist, npoints
INTEGER, DIMENSION(:, :), POINTER :: index_grid_local
INTEGER, DIMENSION(:), POINTER :: list_index
REAL(KIND=dp), DIMENSION(:), POINTER :: x_range, y_range, z_range
REAL(KIND=dp), DIMENSION(:), POINTER :: eval_range
INTEGER :: nlist = -1, npoints = -1
INTEGER, DIMENSION(:, :), POINTER :: index_grid_local => NULL()
INTEGER, DIMENSION(:), POINTER :: list_index => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: x_range => NULL(), y_range => NULL(), z_range => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: eval_range => NULL()
REAL(KIND=dp), DIMENSION(:), &
POINTER :: pdos_array
POINTER :: pdos_array => NULL()
END TYPE r_ldos_type
TYPE ldos_p_type
TYPE(ldos_type), POINTER :: ldos
TYPE(ldos_type), POINTER :: ldos => NULL()
END TYPE ldos_p_type
TYPE r_ldos_p_type
TYPE(r_ldos_type), POINTER :: ldos
TYPE(r_ldos_type), POINTER :: ldos => NULL()
END TYPE r_ldos_p_type
CONTAINS

View file

@ -30,11 +30,11 @@ MODULE qs_period_efield_types
set_efield_matrices
TYPE efield_berry_type
REAL(KIND=dp) :: field_energy
REAL(KIND=dp), DIMENSION(3) :: polarisation
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: cosmat
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: sinmat
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: dipmat
REAL(KIND=dp) :: field_energy = -1.0_dp
REAL(KIND=dp), DIMENSION(3) :: polarisation = -1.0_dp
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: cosmat => NULL()
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: sinmat => NULL()
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: dipmat => NULL()
END TYPE efield_berry_type
CONTAINS

View file

@ -96,30 +96,30 @@ MODULE qs_resp
PUBLIC :: resp_fit
TYPE resp_type
LOGICAL :: equal_charges, itc, &
molecular_sys, rheavies, &
use_repeat_method
INTEGER :: nres, ncons, &
nrest_sec, ncons_sec, &
npoints, stride(3), my_fit, &
npoints_proc, &
auto_vdw_radii_table
INTEGER, DIMENSION(:), POINTER :: atom_surf_list
INTEGER, DIMENSION(:, :), POINTER :: fitpoints
REAL(KIND=dp) :: rheavies_strength, &
length, eta, &
sum_vhartree, offset
REAL(KIND=dp), DIMENSION(3) :: box_hi, box_low
REAL(KIND=dp), DIMENSION(:), POINTER :: rmin_kind, &
rmax_kind
REAL(KIND=dp), DIMENSION(:), POINTER :: range_surf
REAL(KIND=dp), DIMENSION(:), POINTER :: rhs
REAL(KIND=dp), DIMENSION(:), POINTER :: sum_vpot
REAL(KIND=dp), DIMENSION(:, :), POINTER :: matrix
LOGICAL :: equal_charges = .FALSE., itc = .FALSE., &
molecular_sys = .FALSE., rheavies = .FALSE., &
use_repeat_method = .FALSE.
INTEGER :: nres = -1, ncons = -1, &
nrest_sec = -1, ncons_sec = -1, &
npoints = -1, stride(3) = -1, my_fit = -1, &
npoints_proc = -1, &
auto_vdw_radii_table = -1
INTEGER, DIMENSION(:), POINTER :: atom_surf_list => NULL()
INTEGER, DIMENSION(:, :), POINTER :: fitpoints => NULL()
REAL(KIND=dp) :: rheavies_strength = -1.0_dp, &
length = -1.0_dp, eta = -1.0_dp, &
sum_vhartree = -1.0_dp, offset = -1.0_dp
REAL(KIND=dp), DIMENSION(3) :: box_hi = -1.0_dp, box_low = -1.0_dp
REAL(KIND=dp), DIMENSION(:), POINTER :: rmin_kind => NULL(), &
rmax_kind => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: range_surf => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: rhs => NULL()
REAL(KIND=dp), DIMENSION(:), POINTER :: sum_vpot => NULL()
REAL(KIND=dp), DIMENSION(:, :), POINTER :: matrix => NULL()
END TYPE resp_type
TYPE resp_p_type
TYPE(resp_type), POINTER :: p_resp
TYPE(resp_type), POINTER :: p_resp => NULL()
END TYPE resp_p_type
CONTAINS

View file

@ -33,40 +33,40 @@ MODULE qs_rho0_types
! **************************************************************************************************
TYPE mpole_rho_atom
REAL(dp), DIMENSION(:), POINTER :: Qlm_h, &
Qlm_s, &
Qlm_tot, &
Qlm_car
REAL(dp) :: Qlm_z
REAL(dp), DIMENSION(2) :: Q0
REAL(dp), DIMENSION(:), POINTER :: Qlm_h => NULL(), &
Qlm_s => NULL(), &
Qlm_tot => NULL(), &
Qlm_car => NULL()
REAL(dp) :: Qlm_z = -1.0_dp
REAL(dp), DIMENSION(2) :: Q0 = -1.0_dp
END TYPE mpole_rho_atom
! **************************************************************************************************
TYPE mpole_gau_overlap
REAL(dp), DIMENSION(:, :, :), POINTER :: Qlm_gg
REAL(dp), DIMENSION(:, :), POINTER :: g0_h, vg0_h
REAL(dp) :: rpgf0_h, rpgf0_s
REAL(dp), DIMENSION(:, :, :), POINTER :: Qlm_gg => NULL()
REAL(dp), DIMENSION(:, :), POINTER :: g0_h => NULL(), vg0_h => NULL()
REAL(dp) :: rpgf0_h = -1.0_dp, rpgf0_s = -1.0_dp
END TYPE mpole_gau_overlap
! **************************************************************************************************
TYPE rho0_mpole_type
TYPE(mpole_rho_atom), DIMENSION(:), POINTER :: mp_rho
TYPE(mpole_rho_atom), DIMENSION(:), POINTER :: mp_rho => NULL()
TYPE(mpole_gau_overlap), DIMENSION(:), &
POINTER :: mp_gau
REAL(dp) :: zet0_h, &
total_rho0_h
REAL(dp) :: max_rpgf0_s
REAL(dp), DIMENSION(:), POINTER :: norm_g0l_h
INTEGER, DIMENSION(:), POINTER :: lmax0_kind
INTEGER :: lmax_0, igrid_zet0_s
TYPE(pw_r3d_rs_type), POINTER :: rho0_s_rs
TYPE(pw_c1d_gs_type), POINTER :: rho0_s_gs
POINTER :: mp_gau => NULL()
REAL(dp) :: zet0_h = -1.0_dp, &
total_rho0_h = -1.0_dp
REAL(dp) :: max_rpgf0_s = -1.0_dp
REAL(dp), DIMENSION(:), POINTER :: norm_g0l_h => NULL()
INTEGER, DIMENSION(:), POINTER :: lmax0_kind => NULL()
INTEGER :: lmax_0 = -1, igrid_zet0_s = -1
TYPE(pw_r3d_rs_type), POINTER :: rho0_s_rs => NULL()
TYPE(pw_c1d_gs_type), POINTER :: rho0_s_gs => NULL()
END TYPE rho0_mpole_type
! **************************************************************************************************
TYPE rho0_atom_type
TYPE(rho_atom_coeff), POINTER :: rho0_rad_h, &
vrho0_rad_h
TYPE(rho_atom_coeff), POINTER :: rho0_rad_h => NULL(), &
vrho0_rad_h => NULL()
END TYPE rho0_atom_type
! Public Types

View file

@ -61,8 +61,8 @@ MODULE qs_rho_types
! **************************************************************************************************
TYPE qs_rho_type
PRIVATE
TYPE(kpoint_transitional_type) :: rho_ao
TYPE(kpoint_transitional_type) :: rho_ao_im
TYPE(kpoint_transitional_type) :: rho_ao = kpoint_transitional_type()
TYPE(kpoint_transitional_type) :: rho_ao_im = kpoint_transitional_type()
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: rho_r => Null()
TYPE(pw_c1d_gs_type), DIMENSION(:), POINTER :: rho_g => Null()
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: tau_r => Null()
@ -85,7 +85,7 @@ MODULE qs_rho_types
! **************************************************************************************************
TYPE qs_rho_p_type
TYPE(qs_rho_type), POINTER :: rho
TYPE(qs_rho_type), POINTER :: rho => NULL()
END TYPE qs_rho_p_type
CONTAINS

View file

@ -68,55 +68,57 @@ MODULE qs_scf_types
!> \author fawzi
! **************************************************************************************************
TYPE krylov_space_type
INTEGER :: nkrylov, nblock, nmo_conv, nmo_nc, max_iter
LOGICAL :: always_check_conv
REAL(dp) :: eps_std_diag, eps_conv, eps_adapt, max_res_norm, min_res_norm
REAL(dp), DIMENSION(:), POINTER :: c_eval, t_eval
TYPE(cp_fm_type), DIMENSION(:), POINTER :: v_mat, mo_conv, mo_refine
TYPE(cp_fm_type), POINTER :: tmp_mat
INTEGER :: nkrylov = -1, nblock = -1, nmo_conv = -1, nmo_nc = -1, max_iter = -1
LOGICAL :: always_check_conv = .FALSE.
REAL(dp) :: eps_std_diag = -1.0_dp, eps_conv = -1.0_dp, eps_adapt = -1.0_dp, max_res_norm = -1.0_dp, min_res_norm = -1.0_dp
REAL(dp), DIMENSION(:), POINTER :: c_eval => NULL(), t_eval => NULL()
TYPE(cp_fm_type), DIMENSION(:), POINTER :: v_mat => NULL(), mo_conv => NULL(), mo_refine => NULL()
TYPE(cp_fm_type), POINTER :: tmp_mat => NULL()
!NOTE: the following matrices are small and could be used as standard array rather than distributed fm
TYPE(cp_fm_type), POINTER :: block1_mat, block2_mat, block3_mat, block4_mat, block5_mat
TYPE(cp_fm_type), DIMENSION(:), POINTER :: c_vec, chc_mat
TYPE(cp_fm_type), POINTER :: block1_mat => NULL(), block2_mat => NULL(), block3_mat => NULL(), &
block4_mat => NULL(), block5_mat => NULL()
TYPE(cp_fm_type), DIMENSION(:), POINTER :: c_vec => NULL(), chc_mat => NULL()
END TYPE krylov_space_type
TYPE subspace_env_type
INTEGER :: max_iter, mixing_method
REAL(dp) :: eps_diag_sub, eps_ene, eps_adapt
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: p_matrix_store
TYPE(dbcsr_p_type), DIMENSION(:, :), POINTER :: p_matrix_mix
TYPE(cp_fm_type), DIMENSION(:), POINTER :: chc_mat, c_vec, c0
TYPE(mixing_storage_type), POINTER :: mixing_store
INTEGER :: max_iter = -1, mixing_method = -1
REAL(dp) :: eps_diag_sub = -1.0_dp, eps_ene = -1.0_dp, eps_adapt = -1.0_dp
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: p_matrix_store => NULL()
TYPE(dbcsr_p_type), DIMENSION(:, :), POINTER :: p_matrix_mix => NULL()
TYPE(cp_fm_type), DIMENSION(:), POINTER :: chc_mat => NULL(), c_vec => NULL(), c0 => NULL()
TYPE(mixing_storage_type), POINTER :: mixing_store => NULL()
END TYPE subspace_env_type
TYPE floating_basis_type
REAL(KIND=dp), DIMENSION(:, :), POINTER :: gradient
REAL(KIND=dp), DIMENSION(:, :), POINTER :: gradient => NULL()
END TYPE floating_basis_type
! **************************************************************************************************
TYPE qs_scf_env_type
TYPE(qs_outer_scf_type) :: outer_scf
INTEGER :: iter_count
INTEGER :: cholesky_method, nelectron, method, mixing_method, nskip_mixing
REAL(KIND=dp) :: iter_param, iter_delta, p_mix_alpha, sum_zeff_corr
CHARACTER(len=15) :: iter_method
COMPLEX(KIND=dp), DIMENSION(:, :, :), POINTER :: cc_buffer
LOGICAL :: print_iter_line, skip_mixing, skip_diis, needs_ortho
TYPE(mixing_storage_type), POINTER :: mixing_store
TYPE(cp_fm_type), DIMENSION(:), POINTER :: scf_work1
TYPE(cp_fm_type), POINTER :: scf_work2, ortho, ortho_m1, s_half, s_minus_one
TYPE(krylov_space_type), POINTER :: krylov_space
TYPE(dbcsr_p_type), DIMENSION(:, :), POINTER :: p_delta, p_mix_new
TYPE(dbcsr_type), POINTER :: ortho_dbcsr, buf1_dbcsr, buf2_dbcsr
TYPE(preconditioner_p_type), DIMENSION(:), POINTER :: ot_preconditioner
TYPE(qs_ot_type), POINTER, DIMENSION(:) :: qs_ot_env
TYPE(qs_diis_buffer_type), POINTER :: scf_diis_buffer
TYPE(subspace_env_type), POINTER :: subspace_env
TYPE(davidson_type), POINTER, DIMENSION(:) :: block_davidson_env
TYPE(fb_env_obj) :: filter_matrix_env
TYPE(floating_basis_type) :: floating_basis
TYPE(qs_outer_scf_type) :: outer_scf = qs_outer_scf_type()
INTEGER :: iter_count = -1
INTEGER :: cholesky_method = -1, nelectron = -1, method = -1, mixing_method = -1, nskip_mixing = -1
REAL(KIND=dp) :: iter_param = -1.0_dp, iter_delta = -1.0_dp, p_mix_alpha = -1.0_dp, sum_zeff_corr = -1.0_dp
CHARACTER(len=15) :: iter_method = ""
COMPLEX(KIND=dp), DIMENSION(:, :, :), POINTER :: cc_buffer => NULL()
LOGICAL :: print_iter_line = .FALSE., skip_mixing = .FALSE., skip_diis = .FALSE., needs_ortho = .FALSE.
TYPE(mixing_storage_type), POINTER :: mixing_store => NULL()
TYPE(cp_fm_type), DIMENSION(:), POINTER :: scf_work1 => NULL()
TYPE(cp_fm_type), POINTER :: scf_work2 => NULL(), ortho => NULL(), ortho_m1 => NULL(), &
s_half => NULL(), s_minus_one => NULL()
TYPE(krylov_space_type), POINTER :: krylov_space => NULL()
TYPE(dbcsr_p_type), DIMENSION(:, :), POINTER :: p_delta => NULL(), p_mix_new => NULL()
TYPE(dbcsr_type), POINTER :: ortho_dbcsr => NULL(), buf1_dbcsr => NULL(), buf2_dbcsr => NULL()
TYPE(preconditioner_p_type), DIMENSION(:), POINTER :: ot_preconditioner => NULL()
TYPE(qs_ot_type), POINTER, DIMENSION(:) :: qs_ot_env => NULL()
TYPE(qs_diis_buffer_type), POINTER :: scf_diis_buffer => NULL()
TYPE(subspace_env_type), POINTER :: subspace_env => NULL()
TYPE(davidson_type), POINTER, DIMENSION(:) :: block_davidson_env => NULL()
TYPE(fb_env_obj) :: filter_matrix_env = fb_env_obj()
TYPE(floating_basis_type) :: floating_basis = floating_basis_type()
!> reference molecular orbitals for the maximum overlap method
TYPE(cp_fm_type), DIMENSION(:), POINTER :: mom_ref_mo_coeff
TYPE(cp_fm_type), DIMENSION(:), POINTER :: mom_ref_mo_coeff => NULL()
!> MOM-related work matrices
TYPE(cp_fm_type), DIMENSION(:), POINTER :: mom_overlap, mom_s_mo_coeff
TYPE(cp_fm_type), DIMENSION(:), POINTER :: mom_overlap => NULL(), mom_s_mo_coeff => NULL()
END TYPE qs_scf_env_type
CONTAINS

View file

@ -31,30 +31,30 @@ MODULE qs_tddfpt2_stda_types
PRIVATE
TYPE stda_kind_type
CHARACTER(LEN=2) :: symbol !element symbol
INTEGER :: z !atomic_number
INTEGER :: kind_number !kind number
REAL(KIND=dp) :: hardness_param !hardness_parameter eta
REAL(KIND=dp) :: rcut !cutoff radius for short-range Coulomb
CHARACTER(LEN=2) :: symbol = "" !element symbol
INTEGER :: z = -1 !atomic_number
INTEGER :: kind_number = -1 !kind number
REAL(KIND=dp) :: hardness_param = -1.0_dp !hardness_parameter eta
REAL(KIND=dp) :: rcut = -1.0_dp !cutoff radius for short-range Coulomb
END TYPE
TYPE stda_kind_p_type
TYPE(stda_kind_type), POINTER :: kind_param
TYPE(stda_kind_type), POINTER :: kind_param => NULL()
END TYPE
TYPE stda_env_type
!fraction of non-local HF exchange
REAL(KIND=dp) :: hfx_fraction
LOGICAL :: do_exchange
REAL(KIND=dp) :: hfx_fraction = -1.0_dp
LOGICAL :: do_exchange = .FALSE.
! empirical parameters
REAL(KIND=dp) :: alpha_param
REAL(KIND=dp) :: beta_param
REAL(KIND=dp) :: alpha_param = -1.0_dp
REAL(KIND=dp) :: beta_param = -1.0_dp
! filter for TD matrix
REAL(KIND=dp) :: eps_td_filter
TYPE(stda_kind_p_type), DIMENSION(:), POINTER:: kind_param_set
REAL(KIND=dp) :: eps_td_filter = -1.0_dp
TYPE(stda_kind_p_type), DIMENSION(:), POINTER:: kind_param_set => NULL()
!number of atomic orbitals, number of occupied orbitals
INTEGER, DIMENSION(2) :: n_ao
INTEGER, DIMENSION(2) :: nactive
INTEGER, DIMENSION(2) :: n_ao = -1
INTEGER, DIMENSION(2) :: nactive = -1
END TYPE
!PARAMETERS

Some files were not shown because too many files have changed in this diff Show more