parse_cavity_exchange_law Function

public pure function parse_cavity_exchange_law(name) result(code)

Translate an exchange-law string into a CAVITY_LAW_* code. RESERVED laws parse successfully — the refusal belongs to cavity_exchange_velocities, which returns CAVITY_MELT_NOT_IMPLEMENTED — so that a typo (CAVITY_LAW_INVALID) and an honest request for unwritten physics stay distinguishable.

Arguments

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

Return Value integer


Called by

proc~~parse_cavity_exchange_law~~CalledByGraph proc~parse_cavity_exchange_law parse_cavity_exchange_law proc~configure_ocean_cavity_melt configure_ocean_cavity_melt proc~configure_ocean_cavity_melt->proc~parse_cavity_exchange_law proc~validate_config validate_config proc~validate_config->proc~parse_cavity_exchange_law 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_cavity_melt 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

Variables

Type Visibility Attributes Name Initial
character(len=:), private, allocatable :: key

Source Code

   pure function parse_cavity_exchange_law(name) result(code)
      !! Translate an exchange-law string into a `CAVITY_LAW_*` code.
      !! RESERVED laws parse successfully — the refusal belongs to
      !! `cavity_exchange_velocities`, which returns
      !! `CAVITY_MELT_NOT_IMPLEMENTED` — so that a typo
      !! (`CAVITY_LAW_INVALID`) and an honest request for unwritten
      !! physics stay distinguishable.
      character(len=*), intent(in) :: name
      character(len=:), allocatable :: key
      integer :: code
      key = trim(adjustl(name))
      select case (key)
      case ("const_gamma", "CONST_GAMMA", "const", "isomip")
         code = CAVITY_LAW_CONST_GAMMA
      case ("hj99", "HJ99", "holland_jenkins99")
         code = CAVITY_LAW_HJ99
      case ("jenkins91", "JENKINS91")
         code = CAVITY_LAW_JENKINS91
      case ("yung25", "YUNG25", "stratfeedback")
         code = CAVITY_LAW_YUNG25
      case ("rosevear22", "ROSEVEAR22")
         code = CAVITY_LAW_ROSEVEAR22
      case ("vt19", "VT19")
         code = CAVITY_LAW_VT19
      case ("mk18", "MK18")
         code = CAVITY_LAW_MK18
      case ("burchard22", "BURCHARD22")
         code = CAVITY_LAW_BURCHARD22
      case ("jenkins21", "JENKINS21")
         code = CAVITY_LAW_JENKINS21
      case default
         code = CAVITY_LAW_INVALID
      end select
   end function parse_cavity_exchange_law