read_restart_input Subroutine

private subroutine read_restart_input(filename, params)

Reads the optional &restart_input block.

Arguments

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

Namelists

Namelist restart_input


Variables

Name Type Default Description
restart_from_file logical None
restart_file character(len=path_len) None
write_restart logical None
restart_interval integer None
restart_output_dir character(len=path_len) None
restart_keep integer None
restart_use_file_dt logical None
restart_nsteps_are_additional logical None

Source Code

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

      logical :: restart_from_file
      character(len=path_len) :: restart_file
      logical :: write_restart
      integer :: restart_interval
      character(len=path_len) :: restart_output_dir
      integer :: restart_keep
      logical :: restart_use_file_dt, restart_nsteps_are_additional
      integer :: unit_id, ios

      namelist /restart_input/ restart_from_file, restart_file, write_restart, &
                                restart_interval, restart_output_dir, restart_keep, &
                                restart_use_file_dt, restart_nsteps_are_additional

      restart_from_file = params%restart_from_file
      restart_file = params%restart_file
      write_restart = params%write_restart
      restart_interval = params%restart_interval
      restart_output_dir = params%restart_output_dir
      restart_keep = params%restart_keep
      restart_use_file_dt = params%restart_use_file_dt
      restart_nsteps_are_additional = params%restart_nsteps_are_additional

      call open_namelist_file(filename, unit_id, ios)

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

      if (ios /= 0 .and. ios /= -1) then
         call fatal_error('input', 'failed reading &restart_input. Check for unknown variables or typos.')
      end if

      if (ios == 0) then
         params%restart_from_file = restart_from_file
         params%restart_file = trim(restart_file)
         params%write_restart = write_restart
         params%restart_interval = restart_interval
         params%restart_output_dir = trim(restart_output_dir)
         params%restart_keep = restart_keep
         params%restart_use_file_dt = restart_use_file_dt
         params%restart_nsteps_are_additional = restart_nsteps_are_additional
      end if
   end subroutine read_restart_input