Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

glc_2c2_lnd

lnd_2c2_glc

ocn_2c2_glcshelf

glcshelf_c2_ocn

glcshelf_c2_ice

ocn_c2_glctf

glc_c2_ocn

glc_c2_ice

glcshelf_c2_ice

MPAS_LISIO_JRA1p

T

IGELM_MLI

T

T

BGWCYCL1850

T

T

T

...

  • g2x_states: Sg_icemask, Sg_icemask_coupled_fluxes, Sg_ice_covered, Sg_topo, Sg_blit, Sg_blis, Sg_lithop, Sg_icemask_grounded, Sg_icemask_floating, Sg_tbot, Sg_dztbot

    • Sg_blit: Boundary layer interface temperature for ocean

    • Sg_blis: Boundary layer interface salinity for ocean

    • Sg_lithop: Ice sheet lithostatic pressur

    • Sg_icemask_grounded: Grounded ice mask

    • Sg_icemask_floating: Floating ice mask

    • Sg_tbot: Bottom layer ice temperature

    • Sg_dztbot: Bottom layer ice layer half thickness

  • g2x_fluxes: Fogg_rofl, Fogg_rofi, Figg_rofi, Flgg_hflx, Fogx_qicelo, Fogx_qiceho

    • Fogg_rofl glc liquid runoff flux to ocean

    • Fogg_rofi glc frozen runoff flux to ocean

    • Figg_rofi: glc frozen runoff_iceberg flux to sea ice

    • Flgg_hflx: Downward heat flux from glacier interior

    • Flgg_qicelo: Subshelf liquid flux for ocean

    • Fogx_qiceho: Subshelf heat flux for the ocean

    • g2o_liq_fluxes: Fogg_rofl

    • g2o_iceq_fluxes: Fogg_rofi

  • x2g_states: Sl_tsrf, So_blt, So_bls, So_htv, So_stv, So_rhoeff

    • Sl_tsrf:

    • So_blt: Ice shelf boundary layer ocean temperature

    • So_bls: Ice shelf boundary layer ocean salinity

    • So_htv: Ice shelf ocean heat transfer velocity

    • So_stv: Ice shelf ocean salinity transfer velocity

    • So_rhoeff: Ocean effective pressure

    • x2g_states_from_lnd: Sl_tsrf

  • x2g_fluxes: Flgl_qice, Fogx_qiceli, Fogx_qicehi

    • Flgl_qice: New glacier ice flux

    • Fogx_qiceli: Subshelf mass flux for ice sheet

    • Fogx_qicehi: Subshelf heat flux for ice sheet

    • x2g_fluxes_from_lnd: Flgl_qice

Modifications to coupler flow.

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

...

in run loop:

at top of loop in atmocn prep

if (glc_c2_ocn) Do Rg2o mapping for g2o_liq_fluxes and g2o_ice_fluxes

)

if (glc_c2_ice) init mapper_Rg2i

if(glcshelf_c2_ice) init mapper_Sg2i,mapper_Fg2i

prep_glc_init( lnd_c2_glc, ocn_c2_glcshelf)

if ((glc_present .and. lnd_c2_glc) .or. do_hist_l2x1yrg) initialize l2gacc_lx with seq_flds_l2x_fields_to_glc

if (glc_present .and. 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 (glc_present .and. 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 (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) do mapping Fg2l, g2x_gx, g2x_lx, glc2lnd_non_ec_fields; do special mapping of elevation class fields with mapper_Fg2l, glc2lnd_ec_extra_fields

in run loop

after land receive

if (glc_present) call cime_run_glc_setup_send

if (lnd_c2_glc OR ocn_c2_glcshelf)

if (glcrun_avg_alarm) accumulate for lnd and ocn

if (lnd_c2_glc) call prep_glc_calc_l2x_gc

from seq_flds_x2g_fluxes_from_lnd, special (bilinear with correction) mapping of Flgl_qice See Bilinear lnd to glc prep_glc_map_qice_conservative_lnd2glc, map_lnd2glc (mapper_Sl2g); also if (smb_renormalize) call prep_glc_renormalize_smb; map_glc2lnd_ec

from seq_flds_x2g_states_from_lnd also call special bilinear mapping one state at a time: prep_glc_map_one_state_field_lnd2glc, map_lnd2glc

else prep_glc_zero_flds

At bottom after running atm and ocn

(if glc_present) run glc (pass in glc_prognostic)

(if glc_present) call cime_run_glc_recv_post

...

component_exch(glc

...

, flow='c2x')

call cime_run_ocn

...

_

...

recv_post

call cime_run_ocnglc_coupling()

if(glc_present) and

if (glcshelf_to_ocn and AND ocn_to_glcshelf)

call prep_glc_calc_o2x_gcgx: call mapper_So2g for ocean to glc; o2x_ox to o2x_gx seq_flds_x2g_states_from_ocn

call prep_glc_calculate_subshelf_boundary_fluxes; compute_melt_fluxes

call prep_ocn_shelf_calc_g2x_ox: map_Sg2o, map_Fg2o; g2x_gx, g2x_ox

prep_glc_accum_ocn (accumulate x2g_g fields)

if ( glc_present and glcshelf_c2_ice) call prep_ice_shelf_calc_mapper map_Sg2i; g2x_gx, g2x_ix; map_Sg2iSg_icemask_coupled_fluxes