read_parameters Subroutine

private subroutine read_parameters(optim, optimisation_config_config_in)

Uses

Arguments

Type IntentOptional Attributes Name
type(optimisation_type), intent(inout) :: optim
type(optimisation_config_type), intent(in), optional :: optimisation_config_config_in

Contents

Source Code


Source Code

  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