diff --git a/notebooks/challenge/clm_ctsm/clm_ctsm.ipynb b/notebooks/challenge/clm_ctsm/clm_ctsm.ipynb
index d48daa0..69bd953 100644
--- a/notebooks/challenge/clm_ctsm/clm_ctsm.ipynb
+++ b/notebooks/challenge/clm_ctsm/clm_ctsm.ipynb
@@ -27,7 +27,7 @@
"id": "346cbd7b-3b8e-41f0-b120-b369ab20f6cc",
"metadata": {},
"source": [
- "- Students will learn what an \"I\" compset is, the types of forcing available to run one, and how to run one.\n",
+ "- Students will learn what an `I` compset is, the types of forcing available to run one, and how to run one.\n",
"- Students will learn how to run a default CLM (\"big leaf\") case with satellite phenology and one with prognostic BGC and crops and compare the two experiments.\n",
"- Students will learn how to run FATES and compare to big leaf CLM output.\n",
"- Students will learn how to modify an input parameter file and investigate its effect on output."
@@ -47,7 +47,7 @@
"metadata": {},
"source": [
"- 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 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",
@@ -105,7 +105,7 @@
"id": "cb8a0e10-a920-41dd-8bc4-5c03395d231e",
"metadata": {},
"source": [
- "## What is an I case?"
+ "## What is an `I` case?"
]
},
{
@@ -113,7 +113,7 @@
"id": "69988cae-fd26-4fda-8fee-6ab52e79f42d",
"metadata": {},
"source": [
- "\"I\" compsets have active CLM with a data atmosphere (DATM). The sea ice, ocean, atmosphere, and wave models are not active. There are three types of options for I compsets:\n",
+ "`I` compsets have active CLM with a data atmosphere (DATM). The sea ice, ocean, atmosphere, and wave models are not active. There are three types of options for `I` compsets:\n",
"- SP: Satellite Phenology (with CLM big leaf)\n",
"- BGC: Biogeochemistry (with CLM big leaf)\n",
"- FATES: The FATES cohort vegetation model instead of big leaf, either SP or BGC\n",
@@ -126,7 +126,7 @@
"id": "aedfeed6",
"metadata": {},
"source": [
- "As explained earlier, you can get information on compsets by using \"query_config in the cime/scripts directory under your CESM checkout.\n",
+ "As explained earlier, you can get information on compsets by using `query_config` in the `cime/scripts` directory under your CESM checkout.\n",
"\n",
"```bash\n",
"cd /glade/u/home/$USER/code/my_cesm_code\n",
@@ -141,7 +141,9 @@
"source": [
"Which will return the following:\n",
"\n",
+ "```\n",
" I2000Clm60Sp : 2000_DATM%GSWP3v1_CLM60%SP_SICE_SOCN_MOSART_SGLC_SWAV\n",
+ "```\n",
"\n",
"Which breaks down into:\n",
"\n",
@@ -149,7 +151,7 @@
"| ----- | ----------- |\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",
+ "| 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",
@@ -187,14 +189,6 @@
"ds.GPP.plot()\n",
"```"
]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "b0a882d4-0c0e-4d2e-b59f-df2a648fa93d",
- "metadata": {},
- "outputs": [],
- "source": []
}
],
"metadata": {
diff --git a/notebooks/challenge/clm_ctsm/clm_exercise_1.ipynb b/notebooks/challenge/clm_ctsm/clm_exercise_1.ipynb
index d907e6a..27d3524 100644
--- a/notebooks/challenge/clm_ctsm/clm_exercise_1.ipynb
+++ b/notebooks/challenge/clm_ctsm/clm_exercise_1.ipynb
@@ -95,7 +95,7 @@
"**Create a new case**\n",
"\n",
"Create a new case i.clm.sp.year1 with the command:\n",
- "```\n",
+ "```bash\n",
"cd /glade/u/home/$USER/code/my_clm_code/cime/scripts\n",
"./create_newcase --case ~/cases/i.clm.sp.year1 --compset I2000Clm60Sp --res f19_f19_mt233 --run-unsupported\n",
"```\n",
@@ -103,7 +103,7 @@
"\n",
"**Case setup**\n",
"\n",
- "``` \n",
+ "```bash\n",
"cd ~/cases/i.clm.sp.year1\n",
"./case.setup\n",
"```\n",
@@ -111,15 +111,15 @@
"
\n",
"\n",
"**Set run length**\n",
- " \n",
+ "\n",
"Change the `run length`:\n",
- "``` \n",
+ "```bash\n",
"./xmlchange STOP_N=1,STOP_OPTION=nyears\n",
"```\n",
"
\n",
- " \n",
+ "\n",
"Check the namelist by running:\n",
- "``` \n",
+ "```bash\n",
"./preview_namelists\n",
"```\n",
"
\n",
@@ -129,27 +129,27 @@
"If needed, change job queue and account number. \n",
"\n",
"For instance, to run in the queue `tutorial` and the project number `UESM0016`:\n",
- "``` \n",
+ "```bash\n",
"./xmlchange JOB_QUEUE=tutorial,PROJECT=UESM0016 --force\n",
"```\n",
"
\n",
"\n",
"**Change the wallclock time**\n",
"\n",
- "```\n",
+ "```bash\n",
"./xmlchange --subgroup case.run JOB_WALLCLOCK_TIME=01:00:00\n",
"```\n",
"
\n",
"\n",
"\n",
"**Build case**\n",
- "```\n",
+ "```bash\n",
"qcmd -- ./case.build\n",
"```\n",
"
\n",
"\n",
"**Submit case**\n",
- "```\n",
+ "```bash\n",
"./case.submit\n",
"```\n",
"
\n",
@@ -157,11 +157,11 @@
"**Check the run:**\n",
"When the run is completed, look into the archive directory for: \n",
"i.clm.sp.year1. \n",
- " \n",
- "(1) Check that your archive directory on derecho (The path will be different on other machines): \n",
- "```\n",
- "cd /glade/derecho/scratch/$USER/archive/i.clm.sp.year1/lnd/hist\n",
"\n",
+ "(1) Check your archive directory on Derecho (the path will be different on other machines): \n",
+ "\n",
+ "```bash\n",
+ "cd /glade/derecho/scratch/$USER/archive/i.clm.sp.year1/lnd/hist\n",
"ls \n",
"```\n",
"
"
@@ -174,14 +174,6 @@
"source": [
"We will investigate the output in a subsequent exercise."
]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "de84fb8e-aa52-4bf6-b7c7-583af74b1328",
- "metadata": {},
- "outputs": [],
- "source": []
}
],
"metadata": {
diff --git a/notebooks/challenge/clm_ctsm/clm_exercise_2.ipynb b/notebooks/challenge/clm_ctsm/clm_exercise_2.ipynb
index 6ebe4b1..85e2730 100644
--- a/notebooks/challenge/clm_ctsm/clm_exercise_2.ipynb
+++ b/notebooks/challenge/clm_ctsm/clm_exercise_2.ipynb
@@ -13,7 +13,7 @@
"id": "9fb850dd",
"metadata": {},
"source": [
- "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"
+ "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."
]
},
{
@@ -21,7 +21,7 @@
"id": "7bea699c",
"metadata": {},
"source": [
- "Using query_config again we learn more about this compset:\n",
+ "Using `query_config` again we learn more about this compset:\n",
"\n",
"```bash\n",
"cd /glade/u/home/$USER/code/my_clm_code\n",
@@ -35,7 +35,9 @@
"metadata": {},
"source": [
"Which will return the following:\n",
+ "```\n",
" IHistClm60BgcCrop : HIST_DATM%GSWP3v1_CLM60%BGC-CROP_SICE_SOCN_MOSART_SGLC_SWAV\n",
+ "```\n",
"\n",
"Which breaks down into:\n",
"\n",
@@ -52,7 +54,7 @@
"\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."
+ "By default, `IHIST` compsets have a default `finidat` (initialization file) that they use to initialize the model. We will leave this at default."
]
},
{
@@ -63,7 +65,7 @@
"
\n",
"Exercise: Run an experimental case with prognostic BGC
\n",
" \n",
- "Create a case called **i.clm.bgc.month3** using the compset `IHistClm60BgcCrop` at `f19_f19_mt233` resolution. \n",
+ "Create a case called **`i.clm.bgc.month3`** using the compset `IHistClm60BgcCrop` at `f19_f19_mt233` resolution. \n",
" \n",
"Set the run length to **3 months**. \n",
"\n",
@@ -87,7 +89,7 @@
"**How do I compile?**\n",
"\n",
"You can compile with the command:\n",
- "```\n",
+ "```bash\n",
"qcmd -- ./case.build\n",
"```\n",
"\n",
@@ -103,7 +105,7 @@
"\n",
"When your run is completed, go to the archive directory and navigate to the subdirectory `lnd/hist`\n",
"\n",
- "```\n",
+ "```bash\n",
"cd /glade/derecho/scratch/$USER/archive/i.clm.bgc.month3\n",
"cd lnd/hist\n",
"```\n",
@@ -142,7 +144,7 @@
"**Create a new case**\n",
"\n",
"Create a new case i.clm.bgc.month3 :\n",
- "```\n",
+ "```bash\n",
"cd /glade/u/home/$USER/code/my_clm_code/cime/scripts\n",
"./create_newcase --case ~/cases/i.clm.bgc.month3 --compset IHistClm60BgcCrop --res f19_f19_mt233 --run-unsupported\n",
"```\n",
@@ -150,7 +152,7 @@
"\n",
"**Case setup**\n",
"\n",
- "``` \n",
+ "```bash\n",
"cd ~/cases/i.clm.bgc.month3\n",
"./case.setup\n",
"```\n",
@@ -159,19 +161,19 @@
"**Set run length**\n",
" \n",
"Change the `run length`:\n",
- "``` \n",
+ "```bash\n",
"./xmlchange STOP_N=3,STOP_OPTION=nmonths\n",
"```\n",
"
\n",
"\n",
"Note differences between this case and the SP case:\n",
- "``` \n",
+ "```bash\n",
"diff env_run.xml ../i.clm.sp.year1/env_run.xml\n",
"```\n",
"
\n",
" \n",
"Check the namelist by running:\n",
- "``` \n",
+ "```bash\n",
"./preview_namelists\n",
"```\n",
"
\n",
@@ -181,14 +183,14 @@
"If needed, change job queue and account number. \n",
"\n",
"For instance, to run in the queue `tutorial` and the project number `UESM0016`:\n",
- "``` \n",
+ "```bash\n",
"./xmlchange JOB_QUEUE=tutorial,PROJECT=UESM0016 --force\n",
"```\n",
"
\n",
"\n",
"**Change the wallclock time**\n",
"\n",
- "```\n",
+ "```bash\n",
"./xmlchange --subgroup case.run JOB_WALLCLOCK_TIME=01:00:00\n",
"```\n",
"
\n",
@@ -196,20 +198,20 @@
"\n",
"**Build case**\n",
"\n",
- "```\n",
+ "```bash\n",
"qcmd -- ./case.build\n",
"```\n",
"
\n",
" \n",
"Compare the namelists from the two experiments:\n",
- "```\n",
+ "```bash\n",
"diff CaseDocs/lnd_in ../i.clm.sp.year1/CaseDocs/lnd_in\n",
"```\n",
"
\n",
" \n",
"**Submit case**\n",
"\n",
- "```\n",
+ "```bash\n",
"./case.submit\n",
"```\n",
"
\n",
@@ -219,10 +221,9 @@
"When the run is completed, look into the archive directory for: \n",
"i.clm.bgc.month3. \n",
"\n",
- "Check that your archive directory on derecho (The path will be different on other machines): \n",
- "```\n",
+ "Check your archive directory on Derecho (the path will be different on other machines): \n",
+ "```bash\n",
"cd /glade/derecho/scratch/$USER/archive/i.clm.bgc.month3/lnd/hist\n",
- "\n",
"ls \n",
"```\n",
"\n",
@@ -236,14 +237,6 @@
"source": [
"We will investigate the output in a subsequent exercise."
]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "4e3a0a21-7f9c-4621-b4fe-7b696eb3a7f9",
- "metadata": {},
- "outputs": [],
- "source": []
}
],
"metadata": {
diff --git a/notebooks/challenge/clm_ctsm/clm_exercise_3.ipynb b/notebooks/challenge/clm_ctsm/clm_exercise_3.ipynb
index 4af731c..3acce97 100644
--- a/notebooks/challenge/clm_ctsm/clm_exercise_3.ipynb
+++ b/notebooks/challenge/clm_ctsm/clm_exercise_3.ipynb
@@ -346,7 +346,7 @@
"\n",
"Look at variable “fates_leaf_vcmax25top” in the FATES parameter file (located in the FATES source directory: `/glade/u/home/$USER/code/my_cesm_code/CTSM/src/fates/parameter_files/fates_params_default.json`).\n",
"\n",
- "This is the maximum carboxylation rate of Rubisco at 25ºC, at canopy top, and is indexed by FATES PFT and leaf age class. Modify the `fates_leaf_vcmax25top` parameter of the first PFT to 20.0.\n",
+ "This is the maximum carboxylation rate of Rubisco at 25°C, at canopy top, and is indexed by FATES PFT and leaf age class. Modify the `fates_leaf_vcmax25top` parameter of the first PFT to 20.0.\n",
"\n",
"You can either modify the parameter file in place, or you can copy it (with `cp`), modify the copy, and tell the model to use the updated parameter file. This is done via the `user_nl_clm` file by setting `fates_paramfile='my/new/parameter_file'`.\n",
"\n",
@@ -372,7 +372,7 @@
"**How do I compile?**\n",
"\n",
"You can compile with the command:\n",
- "```\n",
+ "```bash\n",
"qcmd -- ./case.build\n",
"```\n",
"\n",
@@ -382,7 +382,9 @@
"\n",
"FATES automatically uses the parameter file in the FATES source code: `/glade/u/home/$USER/code/my_cesm_code/CTSM/src/fates/parameter_files/fates_params_default.json`. You can copy this parameter file to a new file:\n",
"\n",
- "`cp /glade/u/home/$USER/code/my_cesm_code/CTSM/src/fates/parameter_files/fates_params_default.json ~/cases/fates_params_vcmax_update.json`\n",
+ "```bash\n",
+ "cp /glade/u/home/$USER/code/my_cesm_code/CTSM/src/fates/parameter_files/fates_params_default.json ~/cases/fates_params_vcmax_update.json\n",
+ "```\n",
"\n",
"You can open this file using any text editing software. Use Ctrl+F to find the `fates_leaf_vcmax25top` parameter.\n",
"
\n",
@@ -403,7 +405,7 @@
"\n",
"When your run is completed, go to the archive directory and navigate to the subdirectory `lnd/hist`\n",
"\n",
- "```\n",
+ "```bash\n",
"cd /glade/derecho/scratch/$USER/archive/i.fates.year1.vcmax\n",
"cd lnd/hist\n",
"ls\n",
@@ -424,7 +426,7 @@
"**Clone a new case**\n",
"\n",
"Create a clone from the control experiment i.fates.year1.vcmax:\n",
- "```\n",
+ "```bash\n",
"cd /glade/u/home/$USER/code/my_cesm_code/cime/scripts\n",
"./create_clone --case ~/cases/i.fates.year1.vcmax --clone ~/cases/i.fates.year1\n",
"```\n",
@@ -433,7 +435,7 @@
"**Modify the FATES parameter file**\n",
"\n",
"Copy the default parameter file to a new parameter file.\n",
- "``` \n",
+ "```bash\n",
"cd /glade/u/home/$USER/code/my_cesm_code/CTSM/src/fates/parameter_files/\n",
"cp fates_params_default.json ~/cases/fates_params_vcmax_update.json\n",
"```\n",
@@ -441,7 +443,7 @@
"Modify the fates_leaf_vcmax25top parameter in the FATES parameter file.\n",
"\n",
"Edit the parameter file by opening it with any text editing software. Update the fates_leaf_vcmax25top parameter in the first index location to be 20.0:\n",
- "``` \n",
+ "```json\n",
"\"fates_leaf_vcmax25top\": {\n",
" \"dtype\": \"float\",\n",
" \"dims\": [\"fates_leafage_class\", \"fates_pft\"],\n",
@@ -454,7 +456,7 @@
"
\n",
"\n",
"**Case setup**\n",
- "``` \n",
+ "```bash\n",
"cd ~/cases/i.fates.year1.vcmax\n",
"./case.setup\n",
"```\n",
@@ -467,7 +469,7 @@
"`fates_paramfile='/glade/u/home/$USER/cases/fates_params_vcmax_update.json`\n",
" \n",
"Check the namelist by running:\n",
- "``` \n",
+ "```bash\n",
"./preview_namelists\n",
"```\n",
"
\n",
@@ -475,7 +477,7 @@
"**Set run length**\n",
" \n",
"Change the `run length`:\n",
- "``` \n",
+ "```bash\n",
"./xmlchange STOP_N=1,STOP_OPTION=nyears\n",
"```\n",
"\n",
@@ -485,7 +487,7 @@
"\n",
"If needed, change `job queue` and `account number`.
\n",
"For instance, to run in the queue `tutorial` and the project number ``UESM0016`` (You should use the project number given for this tutorial), use the command:\n",
- "``` \n",
+ "```bash\n",
"./xmlchange JOB_QUEUE=tutorial,PROJECT=UESM0016 --force\n",
"```\n",
"\n",
@@ -493,19 +495,19 @@
"\n",
"**Change the wallclock time**\n",
"\n",
- "```\n",
+ "```bash\n",
"./xmlchange --subgroup case.run JOB_WALLCLOCK_TIME=02:00:00\n",
"```\n",
"
\n",
"\n",
"**Build case**\n",
- "```\n",
+ "```bash\n",
"qcmd -- ./case.build\n",
"```\n",
"
\n",
" \n",
"**Submit case**\n",
- "```\n",
+ "```bash\n",
"./case.submit\n",
"```\n",
"
\n",
@@ -515,10 +517,9 @@
"When the run is completed, look into the archive directory for: \n",
"i.fates.year1. \n",
" \n",
- "Check that your archive directory on derecho (the path will be different on other machines): \n",
- "```\n",
+ "Check that archive directory on Derecho (the path will be different on other machines): \n",
+ "```bash\n",
"cd /glade/derecho/scratch/$USER/archive/i.fates.year1.vcmax/lnd/hist\n",
- "\n",
"ls \n",
"```\n",
"\n",
@@ -532,14 +533,6 @@
"source": [
"We will investigate these runs in the next exercise."
]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "23b5c799-e502-4114-b29f-cfeeb421c893",
- "metadata": {},
- "outputs": [],
- "source": []
}
],
"metadata": {
diff --git a/notebooks/challenge/clm_ctsm/clm_exercise_4.ipynb b/notebooks/challenge/clm_ctsm/clm_exercise_4.ipynb
index aaee008..b573b6c 100644
--- a/notebooks/challenge/clm_ctsm/clm_exercise_4.ipynb
+++ b/notebooks/challenge/clm_ctsm/clm_exercise_4.ipynb
@@ -410,7 +410,7 @@
"metadata": {},
"source": [
"##### Questions\n",
- "- How is GPP different for FATES simulation with the updated parameter value, relative to the control FATES simulation?\n",
+ "- How is GPP different for the FATES simulation with the updated parameter value, relative to the control FATES simulation?\n",
"- Where are the differences the largest?\n",
"- Where are they absent?\n",
"\n",
@@ -604,16 +604,9 @@
"metadata": {},
"source": [
"### Questions:\n",
- "- What is the primary difference in GPP between the IHIST BGC case and the I2000 SP case?\n",
+ "- What is the primary difference in GPP between the `IHIST` BGC case and the `I2000` SP case?\n",
"- Why might this be occuring? "
]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": []
}
],
"metadata": {
diff --git a/notebooks/challenge/clm_ctsm/clm_exercise_5.ipynb b/notebooks/challenge/clm_ctsm/clm_exercise_5.ipynb
index 80f8292..97e7ecf 100644
--- a/notebooks/challenge/clm_ctsm/clm_exercise_5.ipynb
+++ b/notebooks/challenge/clm_ctsm/clm_exercise_5.ipynb
@@ -288,7 +288,13 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "---\n",
+ "---"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
"## 2. Starting familiar: canopy fluxes and leaf area\n",
"\n",
"Before we use any of FATES's structural detail, let's look at output that any land model (including CLM's default big-leaf vegetation) would produce: the seasonal cycles of GPP and LAI. Averaged across all years of the inventory-initialized run, these show the forest as one canopy, with deciduous leaves flushing in spring, carbon uptake peaking in summer, and both falling off through autumn."
@@ -358,7 +364,13 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "---\n",
+ "---"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
"## 3. What's growing at BART? PFT composition\n",
"\n",
"Next, let's investigate BART's PFT composition. Remember that we ran these simulations in \"fixed biogeography mode.\"\n",
@@ -501,7 +513,13 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "---\n",
+ "---"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
"## 4. Anatomy of a FATES forest\n",
"\n",
"### 4.1. Size structure\n",
@@ -825,14 +843,20 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "---\n",
+ "----"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
"## 5. Demographic Processes\n",
"\n",
"### 5.1. Canopy Layer Promotion and Demotion\n",
"\n",
"The processes that drive the LAI-over-time plot above include phenology, growth, mortality (plant death from a variety of factors), and recruitment (new trees establishing). As these play out, FATES continually re-sorts trees between canopy layers (promotion and demotion). Together these are the core of how FATES simulates succession, competition, and vegetation dynamics.\n",
"\n",
- "To compare to our LAI plot above, let's first look at two useful variables: `FATES_PROMOTION_RATE_SZ` and `FATES_DEMOTION_RATE_SZ`. These are the *fluxes* (in plants m$^{-2}$ yr$^{-1}$) from the a lower to higher canopy layer (`PROMOTION`) and from a higher to a lower canopy layer (`DEMOTION`).\n",
+ "To compare to our LAI plot above, let's first look at two useful variables: `FATES_PROMOTION_RATE_SZ` and `FATES_DEMOTION_RATE_SZ`. These are the *fluxes* (in plants m-2 yr-1) from the a lower to higher canopy layer (`PROMOTION`) and from a higher to a lower canopy layer (`DEMOTION`).\n",
"\n",
"Under PPA, trees fill the canopy from the top down by height, occupying space until total crown area equals the patch area (i.e., canopy closure). Beyond that point there's no room left in the layer, so the lowest-ranked trees are demoted into a lower, shaded understory layer. Conversely, when a tree dies and opens a gap, its layer is no longer full, and the tallest trees from below are promoted up to fill it. \n",
"\n",
@@ -938,7 +962,7 @@
"source": [
"#### Mortality\n",
"\n",
- "We can also investigate mortality in FATES. FATES outputs mortality by size class (plants m$^{-2}$ yr$^{-1}$) for all of the different causes of mortality:\n",
+ "We can also investigate mortality in FATES. FATES outputs mortality by size class (plants m-2 yr-1) for all of the different causes of mortality:\n",
"\n",
"- **background**: background, \"random\" mortality; should be a static rate (`FATES_MORTALITY_BACKGROUND_SZ`)\n",
"- **freezing**: mortality due to cold intolerance (`FATES_MORTALITY_FREEZING_SZ`)\n",
@@ -1330,13 +1354,6 @@
"\n",
"In most of our plots, we only looked at things organized by size class (`_SZ`), even though there were many variables that were indexed by size *and* PFT (`_SZPF`). As a challenge, can you explore these history variables, but comparing PFT and/or size *and* PFT?"
]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": []
}
],
"metadata": {