read_parameters Subroutine

private subroutine read_parameters(optim, optimisation_config_in)

Uses

Arguments

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

Contents

Source Code


Source Code

  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