parse_tdrag_variant Function

public pure function parse_tdrag_variant(name) result(code)

Translate a namelist string into a TDRAG_* code. An unrecognised string returns TDRAG_INVALID — a typo must abort rather than silently select one of two laws with different coefficient dimensions. Accepts the same spellings as parse_bdrag_variant, deliberately: the two groups mirror.

Arguments

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

Return Value integer


Called by

proc~~parse_tdrag_variant~~CalledByGraph proc~parse_tdrag_variant parse_tdrag_variant proc~configure_ocean_top_drag configure_ocean_top_drag proc~configure_ocean_top_drag->proc~parse_tdrag_variant proc~validate_config validate_config proc~validate_config->proc~parse_tdrag_variant proc~build_pending_handle build_pending_handle proc~build_pending_handle->proc~validate_config proc~engine_setup engine_setup proc~engine_setup->proc~configure_ocean_top_drag proc~complete_ocean_create complete_ocean_create proc~complete_ocean_create->proc~engine_setup proc~driver_run_ocean driver_run_ocean proc~driver_run_ocean->proc~engine_setup proc~driver_validate driver_validate proc~driver_validate->proc~engine_setup proc~rdb_ocean_create_from_string rdb_ocean_create_from_string proc~rdb_ocean_create_from_string->proc~build_pending_handle proc~rdb_ocean_create_from_string->proc~complete_ocean_create proc~rdb_ocean_create_pending rdb_ocean_create_pending proc~rdb_ocean_create_pending->proc~build_pending_handle proc~driver_run driver_run proc~driver_run->proc~driver_run_ocean proc~rdb_ocean_create_finalize rdb_ocean_create_finalize proc~rdb_ocean_create_finalize->proc~complete_ocean_create

Source Code

   pure function parse_tdrag_variant(name) result(code)
      !! Translate a namelist string into a `TDRAG_*` code.  An
      !! unrecognised string returns `TDRAG_INVALID` — a typo must abort
      !! rather than silently select one of two laws with different
      !! coefficient dimensions.  Accepts the same spellings as
      !! `parse_bdrag_variant`, deliberately: the two groups mirror.
      character(len=*), intent(in) :: name
      integer :: code
      select case (trim(adjustl(name)))
      case ("quadratic", "QUADRATIC", "cd", "CD")
         code = TDRAG_QUADRATIC
      case ("linear", "LINEAR", "rayleigh", "RAYLEIGH")
         code = TDRAG_LINEAR
      case default
         code = TDRAG_INVALID
      end select
   end function parse_tdrag_variant