diff --git a/.github/workflows/e3sm-gh-ci-cime-tests.yml b/.github/workflows/e3sm-gh-ci-cime-tests.yml
index d73e96c6a1d..366fef018f2 100644
--- a/.github/workflows/e3sm-gh-ci-cime-tests.yml
+++ b/.github/workflows/e3sm-gh-ci-cime-tests.yml
@@ -3,6 +3,18 @@ name: gh
on:
pull_request:
branches: [ master ]
+ paths:
+ # first, yes to these
+ - 'cime_config/**'
+ - 'components/eam/**'
+ - 'components/elm/**'
+ - 'driver-moab/**'
+ - 'driver-mct/**'
+ # second, no to these
+ - '!components/eam/docs/**'
+ - '!components/eam/mkdocs.yml'
+ - '!components/elm/docs/**'
+ - '!components/elm/mkdocs.yml'
workflow_dispatch:
diff --git a/.github/workflows/e3sm-gh-ci-w-cime-tests.yml b/.github/workflows/e3sm-gh-ci-w-cime-tests.yml
new file mode 100644
index 00000000000..595518c326d
--- /dev/null
+++ b/.github/workflows/e3sm-gh-ci-w-cime-tests.yml
@@ -0,0 +1,59 @@
+name: gh
+
+on:
+ pull_request:
+ branches: [ master ]
+ paths-ignore:
+ - 'mkdocs.yaml'
+ - 'docs/**'
+ - 'components/*/docs/**'
+ - 'components/*/mkdocs.yml'
+
+ workflow_dispatch:
+
+jobs:
+
+ ci-w:
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ test:
+ - SMS_D_P8.ne4pg2_oQU480.WCYCL2010NS.singularity_gnu
+ - SMS_P8.ne4pg2_oQU480.WCYCL2010NS.singularity_gnu
+ - REP_P8.ne4pg2_oQU480.WCYCL2010NS.singularity_gnu
+ - ERS_P8.ne4pg2_oQU480.WCYCL2010NS.singularity_gnu
+ - ERS_P8.ne4pg2_oQU480.WCYCL2010NS.singularity_gnu.allactive-wcprod_1850
+ - ERP_P8.ne4pg2_oQU480.WCYCL2010NS.singularity_gnu
+ - PET_P8.ne4pg2_oQU480.WCYCL2010NS.singularity_gnu
+ - PEM_P8.ne4pg2_oQU480.WCYCL2010NS.singularity_gnu
+ container:
+ image: ghcr.io/mahf708/e3sm-imgs:v0.0.6
+
+ steps:
+ -
+ name: Checkout
+ uses: actions/checkout@v4
+ with:
+ show-progress: false
+ submodules: recursive
+ -
+ name: CIME
+ working-directory: cime/scripts
+ run: |
+ mkdir -p $HOME/projects/e3sm/cesm-inputdata/atm/cam/physprops/
+ wget https://web.lcrc.anl.gov/public/e3sm/inputdata/atm/cam/physprops/p3_lookup_table_1.dat-v4.1.2
+ mv p3_lookup_table_1.dat-v4.1.2 $HOME/projects/e3sm/cesm-inputdata/atm/cam/physprops/
+ export USER=test
+ ./create_test ${{ matrix.test }} --wait --debug
+ -
+ name: Artifacts
+ uses: actions/upload-artifact@v4
+ if: ${{ always() }}
+ with:
+ name: ${{ matrix.test }}
+ path: |
+ ~/projects/e3sm/scratch/${{ matrix.test }}*/TestStatus.log
+ ~/projects/e3sm/scratch/${{ matrix.test }}*/bld/*.bldlog.*
+ ~/projects/e3sm/scratch/${{ matrix.test }}*/run/*.log.*
+ ~/projects/e3sm/scratch/${{ matrix.test }}*/run/*.cprnc.out
diff --git a/.github/workflows/e3sm-gh-md-linter.yml b/.github/workflows/e3sm-gh-md-linter.yml
new file mode 100644
index 00000000000..6484335213d
--- /dev/null
+++ b/.github/workflows/e3sm-gh-md-linter.yml
@@ -0,0 +1,28 @@
+name: markdown
+
+# if .md files are touched in a PR, lint them!
+
+on:
+ pull_request:
+ branches: ["master"]
+ paths:
+ - '**/*.md'
+
+jobs:
+ linter:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ - uses: tj-actions/changed-files@v44
+ id: changed-files
+ with:
+ files: '**/*.md'
+ separator: ","
+ - uses: DavidAnson/markdownlint-cli2-action@v16
+ if: steps.changed-files.outputs.any_changed == 'true'
+ with:
+ config: 'docs/.markdownlint.json'
+ globs: ${{ steps.changed-files.outputs.all_changed_files }}
+ separator: ","
diff --git a/.gitignore b/.gitignore
index c4d2a64bc99..8c1fa12b87c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -30,6 +30,13 @@ site
# Ignore emacs backup files
*~
+#Ignore Mac folder files
+.DS_Store
+
+#Ignore vscode dir
+.vscode
+
+
# Ignore mkdocs site-generated files in eamxx
components/eamxx/site/*
# Ignore auto-generated eamxx_params.md file
diff --git a/cime_config/allactive/config_compsets.xml b/cime_config/allactive/config_compsets.xml
index 637facc327d..66edcf617c0 100755
--- a/cime_config/allactive/config_compsets.xml
+++ b/cime_config/allactive/config_compsets.xml
@@ -70,6 +70,12 @@
1850_EAM%CMIP6_ELM%CNPRDCTCBCTOP_MPASSI_MPASO_MOSART_SGLC_SWAV
+
+
+ WCYCL2010NS
+ 2010_EAM%CMIP6_ELM%CNPRDCTCBCTOP_MPASSI_MPASO_MOSART_SGLC_SWAV
+
+
WCYCL1950
1950SOI_EAM%CMIP6_ELM%CNPRDCTCBCTOP_MPASSI_MPASO_MOSART_SGLC_SWAV
@@ -113,12 +119,17 @@
WCYCLSSP585
- SSP585SOI_EAM%CMIP6_ELM%SPBC_MPASSI_MPASO_MOSART_SGLC_SWAV
+ SSP585SOI_EAM%CMIP6_ELM%CNPRDCTCBCTOP_MPASSI_MPASO_MOSART_SGLC_SWAV
WCYCLSSP370
- SSP370SOI_EAM%CMIP6_ELM%SPBC_MPASSI_MPASO_MOSART_SGLC_SWAV
+ SSP370SOI_EAM%CMIP6_ELM%CNPRDCTCBCTOP_MPASSI_MPASO_MOSART_SGLC_SWAV
+
+
+
+ WCYCLSSP245
+ SSP245SOI_EAM%CMIP6_ELM%CNPRDCTCBCTOP_MPASSI_MPASO_MOSART_SGLC_SWAV
@@ -393,7 +404,7 @@
BGWCYCL1850
- 1850_EAM%CMIP6_ELM%SPBC_MPASSI_MPASO_MOSART_MALI%STATIC_SWAV
+ 1850_EAM%CMIP6_ELM%SPBC_MPASSI_MPASO_MOSART_MALI_SWAV
@@ -443,6 +454,7 @@
1850-01-01
2015-01-01
2015-01-01
+ 2015-01-01
diff --git a/cime_config/allactive/config_pesall.xml b/cime_config/allactive/config_pesall.xml
index 7bcf72e44e6..0db40bd5798 100644
--- a/cime_config/allactive/config_pesall.xml
+++ b/cime_config/allactive/config_pesall.xml
@@ -325,7 +325,7 @@
-
+
"anvil, GPMPAS-JRA compset, 6 nodes"
-6
@@ -338,7 +338,7 @@
-
+
"crusher, GPMPAS-JRA compset, 2 nodes"
-4
@@ -351,7 +351,7 @@
-
+
summit|ascent: GPMPAS-JRA compset on ne30np4 grid
-4
@@ -468,7 +468,7 @@
-
+
-compset A_WCYCL* -res ne30_oEC* on 27 nodes pure-MPI
900
@@ -487,7 +487,7 @@
0
-
+
-compset A_WCYCL* -res ne30_oEC* on 40 nodes pure-MPI
1350
@@ -506,7 +506,7 @@
0
-
+
-compset A_WCYCL* -res ne30_oEC* on 80 nodes pure-MPI
2700
@@ -525,7 +525,7 @@
0
-
+
-compset A_WCYCL* -res ne30_oEC* on 160 nodes pure-MPI
5400
@@ -548,7 +548,7 @@
-
+
ne120-wcycl on 42 nodes 128x1 ~0.7 sypd
128
@@ -584,7 +584,7 @@
-
+
ne120-wcycl on 145 nodes, MPI-only
64
64
@@ -609,7 +609,7 @@
0
-
+
ne120-wcycl on 145 nodes, threaded
256
64
@@ -644,7 +644,7 @@
0
-
+
ne120 coupled-compset on 466 nodes
64
64
@@ -669,7 +669,7 @@
0
-
+
ne120-wcycl on 863 nodes, MPI-only
64
64
@@ -694,7 +694,7 @@
0
-
+
ne120-wcycl on 863 nodes, threaded
128
64
@@ -729,7 +729,7 @@
0
-
+
ne120-wcycl on 825 nodes, threaded, 32 tasks/node
128
32
@@ -764,7 +764,7 @@
0
-
+
ne120-wcycl on 800 nodes, threaded, 32 tasks/node
128
32
@@ -801,7 +801,7 @@
-
+
compy ne120 W-cycle on 310 nodes, 40x1, sypd=1.2
9600
@@ -824,7 +824,7 @@
-
+
--compset WCYCL* --res ne30pg2_EC30to60E2r2 on 25 nodes pure-MPI, ~5.4 sypd
675
@@ -843,7 +843,7 @@
0
-
+
--compset WCYCL* --res ne30pg2_EC30to60E2r2 on 48 nodes pure-MPI, ~9.4 sypd
1350
@@ -862,7 +862,7 @@
0
-
+
--compset WCYCL* --res ne30pg2_EC30to60E2r2 on 90 nodes pure-MPI, ~12 sypd
2700
@@ -917,7 +917,7 @@
-
+
-compset A_WCYCL* -res ne30pg2_EC30to60* on 27 nodes pure-MPI, ~15.5 sypd
2700
@@ -936,7 +936,7 @@
0
-
+
-compset A_WCYCL* -res ne30pg2_EC30to60* on 54 nodes pure-MPI, ~25.5 sypd
5400
@@ -957,7 +957,7 @@
-
+
-compset A_WCYCL* -res ne30pg2_EC30to60* on 11 nodes pure-MPI, ~2.8 sypd
320
@@ -976,7 +976,7 @@
0
-
+
-compset A_WCYCL* -res ne30pg2_EC30to60* on 21 nodes pure-MPI, ~5.5 sypd
600
@@ -995,7 +995,7 @@
0
-
+
-compset A_WCYCL* -res ne30pg2_EC30to60* on 46 nodes pure-MPI, ~11 sypd
1350
@@ -1014,7 +1014,7 @@
0
-
+
-compset A_WCYCL* -res ne30pg2_EC30to60* on 90 nodes pure-MPI, ~18 sypd
2700
@@ -1037,7 +1037,7 @@
-
+
-compset WCYCL*/CRYO* -res SOwISC12to60E2r4* on 75 nodes pure-MPI, ~5 sypd
900
@@ -1058,7 +1058,7 @@
-
+
-compset WCYCL*/CRYO* -res ne30pg*SOwISC12to60E2r4* on 105 nodes pure-MPI, ~18.5 sypd
64
@@ -1078,7 +1078,7 @@
0
-
+
-compset WCYCL*/CRYO* -res ne30pg*SOwISC12to60E2r4* on 54 nodes pure-MPI, ~11 sypd
64
@@ -1102,7 +1102,7 @@
-
+
-compset WCYCL*/CRYO* -res ECwISC30to60E2r1* on 48 nodes pure-MPI, ~8.5 sypd
1350
@@ -1123,7 +1123,7 @@
-
+
-compset WCYCL*/CRYO* -res ne30pg*ECwISC30to60E2r1* on 105 nodes pure-MPI, ~40 sypd
64
@@ -1143,7 +1143,7 @@
0
-
+
-compset WCYCL*/CRYO* -res ne30pg*ECwISC30to60E2r1* on 55 nodes pure-MPI, ~25 sypd
64
@@ -1163,7 +1163,7 @@
0
-
+
-compset WCYCL*/CRYO* -res ne30pg*ECwISC30to60E2r1* on 28 nodes pure-MPI, ~15 sypd
64
@@ -1187,7 +1187,7 @@
-
+
gcp12 -compset A_WCYCL* -res ne30pg2_oECv3 with MPASO on 7 nodes
280
@@ -1216,7 +1216,7 @@
-
+
gcp10 -compset A_WCYCL* -res ne30pg2_oECv3 with MPASO on 11 nodes
240
@@ -1245,7 +1245,7 @@
-
+
-compset A_WCYCL* -res ne30pg2_oECv3 with MPASO on 7 nodes, 128x1
128
@@ -1273,7 +1273,7 @@
0
-
+
-compset A_WCYCL* -res ne30pg2_oECv3 with MPASO on 58 nodes, 128x1, ~20 sypd
128
@@ -1410,7 +1410,7 @@
-
+
-compset A_WCYCL* -res ne30pg2_oECv3 on 11 nodes pure-MPI, ~2.8 sypd
320
@@ -1429,7 +1429,7 @@
0
-
+
-compset A_WCYCL* -res ne30pg2_oECv3 on 21 nodes pure-MPI, ~5.5 sypd
600
@@ -1448,7 +1448,7 @@
0
-
+
-compset A_WCYCL* -res ne30pg2_oECv3 on 46 nodes pure-MPI, ~11 sypd
1350
@@ -1467,7 +1467,7 @@
0
-
+
-compset A_WCYCL* -res ne30pg2_oECv3 on 90 nodes pure-MPI, ~18 sypd
2700
@@ -1586,9 +1586,70 @@
+
+
+
+ --compset WCYCL* --res ne30pg2_r05_IcosXISC30E3r7 on 20 nodes pure-MPI, ~7.25 sypd
+
+ 1024
+ 1024
+ 256
+ 640
+ 384
+ 385
+
+
+ 0
+ 0
+ 1024
+ 0
+ 640
+ 640
+
+
+
+ --compset WCYCL* --res ne30pg2_r05_IcosXISC30E3r7 on 54 nodes pure-MPI, ~17.5 sypd
+
+ 2752
+ 2752
+ 704
+ 2048
+ 704
+ 704
+
+
+ 0
+ 0
+ 2752
+ 0
+ 2048
+ 2048
+
+
+
+ --compset WCYCL* --res ne30pg2_r05_IcosXISC30E3r7 on 105 nodes pure-MPI, ~27.7 sypd
+
+ 5440
+ 5440
+ 1280
+ 4352
+ 1088
+ 1088
+
+
+ 0
+ 0
+ 5440
+ 0
+ 4352
+ 4352
+
+
+
+
-
+
-compset WCYCL* -res ne30pg2_EC30to60E2r2 on 14 nodes pure-MPI, ~6 sypd
704
@@ -1607,7 +1668,7 @@
0
-
+
-compset WCYCL* -res ne30pg2_EC30to60E2r2 on 27 nodes pure-MPI, ~12 sypd
1408
@@ -1626,7 +1687,7 @@
0
-
+
-compset WCYCL* -res ne30pg2_EC30to60E2r2 on 53 nodes pure-MPI, ~21 sypd
2752
@@ -1645,7 +1706,7 @@
0
-
+
-compset WCYCL* -res ne30pg2_EC30to60E2r2 on 70 nodes pure-MPI, ~24 sypd
3648
@@ -1664,7 +1725,7 @@
0
-
+
-compset WCYCL* -res ne30pg2EC30to60E2r2 on 100 nodes pure-MPI, ~30 sypd
5440
@@ -1685,7 +1746,7 @@
-
+
-compset A_WCYCL* -res ne30pg*EC30to60* on 8 debug Q nodes threaded, 0.8 sypd
384
@@ -1712,7 +1773,7 @@
0
-
+
-compset A_WCYCL* -res ne30pg*EC30to60* on 128 default Q nodes pure-MPI, 3.8 sypd
5400
@@ -1735,7 +1796,7 @@
-
+
-compset WCYCL* -res ne30pg*WCAtl* on 80 nodes pure-MPI, ~8.5 sypd
2700
@@ -1933,7 +1994,7 @@
-
+
rmod025a
40
40
@@ -1954,7 +2015,7 @@
0
-
+
rmod077a
40
40
@@ -1975,7 +2036,7 @@
0
-
+
rmod111a
40
40
@@ -1996,7 +2057,7 @@
0
-
+
rmod037a
20
40
@@ -2017,7 +2078,7 @@
2
-
+
rmod074a
20
40
@@ -2046,7 +2107,7 @@
0
-
+
rmod115b
20
40
@@ -2077,7 +2138,7 @@
-
+
RRM-WCYCL: 64 nodes 2.133 sypd
1800
@@ -2098,7 +2159,7 @@
-
+
cmod016b64x1 s=2.4
64
128
@@ -2119,7 +2180,7 @@
0
-
+
cmod040c64x1 s=5.6
64
128
@@ -2140,7 +2201,7 @@
0
-
+
cmod060d64x1 s=8.0
64
128
@@ -2161,7 +2222,7 @@
0
-
+
cmod080c64x1 s=10.1
64
128
@@ -2182,7 +2243,7 @@
0
-
+
cmod100b64x1 s=12.3
64
128
@@ -2205,7 +2266,7 @@
-
+
8 nodes, 128x1
640
@@ -2258,7 +2319,7 @@
-
+
--compset WCYCL* --res ne30pg2_EC30to60E2r2_wQU225EC30to60E2r2 on 48 nodes pure-MPI, ~8.8 sypd
1350
@@ -2292,7 +2353,7 @@
-
+
none
924
@@ -2329,7 +2390,7 @@
-
+
none
2768
@@ -2526,4 +2587,80 @@
+
+
+
+ GIS 1-to-10km (high-res) baseline config
+ 128
+ 128
+
+ 1350
+ 960
+ 960
+ 1350
+ 320
+ 960
+ 2310
+ 2310
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+
+
+ 0
+ 1350
+ 1350
+ 0
+ 2310
+ 1350
+ 0
+ 0
+
+
+
+
+
+ GIS 1-to-10km (high-res) baseline config
+ 64
+ 64
+
+ 1350
+ 960
+ 960
+ 1408
+ 384
+ 960
+ 1
+ 2368
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+
+
+ 0
+ 1408
+ 1408
+ 0
+ 2368
+ 1408
+ 0
+ 0
+
+
+
+
diff --git a/cime_config/config_archive.xml b/cime_config/config_archive.xml
index 028a11e8439..84de6e0f171 100644
--- a/cime_config/config_archive.xml
+++ b/cime_config/config_archive.xml
@@ -119,7 +119,6 @@
rst
- rst.am.timeSeriesStatsMonthly
hist
unset
@@ -129,9 +128,8 @@
rpointer.glc
casename.mali.rst.1976-01-01_00000.nc
- casename.mali.rst.am.timeSeriesStatsMonthly.1976-01-01_00000.nc
- casename.mali.hist.am.globalStats.1976-01-01.nc
- casename.mali.hist.am.highFrequencyOutput.1976-01-01_00.00.00.nc
+ casename.mali.hist.1976-01-01_00000.nc
+ casename.mali.hist.am.1976-01-01.nc
diff --git a/cime_config/config_files.xml b/cime_config/config_files.xml
index 97d73759ac4..71de5196442 100644
--- a/cime_config/config_files.xml
+++ b/cime_config/config_files.xml
@@ -98,6 +98,7 @@
char
$CIMEROOT/CIME/data/config/config_tests.xml
+ $COMP_ROOT_DIR_OCN/cime_config/config_tests.xml
test
env_test.xml
@@ -321,6 +322,7 @@
char
$CIMEROOT/CIME/SystemTests
+ $COMP_ROOT_DIR_OCN/cime_config/SystemTests
test
env_test.xml
diff --git a/cime_config/config_grids.xml b/cime_config/config_grids.xml
index caa87c8222c..ccfb3d908d8 100755
--- a/cime_config/config_grids.xml
+++ b/cime_config/config_grids.xml
@@ -38,9 +38,6 @@
r05
r05
null
- gland5UM
- gland4
- gland4
null
null
null
@@ -489,6 +486,36 @@
WC14to60E2r3
+
+ TL319
+ r05
+ WC14to60E2r3
+ r05
+ null
+ null
+ WC14to60E2r3
+
+
+
+ TL319
+ r05
+ EC30to60E2r2
+ r05
+ null
+ null
+ EC30to60E2r2
+
+
+
+ TL319
+ r05
+ ARRM10to60E2r1
+ r05
+ null
+ null
+ ARRM10to60E2r1
+
+
TL319
TL319
@@ -569,6 +596,16 @@
IcoswISC30E3r5
+
+ TL319
+ TL319
+ IcosXISC30E3r7
+ JRA025
+ null
+ null
+ IcosXISC30E3r7
+
+
TL319
TL319
@@ -721,6 +758,16 @@
oEC60to30v3
+
+ r025
+ r025
+ r025
+ r025
+ null
+ null
+ oEC60to30v3
+
+
r0125
r0125
@@ -751,6 +798,16 @@
oRRS18to6v3
+
+ r025
+ r025
+ IcoswISC30E3r5
+ null
+ null
+ null
+ IcoswISC30E3r5
+
+
@@ -1023,6 +1080,16 @@
oRRS15to5
+
+ ne0np4_northamericax4v1.pg2
+ r025
+ IcoswISC30E3r5
+ r025
+ null
+ null
+ IcoswISC30E3r5
+
+
ne0np4_northamericax4v1.pg2
r0125
@@ -1426,6 +1493,26 @@
oRRS18to6v3
+
+ ne120np4.pg2
+ r025
+ IcoswISC30E3r5
+ null
+ null
+ null
+ IcoswISC30E3r5
+
+
+
+ ne30np4.pg2
+ r025
+ IcoswISC30E3r5
+ null
+ null
+ null
+ IcoswISC30E3r5
+
+
ne60np4
ne60np4
@@ -1708,6 +1795,36 @@
oEC60to30v3
+
+ ne30np4.pg2
+ r05
+ EC30to60E2r2
+ r05
+ mpas.gis20km
+ null
+ EC30to60E2r2
+
+
+
+ ne30np4.pg2
+ r05
+ IcoswISC30E3r5
+ r05
+ mpas.gis20km
+ null
+ IcoswISC30E3r5
+
+
+
+ TL319
+ TL319
+ IcoswISC30E3r5
+ JRA025
+ mpas.gis20km
+ null
+ IcoswISC30E3r5
+
+
ne30np4.pg2
r05
@@ -1728,6 +1845,16 @@
oEC60to30v3
+
+ ne30np4.pg2
+ r05
+ EC30to60E2r2
+ r05
+ mpas.gis1to10km
+ null
+ EC30to60E2r2
+
+
ne30np4.pg2
r0125
@@ -1738,6 +1865,36 @@
EC30to60E2r2
+
+ ne30np4.pg2
+ r05
+ EC30to60E2r2
+ r05
+ mpas.gis1to10kmR2
+ null
+ EC30to60E2r2
+
+
+
+ ne30np4.pg2
+ r05
+ IcoswISC30E3r5
+ r05
+ mpas.gis1to10kmR2
+ null
+ IcoswISC30E3r5
+
+
+
+ TL319
+ TL319
+ IcoswISC30E3r5
+ JRA025
+ mpas.gis1to10kmR2
+ null
+ IcoswISC30E3r5
+
+
ne120np4.pg2
r0125
@@ -2104,6 +2261,16 @@
IcoswISC30E3r5
+
+ ne30np4.pg2
+ r05
+ IcosXISC30E3r7
+ r05
+ null
+ null
+ IcosXISC30E3r7
+
+
ne30np4.pg2
r05
@@ -2466,6 +2633,8 @@
$DIN_LOC_ROOT/share/domains/domain.ocn.TL319_ECwISC30to60E2r1.201007.nc
$DIN_LOC_ROOT/share/domains/domain.lnd.TL319_IcoswISC30E3r5.231121.nc
$DIN_LOC_ROOT/share/domains/domain.ocn.TL319_IcoswISC30E3r5.231121.nc
+ $DIN_LOC_ROOT/share/domains/domain.lnd.TL319_IcosXISC30E3r7.240326.nc
+ $DIN_LOC_ROOT/share/domains/domain.ocn.TL319_IcosXISC30E3r7.240326.nc
$DIN_LOC_ROOT/share/domains/domain.lnd.TL319_oRRS18to6v3.220124.nc
$DIN_LOC_ROOT/share/domains/domain.ocn.TL319_oRRS18to6v3.220124.nc
TL319 is JRA lat/lon grid:
@@ -2575,6 +2744,8 @@
$DIN_LOC_ROOT/share/domains/domain.ocn.ne30pg2_oRRS18to6v3.211101.nc
$DIN_LOC_ROOT/share/domains/domain.lnd.ne30pg2_IcoswISC30E3r5.231121.nc
$DIN_LOC_ROOT/share/domains/domain.ocn.ne30pg2_IcoswISC30E3r5.231121.nc
+ $DIN_LOC_ROOT/share/domains/domain.lnd.ne30pg2_IcosXISC30E3r7.240326.nc
+ $DIN_LOC_ROOT/share/domains/domain.ocn.ne30pg2_IcosXISC30E3r7.240326.nc
$DIN_LOC_ROOT/share/domains/domain.lnd.ne30pg2_gx1v6.190806.nc
$DIN_LOC_ROOT/share/domains/domain.ocn.ne30pg2_gx1v6.190806.nc
ne30np4.pg2 is Spectral Elem 1-deg grid w/ 2x2 FV physics grid per element:
@@ -2877,6 +3048,13 @@
IcoswISC30E3r5 is a MPAS ocean grid generated with the jigsaw/compass process using a dual mesh that is a subdivided icosahedron, resulting in a nearly uniform resolution of 30 km. Additionally, it has ocean in ice-shelf cavities:
+
+ 463013
+ 1
+ $DIN_LOC_ROOT/share/domains/domain.ocn.IcosXISC30E3r7.240326.nc
+ IcosXISC30E3r7 is a MPAS ocean grid generated with the jigsaw/compass process using a dual mesh that is a subdivided icosahedron, resulting in a nearly uniform resolution of 30 km.:
+
+
@@ -2909,6 +3087,8 @@
$DIN_LOC_ROOT/share/domains/domain.lnd.r05_WC14to60E2r3.200929.nc
$DIN_LOC_ROOT/share/domains/domain.lnd.r05_IcoswISC30E3r5.231121.nc
$DIN_LOC_ROOT/share/domains/domain.lnd.r05_IcoswISC30E3r5.231121.nc
+ $DIN_LOC_ROOT/share/domains/domain.lnd.r05_IcosXISC30E3r7.240326.nc
+ $DIN_LOC_ROOT/share/domains/domain.lnd.r05_IcosXISC30E3r7.240326.nc
$DIN_LOC_ROOT/share/domains/domain.lnd.r05_gx1v6.191014.nc
r05 is 1/2 degree river routing grid:
@@ -2938,6 +3118,12 @@
r0125 is 1/8 degree river routing grid:
+
+ 1440
+ 720
+ $DIN_LOC_ROOT/share/domains/domain.lnd.r025_IcoswISC30E3r5.240129.nc
+
+
28993
1
@@ -2971,6 +3157,12 @@
mpas.gis1to10km is a variable-resolution, from 1- to 10-km, MALI grid of the Greenland Ice Sheet.
+
+ 427386
+ 1
+ mpas.gis1to10kmR2 is an updated (fewer grid cells; improved optimization) variable-resolution, from 1- to 10-km, MALI grid of the Greenland Ice Sheet.
+
+
45675
1
@@ -3060,6 +3252,8 @@
$DIN_LOC_ROOT/share/domains/domain.ocn.northamericax4v1pg2_WC14to60E2r3.200929.nc
$DIN_LOC_ROOT/share/domains/domain.lnd.northamericax4v1pg2_EC30to60E2r2.220428.nc
$DIN_LOC_ROOT/share/domains/domain.ocn.northamericax4v1pg2_EC30to60E2r2.220428.nc
+ $DIN_LOC_ROOT/share/domains/domain.lnd.northamericax4v1pg2_IcoswISC30E3r5.240416.nc
+ $DIN_LOC_ROOT/share/domains/domain.ocn.northamericax4v1pg2_IcoswISC30E3r5.240416.nc
1-deg with 1/4-deg over North America (version 1) pg2:
@@ -3375,6 +3569,16 @@
+
+
+
+
+
+
+
+
+
+
@@ -3549,6 +3753,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -3845,6 +4065,16 @@
+
+
+
+
+
+
+
+
+
+
@@ -3852,6 +4082,14 @@
+
+
+
+
+
+
+
+
@@ -3862,6 +4100,12 @@
+
+
+
+
+
+
@@ -4230,6 +4474,14 @@
+
+
+
+
+
+
+
+
@@ -4238,6 +4490,13 @@
+
+
+
+
+
+
+
@@ -4353,6 +4612,11 @@
+
+
+
+
+
@@ -4594,10 +4858,18 @@
+
+
+
+
+
+
+
+
@@ -4780,6 +5052,11 @@
+
+
+
+
+
@@ -4865,6 +5142,16 @@
+
+
+
+
+
+
+
+
+
+
@@ -4983,6 +5270,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -5030,6 +5360,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/cime_config/machines/Depends.pm-cpu.nvidia.cmake b/cime_config/machines/Depends.pm-cpu.nvidia.cmake
index 2947c73aacc..f3514d11880 100644
--- a/cime_config/machines/Depends.pm-cpu.nvidia.cmake
+++ b/cime_config/machines/Depends.pm-cpu.nvidia.cmake
@@ -10,6 +10,17 @@ if (NOT DEBUG)
endforeach()
endif()
+list(APPEND NO_STACK_ARRAY_LIST
+ eam/src/physics/cam/phys_grid_ctem.F90
+)
+
+# Remove -Mstack_arrays for this one file to avoid error (likely compiler bug)
+# As we can't remove flag, try adding -Mnostack_arrays https://github.com/E3SM-Project/E3SM/issues/6350
+# Tried with nvidia/22.7 and 23.9 on pm-cpu
+foreach(ITEM IN LISTS NO_STACK_ARRAY_LIST)
+ e3sm_add_flags("${ITEM}" " -Mnostack_arrays")
+endforeach()
+
# Use -O2 for a few files already found to benefit from increased optimization in Intel Depends file
set(PERFOBJS
homme/src/share/prim_advection_base.F90
diff --git a/cime_config/machines/cmake_macros/crayclang-scream_frontier-scream-gpu.cmake b/cime_config/machines/cmake_macros/crayclang-scream_frontier-scream-gpu.cmake
index 8cc85b92cc6..afcca8f479e 100644
--- a/cime_config/machines/cmake_macros/crayclang-scream_frontier-scream-gpu.cmake
+++ b/cime_config/machines/cmake_macros/crayclang-scream_frontier-scream-gpu.cmake
@@ -34,5 +34,5 @@ if (COMP_NAME STREQUAL gptl)
endif()
set(PIO_FILESYSTEM_HINTS "lustre")
-string(APPEND KOKKOS_OPTIONS " -DKokkos_ENABLE_HIP=On -DKokkos_ARCH_VEGA90A=On -DCMAKE_CXX_FLAGS='-std=gnu++14'")
+string(APPEND KOKKOS_OPTIONS " -DKokkos_ENABLE_HIP=On -DKokkos_ARCH_VEGA90A=On -DCMAKE_CXX_FLAGS='-std=gnu++14' -DKokkos_ENABLE_OPENMP=OFF")
set(USE_HIP "TRUE")
diff --git a/cime_config/machines/cmake_macros/crayclang_frontier.cmake b/cime_config/machines/cmake_macros/crayclang_frontier.cmake
index 6bda90a4187..6c8d4164cb2 100644
--- a/cime_config/machines/cmake_macros/crayclang_frontier.cmake
+++ b/cime_config/machines/cmake_macros/crayclang_frontier.cmake
@@ -15,3 +15,6 @@ string(APPEND CMAKE_Fortran_FLAGS " -hipa0 -hzero")
# -em -ef generates modulename.mod (lowercase files) to support
# Scorpio installs
string(APPEND CMAKE_Fortran_FLAGS " -em -ef")
+
+# to support Fortran specific compiler intrinsic functions
+set(E3SM_LINK_WITH_FORTRAN "TRUE")
diff --git a/cime_config/machines/cmake_macros/gnugpu_frontier.cmake b/cime_config/machines/cmake_macros/gnugpu_frontier.cmake
index dbbe7ba2b2e..174f8207d0d 100644
--- a/cime_config/machines/cmake_macros/gnugpu_frontier.cmake
+++ b/cime_config/machines/cmake_macros/gnugpu_frontier.cmake
@@ -18,7 +18,7 @@ string(APPEND SPIO_CMAKE_OPTS " -DPIO_ENABLE_TOOLS:BOOL=OFF")
set(E3SM_LINK_WITH_FORTRAN "TRUE")
string(APPEND CMAKE_CXX_FLAGS " -I$ENV{MPICH_DIR}/include --offload-arch=gfx90a")
-string(APPEND CMAKE_EXE_LINKER_FLAGS " -L/opt/cray/pe/gcc-libs -lgfortran -L$ENV{MPICH_DIR}/lib -lmpi -L$ENV{CRAY_MPICH_ROOTDIR}/gtl/lib -lmpi_gtl_hsa ")
+string(APPEND CMAKE_EXE_LINKER_FLAGS " -L/opt/cray/pe/gcc/11.2.0/snos/lib64/ -lgfortran -L/opt/rocm-5.4.0/lib -lhsa-runtime64 -L$ENV{MPICH_DIR}/lib -lmpi -L$ENV{CRAY_MPICH_ROOTDIR}/gtl/lib -lmpi_gtl_hsa ")
string(APPEND KOKKOS_OPTIONS " -DKokkos_ENABLE_HIP=On -DKokkos_ARCH_ZEN3=On -DKokkos_ARCH_VEGA90A=On -DKokkos_ENABLE_OPENMP=Off")
diff --git a/cime_config/machines/config_batch.xml b/cime_config/machines/config_batch.xml
index 33bd48494a4..5ba8e38f2e7 100644
--- a/cime_config/machines/config_batch.xml
+++ b/cime_config/machines/config_batch.xml
@@ -291,7 +291,6 @@
--job-name={{ job_id }}
--nodes={{ num_nodes }}
--output={{ job_id }}.%j
- --exclusive
diff --git a/cime_config/machines/config_machines.xml b/cime_config/machines/config_machines.xml
index 87dfacd7fd4..f37cc3266ad 100644
--- a/cime_config/machines/config_machines.xml
+++ b/cime_config/machines/config_machines.xml
@@ -206,6 +206,7 @@
aocc
cudatoolkit
climate-utils
+ matlab
craype-accel-nvidia80
craype-accel-host
perftools-base
@@ -263,8 +264,6 @@
/global/cfs/cdirs/e3sm/perl/lib/perl5-only-switch
software
MPI_Bcast
- $SHELL{if [ -z "$Albany_ROOT" ]; then echo /global/common/software/e3sm/mali_tpls/albany-e3sm-serial-release-gcc; else echo "$Albany_ROOT"; fi}
- $SHELL{if [ -z "$Trilinos_ROOT" ]; then echo /global/common/software/e3sm/mali_tpls/trilinos-e3sm-serial-release-gcc; else echo "$Trilinos_ROOT"; fi}
$ENV{CRAY_NETCDF_HDF5PARALLEL_PREFIX}
$ENV{CRAY_PARALLEL_NETCDF_PREFIX}
4000MB
@@ -275,6 +274,9 @@
$SHELL{if [ -z "$ADIOS2_ROOT" ]; then echo /global/cfs/cdirs/e3sm/3rdparty/adios2/2.9.1/cray-mpich-8.1.25/gcc-11.2.0; else echo "$ADIOS2_ROOT"; fi}
Generic
+ $SHELL{if [ -z "$Albany_ROOT" ]; then echo /global/common/software/e3sm/mali_tpls/albany-e3sm-serial-release-gcc-cmake-fix; else echo "$Albany_ROOT"; fi}
+ $SHELL{if [ -z "$Trilinos_ROOT" ]; then echo /global/common/software/e3sm/mali_tpls/trilinos-e3sm-serial-release-gcc; else echo "$Trilinos_ROOT"; fi}
+ $SHELL{if [ -z "$Kokkos_ROOT" ]; then echo /global/common/software/e3sm/mali_tpls/trilinos-e3sm-serial-release-gcc; else echo "$Kokkos_ROOT"; fi}
$SHELL{if [ -z "$ADIOS2_ROOT" ]; then echo /global/cfs/cdirs/e3sm/3rdparty/adios2/2.9.1/cray-mpich-8.1.25/nvidia-22.7; else echo "$ADIOS2_ROOT"; fi}
@@ -367,6 +369,7 @@
aocc
cudatoolkit
climate-utils
+ matlab
craype-accel-nvidia80
craype-accel-host
perftools-base
@@ -510,6 +513,7 @@
aocc
cudatoolkit
climate-utils
+ matlab
craype-accel-nvidia80
craype-accel-host
perftools-base
@@ -672,6 +676,7 @@
aocc
cudatoolkit
climate-utils
+ matlab
craype-accel-nvidia80
craype-accel-host
perftools-base
@@ -823,6 +828,7 @@
aocc
cudatoolkit
climate-utils
+ matlab
craype-accel-nvidia80
craype-accel-host
perftools-base
@@ -2068,7 +2074,7 @@
ANL CELS General Computing Environment (Linux) workstation (Ubuntu 22.04)
- compute-386-01|compute-386-02
+ compute-386-(01|02|03|05|07|08)|compute-240-(15)
LINUX
gnu
mpich,openmpi
@@ -2129,6 +2135,7 @@
/nfs/gce/projects/climate/software/linux-ubuntu22.04-x86_64/hdf5/1.12.2/mpich-4.1.2/gcc-12.1.0
/nfs/gce/projects/climate/software/linux-ubuntu22.04-x86_64/netcdf/4.8.0c-4.3.1cxx-4.5.3f-parallel/mpich-4.1.2/gcc-12.1.0
/nfs/gce/projects/climate/software/linux-ubuntu22.04-x86_64/pnetcdf/1.12.3/mpich-4.1.2/gcc-12.1.0
+ $SHELL{if [ -z "$MOAB_ROOT" ]; then echo /nfs/gce/projects/climate/software/moab/devel/mpich-4.1.2/gcc-12.1.0; else echo "$MOAB_ROOT"; fi}
@@ -2138,6 +2145,7 @@
/nfs/gce/projects/climate/software/linux-ubuntu22.04-x86_64/hdf5/1.12.2/openmpi-4.1.6/gcc-12.1.0
/nfs/gce/projects/climate/software/linux-ubuntu22.04-x86_64/netcdf/4.8.0c-4.3.1cxx-4.5.3f-parallel/openmpi-4.1.6/gcc-12.1.0
/nfs/gce/projects/climate/software/linux-ubuntu22.04-x86_64/pnetcdf/1.12.3/openmpi-4.1.6/gcc-12.1.0
+ $SHELL{if [ -z "$MOAB_ROOT" ]; then echo /nfs/gce/projects/climate/software/moab/devel/openmpi-4.1.6/gcc-12.1.0; else echo "$MOAB_ROOT"; fi}
64M
@@ -2624,6 +2632,7 @@
$SHELL{dirname $(dirname $(which nf-config))}
$SHELL{dirname $(dirname $(which pnetcdf_version))}
^lockedfile,individual
+ ^xpmem
128M
@@ -2643,6 +2652,11 @@
$SHELL{if [ -z "$MOAB_ROOT" ]; then echo /lcrc/soft/climate/moab/chrysalis/gnu; else echo "$MOAB_ROOT"; fi}
+
+ $SHELL{if [ -z "$Albany_ROOT" ]; then echo /lcrc/group/e3sm/ac.jwatkins/LandIce/AlbanyBuilds/build-gcc-sfad12-e3sm/install; else echo "$Albany_ROOT"; fi}
+ $SHELL{if [ -z "$Trilinos_ROOT" ]; then echo /lcrc/group/e3sm/ac.jwatkins/LandIce/TrilinosBuilds/build-gcc-e3sm/install; else echo "$Trilinos_ROOT"; fi}
+ $SHELL{if [ -z "$Kokkos_ROOT" ]; then echo /lcrc/group/e3sm/ac.jwatkins/LandIce/TrilinosBuilds/build-gcc-e3sm/install; else echo "$Kokkos_ROOT"; fi}
+
@@ -2961,83 +2975,6 @@
-
- LLNL Linux Cluster, Linux, 4 V100 GPUs/node, 44 IBM P9 cpu cores/node
- lassen.*
- LINUX
- gnugpu
- spectrum-mpi
- cbronze
- /usr/workspace/$USER/e3sm_scratch
- /usr/gdata/e3sm/ccsm3data/inputdata
- /usr/gdata/e3sm/ccsm3data/inputdata/atm/datm7
- /usr/workspace/$USER/archive/$CASE
- /usr/gdata/e3sm/baselines/$COMPILER
- 16
- lsf
- donahue5 -at- llnl.gov
- 40
- 40
-
-
-
-
- jsrun
-
- -X 1
- $SHELL{if [ {{ total_tasks }} -eq 1 ];then echo --nrs 1 --rs_per_host 1;else echo --nrs $NUM_RS --rs_per_host $RS_PER_NODE;fi}
- --tasks_per_rs $SHELL{echo "({{ tasks_per_node }} + $RS_PER_NODE - 1)/$RS_PER_NODE"|bc}
- -d plane:$SHELL{echo "({{ tasks_per_node }} + $RS_PER_NODE - 1)/$RS_PER_NODE"|bc}
- --cpu_per_rs $ENV{CPU_PER_RS}
- --gpu_per_rs $ENV{GPU_PER_RS}
- --bind packed:smt:$ENV{OMP_NUM_THREADS}
- --latency_priority $ENV{LTC_PRT}
- --stdio_mode prepended
- $ENV{JSRUN_THREAD_VARS}
- $ENV{SMPIARGS}
-
-
-
- /usr/share/lmod/lmod/init/env_modules_python.py
- /usr/share/lmod/lmod/init/perl
- /usr/share/lmod/lmod/init/sh
- /usr/share/lmod/lmod/init/csh
- module
- module
- /usr/share/lmod/lmod/libexec/lmod python
- /usr/share/lmod/lmod/libexec/lmod perl
-
-
- git
- gcc/8.3.1
- cuda/11.8.0
- cmake/3.16.8
- spectrum-mpi
- python/3.7.2
-
-
- /p/gpfs1/$USER/e3sm_scratch/$CASE/run
- $CIME_OUTPUT_ROOT/$CASE/bld
-
-
-
-
- -E OMP_NUM_THREADS=$ENV{OMP_NUM_THREADS} -E OMP_PROC_BIND=spread -E OMP_PLACES=threads -E OMP_STACKSIZE=256M
-
-
- y
- /usr/gdata/e3sm/netcdf/bin:$ENV{PATH}
- /usr/gdata/e3sm/netcdf/lib:$ENV{LD_LIBRARY_PATH}
- /usr/gdata/e3sm/netcdf
- 2
- 20
- 2
- gpu-cpu
- $SHELL{echo "2*((`./xmlquery --value TOTAL_TASKS` + `./xmlquery --value TASKS_PER_NODE` - 1)/`./xmlquery --value TASKS_PER_NODE`)"|bc}
- --smpiargs="-gpu"
-
-
-
LLNL Linux Cluster, Linux (pgi), 56 pes/node, batch system is Slurm
LINUX
@@ -3083,6 +3020,7 @@
netcdf-fortran/4.6.0
parallel-netcdf/1.12.3
screamML-venv/0.0.1
+ subversion
$CIME_OUTPUT_ROOT/$CASE/run
@@ -3138,6 +3076,7 @@
netcdf-fortran/4.6.0
parallel-netcdf/1.12.3
screamML-venv/0.0.1
+ subversion
$CIME_OUTPUT_ROOT/$CASE/run
@@ -4879,12 +4818,12 @@ AMD EPYC 7713 64-Core (Milan) (256GB) and 4 nvidia A100'
cli115
/gpfs/alpine/proj-shared/cli115
.*
- /gpfs/alpine/$PROJECT/proj-shared/$ENV{USER}/e3sm_scratch
- /gpfs/alpine/cli115/world-shared/e3sm/inputdata
- /gpfs/alpine/cli115/world-shared/e3sm/inputdata/atm/datm7
+ /gpfs/alpine2/$PROJECT/proj-shared/$ENV{USER}/e3sm_scratch
+ /gpfs/alpine2/atm146/world-shared/e3sm/inputdata
+ /gpfs/alpine2/atm146/world-shared/e3sm/inputdata/atm/datm7
/gpfs/alpine/$PROJECT/proj-shared/$ENV{USER}/archive/$CASE
- /gpfs/alpine/cli115/world-shared/e3sm/baselines/$COMPILER
- /gpfs/alpine/cli115/world-shared/e3sm/tools/cprnc.summit/cprnc
+ /gpfs/alpine2/atm146/world-shared/e3sm/baselines/$COMPILER
+ /gpfs/alpine2/atm146/world-shared/e3sm/tools/cprnc.summit/cprnc
8
e3sm_developer
4
@@ -4894,7 +4833,7 @@ AMD EPYC 7713 64-Core (Milan) (256GB) and 4 nvidia A100'
18
42
42
-
+
84
18
@@ -4928,7 +4867,7 @@ AMD EPYC 7713 64-Core (Milan) (256GB) and 4 nvidia A100'
module
- DefApps
+ DefApps-2023
python/3.7-anaconda3
subversion/1.14.0
git/2.31.1
@@ -4976,6 +4915,7 @@ AMD EPYC 7713 64-Core (Milan) (256GB) and 4 nvidia A100'
$ENV{OLCF_PARALLEL_NETCDF_ROOT}
0
+ True
@@ -5039,15 +4979,6 @@ AMD EPYC 7713 64-Core (Milan) (256GB) and 4 nvidia A100'
mlx5_3:1,mlx5_0:1
mlx5_0:1,mlx5_3:1
-
- $SHELL{if [ -z "$ADIOS2_ROOT" ]; then echo /gpfs/alpine/cli115/world-shared/3rdparty/adios2/2.9.1/spectrum-mpi-10.4.0.3/xl-16.1.1-10; else echo "$ADIOS2_ROOT"; fi}
-
-
- $SHELL{if [ -z "$ADIOS2_ROOT" ]; then echo /gpfs/alpine/cli115/world-shared/3rdparty/adios2/2.9.1/spectrum-mpi-10.4.0.3/nvhpc-21.11; else echo "$ADIOS2_ROOT"; fi}
-
-
- $SHELL{if [ -z "$ADIOS2_ROOT" ]; then echo /gpfs/alpine/cli115/world-shared/3rdparty/adios2/2.9.1/spectrum-mpi-10.4.0.3/gcc-9.1.0; else echo "$ADIOS2_ROOT"; fi}
-
diff --git a/cime_config/testmods_dirs/allactive/wcprodssp/README b/cime_config/testmods_dirs/allactive/wcprodssp/README
index fe36669a02a..66e4a6d06ea 100644
--- a/cime_config/testmods_dirs/allactive/wcprodssp/README
+++ b/cime_config/testmods_dirs/allactive/wcprodssp/README
@@ -1,5 +1,5 @@
Modifications (in shell_commands) to enable a hybrid run for SSP compsets
-(e.g., SSp370 or SSP585), starting from v3 long spinup.
+(e.g., SSP370 or SSP585), starting from end of v3 historical run
Other modifications (same as for wcprod) should result in a case that has the
same namelist settings as the water cycle production sims
diff --git a/cime_config/testmods_dirs/allactive/wcprodssp/shell_commands b/cime_config/testmods_dirs/allactive/wcprodssp/shell_commands
index 1cb8644c617..91b8f207046 100644
--- a/cime_config/testmods_dirs/allactive/wcprodssp/shell_commands
+++ b/cime_config/testmods_dirs/allactive/wcprodssp/shell_commands
@@ -6,9 +6,9 @@
./xmlchange RUN_TYPE="hybrid"
./xmlchange GET_REFCASE="TRUE"
- ./xmlchange RUN_REFCASE="20231209.v3.LR.piControl-spinup.chrysalis"
- ./xmlchange RUN_REFDATE="1801-01-01"
- ./xmlchange RUN_REFDIR=${INPUTDATA_ROOT}"/e3sm_init/V3.SSP370_SSP585.ne30pg2_r05_IcoswISC30E3r5/v3.LR.piControl-spinup/1801-01-01-00000"
+ ./xmlchange RUN_REFCASE="v3.LR.historical_0101"
+ ./xmlchange RUN_REFDATE="2015-01-01"
+ ./xmlchange RUN_REFDIR=${INPUTDATA_ROOT}"/e3sm_init/v3.SSP.ne30pg2_r05_IcoswISC30E3r5/v3.LR.historical_0101/2015-01-01-00000"
exit
diff --git a/cime_config/testmods_dirs/allactive/wcprodssp/user_nl_eam b/cime_config/testmods_dirs/allactive/wcprodssp/user_nl_eam
index b83a8c6ca22..7ef3e3782a3 100644
--- a/cime_config/testmods_dirs/allactive/wcprodssp/user_nl_eam
+++ b/cime_config/testmods_dirs/allactive/wcprodssp/user_nl_eam
@@ -1,16 +1,59 @@
- nhtfrq = -24,-24,-6,-6,-3,-24,-24
- mfilt = 1,30,120,120,240,30,1
- avgflag_pertape = 'A','A','I','A','A','A','I'
-!temporarily remove LINOZ O3 related fields from the list until updated linoz v3 style inputdata is ready
-!fexcl1 = 'CFAD_SR532_CAL', 'LINOZ_DO3', 'LINOZ_DO3_PSC', 'LINOZ_O3CLIM', 'LINOZ_O3COL', 'LINOZ_SSO3', 'hstobie_linoz'
- fexcl1 = 'CFAD_SR532_CAL', 'hstobie_linoz'
- fincl1 = 'extinct_sw_inp','extinct_lw_bnd7','extinct_lw_inp','CLD_CAL', 'TREFMNAV', 'TREFMXAV'
- fincl2 = 'FLUT','PRECT','U200','V200','U850','V850','Z500','OMEGA500','UBOT','VBOT','TREFHT','TREFHTMN:M','TREFHTMX:X','QREFHT','TS','PS','TMQ','TUQ','TVQ','TOZ', 'FLDS', 'FLNS', 'FSDS', 'FSNS', 'SHFLX', 'LHFLX', 'TGCLDCWP', 'TGCLDIWP', 'TGCLDLWP', 'CLDTOT', 'T250', 'T200', 'T150', 'T100', 'T050', 'T025', 'T010', 'T005', 'T002', 'T001', 'TTOP', 'U250', 'U150', 'U100', 'U050', 'U025', 'U010', 'U005', 'U002', 'U001', 'UTOP', 'FSNT', 'FLNT'
- fincl3 = 'PSL','T200','T500','U850','V850','UBOT','VBOT','TREFHT', 'Z700', 'TBOT:M'
- fincl4 = 'FLUT','U200','U850','PRECT','OMEGA500'
- fincl5 = 'PRECT','PRECC','TUQ','TVQ','QFLX','SHFLX','U90M','V90M'
- fincl6 = 'CLDTOT_ISCCP','MEANCLDALB_ISCCP','MEANTAU_ISCCP','MEANPTOP_ISCCP','MEANTB_ISCCP','CLDTOT_CAL','CLDTOT_CAL_LIQ','CLDTOT_CAL_ICE','CLDTOT_CAL_UN','CLDHGH_CAL','CLDHGH_CAL_LIQ','CLDHGH_CAL_ICE','CLDHGH_CAL_UN','CLDMED_CAL','CLDMED_CAL_LIQ','CLDMED_CAL_ICE','CLDMED_CAL_UN','CLDLOW_CAL','CLDLOW_CAL_LIQ','CLDLOW_CAL_ICE','CLDLOW_CAL_UN'
- fincl7 = 'O3', 'PS', 'TROP_P'
+ cosp_lite = .true.
-! Specify an L80 IC to override eam.i from reference case, which is still for L72
- ncdata = '$DIN_LOC_ROOT/atm/cam/inic/homme/eami_mam4_Linoz_ne30np4_L80_c20231010.nc'
+ empty_htapes = .true.
+
+ avgflag_pertape = 'A','A','A','A','I','I'
+ nhtfrq = -24,-24,-6,-3,-1,0
+ mfilt = 1,30,120,240,720,1
+
+ fincl1 = 'AODALL','AODBC','AODDUST','AODPOM','AODSO4','AODSOA','AODSS','AODVIS',
+ 'CLDLOW','CLDMED','CLDHGH','CLDTOT',
+ 'CLDHGH_CAL','CLDLOW_CAL','CLDMED_CAL','CLD_MISR','CLDTOT_CAL',
+ 'CLMODIS','FISCCP1_COSP','FLDS','FLNS','FLNSC','FLNT','FLUT',
+ 'FLUTC','FSDS','FSDSC','FSNS','FSNSC','FSNT','FSNTOA','FSNTOAC','FSNTC',
+ 'ICEFRAC','LANDFRAC','LWCF','OCNFRAC','OMEGA','PRECC','PRECL','PRECSC','PRECSL','PS','PSL','Q',
+ 'QFLX','QREFHT','RELHUM','SCO','SHFLX','SOLIN','SWCF','T','TAUX','TAUY','TCO',
+ 'TGCLDLWP','TMQ','TREFHT','TREFMNAV','TREFMXAV','TS','U','U10','V','Z3',
+ 'dst_a1DDF','dst_a3DDF','dst_c1DDF','dst_c3DDF','dst_a1SFWET','dst_a3SFWET','dst_c1SFWET','dst_c3SFWET',
+ 'O3','LHFLX',
+ 'O3_2DTDA_trop','O3_2DTDB_trop','O3_2DTDD_trop','O3_2DTDE_trop','O3_2DTDI_trop','O3_2DTDL_trop',
+ 'O3_2DTDN_trop','O3_2DTDO_trop','O3_2DTDS_trop','O3_2DTDU_trop','O3_2DTRE_trop','O3_2DTRI_trop',
+ 'O3_SRF','NO_2DTDS','NO_TDLgt','NO2_2DTDD','NO2_2DTDS','NO2_TDAcf','CO_SRF','TROPE3D_P','TROP_P',
+ 'CDNUMC','SFDMS','so4_a1_sfgaex1','so4_a2_sfgaex1','so4_a3_sfgaex1','so4_a5_sfgaex1','soa_a1_sfgaex1',
+ 'soa_a2_sfgaex1','soa_a3_sfgaex1','GS_soa_a1','GS_soa_a2','GS_soa_a3','AQSO4_H2O2','AQSO4_O3',
+ 'SFSO2','SO2_CLXF','SO2','DF_SO2','AQ_SO2','GS_SO2','WD_SO2','ABURDENSO4_STR','ABURDENSO4_TRO',
+ 'ABURDENSO4','ABURDENBC','ABURDENDUST','ABURDENMOM','ABURDENPOM','ABURDENSEASALT',
+ 'ABURDENSOA','AODSO4_STR','AODSO4_TRO',
+ 'EXTINCT','AODABS','AODABSBC','CLDICE','CLDLIQ','CLD_CAL_TMPLIQ','CLD_CAL_TMPICE','Mass_bc_srf',
+ 'Mass_dst_srf','Mass_mom_srf','Mass_ncl_srf','Mass_pom_srf','Mass_so4_srf','Mass_soa_srf','Mass_bc_850',
+ 'Mass_dst_850','Mass_mom_850','Mass_ncl_850','Mass_pom_850','Mass_so4_850','Mass_soa_850','Mass_bc_500',
+ 'Mass_dst_500','Mass_mom_500','Mass_ncl_500','Mass_pom_500','Mass_so4_500','Mass_soa_500','Mass_bc_330',
+ 'Mass_dst_330','Mass_mom_330','Mass_ncl_330','Mass_pom_330','Mass_so4_330','Mass_soa_330','Mass_bc_200',
+ 'Mass_dst_200','Mass_mom_200','Mass_ncl_200','Mass_pom_200','Mass_so4_200','Mass_soa_200',
+ 'O3_2DTDD','O3_2DCIP','O3_2DCIL','CO_2DTDS','CO_2DTDD','CO_2DCEP','CO_2DCEL','NO_2DTDD',
+ 'FLNTC','SAODVIS',
+ 'H2OLNZ',
+ 'dst_a1SF','dst_a3SF',
+ 'PHIS','CLOUD','TGCLDIWP','TGCLDCWP','AREL',
+ 'CLDTOT_ISCCP','MEANCLDALB_ISCCP','MEANPTOP_ISCCP','CLD_CAL',
+ 'CLDTOT_CAL_LIQ','CLDTOT_CAL_ICE','CLDTOT_CAL_UN',
+ 'CLDHGH_CAL_LIQ','CLDHGH_CAL_ICE','CLDHGH_CAL_UN',
+ 'CLDMED_CAL_LIQ','CLDMED_CAL_ICE','CLDMED_CAL_UN',
+ 'CLDLOW_CAL_LIQ','CLDLOW_CAL_ICE','CLDLOW_CAL_UN',
+ 'CLWMODIS','CLIMODIS'
+
+ fincl2 = 'PS', 'FLUT','PRECT','U200','V200','U850','V850',
+ 'TCO','SCO','TREFHTMN:M','TREFHTMX:X','TREFHT','QREFHT'
+ fincl3 = 'PS', 'PSL','PRECT','TUQ','TVQ','UBOT','VBOT','TREFHT','FLUT','OMEGA500','TBOT','U850','V850','U200','V200','T200','T500','Z700'
+ fincl4 = 'PRECT'
+ fincl5 = 'O3_SRF'
+ fincl6 = 'CO_2DMSD','NO2_2DMSD','NO_2DMSD','O3_2DMSD','O3_2DMSD_trop'
+
+ ! -- chemUCI settings ------------------
+ history_chemdyg_summary = .true.
+ history_gaschmbudget_2D = .false.
+ history_gaschmbudget_2D_levels = .false.
+ history_gaschmbudget_num = 6 !! no impact if history_gaschmbudget_2D = .false.
+
+ ! -- MAM5 settings ------------------
+ is_output_interactive_volc = .true.
diff --git a/cime_config/testmods_dirs/allactive/wcprodssp/user_nl_elm b/cime_config/testmods_dirs/allactive/wcprodssp/user_nl_elm
index 80bd35a81f0..7bfdbac5c84 100644
--- a/cime_config/testmods_dirs/allactive/wcprodssp/user_nl_elm
+++ b/cime_config/testmods_dirs/allactive/wcprodssp/user_nl_elm
@@ -2,11 +2,43 @@
CHECK_FINIDAT_FSURDAT_CONSISTENCY = .false.
-! flanduse_timeseries not ready for v3.LR.SSP production grid, set not to do transient_pft tentatively until SSP compset fully ready
-
- do_transient_pfts = .false.
hist_dov2xy = .true.,.true.
+ hist_fexcl1 = 'AGWDNPP','ALTMAX_LASTYEAR','AVAIL_RETRANSP','AVAILC','BAF_CROP',
+ 'BAF_PEATF','BIOCHEM_PMIN_TO_PLANT','CH4_SURF_AERE_SAT','CH4_SURF_AERE_UNSAT','CH4_SURF_DIFF_SAT',
+ 'CH4_SURF_DIFF_UNSAT','CH4_SURF_EBUL_SAT','CH4_SURF_EBUL_UNSAT','CMASS_BALANCE_ERROR','cn_scalar',
+ 'COL_PTRUNC','CONC_CH4_SAT','CONC_CH4_UNSAT','CONC_O2_SAT','CONC_O2_UNSAT',
+ 'cp_scalar','CWDC_HR','CWDC_LOSS','CWDC_TO_LITR2C','CWDC_TO_LITR3C',
+ 'CWDC_vr','CWDN_TO_LITR2N','CWDN_TO_LITR3N','CWDN_vr','CWDP_TO_LITR2P',
+ 'CWDP_TO_LITR3P','CWDP_vr','DWT_CONV_CFLUX_DRIBBLED','F_CO2_SOIL','F_CO2_SOIL_vr',
+ 'F_DENIT_vr','F_N2O_DENIT','F_N2O_NIT','F_NIT_vr','FCH4_DFSAT',
+ 'FINUNDATED_LAG','FPI_P_vr','FPI_vr','FROOTC_LOSS','HR_vr',
+ 'LABILEP_TO_SECONDP','LABILEP_vr','LAND_UPTAKE','LEAF_MR','leaf_npimbalance',
+ 'LEAFC_LOSS','LEAFC_TO_LITTER','LFC2','LITR1_HR','LITR1C_TO_SOIL1C',
+ 'LITR1C_vr','LITR1N_TNDNCY_VERT_TRANS','LITR1N_TO_SOIL1N','LITR1N_vr','LITR1P_TNDNCY_VERT_TRANS',
+ 'LITR1P_TO_SOIL1P','LITR1P_vr','LITR2_HR','LITR2C_TO_SOIL2C','LITR2C_vr',
+ 'LITR2N_TNDNCY_VERT_TRANS','LITR2N_TO_SOIL2N','LITR2N_vr','LITR2P_TNDNCY_VERT_TRANS','LITR2P_TO_SOIL2P',
+ 'LITR2P_vr','LITR3_HR','LITR3C_TO_SOIL3C','LITR3C_vr','LITR3N_TNDNCY_VERT_TRANS',
+ 'LITR3N_TO_SOIL3N','LITR3N_vr','LITR3P_TNDNCY_VERT_TRANS','LITR3P_TO_SOIL3P','LITR3P_vr',
+ 'M_LITR1C_TO_LEACHING','M_LITR2C_TO_LEACHING','M_LITR3C_TO_LEACHING','M_SOIL1C_TO_LEACHING','M_SOIL2C_TO_LEACHING',
+ 'M_SOIL3C_TO_LEACHING','M_SOIL4C_TO_LEACHING','NDEPLOY','NEM','nlim_m',
+ 'o2_decomp_depth_unsat','OCCLP_vr','PDEPLOY','PLANT_CALLOC','PLANT_NDEMAND',
+ 'PLANT_NDEMAND_COL','PLANT_PALLOC','PLANT_PDEMAND','PLANT_PDEMAND_COL','plim_m',
+ 'POT_F_DENIT','POT_F_NIT','POTENTIAL_IMMOB','POTENTIAL_IMMOB_P','PRIMP_TO_LABILEP',
+ 'PRIMP_vr','PROD1P_LOSS','QOVER_LAG','RETRANSN_TO_NPOOL','RETRANSP_TO_PPOOL',
+ 'SCALARAVG_vr','SECONDP_TO_LABILEP','SECONDP_TO_OCCLP','SECONDP_vr','SMIN_NH4_vr',
+ 'SMIN_NO3_vr','SMINN_TO_SOIL1N_L1','SMINN_TO_SOIL2N_L2','SMINN_TO_SOIL2N_S1','SMINN_TO_SOIL3N_L3',
+ 'SMINN_TO_SOIL3N_S2','SMINN_TO_SOIL4N_S3','SMINP_TO_SOIL1P_L1','SMINP_TO_SOIL2P_L2','SMINP_TO_SOIL2P_S1',
+ 'SMINP_TO_SOIL3P_L3','SMINP_TO_SOIL3P_S2','SMINP_TO_SOIL4P_S3','SMINP_vr','SOIL1_HR','SOIL1C_TO_SOIL2C','SOIL1C_vr','SOIL1N_TNDNCY_VERT_TRANS','SOIL1N_TO_SOIL2N','SOIL1N_vr',
+ 'SOIL1P_TNDNCY_VERT_TRANS','SOIL1P_TO_SOIL2P','SOIL1P_vr','SOIL2_HR','SOIL2C_TO_SOIL3C',
+ 'SOIL2C_vr','SOIL2N_TNDNCY_VERT_TRANS','SOIL2N_TO_SOIL3N','SOIL2N_vr','SOIL2P_TNDNCY_VERT_TRANS',
+ 'SOIL2P_TO_SOIL3P','SOIL2P_vr','SOIL3_HR','SOIL3C_TO_SOIL4C','SOIL3C_vr',
+ 'SOIL3N_TNDNCY_VERT_TRANS','SOIL3N_TO_SOIL4N','SOIL3N_vr','SOIL3P_TNDNCY_VERT_TRANS','SOIL3P_TO_SOIL4P',
+ 'SOIL3P_vr','SOIL4_HR','SOIL4C_vr','SOIL4N_TNDNCY_VERT_TRANS','SOIL4N_TO_SMINN',
+ 'SOIL4N_vr','SOIL4P_TNDNCY_VERT_TRANS','SOIL4P_TO_SMINP','SOIL4P_vr','SOLUTIONP_vr',
+ 'TCS_MONTH_BEGIN','TCS_MONTH_END','TOTCOLCH4','water_scalar','WF',
+ 'wlim_m','WOODC_LOSS','WTGQ'
+ hist_fincl1 = 'SNOWDP','COL_FIRE_CLOSS','NPOOL','PPOOL','TOTPRODC'
hist_fincl2 = 'H2OSNO', 'FSNO', 'QRUNOFF', 'QSNOMELT', 'FSNO_EFF', 'SNORDSL', 'SNOW', 'FSDS', 'FSR', 'FLDS', 'FIRE', 'FIRA'
hist_mfilt = 1,365
hist_nhtfrq = -24,-24
diff --git a/cime_config/testmods_dirs/config_pes_tests.xml b/cime_config/testmods_dirs/config_pes_tests.xml
index 7e7e531460e..4ef7663c540 100644
--- a/cime_config/testmods_dirs/config_pes_tests.xml
+++ b/cime_config/testmods_dirs/config_pes_tests.xml
@@ -284,4 +284,34 @@
+
+
+
+
+ tests+chrysalis: any compset on oQU240 grid, 1x32x2 NODESxMPIxOMP
+ 32
+ 64
+
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+ 32
+
+
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+
+
+
+
diff --git a/cime_config/tests.py b/cime_config/tests.py
index 3223ae10804..b4b54dceeb9 100644
--- a/cime_config/tests.py
+++ b/cime_config/tests.py
@@ -54,8 +54,9 @@
"e3sm_land_exenoshare" : {
"time" : "0:45:00",
"tests" : (
+ "ERS.f19_g16.IERA5ELM",
+ "ERS.f19_g16.IERA56HRELM",
"ERS_Ld20.f45_f45.IELMFATES.elm-fates",
- "ERS.hcru_hcru.I20TRGSWCNPRDCTCBC.elm-erosion",
"ERS.f09_g16.IELMBC.elm-simple_decomp",
"ERS.hcru_hcru.IELM.elm-multi_inst",
)
@@ -92,7 +93,7 @@
"SMS_Ly2_P1x1.1x1_smallvilleIA.IELMCNCROP.elm-fan",
"SMS.r05_r05.IELM.elm-topounit",
"ERS.ELM_USRDAT.I1850ELM.elm-usrdat",
- "ERS.f09_f09.IELM.elm-lnd_rof_2way",
+ "ERS.r05_r05.IELM.elm-lnd_rof_2way",
"ERS.r05_r05.IELM.elm-V2_ELM_MOSART_features",
"ERS.ELM_USRDAT.IELM.elm-surface_water_dynamics"
)
@@ -121,6 +122,25 @@
)
},
+ "e3sm_cryo_developer" : {
+ "tests" : (
+ "SMS_D_Ld1.TL319_IcoswISC30E3r5.GMPAS-JRA1p5-DIB-PISMF.mpaso-jra_1958",
+ "ERS_Ld5.T62_oQU240wLI.GMPAS-DIB-IAF-PISMF",
+ "PEM_Ln5.T62_oQU240wLI.GMPAS-DIB-IAF-PISMF",
+ "PET_Ln5.T62_oQU240wLI.GMPAS-DIB-IAF-PISMF",
+ "ERS_Ld5.T62_oQU240wLI.GMPAS-DIB-IAF-DISMF",
+ "PEM_Ln5.T62_oQU240wLI.GMPAS-DIB-IAF-DISMF",
+ "PET_Ln5.T62_oQU240wLI.GMPAS-DIB-IAF-DISMF",
+ )
+ },
+
+ "e3sm_landice_developer" : {
+ "tests" : (
+ "SMS.ne30pg2_r05_EC30to60E2r2_gis20.IGELM_MLI.elm-gis20kmSMS",
+ "ERS.ne30pg2_r05_EC30to60E2r2_gis20.IGELM_MLI.elm-gis20kmERS",
+ )
+ },
+
"eam_condidiag" : {
"tests" : (
"SMS_D_Ln5.ne4pg2_oQU480.F2010",
@@ -226,6 +246,17 @@
)
},
+ #ocean non bit-for-bit test
+ "e3sm_ocn_nbfb": {
+ "tests": (
+ "MVKO_PS.T62_oQU240.GMPAS-NYF",
+ )
+ },
+
+ "e3sm_nbfb": {
+ "inherit": ("e3sm_atm_nbfb", "e3sm_ocn_nbfb")
+ },
+
"e3sm_ocnice_stealth_features" : {
"tests" : (
"SMS_D_Ld1.T62_oQU240wLI.GMPAS-IAF-PISMF.mpaso-impl_top_drag",
@@ -257,7 +288,7 @@
},
"e3sm_developer" : {
- "inherit" : ("e3sm_land_developer", "e3sm_atm_developer", "e3sm_ice_developer"),
+ "inherit" : ("e3sm_land_developer", "e3sm_atm_developer", "e3sm_ice_developer", "e3sm_cryo_developer"),
"time" : "0:45:00",
"tests" : (
"ERS.f19_g16_rx1.A",
@@ -267,10 +298,8 @@
"NCK.f19_g16_rx1.A",
"SMS.ne30_f19_g16_rx1.A",
"ERS_Ld5.T62_oQU120.CMPASO-NYF",
- "SMS_Ld1.T62_oQU240wLI.GMPAS-IAF-DISMF",
"ERS.f09_g16_g.MALISIA",
"SMS.T62_oQU120_ais20.MPAS_LISIO_TEST",
- "SMS.f09_g16_a.IGELM_MLI",
"SMS_P12x2.ne4pg2_oQU480.WCYCL1850NS.allactive-mach_mods",
"ERS_Ln9.ne4pg2_ne4pg2.F2010-MMF1.eam-mmf_crmout",
)
@@ -304,6 +333,7 @@
"SMS_Ln5.ne30pg2_ne30pg2.F2010-SCREAM-LR-DYAMOND2",
"ERS_Ld3.ne30pg2_r05_IcoswISC30E3r5.WCYCL1850.allactive-nlmaps",
"SMS_D_Ld1.ne30pg2_r05_IcoswISC30E3r5.CRYO1850-DISMF",
+ "ERS.hcru_hcru.I20TRGSWCNPRDCTCBC.elm-erosion",
)
},
@@ -421,6 +451,7 @@
"ERS_Ld60.f45_g37.IELMFATES.elm-fates_cold_nofire",
"ERS_Ld60.f45_g37.IELMFATES.elm-fates_cold_st3",
"ERS_Ld60.f45_g37.IELMFATES.elm-fates_cold_pphys",
+ "SMS_D_Ld15.f45_g37.IELMFATES.elm-fates_cold_twostream",
)
},
diff --git a/components/cmake/modules/FindPIO.cmake b/components/cmake/modules/FindPIO.cmake
index 7df8a9ba106..0277918ac8e 100644
--- a/components/cmake/modules/FindPIO.cmake
+++ b/components/cmake/modules/FindPIO.cmake
@@ -18,6 +18,9 @@ endif()
if (PIO_VERSION STREQUAL 2)
# This is a pio2 library
set(PIOLIBS "${PIO_LIBDIR}/libpiof.a;${PIO_LIBDIR}/libpioc.a")
+ if (DEFINED ENV{ADIOS2_ROOT})
+ list(APPEND PIOLIBS "${PIO_LIBDIR}/libadios2pio-nm-lib.a")
+ endif()
else()
# This is a pio1 library
set(PIOLIBS "${PIO_LIBDIR}/libpio.a")
diff --git a/components/data_comps/datm/cime_config/config_component.xml b/components/data_comps/datm/cime_config/config_component.xml
index 94b0eab610d..cb982f52fcf 100644
--- a/components/data_comps/datm/cime_config/config_component.xml
+++ b/components/data_comps/datm/cime_config/config_component.xml
@@ -10,12 +10,14 @@
This file may have atm desc entries.
-->
- Data driven ATM
+ Data driven ATM
QIAN data set
QIAN with water isotopes
CRUNCEP data set
CLM CRU NCEP v7 data set
GSWP3v1 data set
+ Fifth generation ECMWF reanalysis
+ Fifth generation ECMWF reanalysis,6 hourly data
MOSART test data set using older NLDAS data
NLDAS2 regional 0.125 degree data set over the U.S. (25-53N, 235-293E). WARNING: Garbage data will be produced for runs extending beyond this regional domain.
Coupler hist data set (in this mode, it is strongly recommended that the model domain and the coupler history forcing are on the same domain)
@@ -43,13 +45,13 @@
char
- CORE2_NYF,CORE2_IAF,CLM_QIAN,CLM_QIAN_WISO,CLM1PT,CLMCRUNCEP,CLMCRUNCEPv7,CLMGSWP3v1,CLMMOSARTTEST,CLMNLDAS2,CPLHIST,CORE_IAF_JRA,IAF_JRA_1p5,CORE_IAF_JRA_1p4_2018,CORE_RYF8485_JRA,CORE_RYF9091_JRA,CORE_RYF0304_JRA,CFSv2,CFSR
+ CORE2_NYF,CORE2_IAF,CLM_QIAN,CLM_QIAN_WISO,CLM1PT,CLMCRUNCEP,CLMCRUNCEPv7,CLMGSWP3v1,ELMERA5,ERA56HR,CLMMOSARTTEST,CLMNLDAS2,CPLHIST,CORE_IAF_JRA,IAF_JRA_1p5,CORE_IAF_JRA_1p4_2018,CORE_RYF8485_JRA,CORE_RYF9091_JRA,CORE_RYF0304_JRA,CFSv2,CFSR
CORE2_NYF
run_component_datm
env_run.xml
Mode for data atmosphere component.
CORE2_NYF (CORE2 normal year forcing) are modes used in forcing prognostic ocean/sea-ice components.
- CLM_QIAN, CLMCRUNCEP, CLMCRUNCEPv7, CLMGSWP3v1, CLMMOSARTTEST, CLMNLDAS2 and CLM1PT are modes using observational data for forcing prognostic land components.
+ CLM_QIAN, CLMCRUNCEP, CLMCRUNCEPv7, CLMGSWP3v1, ELMERA5,ERA56HR, CLMMOSARTTEST, CLMNLDAS2 and CLM1PT are modes using observational data for forcing prognostic land components.
WARNING for CLMNLDAS2: This is a regional forcing dataset over the U.S. (25-53N, 235-293E). Garbage data will be produced for runs extending beyond this regional domain.
WARNING for CLMGSWP3v1: Humidity is identically zero for last time step in Dec/2013 and all of 2014 so you should NOT use 2014
data (see cime issue #3653 -- https://github.com/ESMCI/cime/issues/3653).
@@ -68,6 +70,8 @@ data (see cime issue #3653 -- https://github.com/ESMCI/cime/issues/3653).
CLMCRUNCEP
CLMCRUNCEPv7
CLMGSWP3v1
+ ELMERA5
+ ERA56HR
CLMMOSARTTEST
CLMNLDAS2
CLM1PT
@@ -245,6 +249,8 @@ data (see cime issue #3653 -- https://github.com/ESMCI/cime/issues/3653).
$DATM_CLMNCEP_YR_START
$DATM_CLMNCEP_YR_START
$DATM_CLMNCEP_YR_START
+ $DATM_CLMNCEP_YR_START
+ $DATM_CLMNCEP_YR_START
run_component_datm
env_run.xml
@@ -288,6 +294,8 @@ data (see cime issue #3653 -- https://github.com/ESMCI/cime/issues/3653).
2005
2002
1958
+ 1979
+ 1979
run_component_datm
env_run.xml
@@ -332,6 +340,8 @@ data (see cime issue #3653 -- https://github.com/ESMCI/cime/issues/3653).
2003
2016
2020
+ 1979
+ 1979
run_component_datm
env_run.xml
diff --git a/components/data_comps/datm/cime_config/namelist_definition_datm.xml b/components/data_comps/datm/cime_config/namelist_definition_datm.xml
index 10d7111d433..529e79a03f6 100644
--- a/components/data_comps/datm/cime_config/namelist_definition_datm.xml
+++ b/components/data_comps/datm/cime_config/namelist_definition_datm.xml
@@ -36,6 +36,8 @@
CLMCRUNCEP = Run with the CLM CRU NCEP V4 ( default ) forcing valid from 1900 to 2010 (force CLM)
CLMCRUNCEPv7 = Run with the CLM CRU NCEP V7 forcing valid from 1900 to 2010 (force CLM)
CLMGSWP3v1 = Run with the CLM GSWP3 V1 forcing (force CLM)
+ ELMERA5 = Run with the ELM fifth generation ECMWF reanalysis from 1979 to present
+ ERA56HR = Run with the ELM fifth generation ECMWF reanalysis from 1979 to present
CLMMOSARTTEST = Run with the CLM NLDAS data (force CLM) for testing MOSART
CLMNLDAS2 = Run with the CLM NLDAS2 regional forcing valid from 1980 to 2018 (force CLM)
CLM1PT = Run with supplied single point data (force CLM)
@@ -103,6 +105,26 @@
CLMGSWP3v1.Solar
CLMGSWP3v1.Precip
CLMGSWP3v1.TPQW
+
+ ELMERA5.msdrswrf # mean surface direct shortwave radiation flux
+ ELMERA5.msdfswrf # mean surface diffuse shortwave radiation flux
+ ELMERA5.mcpr # mean convective precipitation rate
+ ELMERA5.mlspr # mean large-scale precipitation rate
+ ELMERA5.t2m # temperature at 2 m
+ ELMERA5.sp # surface pressure
+ ELMERA5.d2m # dew point temperature at 2 m
+ ELMERA5.w10 # wind speed at 10 m
+ ELMERA5.msdwlwrf # mean surface downward longwave radiation flux
+
+ ERA56HR.msdrswrf # mean surface direct shortwave radiation flux
+ ERA56HR.msdfswrf # mean surface diffuse shortwave radiation flux
+ ERA56HR.mcpr # mean convective precipitation rate
+ ERA56HR.mlspr # mean large-scale precipitation rate
+ ERA56HR.t2m # temperature at 2 m
+ ERA56HR.sp # surface pressure
+ ERA56HR.d2m # dew point temperature at 2 m
+ ERA56HR.w10 # wind speed at 10 m
+ ERA56HR.msdwlwrf # mean surface downward longwave radiation flux
CLMMOSARTTEST
@@ -202,6 +224,8 @@
CLMCRUNCEP.Solar,CLMCRUNCEP.Precip,CLMCRUNCEP.TPQW
CLMCRUNCEPv7.Solar,CLMCRUNCEPv7.Precip,CLMCRUNCEPv7.TPQW
CLMGSWP3v1.Solar,CLMGSWP3v1.Precip,CLMGSWP3v1.TPQW
+ ELMERA5.msdrswrf,ELMERA5.msdfswrf,ELMERA5.mcpr,ELMERA5.mlspr,ELMERA5.t2m,ELMERA5.sp,ELMERA5.d2m,ELMERA5.w10,ELMERA5.msdwlwrf
+ ERA56HR.msdrswrf,ERA56HR.msdfswrf,ERA56HR.mcpr,ERA56HR.mlspr,ERA56HR.t2m,ERA56HR.sp,ERA56HR.d2m,ERA56HR.w10,ERA56HR.msdwlwrf
CLMMOSARTTEST
CLMNLDAS2.Solar,CLMNLDAS2.Precip,CLMNLDAS2.TPQW
CORE2_NYF.GISS,CORE2_NYF.GXGXS,CORE2_NYF.NCEP
@@ -234,6 +258,8 @@
$DIN_LOC_ROOT_CLMFORC/atm_forcing.datm7.cruncep_qianFill.0.5d.v7.c160715
$DIN_LOC_ROOT/share/domains/domain.clm
$DIN_LOC_ROOT_CLMFORC/atm_forcing.datm7.GSWP3.0.5d.v1.c170516
+ $DIN_LOC_ROOT_CLMFORC/atm_forcing.datm7.ERA.0.25d.v5.c180614
+ $DIN_LOC_ROOT_CLMFORC/atm_forcing.datm7.ERA.6HRLY.0.25d.v5.c180614
$DIN_LOC_ROOT/share/domains/domain.clm
$DIN_LOC_ROOT_CLMFORC/atm_forcing.datm7.cruncep_qianFill.0.5d.V5.c140715
$DIN_LOC_ROOT_CLMFORC/atm_forcing.datm7.GSWP3.0.5d.v1.c170516
@@ -302,6 +328,8 @@
domain.lnd.360x720.130305.nc
domain.lnd.360x720_gswp3.0v1.c170606.nc
domain.lnd.360x720_gswp3.0v1.c170606.nc
+ domain.lnd.era5_721x1440_rdrlat_EC30to60E2r2.221115.nc
+ domain.lnd.era5_721x1440_rdrlat_EC30to60E2r2.221115.nc
domain.lnd.nldas2_0224x0464_c110415.nc
domain.lnd.0.125nldas2_0.125nldas2.190410.nc
nyf.giss.T62.051007.nc
@@ -478,6 +506,24 @@
$DIN_LOC_ROOT_CLMFORC/atm_forcing.datm7.GSWP3.0.5d.v1.c170516/Solar3Hrly
$DIN_LOC_ROOT_CLMFORC/atm_forcing.datm7.GSWP3.0.5d.v1.c170516/Precip3Hrly
$DIN_LOC_ROOT_CLMFORC/atm_forcing.datm7.GSWP3.0.5d.v1.c170516/TPHWL3Hrly
+ $DIN_LOC_ROOT_CLMFORC/atm_forcing.datm7.ERA.0.25d.v5.c180614/swdn
+ $DIN_LOC_ROOT_CLMFORC/atm_forcing.datm7.ERA.0.25d.v5.c180614/swdn
+ $DIN_LOC_ROOT_CLMFORC/atm_forcing.datm7.ERA.0.25d.v5.c180614/prec
+ $DIN_LOC_ROOT_CLMFORC/atm_forcing.datm7.ERA.0.25d.v5.c180614/prec
+ $DIN_LOC_ROOT_CLMFORC/atm_forcing.datm7.ERA.0.25d.v5.c180614/tbot
+ $DIN_LOC_ROOT_CLMFORC/atm_forcing.datm7.ERA.0.25d.v5.c180614/pbot
+ $DIN_LOC_ROOT_CLMFORC/atm_forcing.datm7.ERA.0.25d.v5.c180614/tdew
+ $DIN_LOC_ROOT_CLMFORC/atm_forcing.datm7.ERA.0.25d.v5.c180614/wind
+ $DIN_LOC_ROOT_CLMFORC/atm_forcing.datm7.ERA.0.25d.v5.c180614/lwdn
+ $DIN_LOC_ROOT_CLMFORC/atm_forcing.datm7.ERA.6HRLY.0.25d.v5.c180614/swdn
+ $DIN_LOC_ROOT_CLMFORC/atm_forcing.datm7.ERA.6HRLY.0.25d.v5.c180614/swdn
+ $DIN_LOC_ROOT_CLMFORC/atm_forcing.datm7.ERA.6HRLY.0.25d.v5.c180614/prec
+ $DIN_LOC_ROOT_CLMFORC/atm_forcing.datm7.ERA.6HRLY.0.25d.v5.c180614/prec
+ $DIN_LOC_ROOT_CLMFORC/atm_forcing.datm7.ERA.6HRLY.0.25d.v5.c180614/tbot
+ $DIN_LOC_ROOT_CLMFORC/atm_forcing.datm7.ERA.6HRLY.0.25d.v5.c180614/pbot
+ $DIN_LOC_ROOT_CLMFORC/atm_forcing.datm7.ERA.6HRLY.0.25d.v5.c180614/tdew
+ $DIN_LOC_ROOT_CLMFORC/atm_forcing.datm7.ERA.6HRLY.0.25d.v5.c180614/wind
+ $DIN_LOC_ROOT_CLMFORC/atm_forcing.datm7.ERA.6HRLY.0.25d.v5.c180614/lwdn
$DIN_LOC_ROOT/atm/datm7/NLDAS
$DIN_LOC_ROOT/atm/datm7/atm_forcing.datm7.NLDAS2.0.125d.v1/Solar
$DIN_LOC_ROOT/atm/datm7/atm_forcing.datm7.NLDAS2.0.125d.v1/Precip
@@ -553,6 +599,24 @@
clmforc.GSWP3.c2011.0.5x0.5.Solr.%ym.nc
clmforc.GSWP3.c2011.0.5x0.5.Prec.%ym.nc
clmforc.GSWP3.c2011.0.5x0.5.TPQWL.%ym.nc
+ elmforc.ERA5.c2018.0.25d.msdrswrf.%ym.nc
+ elmforc.ERA5.c2018.0.25d.msdfswrf.%ym.nc
+ elmforc.ERA5.c2018.0.25d.mcpr.%ym.nc
+ elmforc.ERA5.c2018.0.25d.mlspr.%ym.nc
+ elmforc.ERA5.c2018.0.25d.t2m.%ym.nc
+ elmforc.ERA5.c2018.0.25d.sp.%ym.nc
+ elmforc.ERA5.c2018.0.25d.d2m.%ym.nc
+ elmforc.ERA5.c2018.0.25d.w10.%ym.nc
+ elmforc.ERA5.c2018.0.25d.msdwlwrf.%ym.nc
+ elmforc.ERA5.c2018.0.25d.msdrswrf.%ym.nc
+ elmforc.ERA5.c2018.0.25d.msdfswrf.%ym.nc
+ elmforc.ERA5.c2018.0.25d.mcpr.%ym.nc
+ elmforc.ERA5.c2018.0.25d.mlspr.%ym.nc
+ elmforc.ERA5.c2018.0.25d.t2m.%ym.nc
+ elmforc.ERA5.c2018.0.25d.sp.%ym.nc
+ elmforc.ERA5.c2018.0.25d.d2m.%ym.nc
+ elmforc.ERA5.c2018.0.25d.w10.%ym.nc
+ elmforc.ERA5.c2018.0.25d.msdwlwrf.%ym.nc
clmforc.nldas.%ym.nc
ctsmforc.NLDAS2.0.125d.v1.Solr.%ym.nc
ctsmforc.NLDAS2.0.125d.v1.Prec.%ym.nc
@@ -1523,6 +1587,60 @@
PSRF pbot
FLDS lwdn
+
+ msdrswrf swdndr
+
+
+ msdfswrf swdndf
+
+
+ mcpr precc
+
+
+ mlspr precl
+
+
+ t2m tbot
+
+
+ sp pbot
+
+
+ d2m tdew
+
+
+ w10 wind
+
+
+ msdwlwrf lwdn
+
+
+ msdrswrf swdndr
+
+
+ msdfswrf swdndf
+
+
+ mcpr precc
+
+
+ mlspr precl
+
+
+ t2m tbot
+
+
+ sp pbot
+
+
+ d2m tdew
+
+
+ w10 wind
+
+
+ msdwlwrf lwdn
+
TBOT tbot
WIND wind
@@ -1793,6 +1911,8 @@
$DATM_CLMNCEP_YR_ALIGN
$DATM_CLMNCEP_YR_ALIGN
$DATM_CLMNCEP_YR_ALIGN
+ $DATM_CLMNCEP_YR_ALIGN
+ $DATM_CLMNCEP_YR_ALIGN
$DATM_CLMNCEP_YR_ALIGN
$DATM_CLMNCEP_YR_ALIGN
1
@@ -1843,6 +1963,8 @@
$DATM_CLMNCEP_YR_START
$DATM_CLMNCEP_YR_START
$DATM_CLMNCEP_YR_START
+ $DATM_CLMNCEP_YR_START
+ $DATM_CLMNCEP_YR_START
$DATM_CLMNCEP_YR_START
$DATM_CLMNCEP_YR_START
1
@@ -1914,6 +2036,8 @@
$DATM_CLMNCEP_YR_END
$DATM_CLMNCEP_YR_END
$DATM_CLMNCEP_YR_END
+ $DATM_CLMNCEP_YR_END
+ $DATM_CLMNCEP_YR_END
$DATM_CLMNCEP_YR_END
$DATM_CLMNCEP_YR_END
1
@@ -1988,6 +2112,16 @@
900
0
0
+ -3600
+ -3600
+ -60
+ -60
+ -60
+ -21600
+ -21600
+ -60
+ -60
+ -60
@@ -2054,6 +2188,8 @@
NULL
CLMNCEP
+ CLMNCEP
+ CLMNCEP
CORE2_NYF
CORE2_IAF
CORE_IAF_JRA
@@ -2093,7 +2229,9 @@
valid values: 'copy','spval','nn','nnoni','nnonj'
- nn
+ nn
+ copy
+ copy
@@ -2248,6 +2386,16 @@
nearest
coszen
nearest
+ coszen
+ coszen
+ upper
+ linear
+ linear
+ coszen
+ coszen
+ upper
+ linear
+ linear
coszen
nearest
nearest
@@ -2340,6 +2488,25 @@
3.0
3.0
3.0
+ 2.5
+ 2.5
+ 2.5
+ 2.5
+ 2.5
+ 2.5
+ 2.5
+ 2.5
+ 2.5
+ 2.5
+ 2.5
+ 2.5
+ 2.5
+ 2.5
+ 2.5
+ 2.5
+ 2.5
+ 2.5
+
diff --git a/components/data_comps/datm/src/atm_comp_mct.F90 b/components/data_comps/datm/src/atm_comp_mct.F90
index a5f2855ae63..4970ac726d7 100644
--- a/components/data_comps/datm/src/atm_comp_mct.F90
+++ b/components/data_comps/datm/src/atm_comp_mct.F90
@@ -18,6 +18,11 @@ module atm_comp_mct
use datm_shr_mod , only: presaero
use seq_flds_mod , only: seq_flds_a2x_fields, seq_flds_x2a_fields
+#ifdef HAVE_MOAB
+ use seq_comm_mct, only : mphaid ! iMOAB app id for phys atm; comp atm is 5, phys 5+200
+ use iso_c_binding
+ use iMOAB , only: iMOAB_RegisterApplication
+#endif
! !PUBLIC TYPES:
implicit none
private ! except
@@ -80,6 +85,9 @@ subroutine atm_init_mct( EClock, cdata, x2a, a2x, NLFilename )
real(R8) :: orbObliqr ! orb obliquity (radians)
real(R8) :: nextsw_cday ! calendar of next atm sw
+#ifdef HAVE_MOAB
+ integer(IN) :: ATM_PHYS_CID ! used to create a new comp id for phys atm; 200+ compid
+#endif
!--- formats ---
character(*), parameter :: F00 = "('(datm_comp_init) ',8a)"
integer(IN) , parameter :: master_task=0 ! task number of master task
@@ -164,6 +172,18 @@ subroutine atm_init_mct( EClock, cdata, x2a, a2x, NLFilename )
! Initialize datm
!----------------------------------------------------------------------------
+
+#ifdef HAVE_MOAB
+ ATM_PHYS_CID = 200 + compid
+ ierr = iMOAB_RegisterApplication(trim("DATM")//C_NULL_CHAR, mpicom, ATM_PHYS_CID, mphaid)
+ if (ierr .ne. 0) then
+ write(logunit,*) subname,' error in registering data atm comp'
+ call shr_sys_abort(subname//' ERROR in registering data atm comp')
+ endif
+ ! send path of atm domain file to MOAB coupler. Note that here we may have the land domain in some cases?
+ call seq_infodata_PutData( infodata, atm_mesh=SDATM%domainFile)
+#endif
+
call datm_comp_init(Eclock, x2a, a2x, &
seq_flds_x2a_fields, seq_flds_a2x_fields, &
SDATM, gsmap, ggrid, mpicom, compid, my_task, master_task, &
diff --git a/components/data_comps/datm/src/datm_comp_mod.F90 b/components/data_comps/datm/src/datm_comp_mod.F90
index 3ad18c4a238..6f0adeedcd0 100644
--- a/components/data_comps/datm/src/datm_comp_mod.F90
+++ b/components/data_comps/datm/src/datm_comp_mod.F90
@@ -32,6 +32,9 @@ module datm_comp_mod
use datm_shr_mod , only: iradsw ! namelist input
use datm_shr_mod , only: nullstr
+#ifdef HAVE_MOAB
+ use iso_c_binding
+#endif
! !PUBLIC TYPES:
implicit none
@@ -212,6 +215,13 @@ subroutine datm_comp_init(Eclock, x2a, a2x, &
scmMode, scmlat, scmlon, &
orbEccen, orbMvelpp, orbLambm0, orbObliqr, phase, nextsw_cday)
+#ifdef HAVE_MOAB
+ use iMOAB, only: iMOAB_DefineTagStorage, iMOAB_GetDoubleTagStorage, &
+ iMOAB_SetIntTagStorage, iMOAB_SetDoubleTagStorage, &
+ iMOAB_ResolveSharedEntities, iMOAB_CreateVertices, &
+ iMOAB_GetMeshInfo, iMOAB_UpdateMeshInfo, iMOAB_WriteMesh
+ use seq_comm_mct, only : mphaid ! iMOAB app id for phys atm; comp atm is 5, phys 5+200
+#endif
! !DESCRIPTION: initialize data atm model
implicit none
@@ -258,6 +268,19 @@ subroutine datm_comp_init(Eclock, x2a, a2x, &
character(CL) :: calendar ! calendar type
character(CL) :: flds_strm
+#ifdef HAVE_MOAB
+ character*400 tagname
+ real(R8) latv, lonv
+ integer iv, tagindex, ilat, ilon, ierr !, arrsize, nfields
+ real(R8), allocatable, target :: data(:)
+ integer(IN), pointer :: idata(:) ! temporary
+ real(r8), dimension(:), allocatable :: moab_vert_coords ! temporary
+ !real(R8), allocatable, target :: vtags_zero(:, :)
+#ifdef MOABDEBUG
+ character*100 outfile, wopts
+#endif
+#endif
+
!--- formats ---
character(*), parameter :: F00 = "('(datm_comp_init) ',8a)"
character(*), parameter :: F0L = "('(datm_comp_init) ',a, l2)"
@@ -347,6 +370,110 @@ subroutine datm_comp_init(Eclock, x2a, a2x, &
call shr_dmodel_rearrGGrid(SDATM%grid, ggrid, gsmap, rearr, mpicom)
call t_stopf('datm_initmctdom')
+#ifdef HAVE_MOAB
+ ilat = mct_aVect_indexRA(ggrid%data,'lat')
+ ilon = mct_aVect_indexRA(ggrid%data,'lon')
+ allocate(moab_vert_coords(lsize*3))
+ do iv = 1, lsize
+ lonv = ggrid%data%rAttr(ilon, iv) * SHR_CONST_PI/180.
+ latv = ggrid%data%rAttr(ilat, iv) * SHR_CONST_PI/180.
+ moab_vert_coords(3*iv-2)=COS(latv)*COS(lonv)
+ moab_vert_coords(3*iv-1)=COS(latv)*SIN(lonv)
+ moab_vert_coords(3*iv )=SIN(latv)
+ enddo
+
+ ! create the vertices with coordinates from MCT domain
+ ierr = iMOAB_CreateVertices(mphaid, lsize*3, 3, moab_vert_coords)
+ if (ierr .ne. 0) &
+ call shr_sys_abort('Error: fail to create MOAB vertices in land model')
+
+ tagname='GLOBAL_ID'//C_NULL_CHAR
+ ierr = iMOAB_DefineTagStorage(mphaid, tagname, &
+ 0, & ! dense, integer
+ 1, & ! number of components
+ tagindex )
+ if (ierr .ne. 0) &
+ call shr_sys_abort('Error: fail to retrieve GLOBAL_ID tag ')
+
+ ! get list of global IDs for Dofs
+ call mct_gsMap_orderedPoints(gsMap, my_task, idata)
+
+ ierr = iMOAB_SetIntTagStorage ( mphaid, tagname, lsize, &
+ 0, & ! vertex type
+ idata)
+ if (ierr .ne. 0) &
+ call shr_sys_abort('Error: fail to set GLOBAL_ID tag ')
+
+ ierr = iMOAB_ResolveSharedEntities( mphaid, lsize, idata );
+ if (ierr .ne. 0) &
+ call shr_sys_abort('Error: fail to resolve shared entities')
+
+ deallocate(moab_vert_coords)
+ deallocate(idata)
+
+ ierr = iMOAB_UpdateMeshInfo( mphaid )
+ if (ierr .ne. 0) &
+ call shr_sys_abort('Error: fail to update mesh info ')
+
+ allocate(data(lsize))
+ ierr = iMOAB_DefineTagStorage( mphaid, "area:aream:frac:mask"//C_NULL_CHAR, &
+ 1, & ! dense, double
+ 1, & ! number of components
+ tagindex )
+ if (ierr > 0 ) &
+ call shr_sys_abort('Error: fail to create tag: area:aream:frac:mask' )
+
+ data(:) = ggrid%data%rAttr(mct_aVect_indexRA(ggrid%data,'area'),:)
+ tagname='area'//C_NULL_CHAR
+ ierr = iMOAB_SetDoubleTagStorage ( mphaid, tagname, lsize, &
+ 0, & ! set data on vertices
+ data)
+ if (ierr > 0 ) &
+ call shr_sys_abort('Error: fail to get area tag ')
+
+ ! set the same data for aream (model area) as area
+ ! data(:) = ggrid%data%rAttr(mct_aVect_indexRA(ggrid%data,'aream'),:)
+ tagname='aream'//C_NULL_CHAR
+ ierr = iMOAB_SetDoubleTagStorage ( mphaid, tagname, lsize, &
+ 0, & ! set data on vertices
+ data)
+ if (ierr > 0 ) &
+ call shr_sys_abort('Error: fail to set aream tag ')
+
+ data(:) = ggrid%data%rAttr(mct_aVect_indexRA(ggrid%data,'mask'),:)
+ tagname='mask'//C_NULL_CHAR
+ ierr = iMOAB_SetDoubleTagStorage ( mphaid, tagname, lsize, &
+ 0, & ! set data on vertices
+ data)
+ if (ierr > 0 ) &
+ call shr_sys_abort('Error: fail to set mask tag ')
+
+ data(:) = ggrid%data%rAttr(mct_aVect_indexRA(ggrid%data,'frac'),:)
+ tagname='frac'//C_NULL_CHAR
+ ierr = iMOAB_SetDoubleTagStorage ( mphaid, tagname, lsize, &
+ 0, & ! set data on vertices
+ data)
+ if (ierr > 0 ) &
+ call shr_sys_abort('Error: fail to set frac tag ')
+
+ deallocate(data)
+
+ ! define tags
+ ierr = iMOAB_DefineTagStorage( mphaid, trim(seq_flds_x2a_fields)//C_NULL_CHAR, &
+ 1, & ! dense, double
+ 1, & ! number of components
+ tagindex )
+ if (ierr > 0 ) &
+ call shr_sys_abort('Error: fail to create seq_flds_x2a_fields tags ')
+
+ ierr = iMOAB_DefineTagStorage( mphaid, trim(seq_flds_a2x_fields)//C_NULL_CHAR, &
+ 1, & ! dense, double
+ 1, & ! number of components
+ tagindex )
+ if (ierr > 0 ) &
+ call shr_sys_abort('Error: fail to create seq_flds_a2x_fields tags ')
+
+#endif
!----------------------------------------------------------------------------
! Initialize MCT attribute vectors
!----------------------------------------------------------------------------
@@ -479,6 +606,24 @@ subroutine datm_comp_init(Eclock, x2a, a2x, &
yc(:) = ggrid%data%rAttr(klat,:)
call t_stopf('datm_initmctavs')
+#ifdef HAVE_MOAB
+ ierr = iMOAB_DefineTagStorage( mphaid, trim(flds_strm)//C_NULL_CHAR, &
+ 1, & ! dense, double
+ 1, & ! number of components
+ tagindex )
+ if (ierr > 0 ) &
+ call shr_sys_abort('Error: fail to create flds_strm tags ')
+#ifdef MOABDEBUG
+ ! debug test
+ outfile = 'AtmDataMesh.h5m'//C_NULL_CHAR
+ wopts = ';PARALLEL=WRITE_PART'//C_NULL_CHAR !
+ ! write out the mesh file to disk
+ ierr = iMOAB_WriteMesh(mphaid, trim(outfile), trim(wopts))
+ if (ierr .ne. 0) then
+ call shr_sys_abort(subname//' ERROR in writing data mesh atm ')
+ endif
+#endif
+#endif
!----------------------------------------------------------------------------
! Read restart
@@ -580,7 +725,14 @@ subroutine datm_comp_run(EClock, x2a, a2x, &
nextsw_cday, case_name)
! !DESCRIPTION: run method for datm model
-
+#ifdef HAVE_MOAB
+ use seq_flds_mod , only: seq_flds_a2x_fields ! this should not be an argument in datm_comp_init
+ use seq_comm_mct, only : mphaid !
+ use seq_flds_mod, only: moab_set_tag_from_av
+#ifdef MOABDEBUG
+ use iMOAB, only: iMOAB_WriteMesh
+#endif
+#endif
implicit none
! !INPUT/OUTPUT PARAMETERS:
@@ -627,7 +779,18 @@ subroutine datm_comp_run(EClock, x2a, a2x, &
!--- temporaries
real(R8) :: uprime,vprime,swndr,swndf,swvdr,swvdf,ratio_rvrf
real(R8) :: tbot,pbot,rtmp,vp,ea,e,qsat,frac
+#ifdef HAVE_MOAB
+ real(R8), allocatable, target :: datam(:)
+ type(mct_list) :: temp_list
+ integer :: size_list, index_list
+ type(mct_string) :: mctOStr !
+ character*400 tagname, mct_field
+#ifdef MOABDEBUG
+ integer :: cur_datm_stepno, ierr
+ character*100 outfile, wopts, lnum
+#endif
+#endif
character(*), parameter :: F00 = "('(datm_comp_run) ',8a)"
character(*), parameter :: F04 = "('(datm_comp_run) ',2a,2i8,'s')"
character(*), parameter :: subName = "(datm_comp_run) "
@@ -675,6 +838,8 @@ subroutine datm_comp_run(EClock, x2a, a2x, &
allocate(count_av(SDATM%nstreams))
allocate(count_st(SDATM%nstreams))
end if
+
+
do n = 1,SDATM%nstreams
if (firstcall) then
call shr_dmodel_translate_list(SDATM%avs(n),a2x,&
@@ -685,6 +850,7 @@ subroutine datm_comp_run(EClock, x2a, a2x, &
ilist_av(n),olist_av(n),rearr)
end if
enddo
+
do n = 1,SDATM%nstreams
if (firstcall) then
call shr_dmodel_translate_list(SDATM%avs(n),avstrm,&
@@ -696,7 +862,6 @@ subroutine datm_comp_run(EClock, x2a, a2x, &
end if
enddo
call t_stopf('datm_scatter')
-
!-------------------------------------------------
! Determine data model behavior based on the mode
!-------------------------------------------------
@@ -1110,7 +1275,6 @@ subroutine datm_comp_run(EClock, x2a, a2x, &
!----------------------------------------------------------
! bias correction / anomaly forcing ( end block )
!----------------------------------------------------------
-
!--------------------
! Write restart
!--------------------
@@ -1145,6 +1309,33 @@ subroutine datm_comp_run(EClock, x2a, a2x, &
! Reset shr logging to original values
!----------------------------------------------------------------------------
+#ifdef HAVE_MOAB
+ lsize = mct_avect_lsize(a2x) ! is it the same as mct_avect_lsize(avstrm) ?
+ allocate(datam(lsize)) !
+ call mct_list_init(temp_list ,seq_flds_a2x_fields)
+ size_list=mct_list_nitem (temp_list)
+ do index_list = 1, size_list
+ call mct_list_get(mctOStr,index_list,temp_list)
+ mct_field = mct_string_toChar(mctOStr)
+ tagname= trim(mct_field)//C_NULL_CHAR
+ call moab_set_tag_from_av(tagname, a2x, index_list, mphaid, datam, lsize) ! loop over all a2x fields, not just a few
+ enddo
+ call mct_list_clean(temp_list)
+ deallocate(datam) ! maybe we should keep it around, deallocate at the final only?
+
+#ifdef MOABDEBUG
+ call seq_timemgr_EClockGetData( EClock, stepno=cur_datm_stepno )
+ write(lnum,"(I0.2)")cur_datm_stepno
+ outfile = 'datm_comp_run_'//trim(lnum)//'.h5m'//C_NULL_CHAR
+ wopts = 'PARALLEL=WRITE_PART'//C_NULL_CHAR
+ ierr = iMOAB_WriteMesh(mphaid, outfile, wopts)
+ if (ierr > 0 ) then
+ write(logunit,*) 'Failed to write data atm component state '
+ endif
+#endif
+
+#endif
+
call t_startf('datm_run2')
if (my_task == master_task) then
write(logunit,F04) trim(myModelName),': model date ', CurrentYMD,CurrentTOD
diff --git a/components/data_comps/docn/src/docn_comp_mod.F90 b/components/data_comps/docn/src/docn_comp_mod.F90
index 03fc4a3459a..e692882c9db 100644
--- a/components/data_comps/docn/src/docn_comp_mod.F90
+++ b/components/data_comps/docn/src/docn_comp_mod.F90
@@ -120,13 +120,11 @@ subroutine docn_comp_init(Eclock, x2o, o2x, &
scmMode, scm_multcols, scmlat, scmlon, scm_nx, scm_ny)
! !DESCRIPTION: initialize docn model
- use mct_mod
use pio , only : iosystem_desc_t
use shr_pio_mod, only : shr_pio_getiosys, shr_pio_getiotype
#ifdef HAVE_MOAB
#include "moab/MOABConfig.h"
- use iMOAB, only: iMOAB_RegisterApplication, iMOAB_LoadMesh, &
- iMOAB_DefineTagStorage, iMOAB_GetDoubleTagStorage, &
+ use iMOAB, only: iMOAB_DefineTagStorage, iMOAB_GetDoubleTagStorage, &
iMOAB_SetIntTagStorage, iMOAB_SetDoubleTagStorage, &
iMOAB_ResolveSharedEntities, iMOAB_CreateVertices, &
iMOAB_GetMeshInfo, iMOAB_UpdateMeshInfo
@@ -171,13 +169,12 @@ subroutine docn_comp_init(Eclock, x2o, o2x, &
type(iosystem_desc_t), pointer :: ocn_pio_subsystem
#ifdef HAVE_MOAB
- character*100 tagname
+ character*400 tagname
real(R8) latv, lonv
integer iv, tagindex
real(R8), allocatable, target :: data(:)
integer(IN), pointer :: idata(:) ! temporary
real(r8), dimension(:), allocatable :: moab_vert_coords ! temporary
- integer :: mpigrp ! mpigrp
#endif
!--- formats ---
@@ -522,35 +519,6 @@ subroutine docn_comp_init(Eclock, x2o, o2x, &
end subroutine docn_comp_init
-#ifdef HAVE_MOAB
- !===============================================================================
-
- subroutine moab_init_tag(tagname, avx, index, dataarr)
-
- ! !DESCRIPTION: run method for docn model
- use iMOAB, only: iMOAB_SetDoubleTagStorage, &
- iMOAB_SetDoubleTagStorageWithGid
- implicit none
-
- integer :: ierr, n, lsize, tagindex
- character(len=*), intent(in) :: tagname
- type(mct_aVect), intent(in) :: avx
- integer, intent(in) :: index
- real(R8), intent(inout) :: dataarr(:)
-
- lsize = mct_avect_lsize(avx)
- !write(*,* ) "Setting data for tag: ", tagname, " with size = ", lsize
- dataarr(:) = avx%rAttr(index, :)
- ierr = iMOAB_SetDoubleTagStorage ( mpoid, tagname, lsize, &
- 0, & ! data on vertices
- dataarr )
- if (ierr > 0 ) &
- call errorout(ierr, 'Error: fail to set tag values for ' // tagname )
-
- end subroutine moab_init_tag
-
-#endif
-
subroutine docn_comp_run(EClock, x2o, o2x, &
SDOCN, gsmap, ggrid, mpicom, compid, my_task, master_task, &
inst_suffix, logunit, read_restart, write_restart, &
@@ -561,6 +529,7 @@ subroutine docn_comp_run(EClock, x2o, o2x, &
use iMOAB, only: iMOAB_GetMeshInfo, &
iMOAB_SetDoubleTagStorage, &
iMOAB_WriteMesh
+ use seq_flds_mod, only: moab_set_tag_from_av
#endif
implicit none
@@ -845,63 +814,45 @@ subroutine docn_comp_run(EClock, x2o, o2x, &
! set dense double tags on vertices of the temporary DOCN app
! first set o2x data
- call moab_init_tag( 'So_t'//C_NULL_CHAR, o2x, &
- kt, data)
+ call moab_set_tag_from_av('So_t'//C_NULL_CHAR, o2x, kt, mpoid, data, lsize)
- call moab_init_tag( 'So_s'//C_NULL_CHAR, o2x, &
- ks, data)
+ call moab_set_tag_from_av('So_s'//C_NULL_CHAR, o2x, ks, mpoid, data, lsize)
- call moab_init_tag( 'So_u'//C_NULL_CHAR, o2x, &
- ku, data)
+ call moab_set_tag_from_av( 'So_u'//C_NULL_CHAR, o2x, ku, mpoid, data, lsize)
- call moab_init_tag( 'So_v'//C_NULL_CHAR, o2x, &
- kv, data)
+ call moab_set_tag_from_av( 'So_v'//C_NULL_CHAR, o2x, kv, mpoid, data, lsize)
- call moab_init_tag( 'So_dhdx'//C_NULL_CHAR, o2x, &
- kdhdx, data)
+ call moab_set_tag_from_av( 'So_dhdx'//C_NULL_CHAR, o2x, kdhdx, mpoid, data, lsize)
- call moab_init_tag( 'So_dhdy'//C_NULL_CHAR, o2x, &
- kdhdy, data)
+ call moab_set_tag_from_av( 'So_dhdy'//C_NULL_CHAR, o2x, kdhdy, mpoid, data, lsize)
- call moab_init_tag( 'Fioo_q'//C_NULL_CHAR, o2x, &
- kq, data)
+ call moab_set_tag_from_av( 'Fioo_q'//C_NULL_CHAR, o2x, kq, mpoid, data, lsize)
if (kswp /= 0) then
- call moab_init_tag( 'So_fswpen'//C_NULL_CHAR, o2x, &
- kswp, data)
+ call moab_set_tag_from_av( 'So_fswpen'//C_NULL_CHAR, o2x, kswp, mpoid, data, lsize)
endif
! next set x2o data
- call moab_init_tag( 'Foxx_swnet'//C_NULL_CHAR, x2o, &
- kswnet, data)
+ call moab_set_tag_from_av( 'Foxx_swnet'//C_NULL_CHAR, x2o, kswnet, mpoid, data, lsize)
- call moab_init_tag( 'Foxx_lwup'//C_NULL_CHAR, x2o, &
- klwup, data)
+ call moab_set_tag_from_av( 'Foxx_lwup'//C_NULL_CHAR, x2o, klwup, mpoid, data, lsize)
- call moab_init_tag( 'Foxx_sen'//C_NULL_CHAR, x2o, &
- ksen, data)
+ call moab_set_tag_from_av( 'Foxx_sen'//C_NULL_CHAR, x2o, ksen, mpoid, data, lsize)
- call moab_init_tag( 'Foxx_lat'//C_NULL_CHAR, x2o, &
- klat, data)
+ call moab_set_tag_from_av( 'Foxx_lat'//C_NULL_CHAR, x2o, klat, mpoid, data, lsize)
- call moab_init_tag( 'Foxx_rofi'//C_NULL_CHAR, x2o, &
- krofi, data)
+ call moab_set_tag_from_av( 'Foxx_rofi'//C_NULL_CHAR, x2o, krofi, mpoid, data, lsize)
- call moab_init_tag( 'Faxa_lwdn'//C_NULL_CHAR, x2o, &
- klwdn, data)
+ call moab_set_tag_from_av( 'Faxa_lwdn'//C_NULL_CHAR, x2o, klwdn, mpoid, data, lsize)
- call moab_init_tag( 'Faxa_snow'//C_NULL_CHAR, x2o, &
- ksnow, data)
+ call moab_set_tag_from_av( 'Faxa_snow'//C_NULL_CHAR, x2o, ksnow, mpoid, data, lsize)
- call moab_init_tag( 'Fioi_melth'//C_NULL_CHAR, x2o, &
- kmelth, data)
+ call moab_set_tag_from_av( 'Fioi_melth'//C_NULL_CHAR, x2o, kmelth, mpoid, data, lsize)
! next set avstrm data
- call moab_init_tag( 'strm_h'//C_NULL_CHAR, avstrm, &
- kh, data)
+ call moab_set_tag_from_av( 'strm_h'//C_NULL_CHAR, avstrm, kh, mpoid, data, lsize)
- call moab_init_tag( 'strm_qbot'//C_NULL_CHAR, avstrm, &
- kqbot, data)
+ call moab_set_tag_from_av( 'strm_qbot'//C_NULL_CHAR, avstrm, kqbot, mpoid, data, lsize)
#ifdef MOABDEBUG
diff --git a/components/data_comps/docn/src/ocn_comp_mct.F90 b/components/data_comps/docn/src/ocn_comp_mct.F90
index d3d237d1adf..6b029981438 100644
--- a/components/data_comps/docn/src/ocn_comp_mct.F90
+++ b/components/data_comps/docn/src/ocn_comp_mct.F90
@@ -169,8 +169,8 @@ subroutine ocn_init_mct( EClock, cdata, x2o, o2x, NLFilename )
#ifdef HAVE_MOAB
ierr = iMOAB_RegisterApplication(trim("DOCN")//C_NULL_CHAR, mpicom, compid, mpoid)
if (ierr .ne. 0) then
- write(logunit,*) subname,' error in registering atm ocn intx'
- call shr_sys_abort(subname//' ERROR in registering atm ocn intx')
+ write(logunit,*) subname,' error in registering data ocn comp'
+ call shr_sys_abort(subname//' ERROR in registering data ocn comp')
endif
! send path of ocean domain file to MOAB coupler.
call seq_infodata_PutData( infodata, ocn_domain=SDOCN%domainFile)
diff --git a/components/data_comps/drof/cime_config/namelist_definition_drof.xml b/components/data_comps/drof/cime_config/namelist_definition_drof.xml
index 369e2396518..c4139552c70 100644
--- a/components/data_comps/drof/cime_config/namelist_definition_drof.xml
+++ b/components/data_comps/drof/cime_config/namelist_definition_drof.xml
@@ -205,10 +205,10 @@
RAF_9091.JRA.v1.3.runoff.180404.nc
RAF_0304.JRA.v1.3.runoff.180404.nc
- JRA.v1.5.runoff.%y.no_rofi_no_rofl.210505.nc
+ JRA.v1.5.runoff.%y.no_rofi_no_rofl.240411.nc
- JRA.v1.5.runoff.%y.210505.nc
+ JRA.v1.5.runoff.%y.240411.nc
JRA.v1.4.runoff.%y.no_rofi.190214.nc
diff --git a/components/eam/bld/namelist_files/namelist_defaults_eam.xml b/components/eam/bld/namelist_files/namelist_defaults_eam.xml
index 56c816b1753..cfd9bf682c8 100755
--- a/components/eam/bld/namelist_files/namelist_defaults_eam.xml
+++ b/components/eam/bld/namelist_files/namelist_defaults_eam.xml
@@ -917,6 +917,7 @@
1.0D0
.false.
100.D6
+ 200.D6
0.1D6
-999.
-999.
diff --git a/components/eam/bld/namelist_files/namelist_definition.xml b/components/eam/bld/namelist_files/namelist_definition.xml
index 19e356ca6cc..b3ecb5e9290 100644
--- a/components/eam/bld/namelist_files/namelist_definition.xml
+++ b/components/eam/bld/namelist_files/namelist_definition.xml
@@ -4726,7 +4726,9 @@ Default: FALSE
-Turn off microphysics computation.
+Turn off microphysics computation for MG2. For P3 this disables the generation of
+liquid precipitation via autoconversion only, to be used for idealized simulations of
+warm phase boundary layer clouds.
Default: FALSE
|
|
diff --git a/components/eam/bld/namelist_files/use_cases/SSP245_eam_CMIP6_chemUCI-Linoz-mam5-vbs.xml b/components/eam/bld/namelist_files/use_cases/SSP245_eam_CMIP6_chemUCI-Linoz-mam5-vbs.xml
new file mode 100644
index 00000000000..120fb939165
--- /dev/null
+++ b/components/eam/bld/namelist_files/use_cases/SSP245_eam_CMIP6_chemUCI-Linoz-mam5-vbs.xml
@@ -0,0 +1,107 @@
+
+
+
+
+.true.
+
+
+atm/cam/solar/Solar_1850-2299_input4MIPS_c20181106.nc
+SERIAL
+
+
+atm/cam/ggas/GHG_CMIP_SSP245-1-2-1_Annual_Global_2015-2500_c20200807.nc
+RAMPED
+
+
+.true.
+.true.
+.true.
+
+
+INTERP_MISSING_MONTHS
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP245_ne30/emissions-cmip6_ssp245_e3sm_NO2_aircraft_vertical_2015-2100_1.9x2.5_c20240219.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP245_ne30/cmip6_ssp245_mam4_so2_volc_elev_2015-2100_c240331.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP245_ne30/emissions-cmip6_ssp245_e3sm_SOAG0_elev_2015-2100_1.9x2.5_c20240219.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP245_ne30/cmip6_ssp245_mam4_bc_a4_elev_2015-2100_c200716.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP245_ne30/cmip6_ssp245_mam4_num_a1_elev_2015-2100_c200716.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP245_ne30/cmip6_ssp245_mam4_num_a2_elev_2015-2100_c200716.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP245_ne30/cmip6_ssp245_mam4_num_a4_elev_2015-2100_c200716.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP245_ne30/cmip6_ssp245_mam4_pom_a4_elev_2015-2100_c200716.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP245_ne30/cmip6_ssp245_mam4_so4_a1_elev_2015-2100_c200716.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP245_ne30/cmip6_ssp245_mam4_so4_a2_elev_2015-2100_c200716.nc
+
+
+INTERP_MISSING_MONTHS
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP245_ne30/emissions-cmip6_ssp245_e3sm_C2H4_surface_2015-2100_1.9x2.5_c20240219.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP245_ne30/emissions-cmip6_ssp245_e3sm_C2H6_surface_2015-2100_1.9x2.5_c20240219.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP245_ne30/emissions-cmip6_ssp245_e3sm_C3H8_surface_2015-2100_1.9x2.5_c20240219.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP245_ne30/emissions-cmip6_ssp245_e3sm_CH2O_surface_2015-2100_1.9x2.5_c20240219.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP245_ne30/emissions-cmip6_ssp245_e3sm_CH3CHO_surface_2015-2100_1.9x2.5_c20240219.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP245_ne30/emissions-cmip6_ssp245_e3sm_CH3COCH3_surface_2015-2100_1.9x2.5_c20240219.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP245_ne30/emissions-cmip6_ssp245_e3sm_CO_surface_2015-2100_1.9x2.5_c20240219.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP245_ne30/emissions-cmip6_ssp245_e3sm_ISOP_surface_2015-2100_1.9x2.5_c20240219.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP245_ne30/emissions-cmip6_ssp245_e3sm_ISOP_surface_2015-2100_1.9x2.5_c20240219.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP245_ne30/emissions-cmip6_ssp245_e3sm_MTERP_surface_2015-2100_1.9x2.5_c20240219.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP245_ne30/emissions-cmip6_ssp245_e3sm_NO_surface_2015-2100_1.9x2.5_c20240219.nc
+atm/cam/chem/trop_mozart_aero/emis/DMSflux.1850-2100.1deg_latlon_conserv.POPmonthlyClimFromACES4BGC_c20160727.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP245_ne30/cmip6_ssp245_mam4_so2_surf_2015-2100_c200716.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP245_ne30/emissions-cmip6_ssp245_e3sm_SOAG0_surf_2015-2100_1.9x2.5_c20240219.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP245_ne30/cmip6_ssp245_mam4_bc_a4_surf_2015-2100_c200716.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP245_ne30/cmip6_ssp245_mam4_num_a1_surf_2015-2100_c200716.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP245_ne30/cmip6_ssp245_mam4_num_a2_surf_2015-2100_c200716.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP245_ne30/cmip6_ssp245_mam4_num_a4_surf_2015-2100_c200716.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP245_ne30/cmip6_ssp245_mam4_pom_a4_surf_2015-2100_c200716.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP245_ne30/cmip6_ssp245_mam4_so4_a1_surf_2015-2100_c200716.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP245_ne30/cmip6_ssp245_mam4_so4_a2_surf_2015-2100_c200716.nc
+atm/cam/chem/trop_mozart/ub/emissions_E90_surface_1750-2101_1.9x2.5_c20231222.nc
+
+
+
+
+INTERP_MISSING_MONTHS
+atm/cam/chem/trop_mozart_aero/oxid
+oxid_SSP245_1.9x2.5_L70_1849-2101_c20240228.nc
+'prsd_O3:O3','prsd_NO3:NO3','prsd_OH:OH'
+''
+
+
+
+ 'A:H2OLNZ:H2O', 'N:O2:O2', 'N:CO2:CO2',
+ 'A:O3:O3', 'A:N2OLNZ:N2O', 'A:CH4LNZ:CH4',
+ 'N:CFC11:CFC11', 'N:CFC12:CFC12',
+ 'M:mam5_mode1:$INPUTDATA_ROOT/atm/cam/physprops/mam4_mode1_rrtmg_aeronetdust_c141106.nc',
+ 'M:mam5_mode2:$INPUTDATA_ROOT/atm/cam/physprops/mam4_mode2_rrtmg_c130628.nc',
+ 'M:mam5_mode3:$INPUTDATA_ROOT/atm/cam/physprops/mam4_mode3_rrtmg_aeronetdust_c141106.nc',
+ 'M:mam5_mode4:$INPUTDATA_ROOT/atm/cam/physprops/mam4_mode4_rrtmg_c130628.nc',
+ 'M:mam5_mode5:$INPUTDATA_ROOT/atm/cam/physprops/mam5_mode5_rrtmg_sig1.2_dgnl.40_c03072023.nc'
+
+
+
+3
+1
+'atm/cam/chem/trop_mam/marine_BGC/'
+'CYCLICAL'
+'monthly_macromolecules_0.1deg_bilinear_latlon_year01_merge_date.nc'
+0
+0
+'chla:CHL1','mpoly:TRUEPOLYC','mprot:TRUEPROTC','mlip:TRUELIPC'
+
+
+atm/cam/chem/trop_mozart/ub/Linoz_Chlorine_Loading_CMIP6_Hist_SSP245_0003-2503_c20200808.nc
+SERIAL
+linv3_1849-2101_CMIP6_Hist_SSP245_10deg_58km_c20230705.nc
+atm/cam/chem/trop_mozart/ub
+INTERP_MISSING_MONTHS
+
+
+'xactive_lnd'
+'O3','H2O2','CH2O','CH3OOH','NO','NO2','HNO3','HO2NO2','PAN','CO','CH3COCH3','C2H5OOH','CH3CHO','H2SO4','SO2','NO3','N2O5','SOAG0','SOAG15','SOAG24','SOAG35','SOAG34','SOAG33','SOAG32','SOAG31'
+'NEU'
+'C2H5OOH','CH2O','CH3CHO','CH3OOH','H2O2','H2SO4','HNO3','HO2NO2','SO2','SOAG0','SOAG15','SOAG24','SOAG35','SOAG34','SOAG33','SOAG32','SOAG31'
+'CH2O', 'CH3O2', 'CH3OOH', 'PAN', 'CO', 'C2H6', 'C3H8', 'C2H4', 'ROHO2', 'CH3COCH3', 'C2H5O2', 'C2H5OOH', 'CH3CHO', 'CH3CO3', 'ISOP', 'ISOPO2', 'MVKMACR', 'MVKO2'
+''
+
+
+2015-2100
+
+
diff --git a/components/eam/bld/namelist_files/use_cases/SSP370_eam_CMIP6.xml b/components/eam/bld/namelist_files/use_cases/SSP370_eam_CMIP6.xml
old mode 100755
new mode 100644
diff --git a/components/eam/bld/namelist_files/use_cases/SSP370_eam_CMIP6_chemUCI-Linoz-mam5-vbs.xml b/components/eam/bld/namelist_files/use_cases/SSP370_eam_CMIP6_chemUCI-Linoz-mam5-vbs.xml
old mode 100755
new mode 100644
index 60912c54419..e15be0889fd
--- a/components/eam/bld/namelist_files/use_cases/SSP370_eam_CMIP6_chemUCI-Linoz-mam5-vbs.xml
+++ b/components/eam/bld/namelist_files/use_cases/SSP370_eam_CMIP6_chemUCI-Linoz-mam5-vbs.xml
@@ -12,13 +12,6 @@
atm/cam/ggas/GHG_CMIP_SSP370-1-2-1_Annual_Global_2015-2500_c20210509.nc
RAMPED
-
-atm/cam/volc
-CMIP_DOE-ACME_radiation_average_1850-2014_v3_c20171204.nc
-VOLC_CMIP6
-CYCLICAL
-1
-
.true.
.true.
@@ -26,8 +19,9 @@
INTERP_MISSING_MONTHS
-atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/cmip6_ssp370_mam4_so2_elev_2015-2100_c210216.nc
-atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/cmip6_ssp370_mam4_soag_elev_2015-2100_c210216.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/emissions-cmip6_ssp370_e3sm_NO2_aircraft_vertical_2015-2100_1.9x2.5_c20240208.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/cmip6_ssp370_mam4_so2_volc_elev_2015-2100_c240331.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/emissions-cmip6_ssp370_e3sm_SOAG0_elev_2015-2100_1.9x2.5_c20240208.nc
atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/cmip6_ssp370_mam4_bc_a4_elev_2015-2100_c210216.nc
atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/cmip6_ssp370_mam4_num_a1_elev_2015-2100_c210216.nc
atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/cmip6_ssp370_mam4_num_a2_elev_2015-2100_c210216.nc
@@ -38,8 +32,20 @@
INTERP_MISSING_MONTHS
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/emissions-cmip6_ssp370_e3sm_C2H4_surface_2015-2100_1.9x2.5_c20240208.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/emissions-cmip6_ssp370_e3sm_C2H6_surface_2015-2100_1.9x2.5_c20240208.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/emissions-cmip6_ssp370_e3sm_C3H8_surface_2015-2100_1.9x2.5_c20240208.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/emissions-cmip6_ssp370_e3sm_CH2O_surface_2015-2100_1.9x2.5_c20240208.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/emissions-cmip6_ssp370_e3sm_CH3CHO_surface_2015-2100_1.9x2.5_c20240208.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/emissions-cmip6_ssp370_e3sm_CH3COCH3_surface_2015-2100_1.9x2.5_c20240208.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/emissions-cmip6_ssp370_e3sm_CO_surface_2015-2100_1.9x2.5_c20240208.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/emissions-cmip6_ssp370_e3sm_ISOP_surface_2015-2100_1.9x2.5_c20240208.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/emissions-cmip6_ssp370_e3sm_ISOP_surface_2015-2100_1.9x2.5_c20240208.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/emissions-cmip6_ssp370_e3sm_MTERP_surface_2015-2100_1.9x2.5_c20240208.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/emissions-cmip6_ssp370_e3sm_NO_surface_2015-2100_1.9x2.5_c20240208.nc
atm/cam/chem/trop_mozart_aero/emis/DMSflux.1850-2100.1deg_latlon_conserv.POPmonthlyClimFromACES4BGC_c20160727.nc
atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/cmip6_ssp370_mam4_so2_surf_2015-2100_c210216.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/emissions-cmip6_ssp370_e3sm_SOAG0_surf_2015-2100_1.9x2.5_c20240208.nc
atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/cmip6_ssp370_mam4_bc_a4_surf_2015-2100_c210216.nc
atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/cmip6_ssp370_mam4_num_a1_surf_2015-2100_c210216.nc
atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/cmip6_ssp370_mam4_num_a2_surf_2015-2100_c210216.nc
@@ -47,14 +53,28 @@
atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/cmip6_ssp370_mam4_pom_a4_surf_2015-2100_c210216.nc
atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/cmip6_ssp370_mam4_so4_a1_surf_2015-2100_c210216.nc
atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/cmip6_ssp370_mam4_so4_a2_surf_2015-2100_c210216.nc
+atm/cam/chem/trop_mozart/ub/emissions_E90_surface_1750-2101_1.9x2.5_c20231222.nc
+
+
INTERP_MISSING_MONTHS
atm/cam/chem/trop_mozart_aero/oxid
-oxid_SSP370_1.9x2.5_L70_2015-2100_c20211006.nc
+oxid_SSP370_1.9x2.5_L70_1849-2101_c20240228.nc
+'prsd_O3:O3','prsd_NO3:NO3','prsd_OH:OH'
''
-
+
+
+ 'A:H2OLNZ:H2O', 'N:O2:O2', 'N:CO2:CO2',
+ 'A:O3:O3', 'A:N2OLNZ:N2O', 'A:CH4LNZ:CH4',
+ 'N:CFC11:CFC11', 'N:CFC12:CFC12',
+ 'M:mam5_mode1:$INPUTDATA_ROOT/atm/cam/physprops/mam4_mode1_rrtmg_aeronetdust_c141106.nc',
+ 'M:mam5_mode2:$INPUTDATA_ROOT/atm/cam/physprops/mam4_mode2_rrtmg_c130628.nc',
+ 'M:mam5_mode3:$INPUTDATA_ROOT/atm/cam/physprops/mam4_mode3_rrtmg_aeronetdust_c141106.nc',
+ 'M:mam5_mode4:$INPUTDATA_ROOT/atm/cam/physprops/mam4_mode4_rrtmg_c130628.nc',
+ 'M:mam5_mode5:$INPUTDATA_ROOT/atm/cam/physprops/mam5_mode5_rrtmg_sig1.2_dgnl.40_c03072023.nc'
+
3
@@ -74,7 +94,12 @@
INTERP_MISSING_MONTHS
-'H2O2', 'H2SO4', 'SO2'
+'xactive_lnd'
+'O3','H2O2','CH2O','CH3OOH','NO','NO2','HNO3','HO2NO2','PAN','CO','CH3COCH3','C2H5OOH','CH3CHO','H2SO4','SO2','NO3','N2O5','SOAG0','SOAG15','SOAG24','SOAG35','SOAG34','SOAG33','SOAG32','SOAG31'
+'NEU'
+'C2H5OOH','CH2O','CH3CHO','CH3OOH','H2O2','H2SO4','HNO3','HO2NO2','SO2','SOAG0','SOAG15','SOAG24','SOAG35','SOAG34','SOAG33','SOAG32','SOAG31'
+'CH2O', 'CH3O2', 'CH3OOH', 'PAN', 'CO', 'C2H6', 'C3H8', 'C2H4', 'ROHO2', 'CH3COCH3', 'C2H5O2', 'C2H5OOH', 'CH3CHO', 'CH3CO3', 'ISOP', 'ISOPO2', 'MVKMACR', 'MVKO2'
+''
2015-2100
diff --git a/components/eam/bld/namelist_files/use_cases/SSP585_eam_CMIP6.xml b/components/eam/bld/namelist_files/use_cases/SSP585_eam_CMIP6.xml
old mode 100755
new mode 100644
diff --git a/components/eam/bld/namelist_files/use_cases/SSP585_eam_CMIP6_chemUCI-Linoz-mam5-vbs.xml b/components/eam/bld/namelist_files/use_cases/SSP585_eam_CMIP6_chemUCI-Linoz-mam5-vbs.xml
old mode 100755
new mode 100644
index 98e2dcf7604..f9c45623d5a
--- a/components/eam/bld/namelist_files/use_cases/SSP585_eam_CMIP6_chemUCI-Linoz-mam5-vbs.xml
+++ b/components/eam/bld/namelist_files/use_cases/SSP585_eam_CMIP6_chemUCI-Linoz-mam5-vbs.xml
@@ -12,13 +12,6 @@
atm/cam/ggas/GHG_CMIP_SSP585-1-2-1_Annual_Global_2015-2500_c20190310.nc
RAMPED
-
-atm/cam/volc
-CMIP_DOE-ACME_radiation_average_1850-2014_v3_c20171204.nc
-VOLC_CMIP6
-CYCLICAL
-1
-
.true.
.true.
@@ -26,8 +19,9 @@
INTERP_MISSING_MONTHS
-atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP585_ne30/cmip6_ssp585_mam4_so2_elev_2015-2100_c190828.nc
-atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP585_ne30/cmip6_ssp585_mam4_soag_elev_2015-2100_c190828.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP585_ne30/emissions-cmip6_ssp585_e3sm_NO2_aircraft_vertical_2015-2100_1.9x2.5_c20240304.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP585_ne30/cmip6_ssp585_mam4_so2_volc_elev_2015-2100_c240331.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP585_ne30/emissions-cmip6_ssp585_e3sm_SOAG0_elev_2015-2100_1.9x2.5_c20240304.nc
atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP585_ne30/cmip6_ssp585_mam4_bc_a4_elev_2015-2100_c190828.nc
atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP585_ne30/cmip6_ssp585_mam4_num_a1_elev_2015-2100_c190828.nc
atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP585_ne30/cmip6_ssp585_mam4_num_a2_elev_2015-2100_c190828.nc
@@ -38,8 +32,20 @@
INTERP_MISSING_MONTHS
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP585_ne30/emissions-cmip6_ssp585_e3sm_C2H4_surface_2015-2100_1.9x2.5_c20240304.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP585_ne30/emissions-cmip6_ssp585_e3sm_C2H6_surface_2015-2100_1.9x2.5_c20240304.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP585_ne30/emissions-cmip6_ssp585_e3sm_C3H8_surface_2015-2100_1.9x2.5_c20240304.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP585_ne30/emissions-cmip6_ssp585_e3sm_CH2O_surface_2015-2100_1.9x2.5_c20240304.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP585_ne30/emissions-cmip6_ssp585_e3sm_CH3CHO_surface_2015-2100_1.9x2.5_c20240304.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP585_ne30/emissions-cmip6_ssp585_e3sm_CH3COCH3_surface_2015-2100_1.9x2.5_c20240304.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP585_ne30/emissions-cmip6_ssp585_e3sm_CO_surface_2015-2100_1.9x2.5_c20240304.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP585_ne30/emissions-cmip6_ssp585_e3sm_ISOP_surface_2015-2100_1.9x2.5_c20240304.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP585_ne30/emissions-cmip6_ssp585_e3sm_ISOP_surface_2015-2100_1.9x2.5_c20240304.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP585_ne30/emissions-cmip6_ssp585_e3sm_MTERP_surface_2015-2100_1.9x2.5_c20240304.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP585_ne30/emissions-cmip6_ssp585_e3sm_NO_surface_2015-2100_1.9x2.5_c20240304.nc
atm/cam/chem/trop_mozart_aero/emis/DMSflux.1850-2100.1deg_latlon_conserv.POPmonthlyClimFromACES4BGC_c20160727.nc
atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP585_ne30/cmip6_ssp585_mam4_so2_surf_2015-2100_c190828.nc
+atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP585_ne30/emissions-cmip6_ssp585_e3sm_SOAG0_surf_2015-2100_1.9x2.5_c20240304.nc
atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP585_ne30/cmip6_ssp585_mam4_bc_a4_surf_2015-2100_c190828.nc
atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP585_ne30/cmip6_ssp585_mam4_num_a1_surf_2015-2100_c190828.nc
atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP585_ne30/cmip6_ssp585_mam4_num_a2_surf_2015-2100_c190828.nc
@@ -47,14 +53,28 @@
atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP585_ne30/cmip6_ssp585_mam4_pom_a4_surf_2015-2100_c190828.nc
atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP585_ne30/cmip6_ssp585_mam4_so4_a1_surf_2015-2100_c190828.nc
atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP585_ne30/cmip6_ssp585_mam4_so4_a2_surf_2015-2100_c190828.nc
+atm/cam/chem/trop_mozart/ub/emissions_E90_surface_1750-2101_1.9x2.5_c20231222.nc
+
+
INTERP_MISSING_MONTHS
atm/cam/chem/trop_mozart_aero/oxid
-oxid_1.9x2.5_L70_2015-2100_c20190421.nc
+oxid_SSP585_1.9x2.5_L70_2014-2101_c20240228.nc
+'prsd_O3:O3','prsd_NO3:NO3','prsd_OH:OH'
''
-
+
+
+ 'A:H2OLNZ:H2O', 'N:O2:O2', 'N:CO2:CO2',
+ 'A:O3:O3', 'A:N2OLNZ:N2O', 'A:CH4LNZ:CH4',
+ 'N:CFC11:CFC11', 'N:CFC12:CFC12',
+ 'M:mam5_mode1:$INPUTDATA_ROOT/atm/cam/physprops/mam4_mode1_rrtmg_aeronetdust_c141106.nc',
+ 'M:mam5_mode2:$INPUTDATA_ROOT/atm/cam/physprops/mam4_mode2_rrtmg_c130628.nc',
+ 'M:mam5_mode3:$INPUTDATA_ROOT/atm/cam/physprops/mam4_mode3_rrtmg_aeronetdust_c141106.nc',
+ 'M:mam5_mode4:$INPUTDATA_ROOT/atm/cam/physprops/mam4_mode4_rrtmg_c130628.nc',
+ 'M:mam5_mode5:$INPUTDATA_ROOT/atm/cam/physprops/mam5_mode5_rrtmg_sig1.2_dgnl.40_c03072023.nc'
+
3
@@ -74,7 +94,12 @@
INTERP_MISSING_MONTHS
-'H2O2', 'H2SO4', 'SO2'
+'xactive_lnd'
+'O3','H2O2','CH2O','CH3OOH','NO','NO2','HNO3','HO2NO2','PAN','CO','CH3COCH3','C2H5OOH','CH3CHO','H2SO4','SO2','NO3','N2O5','SOAG0','SOAG15','SOAG24','SOAG35','SOAG34','SOAG33','SOAG32','SOAG31'
+'NEU'
+'C2H5OOH','CH2O','CH3CHO','CH3OOH','H2O2','H2SO4','HNO3','HO2NO2','SO2','SOAG0','SOAG15','SOAG24','SOAG35','SOAG34','SOAG33','SOAG32','SOAG31'
+'CH2O', 'CH3O2', 'CH3OOH', 'PAN', 'CO', 'C2H6', 'C3H8', 'C2H4', 'ROHO2', 'CH3COCH3', 'C2H5O2', 'C2H5OOH', 'CH3CHO', 'CH3CO3', 'ISOP', 'ISOPO2', 'MVKMACR', 'MVKO2'
+''
2015-2100
diff --git a/components/eam/bld/namelist_files/use_cases/scam_generic.xml b/components/eam/bld/namelist_files/use_cases/scam_generic.xml
index 395d9a6ec86..2b77e3b630a 100644
--- a/components/eam/bld/namelist_files/use_cases/scam_generic.xml
+++ b/components/eam/bld/namelist_files/use_cases/scam_generic.xml
@@ -3,7 +3,6 @@
-atm/cam/inic/homme/cami_mam3_Linoz_ne4np4_L72_c160909.nc
atm/cam/chem/trop_mozart_aero/emis/aces4bgc_nvsoa_soag_elev_2000_c160427.nc
diff --git a/components/eam/cime_config/config_component.xml b/components/eam/cime_config/config_component.xml
index 33eaacb36b5..1a961b84aff 100755
--- a/components/eam/cime_config/config_component.xml
+++ b/components/eam/cime_config/config_component.xml
@@ -53,8 +53,7 @@
-phys default
&eamv3_phys_defaults; &eamv3_chem_defaults;
&eamv3_phys_defaults; &eamv3_chem_defaults;
- &eamv3_phys_defaults; &eamv3_chem_defaults;
- &eamv3_phys_defaults; &eamv2_chem_defaults;
+ &eamv3_phys_defaults; &eamv3_chem_defaults;
-bc_dep_to_snow_updates
-co2_cycle
@@ -129,6 +128,7 @@
20TR_eam_CMIP6_chemUCI-Linoz-mam5-vbs
SSP585_eam_CMIP6_chemUCI-Linoz-mam5-vbs
SSP370_eam_CMIP6_chemUCI-Linoz-mam5-vbs
+ SSP245_eam_CMIP6_chemUCI-Linoz-mam5-vbs
SSP585_cam5_CMIP6_bgc
20TR_E3SMv1_superfast_ar5-emis
20TRS_E3SMv1_superfast_ar5-emis
@@ -136,7 +136,7 @@
20TR_eam_chemUCI-Linoz-mam5
scam_arm95
scm_arm97_chemUCI-Linoz-mam5-vbs
- scm_generic_chemUCI-Linoz-mam5-vbs
+ scam_generic
1850-PD_cam5
aquaplanet_EAMv1
RCEMIP_EAMv1
diff --git a/components/eam/cime_config/config_compsets.xml b/components/eam/cime_config/config_compsets.xml
index 7c3393b1118..39971fbb094 100644
--- a/components/eam/cime_config/config_compsets.xml
+++ b/components/eam/cime_config/config_compsets.xml
@@ -51,14 +51,19 @@
2010_EAM%CMIP6_ELM%CNPRDCTCBCTOP_MPASSI%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+
+ FSSP245
+ SSP245_eam_EAM%CMIP6_ELM%CNPRDCTCBCTOP_MPASSI%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+
+
FSSP370
- SSP370_eam_EAM%CMIP6_ELM%SPBC_MPASSI%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+ SSP370_eam_EAM%CMIP6_ELM%CNPRDCTCBCTOP_MPASSI%PRES_DOCN%DOM_MOSART_SGLC_SWAV
FSSP585
- SSP585_eam_EAM%CMIP6_ELM%SPBC_MPASSI%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+ SSP585_eam_EAM%CMIP6_ELM%CNPRDCTCBCTOP_MPASSI%PRES_DOCN%DOM_MOSART_SGLC_SWAV
diff --git a/components/eam/docs/dev-guide/index.md b/components/eam/docs/dev-guide/index.md
index 553bf5f3697..6879c32cbe3 100644
--- a/components/eam/docs/dev-guide/index.md
+++ b/components/eam/docs/dev-guide/index.md
@@ -1 +1,3 @@
-start of the EAM Developer's Guide
+# EAM Developer Guide
+
+coming soon.
diff --git a/components/eam/docs/index.md b/components/eam/docs/index.md
index 6632c22ca62..55870e3778d 100644
--- a/components/eam/docs/index.md
+++ b/components/eam/docs/index.md
@@ -1,7 +1,7 @@
# The E3SM Atmosphere Model (EAM)
-Some introductory text here
+EAM is the state-of-the-art atmospheric component of the E3SM model that uses a Spectral Element Dynamical Core and a suite of parameterizations to represent a range of atmospheric processes, which are described in the Technical Guide (see below). Its nominal resolution is roughly 100km in the horizontal, with a model time step of 1800 seconds, and runs with 80 layers in the vertical (model top of 60km).
-* The [EAM User's Guide](user-guide/index.md) explains how to control EAM when its running within E3SM.
-* The [EAM Developer's Guide](dev-guide/index.md) explains EAM data structures and how to write new code.
-* The [EAM Techincal Guide](tech-guide/index.md) explains the science behind EAM's code
+* The [EAM User Guide](user-guide/index.md) explains how to control EAM when its running within E3SM.
+* The [EAM Developer Guide](dev-guide/index.md) explains EAM data structures and how to write new code.
+* The [EAM Technical Guide](tech-guide/index.md) explains the science behind EAM's code
diff --git a/components/eam/docs/tech-guide/armdiags.md b/components/eam/docs/tech-guide/armdiags.md
new file mode 100644
index 00000000000..47266db48f2
--- /dev/null
+++ b/components/eam/docs/tech-guide/armdiags.md
@@ -0,0 +1,56 @@
+# ARM diagnostics
+
+## Overview
+
+The ARM data-oriented metrics and diagnostics package (ARM Diags) was developed to facilitate the use of ARM data in climate model evaluation and model intercomparison (Zhang et al., 2020)[@zhang_arm_2020]. It includes ARM data sets, compiled from multiple ARM data products, and a Python-based analysis toolkit for computation ad visualization. It also includes simulation data from models participating the CMIP, which allows climate-modeling groups to compare a new, candidate version of their model to existing CMIP models. The ARM Diags has been applied in several model evaluation studies to help address a range of issues in climate models (Zheng et al., 2023;[@zheng_assessment_2023] Emmenegger et al., 2022;[@emmenegger_evaluating_2022] Zhang et al., 2018[@zhang_causes_2018]). The Majority of ARM Diags sets are ported into E3SM Diags (Zhang et al., 2022)[@zhang_e3sm_2022] for routine evaluation of the model.
+
+## To enable the use of ARM Diags
+
+To enable using ARM Diags for a simulation, often, a new tape that output at high-frequency over limited-area (nearest grid box to supported ARM site) needs to be included in the namelist file, an example as follows:
+
+```fortran
+fincl7 = 'PS','Q','T','Z3','CLOUD','CONCLD','CLDICE',
+ 'CLDLIQ','FREQR','REI','REL','PRECT','TMQ','PRECC',
+ 'TREFHT','QREFHT','OMEGA','CLDTOT','LHFLX','SHFLX',
+ 'FLDS','FSDS','FLNS','FSNS','FLNSC','FSDSC','FSNSC',
+ 'AODVIS','AODABS','LS_FLXPRC','LS_FLXSNW',
+ 'LS_REFFRAIN','ZMFLXPRC','ZMFLXSNW','CCN1','CCN2',
+ 'CCN3','CCN4','CCN5','num_a1','num_a2','num_a3',
+ 'num_a4','so4_a1','so4_a2','so4_a3','AREL','TGCLDLWP',
+ 'AQRAIN','ANRAIN','FREQR','PRECL','RELHUM'
+fincl7lonlat='262.5e_36.6n','203.4e_71.3n','147.4e_2.0s',
+ '166.9e_0.5s','130.9e_12.4s','331.97e_39.09n'
+```
+
+Note that in this example fincl7 should set to write output at hourly (`nhtfrq = -1`). And here additional variables are included for ARM simulator analysis. The ARM site information is shown below:
+
+```fortran
+ "sgpc1": ["97.5W 36.4N Oklahoma ARM"],
+
+ "nsac1": ["156.6W 71.3N Barrow ARM"],
+
+ "twpc1": ["147.4E 2.1S Manus ARM"],
+
+ "twpc2": ["166.9E 0.5S Nauru ARM"],
+
+ "twpc3": ["130.9E 12.4S Darwin ARM"],
+
+ "enac1": ["28.0E 39.1N Graciosa Island ARM"],
+```
+
+## Diagnostics and metrics currently implemented in the ARM Diags
+
+| Statistical Metrics | Variables | Time sampling |
+| ------------------------- | --------------------------------------------------------------- | ----------------- |
+| Line plots and Taylor diagrams for annual cycle variability of each variable | Precipitation, column water vapor, surface energy budget components, near-surface temperature and specific humidity, surface pressure, total cloud fraction, and aerosol optical depth. | Monthly mean |
+| Contour and vertical profiles of annual cycle and diurnal cycle of cloud fraction | Vertical profiles of cloud fraction | Hourly mean |
+| Line and harmonic dial plots of diurnal cycle of precipitation | Surface precipitation rate | Hourly mean |
+| Probability density function (PDF) plots of precipitation rate | Surface precipitation rate | Hourly mean |
+| CCN Annual Cycles | CCN number concentrations at 0.1%, 0.2%, 0.5% and 1.0% supersaturation levels | Hourly mean |
+| Aerosol Annual Cycles | Total aerosol number concentration | Hourly mean |
+| Aerosol Chemical Annual Cycles | Organic, sulfate, nitrate, ammonium, chloride mass concentration | Hourly mean |
+
+| Process-oriented metrics | Variables | Time sampling |
+| ------------------------- | ------------------------------------------------------------- | ----------------- |
+| Convection Onset | 1. Surface precipitation rate
2. Column Precipitable Water Vapor | Hourly mean |
+| Aerosol-CCN Activation | 1. Total aerosol number concentration
2. CCN number concentrations at different supersaturation levels (0.1%, 0.2%, 0.5% and 1.0) | Hourly mean |
diff --git a/components/eam/docs/tech-guide/chemUCIlinozv3.md b/components/eam/docs/tech-guide/chemUCIlinozv3.md
new file mode 100644
index 00000000000..b6b202c00f8
--- /dev/null
+++ b/components/eam/docs/tech-guide/chemUCIlinozv3.md
@@ -0,0 +1,9 @@
+# chemUCI and Linoz
+
+## Overview
+
+Atmospheric interactive chemistry is handled by chemUCI (in the troposphere) and Linoz v3 (in the stratosphere). chemUCI consists of 28 advected tracers for the O3-CH4-HOx-NOx-NMVOCs chemistry. Compared to E3SMv2, the E3SMv3 linearized stratospheric chemistry scheme (Linoz v3) expends the interactive species to include O3, N2O, NOy, and CH4. The boundary between stratosphere and troposphere adopts the e90 tropopause algorithm.
+
+## Namelist parameters
+
+[chemUCI and Linoz Namelist Parameters](../user-guide/namelist_parameters.md#chemuci-and-linoz-v3)
diff --git a/components/eam/docs/tech-guide/clubb.md b/components/eam/docs/tech-guide/clubb.md
new file mode 100644
index 00000000000..2737f753850
--- /dev/null
+++ b/components/eam/docs/tech-guide/clubb.md
@@ -0,0 +1,9 @@
+# Cloud Layers Unified By Binormals
+
+## Overview
+
+The Cloud Layers Unified By Binormals (CLUBB) parameterization is a parameterization of subgrid-scale turbulence and clouds.[@larson_clubb-silhs_2022,@bogenschutz_path_2018,@larson_using_2005,@golaz_pdf-based_2002] It prognoses turbulent fluxes of heat, moisture, and momentum, and it diagnoses the liquid cloud fraction and liquid water mixing ratio. To do so, it prognoses higher-order turbulence moments and closes those prognostic equations by use of an assumed double-Gaussian shape of the subgrid probability density function. CLUBB operates throughout the troposphere, but it contributes especially to the planetary boundary layer and low-cloud regimes, including stratocumulus and shallow cumulus regimes.
+
+## Namelist parameters
+
+[CLUBB Namelist Parameters](../user-guide/namelist_parameters.md#cloud-layers-unified-by-binormals)
diff --git a/components/eam/docs/tech-guide/cosp.md b/components/eam/docs/tech-guide/cosp.md
new file mode 100644
index 00000000000..ef724b12a9f
--- /dev/null
+++ b/components/eam/docs/tech-guide/cosp.md
@@ -0,0 +1,27 @@
+# Cloud Feedback Model Intercomparison Project (CFMIP) Observation Simulator Package
+
+## Overview
+
+The Cloud Feedback Model Intercomparison Project (CFMIP) Observation Simulator Package (COSP; Bodas-Salcedo et al., 2011;[@bodas-salcedo_cosp_2011] Swales et al., 2018;[@swales_cloud_2018] Zhang et al., 2019;[@zhang_evaluation_2019] Zhang et al., 2024[@zhang_understanding_2024]) was developed to improve the consistency between model clouds and satellite observations. COSP contains several independent satellite simulators for better comparing model clouds with satellite measurements collected by the International Satellite Cloud Climatology Project (ISCCP), the Moderate Resolution Imaging Spectroradiometer (MODIS), the Multi-angle Imaging SpectroRadiometer (MISR), Cloud-Aerosol Lidar and Infrared Pathfinder Satellite Observation (CALIPSO), and CloudSat. The use of satellite simulators will not only make a fairer comparison between model clouds and satellite data but also allow a more in-depth analysis of clouds. For example, clouds can be assessed in terms of their optical properties and vertical location, which dictate their radiative effects.
+
+## Namelist parameters
+
+[COSP Namelist Parameters](../user-guide/namelist_parameters.md#cloud-feedback-model-intercomparison-project-cfmip-observation-simulator-package)
+
+## To turn on COSP outputs
+
+Run (add to the run script) the following command before running `./case.setup`
+
+`./xmlchange --id CAM_CONFIG_OPTS --append --val='-cosp'`
+
+| Related Outputs | Description |
+| ------------------------- | ----------------------------------------------------------------- |
+| `FISCCP1_COSP` | Grid-box fraction covered by each ISCCP D level cloud type |
+| `CLMODIS` | MODIS Cloud Area Fraction |
+| `CLD_MISR` | Cloud Fraction from MISR Simulator |
+| `CLDTOT_CAL` | Calipso Total Cloud Fraction |
+| `CLDHGH_CAL` | Calipso High-level Cloud Fraction |
+| `CLDMED_CAL` | Calipso Mid-level Cloud Fraction |
+| `CLDLOW_CAL` | Calipso Low-level Cloud Fraction |
+| `CLD_CAL_TMPLIQ` | Calipso Liquid Cloud Fraction as a function of temperature |
+| `CLD_CAL_TMPICE` | Calipso Ice Cloud Fraction as a function of temperature |
diff --git a/components/eam/docs/tech-guide/dust.md b/components/eam/docs/tech-guide/dust.md
new file mode 100644
index 00000000000..59f7cc3a966
--- /dev/null
+++ b/components/eam/docs/tech-guide/dust.md
@@ -0,0 +1,9 @@
+# Dust aerosol
+
+## Overview
+
+Dust-related processes are represented in the E3SM atmosphere and land model components. In E3SMv3, dust deposition will also be coupled with the sea ice and ocean biogeochemistry in the ocean model. Total emission fluxes of dust particles are calculated at each model time step. A new dust emission scheme following Kok et al. (2014)[@kok_improved_2014] is implemented to E3SMv3, replacing the Zender scheme (Zender et al., 2003)[@zender_mineral_2003] in E3SMv1 and v2 as the default option. The new dust emission scheme includes a time-varying soil erodibility factor for dust mobilization, and includes dust sources in high latitudes (e.g., >60 degree N). A manuscript by Feng et al. is in prep to document the performance of the new emission scheme on dust life cycle and radiative effects in E3SMv3. Dust aerosol is represented in the accumulation and coarse aerosol modes of the MAM4 module following emission. Other dust properties such as optical properties and size distribution at emission are documented in Feng et al. (2022).[@feng_global_2022]
+
+## Namelist parameters
+
+[Dust Namelist Parameters](../user-guide/namelist_parameters.md#dust-aerosol)
diff --git a/components/eam/docs/tech-guide/homme.md b/components/eam/docs/tech-guide/homme.md
new file mode 100644
index 00000000000..42561abde98
--- /dev/null
+++ b/components/eam/docs/tech-guide/homme.md
@@ -0,0 +1,11 @@
+# High-Order Methods Modeling Environment
+
+## Overview
+
+EAM uses the a dynamical core (dycore) from the High Order Method Modeling Environment (HOMME).[@taylor_compatible_2010,@guba_spectral_2014,@taylor_energy_2020] The EAM dycore solves the atmospheric primitive equations governing the evolution of velocity, density, pressure and temperature, as well as the transport of water species and related hydrometers, aerosols and other atmospheric constituents. The governing equations are written in a vertically lagrangian terrain following mass coordinate. They are discretized with second order finite differences in the radial direction and spectral finite elements in the horizontal (surface of the sphere) directions, and advanced in time with a 3rd order accurate 5 stage Runge-Kutta method. Dissipation is added through the use of monotoncity contraints on some advectiion terms, explicitly added hyperviscosity, and a Laplacian-based sponge layer in the first few layers at the model top. The transported species makes use of an efficient interpolatory semi-Lagrangian method. EAMv3 uses 80 layers in the vertical. The use of the spectral finite element method allows EAMv3 to run on fully unstructured grids, including the cubed-sphere grid ([SE Atmosphere Grid Overview (EAM & CAM)](https://acme-climate.atlassian.net/wiki/spaces/DOC/pages/34113147)) which provides quasi-uniform resolution over the globe, and regionally refined meshes (RRM) which enhance horizontal resolution in regions of interest ([Library of Regionally-Refined Model (RRM) Grids](https://acme-climate.atlassian.net/wiki/spaces/DOC/pages/3690397775)).
+
+## Namelist parameters
+
+Many dynamical core parameters can not be changed independently. For example, increasing the hyperviscosity coefficient may require reducing the hyperviscosity timestep. Dycore timesteps are tuned for each resolution and the defaults are close to the CFL stability limit. For complete details, as well as their interactions, see [EAM's HOMME dycore](https://acme-climate.atlassian.net/wiki/spaces/DOC/pages/1044644202/EAM+s+HOMME+dycore).
+
+[HOMME Namelist Parameters](../user-guide/namelist_parameters.md#homme)
diff --git a/components/eam/docs/tech-guide/index.md b/components/eam/docs/tech-guide/index.md
index 44a4f1921e2..437f5636edf 100644
--- a/components/eam/docs/tech-guide/index.md
+++ b/components/eam/docs/tech-guide/index.md
@@ -1 +1,31 @@
-start of the EAM Technical Guide
+# EAM Technical Guide
+
+This Technical Guide describes the physics of version 3 of the E3SM Atmospheric Model
+
+## Dynamics and Physics
+
+- [HOMME](homme.md): Dynamical core.
+
+- [P3](p3.md): Stratiform cloud microphysics scheme.
+
+- [CLUBB](clubb.md): Parameterization of subgrid-scale turbulence and clouds.
+
+- [Zhang-McFarlane](zm.md): Deep convection parameterization.
+
+- [RRTMG](rrtmg.md): Parameterization of radiation.
+
+- [MAM](mam.md): Primary parameterization schemes used to represent aerosols.
+
+- [VBS](vbs.md): Parameterization of secondary organic aerosols.
+
+- [Dust](dust.md): Parameterization of dust emissions.
+
+- [OCEANFILMS](oceanfilms.md): Parameterization of sea soray irganic aerosol emissions.
+
+- [chemUCI + Linoz v3](chemUCIlinozv3.md): Interactive atmospheric chemistry packages.
+
+## Diagnostic outputs
+
+- [COSP](cosp.md): Scheme that allows the model to output satellite simulator output.
+
+- [ARM Diags](armdiags.md): Diagnostic package that allows the model output to be compared against ARM measurements.
diff --git a/components/eam/docs/tech-guide/mam.md b/components/eam/docs/tech-guide/mam.md
new file mode 100644
index 00000000000..99886682f46
--- /dev/null
+++ b/components/eam/docs/tech-guide/mam.md
@@ -0,0 +1,17 @@
+# Modal Aerosol Module
+
+## MAM5 Overview
+
+The Five-mode Modal Aerosol Model (MAM5) supersedes the MAM4 utilized in previous iterations of E3SM (E3SM-V1 and -V2). MAM5 introduces a fifth mode, specifically designed to represent stratospheric coarse mode aerosols, primarily originating from volcanic eruptions and DMS decomposition. This mode exclusively comprises sulfate aerosols, characterized by a smaller standard deviation (STD) value of 1.2. The STD value denotes the width of the aerosol mode, where a higher STD implies a greater gravitational settling effect (Wang et al., 2020;[@wang_aerosols_2020] Liu et al., 2012[@liu_toward_2012]). By setting the STD to 1.2, the simulated properties of volcanic aerosols align closely with observational findings (Mills et al., 2016).[@mills_global_2016] MAM5 represents a pioneering aerosol model, effectively segregating tropospheric and stratospheric aerosols (Ke et al., in preparation), thereby mitigating the risk of overestimating dust and sea salt aerosols within the stratosphere in previous MAM4 (Visioni et al., 2021).[@visioni_limitations_2022] Volcanic eruptions derived from Neely and Schmidt (2016).[@neely_iii_volcaneesm_2016]
+
+## MAM4 Overview
+
+The representation of atmospheric aerosols and their roles in the Earth system by EAMv1/v2/v3 was inherited from the global aerosol-climate model EAMv0 and its four-mode modal aerosol module (MAM4), including Aitken, primary-carbon, accumulation, and coarse modes (Liu et al., 2016).[@liu_description_2016] It treats a combination of processes, controlling the evolution of aerosols that are either directly emitted or converted from precursor gases from a variety of natural and anthropogenic sources. The processes include transport (by grid-scale wind, subgrid turbulence, convection, and sedimentation), aerosol microphysics (i.e., particle nucleation, condensation/evaporation of trace gases, aging, and coagulation), cloud processing (i.e., aqueous chemistry, scavenging by hydrometeors, resuspension from evaporating hydrometeors, and wet deposition), and dry deposition. Aerosol species in the original MAM4 (Liu et al., 2016)[@liu_description_2016] include sulfate, primary organic aerosol (POA) or particulate organic matter (POM), secondary organic aerosol (SOA), black carbon (BC), sea salt, and mineral dust. As described by Wang et al. (2020),[@wang_aerosols_2020] the enhanced MAM4 in EAMv1/v2 added marine organic aerosol (MOA) to all four modes (Burrows et al., 2022).[@burrows_oceanfilms_2022] In MAM4 of EAMv3, the Aitken mode has sulfate, sea salt, SOA and MOA; the primary-carbon mode has BC, POA and MOA; the accumulation and coarse modes include all seven species. Ammonium (NH4) and nitrate (NO3) aerosols are also explicitly treated in EAMv3 (Wu et al., 2022),[@wu_development_2022] as an optional feature for research, in which new species (NH4, NO3, Ca, CO3, Na, Cl) are introduced to the Aitken, accumulation and coarse modes. All aerosol species within each of the four individual modes the MAM4 is assumed to be internally mixed and represented by a single number concentration, while particles are externally mixed among the different modes.
+
+### Sea salt
+
+In MAM4, sea salt aerosol is represented in the Aitken, accumulation, and coarse mode with particle emission size (diameter) ranges of 0.02-0.08, 0.08-1.0, and 1.0-10.0 μm, respectively. The emission flux of natural sea salt is first divided into 31 size bins, following the parameterization of Mårtensson et al. (2003)[@martensson_laboratory_2003] and Monahan et al. (1986),[@monahan_model_1986] and then redistributed to the three MAM4 size modes.
+
+## Namelist parameters
+
+[MAM Namelist Parameters](../user-guide/namelist_parameters.md#modal-aerosol-module)
diff --git a/components/eam/docs/tech-guide/oceanfilms.md b/components/eam/docs/tech-guide/oceanfilms.md
new file mode 100644
index 00000000000..1ac45cfd799
--- /dev/null
+++ b/components/eam/docs/tech-guide/oceanfilms.md
@@ -0,0 +1,9 @@
+# OCEANFILMS
+
+## Overview
+
+E3SM (v1-v3) uses the OCEANFILMS (Organic Compounds from Ecosystems to Aerosols: Natural Films and Interfaces via Langmuir Molecular Surfactants) parameterization to represent sea spray organic aerosol emissions. OCEANFILMS is a physically based model that links sea spray chemistry with ocean biogeochemistry using a Langmuir partitioning approach. The underlying physical assumptions and parameterization are described in Burrows et al. (2014);[@burrows_physically_2014] the implementation in E3SM and impact on clouds and climate are documented in Burrows et al. (2022).[@burrows_oceanfilms_2022]
+
+## Namelist parameters
+
+[OCEANFILMS Namelist Parameters](../user-guide/namelist_parameters.md#oceanfilms)
diff --git a/components/eam/docs/tech-guide/p3.md b/components/eam/docs/tech-guide/p3.md
new file mode 100644
index 00000000000..af06aaa6aab
--- /dev/null
+++ b/components/eam/docs/tech-guide/p3.md
@@ -0,0 +1,9 @@
+# Predicted Particle Properties
+
+## Overview
+
+The stratiform cloud microphysics scheme in v3 is Predicted Particle Properties (P3; Morrison & Milbrandt, 2015;[@morrison_parameterization_2015] Milbrandt & Morrison, 2016[@milbrandt_parameterization_2016]). P3 offers a new approach to representing the evolution of ice particles that is more physical than the traditional approach of using predefined ice categories. It has been implemented in E3SM (Wang et al., 2021)[@wang_impact_2021] to address the limitations in the original microphysics scheme- the lack of riming particles and the artificial conversion between ice crystals and snow particles. The current version in E3SM is a two-moment scheme with a single ice category (Morrison & Milbrandt, 2015).[@morrison_parameterization_2015] In addition to the total ice number and mass mixing ratios, P3 prognoses the rimed mass and rimed volume mixing ratios, which allows for the prediction of the continuous evolution of the rime fraction and particle density. It is worth noting that the ice nucleation parameterizations are changed to be aerosol-dependent in this study, with the heterogenous ice nucleation parameterizations from the Classical Nucleation Theory (Liu et al., 2012)[@liu_toward_2012] and the homogenous in-situ cirrus formation based on Liu and Penner (2005).[@liu_ice_2005] This differs from the P3 used in WRF and that used in the E3SM v1 in Wang et al. (2021)[@wang_impact_2021] where the heterogeneous ice nucleation parameterizations are temperature dependent only.
+
+## Namelist parameters
+
+[P3 Namelist Parameters](../user-guide/namelist_parameters.md#predicted-particle-properties)
diff --git a/components/eam/docs/tech-guide/rrtmg.md b/components/eam/docs/tech-guide/rrtmg.md
new file mode 100644
index 00000000000..7afa8df6122
--- /dev/null
+++ b/components/eam/docs/tech-guide/rrtmg.md
@@ -0,0 +1,9 @@
+# Rapid Radiative Transfer Model for GCMs
+
+## Overview
+
+The calculation of radiative energy flux through the atmosphere is done using the RRTMG radiation package (Iacono et al., 2008;[@iacono_radiative_2008] Mlawer et al., 1997[@mlawer_radiative_1997]). The details are consistent with the implementation in CAM5 described in Neale et al. (2012).[@neale_description_2012] Radiative fluxes are broadly split into shortwave and longwave and computed by separate codes. The shortwave solver uses the 2-stream approximation, while the longwave is an absorption/emission code. Both shortwave and longwave use the correlated k-distribution method for integration of fluxes. Subgrid cloud overlap is accounted for using the Monte Carlo Independent Column Approximation (MCICA; Pincus and Morcrette, 2003),[@pincus_fast_2003] assuming the cloudy portions of the column are maximally overlapped in vertically contiguous layers and randomly overlapped when two layers are separated by a completely clear layer. Cloud optics are parameterized as described in Neale et al.(2010).[@neale_description_2012]
+
+## Namelist parameters
+
+[RRTMG Namelist Parameters](../user-guide/namelist_parameters.md#rapid-radiative-transfer-model-for-gcms)
diff --git a/components/eam/docs/tech-guide/vbs.md b/components/eam/docs/tech-guide/vbs.md
new file mode 100644
index 00000000000..26535a89308
--- /dev/null
+++ b/components/eam/docs/tech-guide/vbs.md
@@ -0,0 +1,5 @@
+# Volatility Basis Set (VBS) approach for SOA
+
+## Overview
+
+A modified volatility basis set (VBS) approach is used for both SOA precursor gases and particulate SOA that includes gas‐phase functionalization/fragmentation and particle‐phase oligomerization similar to FragNVSOA configuration of Shrivastava et al. (2015).[@shrivastava_global_2015] It includes a detailed treatment of SOA precursor gas chemistry including multigenerational aging via fragmentation and functionalization reactions, particle‐phase oligomerization that generates low “effective volatility” SOA, and particle‐phase loss by photolysis. The sources of SOA include natural biogenic, anthropogenic and biomass burning organic gases that are oxidized to form lower volatility species and undergo dynamic gas-particle partitioning to form SOA. Biogenic SOA is formed by oxidation of isoprene (ISOP_VBS) and monoterpene (C10H16) volatile organic compounds (VOCs). Emissions of anthropogenic and biomass burning organic gases in the range of intermediate volatility organics (IVOCs, referred to as SOAG0) are estimated as total primary organic matter (POM) emitted from these sources multiplied by specified tunable factors. IVOCs undergo multigenerational aging with OH radicals forming SOA corresponding to anthropogenic and biomass burning sources. Photolysis of SOA is included as a chemical sink in the particle phase, in addition to dry and wet removal sinks. The photolysis rate constant of particle-phase SOA is assumed to be 0.04% of typical NO2 photolysis frequencies following Hodzic et al. (2016).[@hodzic_rethinking_2016] The emissions of VBS SOA related gas species and oxidants (prescribed) read from a file are documented in the [User Guide](../user-guide/index.md).
diff --git a/components/eam/docs/tech-guide/zm.md b/components/eam/docs/tech-guide/zm.md
new file mode 100644
index 00000000000..2e3c5b9b607
--- /dev/null
+++ b/components/eam/docs/tech-guide/zm.md
@@ -0,0 +1,27 @@
+# Zhang and McFarlane deep convection scheme
+
+## Overview
+
+The ZM scheme (Zhang and McFarlane, 1995)[@zhang_sensitivity_1995] used in E3SMv3 is a bulk mass flux-type scheme; it has three components: a trigger for convection initiation, a cloud model including both updrafts and downdrafts, and a closure. The original CAPE-based trigger for convection was replaced by a trigger function based on dynamic CAPE generation by Xie et al. (2019)[@xie_improved_2019] (see dCAPE-ULL description below for more details). The closure predicts cloud base mass flux using dilute CAPE (Neale et al., 2008).[@neale_impact_2008] The updraft model is a bulk entraining plume model. Both updrafts and downdrafts are assumed saturated, with downdraft mass flux at the downdraft initiation level set proportional to the updraft cloud base mass flux. The microphysical processes inside the updrafts are represented by a convective microphysics scheme (see ZM convective microphysics description below). An additional adjustment is made to cloud base mass flux to incorporate the effect of large-scale circulation (see mass flux adjustment description below).
+
+### dCAPE-ULL
+
+A notable update related to clouds and precipitation in E3SMv2 is the use of a new convective trigger function described by Xie et al. (2019)[@xie_improved_2019] in ZM to improve the simulation of precipitation and its diurnal cycle. The new convective trigger named as dCAPE-ULL uses the dynamic CAPE (dCAPE) trigger developed by Xie and Zhang (2000)[@xie_impact_2000] with an unrestricted air parcel launch level (ULL) approach used by Wang et al. (2015).[@wang_impacts_2015] It was designed to address the unrealistically strong coupling of convection to the surface heating in ZM that often results in unrealistically too active model convection during the day in summer season over lands and improve the model capability to capture mid-level convection for nocturnal precipitation.
+
+### ZM convective microphysics
+
+The convective microphysics scheme is based on the work of Song and Zhang (2011)[@song_microphysics_2011] to improve the representation of microphysical processes in convective clouds and their interaction with aerosol and stratiform clouds in GCMs. It explicitly treats the mass mixing ratio and number concentration of five hydrometeor species (cloud water, cloud ice, rain, snow, and graupel). The scheme is linked to stratiform cloud microphysics parameterization through convective detrainment of cloud liquid/ice water content and droplet/crystal number concentration, and to aerosols through cloud droplet activation and ice nucleation processes. Previous evaluations of the scheme showed that it improved the simulation of convective cloud properties and cloud hydrological cycle (Song et al., 2012;[@song_evaluation_2012] Storer et al., 2015[@storer_effects_2015]). The assessment demonstrates that the convective microphysics scheme not only significantly improves the simulation of tropical variability across multiple scales but also enhances the simulation of climatological mean states.
+
+### Mass flux adjustment
+
+The convective mass flux adjustment (MAdj) is designed to represent the dynamical effects of large-scale vertical motion on convection. With MAdj, convection is enhanced (suppressed) when there is large-scale ascending (descending) motion at the planetary boundary layer top. The coupling of convection with the large-scale circulation significantly improves the simulation of climate variability across multiple scales from diurnal cycle, convectively coupled equatorial waves, to Madden-Julian oscillations (Song et al., 2023).[@song_incorporating_2023]
+
+### MCSP
+
+Due to inadequate model resolution, organized mesoscale convection cannot be resolved in general circulation models and thus needs to be parameterized. The Multiscale Coherent Structure Parameterization (MCSP) aims at representing the dynamical and physical effects of organized mesoscale convection.
+
+MCSP applies a sinusoidal baroclinic profile in the temperature, moisture, and momentum fields to represent the impact. Moncrieff et al. (2017)[@moncrieff_simulation_2017] and Chen et al. (2021)[@chen_effects_2021] have found that by adding MCSP, the both the representation of large-scale precipitation systems and the modes of variability from Tropical waves are improved.
+
+## Namelist parameters
+
+[ZM Namelist Parameters](../user-guide/namelist_parameters.md#zhang-and-mcfarlane-deep-convection-scheme)
diff --git a/components/eam/docs/user-guide/aerosol_phys_prop.md b/components/eam/docs/user-guide/aerosol_phys_prop.md
new file mode 100644
index 00000000000..6d80565d971
--- /dev/null
+++ b/components/eam/docs/user-guide/aerosol_phys_prop.md
@@ -0,0 +1,111 @@
+
+# Aerosol physical properties
+
+## Description
+
+Key information
+
+- Original physical properties of aerosols are documented in Liu et al. (2012).[@liu_toward_2012] Detailed information is included in the supplement.
+
+- Physical properties of aerosols used in E3SMv1 are documented in Wang et al. (2020).[@wang_aerosols_2020]
+
+- Marine organic aerosol properties are defined in Burrows et al. (2022).[@burrows_oceanfilms_2022]
+
+- Dust refractive index and longwave absorption coefficients are updated by Feng et al. (2022).[@feng_global_2022]
+
+- BC and POM hygroscopicity values are updated by Shan et al. (2024).
+
+- Physical properties of the fifth mode aerosols are documented by Ke et al. (2024).
+
+## Included fields
+
+### Mode properties
+
+- Geometric standard deviation of each lognormal mode
+
+- Nominal geometric mean diameter and its lower/upper bound of values for each mode
+
+- Coefficients of polynomial expression (lookup-table) for extinction, absorption, and asymmetry parameter calculations
+
+- Aerosol refractive index table needed for interpolation (lookup-table) calculation (for different wavelengths)
+
+- Crystalization and deliquesence relative humidity thresholds for aerosol wateruptake calculations
+
+### Species properties
+
+- Aerosol refractive index for each species
+
+- Density for each species
+
+- Aerosol hygroscopicity for each species
+
+- Note that some of variables in the species property file are for bulk aerosols, so we ignore the description for them.
+
+## Files
+
+Species properties
+
+```fortran
+/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/sulfate_rrtmg_c080918.nc
+/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/ocpho_rrtmg_c130709_kPOM0.04.nc
+/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/ocphi_rrtmg_c100508.nc
+/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/bcpho_rrtmg_c100508.nc
+/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/dust_aeronet_rrtmg_c141106.nc
+/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/ssam_rrtmg_c100508.nc
+/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/poly_rrtmg_c130816.nc
+```
+
+Mode properties
+
+```fortran
+/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/mam4_mode1_rrtmg_aeronetdust_c141106.nc',
+/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/mam4_mode2_rrtmg_c130628.nc',
+/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/mam4_mode3_rrtmg_aeronetdust_c141106.nc',
+/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/mam4_mode4_rrtmg_c130628.nc',
+/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/mam5_mode5_rrtmg_sig1.2_dgnl.40_c03072023.nc'
+```
+
+## Namelist
+
+```fortran
+ mode_defs = 'mam5_mode1:accum:=',
+ 'A:num_a1:N:num_c1:num_mr:+',
+ 'A:so4_a1:N:so4_c1:sulfate:/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/sulfate_rrtmg_c080918.nc:+',
+ 'A:pom_a1:N:pom_c1:p-organic:/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/ocpho_rrtmg_c130709_kPOM0.04.nc:+',
+ 'A:soa_a1:N:soa_c1:s-organic:/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/ocphi_rrtmg_c100508.nc:+',
+ 'A:bc_a1:N:bc_c1:black-c:/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/bcpho_rrtmg_c100508.nc:+',
+ 'A:dst_a1:N:dst_c1:dust:/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/dust_aeronet_rrtmg_c141106.nc:+',
+ 'A:ncl_a1:N:ncl_c1:seasalt:/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/ssam_rrtmg_c100508.nc:+',
+ 'A:mom_a1:N:mom_c1:m-organic:/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/poly_rrtmg_c130816.nc',
+ 'mam5_mode2:aitken:=',
+ 'A:num_a2:N:num_c2:num_mr:+',
+ 'A:so4_a2:N:so4_c2:sulfate:/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/sulfate_rrtmg_c080918.nc:+',
+ 'A:soa_a2:N:soa_c2:s-organic:/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/ocphi_rrtmg_c100508.nc:+',
+ 'A:ncl_a2:N:ncl_c2:seasalt:/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/ssam_rrtmg_c100508.nc:+',
+ 'A:mom_a2:N:mom_c2:m-organic:/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/poly_rrtmg_c130816.nc',
+ 'mam5_mode3:coarse:=',
+ 'A:num_a3:N:num_c3:num_mr:+',
+ 'A:dst_a3:N:dst_c3:dust:/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/dust_aeronet_rrtmg_c141106.nc:+',
+ 'A:ncl_a3:N:ncl_c3:seasalt:/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/ssam_rrtmg_c100508.nc:+',
+ 'A:so4_a3:N:so4_c3:sulfate:/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/sulfate_rrtmg_c080918.nc:+',
+ 'A:bc_a3:N:bc_c3:black-c:/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/bcpho_rrtmg_c100508.nc:+',
+ 'A:pom_a3:N:pom_c3:p-organic:/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/ocpho_rrtmg_c130709_kPOM0.04.nc:+',
+ 'A:soa_a3:N:soa_c3:s-organic:/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/ocphi_rrtmg_c100508.nc:+',
+ 'A:mom_a3:N:mom_c3:m-organic:/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/poly_rrtmg_c130816.nc',
+ 'mam5_mode4:primary_carbon:=',
+ 'A:num_a4:N:num_c4:num_mr:+',
+ 'A:pom_a4:N:pom_c4:p-organic:/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/ocpho_rrtmg_c130709_kPOM0.04.nc:+',
+ 'A:bc_a4:N:bc_c4:black-c:/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/bcpho_rrtmg_c100508.nc:+',
+ 'A:mom_a4:N:mom_c4:m-organic:/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/poly_rrtmg_c130816.nc',
+ 'mam5_mode5:strat_coarse:=',
+ 'A:num_a5:N:num_c5:num_mr:+',
+ 'A:so4_a5:N:so4_c5:sulfate:/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/sulfate_rrtmg_c080918.nc'
+ rad_climate = 'A:H2OLNZ:H2O', 'N:O2:O2','N:CO2:CO2', 'A:O3:O3',
+ 'A:N2OLNZ:N2O', 'A:CH4LNZ:CH4','N:CFC11:CFC11', 'N:CFC12:CFC12',
+ 'M:mam5_mode1:/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/mam4_mode1_rrtmg_aeronetdust_c141106.nc',
+ 'M:mam5_mode2:/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/mam4_mode2_rrtmg_c130628.nc',
+ 'M:mam5_mode3:/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/mam4_mode3_rrtmg_aeronetdust_c141106.nc',
+ 'M:mam5_mode4:/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/mam4_mode4_rrtmg_c130628.nc',
+ 'M:mam5_mode5:/lcrc/group/e3sm/data/inputdata/atm/cam/physprops/mam5_mode5_rrtmg_sig1.2_dgnl.40_c03072023.nc'
+
+```
diff --git a/components/eam/docs/user-guide/emission_oxidant_files.md b/components/eam/docs/user-guide/emission_oxidant_files.md
new file mode 100644
index 00000000000..72868b6b845
--- /dev/null
+++ b/components/eam/docs/user-guide/emission_oxidant_files.md
@@ -0,0 +1,196 @@
+
+# Emission files for EAMv3 gas and aerosol species and oxidant file for VBS SOA and stratosphere sulfate formation
+
+## Overview
+
+This page documents emissions data for all required aerosols and precursor gases as well as oxidants input data for running EAMv3, mostly for the MAM4 aerosol scheme, from anthropogenic (i.e., industrial, energy, transportation, domestic, and agriculture activity sectors) and natural (i.e., sea spray, vegetation, fire smoke, volcano) sources. Sulfur from agriculture, domestic, transportation, waste, and shipping sectors is emitted at the surface while sulfur from energy and industry sectors is emitted at 100-300 m above the surface, and sulfur from forest fire and grass fire is emitted at higher elevations (0-6 km). POM and BC from forest fire and grass fire are emitted at 0-6 km, while those from other sources (domestic, energy, industry, transportation, waste, and shipping) are emitted at the surface. Injection height profiles for fire emissions are derived from the corresponding AeroCom profiles (Dentener et al., 2006)[@dentener_emissions_2006], which give emissions in 6 altitude ranges (0-0.1, 0.1-0.5, 0.5-1, 1-2, 2-3, and 3-6 km). Otherwise, species emissions are assumed to be at the surface (bottom layer). Number emission fluxes each mode are calculated from mass emission fluxes based on AeroCom prescribed lognormal size distributions.
+
+## Aerosols and gas precursors (common for EAMv1/v2/v3)
+
+* Species: SO2, SOAG0, DMS, bc_a4, pom_a4, so4_a1, so4_a2, num_a1, num_a2, num_a4
+* Data sources
+ * Most of the original data are directly from input4MIPs with the following exceptions (E3SM specific treatments)
+ * SO2 takes 97.5% from the input4MIPs data (all SO2-em-anthro_input4MIPs sectors)
+ * SO4_a1 surf takes 2.5% from the corresponding surface sectors of input4MIPs data (SO2-em-anthro_input4MIPs sectors: AGR, SLV, WST, SHP)
+ * SO4_a2 surf takes 2.5% from the corresponding surface sectors of input4MIPs data (SO2-em-anthro_input4MIPs sectors: TRA, RCO)
+ * SO4_a1 elev takes 2.5% from the corresponding elevated sectors of input4MIPs data (SO2-em-anthro_input4MIPs sectors: ENE, IND)
+ * SO2 (97.5%) and SO4_a1 (2.5%) also take emissions from AR5 input file for sector contvolc (constant volcanic degassing)
+ * SOAG0 emissions are obtained by scaling OC (POM) emissions with a tunable factor.
+ * num_a1, num_a2 and num_a4 are determined by mass concentration of aerosols species in the corresponding sectors and modes.
+
+## Marine organic sea spray
+
+Marine organic sea spray aerosol contributions are parameterized following the OCEANFILMS parameterization (E3SMv1; Burrows et al., 2014;[@burrows_physically_2014] 2022[@burrows_oceanfilms_2022]). The input file for this parameterization provides a climatology of the ocean surface concentrations of several groups of organic macromolecules. Briefly, the Parallel Ocean Program (POP; Maltrud et al., 1998)[@maltrud_global_1998] and its biogeochemical elemental cycling (BEC) routines (Moore et al., 2004)[@moore_upper_2004] were used to simulate marine biogeochemistry fields, including particulate organic matter (POC), chlorophyll, and zooplankton concentrations; these fields were used to generate maps of the estimated surface distributions of classes of macromolecules following the methods described in Burrows et al. (2014).[@burrows_physically_2014] The scripts used to accomplish this translation are available [here](https://github.com/E3SM-Project/PreAndPostProcessingScripts/blob/devel/prepare_model_inputfiles/emis/marine_organic_aerosol/JAN_1850_MASTERLANG.jnl).
+
+The file used as an input to E3SM is available here:
+[https://web.lcrc.anl.gov/public/e3sm/inputdata/atm/cam/chem/trop_mam/marine_BGC/monthly_macromolecules_0.1deg_bilinear_latlon_year01_merge_date.nc](https://web.lcrc.anl.gov/public/e3sm/inputdata/atm/cam/chem/trop_mam/marine_BGC/monthly_macromolecules_0.1deg_bilinear_latlon_year01_merge_date.nc)
+
+And is also published as a citeable dataset on Zenodo:
+
+Elliott, S. M., Maltrud, M., & Burrows, S. M. (2015). Macromolecule distributions input file for the OCEANFILMS parameterization (Version v1) [Data set]. [Zenodo](https://doi.org/10.5281/zenodo.6320812).
+
+## Oceanic dimethyl sulfide concentrations
+
+Dimethyl sulfide (DMS) fluxes to the atmosphere are calculated in E3SM as a function of prescribed surface oceanic DMS concentrations, and an air-sea flux piston velocity that is a function of wind speed.
+
+E3SM uses a DMS surface concentration dataset developed from a dynamic ocean biogeochemistry simulation; the methods and underlying assumptions used to produce this dataset are documented in Wang, et al. (2015). The resolution in the DMS dataset is 1.9x2.5 degrees.
+
+## New gas species for chemUCI in EAMv3
+
+* Species: C2H4, C2H6, C3H8, CH2O, CH3CHO, CH3COCH3, CO, E90, ISOP, NO, NO2
+* Data sources
+ * anthropogenic, biomass burning, and aircraft emissions (NO2) are regridded from NCAR CESM2 emission files. They are time-dependent during historical period and in the future scenarios.
+ * biogenic emissions (C2H4, C2H6, C3H8, CH2O, CH3CHO, CH3COCH3, CO, ISOP) are from MEGAN-MACC offline data
+ * 1850-1979: monthly input cycled yearly from 30-year mean (1980-2009)
+ * 1980-2014: time-varying MEGAN-MACC data (historical)
+ * 2015-2100: monthly input cycled yearly from 30-year mean (1980-2009)
+ * natural emissions from oceans (C2H4, C2H6, C3H8, CO) and soil (NO) are regridded from NCAR CESM2 emission files. Just cycled yearly during the historical period and in the future scenarios.
+ * E90 emissions?
+
+## Oxidants file needed for VBS SOA and stratosphere sulfate formation
+
+* Species: prsd_O3, prsd_NO3, prsd_OH
+* Data sources
+ * the file for historical simulation is the same as v1 and v2, inherited from CESM
+ * files for SSPs are regridded from NCAR CESM2 tracer files
+
+## Namelist setting for emissions input
+
+### Historical (WCYCL20TR)/AMIP (F20TR)
+
+```fortran
+ ext_frc_specifier = 'NO2 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/chem_gases/2degrees/emissions-cmip6_NO2_aircraft_vertical_1750-2015_1.9x2.5_c20170608.nc',
+ 'SO2 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/cmip6_mam4_so2_elev_1850-2014_c180205_kzm_1850_2014_volcano.nc',
+ 'SOAG0 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/emissions-cmip6_e3sm_SOAG0_elev_1850-2014_1.9x2.5_c20230201.nc',
+ 'bc_a4 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/cmip6_mam4_bc_a4_elev_1850-2014_c180205.nc',
+ 'num_a1 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/cmip6_mam4_num_a1_elev_1850-2014_c180205.nc',
+ 'num_a2 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/cmip6_mam4_num_a2_elev_1850-2014_c180205.nc',
+ 'num_a4 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/cmip6_mam4_num_a4_elev_1850-2014_c180205.nc',
+ 'pom_a4 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/cmip6_mam4_pom_a4_elev_1850-2014_c180205.nc',
+ 'so4_a1 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/cmip6_mam4_so4_a1_elev_1850-2014_c180205.nc',
+ 'so4_a2 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/cmip6_mam4_so4_a2_elev_1850-2014_c180205.nc'
+
+ srf_emis_specifier = 'C10H16 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/chem_gases/2degrees/emissions-cmip6_e3sm_MTERP_surface_1850-2014_1.9x2.5_c20230126.nc',
+ 'C2H4 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/chem_gases/2degrees/emissions-cmip6_e3sm_C2H4_surface_1850-2014_1.9x2.5_c20210323.nc',
+ 'C2H6 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/chem_gases/2degrees/emissions-cmip6_e3sm_C2H6_surface_1850-2014_1.9x2.5_c20210323.nc',
+ 'C3H8 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/chem_gases/2degrees/emissions-cmip6_e3sm_C3H8_surface_1850-2014_1.9x2.5_c20210323.nc',
+ 'CH2O -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/chem_gases/2degrees/emissions-cmip6_e3sm_CH2O_surface_1850-2014_1.9x2.5_c20210323.nc',
+ 'CH3CHO -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/chem_gases/2degrees/emissions-cmip6_e3sm_CH3CHO_surface_1850-2014_1.9x2.5_c20210323.nc',
+ 'CH3COCH3 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/chem_gases/2degrees/emissions-cmip6_e3sm_CH3COCH3_surface_1850-2014_1.9x2.5_c20210323.nc',
+ 'CO -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/chem_gases/2degrees/emissions-cmip6_e3sm_CO_surface_1850-2014_1.9x2.5_c20210323.nc',
+ 'DMS -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DMSflux.1850-2100.1deg_latlon_conserv.POPmonthlyClimFromACES4BGC_c20160727.nc',
+ 'E90 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/chem_gases/2degrees/emissions_E90_surface_1750-2015_1.9x2.5_c20210408.nc',
+ 'ISOP -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/chem_gases/2degrees/emissions-cmip6_e3sm_ISOP_surface_1850-2014_1.9x2.5_c20210323.nc',
+ 'ISOP_VBS -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/chem_gases/2degrees/emissions-cmip6_e3sm_ISOP_surface_1850-2014_1.9x2.5_c20210323.nc',
+ 'NO -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/chem_gases/2degrees/emissions-cmip6_e3sm_NO_surface_1850-2014_1.9x2.5_c20220425.nc',
+ 'SO2 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/cmip6_mam4_so2_surf_1850-2014_c180205.nc',
+ 'SOAG0 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/emissions-cmip6_e3sm_SOAG0_surf_1850-2014_1.9x2.5_c20230201.nc',
+ 'bc_a4 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/cmip6_mam4_bc_a4_surf_1850-2014_c180205.nc',
+ 'num_a1 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/cmip6_mam4_num_a1_surf_1850-2014_c180205.nc',
+ 'num_a2 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/cmip6_mam4_num_a2_surf_1850-2014_c180205.nc',
+ 'num_a4 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/cmip6_mam4_num_a4_surf_1850-2014_c180205.nc',
+ 'pom_a4 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/cmip6_mam4_pom_a4_surf_1850-2014_c180205.nc',
+ 'so4_a1 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/cmip6_mam4_so4_a1_surf_1850-2014_c180205.nc',
+ 'so4_a2 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/cmip6_mam4_so4_a2_surf_1850-2014_c180205.nc'
+
+ tracer_cnst_datapath = '\$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/oxid'
+ tracer_cnst_file = 'oxid_1.9x2.5_L26_1850-2015_c20181106.nc'
+ tracer_cnst_filelist = ''
+ tracer_cnst_specifier = 'prsd_O3:O3','prsd_NO3:NO3','prsd_OH:OH'
+ tracer_cnst_type = 'INTERP_MISSING_MONTHS'
+```
+
+### F2010
+
+```fortran
+ ext_frc_cycle_yr = 2010
+ ext_frc_specifier = 'NO2 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/chem_gases/2degrees/emissions-cmip6_NO2_aircraft_vertical_2010_clim_1.9x2.5_c20230213.nc',
+ 'SO2 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/cmip6_mam4_so2_elev_1x1_2010_clim_c20190821.nc',
+ 'SOAG0 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/emissions-cmip6_e3sm_SOAG0_elev_2010_clim_1.9x2.5_c20230213.nc',
+ 'bc_a4 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/cmip6_mam4_bc_a4_elev_1x1_2010_clim_c20190821.nc',
+ 'num_a1 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/cmip6_mam4_num_a1_elev_1x1_2010_clim_c20190821.nc',
+ 'num_a2 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/cmip6_mam4_num_a2_elev_1x1_2010_clim_c20190821.nc',
+ 'num_a4 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/cmip6_mam4_num_a4_elev_1x1_2010_clim_c20190821.nc',
+ 'pom_a4 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/cmip6_mam4_pom_a4_elev_1x1_2010_clim_c20190821.nc',
+ 'so4_a1 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/cmip6_mam4_so4_a1_elev_1x1_2010_clim_c20190821.nc',
+ 'so4_a2 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/cmip6_mam4_so4_a2_elev_1x1_2010_clim_c20190821.nc'
+ ext_frc_type = 'CYCLICAL'
+
+ srf_emis_cycle_yr = 2010
+ srf_emis_specifier = 'C10H16 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/chem_gases/2degrees/emissions-cmip6_e3sm_MTERP_surface_2010_clim_1.9x2.5_c20230213.nc',
+ 'C2H4 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/chem_gases/2degrees/emissions-cmip6_e3sm_C2H4_surface_2010_clim_1.9x2.5_c20230213.nc',
+ 'C2H6 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/chem_gases/2degrees/emissions-cmip6_e3sm_C2H6_surface_2010_clim_1.9x2.5_c20230213.nc',
+ 'C3H8 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/chem_gases/2degrees/emissions-cmip6_e3sm_C3H8_surface_2010_clim_1.9x2.5_c20230213.nc',
+ 'CH2O -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/chem_gases/2degrees/emissions-cmip6_e3sm_CH2O_surface_2010_clim_1.9x2.5_c20230213.nc',
+ 'CH3CHO -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/chem_gases/2degrees/emissions-cmip6_e3sm_CH3CHO_surface_2010_clim_1.9x2.5_c20230213.nc',
+ 'CH3COCH3 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/chem_gases/2degrees/emissions-cmip6_e3sm_CH3COCH3_surface_2010_clim_1.9x2.5_c20230213.nc',
+ 'CO -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/chem_gases/2degrees/emissions-cmip6_e3sm_CO_surface_2010_clim_1.9x2.5_c20230213.nc',
+ 'DMS -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DMSflux.2010.1deg_latlon_conserv.POPmonthlyClimFromACES4BGC_c20190220.nc',
+ 'E90 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/chem_gases/2degrees/emissions_E90_surface_2010_clim_1.9x2.5_c20230213.nc',
+ 'ISOP -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/chem_gases/2degrees/emissions-cmip6_e3sm_ISOP_surface_2010_clim_1.9x2.5_c20230213.nc',
+ 'ISOP_VBS -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/chem_gases/2degrees/emissions-cmip6_e3sm_ISOP_surface_2010_clim_1.9x2.5_c20230213.nc',
+ 'NO -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/chem_gases/2degrees/emissions-cmip6_e3sm_NO_surface_2010_clim_1.9x2.5_c20230213.nc',
+ 'SO2 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/cmip6_mam4_so2_surf_1x1_2010_clim_c20190821.nc',
+ 'SOAG0 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/emissions-cmip6_e3sm_SOAG0_surf_2010_clim_1.9x2.5_c20230213.nc',
+ 'bc_a4 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/cmip6_mam4_bc_a4_surf_1x1_2010_clim_c20190821.nc',
+ 'num_a1 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/cmip6_mam4_num_a1_surf_1x1_2010_clim_c20190821.nc',
+ 'num_a2 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/cmip6_mam4_num_a2_surf_1x1_2010_clim_c20190821.nc',
+ 'num_a4 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/cmip6_mam4_num_a4_surf_1x1_2010_clim_c20190821.nc',
+ 'pom_a4 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/cmip6_mam4_pom_a4_surf_1x1_2010_clim_c20190821.nc',
+ 'so4_a1 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/cmip6_mam4_so4_a1_surf_1x1_2010_clim_c20190821.nc',
+ 'so4_a2 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DECK_ne30/cmip6_mam4_so4_a2_surf_1x1_2010_clim_c20190821.nc'
+ srf_emis_type = 'CYCLICAL'
+
+ tracer_cnst_cycle_yr = 2015
+ tracer_cnst_datapath = '\$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/oxid'
+ tracer_cnst_file = 'oxid_1.9x2.5_L26_1850-2015_c20181106.nc'
+ tracer_cnst_filelist = ''
+ tracer_cnst_specifier = 'prsd_O3:O3','prsd_NO3:NO3','prsd_OH:OH'
+ tracer_cnst_type = 'CYCLICAL'
+ ```
+
+### Future Scenarios
+
+#### SSP370
+
+```fortran
+ext_frc_specifier = 'NO2 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/emissions-cmip6_ssp370_e3sm_NO2_aircraft_vertical_2015-2100_1.9x2.5_c20240208.nc',
+ 'SO2 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/cmip6_ssp370_mam4_so2_elev_2015-2100_c210216.nc',
+ 'SOAG0 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/emissions-cmip6_ssp370_e3sm_SOAG0_elev_2015-2100_1.9x2.5_c20240208.nc',
+ 'bc_a4 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/cmip6_ssp370_mam4_bc_a4_elev_2015-2100_c210216.nc',
+ 'num_a1 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/cmip6_ssp370_mam4_num_a1_elev_2015-2100_c210216.nc',
+ 'num_a2 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/cmip6_ssp370_mam4_num_a2_elev_2015-2100_c210216.nc',
+ 'num_a4 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/cmip6_ssp370_mam4_num_a4_elev_2015-2100_c210216.nc',
+ 'pom_a4 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/cmip6_ssp370_mam4_pom_a4_elev_2015-2100_c210216.nc',
+ 'so4_a1 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/cmip6_ssp370_mam4_so4_a1_elev_2015-2100_c210216.nc',
+ 'so4_a2 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/cmip6_ssp370_mam4_so4_a2_elev_2015-2100_c210216.nc'
+
+srf_emis_specifier = 'C10H16 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/emissions-cmip6_ssp370_e3sm_MTERP_surface_2015-2100_1.9x2.5_c20240208.nc',
+ 'C2H4 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/emissions-cmip6_ssp370_e3sm_C2H4_surface_2015-2100_1.9x2.5_c20240208.nc',
+ 'C2H6 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/emissions-cmip6_ssp370_e3sm_C2H6_surface_2015-2100_1.9x2.5_c20240208.nc',
+ 'C3H8 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/emissions-cmip6_ssp370_e3sm_C3H8_surface_2015-2100_1.9x2.5_c20240208.nc',
+ 'CH2O -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/emissions-cmip6_ssp370_e3sm_CH2O_surface_2015-2100_1.9x2.5_c20240208.nc',
+ 'CH3CHO -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/emissions-cmip6_ssp370_e3sm_CH3CHO_surface_2015-2100_1.9x2.5_c20240208.nc',
+ 'CH3COCH3 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/emissions-cmip6_ssp370_e3sm_CH3COCH3_surface_2015-2100_1.9x2.5_c20240208.nc',
+ 'CO -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/emissions-cmip6_ssp370_e3sm_CO_surface_2015-2100_1.9x2.5_c20240208.nc ',
+ 'DMS -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/DMSflux.1850-2100.1deg_latlon_conserv.POPmonthlyClimFromACES4BGC_c20160727.nc',
+ 'E90 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart/ub/emissions_E90_surface_1750-2101_1.9x2.5_c20231222.nc',
+ 'ISOP -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/emissions-cmip6_ssp370_e3sm_ISOP_surface_2015-2100_1.9x2.5_c20240208.nc',
+ 'ISOP_VBS -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/emissions-cmip6_ssp370_e3sm_ISOP_surface_2015-2100_1.9x2.5_c20240208.nc',
+ 'NO -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/emissions-cmip6_ssp370_e3sm_NO_surface_2015-2100_1.9x2.5_c20240208.nc',
+ 'SO2 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/cmip6_ssp370_mam4_so2_surf_2015-2100_c210216.nc',
+ 'SOAG0 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/emissions-cmip6_ssp370_e3sm_SOAG0_surf_2015-2100_1.9x2.5_c20240208.nc',
+ 'bc_a4 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/cmip6_ssp370_mam4_bc_a4_surf_2015-2100_c210216.nc',
+ 'num_a1 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/cmip6_ssp370_mam4_num_a1_surf_2015-2100_c210216.nc',
+ 'num_a2 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/cmip6_ssp370_mam4_num_a2_surf_2015-2100_c210216.nc',
+ 'num_a4 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/cmip6_ssp370_mam4_num_a4_surf_2015-2100_c210216.nc',
+ 'pom_a4 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/cmip6_ssp370_mam4_pom_a4_surf_2015-2100_c210216.nc',
+ 'so4_a1 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/cmip6_ssp370_mam4_so4_a1_surf_2015-2100_c210216.nc',
+ 'so4_a2 -> \$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/emis/CMIP6_SSP370_ne30/cmip6_ssp370_mam4_so4_a2_surf_2015-2100_c210216.nc'
+
+ tracer_cnst_datapath = '\$DIN_LOC_ROOT/atm/cam/chem/trop_mozart_aero/oxid'
+ tracer_cnst_file = 'oxid_SSP370_1.9x2.5_L70_1849-2101_c20240228.nc'
+ tracer_cnst_filelist = ''
+ tracer_cnst_specifier = 'prsd_O3:O3','prsd_NO3:NO3','prsd_OH:OH'
+ tracer_cnst_type = 'INTERP_MISSING_MONTHS'
+```
diff --git a/components/eam/docs/user-guide/index.md b/components/eam/docs/user-guide/index.md
index 81084e869cd..c2bd7f06538 100644
--- a/components/eam/docs/user-guide/index.md
+++ b/components/eam/docs/user-guide/index.md
@@ -1 +1,175 @@
-start of the EAM User's Guide
+
+# EAM User Guide
+
+This User Guide describes how to set up and run EAM.
+
+## Steps to build and run EAM
+
+EAM is not available as a standalone model. Instead, EAM can be run in an atmosphere-only configuration.
+The difference when running in atmosphere-only mode (without an interactive ocean or sea-ice) would be to
+change the *compset* and *grid*.
+See the
+[Case Control System Basic Usage](https://esmci.github.io/cime/versions/master/html/users_guide/index.html#case-control-system-part-1-basic-usage) for general descriptions of compsets and grids.
+
+Certain namelist paramaters, input data files, and output file specifcations can also be modified.
+These are described below as ways to customize runs.
+
+Step-by-step instructions on how to run and analyze E3SM with a script can be found at
+[E3SM step-by-step guide](https://docs.e3sm.org/running-e3sm-guide/)
+
+## Scientifically supported compsets and grids
+
+### Compsets
+
+All of the compsets below run with the complete set of E3SM atmospheric configuration of EAMV3. For more information on the schemes in EAMv3, see the [Technical Guide](../tech-guide/index.md)
+
+`F2010` - Climatological present day climate (year 2010)
+
+`F1850` - Climatological pre-industrial-day climate (year 1850)
+
+`F20TR` - Historical EAM simulation with time varying sea-surface temperatures, aerosol emissions, and greenhouse gas forcings (year 1850-2014)
+
+### Grids
+
+Only one grid combination is currently supported for the above compsets:
+
+`ne30pg2_r05_IcoswISC30E3r5` - ne30pg2 atmosphere, 0.5deg x 0.5deg land grid, and Icosahedral 30 km mesh with ice shelves cavities (wISC), E3SMv3 (E3) revision r5
+
+## Customizing runs
+
+### Compile-time options
+
+Some customizations require making changes before the model is built.
+
+### Run-time options
+
+Run-time customization is enabled by a Fortran namelist.
+
+Namelist parameters can be changed from default values by putting them in the `user_nl_eam` file in the case directory
+with the desired new value.
+
+This [Table of Namelist Parameters](namelist_parameters.md) includes many of the paramaters that control
+physics schemes described in the [tech-guide](../tech-guide/index.md)
+
+#### History File Namelist Parameters
+
+By default, EAM will output a set of monthly-averaged variables. Additional output files can be specified using the following flags in the `user_nl_eam` file:
+
+`finclX` - List of variables (in single quotes and separated by commas) that are added to tape X.
+
+`fexclX` - List of variables (in single quotes and separated by commas) that will be excluded in tape X.
+
+`nhtfrq` - List of write frequencies for each of the history files. A value of 0 denotes a monthly frequency. Negative values denote hourly frequencies (e.g., `-3` will write an output every 3 hours). Positive values denotes the frequency in model timesteps (e.g., `4` will write an output every 4 timesteps).
+
+`mfilt` - List that sets the number of timesteps to write in a single file before starting a new file.
+
+`avgflag_pertape` - List that sets the type of output to write. Choices are `'A'` for time-averaged output, `'A'` for instantaneous output, `'M'` for time-minimum output, and `'X'` for time-maximum output.
+
+#### Example output specification
+
+```fortran
+nhtfrq = 0,-24,-6,-3
+mfilt = 1,30,120,24
+avgflag_pertape = 'A','A','A','I'
+
+fexcl1 = 'U10' # Removes U10 output from monthly files
+fincl2 = 'PS','FLUT','PRECT','U200','V200','U850',
+ 'V850','TCO','SCO','TREFHT','QREFHT' # Output files of daily-averaged output, which includes 30 days of output in each file
+fincl3 = 'PS', 'PSL','PRECT','TUQ','TVQ','UBOT',
+ 'VBOT','TREFHT','FLUT','OMEGA500','TBOT',
+ 'U850','V850','U200','V200','T200','T500',
+ 'Z700' # Output files of 6-hour-averaged output, which includes 30 days of output in each file
+fincl4 = 'PRECT' # Output files of 3-hourly output with 3 days of output in every file
+```
+
+## Input datasets
+
+Many properties of the simulated atmosphere are controlled by data sets read in by the model during initialization.
+Changing the content of these files is another way to customize a run.
+
+### Greenhouse gases (non-reacting)
+
+Greenhouse gas concentration inputs of non-reacting species are taken from CMIP6 Forcing Datasets provided from the input4MIPs data collection. In addition to what is provided by the input4MIPS, 2015 and 2016 have been added by extrapolating from 2013 and 2014.
+
+```fortran
+inputdata/atm/cam/ggas/GHG_CMIP-1-2-0_Annual_Global_0000-2014_c20180105.nc
+```
+
+### [Aerosol physical properties](aerosol_phys_prop.md)
+
+The aerosol properties files provide aerosol refractive index, density, and aerosol hygroscopicty information for
+each aerosol species, as well as information about lognormal mode definition and lookup tables of polynomial
+expression coefficients for aerosol optics calculation for each mode. These aerosol physical and chemical properties
+are used by the radiation, aerosol microphysics and other related source and sink processes, and droplet
+activation/ice nucleation schemes.
+
+### [Aerosol and gas emission and oxidant files](emission_oxidant_files.md)
+
+Details of the aerosol and gas emission and oxidant files used in various historical, present-day, and future scenarios.
+
+### Linoz v3 input files
+
+Linozv3 uses the ozone tendency, (net production minus loss) calculated from its climatological mean state (function of month, latitude, altitude) and a first-order Taylor series expansion about the local ozone, temperature, and overhead ozone column. For historical simulation, Linozv3 uses the linozv3 data files with monthly resolution, spanning the dates 1849-01 -- 2014-12.
+
+#### Historical files
+
+```fortran
+ linoz_data_file = ‘linv3_1849-2101_CMIP6_Hist_10deg_58km_c20231207.nc’
+ linoz_data_path = '/lcrc/group/e3sm/data/inputdata/atm/cam/chem/trop_mozart/ub'
+ linoz_data_type = 'INTERP_MISSING_MONTHS'
+```
+
+Refer to [this page](https://acme-climate.atlassian.net/wiki/spaces/DOC/pages/3764486280/Production+of+the+Linoz+v3+data) for more details on Linoz v3 input files.
+
+### Topography
+
+The global elevation on the atmosphere grid is a key input dataset. The dataset is grid dependent. It contains the geopotential data (on both the GLL dynamics and PG2 physics grids) and two surface roughness quantities, `SGH` and `SGH30`.
+
+EAMv3 NE30 data:
+
+```fortran
+inputdata/atm/cam/topo/USGS-gtopo30_ne30np4pg2_x6t-SGH.c20210614.nc'
+```
+
+This file is computed via a complex procedure that starts with high resolution dataset (for EAMv3, we use the GTOPO30, a 30 arc-second resolution data set on a lat-lon grid) that is then downsampled to a 3km cubed-sphere grid (cube3000) and then downsampled to the atmosphere grid on the (GLL nodes), and then smoothed with the same viscosity operator used by the dycore. The smoothed GLL topography is then mapped to the PG2 grid. Finally, two different surface roughness fields are computed:
+
+- `SGH30`: the variance between GTOPO30 and GTOPO30-downsampled-to-PG2 (independent of any dycore specific smoothing). (used by CLUBB, TMS, vertical_diffusion)
+- `SGH`: the variance between the cube3000 data and the smoothed PG2 data. (used by GWD parameterizations)
+
+### Land-use / land cover change
+
+Info needed on land-use land cover change / land surface data
+
+Refer to [ELM documentation](https://docs.e3sm.org/E3SM/ELM/).
+
+### Ocean/sea ice
+
+The sea surface temperature and sea-ice coverage data used in F-case simulations are based on CMIP6 Forcing Datasets provided from the input4MIPs data collection. The file for the `F2010` compset is created from taking a monthly climatology of years 2005-2014. The file for the `F1850` compset is created from taking a monthly climatology of years 1870-1879.*
+
+*[Provenenance for F1850 file](https://acme-climate.atlassian.net/wiki/spaces/ATM/pages/201525378/Provenance+for+CMIP6+DECK+SST+Sea-Ice+input+data+for+E3SM)
+
+`F20TR`
+
+```fortran
+inputdata/ocn/docn7/SSTDATA/sst_ice_CMIP6_DECK_E3SM_1x1_c20180213.nc
+```
+
+`F2010`
+
+```fortran
+inputdata/ocn/docn7/SSTDATA/sst_ice_CMIP6_DECK_E3SM_1x1_2010_clim_c20190821.nc
+```
+
+`F1850`
+
+```fortran
+inputdata/ocn/docn7/SSTDATA/sst_ice_CMIP6_DECK_E3SM_1x1_1850_clim_c20190125.nc
+```
+
+### Solar input
+
+As with greenhouse gas emissions, solar input files are taken from the input4MIPs data collection that were prepared for CMIP6 Forcing Datasets.
+
+```fortran
+inputdata/atm/cam/solar/Solar_1850-2299_input4MIPS_c20181106.nc
+```
diff --git a/components/eam/docs/user-guide/namelist_parameters.md b/components/eam/docs/user-guide/namelist_parameters.md
new file mode 100644
index 00000000000..b09e8c44ffd
--- /dev/null
+++ b/components/eam/docs/user-guide/namelist_parameters.md
@@ -0,0 +1,158 @@
+
+# Namelist parameters associated with atmosphere schemes
+
+## chemUCI and Linoz v3
+
+| Parameter | Description | Default value* |
+| ---------------------------- | ------------------------------------------------------------------------ | ---------------------- |
+| `airpl_emis_file` | Aviation emission | |
+| `chlorine_loading_file` | Chlorine loading | |
+| `chlorine_loading_fixed_ymd` | | |
+| `chlorine_loading_type` | | |
+| `ext_frc_specifier` | 3-D emissions | |
+| `ext_frc_cycle_yr` | | |
+| `ext_frc_type` | | |
+| `srf_emis_specifier` | Surface emissions | |
+| `srf_emis_cycle_yr` | | |
+| `srf_emis_type` | Upper bound of mean raindrop diameter | |
+| `linoz_data_file` | Linoz data file | |
+| `linoz_data_cycle_yr` | | |
+| `linoz_data_path` | | |
+| `linoz_data_type` | | |
+| `lght_no_prd_factor` | Lightning NOx emission factor | `5.0` |
+| `fstrat_efold_list` | Tracer (from troposphere) list with e-folding decay in the stratosphere | |
+
+* Many of these namelist parameters specify input data files. Check the `atm_in` file for examples or refer to the [Users' Guide](../user-guide/index.md).
+
+## Cloud Layers Unified By Binormals
+
+| Parameter | Description | Default value |
+| -------------- | ------------------------------------------------------------------------------------------- | -------------- |
+| `gamma_coef` | Width of vertical velocity within a Gaussian PDF component at low skewness | `0.12` |
+| `gamma_coefb` | Width of vertical velocity within a Gaussian PDF component at high skewness | `0.28` |
+| `C8` | Coefficient of damping of third moment of vertical velocity, w’3 | `5.2` |
+| `C1` | Coefficient of damping of second vertical moment of vertical velocity, w’2, at low skewness | `2.4` |
+| `C14` | Coefficient of damping of second horizontal moments of vertical velocity, u’2 and v’2 | `2.0` |
+| `c_k10` | Ratio of diffusivity of momentum to heat | `0.35` |
+
+## Dust aerosol
+
+| Parameter | Description | Default value |
+| ------------------------- | ---------------------------------------------- | ------------------------------------------------- |
+| `dust_emis_scheme`* | The v3 dust emission scheme (Kok et al., 2014) | `2`
(set to 1 to switch to the v1/v2 scheme) |
+
+*This parameter is set in `user_nl_drv`
+
+## HOMME
+
+| Parameter | Description | Default value |
+| ---------------- | ------------------------------------------------------------------------------------------- | -------------- |
+| `se_tstep` | Main dycore timestep. Additional parameters control the hyper viscsosity, trancer and vertical remap timesteps, which are derived from se_tstep.
units = seconds | Scales linearly with horizontal resolution.
NE30 default: `300` |
+| `nu` | Tensor hyperviscosity coefficient, independent of spatial resolution.
units = 1/s | `3.4e-8` |
+| `nu_top` | Scalar viscosity at model top.
units = m^2/s | Horizontal resolution dependent
NE30 default: `2.5e5` |
+| `transport_alg` | Select between semi-lagrangian and Eulerian based transport schemes | `12` = semi-lagranian method with monotinicity and mass preservation |
+| `statefreq` | print a varieity of dycore metrics to the atm.log file every “statefreq” timesteps | `480` |
+| `vert_remap_alg` | Algorithm used to remap the vertically lagrangian levels back to the reference levels | `10` = strict monotonicity applied on top of a 2nd order accurate PPM method |
+| `se_ftype` | Controls how physics tendencies are applied. 0=”dribbled” in during dynamics timesteps. 1=”hard adjustment” after each physics timestep. 2=hybrid approach: hard adjustment for tracers, dribbled for remaining tendencies | `2` |
+
+## Modal Aerosol Module
+
+| Parameter | Description | Default value |
+| ------------------------ | ----------------------------------------------------------------------------------- | --------------------------- |
+| `is_output_interactive_volc` | Switch for diagnostic output of the stratospheric aerosol optics | `.false.` |
+| `mam_amicphys_optaa` | Recommended option of the new time-splitting treatment of H2SO4 production and loss | `1`
(0 to turn it off) |
+| `n_so4_monolayers_pcage` | Number of monolayers required to age primary-carbon mode particles | `3` |
+| `seasalt_emis_scale` | Tuning parameter for sea salt emission | `0.55` |
+
+## OCEANFILMS
+
+| Parameter | Description | Default value |
+| ------------------------- | ----------------------------------------------------------------- | ---------------------- |
+| `mam_mom_cycle_yr` | | `1` |
+| `mam_mom_datapath` | Full pathname of the directory that contains the files specified in mam_mom_filelist | `'atm/cam/chem/trop_mam/marine_BGC/'` |
+| `mam_mom_filename` | Filename of file that contains a sequence of filenames for prescribed marine organic matter ocean concentrations. The filenames in this file are relative to the directory specified by mam_mom_datapath.| `'monthly_macromolecules_0.1deg_bilinear_latlon_year01_merge_date.nc'` |
+| `mam_mom_rmfile` | Remove the file containing prescribed aerosol deposition fluxes from local disk when no longer needed. | `FALSE` |
+| `mam_mom_specifier` | Names of variables containing aerosol data in the prescribed aerosol datasets. | `'chla:CHL1','mpoly:TRUEPOLYC','mprot:TRUEPROTC','mlip:TRUELIPC'` |
+| `mam_mom_datatype` | Type of time interpolation for data in mam_mom files. Can be set to `'CYCLICAL'`, `'SERIAL'`, `'INTERP_MISSING_MONTHS'`, or `'FIXED'`. | `'CYCLICAL'` |
+| `mam_mom_cycle_yr` | The cycle year of the prescribed aerosol flux data if mam_mom_type is `'CYCLICAL'`. Format: YYYY | `1` |
+| `mam_mom_fixed_ymd` | The date at which the prescribed aerosol flux data is fixed if mam_mom_type is `'FIXED'`. Format: YYYYMMDD | `0` |
+| `mam_mom_fixed_tod` | The time of day (seconds) corresponding to mam_mom_fixed_ymd at which the prescribed aerosol flux data is fixed if mam_mom_type is 'FIXED'. | `0` |
+| `mam_mom_bubble_thickness` | Bubble film thickness (in m) for marine organic aerosol emission mechanism. The physically reasonable range is approximately (0.1 - 1) x 10^ -6. | `0.1e-6` |
+| `mam_mom_mixing_state` | Switch to select mixing state assumption in marine organic aerosol code. Currently implemented options: 0 : total external mixture, add to mass; 1 : total external mixture, replace mass; 2 : total internal mixture, add to mass; 3 : total internal mixture, replace mass. | `0` [Note: set to 3 in the atm_in namelist] |
+| `mam_mom_parameterization` | Selection of alternate parameterizations for marine organic matter emissions. Set fmoa=1 for Burrows et al. (2014) [@burrows_physically_2014] parameterization; fmoa=2 for Gantt et al. (2011) [@gantt_wind_2011] parameterization; fmoa=3 for simple parameterization based on Quinn et al., 2014; [@quinn_contribution_2014] fmoa=4 for Rinaldi et al. (JGR, 2013).* [@rinaldi_is_2013] | `1` |
+
+*Note: non-default values have not been carefully tested and may not work as expected.
+
+## Predicted Particle Properties
+
+| Parameter | Description | Default value |
+| ------------------------- | ----------------------------------------------------------------- | ---------------------- |
+| `do_prescribed_ccn` | Turn on the prescribed CCN if true | `false` |
+| `micro_aerosolactivation` | Turn on aerosol activation if true | `true` |
+| `micro_p3_lookup_dir` | Directory of P3 look-up tables | `inputdata/atm/cam/physprops` |
+| `micro_p3_tableversion` | P3 look-up table Version | `4.1.2` |
+| `micro_subgrid_cloud` | Sub-grid cloud properties | `true` |
+| `micro_tend_output` | Output of P3 microphysical process rates | `false` |
+| `p3_accret_coeff` | Tunable parameter for adjusting rain accretion efficiency | `117.25` |
+| `p3_autocon_coeff` | Tunable parameter for adjusting droplet autoconversion efficiency | `30500` |
+| `p3_embryonic_rain_size` | Radius of embryomic raindrops from auto-conversion | `0.000025` (m) |
+| `p3_max_mean_rain_size` | Upper bound of mean raindrop diameter | `0.005` (m) |
+| `p3_mincdnc` | Lower bound of droplet number concentration | `20.d6` (# m-3) |
+| `p3_nc_autocon_expon` | Nc exponent in droplet auto-conversion | `-1.1` |
+| `p3_qc_accret_expon` | Qc exponent in rain accretion | `1.15` |
+| `p3_qc_autocon_expon` | Qc exponeent in droplet autoconversion | `3.19` |
+| `p3_wbf_coeff` | Tunable parameter for adjusting WBF efficiency | `1.0` |
+| `do_cooper_inp3` | Turn on Cooper ice nucleation scheme if true | `false` |
+
+## Rapid Radiative Transfer Model for GCMs
+
+| Parameter | Description | Default value |
+| ------------------------- | ----------------------------------------------------------------- | ---------------------- |
+| `iradsw` | Frequency for updating shortwave fluxes and heating rate; iradsw > 0 interpreted as number of timesteps, iradsw < 0 interpreted as hours; iradsw = 0 disables shortwave radiation entirely | `-1` |
+| `iradlw` | Frequency for updating longwave fluxes and heating rate; iradlw > 0 interpreted as number of timesteps, iradlw < 0 interpreted as hours; iradlw = 0 disables longwave radiation entirely | `-1` |
+| `irad_always` | Length of time in timesteps (irad_always > 0) or in hours (irad_always < 0) SW/LW radiation will be run continuously from the start of an initial or restart run | `0` |
+| `use_rad_dt_cosz` | If true, use the radiation dt for all cosz calculations; calculates solar zenith angle averaged over a time step. In default model solar zenith angle is held constant over time | `.true.`
(set by namelist_defaults_eam.xml for default physics) |
+| `spectralflux` | Calculate fluxes (up and down) per band | `.false.` |
+| `liqcldoptics` | Choice of cloud optical property parameterization for liquid clouds. Valid options are ‘slingo’ or ‘gammadist’ | `gammadist` |
+| `icecldoptics` | Choice of cloud optical property parameterization for ice clouds. Valid options are ‘ebertcurry’ or ‘mitchell’ | `mitchell` |
+
+## Zhang and McFarlane deep convection scheme
+
+| ZM Parameters | Description | Default value |
+| ------------------------- | ----------------------------------------------------------------- | ---------------------- |
+| `zmconv_ke` | Tunable evaporation efficiency in ZM deep convection scheme | `2.5E-6` |
+| `zmconv_tau` | Relaxation time in ZM deep convection scheme | `3600` |
+| `zmconv_dmpdz` | Parcel fractional mass entrainment rate | `-0.7E-3` |
+| `zmconv_alfa` | Initial downdraft mass flux fraction | `0.14D0` |
+| `zmconv_tiedke_add` | Temperature perturbation of an air parcel | `0.8D0` |
+| `zmconv_cape_cin` | Number of negative buoyancy regions that are allowed | `1` |
+
+| dCAPE-ULL Parameters | Description | Default value |
+| ------------------------- | ----------------------------------------------------------------- | ---------------------- |
+| `zmconv_trigdcape_ull` | DCAPE trigger along with unrestricted launching level for ZM deep convection scheme | `.true.` |
+| `zmconv_trig_dcape_only` | DCAPE only trigger for ZM deep convection scheme | `.false.`
If true, zmconv_trigdcape_ull must be false to use the dcape only trigger. |
+| `zmconv_trig_ull_only` | Use unrestricted launching level (ULL) only trigger for ZM deep convection scheme | `.false.`
If true, zmconv_trigdcape_ull must be false to use the ull only trigger. |
+
+| Conv. micro. Parameters | Description | Default value |
+| ------------------------- | ----------------------------------------------------------------- | ---------------------- |
+| `zmconv_microp` | Convective microphysics option in ZM convection scheme | `true` |
+| `zmconv_auto_fac` | Cloud droplet-rain autoconversion enhancement factor in the convective microphysics scheme | `7.0` |
+| `zmconv_accr_fac` | Cloud droplet-rain accretion enhancement factor in the convective microphysics scheme | `1.5` |
+| `zmconv_micro_dcs` | Autoconversion size threshold for cloud ice to snow (m) | `150.E-6` |
+
+| Mass flux adj. Parameters | Description | Default value |
+| ------------------------- | ----------------------------------------------------------------- | ---------------------- |
+| `zmconv_clos_dyn_adj` | Apply mass flux adjustment to ZM convection scheme | `true` |
+
+| MCSP Parameters | Description | Default value |
+| ---------------------------- | ----------------------------------------------------------------- | ---------------------- |
+| `zmconv_mcsp_heat_coeff` | MCSP heating coefficient | `0.3` |
+| `zmconv_mcsp_moisture_coeff` | MCSP moisture coefficient | `0.0` |
+| `zmconv_mcsp_uwind_coeff` | MCSP zonal wind coefficient | `0.0` |
+| `zmconv_mcsp_vwind_coeff` | MCSP meridional wind coefficient | `0.0` |
+
+## Cloud Feedback Model Intercomparison Project (CFMIP) Observation Simulator Package
+
+| Parameter | Description | Default value |
+| ------------------------- | ----------------------------------------------------------------- | ---------------------- |
+| `cosp_lite` | This namelist sets cosp_ncolumns=10 and cosp_nradsteps=3 (appropriate for COSP statistics derived from seasonal averages), and runs MISR, ISCCP, MODIS, and CALIPSO lidar simulators (cosp_lmisr_sim=.true.,cosp_lisccp_sim=.true., cosp_lmodis_sim=.true.,cosp_llidar_sim=.true.). | `false` |
diff --git a/components/eam/mkdocs.yml b/components/eam/mkdocs.yml
index f64ab33620f..c310e410285 100644
--- a/components/eam/mkdocs.yml
+++ b/components/eam/mkdocs.yml
@@ -2,6 +2,23 @@ site_name: EAM
nav:
- Introduction: 'index.md'
- - Users's Guide: user-guide/index.md
- - Developers's Guide: dev-guide/index.md
- - Technical Guide: tech-guide/index.md
+ - User Guide:
+ - user-guide/index.md
+ - Namelist Parameters: user-guide/namelist_parameters.md
+ - Aerosol Properties: user-guide/aerosol_phys_prop.md
+ - Emission Oxidants: user-guide/emission_oxidant_files.md
+ - Developer Guide: dev-guide/index.md
+ - Technical Guide:
+ - tech-guide/index.md
+ - tech-guide/homme.md
+ - tech-guide/p3.md
+ - tech-guide/clubb.md
+ - tech-guide/zm.md
+ - RRTMG: tech-guide/rrtmg.md
+ - tech-guide/mam.md
+ - tech-guide/vbs.md
+ - tech-guide/dust.md
+ - tech-guide/oceanfilms.md
+ - tech-guide/chemUCIlinozv3.md
+ - COSP: tech-guide/cosp.md
+ - tech-guide/armdiags.md
diff --git a/components/eam/src/chemistry/mozart/chemistry.F90 b/components/eam/src/chemistry/mozart/chemistry.F90
index 57412d8f818..f78ceda1dea 100644
--- a/components/eam/src/chemistry/mozart/chemistry.F90
+++ b/components/eam/src/chemistry/mozart/chemistry.F90
@@ -1574,44 +1574,43 @@ subroutine chem_timestep_tend( state, ptend, cam_in, cam_out, dt, pbuf, fh2o, f
end if
! HHLEE 20210923
if (history_gaschmbudget_2D_levels .or. history_chemdyg_summary) then
- ftem_layers = 0.0_r8
- gas_ac_layers = 0.0_r8
-
- gas_ac_idx = pbuf_get_index(gas_ac_name(n))
- call pbuf_get_field(pbuf, gas_ac_idx, gas_ac )
+ ftem_layers = 0.0_r8
+ gas_ac_layers = 0.0_r8
+ if( nstep /= 0 ) then
+ gas_ac_idx = pbuf_get_index(gas_ac_name(n))
+ call pbuf_get_field(pbuf, gas_ac_idx, gas_ac )
- if (gaschmbudget_2D_L1_e .lt. gaschmbudget_2D_L1_s .or. gaschmbudget_2D_L2_e .lt. gaschmbudget_2D_L2_s .or. &
- gaschmbudget_2D_L3_e .lt. gaschmbudget_2D_L3_s .or. gaschmbudget_2D_L4_e .lt. gaschmbudget_2D_L4_s ) then
- call endrun('chem_readnl: ERROR 2D chem diags layers, layer ending index is less than starting index')
- end if
+ if (gaschmbudget_2D_L1_e .lt. gaschmbudget_2D_L1_s .or. gaschmbudget_2D_L2_e .lt. gaschmbudget_2D_L2_s .or. &
+ gaschmbudget_2D_L3_e .lt. gaschmbudget_2D_L3_s .or. gaschmbudget_2D_L4_e .lt. gaschmbudget_2D_L4_s ) then
+ call endrun('chem_readnl: ERROR 2D chem diags layers, layer ending index is less than starting index')
+ end if
- do k= gaschmbudget_2D_L1_s, gaschmbudget_2D_L1_e ! 0-90 hPa
- ftem_layers(:ncol,1) = ftem_layers(:ncol,1) + ftem(:ncol,k)
- gas_ac_layers(:ncol,1) = gas_ac_layers(:ncol,1) + gas_ac(:ncol,k)
- end do
- do k= gaschmbudget_2D_L2_s, gaschmbudget_2D_L2_e ! 90-300 hPa
- ftem_layers(:ncol,2) = ftem_layers(:ncol,2) + ftem(:ncol,k)
- gas_ac_layers(:ncol,2) = gas_ac_layers(:ncol,2) + gas_ac(:ncol,k)
- end do
- do k= gaschmbudget_2D_L3_s, gaschmbudget_2D_L3_e ! 300-850 hPa
- ftem_layers(:ncol,3) = ftem_layers(:ncol,3) + ftem(:ncol,k)
- gas_ac_layers(:ncol,3) = gas_ac_layers(:ncol,3) + gas_ac(:ncol,k)
- end do
- do k= gaschmbudget_2D_L4_s, gaschmbudget_2D_L4_e ! 850 hPa - surface
- ftem_layers(:ncol,4) = ftem_layers(:ncol,4) + ftem(:ncol,k)
- gas_ac_layers(:ncol,4) = gas_ac_layers(:ncol,4) + gas_ac(:ncol,k)
- end do
+ do k= gaschmbudget_2D_L1_s, gaschmbudget_2D_L1_e ! 0-90 hPa
+ ftem_layers(:ncol,1) = ftem_layers(:ncol,1) + ftem(:ncol,k)
+ gas_ac_layers(:ncol,1) = gas_ac_layers(:ncol,1) + gas_ac(:ncol,k)
+ end do
+ do k= gaschmbudget_2D_L2_s, gaschmbudget_2D_L2_e ! 90-300 hPa
+ ftem_layers(:ncol,2) = ftem_layers(:ncol,2) + ftem(:ncol,k)
+ gas_ac_layers(:ncol,2) = gas_ac_layers(:ncol,2) + gas_ac(:ncol,k)
+ end do
+ do k= gaschmbudget_2D_L3_s, gaschmbudget_2D_L3_e ! 300-850 hPa
+ ftem_layers(:ncol,3) = ftem_layers(:ncol,3) + ftem(:ncol,k)
+ gas_ac_layers(:ncol,3) = gas_ac_layers(:ncol,3) + gas_ac(:ncol,k)
+ end do
+ do k= gaschmbudget_2D_L4_s, gaschmbudget_2D_L4_e ! 850 hPa - surface
+ ftem_layers(:ncol,4) = ftem_layers(:ncol,4) + ftem(:ncol,k)
+ gas_ac_layers(:ncol,4) = gas_ac_layers(:ncol,4) + gas_ac(:ncol,k)
+ end do
+ endif
if (history_gaschmbudget_2D_levels ) then
- call outfld(trim(solsym(n))//'_2DMSB_L1', ftem_layers(:ncol,1), pcols, lchnk)
- call outfld(trim(solsym(n))//'_2DMSB_L2', ftem_layers(:ncol,2), pcols, lchnk)
- call outfld(trim(solsym(n))//'_2DMSB_L3', ftem_layers(:ncol,3), pcols, lchnk)
- call outfld(trim(solsym(n))//'_2DMSB_L4', ftem_layers(:ncol,4), pcols, lchnk)
+ call outfld(trim(solsym(n))//'_2DMSB_L1', ftem_layers(:ncol,1), pcols, lchnk)
+ call outfld(trim(solsym(n))//'_2DMSB_L2', ftem_layers(:ncol,2), pcols, lchnk)
+ call outfld(trim(solsym(n))//'_2DMSB_L3', ftem_layers(:ncol,3), pcols, lchnk)
+ call outfld(trim(solsym(n))//'_2DMSB_L4', ftem_layers(:ncol,4), pcols, lchnk)
endif
- if( nstep == 0 ) then
- Diff_layers(:ncol,:) = 0.0_r8
- else
- Diff_layers(:ncol,:) = 0.0_r8
+ Diff_layers(:ncol,:) = 0.0_r8
+ if( nstep /= 0 ) then
Diff_layers(:ncol,1) = (ftem_layers(:ncol,1) - gas_ac_layers(:ncol,1))/dt
Diff_layers(:ncol,2) = (ftem_layers(:ncol,2) - gas_ac_layers(:ncol,2))/dt
Diff_layers(:ncol,3) = (ftem_layers(:ncol,3) - gas_ac_layers(:ncol,3))/dt
@@ -1629,18 +1628,18 @@ subroutine chem_timestep_tend( state, ptend, cam_in, cam_out, dt, pbuf, fh2o, f
trim(solsym(n))=='N2OLNZ' .or. trim(solsym(n))=='CH4LNZ') then
ftem_layers = 0.0_r8
gas_ac_layers = 0.0_r8
- do k=1,pver
- ftem_layers(:ncol,1) = ftem_layers(:ncol,1) + ftem(:ncol,k) * tropFlagInt(:ncol,k)
- gas_ac_layers(:ncol,1) = gas_ac_layers(:ncol,1) + gas_ac(:ncol,k) * tropFlagInt(:ncol,k)
- end do
+ if( nstep /= 0 ) then
+ do k=1,pver
+ ftem_layers(:ncol,1) = ftem_layers(:ncol,1) + ftem(:ncol,k) * tropFlagInt(:ncol,k)
+ gas_ac_layers(:ncol,1) = gas_ac_layers(:ncol,1) + gas_ac(:ncol,k) * tropFlagInt(:ncol,k)
+ end do
+ endif
if (history_gaschmbudget_2D_levels ) then
- call outfld(trim(solsym(n))//'_2DMSB_trop', ftem_layers(:ncol,1), pcols, lchnk )
+ call outfld(trim(solsym(n))//'_2DMSB_trop', ftem_layers(:ncol,1), pcols, lchnk )
endif
-
- if( nstep == 0 ) then
- Diff_layers(:ncol,:) = 0.0_r8
- else
- Diff_layers(:ncol,:) = 0.0_r8
+
+ Diff_layers(:ncol,:) = 0.0_r8
+ if( nstep /= 0 ) then
Diff_layers(:ncol,1) = (ftem_layers(:ncol,1) - gas_ac_layers(:ncol,1))/dt
end if
diff --git a/components/eam/src/dynamics/se/se_iop_intr_mod.F90 b/components/eam/src/dynamics/se/se_iop_intr_mod.F90
index 0798a0a79f5..ae29e5734a9 100644
--- a/components/eam/src/dynamics/se/se_iop_intr_mod.F90
+++ b/components/eam/src/dynamics/se/se_iop_intr_mod.F90
@@ -56,7 +56,7 @@ subroutine iop_setinitial(elem)
integer i, j, k, cix, ie, thelev
integer inumliq, inumice, icldliq, icldice
- if (.not. use_replay .and. get_nstep() .eq. 0 .and. par%dynproc) then
+ if (get_nstep() .eq. 0 .and. par%dynproc) then
call cnst_get_ind('NUMLIQ', inumliq, abrtf=.false.)
call cnst_get_ind('NUMICE', inumice, abrtf=.false.)
call cnst_get_ind('CLDLIQ', icldliq)
@@ -215,8 +215,7 @@ subroutine iop_setfield(elem,iop_update_phase1)
integer i, j, k, ie
do ie=1,nelemd
- if (have_ps .and. use_replay .and. .not. iop_update_phase1) elem(ie)%state%ps_v(:,:,:) = psobs
- if (have_ps .and. .not. use_replay) elem(ie)%state%ps_v(:,:,:) = psobs
+ if (have_ps) elem(ie)%state%ps_v(:,:,:) = psobs
do i=1, PLEV
! If DP CRM mode do NOT write over dycore vertical velocity
if ((have_omega .and. iop_update_phase1) .and. .not. dp_crm) elem(ie)%derived%omega_p(:,:,i)=wfld(i) ! set t to tobs at first
diff --git a/components/eam/src/dynamics/se/stepon.F90 b/components/eam/src/dynamics/se/stepon.F90
index 38a376935ee..783122d3147 100644
--- a/components/eam/src/dynamics/se/stepon.F90
+++ b/components/eam/src/dynamics/se/stepon.F90
@@ -526,9 +526,10 @@ subroutine stepon_run3(dtime, cam_out, phys_state, dyn_in, dyn_out)
use hycoef, only: hyam, hybm
use dimensions_mod, only: nlev, nelemd, np, npsq
use se_iop_intr_mod, only: iop_setfield, iop_setinitial
- use dyn_comp, only: TimeLevel
+ use dyn_comp, only: TimeLevel, hvcoord
use cam_history, only: outfld
use cam_logfile, only: iulog
+ use element_ops, only: get_temperature
use mpishorthand
real(r8), intent(in) :: dtime ! Time-step
real(r8) :: ftmp_temp(np,np,nlev,nelemd), ftmp_q(np,np,nlev,pcnst,nelemd)
@@ -542,6 +543,7 @@ subroutine stepon_run3(dtime, cam_out, phys_state, dyn_in, dyn_out)
type (dyn_export_t), intent(inout) :: dyn_out ! Dynamics export container
type (element_t), pointer :: elem(:)
integer :: rc, i, j, k, p, ie, tl_f
+ real(r8) :: temperature(np,np,nlev) ! Temperature from dynamics
#if defined (E3SM_SCM_REPLAY)
real(r8) :: forcing_temp(npsq,nlev), forcing_q(npsq,nlev,pcnst)
#endif
@@ -554,7 +556,10 @@ subroutine stepon_run3(dtime, cam_out, phys_state, dyn_in, dyn_out)
! Save ftmp stuff to get state before dynamics is called
do ie=1,nelemd
- ftmp_temp(:,:,:,ie) = dyn_in%elem(ie)%state%T(:,:,:,tl_f)
+
+ call get_temperature(dyn_in%elem(ie),temperature,hvcoord,tl_f)
+
+ ftmp_temp(:,:,:,ie) = temperature(:,:,:)
ftmp_q(:,:,:,:,ie) = dyn_in%elem(ie)%state%Q(:,:,:,:)
enddo
@@ -599,6 +604,10 @@ subroutine stepon_run3(dtime, cam_out, phys_state, dyn_in, dyn_out)
tl_f = TimeLevel%n0
do ie=1,nelemd
+
+ ! Get temperature from dynamics state
+ call get_temperature(dyn_in%elem(ie),temperature,hvcoord,tl_f)
+
do k=1,nlev
do j=1,np
do i=1,np
@@ -606,9 +615,9 @@ subroutine stepon_run3(dtime, cam_out, phys_state, dyn_in, dyn_out)
! Note that this calculation will not provide b4b results with
! an E3SM because the dynamics tendency is not computed in the exact
! same way as an E3SM run, introducing error with roundoff
- forcing_temp(i+(j-1)*np,k) = (dyn_in%elem(ie)%state%T(i,j,k,tl_f) - &
+ forcing_temp(i+(j-1)*np,k) = (temperature(i,j,k) - &
ftmp_temp(i,j,k,ie))/dtime - dyn_in%elem(ie)%derived%FT(i,j,k)
- out_temp(i+(j-1)*np,k) = dyn_in%elem(ie)%state%T(i,j,k,tl_f)
+ out_temp(i+(j-1)*np,k) = temperature(i,j,k)
out_u(i+(j-1)*np,k) = dyn_in%elem(ie)%state%v(i,j,1,k,tl_f)
out_v(i+(j-1)*np,k) = dyn_in%elem(ie)%state%v(i,j,2,k,tl_f)
out_q(i+(j-1)*np,k) = dyn_in%elem(ie)%state%Q(i,j,k,1)
diff --git a/components/eam/src/physics/cam/co2_diagnostics.F90 b/components/eam/src/physics/cam/co2_diagnostics.F90
index c24c908a524..81fdb3e9d76 100644
--- a/components/eam/src/physics/cam/co2_diagnostics.F90
+++ b/components/eam/src/physics/cam/co2_diagnostics.F90
@@ -433,16 +433,24 @@ subroutine print_global_carbon_diags(state, dtime, nstep)
( co2_print_diags_monthly .and. is_end_curr_month() ) .or. &
( co2_print_diags_total .and. is_last_step() ) ) then
call gmean(tc, tc_glob, c_num_var)
+ else
+ tc_glob(:) = 1.e36
end if
if ( co2_print_diags_timestep) then
call gmean(flux_ts, flux_ts_glob, f_ts_num_var)
+ else
+ flux_ts_glob(:) = 0._r8
end if
if ( co2_print_diags_monthly .and. is_end_curr_month() ) then
call gmean(flux_mon, flux_mon_glob, f_mon_num_var)
+ else
+ flux_mon_glob(:) = 0._r8
end if
if ( co2_print_diags_total .and. is_last_step() ) then
call gmean(flux_run, flux_run_glob, f_run_num_var)
+ else
+ flux_run_glob(:) = 0._r8
end if
! assign global means to readable variables
diff --git a/components/eam/src/physics/cam/ndrop.F90 b/components/eam/src/physics/cam/ndrop.F90
index b4dc999309b..6ffe89fa730 100644
--- a/components/eam/src/physics/cam/ndrop.F90
+++ b/components/eam/src/physics/cam/ndrop.F90
@@ -58,6 +58,10 @@ module ndrop
(/ 0.02_r8, 0.05_r8, 0.1_r8, 0.2_r8, 0.5_r8, 1.0_r8 /)
character(len=8) :: ccn_name(psat)= &
(/'CCN1','CCN2','CCN3','CCN4','CCN5','CCN6'/)
+! The following additional fields output CCN in units of 1/kg,
+! which could be handy for appplications such as SCREAM-SPA.
+character(len=8) :: ccnmair_name(psat)= &
+ (/'CCN1MAIR','CCN2MAIR','CCN3MAIR','CCN4MAIR','CCN5MAIR','CCN6MAIR'/)
! indices in state and pbuf structures
integer :: numliq_idx = -1
@@ -274,6 +278,12 @@ subroutine ndrop_init
call addfld('CCN5',(/ 'lev' /), 'A','1/cm3','CCN concentration at S=0.5%')
call addfld('CCN6',(/ 'lev' /), 'A','1/cm3','CCN concentration at S=1.0%')
+ call addfld('CCN1MAIR',(/ 'lev' /), 'A','1/kg','CCN concentration at S=0.02%')
+ call addfld('CCN2MAIR',(/ 'lev' /), 'A','1/kg','CCN concentration at S=0.05%')
+ call addfld('CCN3MAIR',(/ 'lev' /), 'A','1/kg','CCN concentration at S=0.1%')
+ call addfld('CCN4MAIR',(/ 'lev' /), 'A','1/kg','CCN concentration at S=0.2%')
+ call addfld('CCN5MAIR',(/ 'lev' /), 'A','1/kg','CCN concentration at S=0.5%')
+ call addfld('CCN6MAIR',(/ 'lev' /), 'A','1/kg','CCN concentration at S=1.0%')
call addfld('WTKE', (/ 'lev' /), 'A', 'm/s', 'Standard deviation of updraft velocity')
call addfld('NDROPMIX', (/ 'lev' /), 'A', '1/kg/s', 'Droplet number mixing')
@@ -435,7 +445,8 @@ subroutine dropmixnuc( &
real(r8), allocatable :: coltend(:,:) ! column tendency for diagnostic output
real(r8), allocatable :: coltend_cw(:,:) ! column tendency
- real(r8) :: ccn(pcols,pver,psat) ! number conc of aerosols activated at supersat
+ real(r8) :: ccn(pcols,pver,psat) ! number conc [1/m3] of aerosols activated at supersat
+ real(r8) :: ccnmair(pcols,pver,psat) ! number conc [1/kg] of aerosols activated at supersat
integer :: ccn3d_idx
real(r8), pointer :: ccn3d(:, :)
@@ -1105,9 +1116,10 @@ subroutine dropmixnuc( &
call outfld('NDROPMIX', ndropmix, pcols, lchnk)
call outfld('WTKE ', wtke, pcols, lchnk)
- call ccncalc(state, pbuf, cs, ccn)
+ call ccncalc(state, pbuf, cs, ccn, ccnmair)
do l = 1, psat
call outfld(ccn_name(l), ccn(1,1,l), pcols, lchnk)
+ call outfld(ccnmair_name(l), ccnmair(1,1,l), pcols, lchnk)
enddo
if(do_aerocom_ind3) then
@@ -1704,7 +1716,7 @@ end subroutine maxsat
!===============================================================================
-subroutine ccncalc(state, pbuf, cs, ccn)
+subroutine ccncalc(state, pbuf, cs, ccn, ccnmair)
! calculates number concentration of aerosols activated as CCN at
! supersaturation supersat.
@@ -1721,6 +1733,7 @@ subroutine ccncalc(state, pbuf, cs, ccn)
real(r8), intent(in) :: cs(pcols,pver) ! air density (kg/m3)
real(r8), intent(out) :: ccn(pcols,pver,psat) ! number conc of aerosols activated at supersat (#/m3)
+ real(r8), intent(out) :: ccnmair(pcols,pver,psat) ! number conc of aerosols activated at supersat (#/kg)
! local
@@ -1770,6 +1783,7 @@ subroutine ccncalc(state, pbuf, cs, ccn)
end do
ccn = 0._r8
+ ccnmair = 0._r8
do k=top_lev,pver
do i=1,ncol
@@ -1796,6 +1810,7 @@ subroutine ccncalc(state, pbuf, cs, ccn)
do i=1,ncol
arg(i)=argfactor(m)*log(sm(i)/super(l))
ccn(i,k,l)=ccn(i,k,l)+naerosol(i)*0.5_r8*(1._r8-erf(arg(i)))
+ ccnmair(i,k,l)=ccn(i,k,l)/cs(i,k) ! convert from #/m3 to #/kg
enddo
enddo
enddo
diff --git a/components/eam/src/physics/cam/physpkg.F90 b/components/eam/src/physics/cam/physpkg.F90
index f711bc8eaa6..5ece6725279 100644
--- a/components/eam/src/physics/cam/physpkg.F90
+++ b/components/eam/src/physics/cam/physpkg.F90
@@ -526,10 +526,6 @@ subroutine phys_inidat( cam_out, pbuf2d )
end do
deallocate(tptr)
- do lchnk=begchunk,endchunk
- cam_out(lchnk)%tbot(:) = posinf
- end do
-
!
! 3-D fields
!
diff --git a/components/eam/src/physics/p3/eam/micro_p3.F90 b/components/eam/src/physics/p3/eam/micro_p3.F90
index 730736a2dbf..e668cbaa494 100644
--- a/components/eam/src/physics/p3/eam/micro_p3.F90
+++ b/components/eam/src/physics/p3/eam/micro_p3.F90
@@ -56,7 +56,7 @@ module micro_p3
use phys_control, only: use_hetfrz_classnuc
! physical and mathematical constants
- use micro_p3_utils, only: rho_1000mb,rho_600mb,ar,br,f1r,f2r,rho_h2o,kr,kc,aimm,mi0,nccnst, &
+ use micro_p3_utils, only: rho_1000mb,rho_600mb,ar,br,f1r,f2r,rho_h2o,kr,kc,aimm,mi0, &
eci,eri,bcn,cpw,cons1,cons3,cons4,cons5,cons6,cons7, &
inv_rho_h2o,inv_dropmass,qsmall,nsmall,cp,g,rd,rv,ep_2,inv_cp, &
thrd,sxth,piov6,rho_rimeMin, &
@@ -441,7 +441,7 @@ SUBROUTINE p3_main_part1(kts, kte, kbot, ktop, kdir, do_predict_nc, do_prescribe
t_atm, rho, inv_rho, qv_sat_l, qv_sat_i, qv_supersat_i, rhofacr, rhofaci, acn, qv, th_atm, &
qc, nc, qr, nr, &
qi, ni, qm, bm, qc_incld, qr_incld, qi_incld, qm_incld, &
- nc_incld, nr_incld, ni_incld, bm_incld, is_nucleat_possible, is_hydromet_present)
+ nc_incld, nr_incld, ni_incld, bm_incld, is_nucleat_possible, is_hydromet_present, nccnst)
implicit none
@@ -449,7 +449,7 @@ SUBROUTINE p3_main_part1(kts, kte, kbot, ktop, kdir, do_predict_nc, do_prescribe
integer, intent(in) :: kts, kte, kbot, ktop, kdir
logical(btype), intent(in) :: do_predict_nc
- real(rtype), intent(in) :: dt
+ real(rtype), intent(in) :: dt, nccnst
real(rtype), intent(in), dimension(kts:kte) :: pres, dpres, dz, nc_nuceat_tend, exner, inv_exner, &
inv_cld_frac_l, inv_cld_frac_i, inv_cld_frac_r, latent_heat_vapor, latent_heat_sublim, latent_heat_fusion, nccn_prescribed
@@ -561,15 +561,15 @@ SUBROUTINE p3_main_part2(kts, kte, kbot, ktop, kdir, do_predict_nc, do_prescribe
qm, bm, latent_heat_vapor, latent_heat_sublim, latent_heat_fusion, qc_incld, qr_incld, qi_incld, qm_incld, nc_incld, nr_incld, &
ni_incld, bm_incld, mu_c, nu, lamc, cdist, cdist1, cdistr, mu_r, lamr, logn0r, qv2qi_depos_tend, precip_total_tend, &
nevapr, qr_evap_tend, vap_liq_exchange, vap_ice_exchange, liq_ice_exchange, pratot, &
- prctot, frzimm, frzcnt, frzdep, p3_tend_out, is_hydromet_present)
+ prctot, frzimm, frzcnt, frzdep, p3_tend_out, is_hydromet_present, do_precip_off, nccnst)
implicit none
! args
integer, intent(in) :: kts, kte, kbot, ktop, kdir
- logical(btype), intent(in) :: do_predict_nc, do_prescribed_CCN
- real(rtype), intent(in) :: dt, inv_dt
+ logical(btype), intent(in) :: do_predict_nc, do_prescribed_CCN, do_precip_off
+ real(rtype), intent(in) :: dt, inv_dt, nccnst
real(rtype), intent(in) :: p3_autocon_coeff, p3_accret_coeff, p3_qc_autocon_expon, p3_nc_autocon_expon, p3_qc_accret_expon, &
p3_wbf_coeff, p3_embryonic_rain_size, p3_max_mean_rain_size
@@ -875,7 +875,7 @@ SUBROUTINE p3_main_part2(kts, kte, kbot, ktop, kdir, do_predict_nc, do_prescribe
! NOTE: cloud_water_autoconversion must be called before droplet_self_collection
call cloud_water_autoconversion(rho(k),qc_incld(k),nc_incld(k),inv_qc_relvar(k),&
p3_autocon_coeff,p3_qc_autocon_expon,p3_nc_autocon_expon,p3_embryonic_rain_size,&
- qc2qr_autoconv_tend,nc2nr_autoconv_tend,ncautr)
+ do_precip_off,qc2qr_autoconv_tend,nc2nr_autoconv_tend,ncautr)
!............................
! self-collection of droplets
@@ -978,7 +978,7 @@ SUBROUTINE p3_main_part2(kts, kte, kbot, ktop, kdir, do_predict_nc, do_prescribe
!-- warm-phase only processes:
call update_prognostic_liquid(qc2qr_accret_tend, nc_accret_tend, qc2qr_autoconv_tend, nc2nr_autoconv_tend, ncautr, &
nc_selfcollect_tend, qr2qv_evap_tend, nr_evap_tend, nr_selfcollect_tend, &
- do_predict_nc, do_prescribed_CCN, inv_rho(k), exner(k), latent_heat_vapor(k), dt, &
+ do_predict_nc, nccnst, do_prescribed_CCN, inv_rho(k), exner(k), latent_heat_vapor(k), dt, &
th_atm(k), qv(k), qc(k), nc(k), qr(k), nr(k))
!==
@@ -1259,7 +1259,7 @@ SUBROUTINE p3_main(qc,nc,qr,nr,th_atm,qv,dt,qi,qm,ni,bm,
p3_wbf_coeff,p3_mincdnc,p3_max_mean_rain_size,p3_embryonic_rain_size, &
dpres,exner,qv2qi_depos_tend,precip_total_tend,nevapr,qr_evap_tend,precip_liq_flux,precip_ice_flux,rflx,sflx,cflx,cld_frac_r,cld_frac_l,cld_frac_i, &
p3_tend_out,mu_c,lamc,liq_ice_exchange,vap_liq_exchange, &
- vap_ice_exchange,qv_prev,t_prev,col_location,diag_equiv_reflectivity,diag_ze_rain,diag_ze_ice &
+ vap_ice_exchange,qv_prev,t_prev,col_location,do_precip_off,nccnst,diag_equiv_reflectivity,diag_ze_rain,diag_ze_ice &
#ifdef SCREAM_CONFIG_IS_CMAKE
,elapsed_s &
#endif
@@ -1337,6 +1337,10 @@ SUBROUTINE p3_main(qc,nc,qr,nr,th_atm,qv,dt,qi,qm,ni,bm,
! INPUT for prescribed CCN option
logical(btype), intent(in) :: do_prescribed_CCN
+ ! INPUT for idealization options
+ logical(btype), intent(in) :: do_precip_off
+ real(rtype), intent(in) :: nccnst
+
! INPUT for p3 tuning parameters
real(rtype), intent(in) :: p3_autocon_coeff ! autconversion coefficient
real(rtype), intent(in) :: p3_accret_coeff ! accretion coefficient
@@ -1517,7 +1521,7 @@ SUBROUTINE p3_main(qc,nc,qr,nr,th_atm,qv,dt,qi,qm,ni,bm,
rhofaci(i,:), acn(i,:), qv(i,:), th_atm(i,:), qc(i,:), nc(i,:), qr(i,:), nr(i,:), &
qi(i,:), ni(i,:), qm(i,:), bm(i,:), qc_incld(i,:), qr_incld(i,:), &
qi_incld(i,:), qm_incld(i,:), nc_incld(i,:), nr_incld(i,:), &
- ni_incld(i,:), bm_incld(i,:), is_nucleat_possible, is_hydromet_present)
+ ni_incld(i,:), bm_incld(i,:), is_nucleat_possible, is_hydromet_present, nccnst)
if (debug_ON) then
tmparr1(i,:) = th_atm(i,:)*inv_exner(i,:)!(pres(i,:)*1.e-5)**(rd*inv_cp)
@@ -1541,7 +1545,8 @@ SUBROUTINE p3_main(qc,nc,qr,nr,th_atm,qv,dt,qi,qm,ni,bm,
bm_incld(i,:), mu_c(i,:), nu(i,:), lamc(i,:), cdist(i,:), cdist1(i,:), &
cdistr(i,:), mu_r(i,:), lamr(i,:), logn0r(i,:), qv2qi_depos_tend(i,:), precip_total_tend(i,:), &
nevapr(i,:), qr_evap_tend(i,:), vap_liq_exchange(i,:), vap_ice_exchange(i,:), &
- liq_ice_exchange(i,:), pratot(i,:), prctot(i,:), frzimm(i,:), frzcnt(i,:), frzdep(i,:), p3_tend_out(i,:,:), is_hydromet_present)
+ liq_ice_exchange(i,:), pratot(i,:), prctot(i,:), frzimm(i,:), frzcnt(i,:), frzdep(i,:), p3_tend_out(i,:,:), is_hydromet_present, &
+ do_precip_off, nccnst)
! measure microphysics processes tendency output
@@ -2950,7 +2955,7 @@ end subroutine rain_self_collection
subroutine cloud_water_autoconversion(rho,qc_incld,nc_incld,inv_qc_relvar, &
p3_autocon_coeff,p3_qc_autocon_expon,p3_nc_autocon_expon,p3_embryonic_rain_size, &
- qc2qr_autoconv_tend,nc2nr_autoconv_tend,ncautr)
+ do_precip_off,qc2qr_autoconv_tend,nc2nr_autoconv_tend,ncautr)
implicit none
@@ -2963,6 +2968,8 @@ subroutine cloud_water_autoconversion(rho,qc_incld,nc_incld,inv_qc_relvar,
real(rtype), intent(in) :: p3_nc_autocon_expon
real(rtype), intent(in) :: p3_embryonic_rain_size
+ logical(btype), intent(in) :: do_precip_off
+
real(rtype), intent(out) :: qc2qr_autoconv_tend
real(rtype), intent(out) :: nc2nr_autoconv_tend
real(rtype), intent(out) :: ncautr
@@ -2981,8 +2988,9 @@ subroutine cloud_water_autoconversion(rho,qc_incld,nc_incld,inv_qc_relvar,
ncautr = qc2qr_autoconv_tend*cons3*(1._rtype/bfb_pow(p3_embryonic_rain_size,3._rtype))
nc2nr_autoconv_tend = qc2qr_autoconv_tend*nc_incld/qc_incld
- if (qc2qr_autoconv_tend .eq.0._rtype) nc2nr_autoconv_tend = 0._rtype
- if (nc2nr_autoconv_tend.eq.0._rtype) qc2qr_autoconv_tend = 0._rtype
+ if (qc2qr_autoconv_tend .eq.0._rtype .or. do_precip_off) nc2nr_autoconv_tend = 0._rtype
+ if (nc2nr_autoconv_tend.eq.0._rtype .or. do_precip_off) qc2qr_autoconv_tend = 0._rtype
+ if (do_precip_off) ncautr = 0._rtype
endif qc_not_small
@@ -3502,7 +3510,7 @@ end subroutine update_prognostic_ice
subroutine update_prognostic_liquid(qc2qr_accret_tend,nc_accret_tend,qc2qr_autoconv_tend,nc2nr_autoconv_tend, &
ncautr,nc_selfcollect_tend, qr2qv_evap_tend,nr_evap_tend,nr_selfcollect_tend, &
- do_predict_nc, do_prescribed_CCN, inv_rho,exner,latent_heat_vapor,dt, &
+ do_predict_nc, nccnst, do_prescribed_CCN, inv_rho,exner,latent_heat_vapor,dt, &
th_atm,qv,qc,nc,qr,nr)
!-- warm-phase only processes:
@@ -3520,6 +3528,7 @@ subroutine update_prognostic_liquid(qc2qr_accret_tend,nc_accret_tend,qc2qr_autoc
logical(btype), intent(in) :: do_predict_nc, do_prescribed_CCN
+ real(rtype), intent(in) :: nccnst
real(rtype), intent(in) :: inv_rho
real(rtype), intent(in) :: exner
real(rtype), intent(in) :: latent_heat_vapor
diff --git a/components/eam/src/physics/p3/eam/micro_p3_interface.F90 b/components/eam/src/physics/p3/eam/micro_p3_interface.F90
index 9d53e95fc17..bb6e164b4a1 100644
--- a/components/eam/src/physics/p3/eam/micro_p3_interface.F90
+++ b/components/eam/src/physics/p3/eam/micro_p3_interface.F90
@@ -42,6 +42,7 @@ module micro_p3_interface
use ncdio_atm, only: infld
use ppgrid, only: begchunk, endchunk, pcols, pver, pverp,psubcols
use cam_history_support, only: add_hist_coord
+ use iop_data_mod, only: precip_off
implicit none
save
@@ -131,8 +132,8 @@ module micro_p3_interface
p3_wbf_coeff = huge(1.0_rtype), &
p3_mincdnc = huge(1.0_rtype), &
p3_max_mean_rain_size = huge(1.0_rtype), &
- p3_embryonic_rain_size = huge(1.0_rtype)
-
+ p3_embryonic_rain_size = huge(1.0_rtype), &
+ micro_nccons = huge(1.0_rtype)
integer :: ncnst
@@ -165,7 +166,7 @@ subroutine micro_p3_readnl(nlfile)
micro_p3_tableversion, micro_p3_lookup_dir, micro_aerosolactivation, micro_subgrid_cloud, &
micro_tend_output, p3_autocon_coeff, p3_qc_autocon_expon, p3_nc_autocon_expon, p3_accret_coeff, &
p3_qc_accret_expon, p3_wbf_coeff, p3_max_mean_rain_size, p3_embryonic_rain_size, &
- do_prescribed_CCN, do_Cooper_inP3, p3_mincdnc
+ do_prescribed_CCN, do_Cooper_inP3, p3_mincdnc, micro_nccons
!-----------------------------------------------------------------------------
@@ -220,6 +221,7 @@ subroutine micro_p3_readnl(nlfile)
call mpibcast(p3_embryonic_rain_size, 1 , mpir8, 0, mpicom)
call mpibcast(do_prescribed_CCN, 1, mpilog, 0, mpicom)
call mpibcast(do_Cooper_inP3, 1, mpilog, 0, mpicom)
+ call mpibcast(micro_nccons, 1, mpir8, 0, mpicom)
#endif
@@ -1363,6 +1365,8 @@ subroutine micro_p3_tend(state, ptend, dtime, pbuf)
qv_prev(its:ite,kts:kte), & ! IN qv at end of prev p3_main call kg kg-1
t_prev(its:ite,kts:kte), & ! IN t at end of prev p3_main call K
col_location(its:ite,:3), & ! IN column locations
+ precip_off, & ! IN Option to turn precip (liquid) off
+ micro_nccons, & ! IN Option for constant droplet concentration
diag_equiv_reflectivity(its:ite,kts:kte), & !OUT equivalent reflectivity (rain + ice) [dBz]
diag_ze_rain(its:ite,kts:kte),diag_ze_ice(its:ite,kts:kte)) !OUT equivalent reflectivity for rain and ice [dBz]
diff --git a/components/eam/src/physics/p3/eam/micro_p3_utils.F90 b/components/eam/src/physics/p3/eam/micro_p3_utils.F90
index dab1c475132..c2182a14206 100644
--- a/components/eam/src/physics/p3/eam/micro_p3_utils.F90
+++ b/components/eam/src/physics/p3/eam/micro_p3_utils.F90
@@ -33,9 +33,6 @@ module micro_p3_utils
! maximum total ice concentration (sum of all categories)
real(rtype), public, parameter :: max_total_ni = 500.e+3_rtype ! (m)
- ! droplet concentration (m-3)
- real(rtype), public, parameter :: nccnst = 200.e+6_rtype
-
! parameters for Seifert and Beheng (2001) autoconversion/accretion
real(rtype), public, parameter :: kc = 9.44e+9_rtype
real(rtype), public, parameter :: kr = 5.78e+3_rtype
diff --git a/components/eamxx/mkdocs.yml b/components/eamxx/mkdocs.yaml
similarity index 100%
rename from components/eamxx/mkdocs.yml
rename to components/eamxx/mkdocs.yaml
diff --git a/components/eamxx/src/share/util/scream_utils.hpp b/components/eamxx/src/share/util/scream_utils.hpp
index 28a9b3af9d9..dbb315fc4b9 100644
--- a/components/eamxx/src/share/util/scream_utils.hpp
+++ b/components/eamxx/src/share/util/scream_utils.hpp
@@ -11,6 +11,7 @@
#include
#include
#include