ocean_sea_ice_bytes Function

private 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).

Type Bound

ocean_sea_ice_t

Arguments

Type IntentOptional Attributes Name
class(ocean_sea_ice_t), intent(in) :: this

Return Value integer(kind=int64)


Calls

proc~~ocean_sea_ice_bytes~~CallsGraph proc~ocean_sea_ice_bytes ocean_sea_ice_t%ocean_sea_ice_bytes interface~arr_bytes arr_bytes proc~ocean_sea_ice_bytes->interface~arr_bytes proc~evp_workspace_bytes evp_workspace_t%evp_workspace_bytes proc~ocean_sea_ice_bytes->proc~evp_workspace_bytes proc~arr_bytes_i1 arr_bytes_i1 interface~arr_bytes->proc~arr_bytes_i1 proc~arr_bytes_i2 arr_bytes_i2 interface~arr_bytes->proc~arr_bytes_i2 proc~arr_bytes_i3 arr_bytes_i3 interface~arr_bytes->proc~arr_bytes_i3 proc~arr_bytes_l1 arr_bytes_l1 interface~arr_bytes->proc~arr_bytes_l1 proc~arr_bytes_l2 arr_bytes_l2 interface~arr_bytes->proc~arr_bytes_l2 proc~arr_bytes_l3 arr_bytes_l3 interface~arr_bytes->proc~arr_bytes_l3 proc~arr_bytes_r1 arr_bytes_r1 interface~arr_bytes->proc~arr_bytes_r1 proc~arr_bytes_r2 arr_bytes_r2 interface~arr_bytes->proc~arr_bytes_r2 proc~arr_bytes_r3 arr_bytes_r3 interface~arr_bytes->proc~arr_bytes_r3 proc~arr_bytes_r4 arr_bytes_r4 interface~arr_bytes->proc~arr_bytes_r4 proc~evp_workspace_bytes->interface~arr_bytes

Source Code

   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