...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Table of Contents | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Overview
Ice sheet coupling with the rest of the model depends on which ice sheet is being modeled, Antarctica or Greenland.
...
ocean coupling: (glc_c2_ocn): Sg_icemask, Sg_blit, Sg_blis, Sg_lithop, Sg_icemask_grounded
compset (how tested) | glc_c2_lnd | lnd_c2_glc | ocn_c2_glcshelf | glcshelf_c2_ocn | glcshelf_c2_ice | ocn_c2_glctf | glc_c2_ocn | glc_c2_ice |
---|---|---|---|---|---|---|---|---|
MPAS_LISIO_JRA1p (not tested without mod below) | T | |||||||
MPAS_LISIO_JRA1p with mod mpaso/ocn_glcshelf ais8to30, MALI%SIA | T | T | T | T | ||||
IGELM_MLI gis20 MALI | T | T | ||||||
BGWCYCL1850 gis20 MALI | T | T | T |
There is no ocn_c2_glc, ice_c2_glcshelf., ice_c2_glc
Attribute strings
Fields passed to/from the coupler related to the ice sheet.
Several fields are calculated per elevation class and so have two-digit numbers appended to them.
land to glc adds the following coupling fields
l2x states: Sl_tsrf00 through Sl_tsrf10 and Sl_topo00 through Sl_topo10
l2x states to glc: Sl_tsrf00 to Sl_tsrf10 AND Sl_topo00 to Sl_topo10
Sl_tsrf: Surface temperature of glacier (one for each elevation class)
Sl_topo: surface height of glacier (one for each elevation class)
l2x fluxes: Flgl_qice00 through Flgl_qice10
l2x_fluxes_to_glc: Flgl_qice00 to Flgl_qice10
Flgl_qice: New glacier ice flux
glc to lnd adds the following coupling fields:
...
Assuming glc_present and glc_prognostic are TRUE so not including.
init
prep_lnd_init
(glc_c2_lnd)
if(glc_c2_lnd) init mapper_Sg2l, mapper_Fg2l; derive field lists glc2lnd_non_ec_fields and glc2lnd_ec_extra_fields
prep_ocn_init
(glc_c2_ocn, glcshelf_c2_ocn)
if (glc_c2_ocn) init mapper_Rg2o_liq and mapper_Rg2o_ice
if(glcshelf_c2_ocn) init mapper_Sg2o and mapper_Fg2o
prep_ice_init
(glc_c2_ice, glcshelf_c2_ice)
if (glc_c2_ice) init mapper_Rg2i
if(glcshelf_c2_ice) init mapper_Sg2i,mapper_Fg2i
prep_glc_init
( lnd_c2_glc, ocn_c2_glctf, ocn_c2_glcshelf)
if ( lnd_c2_glc .or. do_hist_l2x1yrg) initialize l2gacc_lx with seq_flds_l2x_fields_to_glc
if ( lnd_c2_glc) initialize l2x_gx with seq_flds_x2g_fields
if (lnd_c2_glc) init mapper_Sl2g, mapper_Fl2g, mapper_Fg2l; form g2x_lx_fields
if (ocn_c2_glctf OR ocn_c2_glcshelf) init o2x_gx with seq_flds_o2x_fields; init x2gacc_gx
also init mapper_So2g, mapper_Fo2g and arrays for compute_melt_fluxes
if (ocn_c2_glctf) init mapper_So2g_tf
if(ocn_c2_glcshelf) init mapper_So2g_shelf
if (glc_c2_ocn) do mapping Rg2o_liq, Rg2o_ice; g2x_gx to g2x_ox; seq_flds_g2o_liq/ice_fluxes,
if (glcshelf_c2_ocn) do mapping Sg2o, Fg2o; g2x_gx to g2x_ox MIGHT OVERWRITE ABOVE
if(glc_c2_ice) do mapping Rg2i; g2x_gx to g2x_ix ‘Fixx_rofi’ only
if(glcshelf_c2_ice) do mapping_Sg2i; g2x_gx, g2x_ix, Sg_icemask_coupled_fluxes
if (glc_c2_lnd) prep_lnd_calc_g2x_lx
do mapping with Fg2l, from g2x_gx to g2x_lx, only glc2lnd_non_ec_fields (Sg_icemask, Sg_icemask_coupled_fluxes)
loop over elevation classes: call map_glc2lnd_ec
do special mapping from glc to lnd elevation classes using mapper_Fg2l, glc2lnd_ec_extra_fields
...
call cime_run_glc_setup_send
if (lnd_c2_glc OR ocn_c2_glctf OR ocn_c2_glcshelf)
if (glcrun_avg_alarm) accumulate for lnd and ocn
if (lnd_c2_glc) call prep_glc_calc_l2x_gx
...
call prep_glc_map_one_state_field_lnd2glc
: special bilinear mapping one state at a time: also call map_lnd2glc
if (ocn_c2_glctf) call prep_glc_mrg_ocn
else prep_glc_zero_flds
...
call cime_run_ocnglc_coupling()
if (ocn_c2_glctf OR (glcshelf_to_ocn AND ocn_to_glcshelf))
call prep_glc_calc_o2x_gx
:
if (ocn_c2_gtctf) call mapper_So2g_tf; o2x_ox to o2x_gx seq_flds_x2g_tf_states_from_ocn
if (ocn_c2_glcshelf) call mapper_So2g_shelf; o2x_ox to o2x_gx seq_flds_x2g_shelf_states_from_ocn
if (ocn_c2_glcshelf AND glcshelf_c2_ocn)
call prep_glc_calculate_subshelf_boundary_fluxes
...
call prep_glc_accum_ocn
(accumulate x2g_g fields)
if ( glcshelf_c2_ice) call mapper map_Sg2i; g2x_gx, g2x_ix; Sg_icemask_coupled_fluxes
...
So_blt, So_bls, So_htv, So_stv. Sg_tbot, Sg_dztbot, Sg_lithop, Sg_icemask_floating
call compute_melt_fluxes
take output from above and place in attributes: Sg_blis, Sg_blit, Fogx_qiceho, Fogx_gicelo, Fogx_qicehi, Fogx_qiceli
...