sponge_source_is_implemented Function

private pure function sponge_source_is_implemented(tag) result(ok)

.true. iff &ocean_sponge_nml damp_source names a source that is actually filled. "file" is a recognised name (PR-23b, needs the PR-14 reader) but has no kernel yet — a source with no filler must abort, not silently build an all-zero map (the lateral_closure_is_implemented idiom).

Kept under its original name because it is the DAMP axis; the TARGET axis has its own predicate below. They were one function until "linear_z" arrived, at which point a shared list would have accepted damp_source="linear_z" — a spelling with no meaning on that axis — as valid.

Arguments

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

Return Value logical


Called by

proc~~sponge_source_is_implemented~~CalledByGraph proc~sponge_source_is_implemented sponge_source_is_implemented proc~validate_config validate_config proc~validate_config->proc~sponge_source_is_implemented proc~build_pending_handle build_pending_handle proc~build_pending_handle->proc~validate_config 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_pending rdb_ocean_create_pending proc~rdb_ocean_create_pending->proc~build_pending_handle

Source Code

   pure logical function sponge_source_is_implemented(tag) result(ok)
      !! .true. iff `&ocean_sponge_nml damp_source` names a source that is
      !! actually filled. `"file"` is a recognised name (PR-23b, needs the
      !! PR-14 reader) but has no kernel yet — a source with no filler
      !! must abort, not silently build an all-zero map (the
      !! `lateral_closure_is_implemented` idiom).
      !!
      !! Kept under its original name because it is the DAMP axis; the
      !! TARGET axis has its own predicate below. They were one function
      !! until `"linear_z"` arrived, at which point a shared list would
      !! have accepted `damp_source="linear_z"` — a spelling with no
      !! meaning on that axis — as valid.
      character(len=*), intent(in) :: tag
      select case (trim(tag))
      case ("band")
         ok = .true.
      case default
         ok = .false.
      end select
   end function sponge_source_is_implemented