read_time_input Subroutine

private subroutine read_time_input(filename, params)

Reads the &time_input namelist block.

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: filename
type(case_params_t), intent(inout) :: params

Namelists

Namelist time_input


Variables

Name Type Default Description
nsteps integer None
dt real(kind=rk) None
output_interval integer None
use_dynamic_dt logical None
max_cfl real(kind=rk) None
max_dt real(kind=rk) None
min_dt real(kind=rk) None
dt_growth_limit real(kind=rk) None
enable_step_rejection logical None
max_step_retries integer None
step_reject_cut_factor real(kind=rk) None
step_reject_min_dt real(kind=rk) None
max_KE_growth_per_step real(kind=rk) None
ke_reject_floor real(kind=rk) None
max_cfl_overshoot_factor real(kind=rk) None
reject_on_pressure_max_iter logical None
stop_on_min_dt_failure logical None

Source Code

   subroutine read_time_input(filename, params)
      character(len=*), intent(in) :: filename
      type(case_params_t), intent(inout) :: params

      integer :: nsteps, output_interval
      real(rk) :: dt, max_cfl, max_dt, min_dt, dt_growth_limit
      logical :: use_dynamic_dt
      logical :: enable_step_rejection, reject_on_pressure_max_iter, stop_on_min_dt_failure
      integer :: max_step_retries
      real(rk) :: step_reject_cut_factor, step_reject_min_dt
      real(rk) :: max_KE_growth_per_step, ke_reject_floor, max_cfl_overshoot_factor
      integer :: unit_id, ios

      namelist /time_input/ nsteps, dt, output_interval, use_dynamic_dt, max_cfl, &
                             max_dt, min_dt, dt_growth_limit, &
                             enable_step_rejection, max_step_retries, step_reject_cut_factor, &
                             step_reject_min_dt, max_KE_growth_per_step, ke_reject_floor, max_cfl_overshoot_factor, &
                             reject_on_pressure_max_iter, stop_on_min_dt_failure

      nsteps = params%nsteps
      dt = params%dt
      output_interval = params%output_interval
      use_dynamic_dt = params%use_dynamic_dt
      max_cfl = params%max_cfl
      max_dt = params%max_dt
      min_dt = params%min_dt
      dt_growth_limit = params%dt_growth_limit
      enable_step_rejection = params%enable_step_rejection
      max_step_retries = params%max_step_retries
      step_reject_cut_factor = params%step_reject_cut_factor
      step_reject_min_dt = params%step_reject_min_dt
      max_KE_growth_per_step = params%max_KE_growth_per_step
      ke_reject_floor = params%ke_reject_floor
      max_cfl_overshoot_factor = params%max_cfl_overshoot_factor
      reject_on_pressure_max_iter = params%reject_on_pressure_max_iter
      stop_on_min_dt_failure = params%stop_on_min_dt_failure

      call open_namelist_file(filename, unit_id, ios)

      if (ios == 0) then
         read(unit_id, nml=time_input, iostat=ios)
         close(unit_id)
      end if

      if (ios > 0) call fatal_error('input', 'failed reading &time_input')

      params%nsteps = nsteps
      params%dt = dt
      params%output_interval = output_interval
      params%use_dynamic_dt = use_dynamic_dt
      params%max_cfl = max_cfl
      params%max_dt = max_dt
      params%min_dt = min_dt
      params%dt_growth_limit = dt_growth_limit
      params%enable_step_rejection = enable_step_rejection
      params%max_step_retries = max_step_retries
      params%step_reject_cut_factor = step_reject_cut_factor
      params%step_reject_min_dt = step_reject_min_dt
      params%max_KE_growth_per_step = max_KE_growth_per_step
      params%ke_reject_floor = ke_reject_floor
      params%max_cfl_overshoot_factor = max_cfl_overshoot_factor
      params%reject_on_pressure_max_iter = reject_on_pressure_max_iter
      params%stop_on_min_dt_failure = stop_on_min_dt_failure
   end subroutine read_time_input