Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
16 changes: 15 additions & 1 deletion cime_config/config_component.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,10 @@
<entry_id version="3.0">

<description>
<desc ocn="MOM6[%MARBL-BIO][%MARBL-ABIO]">MOM6 OCEAN </desc>
<desc ocn="MOM6[%REGIONAL][%MARBL-BIO][%MARBL-ABIO]">MOM6 OCEAN </desc>
<desc option="MARBL-BIO">MARBL Biogeochemistry Tracer Library base biotic tracers</desc>
<desc option="MARBL-ABIO">MARBL Biogeochemistry Tracer Library abiotic DIC tracers</desc>
<desc option="REGIONAL">Regional Setup</desc>
</description>

<entry id="COMP_OCN">
Expand Down Expand Up @@ -205,6 +206,19 @@
</desc>
</entry>

<entry id="MOM6_DOMAIN_TYPE">
<type>char</type>
<valid_values>REGIONAL,GLOBAL</valid_values>
<default_value>GLOBAL</default_value>
<values>
<value compset="_MOM6%[^_]*REGIONAL">REGIONAL</value>
</values>
<group>case_comp</group>
<file>env_run.xml</file>
<desc> Flag to turn on/off the regional/global defaults for MOM_input
</desc>
</entry>

<help>
=========================================
MOM6 naming conventions
Expand Down
44 changes: 44 additions & 0 deletions cime_config/config_compsets.xml
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,28 @@
<lname>1850_DATM%JRA_SLND_DICE%SSMI_MOM6%MARBL-ABIO_DROF%JRA_SGLC_SWAV</lname>
</compset>

<!-- C Regional compsets -->

<compset>
<alias>CR_JRA</alias>
<lname>1850_DATM%JRA_SLND_SICE_MOM6%REGIONAL_SROF_SGLC_SWAV</lname>
</compset>

<compset>
<alias>CR1850MARBL_JRA</alias>
<lname>1850_DATM%JRA_SLND_SICE_MOM6%REGIONAL%MARBL-BIO_SROF_SGLC_SWAV</lname>
</compset>

<compset>
<alias>CR_JRA_GLOFAS</alias>
<lname>1850_DATM%JRA_SLND_SICE_MOM6%REGIONAL_DROF%GLOFAS_SGLC_SWAV</lname>
</compset>

<compset>
<alias>CR1850MARBL_JRA_GLOFAS</alias>
<lname>1850_DATM%JRA_SLND_SICE_MOM6%REGIONAL%MARBL-BIO_DROF%GLOFAS_SGLC_SWAV</lname>
</compset>

<!-- G compsets -->

<compset>
Expand Down Expand Up @@ -120,4 +142,26 @@
<lname>1850_DATM%JRA-1p5-2023_SLND_CICE_MOM6%MARBL-ABIO_DROF%JRA-1p5-2023_SGLC_WW3</lname>
</compset>

<!-- G Regional compsets -->

<compset>
<alias>GR_JRA</alias>
<lname>1850_DATM%JRA_SLND_CICE_MOM6%REGIONAL_SROF_SGLC_SWAV</lname>
</compset>

<compset>
<alias>GR1850MARBL_JRA</alias>
<lname>1850_DATM%JRA_SLND_CICE_MOM6%REGIONAL%MARBL-BIO_SROF_SGLC_SWAV</lname>
</compset>

<compset>
<alias>GR_JRA_GLOFAS</alias>
<lname>1850_DATM%JRA_SLND_CICE_MOM6%REGIONAL_DROF%GLOFAS_SGLC_SWAV</lname>
</compset>

<compset>
<alias>GR1850MARBL_JRA_GLOFAS</alias>
<lname>1850_DATM%JRA_SLND_CICE_MOM6%REGIONAL%MARBL-BIO_DROF%GLOFAS_SGLC_SWAV</lname>
</compset>
Comment on lines +147 to +165

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dabail10 and I were talking, and we probably want a CICE modifier as well (e.g. CICE%REGIONAL). Now that open boundary conditions are available in CICE, he's going to test that code out but eventually CICE will want to be able to configure regional domains.

Two notes:

  1. I assume changing CICE to CICE%<something_else> will not change answers if CICE's config_component.xml doesn't know what to do with the new modifier, but it's worth testing that hypothesis
  2. CICE%REGIONAL is my first thought, but @dabail10 may propose a better modifier

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe this should be another PR? Or can CICE use the MOM6 regional? Because you can't have one without the other?


</compsets>
134 changes: 134 additions & 0 deletions cime_config/config_pes.xml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,140 @@
</rootpe>
</pes>
</mach>
<mach name="derecho">
<pes pesize="any" compset="_DATM.+_SICE.*_MOM6(?!%[^_]*MARBL-BIO)%[^_]*REGIONAL.+_SWAV">
<comment>Regional modeling configuration with SICE</comment>
<ntasks>
<ntasks_atm>128</ntasks_atm>
<ntasks_rof>128</ntasks_rof>
<ntasks_cpl>128</ntasks_cpl>
<ntasks_ice>128</ntasks_ice>
<ntasks_ocn>128</ntasks_ocn>
<ntasks_lnd>128</ntasks_lnd>
<ntasks_wav>128</ntasks_wav>
<ntasks_glc>128</ntasks_glc>
</ntasks>
<nthrds>
<nthrds_atm>1</nthrds_atm>
<nthrds_lnd>1</nthrds_lnd>
<nthrds_rof>1</nthrds_rof>
<nthrds_ice>1</nthrds_ice>
<nthrds_ocn>1</nthrds_ocn>
<nthrds_glc>1</nthrds_glc>
<nthrds_wav>1</nthrds_wav>
<nthrds_cpl>1</nthrds_cpl>
</nthrds>
<rootpe>
<rootpe_atm>0</rootpe_atm>
<rootpe_rof>0</rootpe_rof>
<rootpe_cpl>0</rootpe_cpl>
<rootpe_ice>0</rootpe_ice>
<rootpe_ocn>128</rootpe_ocn>
<rootpe_lnd>0</rootpe_lnd>
<rootpe_wav>0</rootpe_wav>
<rootpe_glc>0</rootpe_glc>
</rootpe>
</pes>
<pes pesize="any" compset="_DATM.+_SICE.*_MOM6%([^_]*REGIONAL[^_]*MARBL-BIO|[^_]*MARBL-BIO[^_]*REGIONAL).+_SWAV">
<comment>Regional modeling configuration with SICE and MARBL-BIO</comment>
<ntasks>
<ntasks_atm>128</ntasks_atm>
<ntasks_rof>128</ntasks_rof>
<ntasks_cpl>128</ntasks_cpl>
<ntasks_ice>128</ntasks_ice>
<ntasks_ocn>384</ntasks_ocn>
<ntasks_lnd>128</ntasks_lnd>
<ntasks_wav>128</ntasks_wav>
<ntasks_glc>128</ntasks_glc>
</ntasks>
<nthrds>
<nthrds_atm>1</nthrds_atm>
<nthrds_lnd>1</nthrds_lnd>
<nthrds_rof>1</nthrds_rof>
<nthrds_ice>1</nthrds_ice>
<nthrds_ocn>1</nthrds_ocn>
<nthrds_glc>1</nthrds_glc>
<nthrds_wav>1</nthrds_wav>
<nthrds_cpl>1</nthrds_cpl>
</nthrds>
<rootpe>
<rootpe_atm>0</rootpe_atm>
<rootpe_rof>0</rootpe_rof>
<rootpe_cpl>0</rootpe_cpl>
<rootpe_ice>0</rootpe_ice>
<rootpe_ocn>128</rootpe_ocn>
<rootpe_lnd>0</rootpe_lnd>
<rootpe_wav>0</rootpe_wav>
<rootpe_glc>0</rootpe_glc>
</rootpe>
</pes>
<pes pesize="any" compset="_DATM.+_CICE.*_MOM6(?!%[^_]*MARBL-BIO)%[^_]*REGIONAL.+_SWAV">
<comment>Regional modeling configuration with CICE</comment>
<ntasks>
<ntasks_atm>128</ntasks_atm>
<ntasks_rof>128</ntasks_rof>
<ntasks_cpl>128</ntasks_cpl>
<ntasks_ice>128</ntasks_ice>
<ntasks_ocn>128</ntasks_ocn>
<ntasks_lnd>128</ntasks_lnd>
<ntasks_wav>128</ntasks_wav>
<ntasks_glc>128</ntasks_glc>
</ntasks>
<nthrds>
<nthrds_atm>1</nthrds_atm>
<nthrds_lnd>1</nthrds_lnd>
<nthrds_rof>1</nthrds_rof>
<nthrds_ice>1</nthrds_ice>
<nthrds_ocn>1</nthrds_ocn>
<nthrds_glc>1</nthrds_glc>
<nthrds_wav>1</nthrds_wav>
<nthrds_cpl>1</nthrds_cpl>
</nthrds>
<rootpe>
<rootpe_atm>0</rootpe_atm>
<rootpe_rof>0</rootpe_rof>
<rootpe_cpl>0</rootpe_cpl>
<rootpe_ice>128</rootpe_ice>
<rootpe_ocn>256</rootpe_ocn>
<rootpe_lnd>0</rootpe_lnd>
<rootpe_wav>0</rootpe_wav>
<rootpe_glc>0</rootpe_glc>
</rootpe>
</pes>
<pes pesize="any" compset="_DATM.+_CICE.*_MOM6%([^_]*REGIONAL[^_]*MARBL-BIO|[^_]*MARBL-BIO[^_]*REGIONAL).+_SWAV">
<comment>Regional modeling configuration with CICE and MARBL-BIO</comment>
<ntasks>
<ntasks_atm>128</ntasks_atm>
<ntasks_rof>128</ntasks_rof>
<ntasks_cpl>128</ntasks_cpl>
<ntasks_ice>128</ntasks_ice>
<ntasks_ocn>384</ntasks_ocn>
<ntasks_lnd>128</ntasks_lnd>
<ntasks_wav>128</ntasks_wav>
<ntasks_glc>128</ntasks_glc>
</ntasks>
<nthrds>
<nthrds_atm>1</nthrds_atm>
<nthrds_lnd>1</nthrds_lnd>
<nthrds_rof>1</nthrds_rof>
<nthrds_ice>1</nthrds_ice>
<nthrds_ocn>1</nthrds_ocn>
<nthrds_glc>1</nthrds_glc>
<nthrds_wav>1</nthrds_wav>
<nthrds_cpl>1</nthrds_cpl>
</nthrds>
<rootpe>
<rootpe_atm>0</rootpe_atm>
<rootpe_rof>0</rootpe_rof>
<rootpe_cpl>0</rootpe_cpl>
<rootpe_ice>128</rootpe_ice>
<rootpe_ocn>256</rootpe_ocn>
<rootpe_lnd>0</rootpe_lnd>
<rootpe_wav>0</rootpe_wav>
<rootpe_glc>0</rootpe_glc>
</rootpe>
</pes>
</mach>
</grid>

<grid name="a%(TL319|T62).+oi%tx2_3v2">
Expand Down
39 changes: 39 additions & 0 deletions cime_config/testdefs/testlist_mom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -246,4 +246,43 @@
<option name="wallclock">00:30:00</option>
</options>
</test>
<!-- Regional MOM6 Tests (with and without BGC) -->
<test name="SMS_D_Ld2" grid="USER_RES" compset="CR_JRA_GLOFAS" testmods="mom/regional-base--mom/debug">
<machines>
<machine name="derecho" compiler="intel" category="aux_mom"/>
<machine name="derecho" compiler="intel" category="prebeta"/>
</machines>
<options>
<option name="wallclock">02:00:00</option>
</options>
</test>
<test name="ERS_Ld9" grid="USER_RES" compset="CR_JRA_GLOFAS" testmods="mom/regional-base">
<machines>
<machine name="derecho" compiler="intel" category="aux_mom"/>
<machine name="derecho" compiler="intel" category="prebeta"/>
</machines>
<options>
<option name="wallclock">02:00:00</option>
</options>
</test>
<test name="SMS_D_Ld2" grid="USER_RES" compset="CR1850MARBL_JRA_GLOFAS" testmods="mom/regional-bgc--mom/debug">
<machines>
<machine name="derecho" compiler="intel" category="aux_mom"/>
<machine name="derecho" compiler="intel" category="pr_mom"/>
<machine name="derecho" compiler="intel" category="prealpha"/>
<machine name="derecho" compiler="intel" category="prebeta"/>
</machines>
<options>
<option name="wallclock">02:00:00</option>
</options>
</test>
<test name="ERS_Ld9" grid="USER_RES" compset="CR1850MARBL_JRA_GLOFAS" testmods="mom/regional-bgc">
<machines>
<machine name="derecho" compiler="intel" category="aux_mom"/>
<machine name="derecho" compiler="intel" category="prebeta"/>
</machines>
<options>
<option name="wallclock">02:00:00</option>
</options>
</test>
</testlist>
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
./xmlchange OCN_NX=60
./xmlchange OCN_NY=60
./xmlchange OCN_DOMAIN_MESH='${DIN_LOC_ROOT}/ocn/mom/croc/testing_data/panama/ESMF_mesh_panama1_352fd1.nc'
./xmlchange ICE_DOMAIN_MESH='${DIN_LOC_ROOT}/ocn/mom/croc/testing_data/panama/ESMF_mesh_panama1_352fd1.nc'
./xmlchange MASK_MESH='${DIN_LOC_ROOT}/ocn/mom/croc/testing_data/panama/ESMF_mesh_panama1_352fd1.nc'
./xmlchange ATM_GRID=TL319
./xmlchange LND_GRID=TL319
./xmlchange ATM_DOMAIN_MESH='${DIN_LOC_ROOT}/share/meshes/TL319_151007_ESMFmesh.nc'
./xmlchange LND_DOMAIN_MESH='${DIN_LOC_ROOT}/share/meshes/TL319_151007_ESMFmesh.nc'
./xmlchange MOM6_MEMORY_MODE=dynamic_symmetric
./xmlchange RUN_STARTDATE=2000-01-01
./xmlchange ROF2OCN_LIQ_RMAPNAME='${DIN_LOC_ROOT}/ocn/mom/croc/testing_data/panama/GLOFAS_to_panama1_map_r20_f40_nnsm.nc'
./xmlchange ROF2OCN_ICE_RMAPNAME='${DIN_LOC_ROOT}/ocn/mom/croc/testing_data/panama/GLOFAS_to_panama1_map_r20_f40_nnsm.nc'

# Set PE Layout
./xmlchange NTASKS_OCN=20
98 changes: 98 additions & 0 deletions cime_config/testdefs/testmods_dirs/mom/regional/base/user_nl_mom
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
!INPUTDIR is set by the MOM_input.yaml because it requires a hard-coded path
TRIPOLAR_N = False
REENTRANT_X = False
REENTRANT_Y = False
NIGLOBAL = 60
NJGLOBAL = 60
GRID_CONFIG = mosaic
GRID_FILE = ocean_hgrid_panama1_352fd1.nc
TOPO_CONFIG = file
TOPO_FILE = ocean_topog_panama1_352fd1.nc
MAXIMUM_DEPTH = 3431.7499950346473
MINIMUM_DEPTH = 9.5
NK = 75
COORD_CONFIG = none
ALE_COORDINATE_CONFIG = FILE:ocean_vgrid_panama1_352fd1.nc
REGRIDDING_COORDINATE_MODE = Z*

! Timesteps (based on grid resolution)
DT = 300.0
DT_THERM = 900.0

! Enable tidal forcing in MOM6
TIDES = True

! Enable M2 tidal constituent
TIDE_M2 = True

! Drag coefficient for tidal forcing
CD_TIDES = 0.0018

! Use equilibrium phase for tides
TIDE_USE_EQ_PHASE = True

! Reference date for tidal forcing
TIDE_REF_DATE = 2000, 01, 01

! Add equilibrium phase to OBC tides
OBC_TIDE_ADD_EQ_PHASE = True

! Number of tidal constituents
OBC_TIDE_N_CONSTITUENTS = 1

! List of tidal constituents
OBC_TIDE_CONSTITUENTS = "M2"

! Reference date for OBC tidal forcing
OBC_TIDE_REF_DATE = 2000, 01, 01

! Chlorophyll data file
CHL_FILE = seawifs-clim-1997-2010-panama1.nc

! Enable chlorophyll from file
CHL_FROM_FILE = TRUE

! Enable variable penetration for shortwave
VAR_PEN_SW = TRUE

! Number of shortwave penetration bands
PEN_SW_NBANDS = 3

! Initial conditions
INIT_LAYERS_FROM_Z_FILE = True
Z_INIT_ALE_REMAPPING = True
TEMP_SALT_INIT_VERTICAL_REMAP_ONLY = True
DEPRESS_INITIAL_SURFACE = True
VELOCITY_CONFIG = file
TEMP_SALT_Z_INIT_FILE = init_tracers.nc
SURFACE_HEIGHT_IC_FILE = init_eta.nc
VELOCITY_FILE = init_vel.nc
Z_INIT_FILE_PTEMP_VAR = temp
Z_INIT_FILE_SALT_VAR = salt
SURFACE_HEIGHT_IC_VAR = eta_t
U_IC_VAR = u
V_IC_VAR = v

! Open boundary conditions
OBC_NUMBER_OF_SEGMENTS = 4
OBC_FREESLIP_VORTICITY = False
OBC_FREESLIP_STRAIN = False
OBC_COMPUTED_VORTICITY = True
OBC_COMPUTED_STRAIN = True
OBC_ZERO_BIHARMONIC = True
OBC_TRACER_RESERVOIR_LENGTH_SCALE_OUT = 3.0E+04
OBC_TRACER_RESERVOIR_LENGTH_SCALE_IN = 3000.0
BRUSHCUTTER_MODE = True
OBC_SEGMENT_001 = "J=0,I=0:N,FLATHER,ORLANSKI,NUDGED,ORLANSKI_TAN,NUDGED_TAN"
OBC_SEGMENT_001_VELOCITY_NUDGING_TIMESCALES = 0.3, 360.0
OBC_SEGMENT_001_DATA = "U=file:forcing_obc_segment_001.nc(u),V=file:forcing_obc_segment_001.nc(v),SSH=file:forcing_obc_segment_001.nc(eta),TEMP=file:forcing_obc_segment_001.nc(temp),SALT=file:forcing_obc_segment_001.nc(salt),Uamp=file:tu_segment_001.nc(uamp),Uphase=file:tu_segment_001.nc(uphase),Vamp=file:tu_segment_001.nc(vamp),Vphase=file:tu_segment_001.nc(vphase),SSHamp=file:tz_segment_001.nc(zamp),SSHphase=file:tz_segment_001.nc(zphase)"
OBC_SEGMENT_002 = "J=N,I=N:0,FLATHER,ORLANSKI,NUDGED,ORLANSKI_TAN,NUDGED_TAN"
OBC_SEGMENT_002_VELOCITY_NUDGING_TIMESCALES = 0.3, 360.0
OBC_SEGMENT_002_DATA = "U=file:forcing_obc_segment_002.nc(u),V=file:forcing_obc_segment_002.nc(v),SSH=file:forcing_obc_segment_002.nc(eta),TEMP=file:forcing_obc_segment_002.nc(temp),SALT=file:forcing_obc_segment_002.nc(salt),Uamp=file:tu_segment_002.nc(uamp),Uphase=file:tu_segment_002.nc(uphase),Vamp=file:tu_segment_002.nc(vamp),Vphase=file:tu_segment_002.nc(vphase),SSHamp=file:tz_segment_002.nc(zamp),SSHphase=file:tz_segment_002.nc(zphase)"
OBC_SEGMENT_003 = "I=0,J=N:0,FLATHER,ORLANSKI,NUDGED,ORLANSKI_TAN,NUDGED_TAN"
OBC_SEGMENT_003_VELOCITY_NUDGING_TIMESCALES = 0.3, 360.0
OBC_SEGMENT_003_DATA = "U=file:forcing_obc_segment_003.nc(u),V=file:forcing_obc_segment_003.nc(v),SSH=file:forcing_obc_segment_003.nc(eta),TEMP=file:forcing_obc_segment_003.nc(temp),SALT=file:forcing_obc_segment_003.nc(salt),Uamp=file:tu_segment_003.nc(uamp),Uphase=file:tu_segment_003.nc(uphase),Vamp=file:tu_segment_003.nc(vamp),Vphase=file:tu_segment_003.nc(vphase),SSHamp=file:tz_segment_003.nc(zamp),SSHphase=file:tz_segment_003.nc(zphase)"
OBC_SEGMENT_004 = "I=N,J=0:N,FLATHER,ORLANSKI,NUDGED,ORLANSKI_TAN,NUDGED_TAN"
OBC_SEGMENT_004_VELOCITY_NUDGING_TIMESCALES = 0.3, 360.0
OBC_SEGMENT_004_DATA = "U=file:forcing_obc_segment_004.nc(u),V=file:forcing_obc_segment_004.nc(v),SSH=file:forcing_obc_segment_004.nc(eta),TEMP=file:forcing_obc_segment_004.nc(temp),SALT=file:forcing_obc_segment_004.nc(salt),Uamp=file:tu_segment_004.nc(uamp),Uphase=file:tu_segment_004.nc(uphase),Vamp=file:tu_segment_004.nc(vamp),Vphase=file:tu_segment_004.nc(vphase),SSHamp=file:tz_segment_004.nc(zamp),SSHphase=file:tz_segment_004.nc(zphase)"
! We need to add one line at the end so we can concatenate other testing user_nl_mom files (if you don't they just get added to the last line)
Loading