data_input_time_mode_from_string Function

public function data_input_time_mode_from_string(tag) result(mode)

Translate a namelist/registration-time string into a DATA_TIME_* code. Fail-loud on anything not covered by data_input_time_mode_is_implemented — an unrecognised tag must never silently fall back to a default mode.

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: tag

Return Value integer


Calls

proc~~data_input_time_mode_from_string~~CallsGraph proc~data_input_time_mode_from_string data_input_time_mode_from_string error error proc~data_input_time_mode_from_string->error to_lower to_lower proc~data_input_time_mode_from_string->to_lower

Called by

proc~~data_input_time_mode_from_string~~CalledByGraph proc~data_input_time_mode_from_string data_input_time_mode_from_string proc~register_common register_common proc~register_common->proc~data_input_time_mode_from_string proc~ocean_data_input_register_2d ocean_data_input_register_2d proc~ocean_data_input_register_2d->proc~register_common proc~ocean_data_input_register_3d ocean_data_input_register_3d proc~ocean_data_input_register_3d->proc~register_common proc~ocean_data_input_register_segment_2d ocean_data_input_register_segment_2d proc~ocean_data_input_register_segment_2d->proc~register_common proc~ocean_data_input_register_segment_3d ocean_data_input_register_segment_3d proc~ocean_data_input_register_segment_3d->proc~register_common proc~ocean_data_input_load_static_2d ocean_data_input_load_static_2d proc~ocean_data_input_load_static_2d->proc~ocean_data_input_register_2d proc~register_tag register_tag proc~register_tag->proc~ocean_data_input_register_2d proc~ocean_data_forcing_configure ocean_data_forcing_configure proc~ocean_data_forcing_configure->proc~register_tag proc~seed_cavity_draft seed_cavity_draft proc~seed_cavity_draft->proc~ocean_data_input_load_static_2d proc~engine_setup engine_setup proc~engine_setup->proc~ocean_data_forcing_configure proc~ocean_state_seed_from_cfg ocean_state_seed_from_cfg proc~ocean_state_seed_from_cfg->proc~seed_cavity_draft

Source Code

   function data_input_time_mode_from_string(tag) result(mode)
      !! Translate a namelist/registration-time string into a
      !! `DATA_TIME_*` code.  Fail-loud on anything not covered by
      !! `data_input_time_mode_is_implemented` — an unrecognised tag
      !! must never silently fall back to a default mode.
      character(len=*), intent(in) :: tag
      integer :: mode
      select case (to_lower(trim(tag)))
      case ("linear")
         mode = DATA_TIME_LINEAR
      case ("cyclic")
         mode = DATA_TIME_CYCLIC
      case ("static")
         mode = DATA_TIME_STATIC
      case default
         call logger%error("ocean_data_input: unimplemented time_mode '"//trim(tag)// &
                           "' (implemented: linear, cyclic, static)")
         error stop "ocean_data_input: unimplemented time_mode"
      end select
   end function data_input_time_mode_from_string