Outer shim (outer-shim + flat-impl pattern): forward the ice
slot’s arrays to the device kernel. Called only when
ice%has_snowfall (driver gate, rdb_driver.F90) – default
snowfall=0 never reaches this module.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(hgrid_t), | intent(in) | :: | grid | |||
| type(ocean_sea_ice_t), | intent(inout) | :: | ice | |||
| real(kind=wp), | intent(in) | :: | dt_therm |
Effective thermo timestep (s) – |
pure subroutine ice_snowfall_ocean_share(grid, ice, dt_therm) !! Outer shim (outer-shim + flat-impl pattern): forward the ice !! slot's arrays to the device kernel. Called only when !! `ice%has_snowfall` (driver gate, `rdb_driver.F90`) -- default !! `snowfall=0` never reaches this module. type(hgrid_t), intent(in) :: grid type(ocean_sea_ice_t), intent(inout) :: ice real(wp), intent(in) :: dt_therm !! Effective thermo timestep (s) -- `ocean_dyn_t%therm_dt(dt)`. call ice_snowfall_ocean_share_impl(ice%snow_part_ocn, ice%atm_fprec, & ice%sst_seam, ice%ssurf_seam, & ice%fprec_ocn_diag, ice%heat_flux_diag, & ice%salt_flux_diag, dt_therm, grid%nghost, & ice%nx_total, ice%ny_total) end subroutine ice_snowfall_ocean_share