chksum_bt Subroutine

public subroutine chksum_bt(grid, bt_work, probe, label, stage, step)

Sample the BT substep’s 2D in/out fields at the fold seam: the fold delta is bt_ubt_end - ubt_at_n - dt*F_bt_u, so these four (+ eta) name which INPUT went non-finite when the fold’s loud count fires — the “what fed it” the nan-catch cannot see.

Arguments

Type IntentOptional Attributes Name
type(hgrid_t), intent(in) :: grid
type(barotropic_workstate_t), intent(in) :: bt_work
type(chksum_probe_t), intent(inout) :: probe
character(len=*), intent(in) :: label
integer, intent(in) :: stage
integer, intent(in) :: step

Calls

proc~~chksum_bt~~CallsGraph proc~chksum_bt chksum_bt interface~rdb_debug_chksum rdb_debug_chksum proc~chksum_bt->interface~rdb_debug_chksum proc~chksum_active chksum_active proc~chksum_bt->proc~chksum_active proc~rdb_debug_chksum_2d rdb_debug_chksum_2d interface~rdb_debug_chksum->proc~rdb_debug_chksum_2d proc~rdb_debug_chksum_3d rdb_debug_chksum_3d interface~rdb_debug_chksum->proc~rdb_debug_chksum_3d proc~rdb_debug_chksum_2d->proc~chksum_active proc~chksum_loc_extents chksum_loc_extents proc~rdb_debug_chksum_2d->proc~chksum_loc_extents proc~chksum_loc_interior chksum_loc_interior proc~rdb_debug_chksum_2d->proc~chksum_loc_interior proc~chksum_row chksum_row proc~rdb_debug_chksum_2d->proc~chksum_row proc~chksum_stats_2d chksum_stats_2d proc~rdb_debug_chksum_2d->proc~chksum_stats_2d proc~rdb_debug_chksum_3d->proc~chksum_active proc~rdb_debug_chksum_3d->proc~chksum_loc_extents proc~rdb_debug_chksum_3d->proc~chksum_loc_interior proc~rdb_debug_chksum_3d->proc~chksum_row proc~chksum_stats_3d chksum_stats_3d proc~rdb_debug_chksum_3d->proc~chksum_stats_3d proc~halo_allreduce_sum_i8 halo_allreduce_sum_i8 proc~chksum_row->proc~halo_allreduce_sum_i8 allreduce allreduce proc~halo_allreduce_sum_i8->allreduce proc~comm_env_compute_comm comm_env_compute_comm proc~halo_allreduce_sum_i8->proc~comm_env_compute_comm

Called by

proc~~chksum_bt~~CalledByGraph proc~chksum_bt chksum_bt proc~run_stage_split run_stage_split proc~run_stage_split->proc~chksum_bt proc~ocean_dyn_step_split ocean_dyn_step_split proc~ocean_dyn_step_split->proc~run_stage_split proc~engine_step engine_step proc~engine_step->proc~ocean_dyn_step_split proc~driver_run_ocean driver_run_ocean proc~driver_run_ocean->proc~engine_step proc~rdb_ocean_step rdb_ocean_step proc~rdb_ocean_step->proc~engine_step proc~driver_run driver_run proc~driver_run->proc~driver_run_ocean

Source Code

   subroutine chksum_bt(grid, bt_work, probe, label, stage, step)
      !! Sample the BT substep's 2D in/out fields at the fold seam:
      !! the fold delta is `bt_ubt_end - ubt_at_n - dt*F_bt_u`, so these
      !! four (+ eta) name which INPUT went non-finite when the fold's
      !! loud count fires — the "what fed it" the nan-catch cannot see.
      type(hgrid_t), intent(in) :: grid
      type(barotropic_workstate_t), intent(in) :: bt_work
      type(chksum_probe_t), intent(inout) :: probe
      character(len=*), intent(in) :: label
      integer, intent(in) :: stage, step

      if (.not. chksum_active(probe, step)) return
      !$acc wait
      call rdb_debug_chksum(grid, bt_work%bt_eta, label, "bt_eta", stage, step, probe, LOC_H)
      call rdb_debug_chksum(grid, bt_work%bt_ubt_end, label, "bt_ubt_end", stage, step, &
                            probe, LOC_U)
      call rdb_debug_chksum(grid, bt_work%bt_vbt_end, label, "bt_vbt_end", stage, step, &
                            probe, LOC_V)
      call rdb_debug_chksum(grid, bt_work%ubt_at_n, label, "ubt_at_n", stage, step, &
                            probe, LOC_U)
      call rdb_debug_chksum(grid, bt_work%F_bt_u, label, "F_bt_u", stage, step, probe, LOC_U)
      call rdb_debug_chksum(grid, bt_work%F_bt_v, label, "F_bt_v", stage, step, probe, LOC_V)
   end subroutine chksum_bt