diff --git a/_toc.yml b/_toc.yml index ac86611..654c649 100644 --- a/_toc.yml +++ b/_toc.yml @@ -44,6 +44,7 @@ chapters: sections: - file: notebooks/basics/exercises/first_I1850 - file: notebooks/basics/exercises/second_I1850 + - file: notebooks/basics/exercises/change_compsets - file: notebooks/basics/exercises/examine_history_I1850 - file: notebooks/basics/exercises/extra - file: notebooks/basics/exercises/review_questions diff --git a/notebooks/basics/exercises/change_compsets.ipynb b/notebooks/basics/exercises/change_compsets.ipynb new file mode 100644 index 0000000..96b6d65 --- /dev/null +++ b/notebooks/basics/exercises/change_compsets.ipynb @@ -0,0 +1,227 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "7013ccab-46dc-4a38-8039-7ec464251982", + "metadata": {}, + "source": [ + "# Change CLM component set" + ] + }, + { + "cell_type": "markdown", + "id": "30c6953e-8197-4fea-b398-5a090db1a762", + "metadata": {}, + "source": [ + "\n", + "
\n", + "Exercise: Repeat the 1 month experiment with a different CLM component set ``compset``

\n", + " \n", + "Choose which CLM component set to run:\n", + "\n", + "\n", + "Create a case using the selected compset at ``f19_f19_mt233`` resolution. \n", + "\n", + "Note: You will still need to use the \"--run-unsupported\" flag. \n", + "\n", + "Check the status of the run after submitting.\n", + "\n", + "
\n" + ] + }, + { + "cell_type": "markdown", + "id": "d7b8746d", + "metadata": {}, + "source": [] + }, + { + "cell_type": "markdown", + "id": "73e4cb02-1717-420c-8a28-f56c0078956c", + "metadata": {}, + "source": [ + "\n", + "
\n", + "
\n", + "\n", + " Click here for hints \n", + " \n", + "**Are you in the right workspace?**\n", + "\n", + "Navigate to CTSM/cime/scripts before running the `./create.case` command\n", + "```\n", + "cd /glade/u/home/$USER/code/my_clm_code/cime/scripts\n", + "```\n", + " \n", + "**Did you give your new case a new name?**\n", + "\n", + "You can create a new case with the command:\n", + "```\n", + "NEW_CASE_NAME='i2000_fates.basics'\n", + "./create_newcase --case /glade/u/home/$USER/cases/NEW_CASE_NAME --res RES --compset COMPSET --run-unsupported\n", + "```\n", + "\n", + "**Did you navigate to the case directory CASEDIR to set up the case?**\n", + "\n", + "You can invoke case set up as follows:\n", + "```\n", + "cd /glade/u/home/$USER/cases/i2000_fates.basics\n", + "./case.setup\n", + "```\n", + "\n", + "**Did you remember to extend the length of the run to 1 month?**\n", + "\n", + "```\n", + "./xmlchange STOP_OPTION=nmonths\n", + "./xmlchange STOP_N=1\n", + "```\n", + " \n", + "
\n", + "
\n" + ] + }, + { + "cell_type": "markdown", + "id": "f7c918d3-6475-463d-a10e-2badb6728cb5", + "metadata": {}, + "source": [ + "\n", + "
\n", + "
\n", + "Click here for the solution
\n", + " \n", + "Create a new case i2000_fates.basics with the command:\n", + "```\n", + "cd /glade/u/home/$USER/code/my_clm_code/cime/scripts\n", + "./create_newcase --case /glade/u/home/$USER/cases/i2000_fates.basics --res f19_f19_mt233 --compset I2000Clm60FatesSpCruRsGs --run-unsupported\n", + "```\n", + "\n", + "Case setup:\n", + "``` \n", + "cd /glade/u/home/$USER/cases/i2000_fates.basics \n", + "./case.setup\n", + "```\n", + "\n", + "Change the queue to the 'tutorial' queue:\n", + "```\n", + "./xmlchange JOB_QUEUE=tutorial --force\n", + "```\n", + "\n", + "Extend the length of the run to 1 month:\n", + "```\n", + "./xmlchange STOP_OPTION=nmonths\n", + "./xmlchange STOP_N=1\n", + "```\n", + "\n", + "Build and submit:\n", + "```\n", + "qcmd -- ./case.build\n", + "./case.submit\n", + "```\n", + "\n", + "Check the status:\n", + "```\n", + "qstat -u $USER\n", + "``` \n", + "\n", + "When the run is completed, look into the archive directory for: \n", + "i2000_fates.basics. \n", + " \n", + "Check that your archive directory on derecho (The path will be different on other machines): \n", + "```\n", + "cd /glade/derecho/scratch/$USER/archive/i2000_fates.basics\n", + "ls \n", + "```\n", + "\n", + "
\n", + "
\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "3c1d2a40", + "metadata": {}, + "source": [ + "## Advanced: Comparing the namelist settings" + ] + }, + { + "cell_type": "markdown", + "id": "8c5eeecf", + "metadata": {}, + "source": [ + "When you create a case, CLM uses the compset to build the namelist for each component. The namelist, `lnd_in`, tells CLM which input files to read and which options to turn on. A copy of the final namelist is saved in each case's `CaseDocs/` directory.\n", + "\n", + "Because the compset determines these settings, comparing `lnd_in` between your two cases shows how the configurations differ. The `diff` command prints only the lines that differ between two files. Lines starting with `<` come from the first file and lines starting with `>` from the second.\n", + "\n", + "Look for differences in:\n", + "- **Input files**, such as the surface dataset (`fsurdat`), initial conditions (`finidat`), and parameter file (`paramfile`)\n", + "- **Model options**, such as `use_crop` or `use_fates`\n", + "\n", + "For each difference, ask: why would this compset need this setting?\n" + ] + }, + { + "cell_type": "markdown", + "id": "ecf96f6e", + "metadata": {}, + "source": [ + "
\n", + " \n", + "```\n", + "diff ~/cases/i1850_sp.basics/CaseDocs/lnd_in ~/cases/i2000_fates.basics/CaseDocs/lnd_in\n", + "```\n", + "
" + ] + }, + { + "cell_type": "markdown", + "id": "9c66385f-055c-4b74-b6fe-6fc189c02690", + "metadata": { + "tags": [] + }, + "source": [ + "## Test your understanding" + ] + }, + { + "cell_type": "markdown", + "id": "8218314c-f299-4171-b0fe-bac655c2d4f5", + "metadata": { + "tags": [] + }, + "source": [ + "\n", + "- Where would you look to find out what other compsets are available? \n", + "- What to the Rs and Gs mean in the FATES compset name?\n", + "- What atmospheric meteorological forcing data is being used? Are there other options?" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}