ocean_obc_any_open_edge Function

public pure function ocean_obc_any_open_edge(bc) result(res)

True when ANY edge TAG of the domain needs the baroclinic open-edge treatment. Reads the global tags only (never has_*), so every rank gets the same answer: callers use it to gate a COLLECTIVE seam exchange after ocean_obc_apply_baroclinic.

Arguments

Type IntentOptional Attributes Name
type(ocean_bc_state_t), intent(in) :: bc

Return Value logical


Calls

proc~~ocean_obc_any_open_edge~~CallsGraph proc~ocean_obc_any_open_edge ocean_obc_any_open_edge proc~is_open_ish is_open_ish proc~ocean_obc_any_open_edge->proc~is_open_ish

Called by

proc~~ocean_obc_any_open_edge~~CalledByGraph proc~ocean_obc_any_open_edge ocean_obc_any_open_edge proc~run_continuity_chain run_continuity_chain proc~run_continuity_chain->proc~ocean_obc_any_open_edge proc~run_stage_split run_stage_split proc~run_stage_split->proc~ocean_obc_any_open_edge proc~run_stage_split->proc~run_continuity_chain 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

   pure logical function ocean_obc_any_open_edge(bc) result(res)
      !! True when ANY edge TAG of the domain needs the baroclinic open-edge
      !! treatment.  Reads the global tags only (never `has_*`), so every
      !! rank gets the same answer: callers use it to gate a COLLECTIVE seam
      !! exchange after `ocean_obc_apply_baroclinic`.
      type(ocean_bc_state_t), intent(in) :: bc
      res = is_open_ish(bc%west%bc_type) .or. is_open_ish(bc%east%bc_type) .or. &
            is_open_ish(bc%south%bc_type) .or. is_open_ish(bc%north%bc_type)
   end function ocean_obc_any_open_edge