subroutine read_parameters(optim, optimisation_config_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_config_in
if (present(optimisation_config_config_in)) optimisation_config_config = optimisation_config_config_in
call optimisation_config_config%init(name = 'optimisation_config', requires_index = .false.)
! Copy out internal values into module level parameters
optim%auto = optimisation_config_config%auto
optim%estimate_timing_error = optimisation_config_config%estimate_timing_error
optim%max_imbalance = optimisation_config_config%max_imbalance
optim%max_unused_procs = optimisation_config_config%max_unused_procs
optim%measure_all = optimisation_config_config%measure_all
optim%min_efficiency = optimisation_config_config%min_efficiency
optim%nstep_measure = optimisation_config_config%nstep_measure
optim%on = optimisation_config_config%on
optim%warm_up = optimisation_config_config%warm_up
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