GFDL - Geophysical Fluid Dynamics Laboratory

Skip to main content

Sea Ice Simulator


Contact: Michael Winton


Sea Ice Simulator (SIS) is a dynamic/thermodynamic sea ice model for use in coupled models under FMS. SIS calculates the concentration, thickness, temperature, brine content, and snow cover of an arbitrary number of ice thickness categories (including open water) as well as the motion of the complete pack.


SIS employs a three layer scheme similar to Semtner's for the vertical thermodynamics. Multiple ice thickness categories are maintained. A simple scheme moves ice between categories when category thickness bounds are transgressed due to thermodynamic or dynamic
changes. The model contains full dynamics with internal ice forces calculated using an elastic-viscous-plastic rheology. For more details see the technical document. Within FMS coupled models, the ocean and atmosphere models never interact directly with each other.
The sea ice model plays the role of a general interface between the two. The ocean surfacealbedo and roughnesses are provided by the sea ice model.


Modules external to SIS:

  • mpp_mod (v?)
  • mpp_domains_mod (v?)
  • time_manager_mod (v?)
  • utilities_mod (v?)
  • constants_mod (v?)
  • diag_manager_mod (v?)


use ice_model_mod, only : ice_model_init, ice_bottom_to_ice_top, update_ice_model_fast, update_ice_model_slow, ice_model_end, ice_data_type

  • ice_model_init
    Reads ice_model_nml namelist input.
    Sets up ice grid configuration.
    Initializes prognostic variables (from restart file, if available).
    Initializes diagnostics.
  • ice_bottom_to_ice_top
    Supplies surface albedo and roughnesses.
  • update_ice_model_fast
    Calculates ice temperature changes.
    Accumulates heat and water fluxes for use in update_ice_model_slow.
  • update_ice_model_slow
    Calculates ice and snow mass changes.
    Calculates ice motion.
    Transports ice and snow.
    Adjusts thickness distribution.
    Prepares fluxes for ocean surface.
  • ice_model_end
    Writes prognostic variables to restart file.
  • ice_data_type
    Contains the state of the ice model including fields used for coupling.


type(domain2D) Ice%Domain The coupler uses the ice domain for mapping between grids and processors

real, dimension(:,:,:)

Ice%part_size fractional area of each partition of a temperature grid box

the following fields are for communication from the ice to the atmosphere

Ice%t_surf	surface temperature (deg k)
Ice%albedo	surface albedo (fraction)
Ice%rough_mom	surface roughness for momentum (m)
Ice%rough_heat	surface roughness for heat (m)
Ice%rough_moist	surface roughness for moisture (m)
Ice%u_surf	zonal (ocean/ice) current at the surface (m/s)
Ice%v_surf	meridional (ocean/ice) current at the surface (m/s)
the following fields are for communication from the ice to the ocean
Ice%flux_u	zonal wind stress (Pa)
Ice%flux_v	meridional wind stress (Pa)
Ice%p_surf	pressure of overlying ice and atmosphere on ocean surface (Pa)
Ice%flux_t	sensible heat flux (w/m2)
Ice%flux_q	specific humidity flux (kg/m2/s)
Ice%flux_sw	net (down-up) shortwave flux (w/m2)
Ice%flux_lw	net (down-up) longwave flux (w/m2)
Ice%lprec	mass flux of liquid precipitation (Kg/m2/s)
Ice%fprec	mass flux of frozen precipitation (Kg/m2/s)
Ice%runoff	mass flux of liquid runoff (Kg/m2/s)
IceƊlving	mass flux of frozen runoff (Kg/m2/s)


A detailed description of public routines (all arguments nmust be described including their units, type, and dimensions).

  • ice_model_init
    Ice		type(domain2D)
    Time_Init	type (time_type)
    Time		type (time_type) 
    Time_step_fast	type (time_type)
    Time_step_slow	type (time_type)
    ocean_domain	type(domain2D)
  • ice_bottom_to_ice_top
    Ice type	(domain2D)
    t_surf_ice_bot	real(:,:,:)
    u_surf_ice_bot	real(:,:,:)
    v_surf_ice_bot	real(:,:,:)
    frazil		real(:,:,:)
    s_surf_ice_bot	real(:,:,:)
    sea_lev_ice_bot	real(:,:,:)
  • update_ice_model_fast
    Ice	type(domain2D)
    flux_u	real(:,:,:)
    flux_v	real(:,:,:)
    flux_sw	real(:,:,:)
    flux_lw	real(:,:,:)
    flux_t	real(:,:,:)
    flux_q	real(:,:,:)
    dhdt	real(:,:,:)
    dedt	real(:,:,:)
    drdt	real(:,:,:)
    lprec	real(:,:,:)
    fprec	real(:,:,:)
    coszen	real(:,:,:)
  • update_ice_model_slow
    Ice	type(domain2D)
    runoff	real(:,:,:)
    calving	real(:,:,:)
    p_surf	real(:,:,:)
  • ice_model_end
    Ice	type(domain2D)


kmelt            5.8e-5*4.2e6    ocean/ice heat flux constant
heat_rough_ice   1.0e-4          heat roughness length
mom_rough_ice    1.0e-4          momentum same, cd10=(von_k/ln(10/z0))^2
alb_sno          0.80            snow albedo (0.05 less if melting)
alb_ice          0.65            ice albedo (0.05 less if melting)
pen_ice          0.3             part unreflected solar penetrates ice
opt_dep_ice      0.67            ice optical depth
ice_bulk_salin   0.0             ice bulk salinity (for ocean salt flux)
p0               2.75e4          ice strength parameter
c0               20.0            another ice strength parameter
cdw              3.24e-3         water/ice drag coefficient
wd_turn          25.0            water/ice drag turning angle
nsteps_dyn       432             dynamics steps per slow timestep
nsteps_adv       8               advection steps per slow timestep
atmos_winds      .true.          wind stress from atmosphere model over t points and has wrong sign
slab_ice         .false.         do old-style GFDL slab ice?
spec_ice         .false.         old-style GFDL slab ice with SST, ice thickness and conc. from data
num_part         6               number of ice grid partitions (partition 1 is open water)


MOI          ice modeled                         0 or 1
MI           ice mass                            Kg/m^2
CN           ice concentration                   0-1
HS           snow thickness                      m-snow
HI           ice thickness                       m-ice
T1           upper ice layer temperature         C
T2           lower ice layer temperature         C
TS           surface temperature                 C
SH           sensible heat flux                  W/m^2
LH           latent heat flux                    W/m^2
SW           short wave heat flux                W/m^2
LW           long wave heat flux over ice        W/m^2
SNOWFL       rate of snow fall                   Kg/m^2/s
RAIN         rate of rain fall                   Kg/m^2/s
RUNOFF       liquid runoff                       Kg/m^2/s
CALVING      frozen runoff                       Kg/m^2/s
EVAP         evaporation                         Kg/m^2/s
SALTF        ice to ocean salt flux              Kg/m^2/s
SN2IC        rate of snow to ice conversion      Kg/m^2/s
TMELT        upper surface melting energy flux   W/m^2
BMELT        bottom surface melting energy flux  W/m^2
BHEAT        ocean to ice heat flux              W/m^2
E2MELT       heat needed to melt ice             J/m^2
FRAZIL       energy flux of frazil formation     W/m^2
ALB          surface albedo                      0-1
XPRT         frozen water transport convergence  Kg/m^2/yr
LSRC         frozen water local source           Kg/m^2/yr
LSNK         frozen water local sink             Kg/m^2/yr
BSNK         frozen water local bottom sink      Kg/m^2/yr
STRAIN_ANGLE strain angle                        none
SIGI         first stress invariant              none
SIGII        second stress invariant             none
STRENGTH     ice strength                        Pa*m
UI           ice velocity - x component          m/s
VI           ice velocity - y component          m/s
FA_X         air stress on ice - x component     Pa
FA_Y         air stress on ice - y component     Pa
FI_X         ice internal stress - x component   Pa
FI_Y         ice internal stress - y component   Pa
FC_X         coriolis force - x component        Pa
FC_Y         coriolis force - y component        Pa
FW_X         water stress on ice - x component   Pa
FW_Y         water stress on ice - y component   Pa
UO           surface current - x component       m/s
VO           surface current - y component       m/s


  • Data sets used.


  • Revision history


  • A list of error messages by routine and what it means.


  • A list of references.


  • A list of compiler recommendations (might include recommended compiler version or optimization options for a particular system).


  • A list of precompiler options.


  • A list of loader options (e.g., libraries) and/or recommendations (note that this may be machine dependent).


  • A list of known bugs.


  • Developer notes.


  • Future plans.