Skip to content
Merged
2 changes: 2 additions & 0 deletions _toc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Binary file removed images/challenge/i2000.png
Binary file not shown.
Binary file removed images/challenge/ihist.png
Binary file not shown.
47 changes: 37 additions & 10 deletions notebooks/challenge/clm_ctsm/clm_ctsm.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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."
]
Expand Down Expand Up @@ -122,24 +123,50 @@
},
{
"cell_type": "markdown",
"id": "68ca54e2-d8ad-41bc-be8f-31a85eec6e65",
"id": "aedfeed6",
"metadata": {},
"source": [
"![icase](../../../images/challenge/i2000.png)\n",
"\n",
"*<p style=\"text-align: left;\"> Figure: I2000 compset definition. </p>*"
"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": [
"<div class=\"alert alert-info\" style=\"text-align: center;\">\n",
"\n",
"[I Compset definition](https://www2.cesm.ucar.edu/models/cesm2/config/compsets.html)\n",
"\n",
"</div>"
"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",
Comment thread
ekluzek marked this conversation as resolved.
"| 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 |"
]
},
{
Expand Down
55 changes: 46 additions & 9 deletions notebooks/challenge/clm_ctsm/clm_exercise_2.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Comment thread
ekluzek marked this conversation as resolved.
"\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",
"*<p style=\"text-align: left;\"> Figure: IHIST compset definition. </p>*"
"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."
]
},
{
Expand Down
51 changes: 44 additions & 7 deletions notebooks/challenge/clm_ctsm/clm_exercise_3.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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",
"<div>\n",
"<img src=\"../../../images/challenge/FATES_schematic.png\" width=\"700\" alt=\"Conceptual relationship between CLM and CLM-FATES\"/>\n",
"</div>\n",
"![Conceptual relationship between CLM and CLM-FATES](../../../images/challenge/FATES_schematic.png \"Conceptual relationship between CLM and CLM-FATES\")\n",
"\n",
"*<p style=\"text-align: left;\">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 (r<sub>a</sub>) are influenced by the FATES-provided roughness length, displacement height, and leaf dimension. †: Only used in FATES hydraulics mode. From Foster et al. (202).</p>*"
]
Expand All @@ -47,17 +45,56 @@
"\n",
"Note that there are different combinations of no-competition and fixed biogeography mode that will result in different model behaviors. See the <a href=\"https://fates-users-guide.readthedocs.io/en/latest/user/namelist-options.html\">FATES namelist documentation</a> for these options.\n",
"\n",
"<div>\n",
"<img src=\"../../../images/challenge/FATES_complexity_modes.png\" width=\"1000px\" alt=\"FATES complexity modes\"/>\n",
"</div>"
"![FATES complexity modes](../../../images/challenge/FATES_complexity_modes.png \"FATES complexity modes\")"
]
},
{
"cell_type": "markdown",
"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 <a href=\"https://fates-users-guide.readthedocs.io/en/latest/user/namelist-options.html\">online documentation</a> 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 <a href=\"https://fates-users-guide.readthedocs.io/en/latest/user/namelist-options.html\">online documentation</a> 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 |"
]
},
{
Expand Down
4 changes: 2 additions & 2 deletions notebooks/challenge/clm_ctsm/clm_exercise_4.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down