Counted allocatable footprint of the sea-ice slot (one
arr_bytes term per array, mirroring ocean_meke_bytes).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ocean_sea_ice_t), | intent(in) | :: | this |
pure function ocean_sea_ice_bytes(this) result(nbytes) !! Counted allocatable footprint of the sea-ice slot (one !! `arr_bytes` term per array, mirroring `ocean_meke_bytes`). class(ocean_sea_ice_t), intent(in) :: this integer(int64) :: nbytes nbytes = 0_int64 if (.not. this%is_init) return nbytes = arr_bytes(this%frazil_heat) & + arr_bytes(this%heat_budget_frazil) & + arr_bytes(this%part_size) & + arr_bytes(this%m_ice) & + arr_bytes(this%m_snow) & + arr_bytes(this%enth_ice) & + arr_bytes(this%enth_snow) & + arr_bytes(this%sal_ice) & + arr_bytes(this%m_frozen_diag) & + arr_bytes(this%salt_flux_diag) & + arr_bytes(this%atm_sf0) & + arr_bytes(this%atm_dsfdt) & + arr_bytes(this%atm_sw_dn) & + arr_bytes(this%atm_fprec) & + arr_bytes(this%fb) & + arr_bytes(this%sst_seam) & + arr_bytes(this%ssurf_seam) & + arr_bytes(this%tfw_seam) & + arr_bytes(this%tsurf_out) & + arr_bytes(this%h2o_ocn_to_ice) & + arr_bytes(this%h2o_ice_to_ocn) & + arr_bytes(this%heat_to_ocn) & + arr_bytes(this%sw_thru) & + arr_bytes(this%snow_to_ice) & + arr_bytes(this%heat_flux_diag) & + arr_bytes(this%sw_thru_diag) & + arr_bytes(this%m_melt_diag) & + arr_bytes(this%fprec_ocn_diag) & + arr_bytes(this%h_lim) & + arr_bytes(this%mh_lim) & + arr_bytes(this%hlim_cfg) & + arr_bytes(this%fb_part_sum) & + arr_bytes(this%snow_part_ocn) & + arr_bytes(this%u_ice) & + arr_bytes(this%v_ice) & + arr_bytes(this%str_d) & + arr_bytes(this%str_t) & + arr_bytes(this%str_s) & + arr_bytes(this%tau_a_x) & + arr_bytes(this%tau_a_y) & + arr_bytes(this%fxoc) & + arr_bytes(this%fyoc) & + arr_bytes(this%tau_ocn_x) & + arr_bytes(this%tau_ocn_y) & + arr_bytes(this%mca_ice) & + arr_bytes(this%mca_snow) & + arr_bytes(this%uh_ice) & + arr_bytes(this%vh_ice) & + arr_bytes(this%uh_snow) & + arr_bytes(this%vh_snow) & + arr_bytes(this%htot_work) & + arr_bytes(this%hl_x_work) & + arr_bytes(this%hr_x_work) & + arr_bytes(this%hl_y_work) & + arr_bytes(this%hr_y_work) & + arr_bytes(this%uhtot_work) & + arr_bytes(this%vhtot_work) & + arr_bytes(this%tr_flux_x_work) & + arr_bytes(this%tr_flux_y_work) ! EVP rheology scratch — allocated + device-mapped only when ! `dynamics` is on, so the term self-zeroes on the EVP-off path. nbytes = nbytes + this%evp_ws%bytes() end function ocean_sea_ice_bytes