From 0eedb4924c07c47c7211258c7d65eb80bd9d47ee Mon Sep 17 00:00:00 2001 From: flicj191 Date: Tue, 9 Apr 2024 16:18:41 +1000 Subject: [PATCH 1/8] additional training videos --- docs/tutorials/esmvaltool.md | 6 +++++- docs/tutorials/ilamb.md | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/tutorials/esmvaltool.md b/docs/tutorials/esmvaltool.md index 3ab1d8d66..459a94b78 100644 --- a/docs/tutorials/esmvaltool.md +++ b/docs/tutorials/esmvaltool.md @@ -1,11 +1,15 @@ The Earth System Model Evaluation Tool (ESMValTool) is a tool developed for evaluation of Earth System Models in CMIP (Climate Model Intercomparison Projects). See here for an introduction and information for usage on Gadi. -## 2023 video series +## 2023/24 Video series 1. What is ESMValTool? 2. ESMValTool - NCI quickstart guide 3. ESMValTool - The config user file 4. Understanding ESMValTool recipes 5. ESMValTool: Write your own recipes and diagnostics +6. ESMValTool: CMORizing +7. ESMValTool: Data Management +8. ESMValTool: Debugging +9. Visual Studio Code Workflow for Gadi ## 2023 ACCESS workshop - Working with ESMValTool \ No newline at end of file diff --git a/docs/tutorials/ilamb.md b/docs/tutorials/ilamb.md index 63f20e71f..b36cbf9eb 100644 --- a/docs/tutorials/ilamb.md +++ b/docs/tutorials/ilamb.md @@ -1,4 +1,8 @@ The International Land Model Benchmarking (ILAMB) benchmarking system is a python framework used to quantitatively compare a defined set of observable variables with a number of land models. For an introduction, see here. +## 2024 Videos +1. ILAMB - Getting started +2. ILAMB MMT Unified Dashboard + ## 2023 ACCESS workshop - Working with ILAMB \ No newline at end of file From 93b4e67afaaf0b5459cde6a9d8fc9736318a8a7d Mon Sep 17 00:00:00 2001 From: flicj191 Date: Tue, 9 Apr 2024 16:41:57 +1000 Subject: [PATCH 2/8] fix training video links --- docs/tutorials/esmvaltool.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/tutorials/esmvaltool.md b/docs/tutorials/esmvaltool.md index 459a94b78..eb974b47f 100644 --- a/docs/tutorials/esmvaltool.md +++ b/docs/tutorials/esmvaltool.md @@ -7,9 +7,9 @@ The Earth System Model Evaluation Tool (ESMValTool) is a tool developed for eval 4. Understanding ESMValTool recipes 5. ESMValTool: Write your own recipes and diagnostics 6. ESMValTool: CMORizing -7. ESMValTool: Data Management -8. ESMValTool: Debugging -9. Visual Studio Code Workflow for Gadi +7. ESMValTool: Data Management +8. ESMValTool: Debugging +9. Visual Studio Code Workflow for Gadi ## 2023 ACCESS workshop - Working with ESMValTool \ No newline at end of file From cfb531b982eb75517030f9a416d204d6becb865b Mon Sep 17 00:00:00 2001 From: Felicity Chun <32269066+flicj191@users.noreply.github.com> Date: Wed, 10 Apr 2024 11:56:32 +1000 Subject: [PATCH 3/8] Update docs/tutorials/esmvaltool.md Co-authored-by: Davide Marchegiani --- docs/tutorials/esmvaltool.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tutorials/esmvaltool.md b/docs/tutorials/esmvaltool.md index eb974b47f..579fc2815 100644 --- a/docs/tutorials/esmvaltool.md +++ b/docs/tutorials/esmvaltool.md @@ -1,6 +1,6 @@ The Earth System Model Evaluation Tool (ESMValTool) is a tool developed for evaluation of Earth System Models in CMIP (Climate Model Intercomparison Projects). See here for an introduction and information for usage on Gadi. -## 2023/24 Video series +## YouTube Video Series 1. What is ESMValTool? 2. ESMValTool - NCI quickstart guide 3. ESMValTool - The config user file From e29831804616cb169c1224035fb0d7564a472cc3 Mon Sep 17 00:00:00 2001 From: Felicity Chun <32269066+flicj191@users.noreply.github.com> Date: Wed, 10 Apr 2024 11:56:50 +1000 Subject: [PATCH 4/8] Update docs/tutorials/ilamb.md Co-authored-by: Davide Marchegiani --- docs/tutorials/ilamb.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tutorials/ilamb.md b/docs/tutorials/ilamb.md index b36cbf9eb..f50179222 100644 --- a/docs/tutorials/ilamb.md +++ b/docs/tutorials/ilamb.md @@ -1,6 +1,6 @@ The International Land Model Benchmarking (ILAMB) benchmarking system is a python framework used to quantitatively compare a defined set of observable variables with a number of land models. For an introduction, see here. -## 2024 Videos +## YouTube Video Series 1. ILAMB - Getting started 2. ILAMB MMT Unified Dashboard From 693908c66cd003eef4c1cbaf03decffa09df4f71 Mon Sep 17 00:00:00 2001 From: Aidan Heerdegen Date: Fri, 12 Apr 2024 16:34:41 +1000 Subject: [PATCH 5/8] Update ACCESS-OM2 run instructions (#653) * Change to use ACCESS-NRI infrastructure * Some rearrangement of later sections * Apply suggestions from code review * Add specific section about diagnosing if a run has crashed * Add conventions paragraph at top explaining code blocks * Ignore all opus.nci.org.au links in link-check * Consistent use of access-om2 directory name * Update minimum payu version * Removed payu init and fleshed out the description of the directories --------- Co-authored-by: Jasmeen Kaur <42607679+KAUR1984@users.noreply.github.com> Co-authored-by: Anton Steketee <79179784+anton-seaice@users.noreply.github.com> Co-authored-by: minghang.li Co-authored-by: Davide Marchegiani --- .github/workflows/mlc_config.json | 3 + docs/models/run-a-model/run-access-om.md | 800 +++++++++++++---------- mkdocs.yml | 1 + 3 files changed, 445 insertions(+), 359 deletions(-) diff --git a/.github/workflows/mlc_config.json b/.github/workflows/mlc_config.json index 94a670688..3e24a97f8 100644 --- a/.github/workflows/mlc_config.json +++ b/.github/workflows/mlc_config.json @@ -9,6 +9,9 @@ { "pattern": "linkedin.com" }, + { + "pattern": "https://opus.nci.org.au" + }, { "pattern": "^http://www.bom.gov.au" } diff --git a/docs/models/run-a-model/run-access-om.md b/docs/models/run-a-model/run-access-om.md index 69a0aa577..2a8d6ad26 100644 --- a/docs/models/run-a-model/run-access-om.md +++ b/docs/models/run-a-model/run-access-om.md @@ -1,4 +1,4 @@ -{% set model = "ACCESS-OM" %} +{% set model = "ACCESS-OM2" %} # Run {{ model }} @@ -6,297 +6,246 @@ ### General prerequisites -Before running {{ model }}, you need to fulfil general prerequisites outlined in the [First Steps](/getting_started/first_steps) section. +Before running {{ model }}, you need to fulfil general prerequisites outlined in the [First Steps](https://access-hive.org.au/getting_started/first_steps) section. -If you are unsure whether {{ model }} is the right choice for your experiment, take a look at the overview of [ACCESS Models](/models). +If you are unsure whether {{ model }} is the right choice for your experiment, take a look at the overview of [ACCESS Models](https://access-hive.org.au/models). + +!!! note + + In this documentation the same code is sometimes shown in a highlight code-block, and also in + a simulated terminal. The code-block is useful because it is easy to copy the code example to + your clipboard (mouse over the code block and click the icon on the far right of the code block). + The simulated terminal is to illustrate what happens when commands are run on a terminal on `Gadi`. ### Model-specific prerequisites -
    -
  • - Join the hh5, qv56, ua8 and ik11 projects at NCI -
    - To join these projects, request membership on the respective hh5, qv56, ua8 and ik11 NCI project pages. -
    - For more information on how to join specific NCI projects, please refer to How to connect to a project. -
  • -
  • - Payu -
    - Payu on Gadi is available through the conda/analysis3 environment in the hh5 project. -
    - After obtaining hh5 project membership, load the conda/analysis3 environment to automatically retrieve payu as follows: -
    module use /g/data/hh5/public/modules
    -module load conda/analysis3
    - To check that payu is available, run: -
    payu --version
    - - payu --version - 1.0.19 - -
  • -
+**Join the _vk83_ and _qv56_ projects at NCI** + +To join these projects request membership on the respective [vk83](https://my.nci.org.au/mancini/project/vk83/join) and [qv56](https://my.nci.org.au/mancini/project/qv56/join) NCI project pages. + +For more information on how to join specific NCI projects, please refer to [How to connect to a project](https://opus.nci.org.au/display/Help/How+to+connect+to+a+project). + +**Payu** + +[_Payu_](https://github.com/payu-org/payu) is a workflow management tool for running numerical models in supercomputing environments for which there is extensive [documentation](https://payu.readthedocs.io/en/latest/). + +_Payu_ on _Gadi_ is available through a dedicated `conda` environment in the _vk83_ project. + +After joining the _vk83_ project load the _payu_ environment: + + module use /g/data/vk83/modules + module load payu + +To check that `payu` is available, run: + + payu --version + + +payu --version +1.1.3 + + +**Note:** `payu` version >=1.1.3 is required + ---------------------------------------------------------------------------------------- ## Get {{ model }} configuration -A standard {{ model }} configuration is available on the COSIMA GitHub. -
-This is a 1° horizontal resolution configuration with interannual forcing from 1 Jan 1958 to 31 Dec 2018. -
-To get it on Gadi, create a directory to store the model configuration.Navigate to this directory and clone the GitHub repo in it by running: +All released {{ model }} configurations are available from the [ACCESS-OM2 configs] GitHub repository. Released configurations are tested and supported by ACCESS-NRI. ACCESS-NRI has adapted these model configurations from those originally developed by [COSIMA]. + +There are global configurations for three resolutions: 1°, 0.25°, 0.1°. For each resolution there are two options of atmospheric forcing: Repeat Year Forcing (RYF) and Interannual Forcing (IAF). Each configuration also has a biogeochemical (BGC) configuration if this is required. Note the BGC experiments are slower and so consume more resources, both compute time and generally also disk space. + +Each configuration is stored as a separate specially named branch in the [ACCESS-OM2 configs] GitHub repository. +Anyone using a configuration is advised to clone only a single branch and not attempt to keep this structure. +The [ACCESS-OM2 configs] repo has more information about the available experiments and the naming scheme of the branches. + +The first step is to choose a configuration from those available. For example, if the 1° horizontal resolution configuration with repeat-year JRA55 forcing (without bgc) is the required configuration then the [`release-1deg_jra55_ryf`](https://github.com/ACCESS-NRI/access-om2-configs/tree/release-1deg_jra55_ryf) branch is the correct configuration. + +The next step is to clone this branch to a location on _Gadi_: -
git clone https://github.com/COSIMA/1deg_jra55_iaf.git
- mkdir -p ~/access-om - cd ~/access-om - git clone https://github.com/COSIMA/1deg_jra55_iaf.git - Cloning into '1deg_jra55_iaf'... - remote: Enumerating objects: 14715, done. - remote: Counting objects: 100% (3401/3401), done. - remote: Compressing objects: 100% (24/24), done. - remote: Total 14715 (delta 3383), reused 3379 (delta 3377), pack-reused 11314 - Receiving objects: 100% (14715/14715), 35.68 MiB | 18.11 MiB/s, done. - Resolving deltas: 100% (10707/10707), done. + mkdir -p ~/access-om2 + cd ~/access-om2 + payu clone -b expt -B release-1deg_jra55_ryf https://github.com/ACCESS-NRI/access-om2-configs.git 1deg_jra55_ryf + Cloned repository from https://github.com/ACCESS-NRI/access-om2-configs.git to directory: .../access-om/1deg_jra55_ryf + Created and checked out new branch: expt + laboratory path: /scratch/.../access-om2 + binary path: /scratch/.../access-om2/bin + input path: /scratch/.../access-om2/input + work path: /scratch/.../access-om2/work + archive path: /scratch/.../access-om2/archive + Updated metadata. Experiment UUID: daeee7ff-07e4-4f93-823b-cb7c6e4bdb6e + Added archive symlink to /scratch/.../access-om2/archive/1deg_jra55_ryf-expt-daeee7ff + To change directory to control directory run: + cd 1deg_jra55_ryf -
- Some modules may interfere with git commands (e.g., matlab/R2018a). If you have trouble cloning the repository, run the following command before trying again:
module purge
- After this step, don't forget to reload the conda/analysis3 module to retrieve payu, as specified in the Model-specific prerequisites section. -
+ +In the example above the `payu clone` command clones the 1° repeat-year JRA55 configuration (` -B release-1deg_jra55_ryf`) +to a new experiment branch (`-b expt`) to a directory named `1deg_jra55_ryf`: + + mkdir -p ~/access-om2 + cd ~/access-om2 + payu clone -b expt -B release-1deg_jra55_ryf https://github.com/ACCESS-NRI/access-om2-configs.git 1deg_jra55_ryf + +!!! note + + `payu` uses branches to differentiate between different experiments the same git repository. So it is recommended to always change the branch name you clone into to something meaningful for the planned experiment. See the [`payu` tutorial](https://forum.access-hive.org.au/t/access-om2-payu-tutorial/1750#select-experiment-12) for more information. + ---------------------------------------------------------------------------------------- -## Edit {{ model }} configuration - -It is good practice to create a new git branch to store all your modifications for a particular run, so as not to modify the reference configuration. - -To create a local branch called "example_run", from within the cloned repo execute: - -
git checkout -b example_run
- -### Payu - -Payu is a workflow management tool for running numerical models in supercomputing environments. -
-The general layout of a payu-supported model run consists of two main directories: - -
    -
  • - The laboratory directory, where all the model components reside. For {{ model }}, it is typically /scratch/$PROJECT/$USER/access-om2. -
  • -
  • - The control directory, where the model configuration resides and from where the model is run (in this example, the cloned directory ~/access-om/1deg_jra55_iaf. -
  • -
-This distinction of directories separates the small-size configuration files from the larger binary outputs and inputs. In this way, the configuration files can be placed in the $HOME directory (as it is the only filesystem actively backed-up on Gadi), without overloading it with too much data. -Furthermore, this separation allows multiple self-resubmitting experiments that share common executables and input data to be run simultaneously. -
-
-To setup the laboratory directory, run the following command from the control directory: -
payu init
-This creates the laboratory directory, together with relevant subdirectories, depending on the configuration. The main subdirectories of interest are: -
    -
  • work → a temporary directory where the model is run. It gets cleaned after each run.
  • -
  • archive → the directory where output is stored after each run.
  • - - cd ~/access-om/1deg_jra55_iaf - payu init - laboratory path: /scratch/$PROJECT/$USER/access-om2 - binary path: /scratch/$PROJECT/$USER/access-om2/bin - input path: /scratch/$PROJECT/$USER/access-om2/input - work path: /scratch/$PROJECT/$USER/access-om2/work - archive path: /scratch/$PROJECT/$USER/access-om2/archive - -
- -### Edit the Master Configuration file - -The config.yaml file located in the control directory, is the Master Configuration file. -
-This file, which controls the general model configuration, contains several parts: - -
    -
  • - PBS resources -
    -
    queue: normal
    -walltime: 3:00:00
    -jobname: 1deg_jra55_iaf
    -mem: 1000GB
    - These lines can be edited to change the PBS directives for the PBS job. -
    - For example, to run {{ model }} under the tm70 project (ACCESS-NRI), add the following line: -
    project: tm70
    -
    - To run {{ model }}, you need to be a member of a project with allocated Service Units (SU). For more information, check how to join relevant NCI projects. -
    -
  • -
  • - Model configuration -
    -
    name: common
    -model: access-om2
    -input: /g/data/ik11/inputs/access-om2/input_20201102/common_1deg_jra55
    - These lines let payu know which driver to use for the main model configuration (access-om). -
    - The name field here is not actually used for the configuration run so you can safely ignore it. -
  • -
  • - Submodels -
    -
    submodels:
    -    - name: atmosphere
    -      model: yatm
    -      exe: /g/data/access/payu/access-om2/bin/coe/um7.3x
    -      input:
    -            - /g/data/ik11/inputs/access-om2/input_20201102/yatm_1deg
    -            - /g/data/qv56/replicas/input4MIPs/CMIP6/OMIP/MRI/MRI-JRA55-do-1-4-0/atmos/3hr/rsds/gr/v20190429
    -            - /g/data/qv56/replicas/input4MIPs/CMIP6/OMIP/MRI/MRI-JRA55-do-1-4-0/atmos/3hr/rlds/gr/v20190429
    -            - /g/data/qv56/replicas/input4MIPs/CMIP6/OMIP/MRI/MRI-JRA55-do-1-4-0/atmos/3hr/prra/gr/v20190429
    -            - /g/data/qv56/replicas/input4MIPs/CMIP6/OMIP/MRI/MRI-JRA55-do-1-4-0/atmos/3hr/prsn/gr/v20190429
    -            - /g/data/qv56/replicas/input4MIPs/CMIP6/OMIP/MRI/MRI-JRA55-do-1-4-0/atmos/3hrPt/psl/gr/v20190429
    -            - /g/data/qv56/replicas/input4MIPs/CMIP6/OMIP/MRI/MRI-JRA55-do-1-4-0/land/day/friver/gr/v20190429
    -            - /g/data/qv56/replicas/input4MIPs/CMIP6/OMIP/MRI/MRI-JRA55-do-1-4-0/atmos/3hrPt/tas/gr/v20190429
    -            - /g/data/qv56/replicas/input4MIPs/CMIP6/OMIP/MRI/MRI-JRA55-do-1-4-0/atmos/3hrPt/huss/gr/v20190429
    -            - /g/data/qv56/replicas/input4MIPs/CMIP6/OMIP/MRI/MRI-JRA55-do-1-4-0/atmos/3hrPt/uas/gr/v20190429
    -            - /g/data/qv56/replicas/input4MIPs/CMIP6/OMIP/MRI/MRI-JRA55-do-1-4-0/atmos/3hrPt/vas/gr/v20190429
    -            - /g/data/qv56/replicas/input4MIPs/CMIP6/OMIP/MRI/MRI-JRA55-do-1-4-0/landIce/day/licalvf/gr/v20190429
    -      ncpus: 1
    - - name: ocean - model: mom - exe: /g/data/ik11/inputs/access-om2/bin/fms_ACCESS-OM_730f0bf_libaccessom2_d750b4b.x - input: /g/data/ik11/inputs/access-om2/input_20201102/mom_1deg - ncpus: 216
    - - name: ice - model: cice - exe: /g/data/ik11/inputs/access-om2/bin/cice_auscom_360x300_24p_edcfa6f_libaccessom2_d750b4b.exe - input: /g/data/ik11/inputs/access-om2/input_20201102/cice_1deg - ncpus: 24
    - {{ model }} is a coupled model deploying multiple submodels (i.e. model components). - This section specifies the submodels and configuration options required to execute the model correctly. -
    - Each submodel contains additional configuration options that are read in when the submodel is running. These options are specified in the subfolder of the control directory, whose name matches the submodel's name (e.g., configuration options for the ocean submodel are in the ~/access-om/1deg_jra55_iaf/ocean directory). -
  • -
  • - Collate -
    -
    collate:
    -    restart: true
    -    walltime: 1:00:00
    -    mem: 30GB
    -    ncpus: 4
    -    queue: normal
    -    exe: /g/data/ik11/inputs/access-om2/bin/mppnccombine
    - The collate process combines a number of smaller files, which contain different parts of the model grid, into target output files. Restart files are typically tiled in the same way and will also be combined together if the restart option is set to true. -
  • -
  • - Runlog -
    -
    runlog: true
    - When running a new configuration, payu automatically commits changes in git if runlog is set to true. -
    - Should not be changed to avoid losing track of the current experiment. -
  • -
  • - Stack size -
    -
    stacksize: unlimited
    - The stacksize is the maximum size (in KiB) of the per-thread resources allocated for each process. This is often set to unlimited as explicit stacksize values may not be correctly communicated across Gadi nodes. -
  • -
  • - Restart frequency -
    -
    restart_freq: 1
    - The restart frequency specifies the rate of saved restart files. -
    - For example, to save restart files every fifth run (i.e. restart004, restart009, restart014, etc.), you need to set restart_freq: 5. -
    - Intermediate restarts are still temporarily saved and deleted only after a permanently archived restart has been produced. -
    -
  • -
  • - mpirun arguments -
    -
    mpirun: --mca io ompio --mca io_ompio_num_aggregators 1
    - Line to append mpirun arguments to the mpirun call of the model. -
  • -
  • - qsub flags -
    -
    qsub_flags: -W umask=027
    - This line is the configuration marker for any additional qsub flags. -
  • -
  • - Environment variables -
    -
    env:
    -    UCX_LOG_LEVEL: 'error'
    - Line to add the specified variables to the run environment. -
  • -
  • - Platform-specific defaults -
    -
    platform: 
    -    nodesize: 48
    - Lines to control the platform-specific default parameters. -
    - nodesize: 48 sets the default number of cpus per node to 48, to fully utilise nodes regardless of the requested number of cpus. -
  • -
  • - User scripts -
    -
    userscripts:
    -    error: resub.sh
    -    run: rm -f resubmit.count
    - A namelist to include separate user scripts or subcommands at various stages of a payu submission. -
    - error gets called if the model does not run correctly and returns an error code; -
    - run gets called after the model execution, but prior to model output archive. -
  • -
-
-To find out more about other configuration settings for the config.yaml file, check out how to configure your experiment with payu. +## Running an {{ model }} configuration -### Edit a single {{ model }} component configuration +{{ model }} configurations run on [_Gadi_](https://opus.nci.org.au/display/Help/How+to+connect+to+a+project) through a [PBS Job][PBS Jobs] submission managed by `payu`. -Each of {{ model }} components contains additional configuration options that are read in when the model component is running. These options are typically useful to modify the physics used in the model or the input data. -They are specified in the subfolder of the control directory, whose name matches the submodel's name as specified in the config.yaml submodel section (e.g., configuration options for the ocean submodel are in the ~/access-om/1deg_jra55_iaf/ocean directory). -To modify these options please refer to the User Guide of each individual model component. +The general layout of a `payu`-supported model run consists of two main directories: -### Change run length +- The _control_ directory contains the model configuration and serves as the execution directory for running the model (in this example, the cloned directory `~eaccess-om2/1deg_jra55_ryf`). +- The _laboratory_ directory, where all the model components reside. For {{ model }}, it is typically `/scratch/$PROJECT/$USER/access-om2`. -To change the internal run length, edit the restart_period field in the &date_manager_nml section of the ~/access-om/1deg_jra55_iaf/accessom2.nml file: +This separates the small text configuration files from the larger binary outputs and inputs. In this way, the _control_ directory can be in the `$HOME` directory (as it is the only filesystem actively backed-up on _Gadi_). The quotas for `$HOME` are low and strict, which limits what can be stored there, so it is not suitable for larger files. -
&date_manager_nml
-    forcing_start_date = '1958-01-01T00:00:00'
-    forcing_end_date = '2019-01-01T00:00:00'
- ! Runtime for a single segment/job/submit, format is years, months, seconds, - ! two of which must be zero. - restart_period = 5, 0, 0 -&end
-
- The internal run length (controlled by restart_period) can be different from the total run length. Also, while restart_period can be reduced, it should not be increased to more than 5 years to avoid errors. For more information about the difference between internal run and total run lengths, or how to run the model for more than 5 years, refer to the section Run configuration for multiple years. -
+The _laboratory_ directory is a shared space for all `payu` experiments using the same model. ---- +Within the _laboratory_ directory are two subdirectories within which `payu` automatically creates directories named uniquely for the experiment being run: + +- `work` → a temporary directory is created within here when the model is run. It gets created as part of a run and then removed after the run succeeds. +- `archive` → the directory within which the output is stored following each successful run. + +`payu` creates symbolic links in the _control_ directory called `archive` and `work` that point to the corresponding directories in the _laboratory_ directory. + +This design allows multiple self-resubmitting experiments that share common executables and input data to be run simultaneously. + +### Run configuration + +To run a configuration: + + payu run + +This will submit a single job to the queue with a run length of `restart_period`. `restart_period` is defined in the `accessom2.nml` file in the _control_ directory. + +!!! note + + You can add the `-f` option to `payu run` and it will run even if there is an existing non-empty `work` directory created from a previous failed run or from running `payu setup`. + +### Run configuration multiple times + +If you want to run a configuration multiple times automatically use the option `-n`: + + payu run -n + +This will run `number-of-runs` times with a total length of `restart_period * number-of-runs`, where `restart_period` is the length of each model run. + +For example, to run a configuration for a total of 50 years with `restart_period` of 5 years the `number-of-runs` should be set to `10`: + + payu run -n 10 + +!!! note + + `restart_period` is the configuration option that sets how long the model will run. See [how to change run length](#change-run-length) for a description of where this is set and how to change it. + +## Monitor {{ model }} runs + +`payu run` reports the PBS `job-ID`, e.g. `110020843.gadi-pbs`, as the last line to the terminal. `qstat` can be used to query the status of the job, e.g. + + + qstat 110021035 + qstat 110021035 + Job id                Name             User             Time Use S Queue + --------------------- ---------------- ---------------- -------- - ----- + <110021035>.gadi-pbs  1deg_jra55_ryf   <$USER>            <time> R normal-exec + + +To show the status of all your submitted [PBS jobs]: + + + qstat -u $USER + Job id                Name             User             Time Use S Queue + --------------------- ---------------- ---------------- -------- - ----- + <110021035>.gadi-pbs   1deg_jra55_ryf   <$USER>            <time> R normal-exec + <000000000>.gadi-pbs   <other-job-name> <$USER>            <time> R normal-exec + <000000000>.gadi-pbs   <other-job-name> <$USER>            <time> R normal-exec + + + The default name of the your job is the name of the _payu_ _control_ directory, in this example `1deg_jra55_ryf`. This can be changed by altering the `jobname` in [set in the `config.yaml`](#modify-pbs-resources). + +_S_ indicates the status of your run, where: + +- _Q_ → Job waiting in the queue to start +- _R_ → Job running +- _E_ → Job ending +- _H_ → Job on hold + +If there are no jobs listed with your `jobname` (or if no job is listed), your run either successfully completed or was terminated due to an error. + +A job can be on hold for a number of reasons, see the [NCI documentation for more information](https://opus.nci.org.au/display/Help/FAQ+1%3A+Why+My+Jobs+are+NOT+Running). + +### PBS output files + +When the model completes PBS writes the standard outout and error streams to two files into the _control_ directory: `jobname.o` and `jobname.e` respectively. This is terminal output that isn't otherwise redirected into model log files. + +You can archive these files using payu sweep which moves them to the archive directory. + +### Stop a run + +If you want to manually terminate a run, you can do so by executing: + + qdel job-ID + +Which will kill the current job without waiting for it to complete. If you have used the `-n` option ( e.g., `payu run -n`), but subsequently decide not to keep running after the current process completes, you can create a file called `stop_run` in the _control_ directory, and this will prevent `payu` from submitting another job. + +### Error and output log files + +While the model is running, _payu_ saves the model standard output and standard error in the `access-om2.out` and `access-om2.err` log files in the _control_ directory. You can examine the contents of these files to check on the status of a run as it progresses. + +At the end of a successful run these log files are archived to the `archive` directory and will not be found in the _control_ directory. If they remain in the _control_ directory after the PBS job for a run has completed this is an indication the run has failed. -## Run {{ model }} configuration +### Did the model run correctly? -After editing the configuration, you are ready to run {{ model }}. -
-{{ model }} suites run on Gadi through a PBS job submission managed by payu. +To determine if a model has run correctly it must first be established that it has finished. The `qstat` commands [above](#monitor-access-om2-runs) and the [presence of PBS log files](#pbs-output-files) should be used to determine if the PBS job has ended. -### Payu setup (optional) +If the model did not run to completion correctly the following will still be in the `control` directory: -As a first step, from within the control directory, it is good practice to run: + work/ + access-om2.err + access-om2.out -
payu setup
+This is because `payu` will only run the `archive` step when the model runs without error. -This will prepare the model run, based on the experiment configuration. +## {{ model }} outputs + +At the end of a successful model run, output files, restart files and log files are moved from the work directory to the archive directory. A symbolic link in the control directory to a directory in the _laboratory_ (`/scratch/$PROJECT/$USER/access-om2/archive`) is provided for convenience. + +If a model run is unsuccessful the `work` directory is left untouched to facilitate "run forensics" to determine the cause of the model failure. + +Outputs and restarts are stored in subfolders within the `archive`, subdivided for each run of the model. + +Output folders are `outputXXX` and restart folders `restartXXX`, where _XXX_ is the run number starting from `000`. + +Model components are separated into subdirectories within the output and restart directories. + + +cd ~/access-om2/1deg_jra55_ryf +ls +output000 pbs_logs restart000 + + +### Model Live Diagnostics + +ACCESS-NRI developed the [Model Live Diagnostics](https://access-hive.org.au/model_evaluation/#model-live-diagnostics) framework to check, monitor, visualise, and evaluate model behaviour and progress of ACCESS models currently running on _Gadi_. + +For a complete documentation on how to use this framework, check the [Model Diagnostics documentation](https://med-live-diagnostics.readthedocs.io/en/latest/index.html). + +### Trouble-shooting + +If `payu` doesn't run correctly for some reason a good first step step, from within the _control_ directory, is to run: + + payu setup + +This will prepare the model run: create the ephemeral `work` directory based on the experiment configuration, generate manifests and report some useful information to the user, such as the location of the _laboratory_ where the `work` and `archive` directories are located. payu setup laboratory path: /scratch/$PROJECT/$USER/access-om2 -binary ppath: /scratch/$PROJECT/$USER/access-om2/bin +binary path: /scratch/$PROJECT/$USER/access-om2/bin input path: /scratch/$PROJECT/$USER/access-om2/input work path: /scratch/$PROJECT/$USER/access-om2/work archive path: /scratch/$PROJECT/$USER/access-om2/archive @@ -314,123 +263,256 @@ This will prepare the model run, based on the experiment configuration. Writing manifests/exe.yaml -
- This step can be skipped as it is also included in the run command. However, running it explicitly helps to check for errors and make sure executable and restart directories are accessible. -
+This can help to isolate issues such as permissions problems accessing files and directories, missing files or malformed/incorrect paths. -### Run configuration +!!! note -To run {{ model }} configuration for one internal run length (controlled by restart_period in the ~/access-om/1deg_jra55_iaf/accessom2.nml file), execute: + By default `payu run` will not proceed if there is an existing `work` directory. So after `payu setup` either `payu sweep` before attempting to run the configuration, or use `payu run -f` -
payu run -f
+--- -This will submit a single job to the queue with a total run length of restart_period. -
+## Modifying an {{ model }} configuration -
- The -f option ensures that payu will run even if there is an existing non-empty work directory created from a previous failed run. -
- - payu run -f - payu: warning: Job request includes 47 unused CPUs. - payu: warning: CPU request increased from 241 to 288 - Loading input manifest: manifests/input.yaml - Loading restart manifest: manifests/restart.yaml - Loading exe manifest: manifests/exe.yaml - payu: Found modules in /opt/Modules/v4.3.0 - qsub -q normal -P tm70 -l walltime=10800 -l ncpus=288 -l mem=1000GB -N 1deg_jra55_iaf -l wd -j n -v PYTHONPATH=/g/data3/tm70/dm5220/scripts/python_modules/,PAYU_PATH=/g/data/hh5/public/apps/miniconda3/envs/analysis3-23.01/bin,PAYU_FORCE=True,MODULESHOME=/opt/Modules/v4.3.0,MODULES_CMD=/opt/Modules/v4.3.0/libexec/modulecmd.tcl,MODULEPATH=/g/data3/hh5/public/modules:/etc/scl/modulefiles:/opt/Modules/modulefiles:/opt/Modules/v4.3.0/modulefiles:/apps/Modules/modulefiles -W umask=027 -l storage=gdata/hh5+gdata/ik11+gdata/qv56 -- /g/data/hh5/public/apps/miniconda3/envs/analysis3-23.01/bin/python3.9 /g/data/hh5/public/apps/miniconda3/envs/analysis3-23.01/bin/payu-run - <job-ID>.gadi-pbs - +Once you are comfortable that you can clone and run an existing configuration it is often the case that you will want to modify the configuration depending on your science goals. -### Run configuration for multiple years +This section describes the model configuration and how to modify it. -If you want to run {{ model }} configuration for multiple internal run lengths (controlled by restart_period in the ~/access-om/1deg_jra55_iaf/accessom2.nml file), use the option -n: +Modifications can be to the way the model is run by `payu`, or can change the way specific model components are configured, or the coupling between them. Sometimes changes are required to both, if the model component changes require a change to the resources needed for the model to complete. -
payu run -f -n <number-of-runs>
+The `config.yaml` file located in the _control_ directory, is the _Master Configuration_ file, which controls the general model configuration. It contains several parts, some of which it is more likely will need modification, and others are rarely changed without significant understanding of how the model is configured. -This will run the configuration number-of-runs times with a total run length of restart_period \* number-of-runs. -
-For example, to run the configuration for a total of 50 years with restart_period = 5, 0, 0 (5 years), the number-of-runs should be set to 10: +### Change run length -##
payu run -f -n 10
+One of the most common changes is to adjust the duration of the model run. For example when debugging changes to a model, it is common to reduce the run length to minimise resource consumption and return faster feedback on changes. -## Monitor {{ model }} runs +To change the run length, edit the `restart_period` field in the `&date_manager_nml` section of the `~/access-om2/1deg_jra55_ryf/accessom2.nml` file: -Currently, there is no specific tool to monitor {{ model }} runs. -
-You can execute the following command to show the status of all your submitted PBS jobs: + &date_manager_nml + forcing_start_date = '1958-01-01T00:00:00' + forcing_end_date = '2019-01-01T00:00:00'
+ ! Runtime for a single segment/job/submit, format is years, months, seconds, + ! two of which must be zero. + restart_period = 5, 0, 0 + &end -
qstat -u $USER
- - qstat -u $USER - Job id                Name             User             Time Use S Queue - --------------------- ---------------- ---------------- -------- - ----- - <job-ID>.gadi-pbs     1deg_jra55_iaf   <$USER>            <time> R normal-exec - <job-ID-2>.gadi-pbs   <other-job-name> <$USER>            <time> R normal-exec - <job-ID-3>.gadi-pbs   <other-job-name> <$USER>            <time> R normal-exec - -If you changed the jobname in the PBS resources of the Master Configuration file, that will appear as your job's Name instead of 1deg_jra55_iaf. -
-S indicates the status of your run, where: -
    -
  • Q → Job waiting in the queue to start
  • -
  • R → Job running
  • -
  • E → Job ending
  • -
-If there are no jobs listed with your jobname (or if no job is listed), your run either successfully completed or was terminated due to an error. +For example, to make the model run for only 1 month change `restart_period` to -### Stop a run + restart_period = 0, 1, 0 -If you want to manually terminate a run, you can do so by executing: +!!! note -
qdel <job-ID>
+ While `restart_period` can be reduced, it should not be increased to more than 5 years to avoid errors. For more information about the difference between run length and total experiment length, or how to run the model for more than 5 years, refer to the section [Run configuration for multiple years](#run-configuration-for-multiple-years"). -### Error and output log files -While the model is running, payu saves the standard output and standard error in the respective access-om2.out and access-om2.err files in the control directory. You can examine the contents of these files to check on the status of a run as it progresses. -
-When the model completes its run, or if it crashes, the output and error log files are by default renamed as jobname.o<job-ID> and jobname.e<job-ID>, respectively. +### Modify PBS resources -### Model Live Diagnostics +If the model has been altered and needs longer to complete, more memory, or you want to change which queue it uses then this is the part of `config.yaml` you need to modify: + +```yaml +# If submitting to a different project to your default, uncomment line below +# and replace PROJECT_CODE with appropriate code. This may require setting shortpath +# project: PROJECT_CODE + +# Force payu to always find, and save, files in this scratch project directory +# shortpath: /scratch/PROJECT_CODE + +queue: normal +walltime: 3:00:00 +jobname: 1deg_jra55_ryf +mem: 1000GB +``` + +These lines can be edited to change the [PBS directives](https://opus.nci.org.au/display/Help/PBS+Directives+Explained") for the [PBS job][PBS jobs]. + +For example, to run {{ model }} under the `ol01` project (COSIMA Working Group), uncomment the line beginning with `# project` by deleting the `#` symbol and replace `PROJECT_CODE` wih `ol01`: + +```yaml +project: ol01 +``` + +If other compute projects will be used to run a configuration then the `shortpath` will also need to be uncommented and the path to the desired `/scratch/PROJECT_CODE` added. Doing this will make sure the same `/scratch` location is used for the _laboratory_ regardless of which project is used to run the experiment. + +!!! note + + To run {{ model }}, you need to be a member of a project with allocated _Service Units_ (SU). For more information, check [how to join relevant NCI projects](https://access-hive.org.au/getting_started/first_steps/#join-relevant-nci-projects) + +### Syncing output data -ACCESS-NRI developed the [Model Live Diagnostics](/model_evaluation/model_diagnostics) framework to check, monitor, visualise, and evaluate model behaviour and progress of ACCESS models currently running on Gadi. -
-For a complete documentation on how to use this framework, check the Model Diagnostics documentation. +As [discussed above](#running-an-access-om2-configuration) the _laboratory_ directory is typically in a directory on ephemeral `/scratch` storage where [files are regularly deleted once they have been unaccessed for a period of time](https://opus.nci.org.au/pages/viewpage.action?pageId=156434436). For this reason climate model outputs need to be moved to a location with longer term storage. On _gadi_ this is typically under a project code on `/g/data`. + +`payu` has in-built support to sync outputs, restarts and a copy of the _control_ directory git history to another location. To do this modify this section of the `config.yaml` shown below: change `enable` to `True`, and set `path` to a location on `/g/data`. + +```yaml +# Sync options for automatically copying data from ephemeral scratch space to +# longer term storage +sync: + enable: False # set path below and change to true + path: none # Set to location on /g/data or a remote server and path (rsync syntax) + exclude: + - '*.nc.*' + - 'iceh.????-??-??.nc' +``` + +### Saving model restarts + +The model outputs restart files after every run so the model can then run again from the saved model state. + +Restart files can occupy a significant amount of disk space and it isn't necessary to be able to restart the model at every point where the model was stopped during a run. The `restart_freq` specifies a strategy for what restart files are retained. + +This can either be a number, which retains every _nth_ numbered restart, or a pandas style date-time frequency alias. For example to preserve the ability to restart the model every 50 model run years: +```yaml +restart_freq: 50Y +``` +The most recent sequential restarts are retained, and only deleted only after a permanently archived restart has been produced. + +See the [documentation for more detail](https://payu.readthedocs.io/en/latest/config.html#model). + +### Other rarely modified configuration options + +#### Model configuration + +This tells `payu` which driver to use for the main model configuration (`access-om2`) and the location of all inputs that are common to all the component models, or submodels. + +```yaml +name: common +model: access-om2 +input: /g/data/ik11/inputs/access-om2/input_20201102/common_1deg_jra55 +``` +The `name` field here is not actually used for the configuration run so you can safely ignore it. + +#### Submodels + +{{ model }} is a coupled model deploying multiple submodels (i.e. [model components]). + +This section specifies the submodels and configuration options required to execute the model correctly. + +Each submodel contains additional configuration options that are read in when the submodel is running. These options are specified in the subfolder of the _control_ directory, whose name matches the submodel's _name_ (e.g., configuration options for the `ocean` submodel are in the `~/access-om2/1deg_jra55_ryf/ocean` directory). + +??? note "Expand for detail" + + ```yaml + submodels: + - name: atmosphere + model: yatm + exe: /g/data/vk83/apps/spack/0.20/release/linux-rocky8-x86_64/intel-19.0.5.281/libaccessom2-git.2023.10.26=2023.10.26-ieiy3e7hidn4dzaqly3ly2yu45mecgq4/bin/yatm.exe + input: + - /g/data/vk83/experiments/inputs/access-om2/remapping_weights/JRA55/global.1deg/2020.05.30/rmp_jrar_to_cict_CONSERV.nc + - /g/data/vk83/experiments/inputs/JRA-55/RYF/v1-4/data + ncpus: 1 + + - name: ocean + model: mom + exe: /g/data/vk83/apps/spack/0.20/release/linux-rocky8-x86_64/intel-19.0.5.281/mom5-git.2023.11.09=2023.11.09-ewcdbrfukblyjxpkhd3mfkj4yxfolal4/bin/fms_ACCESS-OM.x + input: + - /g/data/vk83/experiments/inputs/access-om2/ocean/grids/mosaic/global.1deg/2020.05.30/grid_spec.nc + - /g/data/vk83/experiments/inputs/access-om2/ocean/grids/mosaic/global.1deg/2020.05.30/ocean_hgrid.nc + - /g/data/vk83/experiments/inputs/access-om2/ocean/grids/mosaic/global.1deg/2020.05.30/ocean_mosaic.nc + - /g/data/vk83/experiments/inputs/access-om2/ocean/grids/bathymetry/global.1deg/2020.10.22/topog.nc + - /g/data/vk83/experiments/inputs/access-om2/ocean/grids/bathymetry/global.1deg/2020.10.22/ocean_mask.nc + - /g/data/vk83/experiments/inputs/access-om2/ocean/grids/vertical/global.1deg/2020.10.22/ocean_vgrid.nc + - /g/data/vk83/experiments/inputs/access-om2/ocean/processor_masks/global.1deg/216.16x15/2020.05.30/ocean_mask_table + - /g/data/vk83/experiments/inputs/access-om2/ocean/chlorophyll/global.1deg/2020.05.30/chl.nc + - /g/data/vk83/experiments/inputs/access-om2/ocean/initial_conditions/global.1deg/2020.10.22/ocean_temp_salt.res.nc + - /g/data/vk83/experiments/inputs/access-om2/ocean/tides/global.1deg/2020.05.30/tideamp.nc + - /g/data/vk83/experiments/inputs/access-om2/ocean/tides/global.1deg/2020.05.30/roughness_amp.nc + - /g/data/vk83/experiments/inputs/access-om2/ocean/tides/global.1deg/2020.05.30/roughness_cdbot.nc + - /g/data/vk83/experiments/inputs/access-om2/ocean/surface_salt_restoring/global.1deg/2020.05.30/salt_sfc_restore.nc + ncpus: 216 + + - name: ice + model: cice5 + exe: /g/data/vk83/apps/spack/0.20/release/linux-rocky8-x86_64/intel-19.0.5.281/cice5-git.2023.10.19=2023.10.19-rh3xfkrgajya3ghtliacuhlx3pgvrzqs/bin/cice_auscom_360x300_24x1_24p.exe + input: + - /g/data/vk83/experiments/inputs/access-om2/ice/grids/global.1deg/2020.05.30/grid.nc + - /g/data/vk83/experiments/inputs/access-om2/ice/grids/global.1deg/2020.10.22/kmt.nc + - /g/data/vk83/experiments/inputs/access-om2/ice/initial_conditions/global.1deg/2020.05.30/i2o.nc + - /g/data/vk83/experiments/inputs/access-om2/ice/initial_conditions/global.1deg/2020.05.30/o2i.nc + - /g/data/vk83/experiments/inputs/access-om2/ice/initial_conditions/global.1deg/2020.05.30/u_star.nc + - /g/data/vk83/experiments/inputs/access-om2/ice/initial_conditions/global.1deg/2020.05.30/monthly_sstsss.nc + ncpus: 24 + ``` + + +#### Collation + +The MOM model typically outputs model diagnostics as tiles: rather than output a single file it is saved as a number of smaller tiles each of which contain a part of the model grid. + +The `collate` process combines a number of these smaller files into a single output file. Restart files are typically tiled in the same way and will also be combined together if the `restart` option is set to `true`. + +```yaml +collate: + restart: true + walltime: 1:00:00 + mem: 30GB + ncpus: 4 + queue: normal + exe: /g/data/ik11/inputs/access-om2/bin/mppnccombine +``` + +- **runlog** + +```yaml +runlog: true +``` +When running a new configuration, _payu_ automatically commits changes with `git` if `runlog` is set to `true`. + +This should not be changed as it is an essential part of the provenance of an experiment. `payu` updates the manifest files for every run, and relies on `runlog` to save this information in the `git` history so there is a record of all inputs, restarts and executables used in an experiment. + +- **Platform-specific defaults** + +```yaml +platform: +nodesize: 48 +``` + +Set platform-specific default parameters. In this case it sets the default number of cpus per node to 48. This *might* need changing if the configuration is run on hardware with different `nodesize`. + +- **User scripts** + +```yaml +userscripts: + error: resub.sh + run: rm -f resubmit.count +``` + +A dictionary to run scripts or subcommands at various stages of a _payu_ submission. + +`error` gets called if the model does not run correctly and returns an error code. `run` gets called after the model execution, but prior to model output archive + + +#### Miscellaneous + +There rest of the configuration settings should never need changing: `stacksize`, `mpirun`, `qsub_flags` and `env`. + +??? Show configuration details + + ```yaml + stacksize: unlimited + mpirun: --mca io ompio --mca io_ompio_num_aggregators 1 + qsub_flags: -W umask=027 + env: + UCX_LOG_LEVEL: 'error' + ``` + +To find out more about other configuration settings for the `config.yaml` file, refer to [how to configure your experiment with `payu`](https://payu.readthedocs.io/en/latest/config.html). + +### Edit a single {{ model }} component configuration + +Each of the [model components] contains configuration options specific to that model that are read in when the model component is running. These options are typically useful to modify the physics used in the model, the input data or the model variables saved in the output files. +These configuration options are are specified in files in a subfolder of the _control_ directory, named the same as the submodel's name in the `config.yaml` `submodel` section (e.g., configuration options for the _ocean_ submodel are in the `~/access-om2/1deg_jra55_ryf/ocean` directory). +To modify these options please refer to the User Guide of each individual model component. --- -## {{ model }} outputs +# References + +- [COSIMA] +- [Kiss et al. (2020)](http://doi.org/10.5194/gmd-13-401-2020) +- [ACCESS-OM2 on GitHub](https://github.com/access-nri/access-om2/) +- [Payu documentation](https://payu.readthedocs.io/en/latest/usage.html) -At the end of the model run, output files (and restart files) are moved from the work directory to the archive directory /scratch/$PROJECT/$USER/access-om2/archive. They are also symlinked in the control directory to ~/access-om/1deg_jra55_iaf/archive. -
-Both outputs and restarts are stored in subfolders for each different configuration (in this case, 1deg_jra55_iaf). Inside the configuration folder, they are further subdivided for each internal run. -
-The naming format for a typical output folder is outputXXX and for a restart folder restartXXX, where XXX is the internal run number starting from 000. -
-Outputs and restarts are separated in the respective folders for each model component. -
- -cd /scratch/$PROJECT/$USER/access-om2/archive/1deg_jra55_iaf -ls -output000 pbs_logs restart000 - -
-
References
- +[model components]: https://access-hive.org.au/models/configurations/access-om/#model-components +[COSIMA]: https://cosima.org.au +[ACCESS-OM2 configs]: https://github.com/ACCESS-NRI/access-om2-configs +[PBS Jobs]: https://opus.nci.org.au/display/Help/4.+PBS+Jobs \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index 7e315baa5..ecfb270d0 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -75,6 +75,7 @@ markdown_extensions: emoji_index: !!python/name:materialx.emoji.twemoji emoji_generator: !!python/name:materialx.emoji.to_svg - md_in_html + - admonition - pymdownx.details - pymdownx.superfences - pymdownx.inlinehilite From 5084917d575fdec0f61174b8077e6b1b755a304f Mon Sep 17 00:00:00 2001 From: Jasmeen Kaur Date: Wed, 17 Apr 2024 09:47:30 +1000 Subject: [PATCH 6/8] :memo: (#667): Added Hackathon repo link to the ACCESS-Hive repo --- docs/community_resources/workshops_events_archive/index.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/community_resources/workshops_events_archive/index.md b/docs/community_resources/workshops_events_archive/index.md index b9e85ea5a..6b89c0fb1 100644 --- a/docs/community_resources/workshops_events_archive/index.md +++ b/docs/community_resources/workshops_events_archive/index.md @@ -1,3 +1,5 @@ # Workshops and Events Archive -ACCESS Community Workshop 2023 \ No newline at end of file +ACCESS Community Workshop 2023 + +CMIP7 Hackathon Resources \ No newline at end of file From ab4d61a2914ec43f2ecb203b60c9eec2a5da664d Mon Sep 17 00:00:00 2001 From: atteggiani Date: Thu, 18 Apr 2024 14:28:39 +1000 Subject: [PATCH 7/8] Changed miscellaneous JS function "makeLinksExternal" to detect links with the 'href' attribute starting with 'http' (but not being 'https://access-hive.org.au') and add the attribute "target='_blank'". --- docs/js/miscellaneous.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/js/miscellaneous.js b/docs/js/miscellaneous.js index 9f25cfedb..64fcfc1f8 100644 --- a/docs/js/miscellaneous.js +++ b/docs/js/miscellaneous.js @@ -96,12 +96,14 @@ function tabFunctionality() { /* - Add the external-link icon to tags with target="_blank" + Make links that go to a different website 'external' by adding the + target="_blank" attribute, and add an external-link icon to them. */ -function addExternalLinkIcon() { - let extLinks = document.querySelectorAll("article a[target='_blank']:not(:is(.vertical-card,.horizontal-card))"); +function makeLinksExternal() { + let extLinks = document.querySelectorAll("article a[href^='http']:not([href^='https://access-hive.org.au']):not(:is(.vertical-card,.horizontal-card))"); extLinks.forEach(link => { link.classList.add('external-link'); + link.setAttribute('target','_blank'); }) } @@ -216,7 +218,7 @@ function main() { adjustScrollingToId(); tabFunctionality(); sortTables(); - addExternalLinkIcon(); + makeLinksExternal(); fitText(); toggleTerminalAnimations(); makeCitationLinks(); From 2f696db07ba69d9af27ab4ea6398cb8e319efe02 Mon Sep 17 00:00:00 2001 From: Claire Carouge Date: Wed, 1 May 2024 10:56:08 +1000 Subject: [PATCH 8/8] (#405): Add information about benchcab --- docs/models/model_components/land.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/models/model_components/land.md b/docs/models/model_components/land.md index eaff3337c..3f3ef9812 100644 --- a/docs/models/model_components/land.md +++ b/docs/models/model_components/land.md @@ -18,6 +18,12 @@ Directly coupled into the UM, CABLE
CABLE can also be run as a standalone model, for a single location, a region or globally. +### benchcab: evaluation tool for CABLE + +benchcab is a testing framework tool for CABLE. It allows to test CABLE's scientific performance across a range of model configurations and model versions. The tool currently tests CABLE offline only with flux site simulations, using observed eddy covariance data and with spatial simulations over a region or globally. The output of these simulations can then be uploaded to modelevaluation.org for a statistical analysis of the scientific performance of the supplied configurations. + +We invite you to refer to the documentation to know how to use the tool and learn about current limitations to the functionalities. + ## JULES The Joint UK Land Environment System (JULES) is a community land surface model that can be used both as a standalone model and as the land surface component in the UM model. By modelling different land surface processes (surface energy balance, hydrological cycle, carbon cycle, dynamic vegetation, etc.) and their interaction with each other, JULES provides a framework to assess the impact of modifying a particular process on the ecosystem as a whole, for example the impact of climate change on hydrology.