Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OCN to GLC thermal forcing coupling #6632

Open
wants to merge 22 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
f14d71a
Create avgThermalForcing300m coupling field in MPAS-Ocean
matthewhoffman Apr 23, 2024
2abf17a
Define coupler fields for TF at 300 m and connect to OCN and GLC
matthewhoffman Apr 23, 2024
4c18c45
Update MALI config to use new TF field
matthewhoffman Apr 23, 2024
babbf3d
Define ocn2glc mapping for TF
matthewhoffman Apr 23, 2024
8c10e45
Implement new ocn2glc TF coupling
matthewhoffman Apr 24, 2024
ffb207e
Make depth at which to calc TF namelist-configurable
matthewhoffman May 11, 2024
3257d65
Better differentiate ocn->glc coupling for shelf and tf
matthewhoffman May 13, 2024
ccc0416
Add TL319_IcoswISC30E3r5_gis1to10kmR2 grid specification
matthewhoffman May 13, 2024
90c1a1d
Update mpas.gis1to10kmR2 mesh to include subglacial runoff field
matthewhoffman May 14, 2024
5c03d40
Correct indexing for critical depth
matthewhoffman Aug 20, 2024
3f2615d
Add config_2d_thermal_forcing_depth to namelist system
matthewhoffman Sep 10, 2024
b6e4100
Add config_glc_thermal_forcing_coupling_mode option
matthewhoffman Sep 11, 2024
b8c3864
add ocn_c2_glctf to seq_infodata_PutData_explicit and getData
matthewhoffman Sep 12, 2024
114c89e
Add config_glc_thermal_forcing_coupling_mode to nl system
matthewhoffman Sep 11, 2024
28a25dd
Create testmod and test for TF coupling feature
matthewhoffman Sep 11, 2024
97b7fc0
Add TL319_oQU240wLI_gis20 configuration
jonbob Sep 20, 2024
dccd205
Update test to use oQU240wLI and move to e3sm_ocnice_stealth_features
matthewhoffman Sep 20, 2024
43ef3b0
Rename OCN2GLC_*MAPNAME to OCN2GLC_SHELF_*FMAPNAME for new grids
matthewhoffman Oct 12, 2024
e18f825
Minor cleanup from making bld files consistent with Registry
jonbob Nov 5, 2024
27b3a29
Add support for using flds_tf to wrap including the new field in the cpl
jonbob Nov 21, 2024
e294a1d
Add perrWith=quiet for So_tf2d to avoid issues when it is not active
jonbob Dec 4, 2024
53e7807
Get and use ocn_c2_glctf from infodata in ocn and glc drivers
jonbob Dec 4, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion components/mpas-albany-landice/driver/glc_comp_mct.F
Original file line number Diff line number Diff line change
Expand Up @@ -1410,7 +1410,8 @@ subroutine glc_import_mct(x2g_g, errorCode)
n = n + 1
sfcMassBal(i) = x2g_g % rAttr(index_x2g_Flgl_qice, n)
floatingBasalMassBal(i) = x2g_g % rAttr(index_x2g_Fogx_qiceli, n)
ismip6_2dThermalForcing(i) = x2g_g % rAttr(index_x2g_So_tf2d, n)
if (index_x2g_So_tf2d /= 0) &
rljacob marked this conversation as resolved.
Show resolved Hide resolved
ismip6_2dThermalForcing(i) = x2g_g % rAttr(index_x2g_So_tf2d, n)
! surfaceTemperature(i) = x2g_g % rAttr(index_x2g_Sl_tsrf, n)
!JW basalOceanHeatflx(i) = x2g_g % rAttr(index_x2g_Fogo_qiceh, n)
! basalOceanHeatflx(i) = x2g_g % rAttr(index_x2g_Fogx_qicehi, n)
Expand Down
1 change: 1 addition & 0 deletions driver-mct/cime_config/buildnml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ def _create_drv_namelists(case, infile, confdir, nmlgen, files):
config['CPL_EPBAL'] = case.get_value('CPL_EPBAL')
config['FLDS_WISO'] = case.get_value('FLDS_WISO')
config['FLDS_POLAR'] = case.get_value('FLDS_POLAR')
config['FLDS_TF'] = case.get_value('FLDS_TF')
config['BUDGETS'] = case.get_value('BUDGETS')
config['MACH'] = case.get_value('MACH')
config['MPILIB'] = case.get_value('MPILIB')
Expand Down
12 changes: 12 additions & 0 deletions driver-mct/cime_config/config_component_e3sm.xml
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,18 @@
<desc>Turn on the passing of polar fields through the coupler</desc>
</entry>

<entry id="FLDS_TF">
<type>logical</type>
<valid_values>TRUE,FALSE</valid_values>
<default_value>FALSE</default_value>
<values match="last">
<value compset="_MPASO.*_MALI">TRUE</value>
</values>
<group>run_flags</group>
<file>env_run.xml</file>
<desc>Turn on the passing of ocean thermal forcing fields through the coupler</desc>
</entry>

<entry id="TFREEZE_SALTWATER_OPTION">
<type>char</type>
<valid_values>minus1p8,linear_salt,mushy</valid_values>
Expand Down
12 changes: 12 additions & 0 deletions driver-mct/cime_config/namelist_definition_drv.xml
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,18 @@
</values>
</entry>

<entry id="flds_tf">
<type>logical</type>
<category>seq_flds</category>
<group>seq_cplflds_inparm</group>
<desc>
If set to .true. thermal forcing fields will be passed from the ocean to the coupler.
</desc>
<values>
<value>$FLDS_TF</value>
</values>
</entry>

<entry id="flds_wiso" modify_via_xml="FLDS_WISO">
<type>logical</type>
<category>seq_flds</category>
Expand Down
29 changes: 18 additions & 11 deletions driver-mct/shr/seq_flds_mod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -382,11 +382,12 @@ subroutine seq_flds_set(nmlfile, ID, infodata)
logical :: flds_bgc_oi
logical :: flds_wiso
logical :: flds_polar
logical :: flds_tf
integer :: glc_nec

namelist /seq_cplflds_inparm/ &
flds_co2a, flds_co2b, flds_co2c, flds_co2_dmsa, flds_wiso, flds_polar, glc_nec, &
ice_ncat, seq_flds_i2o_per_cat, flds_bgc_oi, &
flds_co2a, flds_co2b, flds_co2c, flds_co2_dmsa, flds_wiso, flds_polar, flds_tf, &
glc_nec, ice_ncat, seq_flds_i2o_per_cat, flds_bgc_oi, &
nan_check_component_fields, rof_heat, atm_flux_method, atm_gustiness, &
rof2ocn_nutrients, lnd_rof_two_way, ocn_rof_two_way, rof_sed

Expand Down Expand Up @@ -420,6 +421,7 @@ subroutine seq_flds_set(nmlfile, ID, infodata)
flds_bgc_oi = .false.
flds_wiso = .false.
flds_polar = .false.
flds_tf = .false.
glc_nec = 0
ice_ncat = 1
seq_flds_i2o_per_cat = .false.
Expand Down Expand Up @@ -454,6 +456,7 @@ subroutine seq_flds_set(nmlfile, ID, infodata)
call shr_mpi_bcast(flds_bgc_oi , mpicom)
call shr_mpi_bcast(flds_wiso , mpicom)
call shr_mpi_bcast(flds_polar , mpicom)
call shr_mpi_bcast(flds_tf , mpicom)
call shr_mpi_bcast(glc_nec , mpicom)
call shr_mpi_bcast(ice_ncat , mpicom)
call shr_mpi_bcast(seq_flds_i2o_per_cat, mpicom)
Expand Down Expand Up @@ -2987,15 +2990,19 @@ subroutine seq_flds_set(nmlfile, ID, infodata)
attname = 'So_rhoeff'
call metadata_set(attname, longname, stdname, units)

name = 'So_tf2d'
call seq_flds_add(o2x_states,trim(name))
call seq_flds_add(x2g_states,trim(name))
call seq_flds_add(x2g_tf_states_from_ocn,trim(name))
longname = 'ocean thermal forcing at predefined critical depth'
stdname = 'ocean_thermal_forcing_at_critical_depth'
units = 'C'
attname = name
call metadata_set(attname, longname, stdname, units)
if (flds_tf) then

name = 'So_tf2d'
call seq_flds_add(o2x_states,trim(name))
call seq_flds_add(x2g_states,trim(name))
call seq_flds_add(x2g_tf_states_from_ocn,trim(name))
longname = 'ocean thermal forcing at predefined critical depth'
stdname = 'ocean_thermal_forcing_at_critical_depth'
units = 'C'
attname = name
call metadata_set(attname, longname, stdname, units)

end if

name = 'Fogx_qicelo'
call seq_flds_add(g2x_fluxes,trim(name))
Expand Down