diff --git a/_toc.yml b/_toc.yml index 6f1df43fb..f1bf86439 100644 --- a/_toc.yml +++ b/_toc.yml @@ -128,6 +128,8 @@ chapters: - file: notebooks/challenge/clm_ctsm/clm_exercise_1 - file: notebooks/challenge/clm_ctsm/clm_exercise_2 - file: notebooks/challenge/clm_ctsm/clm_exercise_3 + - file: notebooks/challenge/clm_ctsm/clm_exercise_4 + - file: notebooks/challenge/clm_ctsm/clm_exercise_5 - file: notebooks/challenge/mom/mom sections: - file: notebooks/challenge/mom/mom_exercise_1 diff --git a/images/challenge/i2000.png b/images/challenge/i2000.png deleted file mode 100644 index 98dd5b9c7..000000000 Binary files a/images/challenge/i2000.png and /dev/null differ diff --git a/images/challenge/ihist.png b/images/challenge/ihist.png deleted file mode 100644 index cc1966145..000000000 Binary files a/images/challenge/ihist.png and /dev/null differ diff --git a/notebooks/challenge/clm_ctsm/clm_ctsm.ipynb b/notebooks/challenge/clm_ctsm/clm_ctsm.ipynb index 0cef3f3a7..688094a25 100644 --- a/notebooks/challenge/clm_ctsm/clm_ctsm.ipynb +++ b/notebooks/challenge/clm_ctsm/clm_ctsm.ipynb @@ -49,6 +49,7 @@ "- This exercise uses the same code base as the rest of the tutorial. \n", "- You will be using the I2000Clm60Sp, IHistClm60BgcCrop, and I2000Clm60FatesSpCrujraRsGs compsets at the f19_f19_mt233 resolution.\n", "- You will run a CLM SP simulation, a CLM BGC simulation, and two FATES SP simulations.\n", + "- The first two use the GSWP3 atmospheric forcing and the last two use CRUJRA-2024 forcing.\n", "- You will modify a json input file.\n", "- You will use the `xarray` and `matplotlib` libraries to evaluate how the simulations differ." ] @@ -122,24 +123,50 @@ }, { "cell_type": "markdown", - "id": "68ca54e2-d8ad-41bc-be8f-31a85eec6e65", + "id": "aedfeed6", "metadata": {}, "source": [ - "![icase](../../../images/challenge/i2000.png)\n", - "\n", - "*

Figure: I2000 compset definition.

*" + "As explained earlier, you can get information on compsets by using \"query_config in the cime/scripts directory under your CESM checkout.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "06a6c211", + "metadata": { + "vscode": { + "languageId": "shellscript" + } + }, + "outputs": [], + "source": [ + "cd /glade/u/home/$USER/code/my_cesm_code\n", + "cime/scripts/query_config --compsets clm | grep \"I2000Clm60Sp \"\n", + "\n" ] }, { "cell_type": "markdown", - "id": "c93817fd-8031-4917-bf45-eb0f442578f9", + "id": "96029216", "metadata": {}, "source": [ - "
\n", - "\n", - "[I Compset definition](https://www2.cesm.ucar.edu/models/cesm2/config/compsets.html)\n", - "\n", - "
" + "Which will return the following:\n", + "\n", + " I2000Clm60Sp : 2000_DATM%GSWP3v1_CLM60%SP_SICE_SOCN_MOSART_SGLC_SWAV\n", + "\n", + "Which breaks down into:\n", + "\n", + "| Field | Description |\n", + "| ----- | ----------- |\n", + "| 2000 | year 2000 conditions |\n", + "| DATM%GSWP3v1 | Data Atmosphere Model using GSWP3v1 forcing |\n", + "| CLM60%SP | CTSM with clm6_0 physics defaults for big-leaf model with Satellite Phenology |\n", + "| SICE | Stub Sea-ice |\n", + "| SOCN | Stub Ocean |\n", + "| MOSART | MOSART River model |\n", + "| SGLC | Stub Glacier model |\n", + "| SWAV | Stub Ocean Wave model |" ] }, { diff --git a/notebooks/challenge/clm_ctsm/clm_exercise_2.ipynb b/notebooks/challenge/clm_ctsm/clm_exercise_2.ipynb index 7cbee1ef5..c79e0f665 100644 --- a/notebooks/challenge/clm_ctsm/clm_exercise_2.ipynb +++ b/notebooks/challenge/clm_ctsm/clm_exercise_2.ipynb @@ -10,24 +10,61 @@ }, { "cell_type": "markdown", - "id": "0037b73f-f174-48e7-8e4f-0744d7d23fe0", + "id": "9fb850dd", "metadata": {}, "source": [ - "We can use a different I compset: IHistClm60BgcCrop. This experiment is a 20th century transient run using CRUJRA and the biogeochemistry model including crops.\n", - "\n", - "In biogeochemistry (BGC) mode, CLM grows vegetation rather than prescribing it, computing photosynthesis, allocating carbon to leaves, stems, and roots, and cycling carbon and nitrogen through vegetation, litter, and soil. Leaf area becomes a prognostic result of that carbon balance rather than a satellite input, which makes BGC far better for studying how vegetation responds to change, but costlier, since the carbon pools must be spun up to equilibrium first.\n", - "\n", - "By default, IHIST compsets have a default `finidat` (initialization file) that they use to initialize the model. We will leave this at default." + "We can use a different I compset: IHistClm60BgcCrop. This experiment is a 20th century transient run using GSWP3 forcing and the biogeochemistry model including crops.\n" ] }, { "cell_type": "markdown", - "id": "bdd131c8-d1ec-4568-81dd-701f8bdbe6cb", + "id": "7bea699c", "metadata": {}, "source": [ - "![icase](../../../images/challenge/ihist.png)\n", + "Using query_config again we learn more about this compset:\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b4513705", + "metadata": { + "vscode": { + "languageId": "shellscript" + } + }, + "outputs": [], + "source": [ + "cd /glade/u/home/$USER/code/my_cesm_code\n", + "cime/scripts/query_config --compsets clm | grep \"I2000Clm60Sp \"\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "fdf77396", + "metadata": {}, + "source": [ + "Which will return the following:\n", + " IHistClm60BgcCrop : HIST_DATM%GSWP3v1_CLM60%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV\n", + "\n", + "Which breaks down into:\n", + "\n", + "| Field | Description |\n", + "| ----- | ----------- |\n", + "| HIST | Historical transient starting in 1850 |\n", + "| DATM%GSWP3v1 | Data Atmosphere Model using GSWP3v1 forcing |\n", + "| CLM60%BGC-CROP | CTSM with clm6_0 physics defaults for big-leaf model with Biogeochemistry and Prognostic Crops |\n", + "| SICE | Stub Sea-ice |\n", + "| SOCN | Stub Ocean |\n", + "| MOSART | MOSART River model |\n", + "| SGLC | Stub Glacier model |\n", + "| SWAV | Stub Ocean Wave model |\n", "\n", - "*

Figure: IHIST compset definition.

*" + "In biogeochemistry (BGC) mode, CLM grows vegetation rather than prescribing it, computing photosynthesis, allocating carbon to leaves, stems, and roots, and cycling carbon and nitrogen through vegetation, litter, and soil. Leaf area becomes a prognostic result of that carbon balance rather than a satellite input, which makes BGC far better for studying how vegetation responds to change, but costlier, since the carbon pools must be spun up to equilibrium first.\n", + "\n", + "By default, IHIST compsets have a default `finidat` (initialization file) that they use to initialize the model. We will leave this at default." ] }, { diff --git a/notebooks/challenge/clm_ctsm/clm_exercise_3.ipynb b/notebooks/challenge/clm_ctsm/clm_exercise_3.ipynb index daa52ed4f..2d1ccf855 100644 --- a/notebooks/challenge/clm_ctsm/clm_exercise_3.ipynb +++ b/notebooks/challenge/clm_ctsm/clm_exercise_3.ipynb @@ -21,9 +21,7 @@ "\n", "When CLM is coupled to FATES (\"CLM-FATES\"), CLM provides site and soil conditions and atmospheric forcing, while FATES simulates plant physiological, vegetation demography, and biogeochemical processes.\n", "\n", - "
\n", - "\"Conceptual\n", - "
\n", + "![Conceptual relationship between CLM and CLM-FATES](../../../images/challenge/FATES_schematic.png \"Conceptual relationship between CLM and CLM-FATES\")\n", "\n", "*

Processes simulated in CLM-FATES by each model. Top: processes simulated by FATES when connected to CLM. Arrows in purple indicate conditions supplied to FATES by CLM. Arrows in green indicate conditions supplied to CLM by FATES. Bottom: Processes simulated by CLM when connected to FATES. Green starred variables are simulated and provided by FATES or in the case of aerodynamic resistance (ra) are influenced by the FATES-provided roughness length, displacement height, and leaf dimension. †: Only used in FATES hydraulics mode. From Foster et al. (202).

*" ] @@ -47,9 +45,7 @@ "\n", "Note that there are different combinations of no-competition and fixed biogeography mode that will result in different model behaviors. See the FATES namelist documentation for these options.\n", "\n", - "
\n", - "\"FATES\n", - "
" + "![FATES complexity modes](../../../images/challenge/FATES_complexity_modes.png \"FATES complexity modes\")" ] }, { @@ -57,7 +53,48 @@ "id": "b322a528-9e23-45b9-aaed-b05dfe0292f5", "metadata": {}, "source": [ - "We will be running FATES in Satellite Phenology mode. This can be done by either choosing an SP compset (e.g. ) or manually setting this via the `user_nl_clm` file, with the parameters `use_fates_sp`, `use_fates_nocomp`, `use_fates_fixed_biogeog`. Check out the online documentation for more information on these parameters." + "We will be running FATES in Satellite Phenology mode. This can be done by either choosing an SP compset (e.g. ) or manually setting this via the `user_nl_clm` file, with the parameters `use_fates_sp`, `use_fates_nocomp`, `use_fates_fixed_biogeog`. Check out the online documentation for more information on these parameters.\n", + "\n", + "Using query_config again we learn more about the FATES compset we will use:\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "286afe86", + "metadata": { + "vscode": { + "languageId": "shellscript" + } + }, + "outputs": [], + "source": [ + "cd /glade/u/home/$USER/code/my_cesm_code\n", + "cime/scripts/query_config --compsets clm | grep \"I2000Clm60FatesSpCrujraRsGs \"\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "81ec23c2", + "metadata": {}, + "source": [ + "Which returns the following:\n", + "I2000Clm60FatesSpCrujraRsGs : 2000_DATM%CRUJRA2024b_CLM60%FATES-SP_SICE_SOCN_SROF_SGLC_SWAV\n", + "\n", + "Which breaks down into:\n", + "\n", + "| Field | Description |\n", + "| ----- | ----------- |\n", + "| 2000 | year 2000 conditions |\n", + "| DATM%CRUJRA2024b | Data Atmosphere Model using CRJRA 2024 forcing |\n", + "| CLM60%FATES-SP | CTSM with clm6_0 physics defaults for FATES vegetation model with Satellite Phenology |\n", + "| SICE | Stub Sea-ice |\n", + "| SOCN | Stub Ocean |\n", + "| SROF | Stub River model |\n", + "| SGLC | Stub Glacier model |\n", + "| SWAV | Stub Ocean Wave model |" ] }, { diff --git a/notebooks/challenge/clm_ctsm/clm_exercise_4.ipynb b/notebooks/challenge/clm_ctsm/clm_exercise_4.ipynb index ac63eeb13..8a8ed1948 100644 --- a/notebooks/challenge/clm_ctsm/clm_exercise_4.ipynb +++ b/notebooks/challenge/clm_ctsm/clm_exercise_4.ipynb @@ -24,12 +24,12 @@ "\n", "* CLM-SP: standard \"big-leaf\" CLM with satellite-prescribed phenology\n", "* CLM-BGC: big-leaf CLM with prognostic biogeochemistry (carbon/nitrogen cycling, prognostic LAI)\n", - "* FATES-SP: FATES with satellite-prescribed phenology\n", + "* FATES-SP: FATES with satellite-prescribed phenology and CRUJRA-2024 meteorology\n", "* FATES-SP (modified parameters): the same FATES-SP configuration with a perturbed parameter file\n", "\n", "Together these let you make three comparisons, each isolating a different piece:\n", "\n", - "1. CLM-SP vs. FATES-SP: same meteorology and prescribed phenology, different vegetation model.\n", + "1. CLM-SP vs. FATES-SP: same prescribed phenology, different vegetation model, different meteorology.\n", "2. FATES-SP vs. FATES-SP (modified): how FATES output responds to a parameter change.\n", "3. CLM-SP vs. CLM-BGC: prescribed vs. prognostic vegetation within big-leaf CLM.\n", "\n",