subroutine read_parameters(optim, optimisation_config_in)
use mp, only: proc0
use file_utils, only: error_unit
implicit none
type(optimisation_type), intent(inout) :: optim
type(optimisation_config_type), intent(in), optional :: optimisation_config_in
if (present(optimisation_config_in)) optimisation_config = optimisation_config_in
call optimisation_config%init(name = 'optimisation_config', requires_index = .false.)
! Copy out internal values into module level parameters
associate(self => optimisation_config, &
auto => optim%auto, estimate_timing_error => optim%estimate_timing_error, &
max_imbalance => optim%max_imbalance, max_unused_procs => optim%max_unused_procs, &
measure_all => optim%measure_all, min_efficiency => optim%min_efficiency, &
nstep_measure => optim%nstep_measure, on => optim%on, warm_up => optim%warm_up)
#include "optimisation_copy_out_auto_gen.inc"
end associate
if (optim%nstep_measure < 2) then
optim%nstep_measure = 2
if (proc0) write(error_unit(), '("Warning nstep_measure must be at least 2. Forcing nstep_measure = 2")')
end if
end subroutine read_parameters