26 #include "../base/base_uses.f90"
31 LOGICAL,
PRIVATE,
PARAMETER :: debug_this_module = .true.
32 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'gopt_param_types'
34 PUBLIC :: gopt_param_type
51 REAL(KIND=
dp) :: brent_tol = 0.0_dp, brack_limit = 0.0_dp, initial_step = 0.0_dp, max_step = 0.0_dp
52 LOGICAL :: grad_only = .false.
53 END TYPE cg_ls_param_type
57 LOGICAL :: Fletcher_Reeves = .false.
59 INTEGER :: ts_method_id = 0, cell_method_id = 0, shellcore_method_id = 0
60 INTEGER :: max_f_per_iter = 0, max_iter = 0, max_h_rank = 0
61 INTEGER :: max_steep_steps = 0
62 REAL(KIND=
dp) :: restart_limit = 0.0_dp
63 REAL(KIND=
dp) :: wanted_proj_gradient = 0.0_dp, wanted_rel_f_error = 0.0_dp
64 REAL(KIND=
dp) :: max_dr = 0.0_dp, max_force = 0.0_dp, rms_dr = 0.0_dp, rms_force = 0.0_dp
65 REAL(KIND=
dp) :: dimer_angle_tol = 0.0_dp
66 TYPE(cg_ls_param_type) :: cg_ls = cg_ls_param_type()
67 END TYPE gopt_param_type
81 TYPE(gopt_param_type),
INTENT(OUT) :: gopt_param
82 TYPE(section_vals_type),
POINTER :: gopt_section
83 INTEGER,
INTENT(IN),
OPTIONAL :: type_id
85 cpassert(
ASSOCIATED(gopt_section))
87 IF (
PRESENT(type_id))
THEN
88 gopt_param%type_id = type_id
100 SELECT CASE (gopt_param%method_id)
103 CALL section_vals_val_get(gopt_section,
"LBFGS%MAX_F_PER_ITER", i_val=gopt_param%max_f_per_iter)
104 CALL section_vals_val_get(gopt_section,
"LBFGS%WANTED_PROJ_GRADIENT", r_val=gopt_param%wanted_proj_gradient)
105 CALL section_vals_val_get(gopt_section,
"LBFGS%WANTED_REL_F_ERROR", r_val=gopt_param%wanted_rel_f_error)
114 r_val=gopt_param%cg_ls%initial_step)
116 r_val=gopt_param%cg_ls%brent_tol)
118 i_val=gopt_param%cg_ls%brent_max_iter)
120 r_val=gopt_param%cg_ls%brack_limit)
122 r_val=gopt_param%cg_ls%max_step)
124 l_val=gopt_param%cg_ls%grad_only)
127 SELECT CASE (gopt_param%type_id)
132 CALL section_vals_val_get(gopt_section,
"TRANSITION_STATE%METHOD", i_val=gopt_param%ts_method_id)
contains typo and related routines to handle parameters controlling the GEO_OPT module
subroutine, public gopt_param_read(gopt_param, gopt_section, type_id)
reads the parameters of the geopmetry optimizer
Defines the basic variable types.
integer, parameter, public dp