Skip to content

Commit

Permalink
Merge pull request #1451 from ESMCI/mvertens/aquap
Browse files Browse the repository at this point in the history
New DOCN aquaplanet functionality
Creation of new aquaplanet capability in DOCN

Created new aquaplanet capability for both SOM and prescribed SST modes.
The prescribed modes are analytic and duplicate the capability in the CAM aquap (which is in fact part of CAM). This PR separates that out so that it is now in DOCN. As part of this, changes needed to be introduced so that no data was read if analytic data is present.
In addition, aquaplanet capability has been introduced so that no changes in the domain files need to be made. This is done by overwriting the mask and fraction in aquaplanet mode with 1.

For the prescribed aquaplanet mode1, I have verified that the SST sent back to CAM is at most roundoff from that obtained with the current CAM aquap mode. However, the data ocean areas used by CAM and sent to the coupler versus those sent by DOCN are different, and the flux correction calculation in the coupler introduces greater than roundoff differences in the solution due to differences in these areas.

Test suite: scripts_regression test
also verified that the following tests are bfb with cesm2_0_alpha06j
SMS_D_Ln9.f09_f09.FWAMIP.yellowstone_intel.cam-reduced_hist3s.C.aquaptest2/
SMS_Ld1.f09_f09.FW1850.yellowstone_intel.cam-reduced_hist1d.C.aquaptest1/
Test baseline: cesm2_0_alpha06j
Test namelist changes:
Test status: bit for bit (except for new prescribed aquaplanet mode)

Fixes: None
User interface changes?: None
Code review: @apcraig @JEdwards
  • Loading branch information
jedwards4b authored May 2, 2017
2 parents d4dfbf1 + ad30925 commit e5f144d
Show file tree
Hide file tree
Showing 5 changed files with 354 additions and 60 deletions.
9 changes: 8 additions & 1 deletion src/components/data_comps/docn/cime_config/buildnml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
# Disable these because this is our standard setup
# pylint: disable=wildcard-import,unused-wildcard-import,wrong-import-position

import os, shutil, sys, glob
import os, shutil, sys, glob, re

_CIMEROOT = os.path.join(os.path.dirname(os.path.abspath(__file__)), "..","..","..","..","..")
sys.path.append(os.path.join(_CIMEROOT, "scripts", "Tools"))
Expand Down Expand Up @@ -108,6 +108,13 @@ def _create_namelists(case, confdir, inst_string, infile, nmlgen):
else:
nmlgen.create_stream_file_and_update_shr_strdata_nml(config, stream, stream_path, data_list_path)

# For aquaplanet prescribed have no streams
match = re.match(r'^sst_aquap\d+',docn_mode)
if match is not None:
if match.group(0):
value = ['null']
nmlgen.set_value("streams",value)

#----------------------------------------------------
# Create `shr_strdata_nml` namelist group.
#----------------------------------------------------
Expand Down
39 changes: 29 additions & 10 deletions src/components/data_comps/docn/cime_config/config_component.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,25 @@

<entry id="DOCN_MODE">
<type>char</type>
<valid_values>prescribed,pres_aquap,som,som_aquap,copyall,interannual,null</valid_values>
<valid_values>prescribed,sst_aquap1,sst_aquap2,sst_aquap3,sst_aquap4,sst_aquap5,sst_aquap6,sst_aquap7,sst_aquap8,sst_aquap9,sst_aquap10,som,som_aquap,copyall,interannual,null</valid_values>
<default_value>prescribed</default_value>
<values>
<value compset="_DOCN%NULL">null</value>
<value compset="_DOCN%DOM" >prescribed</value>
<value compset="_DOCN%SOM" >som</value>
<value compset="_DOCN%US20">us20</value>
<value compset="_DOCN%SOMAQP">som_aquap</value>
<value compset="_DOCN%IAF">interannual</value>
<value compset="_DOCN%AQP1">sst_aquap1</value>
<value compset="_DOCN%AQP2">sst_aquap2</value>
<value compset="_DOCN%AQP3">sst_aquap3</value>
<value compset="_DOCN%AQP4">sst_aquap4</value>
<value compset="_DOCN%AQP5">sst_aquap5</value>
<value compset="_DOCN%AQP6">sst_aquap6</value>
<value compset="_DOCN%AQP7">sst_aquap7</value>
<value compset="_DOCN%AQP8">sst_aquap8</value>
<value compset="_DOCN%AQP9">sst_aquap9</value>
<value compset="_DOCN%AQP10">sst_aquap10</value>
<value compset="_DOCN%COPY">copyall</value>
<value compset="_DOCN%DAQUAP">pres_aquap</value>
<value compset="_DOCN%SAQUAP">som_aquap</value>
<value compset="_DOCN%WW3">ww3</value>
</values>
<group>run_component_docn</group>
<file>env_run.xml</file>
Expand Down Expand Up @@ -73,7 +80,8 @@
<default_value>UNSET</default_value>
<values>
<value compset="_DOCN%SOM.*_TEST">pop_frc.1x1d.090130.nc</value>
<value compset="_DOCN%SAQUAP">/glade/u/home/benedict/ys/datain/cesm2_0_beta03.som.forcing/cam4.som.forcing.aquaplanet.QzaFix_h30Fix_TspunFix.fv19_CTL.nc</value>
<value compset="_DOCN%SOMAQP" grid="oi%1.9x2.5">default.som.forcing.aquaplanet.Qflux0_h30_sstQOBS.2degFV_c20170421.nc</value>
<value compset="_DOCN%SOMAQP" grid="oi%0.9x1.25">default.som.forcing.aquaplanet.Qflux0_h30_sstQOBS.1degFV_c20170421.nc</value>
</values>
<group>run_component_docn</group>
<file>env_run.xml</file>
Expand Down Expand Up @@ -211,10 +219,21 @@
</entry>

<description>
<desc compset="_DOCN%NULL">docn null mode:</desc>
<desc compset="_DOCN%SOM" >docn slab ocean mode:</desc>
<desc compset="_DOCN%DOM" >docn data mode:</desc>
<desc compset="_DOCN%IAF" >docn interannual mode:</desc>
<desc compset="_DOCN%NULL">docn null mode</desc>
<desc compset="_DOCN%SOM" >docn slab ocean mode</desc>
<desc compset="_DOCN%SOMAQP">docn aquaplanet slab ocean mode</desc>
<desc compset="_DOCN%IAF" >docn interannual mode</desc>
<desc compset="_DOCN%SST_AQUAP">docn aquaplanet mode:</desc>
<desc compset="_DOCN%AQP1">docn prescribed aquaplanet sst - option 1</desc>
<desc compset="_DOCN%AQP2">docn prescribed aquaplanet sst - option 2</desc>
<desc compset="_DOCN%AQP3">docn prescribed aquaplanet sst - option 3</desc>
<desc compset="_DOCN%AQP4">docn prescribed aquaplanet sst - option 4</desc>
<desc compset="_DOCN%AQP5">docn prescribed aquaplanet sst - option 5</desc>
<desc compset="_DOCN%AQP6">docn prescribed aquaplanet sst - option 6</desc>
<desc compset="_DOCN%AQP7">docn prescribed aquaplanet sst - option 7</desc>
<desc compset="_DOCN%AQP8">docn prescribed aquaplanet sst - option 8</desc>
<desc compset="_DOCN%AQP9">docn prescribed aquaplanet sst - option 9</desc>
<desc compset="_DOCN%AQP10">docn prescribed aquaplanet sst - option 10</desc>
</description>

<help>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,19 @@
<group>streams_file</group>
<desc>List of streams used for the given docn_mode.</desc>
<values>
<value docn_mode="prescribed" >prescribed</value>
<value docn_mode="pres_aquap" >prescribed</value>
<value docn_mode="som" >som</value>
<value docn_mode="som_aquap" >som</value>
<value docn_mode="prescribed">prescribed</value>
<value docn_mode="sst_aquap1">''</value>
<value docn_mode="sst_aquap2">''</value>
<value docn_mode="sst_aquap3">''</value>
<value docn_mode="sst_aquap4">''</value>
<value docn_mode="sst_aquap5">''</value>
<value docn_mode="sst_aquap6">''</value>
<value docn_mode="sst_aquap7">''</value>
<value docn_mode="sst_aquap8">''</value>
<value docn_mode="sst_aquap9">''</value>
<value docn_mode="sst_aquap10">''</value>
<value docn_mode="som">som</value>
<value docn_mode="som_aquap">som</value>
<value docn_mode="interannual">interannual</value>
</values>
</entry>
Expand Down Expand Up @@ -245,7 +254,7 @@
<type>char</type>
<category>streams</category>
<group>shr_strdata_nml</group>
<valid_values>SSTDATA,SOM,IAF,NULL,COPYALL</valid_values>
<valid_values>SSTDATA,SST_AQUAP1,SST_AQUAP2,SST_AQUAP3,SST_AQUAP4,SST_AQUAP5,SST_AQUAP6,SST_AQUAP7,SST_AQUAP8,SST_AQUAP9,SST_AQUAP10,SOM,SOM_AQUAP,IAF,NULL,COPYALL</valid_values>
<desc>
General method that operates on the data. This is generally
implemented in the data models but is set in the strdata method for
Expand Down Expand Up @@ -292,16 +301,27 @@
If DOCN_MODE is prescribed, datamode will be set to SSTDATA
If DOCN_MODE is interannual, datamode will be set to IAF
If DOCN_MODE is som , datamode will be set to SOM
If DOCN_MODE is sst_aqup[n], datamode will be set to SST_AQUAP
If DOCN_MODE is som_aqup[n], datamode will be set to SOM_AQUAP
If DOCN_MODE is null, datamode will be set to NULL

default: SSTDATA (prescribed setting for DOCN_MODE)'
</desc>
<values>
<value docn_mode="null">NULL</value>
<value docn_mode="prescribed" >SSTDATA</value>
<value docn_mode="pres_aquap" >SSTDATA</value>
<value docn_mode="som" >SOM</value>
<value docn_mode="som_aquap" >SOM</value>
<value docn_mode="prescribed">SSTDATA</value>
<value docn_mode="sst_aquap1">SST_AQUAP1</value>
<value docn_mode="sst_aquap2">SST_AQUAP2</value>
<value docn_mode="sst_aquap3">SST_AQUAP3</value>
<value docn_mode="sst_aquap4">SST_AQUAP4</value>
<value docn_mode="sst_aquap5">SST_AQUAP5</value>
<value docn_mode="sst_aquap6">SST_AQUAP6</value>
<value docn_mode="sst_aquap7">SST_AQUAP7</value>
<value docn_mode="sst_aquap8">SST_AQUAP8</value>
<value docn_mode="sst_aquap9">SST_AQUAP9</value>
<value docn_mode="sst_aquap10">SST_AQUAP10</value>
<value docn_mode="som$">SOM</value>
<value docn_mode="som_aquap">SOM_AQUAP</value>
<value docn_mode="interannual">IAF</value>
</values>
</entry>
Expand Down
Loading

0 comments on commit e5f144d

Please sign in to comment.