This is three-layer thermodynomics sea-ice model based on Winton (2000) [197]. More...
Functions/Subroutines | |
subroutine | sfc_sice::sfc_sice_run (im, kice, sbc, hvap, tgice, cp, eps, epsm1, rvrdm1, grav, t0c, rd, ps, t1, q1, delt, sfcemis, dlwflx, sfcnsw, sfcdsw, srflag, cm, ch, prsl1, prslki, prsik1, prslk1, wind, flag_iter, use_lake_model, lprnt, ipr, thsfc_loc, hice, fice, tice, weasd, tsfc_wat, tprcp, tiice, ep, snwdph, qss_i, qss_w, snowmt, gflux, cmm, chh, evapi, evapw, hflxi, hflxw, islmsk, errmsg, errflg |
subroutine | ice3lay |
This subroutine is the entity of three-layer sea ice vertical thermodynamics based on Winton(2000) [197] . | |
The model has four prognostic variables: the snow layer thickness \(h_s\), the ice layer thickness \(h_i\), the upper and lower ice layer temperatures located at the midpoints of the layers \(h_i/4\) and \(3h_i/4\) below the ice surface, respectively \(T_1\) and \(T_2\). The temperature of the bottom of the ice is fixed at \(T_f\), the freezing temperature of seawater. The temperature of the top of the ice or snow, \(T_s\), is determined from the surface energy balance. The model consists of a zero-heat-capacity snow layer overlying two equally thick sea ice layers (Figure 1). The upper ice layer has a variable heat capacity to represent brine pockets.
The ice model main program ice3lay() performs two functions:
local_name | standard_name | long_name | units | type | dimensions | kind | intent |
---|---|---|---|---|---|---|---|
im | horizontal_loop_extent | horizontal loop extent | count | integer | () | in | |
kice | vertical_dimension_of_sea_ice | vertical loop extent for ice levels, start at 1 | count | integer | () | in | |
sbc | stefan_boltzmann_constant | Stefan-Boltzmann constant | W m-2 K-4 | real | () | kind_phys | in |
hvap | latent_heat_of_vaporization_of_water_at_0c | latent heat of evaporation/sublimation | J kg-1 | real | () | kind_phys | in |
tgice | freezing_point_temperature_of_seawater | freezing point temperature of seawater | K | real | () | kind_phys | in |
cp | specific_heat_of_dry_air_at_constant_pressure | specific heat of dry air at constant pressure | J kg-1 K-1 | real | () | kind_phys | in |
eps | ratio_of_dry_air_to_water_vapor_gas_constants | rd/rv | none | real | () | kind_phys | in |
epsm1 | ratio_of_dry_air_to_water_vapor_gas_constants_minus_one | (rd/rv) - 1 | none | real | () | kind_phys | in |
rvrdm1 | ratio_of_vapor_to_dry_air_gas_constants_minus_one | (rv/rd) - 1 (rv = ideal gas constant for water vapor) | none | real | () | kind_phys | in |
grav | gravitational_acceleration | gravitational acceleration | m s-2 | real | () | kind_phys | in |
t0c | temperature_at_zero_celsius | temperature at 0 degree Celsius | K | real | () | kind_phys | in |
rd | gas_constant_of_dry_air | ideal gas constant for dry air | J kg-1 K-1 | real | () | kind_phys | in |
ps | surface_air_pressure | surface pressure | Pa | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
t1 | air_temperature_at_surface_adjacent_layer | surface layer mean temperature | K | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
q1 | specific_humidity_at_surface_adjacent_layer | surface layer mean specific humidity | kg kg-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
delt | timestep_for_dynamics | time step | s | real | () | kind_phys | in |
sfcemis | surface_longwave_emissivity_over_ice | surface lw emissivity in fraction over ice | frac | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
dlwflx | surface_downwelling_longwave_flux_absorbed_by_ground_over_ice | total sky surface downward longwave flux absorbed by the ground over ice | W m-2 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
sfcnsw | surface_net_downwelling_shortwave_flux | total sky sfc netsw flx into ground | W m-2 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
sfcdsw | surface_downwelling_shortwave_flux | total sky sfc downward sw flux | W m-2 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
srflag | precipitation_type | snow/rain flag for precipitation | flag | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
cm | surface_drag_coefficient_for_momentum_in_air_over_ice | surface exchange coeff for momentum over ice | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
ch | surface_drag_coefficient_for_heat_and_moisture_in_air_over_ice | surface exchange coeff heat & moisture over ice | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
prsl1 | air_pressure_at_surface_adjacent_layer | surface layer mean pressure | Pa | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
prslki | ratio_of_exner_function_between_midlayer_and_interface_at_lowest_model_layer | Exner function ratio bt midlayer and interface at 1st layer | ratio | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
prsik1 | surface_dimensionless_exner_function | dimensionless Exner function at the ground surface | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
prslk1 | dimensionless_exner_function_at_surface_adjacent_layer | dimensionless Exner function at the lowest model layer | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
wind | wind_speed_at_lowest_model_layer | wind speed at lowest model level | m s-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
flag_iter | flag_for_iteration | flag for iteration | flag | logical | (ccpp_constant_one:horizontal_loop_extent) | in | |
use_lake_model | flag_for_using_lake_model | flag indicating lake points using a lake model | flag | integer | (ccpp_constant_one:horizontal_loop_extent) | in | |
lprnt | flag_print | switch for printing sample column to stdout | flag | logical | () | in | |
ipr | horizontal_index_of_printed_column | horizontal index of printed column | index | integer | () | in | |
thsfc_loc | flag_for_reference_pressure_theta | flag for reference pressure in theta calculation | flag | logical | () | in | |
hice | sea_ice_thickness | sea-ice thickness | m | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
fice | sea_ice_area_fraction_of_sea_area_fraction | sea-ice concentration [0,1] | frac | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
tice | surface_skin_temperature_over_ice | surface skin temperature over ice | K | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
weasd | water_equivalent_accumulated_snow_depth_over_ice | water equiv of acc snow depth over ice | mm | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
tsfc_wat | surface_skin_temperature_over_water | surface skin temperature over water | K | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
tprcp | nonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep_over_ice | total precipitation amount in each time step over ice | m | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
tiice | temperature_in_ice_layer | sea ice internal temperature | K | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_dimension_of_sea_ice) | kind_phys | inout |
ep | surface_upward_potential_latent_heat_flux_over_ice | surface upward potential latent heat flux over ice | W m-2 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
snwdph | surface_snow_thickness_water_equivalent_over_ice | water equivalent snow depth over ice | mm | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
qss_i | surface_specific_humidity_over_ice | surface air saturation specific humidity over ice | kg kg-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
qss_w | surface_specific_humidity_over_water | surface air saturation specific humidity over water | kg kg-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
snowmt | surface_snow_melt | snow melt during timestep | m | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
gflux | upward_heat_flux_in_soil_over_ice | soil heat flux over ice | W m-2 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
cmm | surface_drag_wind_speed_for_momentum_in_air_over_ice | momentum exchange coefficient over ice | m s-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
chh | surface_drag_mass_flux_for_heat_and_moisture_in_air_over_ice | thermal exchange coefficient over ice | kg m-2 s-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | inout |
evapi | kinematic_surface_upward_latent_heat_flux_over_ice | kinematic surface upward latent heat flux over ice | kg kg-1 m s-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
evapw | kinematic_surface_upward_latent_heat_flux_over_water | kinematic surface upward latent heat flux over water | kg kg-1 m s-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
hflxi | kinematic_surface_upward_sensible_heat_flux_over_ice | kinematic surface upward sensible heat flux over ice | K m s-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
hflxw | kinematic_surface_upward_sensible_heat_flux_over_water | kinematic surface upward sensible heat flux over water | K m s-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
islmsk | sea_land_ice_mask_cice | sea/land/ice mask cice (=0/1/2) | flag | integer | (ccpp_constant_one:horizontal_loop_extent) | in | |
errmsg | ccpp_error_message | error message for error handling in CCPP | none | character | () | len=* | out |
errflg | ccpp_error_code | error code for error handling in CCPP | 1 | integer | () | out |