Skip to content

Commit

Permalink
Merge pull request #2930 from E3SM-Project/bogensch/dpxx_compsetmods
Browse files Browse the repository at this point in the history
DPxx compset modifications + add RCE case + more expansive testing
  • Loading branch information
tcclevenger authored Aug 6, 2024
2 parents 07ce95d + 0830f8d commit 48e2575
Show file tree
Hide file tree
Showing 8 changed files with 149 additions and 34 deletions.
6 changes: 5 additions & 1 deletion cime_config/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -655,8 +655,12 @@

"e3sm_scream_v1_dp-eamxx" : {
"time" : "01:00:00",
# each test 225 phys cols, roughly size of ne2
"tests" : (
"ERS_P16_Ln22.ne30_ne30.F2010-SCREAMv1-DP-DYCOMSrf01", # 225 phys cols, roughly size of ne2
"ERS_P16_Ln22.ne30_ne30.FIOP-SCREAMv1-DP.scream-dpxx-dycomsrf01",
"ERS_P16_Ln22.ne30_ne30.FIOP-SCREAMv1-DP.scream-dpxx-arm97",
"ERS_P16_Ln22.ne30_ne30.FIOP-SCREAMv1-DP.scream-dpxx-comble",
"ERS_P16_Ln22.ne30_ne30.FRCE-SCREAMv1-DP",
)
},

Expand Down
12 changes: 12 additions & 0 deletions components/eamxx/cime_config/config_component.xml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,18 @@
</desc>
</entry>

<!-- RCE uses this for setting orbital parameters -->
<entry id="SCREAM_USER_MODS">
<type>char</type>
<valid_values></valid_values>
<default_value></default_value>
<values match="last">
<value compset="EAM%RCE">$SRCROOT/components/eamxx/cime_config/usermods_dirs/rcemip</value>
</values>
<group>run_component_cam</group>
<file>env_case.xml</file>
<desc>User mods to apply to specific compset matches. </desc>
</entry>

<description>
<desc compset="_SCREAM">scream default</desc>
Expand Down
45 changes: 26 additions & 19 deletions components/eamxx/cime_config/config_compsets.xml
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,14 @@
</compset>

<compset>
<alias>F2010-SCREAMv1-DP-DYCOMSrf01</alias> <!-- DP-EAMxx DYCOMSrf01 case -->
<lname>2010_SCREAM_ELM%SPBC_CICE%PRES_DOCN%DOM_SROF_SGLC_SWAV_SIAC_SESP%DP-EAMxx%DYCOMSrf01</lname>
<alias>FIOP-SCREAMv1-DP</alias> <!-- DP-EAMxx General compset; to be interfaced with official scripts forced from IOPs for all cases other than RCE. -->
<lname>2010_SCREAM_ELM%SPBC_CICE%PRES_DOCN%DOM_SROF_SGLC_SWAV_SIAC_SESP%DP-EAMxx%IOP</lname>
<support_level>Experimental, under development</support_level>
</compset>

<compset>
<alias>FRCE-SCREAMv1-DP</alias> <!-- RCE compset for DP-EAMxx -->
<lname>2000_SCREAM%RCE_SLND_SICE_DOCN%AQPCONST_SROF_SGLC_SWAV_SIAC_SESP%DP-EAMxx</lname>
<support_level>Experimental, under development</support_level>
</compset>

Expand All @@ -86,62 +92,63 @@
<values>
<value compset=".*DYAMOND-1">2016-08-01</value>
<value compset=".*DYAMOND-2">2020-01-20</value>
<value compset=".*DYCOMSrf01">1999-07-10</value>
<value compset=".*RCE">2000-01-01</value>
</values>
</entry>

<!-- DP-EAMxx specific xml vars -->
<!-- DP-EAMxx specific xml vars, set some universal DP-EAMxx defaults for all test cases -->
<entry id="ATM_NCPL">
<values>
<value compset=".*DYCOMSrf01">864</value>
<value compset=".*DP-EAMxx">864</value>
</values>
</entry>

<entry id="PTS_MULTCOLS_MODE">
<values>
<value compset=".*DYCOMSrf01">TRUE</value>
<value compset=".*DP-EAMxx">TRUE</value>
</values>
</entry>

<entry id="PTS_MODE">
<values>
<value compset=".*DYCOMSrf01">TRUE</value>
<value compset=".*DP-EAMxx">TRUE</value>
</values>
</entry>

<entry id="PTS_LAT">
<entry id="PTS_NX">
<values>
<value compset=".*DYCOMSrf01">31.5</value>
<value compset=".*DP-EAMxx">225</value>
</values>
</entry>

<entry id="PTS_LON">
<entry id="PTS_NY">
<values>
<value compset=".*DYCOMSrf01">238.5</value>
<value compset=".*DP-EAMxx">1</value>
</values>
</entry>

<entry id="PTS_NX">
<entry id="ICE_NX">
<values>
<value compset=".*DYCOMSrf01">225</value>
<value compset=".*DP-EAMxx">225</value>
</values>
</entry>

<entry id="PTS_NY">
<entry id="ICE_NY">
<values>
<value compset=".*DYCOMSrf01">1</value>
<value compset=".*DP-EAMxx">1</value>
</values>
</entry>

<entry id="ICE_NX">
<!-- Set some case specific DP-EAMxx defaults for testing -->
<entry id="PTS_LAT">
<values>
<value compset=".*DYCOMSrf01">225</value>
<value compset=".*RCE">0.0</value>
</values>
</entry>

<entry id="ICE_NY">
<entry id="PTS_LON">
<values>
<value compset=".*DYCOMSrf01">1</value>
<value compset=".*RCE">0.0</value>
</values>
</entry>

Expand Down
35 changes: 21 additions & 14 deletions components/eamxx/cime_config/namelist_defaults_scream.xml
Original file line number Diff line number Diff line change
Expand Up @@ -347,6 +347,11 @@ be lost if SCREAM_HACK_XML is not enabled.
<f12vmr > 531.2820e-12 </f12vmr>
<n2vmr > 0.7906 </n2vmr>
<covmr > 1.0e-7 </covmr>
<ch4vmr COMPSET=".*SCREAM%RCE.*" > 1650.e-9 </ch4vmr>
<co2vmr COMPSET=".*SCREAM%RCE.*" > 348.0e-6 </co2vmr>
<n2ovmr COMPSET=".*SCREAM%RCE.*" > 306.0e-9 </n2ovmr>
<f11vmr COMPSET=".*SCREAM%RCE.*" > 0.0 </f11vmr>
<f12vmr COMPSET=".*SCREAM%RCE.*" > 0.0 </f12vmr>
<!-- Orbital parameters for solar zenith angle and TSI scaling. For F2010 compsets, -->
<!-- we set a fixed year for these parameters, but for other compsets we set to a -->
<!-- negative value to force the code to get simulated year from the timestamp. -->
Expand All @@ -367,7 +372,7 @@ be lost if SCREAM_HACK_XML is not enabled.
<rad_frequency hgrid="ne256np4">3</rad_frequency>
<rad_frequency hgrid="ne512np4">3</rad_frequency>
<rad_frequency hgrid="ne1024np4">3</rad_frequency>
<rad_frequency COMPSET=".*DYCOMSrf01">3</rad_frequency>
<rad_frequency COMPSET=".*DP-EAMxx">3</rad_frequency>
<rad_frequency hgrid="ne0np4_conus_x4v1_lowcon">4</rad_frequency>
<do_aerosol_rad type="logical" doc="Flag to turn on/off considering aerosols in radiation calculations">true</do_aerosol_rad>
<do_aerosol_rad COMPSET=".*SCREAM.*noAero">false</do_aerosol_rad>
Expand Down Expand Up @@ -586,34 +591,36 @@ be lost if SCREAM_HACK_XML is not enabled.
<e3sm_casename>${CASE}</e3sm_casename>
</e3sm_parameters>

<!-- Settings for IOP -->
<!-- Default settings for DP-EAMxx -->
<iop_options>
<doubly_periodic_mode type="logical" doc="Type of intensive observation period. Currently only DP is supported.">true</doubly_periodic_mode>
<iop_file type="file" doc="File containing DP level data">UNSET</iop_file>
<iop_file COMPSET=".*DYCOMSrf01">${DIN_LOC_ROOT}/atm/cam/scam/iop/DYCOMSrf01_iopfile_4scam.nc</iop_file>
<target_latitude type="real" doc="Latitude to initialize IC columns.">-999</target_latitude>
<target_latitude COMPSET=".*DYCOMSrf01">31.5</target_latitude>
<target_longitude type="real" doc="Longitude to initialize IC columns.">-999</target_longitude>
<target_longitude COMPSET=".*DYCOMSrf01">238.5</target_longitude>
<iop_dosubsidence type="logical" doc="Whether or not to compute Eulerian LS vertical advection.">false</iop_dosubsidence>
<iop_dosubsidence COMPSET=".*DYCOMSrf01">true</iop_dosubsidence>
<iop_srf_prop type="logical" doc="Use IOP file specified surface values in surface coupling importer.">false</iop_srf_prop>
<iop_srf_prop COMPSET=".*DYCOMSrf01">true</iop_srf_prop>
<iop_nudge_uv type="logical" doc="Nudge winds to those in the IOP file.">false</iop_nudge_uv>
<iop_nudge_tq type="logical" doc="Nudge thermodynamics to those in the IOP file.">false</iop_nudge_tq>
<iop_nudge_tq_low type="real" doc="Lowest layer to apply nudging for t and q (pressure in hPa).">1100</iop_nudge_tq_low>
<iop_nudge_tq_high type="real" doc="Highest layer to apply nudging for t and q (pressure in hPa).">0</iop_nudge_tq_high>
<iop_nudge_tscale type="real" doc="Time scale to nudge thermodynamics or winds to.">10800</iop_nudge_tscale>
<iop_coriolis type="logical" doc="Apply coriolis forcing to winds based on large scale winds in IOP file.">false</iop_coriolis>

<!-- Case Specific Settings for DP-EAMxx tests, overwrite certain defaults set above -->
<!-- RCE -->
<iop_file COMPSET=".*RCE">${DIN_LOC_ROOT}/atm/cam/scam/iop/RCE_iopfile_4scam.nc</iop_file>
<target_latitude COMPSET=".*RCE">0.0</target_latitude>
<target_longitude COMPSET=".*RCE">0.0</target_longitude>

</iop_options>

<!-- Homme control namelist -->
<ctl_nl>
<cubed_sphere_map>0</cubed_sphere_map>
<cubed_sphere_map COMPSET=".*DYCOMSrf01">2</cubed_sphere_map>
<cubed_sphere_map COMPSET=".*DP-EAMxx">2</cubed_sphere_map>
<disable_diagnostics>False</disable_diagnostics>
<dt_remap_factor constraints="ge 1">2</dt_remap_factor>
<dt_remap_factor COMPSET=".*DYCOMSrf01" constraints="ge 1">1</dt_remap_factor>
<dt_remap_factor COMPSET=".*DP-EAMxx" constraints="ge 1">1</dt_remap_factor>
<dt_tracer_factor constraints="ge 1">1</dt_tracer_factor>
<hv_ref_profiles>6</hv_ref_profiles> <!-- Default (rough topography) -->
<hv_ref_profiles hgrid="ne4np4">0</hv_ref_profiles> <!-- Value for smooth topography/aquaplanet -->
Expand All @@ -627,7 +634,7 @@ be lost if SCREAM_HACK_XML is not enabled.
<hypervis_subcycle_tom>1</hypervis_subcycle_tom>
<hypervis_subcycle_q>1</hypervis_subcycle_q>
<nu>3.4e-08</nu>
<nu COMPSET=".*DYCOMSrf01">0.216784</nu>
<nu COMPSET=".*DP-EAMxx">0.216784</nu>
<nu_top>UNSET</nu_top>
<nu_top hgrid="ne4np4">250000.0</nu_top>
<nu_top hgrid="ne30np4">250000.0</nu_top>
Expand Down Expand Up @@ -657,13 +664,13 @@ be lost if SCREAM_HACK_XML is not enabled.
<se_ne COMPSET=".*DP-EAMxx">1024</se_ne>
<se_ne hgrid="ne0np4_conus_x4v1_lowcon">0</se_ne>
<se_ne_x>0</se_ne_x>
<se_ne_x COMPSET=".*DYCOMSrf01">5</se_ne_x>
<se_ne_x COMPSET=".*DP-EAMxx">5</se_ne_x>
<se_ne_y>0</se_ne_y>
<se_ne_y COMPSET=".*DYCOMSrf01">5</se_ne_y>
<se_ne_y COMPSET=".*DP-EAMxx">5</se_ne_y>
<se_lx>0</se_lx>
<se_lx COMPSET=".*DYCOMSrf01">50000</se_lx>
<se_lx COMPSET=".*DP-EAMxx">50000</se_lx>
<se_ly>0</se_ly>
<se_ly COMPSET=".*DYCOMSrf01">50000</se_ly>
<se_ly COMPSET=".*DP-EAMxx">50000</se_ly>
<se_nsplit>-1</se_nsplit>
<se_partmethod>4</se_partmethod>
<se_topology>cube</se_topology>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Sets up DPxx case to test ARM97 (continental deep convection)
# case over land using prescribed surface fluxes and nudged winds

./xmlchange RUN_STARTDATE="1997-06-23"
./xmlchange PTS_LAT=36.605
./xmlchange PTS_LON=262.515

# Scripts location
ATMCHANGE=$CIMEROOT/../components/eamxx/scripts/atmchange

$ATMCHANGE iop_file='${DIN_LOC_ROOT}'/atm/cam/scam/iop/ARM97_iopfile_4scam.nc -b
$ATMCHANGE target_latitude=36.605 -b
$ATMCHANGE target_longitude=262.515 -b
$ATMCHANGE iop_nudge_uv=true -b
$ATMCHANGE iop_srf_prop=true -b
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Sets up DPxx case to test COMBLE (cold air outbreak)
# lagrangian case over ocean with interactive surface fluxes and coriolis forcing applied to winds

./xmlchange RUN_STARTDATE="2020-03-12"
./xmlchange START_TOD=79200
./xmlchange PTS_LAT=74.5
./xmlchange PTS_LON=9.9

./xmlchange SSTICE_DATA_FILENAME='$DIN_LOC_ROOT/ocn/docn7/SSTDATA/sst_HadOIBl_bc_1x1_clim_c101029_COMBLE.nc'
./xmlchange SSTICE_YEAR_ALIGN=2020
./xmlchange SSTICE_YEAR_START=2020
./xmlchange SSTICE_YEAR_END=2021

# Scripts location
ATMCHANGE=$CIMEROOT/../components/eamxx/scripts/atmchange

$ATMCHANGE iop_file='${DIN_LOC_ROOT}'/atm/cam/scam/iop/COMBLE_iopfile_4scam.nc -b
$ATMCHANGE target_latitude=74.5 -b
$ATMCHANGE target_longitude=9.9 -b
$ATMCHANGE iop_coriolis=true -b

Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Sets up DPxx case to test DYCOMSrf01 (marine stratocumulus)
# case over ocean using prescribed surface fluxes and compute tendencies of large scale subsidence from prescribed omega

./xmlchange RUN_STARTDATE="1999-07-10"
./xmlchange PTS_LAT=31.5
./xmlchange PTS_LON=238.5

# Scripts location
ATMCHANGE=$CIMEROOT/../components/eamxx/scripts/atmchange

$ATMCHANGE iop_file='${DIN_LOC_ROOT}'/atm/cam/scam/iop/DYCOMSrf01_iopfile_4scam.nc -b
$ATMCHANGE target_latitude=31.5 -b
$ATMCHANGE target_longitude=238.5 -b
$ATMCHANGE iop_dosubsidence=true -b
$ATMCHANGE iop_srf_prop=true -b
34 changes: 34 additions & 0 deletions components/eamxx/cime_config/usermods_dirs/rcemip/user_nl_cpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
!------------------------------------------------------------------------
! Users should ONLY USE user_nl_cpl to change namelists variables
! for namelist variables in drv_in (except for the ones below) and
! any keyword/values in seq_maps.rc
! Users should add ALL user specific namelist and seq_maps.rc changes below
! using the following syntax
! namelist_var = new_namelist_value
! or
! mapname = new_map_name
! For example to change the default value of ocn2atm_fmapname to 'foo' use
! ocn2atm_fmapname = 'foo'
!
! Note that some namelist variables MAY NOT be changed in user_nl_cpl -
! they are defined in a $CASEROOT xml file and must be changed with
! xmlchange.
!
! For example, rather than set username to 'foo' in user_nl_cpl, call
! ./xmlchange USER=foo
!------------------------------------------------------------------------
!
! SPECIAL NOTE FOR AQUAPLANET
! Do not modify any of the following orb_ entries
! co2vmr is not specified via the namelist but rather in the env_run.xml
!
orb_eccen = 0
orb_obliq = 0
orb_mvelp = 0
orb_mode = "fixed_parameters"

seq_flux_mct_albdif = 0.07
seq_flux_mct_albdir = 0.07
seq_flux_atmocn_minwind = 1

constant_zenith_deg = 42.05

0 comments on commit 48e2575

Please sign in to comment.