Open a group of nslab (rows x layers) slabs in total (an upper
bound is fine). Grows the buffers, with a warning, if the run did
not reserve enough. No-op when inactive.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | nslab |
Sum over the group’s fields of rows x layers. |
subroutine ocean_fold_begin(nslab) !! Open a group of `nslab` (rows x layers) slabs in total (an upper !! bound is fine). Grows the buffers, with a warning, if the run did !! not reserve enough. No-op when inactive. integer, intent(in) :: nslab !! Sum over the group's fields of rows x layers. if (.not. fx_active) return if (fx_open) error stop "rdb_ocean_fold_exchange: ocean_fold_begin with a group already open" if (nslab > fx_slab_cap) then call logger%warning("ocean_fold_begin: growing the fold buffers mid-run ("// & to_string(fx_slab_cap)//" -> "//to_string(nslab)// & " slabs). Call ocean_fold_exchange_reserve at init.") call grow_buffers(nslab) end if fx_poff = 0 fx_uoff = 0 fx_open = .true. fx_sent = .false. end subroutine ocean_fold_begin