register_ocean_debug Subroutine

private subroutine register_ocean_debug(cfg, schema)

&ocean_debug_nml: forensic probes (all heavy, all default off).

Arguments

Type IntentOptional Attributes Name
type(config_t), intent(in), target :: cfg
type(nml_schema_t), intent(inout) :: schema

Calls

proc~~register_ocean_debug~~CallsGraph proc~register_ocean_debug register_ocean_debug proc~group_add nml_group_t%group_add proc~register_ocean_debug->proc~group_add proc~nml_int nml_int proc~register_ocean_debug->proc~nml_int proc~nml_logical nml_logical proc~register_ocean_debug->proc~nml_logical proc~schema_add_group nml_schema_t%schema_add_group proc~register_ocean_debug->proc~schema_add_group error error proc~group_add->error proc~lower lower proc~group_add->proc~lower proc~schema_add_group->error proc~schema_add_group->proc~lower proc~move_group move_group proc~schema_add_group->proc~move_group

Called by

proc~~register_ocean_debug~~CalledByGraph proc~register_ocean_debug register_ocean_debug proc~build_rdb_schema build_rdb_schema proc~build_rdb_schema->proc~register_ocean_debug proc~read_config_from_string_impl read_config_from_string_impl proc~read_config_from_string_impl->proc~build_rdb_schema proc~read_config_impl read_config_impl proc~read_config_impl->proc~build_rdb_schema proc~read_config read_config proc~read_config->proc~read_config_impl proc~read_config_from_string read_config_from_string proc~read_config_from_string->proc~read_config_from_string_impl proc~build_pending_handle build_pending_handle proc~build_pending_handle->proc~read_config_from_string 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

Variables

Type Visibility Attributes Name Initial
type(nml_group_t), private :: g
integer, private, pointer :: pi
logical, private, pointer :: pl

Source Code

   subroutine register_ocean_debug(cfg, schema)
      !! `&ocean_debug_nml`: forensic probes (all heavy, all default off).
      type(config_t), target, intent(in) :: cfg
      type(nml_schema_t), intent(inout) :: schema
      type(nml_group_t) :: g
      logical, pointer :: pl
      integer, pointer :: pi

      g%name = "ocean_debug"
      g%doc = "Forensic probes for the ocean dyn-core (all heavy, all default off)."
      pl => cfg%ocean%debug%budget
      call g%add(nml_logical("budget", pl, "Per-stage BT power-budget probe (BUDGET rows)"))
      pl => cfg%ocean%debug%ke_attr
      call g%add(nml_logical("ke_attr", pl, &
                             "Per-segment layer-KE attribution meter (KE_ATTR rows)"))
      pi => cfg%ocean%debug%ke_attr_start_step
      call g%add(nml_int("ke_attr_start_step", pi, &
                         "First outer step the KE meter samples (0 = from start)", min=0))
      pi => cfg%ocean%debug%ke_attr_end_step
      call g%add(nml_int("ke_attr_end_step", pi, &
                         "Last outer step the KE meter samples (0 = unbounded)", min=0))
      pl => cfg%ocean%debug%chksum
      call g%add(nml_logical("chksum", pl, &
                             "MOM6-style per-phase field checksums (CHKSUM rows) + "// &
                             "HOTFACE argmax-face anatomy at the tendency seams"))
      pi => cfg%ocean%debug%chksum_start_step
      call g%add(nml_int("chksum_start_step", pi, &
                         "First outer step the chksum probe samples (0 = from start)", min=0))
      pi => cfg%ocean%debug%chksum_end_step
      call g%add(nml_int("chksum_end_step", pi, &
                         "Last outer step the chksum probe samples (0 = unbounded)", min=0))
      pl => cfg%ocean%debug%chksum_interior
      call g%add(nml_logical("chksum_interior", pl, &
                             "Reduce over physical cells only, making `bits` a valid "// &
                             "1-rank-vs-N-rank gate"))
      call schema%add_group(g)
   end subroutine register_ocean_debug