31 use,
intrinsic :: iso_fortran_env
53 logical :: mode_fixed_fluence
55 real(real64) :: eta, delta
56 real(real64) :: direct_step
58 logical :: oct_double_check
60 real(real64) :: check_gradient
63 integer :: number_checkpoints
66 logical :: random_initial_guess
79 type(oct_t),
intent(inout) :: oct
80 type(namespace_t),
intent(in) :: namespace
162 call parse_variable(namespace,
'OCTScheme', option__octscheme__oct_zr98, oct%algorithm)
169 select case (oct%algorithm)
170 case (option__octscheme__oct_mt03)
194 case (option__octscheme__oct_zr98)
197 case (option__octscheme__oct_krotov)
200 case (option__octscheme__oct_straight_iteration)
203 case (option__octscheme__oct_cg)
206 case (option__octscheme__oct_bfgs)
209 case (option__octscheme__oct_direct)
213 case (option__octscheme__oct_nlopt_bobyqa, option__octscheme__oct_nlopt_lbfgs)
214#if defined(HAVE_NLOPT)
219 write(
message(1),
'(a)')
'"OCTScheme = oct_nlopt_bobyqa" or "OCTScheme = oct_nlopt_lbfgs" are'
220 write(
message(2),
'(a)')
' only possible if the nlopt library has been compiled.'
254 call parse_variable(namespace,
'OCTCheckGradient', 0.0_real64, oct%check_gradient)
267 call parse_variable(namespace,
'OCTDirectStep', 0.25_real64, oct%direct_step)
285 call parse_variable(namespace,
'OCTNumberCheckPoints', 0, oct%number_checkpoints)
300 call parse_variable(namespace,
'OCTRandomInitialGuess', .false., oct%random_initial_guess)
314 type(
oct_t),
intent(in) :: oct
316 (oct%algorithm == option__octscheme__oct_nlopt_bobyqa)
Prints out to iunit a message in the form: ["InputVariable" = value] where "InputVariable" is given b...
real(real64), parameter, public m_two
real(real64), parameter, public m_zero
real(real64), parameter, public m_one
subroutine, public messages_print_with_emphasis(msg, iunit, namespace)
character(len=512), private msg
subroutine, public messages_obsolete_variable(namespace, name, rep)
character(len=256), dimension(max_lines), public message
to be output by fatal, warning
subroutine, public messages_fatal(no_lines, only_root_writes, namespace)
subroutine, public messages_input_error(namespace, var, details, row, column)
This module contains the definition of the oct_t data type, which contains some of the basic informat...
subroutine, public oct_read_inp(oct, namespace)
Reads, from the inp file, some global information about how the QOCT run should be.
logical pure function, public oct_algorithm_is_direct(oct)
Returns .true. if the algorithm to be used is one of the "direct" or "gradient-less" algorithms – the...
!brief The oct_t datatype stores the basic information about how the OCT run is done.