Regional Compsets & Input Parameters#
Case State File#
At the end of Case.__init__, CrocoDash writes a _crocodash_state.json file into the caseroot. It records the construction parameters needed to reconstruct or inspect the case later:
{
"inputdir": "/path/to/croc_input/mycase",
"cesmroot": "/path/to/CROCESM",
"supergrid_path": "/path/to/.../ocean_hgrid_mygrid_abc123.nc",
"topo_path": "/path/to/.../ocean_topog_mygrid_abc123.nc",
"vgrid_path": "/path/to/.../ocean_vgrid_mygrid_abc123.nc",
"grid_name": "mygrid",
"session_id": "abc123",
"compset_lname": "1850_DATM%JRA_SLND_SICE_MOM6%REGIONAL_SROF_SGLC_SWAV",
"machine": "derecho",
"project": "NCGD0011",
"atm_grid_name": "TL319"
}
This file is read by crocodash dump to reconstruct a YAML config, and by bundle/fork/duplicate to avoid re-parsing CIME. It is the paired counterpart to inputdir/extract_forcings/config.json, which records forcing configuration written by configure_forcings.
Both files carry a schema_version, each versioned on its own. Reading a file whose MAJOR.MINOR doesn’t match what the installed CrocoDash supports raises an error; recreate the case with the current CrocoDash. A config.json written before versioning has no schema_version and is read as 1.0.0; a _crocodash_state.json without one is accepted with a warning.
Available Compset Aliases#
Regional compsets are available by checking out the crocodash branch of the CROCODILE-CESM/CESM fork. You can always use the long names of the compsets instead.
The only job of the %REGIONAL flag on MOM6 in the compset longnames below is to set an xml variable MOM6_DOMAIN_TYPE=REGIONAL, which shifts input parameters to regional defaults.
Alias |
Long name |
Description |
|---|---|---|
CR_JRA |
1850_DATM%JRA-1p5-2023_SLND_DICE%SSMI_MOM6%REGIONAL_SROF_SGLC_SWAV |
Standalone ocean with data sea ice from SSMI and data atmosphere from JRA |
CR_JRA_RYF |
2000_DATM%JRA-RYF9091_SLND_DICE%SSMI_MOM6%REGIONAL_SROF_SGLC_SWAV |
Standalone ocean with data sea ice from SSMI and repeat-year (1990-91) data atmosphere from JRA |
CR1850MARBL_JRA |
1850_DATM%JRA-1p5-2023_SLND_DICE%SSMI_MOM6%REGIONAL%MARBL-BIO_SROF_SGLC_SWAV |
Ocean coupled with MARBL BGC model with data sea ice from SSMI and data atmosphere from JRA |
CR_JRA_GLOFAS |
1850_DATM%JRA-1p5-2023_SLND_DICE%SSMI_MOM6%REGIONAL_DROF%GLOFAS_SGLC_SWAV |
Standalone ocean with data sea ice from SSMI, data atmosphere from JRA, and data runoff from GLOFAS |
CR1850MARBL_JRA_GLOFAS |
1850_DATM%JRA-1p5-2023_SLND_DICE%SSMI_MOM6%REGIONAL%MARBL-BIO_DROF%GLOFAS_SGLC_SWAV |
Ocean coupled with MARBL BGC model with data sea ice from SSMI, data atmosphere from JRA, and data runoff from GLOFAS |
CWR_JRA |
1850_DATM%JRA-1p5-2023_SLND_DICE%SSMI_MOM6%REGIONAL_SROF_SGLC_WW3 |
Ocean coupled with WW3 wave model with data sea ice from SSMI and data atmosphere from JRA |
CWR_JRA_RYF |
2000_DATM%JRA-RYF9091_SLND_DICE%SSMI_MOM6%REGIONAL_SROF_SGLC_WW3 |
Ocean coupled with WW3 wave model with data sea ice from SSMI and repeat-year (1990-91) data atmosphere from JRA |
CWR1850MARBL_JRA |
1850_DATM%JRA-1p5-2023_SLND_DICE%SSMI_MOM6%REGIONAL%MARBL-BIO_SROF_SGLC_WW3 |
Ocean coupled with MARBL BGC model and WW3 wave model with data sea ice from SSMI and data atmosphere from JRA |
CWR_JRA_GLOFAS |
1850_DATM%JRA-1p5-2023_SLND_DICE%SSMI_MOM6%REGIONAL_DROF%GLOFAS_SGLC_WW3 |
Ocean coupled with WW3 wave model with data sea ice from SSMI, data atmosphere from JRA, and data runoff from GLOFAS |
CWR1850MARBL_JRA_GLOFAS |
1850_DATM%JRA-1p5-2023_SLND_DICE%SSMI_MOM6%REGIONAL%MARBL-BIO_DROF%GLOFAS_SGLC_WW3 |
Ocean coupled with MARBL BGC model and WW3 wave model with data sea ice from SSMI, data atmosphere from JRA, and data runoff from GLOFAS |
GR_JRA |
1850_DATM%JRA-1p5-2023_SLND_CICE_MOM6%REGIONAL_SROF_SGLC_SWAV |
Ocean coupled with CICE sea ice model with data atmosphere from JRA |
GR1850MARBL_JRA |
1850_DATM%JRA-1p5-2023_SLND_CICE_MOM6%REGIONAL%MARBL-BIO_SROF_SGLC_SWAV |
Ocean coupled with MARBL BGC model and CICE sea ice model with data atmosphere from JRA |
GR_JRA_GLOFAS |
1850_DATM%JRA-1p5-2023_SLND_CICE_MOM6%REGIONAL_DROF%GLOFAS_SGLC_SWAV |
Ocean coupled with CICE sea ice model with data atmosphere from JRA and data runoff from GLOFAS |
GR1850MARBL_JRA_GLOFAS |
1850_DATM%JRA-1p5-2023_SLND_CICE_MOM6%REGIONAL%MARBL-BIO_DROF%GLOFAS_SGLC_SWAV |
Ocean coupled with MARBL BGC model and CICE sea ice model with data atmosphere from JRA and data runoff from GLOFAS |
GWR_JRA |
1850_DATM%JRA-1p5-2023_SLND_CICE_MOM6%REGIONAL_SROF_SGLC_WW3 |
Ocean coupled with CICE sea ice model and WW3 wave model with data atmosphere from JRA |
GWR1850MARBL_JRA |
1850_DATM%JRA-1p5-2023_SLND_CICE_MOM6%REGIONAL%MARBL-BIO_SROF_SGLC_WW3 |
Ocean coupled with MARBL BGC model, CICE sea ice model, and WW3 wave model with data atmosphere from JRA |
GWR_JRA_GLOFAS |
1850_DATM%JRA-1p5-2023_SLND_CICE_MOM6%REGIONAL_DROF%GLOFAS_SGLC_WW3 |
Ocean coupled with CICE sea ice model and WW3 wave model with data atmosphere from JRA and data runoff from GLOFAS |
GWR1850MARBL_JRA_GLOFAS |
1850_DATM%JRA-1p5-2023_SLND_CICE_MOM6%REGIONAL%MARBL-BIO_DROF%GLOFAS_SGLC_WW3 |
Ocean coupled with MARBL BGC model, CICE sea ice model, and WW3 wave model with data atmosphere from JRA and data runoff from GLOFAS |
The W in CWR_*/GWR_* denotes an active wave model (WW3) in place of the stub
SWAV. For these compsets CrocoDash reuses the regional ocean grid as the wave grid
and runs the WW3 grid preprocessor, so no separate wave grid needs to be supplied.
Input Parameters#
MOM6 behavior is controlled through parameter files (namelists) and the diagnostic table. CrocoDash uses CESM’s MOM_interface to generate these files with sensible defaults.
Generated Files#
When you run case preview (or setup), CESM generates several MOM6 configuration files:
MOM_input- Main namelist controlling MOM6 parametersdiag_table- Diagnostic output configuration
These files are initially placed in the case’s CaseDocs directory for reference.
How Defaults Are Generated#
MOM_interface - CESM’s bridge component for MOM6
Located in:
components/momin CESM sandboxesGenerates default files based on grid and component settings
Files generated via
preview_namelists()which calls MOM_interface to validate and generate files
Default Recommendations - CrocoDash (and the %REGIONAL compset) provides tested defaults
Grid-aware settings (domain size, resolution)
Physics settings appropriate for regional domains
Diagnostic settings for common use cases
Customizing Parameters#
There are two approaches to customizing MOM6 parameters:
1. User Namelist Modifications (What you should use!)#
Override specific parameters using user_nl_mom:
# In your case directory user_nl_mom
DT_BAROCLINIC = 1800 ! Change timestep
TIDES = TRUE ! Enable tides (internal)
Then regenerate namelists:
./preview_namelists
Advantages:
Clean, trackable changes
Easy to see what you modified
Plays well with CESM workflows
Can be included in case scripts
2. SourceMods Overrides (Not Recommended)#
For more extensive customization (whole file replacement):
Generate the default file:
./preview_namelists
Copy to SourceMods:
cp CaseDocs/MOM_input SourceMods/src.mom/ cp CaseDocs/diag_table SourceMods/src.mom/
Edit the files in SourceMods:
# Edit SourceMods/src.mom/MOM_input as needed # Edit SourceMods/src.mom/diag_table as needed
Advantages:
Complete control over file contents
Good for major parameter changes, or sharing parameters with other users outside of the CESM infrastructure
Disadvantages:
Can miss updates to defaults
Much, much less transparent about what changed
Viewing/Verifying Generated Files#
After running preview_namelists, check:
# View generated defaults
cat CaseDocs/MOM_input
cat CaseDocs/diag_table
# View your modifications
cat user_nl_mom
cat SourceMods/src.mom/MOM_input # if using SourceMods
Common Customizations#
Change Model Timestep#
echo "DT_BAROCLINIC = 1800" >> user_nl_mom
Adjust Diagnostic Output Frequency#
Edit diag_table to change output intervals or variables.
For detailed information about MOM6 parameters:
MOM6 Manual: https://mom6.readthedocs.io/
MOM6 Parameters: MOM_input file comments and MOM6 documentation
CESM MOM_interface: See CESM documentation for default coupling parameters
Integration with CrocoDash#
When using CrocoDash, parameter customization happens after case creation:
CrocoDash creates the case and adjusts parameters with grid and forcing configurations
You customize parameters beyond CrocoDash via user_nl_mom or SourceMods
You build and run the case with modified parameters
For configuration of forcing-specific parameters (tides, BGC, rivers, etc.), see Configure Forcings instead.
Tips and Best Practices#
Start with defaults - CrocoDash provides tested defaults; modify only what you need
Document your changes - Add comments to user_nl_mom explaining why you changed things
Check compatibility - Some parameters interact; changing one may require changing others
You do not need to rebuild your case with parameter changes!!!