From 64826fc376e5f9136dbe91b5930b3c029143eca2 Mon Sep 17 00:00:00 2001 From: gspetro Date: Mon, 26 Sep 2022 13:30:36 -0400 Subject: [PATCH 01/58] update stochastic physics link --- docs/UsersGuide/source/Introduction.rst | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/UsersGuide/source/Introduction.rst b/docs/UsersGuide/source/Introduction.rst index fe351602a9..d623672219 100644 --- a/docs/UsersGuide/source/Introduction.rst +++ b/docs/UsersGuide/source/Introduction.rst @@ -447,7 +447,7 @@ A list of available documentation is shown in :numref:`Table %s `. Contributions to the `ufs-srweather-app `__ repository or the `regional_workflow `__ repository should follow the guidelines contained in the :ref:`SRW App Contributor's Guide `. From de9b60f9fd2b17c007e4c3a43eb7bd86fce51dc2 Mon Sep 17 00:00:00 2001 From: gspetro Date: Mon, 26 Sep 2022 15:04:20 -0400 Subject: [PATCH 02/58] add HPC-Stack Intersphinx links --- docs/UsersGuide/source/Components.rst | 2 +- .../UsersGuide/source/ContainerQuickstart.rst | 2 +- docs/UsersGuide/source/ContributorsGuide.rst | 80 +++++++++---------- docs/UsersGuide/source/Include-HPCInstall.rst | 9 --- docs/UsersGuide/source/Introduction.rst | 7 +- docs/UsersGuide/source/Quickstart.rst | 2 +- docs/UsersGuide/source/conf.py | 4 +- docs/UsersGuide/source/index.rst | 1 - 8 files changed, 49 insertions(+), 58 deletions(-) delete mode 100644 docs/UsersGuide/source/Include-HPCInstall.rst diff --git a/docs/UsersGuide/source/Components.rst b/docs/UsersGuide/source/Components.rst index fbe1cf910d..7053ce2b86 100644 --- a/docs/UsersGuide/source/Components.rst +++ b/docs/UsersGuide/source/Components.rst @@ -79,7 +79,7 @@ Build System and Workflow The SRW Application has a portable build system and a user-friendly, modular, and expandable workflow framework. -An umbrella CMake-based build system is used for building the components necessary for running the end-to-end SRW Application, including the UFS Weather Model and the pre- and post-processing software. Additional libraries necessary for the application (e.g., :term:`NCEPLIBS-external` and :term:`NCEPLIBS`) are not included in the SRW Application build system but are available pre-built on pre-configured platforms. On other systems, they can be installed via the HPC-Stack (see :numref:`Chapter %s: Installing the HPC-Stack `). There is a small set of system libraries and utilities that are assumed to be present on the target computer: the CMake build software, a Fortran, C, and C++ compiler, and an :term:`MPI` library. +An umbrella CMake-based build system is used for building the components necessary for running the end-to-end SRW Application, including the UFS Weather Model and the pre- and post-processing software. Additional libraries necessary for the application (e.g., :term:`NCEPLIBS-external` and :term:`NCEPLIBS`) are not included in the SRW Application build system but are available pre-built on pre-configured platforms. On other systems, they can be installed via the HPC-Stack (see :doc:`HPC-Stack Documentation `). There is a small set of system libraries and utilities that are assumed to be present on the target computer: the CMake build software, a Fortran, C, and C++ compiler, and an :term:`MPI` library. Once built, the provided experiment generator script can be used to create a Rocoto-based workflow file that will run each task in the system in the proper sequence (see :numref:`Chapter %s ` or the `Rocoto documentation `_ for more information on Rocoto). If Rocoto and/or a batch system is not present on the available platform, the individual components can be run in a stand-alone, command line fashion with provided run scripts. The generated namelist for the atmospheric model can be modified in order to vary settings such as forecast starting and ending dates, forecast length hours, the :term:`CCPP` physics suite, integration time step, history file output frequency, and more. It also allows for configuration of other elements of the workflow; for example, users can choose whether to run some or all of the pre-processing, forecast model, and post-processing steps. diff --git a/docs/UsersGuide/source/ContainerQuickstart.rst b/docs/UsersGuide/source/ContainerQuickstart.rst index 1ba7cc0ef7..229db0a6eb 100644 --- a/docs/UsersGuide/source/ContainerQuickstart.rst +++ b/docs/UsersGuide/source/ContainerQuickstart.rst @@ -31,7 +31,7 @@ Install Singularity To build and run the SRW App using a Singularity container, first install the Singularity package according to the `Singularity Installation Guide `__. This will include the installation of dependencies and the installation of the Go programming language. SingularityCE Version 3.7 or above is recommended. .. warning:: - Docker containers can only be run with root privileges, and users cannot have root privileges on :term:`HPCs`. Therefore, it is not possible to build the SRW App, which uses the HPC-Stack, inside a Docker container on an HPC system. However, a Singularity image may be built directly from a Docker image for use on the system. + Docker containers can only be run with root privileges, and users cannot have root privileges on :term:`HPCs `. Therefore, it is not possible to build the SRW App, which uses the HPC-Stack, inside a Docker container on an HPC system. However, a Singularity image may be built directly from a Docker image for use on the system. Working in the Cloud or on HPC Systems ----------------------------------------- diff --git a/docs/UsersGuide/source/ContributorsGuide.rst b/docs/UsersGuide/source/ContributorsGuide.rst index 8a41cbd739..28d1a42867 100644 --- a/docs/UsersGuide/source/ContributorsGuide.rst +++ b/docs/UsersGuide/source/ContributorsGuide.rst @@ -27,47 +27,47 @@ Scientists from across multiple labs and organizations have volunteered to revie .. table:: - +------------------+------------------------------------------------+-----------------------------------------------------------------------------------+ - | **Organization** | **Reviewers** | **Areas of Expertise** | - +==================+================================================+===================================================================================+ + +------------------+------------------------------------------------+---------------------------------------------------------------------------------------------+ + | **Organization** | **Reviewers** | **Areas of Expertise** | + +==================+================================================+=============================================================================================+ | EMC | Chan-Hoo Jeon (@chan-hoo) | Workflow, Operational platform testing (WCOSS/NCO), and Air quality modeling (Online-CMAQ) | - | +------------------------------------------------+-----------------------------------------------------------------------------------+ - | | Ben Blake (@BenjaminBlake-NOAA) | Output visualization, Rocoto | - | +------------------------------------------------+-----------------------------------------------------------------------------------+ - | | Ratko Vasic (@RatkoVasic-NOAA) | Workflow, NCO requirements, and operational platform testing | - +------------------+------------------------------------------------+-----------------------------------------------------------------------------------+ - | EPIC | Mark Potts (@mark-a-potts) | HPC systems | - | +------------------------------------------------+-----------------------------------------------------------------------------------+ - | | Jong Kim (@jkbk2004) | UFS Weather Model configuration, forecast sensitivity analysis, data assimilation | - | +------------------------------------------------+-----------------------------------------------------------------------------------+ - | | Natalie Perlin (@natalie-perlin) | Generic Linux/Mac installations, hpc-stack/spack-stack | - | +------------------------------------------------+-----------------------------------------------------------------------------------+ - | | Gillian Petro (@gspetro-NOAA) | Documentation | - | +------------------------------------------------+-----------------------------------------------------------------------------------+ - | | Edward Snyder (@EdwardSnyder-NOAA) | WE2E testing, input data | - +------------------+------------------------------------------------+-----------------------------------------------------------------------------------+ - | GLERL | David Wright (@dmwright526) | FVCOM integration, output visualization, preprocessing tasks | - +------------------+------------------------------------------------+-----------------------------------------------------------------------------------+ - | GSL | Jeff Beck (@JeffBeck-NOAA) | SRW App configuration/workflow, code management, meteorological evaluation | - | +------------------------------------------------+-----------------------------------------------------------------------------------+ - | | Gerard Ketefian (@gsketefian) | ``regional_workflow`` scripts, jinja templates, and verification tasks | - | +------------------------------------------------+-----------------------------------------------------------------------------------+ - | | Linlin Pan (@panll) | Workflow, CCPP/physics, verification | - | +------------------------------------------------+-----------------------------------------------------------------------------------+ - | | Christina Holt (@christinaholtNOAA) | Workflow, conda environment support, testing, and code management | - | +------------------------------------------------+-----------------------------------------------------------------------------------+ - | | Christopher Harrop (@christopherwharrop-noaa) | Rocoto, code management, and testing | - | +------------------------------------------------+-----------------------------------------------------------------------------------+ - | | Daniel Abdi (@danielabdi-noaa) | Workflow generation, testing RRFS on the cloud, environment modules | - +------------------+------------------------------------------------+-----------------------------------------------------------------------------------+ - | NCAR | Mike Kavulich (@mkavulich) | CCPP/physics | - | +------------------------------------------------+-----------------------------------------------------------------------------------+ - | | Will Mayfield (@willmayfield) | Verification/METplus tasks, regional_workflow (esp. on Cheyenne) | - +------------------+------------------------------------------------+-----------------------------------------------------------------------------------+ - | NSSL | Yunheng Wang (@ywangwof) | HPC systems, code management and regional workflow especially on Stampede, Jet | - | | | and NSSL computers | - +------------------+------------------------------------------------+-----------------------------------------------------------------------------------+ - + | +------------------------------------------------+---------------------------------------------------------------------------------------------+ + | | Ben Blake (@BenjaminBlake-NOAA) | Output visualization, Rocoto | + | +------------------------------------------------+---------------------------------------------------------------------------------------------+ + | | Ratko Vasic (@RatkoVasic-NOAA) | Workflow, NCO requirements, and operational platform testing | + +------------------+------------------------------------------------+---------------------------------------------------------------------------------------------+ + | EPIC | Mark Potts (@mark-a-potts) | HPC systems | + | +------------------------------------------------+---------------------------------------------------------------------------------------------+ + | | Jong Kim (@jkbk2004) | UFS Weather Model configuration, forecast sensitivity analysis, data assimilation | + | +------------------------------------------------+---------------------------------------------------------------------------------------------+ + | | Natalie Perlin (@natalie-perlin) | Generic Linux/Mac installations, hpc-stack/spack-stack | + | +------------------------------------------------+---------------------------------------------------------------------------------------------+ + | | Gillian Petro (@gspetro-NOAA) | Documentation | + | +------------------------------------------------+---------------------------------------------------------------------------------------------+ + | | Edward Snyder (@EdwardSnyder-NOAA) | WE2E testing, input data | + +------------------+------------------------------------------------+---------------------------------------------------------------------------------------------+ + | GLERL | David Wright (@dmwright526) | FVCOM integration, output visualization, preprocessing tasks | + +------------------+------------------------------------------------+---------------------------------------------------------------------------------------------+ + | GSL | Jeff Beck (@JeffBeck-NOAA) | SRW App configuration/workflow, code management, meteorological evaluation | + | +------------------------------------------------+---------------------------------------------------------------------------------------------+ + | | Gerard Ketefian (@gsketefian) | ``regional_workflow`` scripts, jinja templates, and verification tasks | + | +------------------------------------------------+---------------------------------------------------------------------------------------------+ + | | Linlin Pan (@panll) | Workflow, CCPP/physics, verification | + | +------------------------------------------------+---------------------------------------------------------------------------------------------+ + | | Christina Holt (@christinaholtNOAA) | Workflow, conda environment support, testing, and code management | + | +------------------------------------------------+---------------------------------------------------------------------------------------------+ + | | Christopher Harrop (@christopherwharrop-noaa) | Rocoto, code management, and testing | + | +------------------------------------------------+---------------------------------------------------------------------------------------------+ + | | Daniel Abdi (@danielabdi-noaa) | Workflow generation, testing RRFS on the cloud, environment modules | + +------------------+------------------------------------------------+---------------------------------------------------------------------------------------------+ + | NCAR | Mike Kavulich (@mkavulich) | CCPP/physics | + | +------------------------------------------------+---------------------------------------------------------------------------------------------+ + | | Will Mayfield (@willmayfield) | Verification/METplus tasks, regional_workflow (esp. on Cheyenne) | + +------------------+------------------------------------------------+---------------------------------------------------------------------------------------------+ + | NSSL | Yunheng Wang (@ywangwof) | HPC systems, code management and regional workflow especially on Stampede, Jet | + | | | and NSSL computers | + +------------------+------------------------------------------------+---------------------------------------------------------------------------------------------+ + .. _ContribProcess: Contribution Process diff --git a/docs/UsersGuide/source/Include-HPCInstall.rst b/docs/UsersGuide/source/Include-HPCInstall.rst deleted file mode 100644 index e9d5e2d482..0000000000 --- a/docs/UsersGuide/source/Include-HPCInstall.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. _InstallHPCstack: - -.. include:: ../../../hpc-stack-mod/docs/source/hpc-install.rst -.. include:: ../../../hpc-stack-mod/docs/source/mac-install.rst - -.. include:: ../../../hpc-stack-mod/docs/source/hpc-prereqs.rst -.. include:: ../../../hpc-stack-mod/docs/source/hpc-parameters.rst -.. include:: ../../../hpc-stack-mod/docs/source/hpc-components.rst -.. include:: ../../../hpc-stack-mod/docs/source/hpc-notes.rst \ No newline at end of file diff --git a/docs/UsersGuide/source/Introduction.rst b/docs/UsersGuide/source/Introduction.rst index d623672219..4b741eaad0 100644 --- a/docs/UsersGuide/source/Introduction.rst +++ b/docs/UsersGuide/source/Introduction.rst @@ -107,7 +107,7 @@ The following software is also required to run the SRW Application, but the :ter * Only **MPICH** or **OpenMPI** can be built with HPC-Stack. Other implementations must be installed separately by the user (if desired). -For MacOS systems, some additional software packages are needed. When possible, it is recommended that users install and/or upgrade this software (along with software listed above) using the `Homebrew `__ package manager for MacOS. See :numref:`Chapter %s ` and :numref:`Chapter %s ` for further guidance on installing these prerequisites on MacOS. +For MacOS systems, some additional software packages are needed. When possible, it is recommended that users install and/or upgrade this software (along with software listed above) using the `Homebrew `__ package manager for MacOS. See :ref:`Chapter %s ` and :numref:`Chapter %s ` for further guidance on installing these prerequisites on MacOS. * bash v4.x * GNU compiler suite v.11 or higher with gfortran @@ -217,7 +217,7 @@ The :term:`umbrella repository` for the SRW Application is named ``ufs-srweather The UFS Weather Model contains a number of sub-repositories, which are documented `here `__. .. note:: - The prerequisite libraries (including NCEP Libraries and external libraries) are not included in the UFS SRW Application repository. The `HPC-Stack `__ repository assembles these prerequisite libraries. The HPC-Stack has already been built on `preconfigured (Level 1) platforms `__. However, it must be built on other systems. :numref:`Chapter %s ` contains details on installing the HPC-Stack. + The prerequisite libraries (including NCEP Libraries and external libraries) are not included in the UFS SRW Application repository. The `HPC-Stack `__ repository assembles these prerequisite libraries. The HPC-Stack has already been built on `preconfigured (Level 1) platforms `__. However, it must be built on other systems. See the :doc:`HPC-Stack Documentation ` for details on installing the HPC-Stack. .. _TopLevelDirStructure: @@ -447,7 +447,7 @@ A list of available documentation is shown in :numref:`Table %s `__ platform will need to install the :term:`HPC-Stack` prior to building the SRW App on a new machine. Installation instructions appear in both the `HPC-Stack documentation `__ and in :numref:`Chapter %s ` of this User's Guide. The steps will vary slightly depending on the user's platform. However, in all cases, the process involves cloning the `HPC-Stack repository `__, creating and entering a build directory, and invoking ``cmake`` and ``make`` commands to build the stack. This process will create a number of modulefiles and scripts that will be used for setting up the build environment for the SRW App. +SRW App users who are not working on a `Level 1 `__ platform will need to install the :term:`HPC-Stack` prior to building the SRW App on a new machine. Installation instructions appear in the :doc:`HPC-Stack documentation `. The steps will vary slightly depending on the user's platform. However, in all cases, the process involves cloning the `HPC-Stack repository `__, creating and entering a build directory, and invoking ``cmake`` and ``make`` commands to build the stack. This process will create a number of modulefiles and scripts that will be used for setting up the build environment for the SRW App. Once the HPC-Stack has been successfully installed, users can move on to building the SRW Application. diff --git a/docs/UsersGuide/source/conf.py b/docs/UsersGuide/source/conf.py index 5195edc819..39d812cf7c 100644 --- a/docs/UsersGuide/source/conf.py +++ b/docs/UsersGuide/source/conf.py @@ -203,7 +203,9 @@ def setup(app): # -- Options for intersphinx extension --------------------------------------- # Example configuration for intersphinx: refer to the Python standard library. -intersphinx_mapping = {'https://docs.python.org/3/': None} +intersphinx_mapping = { + 'hpc-stack': ('https://hpc-stack.readthedocs.io/en/latest/', None), +} # -- Options for todo extension ---------------------------------------------- diff --git a/docs/UsersGuide/source/index.rst b/docs/UsersGuide/source/index.rst index bed2528493..d2dd7398a7 100644 --- a/docs/UsersGuide/source/index.rst +++ b/docs/UsersGuide/source/index.rst @@ -16,7 +16,6 @@ UFS Short-Range Weather App Users Guide ContainerQuickstart BuildRunSRW Components - Include-HPCInstall InputOutputFiles LAMGrids ConfigWorkflow From 0540d49d63647bc297b7491fa4922316e9e9934c Mon Sep 17 00:00:00 2001 From: gspetro Date: Mon, 26 Sep 2022 15:56:00 -0400 Subject: [PATCH 03/58] remove hpc-stack submodule in favor of intersphinx links --- .gitmodules | 3 --- hpc-stack-mod | 1 - 2 files changed, 4 deletions(-) delete mode 160000 hpc-stack-mod diff --git a/.gitmodules b/.gitmodules index ca914133d5..e69de29bb2 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +0,0 @@ -[submodule "hpc-stack-mod"] - path = hpc-stack-mod - url = https://github.com/NOAA-EMC/hpc-stack.git diff --git a/hpc-stack-mod b/hpc-stack-mod deleted file mode 160000 index af75dcf24e..0000000000 --- a/hpc-stack-mod +++ /dev/null @@ -1 +0,0 @@ -Subproject commit af75dcf24ed64486a79b017354b423bc484db681 From c571d973c39dc603990253c47be3fd527b48bedb Mon Sep 17 00:00:00 2001 From: gspetro Date: Mon, 26 Sep 2022 16:07:38 -0400 Subject: [PATCH 04/58] move tables to 'tables' directory --- docs/UsersGuide/source/InputOutputFiles.rst | 4 ++-- docs/UsersGuide/source/WE2Etests.rst | 2 +- docs/UsersGuide/source/tables/.DS_Store | Bin 0 -> 6148 bytes .../source/{ => tables}/SRW_NATLEV_table.csv | 0 .../source/{ => tables}/SRW_NATLEV_table.rst | 0 .../source/{ => tables}/SRW_PRSLEV_table.csv | 0 .../source/{ => tables}/SRW_PRSLEV_table.rst | 0 docs/UsersGuide/source/{ => tables}/Tests.csv | 0 docs/UsersGuide/source/{ => tables}/Tests.rst | 0 .../source/{ => tables}/fix_file_list.rst | 0 10 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 docs/UsersGuide/source/tables/.DS_Store rename docs/UsersGuide/source/{ => tables}/SRW_NATLEV_table.csv (100%) rename docs/UsersGuide/source/{ => tables}/SRW_NATLEV_table.rst (100%) rename docs/UsersGuide/source/{ => tables}/SRW_PRSLEV_table.csv (100%) rename docs/UsersGuide/source/{ => tables}/SRW_PRSLEV_table.rst (100%) rename docs/UsersGuide/source/{ => tables}/Tests.csv (100%) rename docs/UsersGuide/source/{ => tables}/Tests.rst (100%) rename docs/UsersGuide/source/{ => tables}/fix_file_list.rst (100%) diff --git a/docs/UsersGuide/source/InputOutputFiles.rst b/docs/UsersGuide/source/InputOutputFiles.rst index 9432e361b3..284636d0bd 100644 --- a/docs/UsersGuide/source/InputOutputFiles.rst +++ b/docs/UsersGuide/source/InputOutputFiles.rst @@ -179,8 +179,8 @@ If users wish to modify the fields or levels that are output from the UPP, they This process requires advanced knowledge of which fields can be output for the UFS Weather Model. UPP Product Output Tables for the UFS SRW LAM Grid: - * :doc:`3D Native Hybrid Level Fields ` - * :doc:`3D Pressure Level Fields ` + * :doc:`3D Native Hybrid Level Fields ` + * :doc:`3D Pressure Level Fields ` Use the instructions in the `UPP User's Guide `__ to make modifications to the ``fv3lam.xml`` file and to remake the flat text file, called ``postxconfig-NT-fv3lam.txt`` (default), that the UPP reads. diff --git a/docs/UsersGuide/source/WE2Etests.rst b/docs/UsersGuide/source/WE2Etests.rst index f4803a56de..93b075781f 100644 --- a/docs/UsersGuide/source/WE2Etests.rst +++ b/docs/UsersGuide/source/WE2Etests.rst @@ -44,7 +44,7 @@ the executables have been built (see :numref:`Section %s `). I Supported Tests =================== -The full list of WE2E tests is extensive; it is not recommended to run all the tests, as some are computationally expensive. A subset of the full WE2E test suite is supported for the latest release of the SRW Application. Supported test cases can be viewed in :doc:`this table `. +The full list of WE2E tests is extensive; it is not recommended to run all the tests, as some are computationally expensive. A subset of the full WE2E test suite is supported for the latest release of the SRW Application. Supported test cases can be viewed in :doc:`this table `. Running the WE2E Tests ================================ diff --git a/docs/UsersGuide/source/tables/.DS_Store b/docs/UsersGuide/source/tables/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..18f33935bcfb9a6461f573642376b51be48a14eb GIT binary patch literal 6148 zcmeHK!AiqG5Pe$zkdS7;7Oy5i2t= z^EQ*6+0EOK$p8q$m&X$z1JI)icKS5mh};)lla6`zi6P~9!VDFrxTAI11qS5o4k73E z##8%zelskv!~oBNXVrXCR`Zgxv-dAT-w_I2;g%ULaEfc3V~iVKE%AUdy%7UUnCEp1 zd49H^OYW=K!hSaAX|ta`IhiIt7i6>z6U~S=YwW_?=6iGooPoc>0Bg2L??BP5GvEw3 z11kpP`w*#uxnZrCJ{>fv1t50mPQtPD5)u;)bHiGZcPK$ai5eQL#RwWsf3$hIVXdg) z2-bWATRB*V64L6-AJcS%T+yvF;0!bw*wf2Q>i>9i|KAMqD`&tN_*V>s?x+|I`AAk< x*B(x4ZKU2)MPy#BxC-GQm1547QhZEJLVuJ2F*mFg>7n?KK%&8oGw`bnd;r`Yy{-TN literal 0 HcmV?d00001 diff --git a/docs/UsersGuide/source/SRW_NATLEV_table.csv b/docs/UsersGuide/source/tables/SRW_NATLEV_table.csv similarity index 100% rename from docs/UsersGuide/source/SRW_NATLEV_table.csv rename to docs/UsersGuide/source/tables/SRW_NATLEV_table.csv diff --git a/docs/UsersGuide/source/SRW_NATLEV_table.rst b/docs/UsersGuide/source/tables/SRW_NATLEV_table.rst similarity index 100% rename from docs/UsersGuide/source/SRW_NATLEV_table.rst rename to docs/UsersGuide/source/tables/SRW_NATLEV_table.rst diff --git a/docs/UsersGuide/source/SRW_PRSLEV_table.csv b/docs/UsersGuide/source/tables/SRW_PRSLEV_table.csv similarity index 100% rename from docs/UsersGuide/source/SRW_PRSLEV_table.csv rename to docs/UsersGuide/source/tables/SRW_PRSLEV_table.csv diff --git a/docs/UsersGuide/source/SRW_PRSLEV_table.rst b/docs/UsersGuide/source/tables/SRW_PRSLEV_table.rst similarity index 100% rename from docs/UsersGuide/source/SRW_PRSLEV_table.rst rename to docs/UsersGuide/source/tables/SRW_PRSLEV_table.rst diff --git a/docs/UsersGuide/source/Tests.csv b/docs/UsersGuide/source/tables/Tests.csv similarity index 100% rename from docs/UsersGuide/source/Tests.csv rename to docs/UsersGuide/source/tables/Tests.csv diff --git a/docs/UsersGuide/source/Tests.rst b/docs/UsersGuide/source/tables/Tests.rst similarity index 100% rename from docs/UsersGuide/source/Tests.rst rename to docs/UsersGuide/source/tables/Tests.rst diff --git a/docs/UsersGuide/source/fix_file_list.rst b/docs/UsersGuide/source/tables/fix_file_list.rst similarity index 100% rename from docs/UsersGuide/source/fix_file_list.rst rename to docs/UsersGuide/source/tables/fix_file_list.rst From cd933e1bd3833511d41c93740247aba42a386b85 Mon Sep 17 00:00:00 2001 From: gspetro Date: Mon, 26 Sep 2022 16:22:27 -0400 Subject: [PATCH 05/58] remove duplicate Glossary terms; update links --- docs/UsersGuide/source/ConfigWorkflow.rst | 4 ++-- docs/UsersGuide/source/Glossary.rst | 9 +-------- docs/UsersGuide/source/InputOutputFiles.rst | 8 ++++---- docs/UsersGuide/source/Introduction.rst | 2 +- docs/UsersGuide/source/Quickstart.rst | 2 +- docs/UsersGuide/source/RocotoInfo.rst | 2 +- 6 files changed, 10 insertions(+), 17 deletions(-) diff --git a/docs/UsersGuide/source/ConfigWorkflow.rst b/docs/UsersGuide/source/ConfigWorkflow.rst index 04fc0402c4..aa9cfd48d2 100644 --- a/docs/UsersGuide/source/ConfigWorkflow.rst +++ b/docs/UsersGuide/source/ConfigWorkflow.rst @@ -205,7 +205,7 @@ File Name Parameters Name of the file specifying the fields that the forecast model will output. ``FIELD_TABLE_FN``: (Default: "field_table") - Name of the file specifying the :term:`tracers` that the forecast model will read in from the :term:`IC/LBC` files. + Name of the file specifying the :term:`tracers ` that the forecast model will read in from the :term:`IC/LBC ` files. ``DATA_TABLE_FN``: (Default: "data_table") Name of the file containing the data table read in by the forecast model. @@ -508,7 +508,7 @@ Stochastic Kinetic Energy Backscatter (SKEB) Parameters Parameters for Stochastically Perturbed Parameterizations (SPP) ------------------------------------------------------------------ -SPP perturbs specific tuning parameters within a physics :term:`parameterization` (unlike :ref:`SPPT `, which multiplies overall physics tendencies by a random perturbation field *after* the call to the physics suite). Each SPP option is an array, applicable (in order) to the :term:`RAP`/:term:`HRRR`-based parameterization listed in ``SPP_VAR_LIST``. Enter each value of the array in ``config.sh`` as shown below without commas or single quotes (e.g., ``SPP_VAR_LIST=( "pbl" "sfc" "mp" "rad" "gwd"`` ). Both commas and single quotes will be added by Jinja when creating the namelist. +SPP perturbs specific tuning parameters within a physics :term:`parameterization ` (unlike :ref:`SPPT `, which multiplies overall physics tendencies by a random perturbation field *after* the call to the physics suite). Each SPP option is an array, applicable (in order) to the :term:`RAP`/:term:`HRRR`-based parameterization listed in ``SPP_VAR_LIST``. Enter each value of the array in ``config.sh`` as shown below without commas or single quotes (e.g., ``SPP_VAR_LIST=( "pbl" "sfc" "mp" "rad" "gwd"`` ). Both commas and single quotes will be added by Jinja when creating the namelist. .. note:: SPP is currently only available for specific physics schemes used in the RAP/HRRR physics suite. Users need to be aware of which :term:`SDF` is chosen when turning this option on. Among the supported physics suites, the full set of parameterizations can only be used with the ``FV3_HRRR`` option for ``CCPP_PHYS_SUITE``. diff --git a/docs/UsersGuide/source/Glossary.rst b/docs/UsersGuide/source/Glossary.rst index 30b1e36955..0d48c55237 100644 --- a/docs/UsersGuide/source/Glossary.rst +++ b/docs/UsersGuide/source/Glossary.rst @@ -53,7 +53,6 @@ Glossary Convection-allowing models (CAMs) are models that run on high-resolution grids (usually with grid spacing at 4km or less). They are able to resolve the effects of small-scale convective processes. They typically run several times a day to provide frequent forecasts (e.g., hourly or subhourly). cycle - cycles An hour of the day on which a forecast is started. cycle-dependent @@ -98,8 +97,7 @@ Glossary A strip of cells on the edge of the regional grid. The :ref:`wide halo ` surrounds the regional grid and is used to feed the lateral boundary conditions into the grid. The :ref:`HALO_BLEND ` parameter refers to a strip of cells *inside* the boundary of the native grid. This halo smooths out mismatches between the external and internal solutions. HPC - HPCs - High-Performance Computing (HPC) System(s). + High-Performance Computing. HPC-Stack The `HPC-Stack `__ is a repository that provides a unified, shell script-based build system for building the software stack required for numerical weather prediction (NWP) tools such as the `Unified Forecast System (UFS) `__ and the `Joint Effort for Data assimilation Integration (JEDI) `__ framework. @@ -110,18 +108,15 @@ Glossary HRRR `High Resolution Rapid Refresh `__. The HRRR is a NOAA real-time 3-km resolution, hourly updated, cloud-resolving, convection-allowing atmospheric model initialized by 3km grids with 3km radar assimilation. Radar data is assimilated in the HRRR every 15 min over a 1-h period adding further detail to that provided by the hourly data assimilation from the 13km radar-enhanced Rapid Refresh. - IC/LBC IC/LBCs Initial conditions/lateral boundary conditions - IC ICs Initial conditions LAM Limited Area Model (grid type), formerly known as the "Stand-Alone Regional Model," or SAR. LAM grids use a regional (rather than global) configuration of the :term:`FV3` :term:`dynamical core`. - LBC LBCs Lateral boundary conditions @@ -181,7 +176,6 @@ Glossary Orography The branch of physical geography dealing with mountains. - Parameterization Parameterizations Simplified functions that approximate the effects of small-scale processes (e.g., microphysics, gravity wave drag) that cannot be explicitly resolved by a model grid’s representation of the earth. @@ -198,7 +192,6 @@ Glossary The `spack-stack `__ is a collaborative effort between the NOAA Environmental Modeling Center (EMC), the UCAR Joint Center for Satellite Data Assimilation (JCSDA), and the Earth Prediction Innovation Center (EPIC). *spack-stack* is a repository that provides a Spack-based method for building the software stack required for numerical weather prediction (NWP) tools such as the `Unified Forecast System (UFS) `__ and the `Joint Effort for Data assimilation Integration (JEDI) `__ framework. spack-stack uses the Spack package manager along with custom Spack configuration files and Python scripts to simplify installation of the libraries required to run various applications. The *spack-stack* can be installed on a range of platforms and comes pre-configured for many systems. Users can install the necessary packages for a particular application and later add the missing packages for another application without having to rebuild the entire stack. tracer - tracers According to the American Meteorological Society (AMS) `definition `__, a tracer is "Any substance in the atmosphere that can be used to track the history [i.e., movement] of an air mass." Tracers are carried around by the motion of the atmosphere (i.e., by :term:`advection`). These substances are usually gases (e.g., water vapor, CO2), but they can also be non-gaseous (e.g., rain drops in microphysics parameterizations). In weather models, temperature (or potential temperature), absolute humidity, and radioactivity are also usually treated as tracers. According to AMS, "The main requirement for a tracer is that its lifetime be substantially longer than the transport process under study." UFS diff --git a/docs/UsersGuide/source/InputOutputFiles.rst b/docs/UsersGuide/source/InputOutputFiles.rst index 284636d0bd..124a888795 100644 --- a/docs/UsersGuide/source/InputOutputFiles.rst +++ b/docs/UsersGuide/source/InputOutputFiles.rst @@ -68,9 +68,9 @@ and are shown in :numref:`Table %s `. +-----------------------------+--------------------------------------------------------------+ | field_table_[CCPP] | :term:`Cycle-independent` file that the forecast model | | | reads in at the start of each forecast. It specifies the | - | | :term:`tracers` that the forecast model will :term:`advect`. | - | | A different ``field_table`` may be needed for different | - | | CCPP suites. | + | | :term:`tracers ` that the forecast model will | + | | :term:`advect`. A different ``field_table`` may be needed | + | | for different CCPP suites. | +-----------------------------+--------------------------------------------------------------+ | FV3.input.yml | YAML configuration file containing the forecast model's | | | namelist settings for various physics suites. The values | @@ -277,7 +277,7 @@ The paths to ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` and ``EXTRN_MDL_SOURCE_BASEDIR_LBC EXTRN_MDL_SOURCE_BASEDIR_ICS="" EXTRN_MDL_SOURCE_BASEDIR_LBCS="" -These last two variables describe where the :term:`IC` and :term:`LBC` file directories are located, respectively. For ease of reusing ``config.sh`` across experiments, it is recommended that users set up the raw :term:`IC/LBC` file paths to include the model name (e.g., FV3GFS, NAM, RAP, HRRR), data format (e.g., grib2, nemsio), and date (in ``YYYYMMDDHH`` format). For example: ``/path-to/input_model_data/FV3GFS/grib2/2019061518/``. While there is flexibility to modify these settings, this structure will provide the most reusability for multiple dates when using the SRW Application workflow. +These last two variables describe where the :term:`IC ` and :term:`LBC ` file directories are located, respectively. For ease of reusing ``config.sh`` across experiments, it is recommended that users set up the raw :term:`IC/LBC ` file paths to include the model name (e.g., FV3GFS, NAM, RAP, HRRR), data format (e.g., grib2, nemsio), and date (in ``YYYYMMDDHH`` format). For example: ``/path-to/input_model_data/FV3GFS/grib2/2019061518/``. While there is flexibility to modify these settings, this structure will provide the most reusability for multiple dates when using the SRW Application workflow. When files are pulled from NOAA :term:`HPSS` (rather than downloaded from the data bucket), the naming convention looks something like: diff --git a/docs/UsersGuide/source/Introduction.rst b/docs/UsersGuide/source/Introduction.rst index 4b741eaad0..390e9ca2d6 100644 --- a/docs/UsersGuide/source/Introduction.rst +++ b/docs/UsersGuide/source/Introduction.rst @@ -310,7 +310,7 @@ When the user generates an experiment using the ``generate_FV3LAM_wflow.sh`` scr +---------------------------+--------------------------------------------------------------------------------------------------------------+ | data_table | :term:`Cycle-independent` input file (empty) | +---------------------------+--------------------------------------------------------------------------------------------------------------+ - | field_table | :term:`Tracers` in the `forecast model | + | field_table | :term:`Tracers ` in the `forecast model | | | `__ | +---------------------------+--------------------------------------------------------------------------------------------------------------+ | FV3LAM_wflow.xml | Rocoto XML file to run the workflow | diff --git a/docs/UsersGuide/source/Quickstart.rst b/docs/UsersGuide/source/Quickstart.rst index ebe37cb72d..4961740ed2 100644 --- a/docs/UsersGuide/source/Quickstart.rst +++ b/docs/UsersGuide/source/Quickstart.rst @@ -66,7 +66,7 @@ For a detailed explanation of how to build and run the SRW App on any supported cmake .. -DCMAKE_INSTALL_PREFIX=.. make -j 4 >& build.out & - #. Download and stage data (both the fix files and the :term:`IC/LBC` files) according to the instructions in :numref:`Section %s ` (if on a Level 2-4 system). + #. Download and stage data (both the fix files and the :term:`IC/LBC ` files) according to the instructions in :numref:`Section %s ` (if on a Level 2-4 system). #. Configure the experiment parameters. diff --git a/docs/UsersGuide/source/RocotoInfo.rst b/docs/UsersGuide/source/RocotoInfo.rst index 075e029165..ac49064abf 100644 --- a/docs/UsersGuide/source/RocotoInfo.rst +++ b/docs/UsersGuide/source/RocotoInfo.rst @@ -7,7 +7,7 @@ The tasks in the SRW Application (:numref:`Table %s `) are t the Rocoto Workflow Manager. Rocoto is a Ruby program that communicates with the batch system on an :term:`HPC` system to run and manage dependencies between the tasks. Rocoto submits jobs to the HPC batch system as the task dependencies allow and runs one instance of the workflow for a set of user-defined -:term:`cycles`. More information about Rocoto can be found on the `Rocoto Wiki `__. +:term:`cycles `. More information about Rocoto can be found on the `Rocoto Wiki `__. The SRW App workflow is defined in a Jinja-enabled Rocoto XML template called ``FV3LAM_wflow.xml``, which resides in the ``regional_workflow/ush/templates`` directory. When the ``generate_FV3LAM_wflow.sh`` From 4b98e772f0bb48aa55f444bff30a591cf60babd6 Mon Sep 17 00:00:00 2001 From: gspetro Date: Mon, 26 Sep 2022 17:12:58 -0400 Subject: [PATCH 06/58] update Quickstart --- docs/UsersGuide/source/Quickstart.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/UsersGuide/source/Quickstart.rst b/docs/UsersGuide/source/Quickstart.rst index 4961740ed2..fd8137de5d 100644 --- a/docs/UsersGuide/source/Quickstart.rst +++ b/docs/UsersGuide/source/Quickstart.rst @@ -72,10 +72,10 @@ For a detailed explanation of how to build and run the SRW App on any supported .. code-block:: console - cd regional_workflow/ush - cp config.community.sh config.sh + cd ush + cp config.community.yaml config.yaml - Users will need to adjust the experiment parameters in the ``config.sh`` file to suit the needs of their experiment (e.g., date, time, grid, physics suite, etc.). More detailed guidance is available in :numref:`Section %s `. Parameters and valid values are listed in :numref:`Chapter %s `. + Users will need to adjust the experiment parameters in the ``config.yaml`` file to suit the needs of their experiment (e.g., date, time, grid, physics suite, etc.). More detailed guidance is available in :numref:`Section %s `. Parameters and valid values are listed in :numref:`Chapter %s `. #. Load the python environment for the regional workflow. Users on Level 2-4 systems will need to use one of the existing ``wflow_`` modulefiles (e.g., ``wflow_macos``) and adapt it to their system. @@ -97,7 +97,7 @@ For a detailed explanation of how to build and run the SRW App on any supported .. code-block:: console - ./generate_FV3LAM_wflow.sh + python generate_FV3LAM_wflow.py #. Run the regional workflow. There are several methods available for this step, which are discussed in :numref:`Section %s `. One possible method is summarized below. It requires the Rocoto Workflow Manager. From 2bfda254cef9863887d20f78b7bc71c5ac34fd40 Mon Sep 17 00:00:00 2001 From: gspetro Date: Wed, 28 Sep 2022 10:07:38 -0400 Subject: [PATCH 07/58] add M. Leukin to mgmt team list; change expt gen command --- docs/UsersGuide/source/ContributorsGuide.rst | 2 ++ docs/UsersGuide/source/Quickstart.rst | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/UsersGuide/source/ContributorsGuide.rst b/docs/UsersGuide/source/ContributorsGuide.rst index 28d1a42867..8614849ad7 100644 --- a/docs/UsersGuide/source/ContributorsGuide.rst +++ b/docs/UsersGuide/source/ContributorsGuide.rst @@ -40,6 +40,8 @@ Scientists from across multiple labs and organizations have volunteered to revie | +------------------------------------------------+---------------------------------------------------------------------------------------------+ | | Jong Kim (@jkbk2004) | UFS Weather Model configuration, forecast sensitivity analysis, data assimilation | | +------------------------------------------------+---------------------------------------------------------------------------------------------+ + | | Michael Leukin | SRW App code management | + | +------------------------------------------------+---------------------------------------------------------------------------------------------+ | | Natalie Perlin (@natalie-perlin) | Generic Linux/Mac installations, hpc-stack/spack-stack | | +------------------------------------------------+---------------------------------------------------------------------------------------------+ | | Gillian Petro (@gspetro-NOAA) | Documentation | diff --git a/docs/UsersGuide/source/Quickstart.rst b/docs/UsersGuide/source/Quickstart.rst index fd8137de5d..90e6519896 100644 --- a/docs/UsersGuide/source/Quickstart.rst +++ b/docs/UsersGuide/source/Quickstart.rst @@ -97,7 +97,7 @@ For a detailed explanation of how to build and run the SRW App on any supported .. code-block:: console - python generate_FV3LAM_wflow.py + ./generate_FV3LAM_wflow.py #. Run the regional workflow. There are several methods available for this step, which are discussed in :numref:`Section %s `. One possible method is summarized below. It requires the Rocoto Workflow Manager. From b67e40a0b0537bc3407bb0c47a3372ff835d23e8 Mon Sep 17 00:00:00 2001 From: gspetro Date: Wed, 28 Sep 2022 10:09:01 -0400 Subject: [PATCH 08/58] fix typo --- docs/UsersGuide/source/ContributorsGuide.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UsersGuide/source/ContributorsGuide.rst b/docs/UsersGuide/source/ContributorsGuide.rst index 8614849ad7..318bc04e4d 100644 --- a/docs/UsersGuide/source/ContributorsGuide.rst +++ b/docs/UsersGuide/source/ContributorsGuide.rst @@ -40,7 +40,7 @@ Scientists from across multiple labs and organizations have volunteered to revie | +------------------------------------------------+---------------------------------------------------------------------------------------------+ | | Jong Kim (@jkbk2004) | UFS Weather Model configuration, forecast sensitivity analysis, data assimilation | | +------------------------------------------------+---------------------------------------------------------------------------------------------+ - | | Michael Leukin | SRW App code management | + | | Michael Luekin (@MichaelLueken) | SRW App code management | | +------------------------------------------------+---------------------------------------------------------------------------------------------+ | | Natalie Perlin (@natalie-perlin) | Generic Linux/Mac installations, hpc-stack/spack-stack | | +------------------------------------------------+---------------------------------------------------------------------------------------------+ From 8a38905a562a54cc770c6e45f8c4ce92a8e1a6cc Mon Sep 17 00:00:00 2001 From: gspetro Date: Wed, 28 Sep 2022 11:10:25 -0400 Subject: [PATCH 09/58] fix typo --- docs/UsersGuide/source/ContributorsGuide.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UsersGuide/source/ContributorsGuide.rst b/docs/UsersGuide/source/ContributorsGuide.rst index 318bc04e4d..f63bf3d447 100644 --- a/docs/UsersGuide/source/ContributorsGuide.rst +++ b/docs/UsersGuide/source/ContributorsGuide.rst @@ -40,7 +40,7 @@ Scientists from across multiple labs and organizations have volunteered to revie | +------------------------------------------------+---------------------------------------------------------------------------------------------+ | | Jong Kim (@jkbk2004) | UFS Weather Model configuration, forecast sensitivity analysis, data assimilation | | +------------------------------------------------+---------------------------------------------------------------------------------------------+ - | | Michael Luekin (@MichaelLueken) | SRW App code management | + | | Michael Lueken (@MichaelLueken) | SRW App code management | | +------------------------------------------------+---------------------------------------------------------------------------------------------+ | | Natalie Perlin (@natalie-perlin) | Generic Linux/Mac installations, hpc-stack/spack-stack | | +------------------------------------------------+---------------------------------------------------------------------------------------------+ From 811aa44e67c3abb07f3b79d45a33168f708c553b Mon Sep 17 00:00:00 2001 From: gspetro Date: Wed, 28 Sep 2022 15:12:22 -0400 Subject: [PATCH 10/58] add stochastic physics link & troubleshooting tips --- docs/UsersGuide/source/Components.rst | 2 +- docs/UsersGuide/source/ConfigWorkflow.rst | 2 +- docs/UsersGuide/source/Quickstart.rst | 13 ++++++++++++- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/docs/UsersGuide/source/Components.rst b/docs/UsersGuide/source/Components.rst index 7053ce2b86..bafb4ead29 100644 --- a/docs/UsersGuide/source/Components.rst +++ b/docs/UsersGuide/source/Components.rst @@ -35,7 +35,7 @@ The prognostic atmospheric model in the UFS SRW Application is the Finite-Volume Supported model resolutions in this release include 3-, 13-, and 25-km predefined contiguous U.S. (:term:`CONUS`) domains, each with 127 vertical levels. Preliminary tools for users to define their own domain are also available in the release with full, formal support of these tools to be provided in future releases. The Extended Schmidt Gnomonic (ESG) grid is used with the FV3-LAM, which features relatively uniform grid cells across the entirety of the domain. Additional information about the FV3 dynamical core can be found in the `scientific documentation `__, the `technical documentation `__, and on the `NOAA Geophysical Fluid Dynamics Laboratory website `__. -Interoperable atmospheric physics, along with various land surface model options, are supported through the Common Community Physics Package (CCPP), described `here `__. Atmospheric physics are a set of numerical methods describing small-scale processes such as clouds, turbulence, radiation, and their interactions. There will be four physics suites supported for the SRW App v2.0.0 release. The first is the FV3_RRFS_v1beta physics suite, which is being tested for use in the future operational implementation of the Rapid Refresh Forecast System (RRFS) planned for 2023-2024, and the second is an updated version of the physics suite used in the operational Global Forecast System (GFS) v16. Additionally, FV3_WoFS_v0 and FV3_HRRR will be supported. A scientific description of the CCPP parameterizations and suites can be found in the `CCPP Scientific Documentation `__, and CCPP technical aspects are described in the `CCPP Technical Documentation `__. The model namelist has many settings beyond the physics options that can optimize various aspects of the model for use with each of the supported suites. Additional information on Stochastic Physics options is available `here `__. +Interoperable atmospheric physics, along with various land surface model options, are supported through the Common Community Physics Package (CCPP), described `here `__. Atmospheric physics are a set of numerical methods describing small-scale processes such as clouds, turbulence, radiation, and their interactions. There will be four physics suites supported for the SRW App v2.0.0 release. The first is the FV3_RRFS_v1beta physics suite, which is being tested for use in the future operational implementation of the Rapid Refresh Forecast System (RRFS) planned for 2023-2024, and the second is an updated version of the physics suite used in the operational Global Forecast System (GFS) v16. Additionally, FV3_WoFS_v0 and FV3_HRRR will be supported. A scientific description of the CCPP parameterizations and suites can be found in the `CCPP Scientific Documentation `__, and CCPP technical aspects are described in the `CCPP Technical Documentation `__. The model namelist has many settings beyond the physics options that can optimize various aspects of the model for use with each of the supported suites. Additional information on Stochastic Physics options is available `here `__. .. note:: SPP is currently only available for specific physics schemes used in the RAP/HRRR physics suite. Users need to be aware of which physics suite definition file (:term:`SDF`) is chosen when turning this option on. Among the supported physics suites, the full set of parameterizations can only be used with the ``FV3_HRRR`` option for ``CCPP_PHYS_SUITE``. diff --git a/docs/UsersGuide/source/ConfigWorkflow.rst b/docs/UsersGuide/source/ConfigWorkflow.rst index aa9cfd48d2..4eeb57b48c 100644 --- a/docs/UsersGuide/source/ConfigWorkflow.rst +++ b/docs/UsersGuide/source/ConfigWorkflow.rst @@ -413,7 +413,7 @@ CCPP Parameter Stochastic Physics Parameters ================================ -For the most updated and detailed documentation of these parameters, see the `UFS Stochastic Physics Documentation `__. +For the most updated and detailed documentation of these parameters, see the `UFS Stochastic Physics Documentation `__. ``NEW_LSCALE``: (Default: "TRUE") Use correct formula for converting a spatial legnth scale into spectral space. diff --git a/docs/UsersGuide/source/Quickstart.rst b/docs/UsersGuide/source/Quickstart.rst index 90e6519896..c0ca4d6a0a 100644 --- a/docs/UsersGuide/source/Quickstart.rst +++ b/docs/UsersGuide/source/Quickstart.rst @@ -75,7 +75,18 @@ For a detailed explanation of how to build and run the SRW App on any supported cd ush cp config.community.yaml config.yaml - Users will need to adjust the experiment parameters in the ``config.yaml`` file to suit the needs of their experiment (e.g., date, time, grid, physics suite, etc.). More detailed guidance is available in :numref:`Section %s `. Parameters and valid values are listed in :numref:`Chapter %s `. + Users will need to adjust the experiment parameters in the ``config.yaml`` file to suit the needs of their experiment (e.g., date, time, grid, physics suite, etc.). More detailed guidance is available in :numref:`Section %s `. Parameters and valid values are listed in :numref:`Chapter %s `. To determine whether the ``config.yaml`` file adjustments are valid, users can run: + + .. code-block:: console + + ./config_utils.py -c $PWD/config.yaml -v $PWD/config_defaults.yaml + + A correct ``config.yaml`` file will output a ``SUCCESS`` message. A ``config.yaml`` file with problems will output a ``FAILURE`` message describing the problem. For example: + + .. code-block:: console + + INVALID ENTRY: EXTRN_MDL_FILES_ICS=[] + FAILURE #. Load the python environment for the regional workflow. Users on Level 2-4 systems will need to use one of the existing ``wflow_`` modulefiles (e.g., ``wflow_macos``) and adapt it to their system. From 28b9b09b47dca92c2a2865718ec59da0c467c1ef Mon Sep 17 00:00:00 2001 From: gspetro Date: Wed, 28 Sep 2022 18:37:24 -0400 Subject: [PATCH 11/58] separate Build & Run chapters; update crosslinks --- docs/UsersGuide/source/BuildSRW.rst | 425 ++++++++++++++++++ .../UsersGuide/source/ContainerQuickstart.rst | 4 +- docs/UsersGuide/source/InputOutputFiles.rst | 2 +- docs/UsersGuide/source/Introduction.rst | 11 +- docs/UsersGuide/source/Quickstart.rst | 4 +- .../source/{BuildRunSRW.rst => RunSRW.rst} | 418 +---------------- docs/UsersGuide/source/WE2Etests.rst | 2 +- docs/UsersGuide/source/index.rst | 3 +- 8 files changed, 447 insertions(+), 422 deletions(-) create mode 100644 docs/UsersGuide/source/BuildSRW.rst rename docs/UsersGuide/source/{BuildRunSRW.rst => RunSRW.rst} (73%) diff --git a/docs/UsersGuide/source/BuildSRW.rst b/docs/UsersGuide/source/BuildSRW.rst new file mode 100644 index 0000000000..c0785f6cc1 --- /dev/null +++ b/docs/UsersGuide/source/BuildSRW.rst @@ -0,0 +1,425 @@ +.. _BuildSRW: + +========================== +Building the SRW App +========================== + +The Unified Forecast System (:term:`UFS`) Short-Range Weather (SRW) Application is an :term:`umbrella repository` consisting of a number of different :ref:`components ` housed in external repositories. Once the SRW App is built, users can configure experiments and generate predictions of atmospheric behavior over a limited spatial area and on time scales ranging from minutes out to several days. + +.. attention:: + + The SRW Application has `four levels of support `__. The steps described in this chapter will work most smoothly on preconfigured (Level 1) systems. This chapter can also serve as a starting point for running the SRW App on other systems (including generic Linux/Mac systems), but the user may need to perform additional troubleshooting. + +.. note:: + The :ref:`container approach ` is recommended for a smoother first-time build and run experience. Building without a container may allow for more customization. However, the non-container approach requires more in-depth system-based knowledge, especially on Level 3 and 4 systems, so it is less appropriate for beginners. + +To build the SRW App, users will complete the following steps: + + #. :ref:`Install prerequisites ` + #. :ref:`Clone the SRW App from GitHub ` + #. :ref:`Check out the external repositories ` + #. :ref:`Set up the build environment and build the executables ` + + +.. _HPCstackInfo: + +Install the HPC-Stack +======================== + +.. Attention:: + Skip the HPC-Stack installation if working on a `Level 1 system `_ (e.g., Cheyenne, Hera, Orion, NOAA Cloud). + +**Definition:** :term:`HPC-Stack` is a repository that provides a unified, shell script-based build system to build the software stack required for `UFS `_ applications such as the SRW App. + +Background +---------------- + +The UFS Weather Model draws on over 50 code libraries to run its applications. These libraries range from libraries developed in-house at NOAA (e.g., NCEPLIBS, FMS) to libraries developed by NOAA's partners (e.g., PIO, ESMF) to truly third party libraries (e.g., NETCDF). Individual installation of these libraries is not practical, so the `HPC-Stack `__ was developed as a central installation system to ensure that the infrastructure environment across multiple platforms is as similar as possible. Installation of the HPC-Stack is required to run the SRW App. + +Instructions +------------------------- +Users working on systems that fall under `Support Levels 2-4 `__ will need to install the HPC-Stack the first time they try to build applications (such as the SRW App) that depend on it. Users can either build the HPC-Stack on their local system or use the centrally maintained stacks on each HPC platform if they are working on a Level 1 system. Before installing the HPC-Stack, users on both Linux and MacOS systems should set the stack size to "unlimited" (if allowed) or to the largest possible value: + +.. code-block:: console + + # Linux, if allowed + ulimit -s unlimited + + # MacOS, this corresponds to 65MB + ulimit -S -s unlimited + +For a detailed description of installation options, see :ref:`Installing the HPC-Stack `. + +After completing installation, continue to the next section (:numref:`Section %s: Download the UFS SRW Application Code `). + +.. _DownloadSRWApp: + +Download the UFS SRW Application Code +====================================== +The SRW Application source code is publicly available on GitHub. To download the SRW App code, clone the ``develop`` branch of the repository: + +.. code-block:: console + + git clone -b develop https://github.com/ufs-community/ufs-srweather-app.git + +The cloned repository contains the configuration files and sub-directories shown in +:numref:`Table %s `. The user may set an ``$SRW`` environment variable to point to the location of the new ``ufs-srweather-app`` repository. For example, if ``ufs-srweather-app`` was cloned into the ``$HOME`` directory, the following commands will set an ``$SRW`` environment variable in a bash or csh shell, respectively: + +.. code-block:: console + + export SRW=$HOME/ufs-srweather-app + setenv SRW $HOME/ufs-srweather-app + +.. _FilesAndSubDirs: + +.. table:: Files and sub-directories of the ufs-srweather-app repository + + +--------------------------------+--------------------------------------------------------+ + | **File/Directory Name** | **Description** | + +================================+========================================================+ + | CMakeLists.txt | Main CMake file for SRW App | + +--------------------------------+--------------------------------------------------------+ + | Externals.cfg | Includes tags pointing to the correct version of the | + | | external GitHub repositories/branches used in the SRW | + | | App. | + +--------------------------------+--------------------------------------------------------+ + | LICENSE.md | CC0 license information | + +--------------------------------+--------------------------------------------------------+ + | README.md | Getting Started Guide | + +--------------------------------+--------------------------------------------------------+ + | ufs_srweather_app_meta.h.in | Meta information for SRW App which can be used by | + | | other packages | + +--------------------------------+--------------------------------------------------------+ + | ufs_srweather_app.settings.in | SRW App configuration summary | + +--------------------------------+--------------------------------------------------------+ + | modulefiles | Contains build and workflow modulefiles | + +--------------------------------+--------------------------------------------------------+ + | etc | Contains Lmod startup scripts | + +--------------------------------+--------------------------------------------------------+ + | docs | Contains release notes, documentation, and User's Guide| + +--------------------------------+--------------------------------------------------------+ + | manage_externals | Utility for checking out external repositories | + +--------------------------------+--------------------------------------------------------+ + | src | Contains CMakeLists.txt; external repositories | + | | will be cloned into this directory. | + +--------------------------------+--------------------------------------------------------+ + + +.. _CheckoutExternals: + +Check Out External Components +================================ + +The SRW App relies on a variety of components (e.g., regional_workflow, UFS_UTILS, ufs-weather-model, and UPP) detailed in :numref:`Chapter %s ` of this User's Guide. Each component has its own repository. Users must run the ``checkout_externals`` script to collect the individual components of the SRW App from their respective Git repositories. The ``checkout_externals`` script uses the configuration file ``Externals.cfg`` in the top level directory of the SRW App to clone the correct tags (code versions) of the external repositories listed in :numref:`Section %s ` into the appropriate directories under the ``regional_workflow`` and ``src`` directories. + +Run the executable that pulls in SRW App components from external repositories: + +.. code-block:: console + + cd $SRW + ./manage_externals/checkout_externals + +The script should output dialogue indicating that it is retrieving different code repositories. It may take several minutes to download these repositories. + + +.. _BuildExecutables: + +Set Up the Environment and Build the Executables +=================================================== + +.. _DevBuild: + +``devbuild.sh`` Approach +----------------------------- + +On Level 1 systems for which a modulefile is provided under the ``modulefiles`` directory, users can build the SRW App binaries with: + +.. code-block:: console + + ./devbuild.sh --platform= + +where ```` is replaced with the name of the platform the user is working on. Valid values are: ``cheyenne`` | ``gaea`` | ``hera`` | ``jet`` | ``linux`` | ``macos`` | ``noaacloud`` | ``odin`` | ``orion`` | ``singularity`` | ``wcoss2`` + +.. note:: + Although build modulefiles exist for generic Linux and MacOS machines, users will need to alter these according to the instructions in Sections :numref:`%s ` & :numref:`%s `. It is recommended that users on these systems build the SRW App with the :ref:`CMake Approach ` instead. + +If compiler auto-detection fails for some reason, specify it using the ``--compiler`` argument. For example: + +.. code-block:: console + + ./devbuild.sh --platform=hera --compiler=intel + +where valid values are ``intel`` or ``gnu``. + +If users want to build the optional ``GSI`` and ``rrfs_utl`` components for RRFS (NOTE: These components are not currently available for use at runtime), they can add the ``--rrfs`` argument. For example: + +.. code-block:: console + + ./devbuild.sh --platform=hera --rrfs + +The last line of the console output should be ``[100%] Built target ufs-weather-model``, indicating that the UFS Weather Model executable has been built successfully. + +The executables listed in :numref:`Table %s ` should appear in the ``ufs-srweather-app/bin`` directory. If users choose to build the ``GSI`` and ``rrfs_utl`` components, the executables listed in :numref:`Table %s ` will also appear there. If this build method does not work, or if users are not on a supported machine, they will have to manually setup the environment and build the SRW App binaries with CMake as described in :numref:`Section %s `. + + +.. _ExecDescription: + +.. table:: Names and descriptions of the executables produced by the build step and used by the SRW App + + +------------------------+---------------------------------------------------------------------------------+ + | **Executable Name** | **Description** | + +========================+=================================================================================+ + | chgres_cube | Reads in raw external model (global or regional) and surface climatology data | + | | to create initial and lateral boundary conditions | + +------------------------+---------------------------------------------------------------------------------+ + | emcsfc_ice_blend | Blends National Ice Center sea ice cover and EMC sea ice concentration data to | + | | create a global sea ice analysis used to update the GFS once per day | + +------------------------+---------------------------------------------------------------------------------+ + | emcsfc_snow2mdl | Blends National Ice Center snow cover and Air Force snow depth data to create a | + | | global depth analysis used to update the GFS snow field once per day | + +------------------------+---------------------------------------------------------------------------------+ + | filter_topo | Filters topography based on resolution | + +------------------------+---------------------------------------------------------------------------------+ + | fregrid | Remaps data from the input mosaic grid to the output mosaic grid | + +------------------------+---------------------------------------------------------------------------------+ + | fvcom_to_FV3 | Determines lake surface conditions for the Great Lakes | + +------------------------+---------------------------------------------------------------------------------+ + | global_cycle | Updates the GFS surface conditions using external snow and sea ice analyses | + +------------------------+---------------------------------------------------------------------------------+ + | global_equiv_resol | Calculates a global, uniform, cubed-sphere equivalent resolution for the | + | | regional Extended Schmidt Gnomonic (ESG) grid | + +------------------------+---------------------------------------------------------------------------------+ + | inland | Creates an inland land mask by determining in-land (i.e. non-coastal) points | + | | and assigning a value of 1. Default value is 0. | + +------------------------+---------------------------------------------------------------------------------+ + | lakefrac | Calculates the ratio of the lake area to the grid cell area at each atmospheric | + | | grid point. | + +------------------------+---------------------------------------------------------------------------------+ + | make_hgrid | Computes geo-referencing parameters (e.g., latitude, longitude, grid cell area) | + | | for global uniform grids | + +------------------------+---------------------------------------------------------------------------------+ + | make_solo_mosaic | Creates mosaic files with halos | + +------------------------+---------------------------------------------------------------------------------+ + | orog | Generates orography, land mask, and gravity wave drag files from fixed files | + +------------------------+---------------------------------------------------------------------------------+ + | orog_gsl | Ceates orographic statistics fields required for the orographic drag suite | + | | developed by NOAA's Global Systems Laboratory (GSL) | + +------------------------+---------------------------------------------------------------------------------+ + | regional_esg_grid | Generates an ESG regional grid based on a user-defined namelist | + +------------------------+---------------------------------------------------------------------------------+ + | sfc_climo_gen | Creates surface climatology fields from fixed files for use in ``chgres_cube`` | + +------------------------+---------------------------------------------------------------------------------+ + | shave | Shaves the excess halo rows down to what is required for the lateral boundary | + | | conditions (LBC's) in the orography and grid files | + +------------------------+---------------------------------------------------------------------------------+ + | upp.x | Post-processor for the model output | + +------------------------+---------------------------------------------------------------------------------+ + | ufs_model | UFS Weather Model executable | + +------------------------+---------------------------------------------------------------------------------+ + | vcoord_gen | Generates hybrid coordinate interface profiles | + +------------------------+---------------------------------------------------------------------------------+ + +.. _RRFSexec: + +.. table:: Names and descriptions of the executables produced when the RRFS option is enabled + + +----------------------------+-----------------------------------------------------------------------------+ + | **Executable Name** | **Description** | + +============================+=============================================================================+ + | gsi.x | Runs the Gridpoint Statistical Interpolation (GSI). | + +----------------------------+-----------------------------------------------------------------------------+ + | enkf.x | Runs the Ensemble Kalman Filter. | + +----------------------------+-----------------------------------------------------------------------------+ + | gen_annual_maxmin_GVF.exe | Generate maximum and minimum GVF files based on yearly long GVF | + | | observations for update_GVF process. | + +----------------------------+-----------------------------------------------------------------------------+ + | update_GVF.exe | Update the greenness vegetation fraction (GVF) in the surface file based on | + | | the real-time observations files. | + +----------------------------+-----------------------------------------------------------------------------+ + | ref2tten.exe | Calculate temperature tendency based on the radar reflectivity observation | + | | at each grid point. This temperature tendency can be used by the model | + | | during integration as latent heating initialization for ongoing | + | | precipitation systems, especially convection. | + +----------------------------+-----------------------------------------------------------------------------+ + | update_ice.exe | Replace ice fields in warm start surface files based on the forecast from | + | | cold start forecast using the GFS as the initial file. | + +----------------------------+-----------------------------------------------------------------------------+ + | process_updatesst.exe | Update SST field based on the SST analysis from NCEP. | + +----------------------------+-----------------------------------------------------------------------------+ + | check_imssnow_fv3lam.exe | This is a tool used to read snow and ice fields from surface files and | + | | check that field. | + +----------------------------+-----------------------------------------------------------------------------+ + | gen_cs.exe | NCL scripts to do cross section plotting. | + +----------------------------+-----------------------------------------------------------------------------+ + | lakesurgery.exe | Replace the existing lake depth with the GLOBathy bathymetry. It is | + | | designed to work with the HRRR model. | + +----------------------------+-----------------------------------------------------------------------------+ + | process_imssnow_fv3lam.exe | Use FV3LAM snow and ice fields based on the snow and ice information from | + | | imssnow. | + +----------------------------+-----------------------------------------------------------------------------+ + | gen_ensmean_recenter.exe | Runs the ensemble mean/recentering calculation for FV3LAM ensemble files. | + +----------------------------+-----------------------------------------------------------------------------+ + | update_bc.exe | Adjust 0-h boundary conditions based on the analysis results during data | + | | assimilation cycling. | + +----------------------------+-----------------------------------------------------------------------------+ + | adjust_soiltq.exe | Use the lowest level temperature and moisture analysis increments to adjust | + | | the soil moisture and soil temperature after analysis. | + +----------------------------+-----------------------------------------------------------------------------+ + | process_NSSL_mosaic.exe | Process NSSL MRMS radar reflectivity mosaic observations: read 33 level | + | | NSSL MRMS radar reflectivity grib2 files and then interpolate the | + | | reflectivity horizontally to the ESG grid. | + +----------------------------+-----------------------------------------------------------------------------+ + | use_raphrrr_sfc.exe | Use RAP and HRRR surface fields to replace the surface fields in FV3LAM. | + | | This is only used for starting the RRFS surface cycling. | + +----------------------------+-----------------------------------------------------------------------------+ + | process_Lightning.exe | Processes lightning data: read NLDN NetCDF observation files and map the | + | | lightning observations into FV3LAM ESG grid. | + +----------------------------+-----------------------------------------------------------------------------+ + | process_larccld.exe | Process NASA Langley cloud top product: reads the cloud top pressure, | + | | temperature, etc and maps them to the ESG grid. | + +----------------------------+-----------------------------------------------------------------------------+ + | process_metarcld.exe | Process METAR ceilometers cloud observations: reads the cloud base and | + | | coverage observations from PrepBUFR and distributes the cloud | + | | observations/weather/visibility observations to the ESG grid. | + +----------------------------+-----------------------------------------------------------------------------+ + | fv3lam_nonvarcldana.exe | Runs the non-variational cloud and precipitable hydrometeor analysis based | + | | on the METAR cloud observations, satellite retrieved cloud top products, | + | | and radar reflectivity. | + +----------------------------+-----------------------------------------------------------------------------+ + + + +.. _CMakeApproach: + +CMake Approach +----------------- + +Set Up the Build Environment +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. attention:: + * If users successfully built the executables in :numref:`Table %s `, they should skip to step :numref:`Step %s `. + * Users who want to build the SRW App on a generic MacOS should skip to :numref:`Section %s ` and follow the approach there. + +If the ``devbuild.sh`` approach failed, users need to set up their environment to run a workflow on their specific platform. First, users should make sure ``Lmod`` is the app used for loading modulefiles. This is the case on most Level 1 systems; however, on systems such as Gaea/Odin, the default modulefile loader is from Cray and must be switched to Lmod. For example, on Gaea, users can run one of the following two commands depending on whether they have a bash or csh shell, respectively: + +.. code-block:: console + + source etc/lmod-setup.sh gaea + source etc/lmod-setup.csh gaea + +If users execute one of the above commands on systems that don't need it, it will not cause any problems (it will simply do a ``module purge``). + +From here on, ``Lmod`` is ready to load the modulefiles needed by the SRW App. These modulefiles are located in the ``modulefiles`` directory. To load the necessary modulefile for a specific ```` using a given ````, run: + +.. code-block:: console + + module use + module load build__ + +where ```` is the full path to the ``modulefiles`` directory. + +This will work on Level 1 systems, where a modulefile is available in the ``modulefiles`` directory. On Level 2-4 systems (including generic Linux/MacOS systems), users will need to modify certain environment variables, such as the path to HPC-Stack, so that the SRW App can find and load the appropriate modules. For systems with Lmod installed, one of the current ``build__`` modulefiles can be copied and used as a template. To check whether Lmod is installed, run ``echo $LMOD_PKG``, and see if it outputs a path to the Lmod package. On systems without Lmod, users can modify or set the required environment variables with the ``export`` or ``setenv`` commands, depending on whether they are using a bash or csh/tcsh shell, respectively: + +.. code-block:: + + export = + setenv + +Note that building the SRW App without Lmod is not supported at this time. It should be possible to do so, but it has not been tested. Users are encouraged to install Lmod on their system. + +.. _BuildCMake: + +Build the Executables Using CMake +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +After setting up the build environment in the preceding section (by loading the ``build__`` modulefile), users need to build the executables required to run the SRW App. In the ``ufs-srweather-app`` directory, create a subdirectory to hold the build's executables: + +.. code-block:: console + + mkdir build + cd build + +From the build directory, run the following commands to build the pre-processing utilities, forecast model, and post-processor: + +.. code-block:: console + + cmake .. -DCMAKE_INSTALL_PREFIX=.. + make -j 4 >& build.out & + +``-DCMAKE_INSTALL_PREFIX`` specifies the location in which the ``bin``, ``include``, ``lib``, and ``share`` directories will be created. These directories will contain various components of the SRW App. Its recommended value ``..`` denotes one directory up from the build directory. In the next line, the ``make`` call argument ``-j 4`` indicates that the build will run in parallel with 4 threads. Although users can specify a larger or smaller number of threads (e.g., ``-j8``, ``-j2``), it is highly recommended to use at least 4 parallel threads to prevent overly long installation times. + +If users want to build the optional ``GSI`` and ``rrfs_utl`` components for RRFS (NOTE: These components are not currently available for use at runtime), they can add ``ENABLE_RRFS=on`` to the original cmake command. For example: + +.. code-block:: console + + cmake .. -DCMAKE_INSTALL_PREFIX=.. ENABLE_RRFS=on + make -j 4 >& build.out & + +The build will take a few minutes to complete. When it starts, a random number is printed to the console, and when it is done, a ``[1]+ Done`` message is printed to the console. ``[1]+ Exit`` indicates an error. Output from the build will be in the ``ufs-srweather-app/build/build.out`` file. When the build completes, users should see the forecast model executable ``ufs_model`` and several pre- and post-processing executables in the ``ufs-srweather-app/bin`` directory. These executables are described in :numref:`Table %s `. + +.. hint:: + + If you see the ``build.out`` file, but there is no ``ufs-srweather-app/bin`` directory, wait a few more minutes for the build to complete. + +.. _MacDetails: + +Additional Details for Building on MacOS +------------------------------------------ + +.. note:: + Users who are **not** building the SRW App on a MacOS machine may skip to the :ref:`next section `. + +The SRW App can be built on MacOS machines, presuming HPC-Stack has already been installed successfully. The following two options have been tested: + +* **Option 1:** MacBookAir 2020, M1 chip (arm64, running natively), 4+4 cores, Big Sur 11.6.4, GNU compiler suite v.11.2.0_3 (gcc, gfortran, g++); no MPI pre-installed + +* **Option 2:** MacBook Pro 2015, 2.8 GHz Quad-Core Intel Core i7 (x86_64), Catalina OS X 10.15.7, GNU compiler suite v.11.2.0_3 (gcc, gfortran, g++); no MPI pre-installed + +The ``build_macos_gnu`` modulefile initializes the module environment, lists the location of HPC-Stack modules, loads the meta-modules and modules, and sets compilers, additional flags, and environment variables needed for building the SRW App. The modulefile must be modified to include the absolute path to the user's HPC-Stack installation and ``ufs-srweather-app`` directories. In particular, the following section must be modified: + +.. code-block:: console + + # This path should point to your HPCstack installation directory + setenv HPCstack "/Users/username/hpc-stack/install" + + # This path should point to your SRW Application directory + setenv SRW "/Users/username/ufs-srweather-app" + +An excerpt of the ``build_macos_gnu`` contents appears below for Option 1. To use Option 2, the user will need to comment out the lines specific to Option 1 and uncomment the lines specific to Option 2 in the ``build_macos_gnu`` modulefile. Additionally, users need to verify that all file paths reflect their system's configuration and that the correct version numbers for software libraries appear in the modulefile. + +.. code-block:: console + + # Option 1 compiler paths: + setenv CC "/opt/homebrew/bin/gcc" + setenv FC "/opt/homebrew/bin/gfortran" + setenv CXX "/opt/homebrew/bin/g++" + + # Option 2 compiler paths: + #setenv CC "/usr/local/bin/gcc" + #setenv FC "/usr/local/bin/gfortran" + #setenv CXX "/usr/local/bin/g++" + +Then, users must source the Lmod setup file, just as they would on other systems, and load the modulefiles needed for building and running the SRW App: + +.. code-block:: console + + source etc/lmod-setup.sh macos + module use + module load build_macos_gnu + export LDFLAGS="-L${MPI_ROOT}/lib" + +In a csh/tcsh shell, users would run ``source etc/lmod-setup.csh macos`` in place of the first line in the code block above. + +Additionally, for Option 1 systems, set the variable ``ENABLE_QUAD_PRECISION`` to ``OFF`` in the ``$SRW/src/ufs-weather-model/FV3/atmos_cubed_sphere/CMakeLists.txt`` file. This change is optional if using Option 2 to build the SRW App. To make this change using a streamline editor (`sed`), run: + +.. code-block:: console + + sed -i .bak 's/QUAD_PRECISION\" ON)/QUAD_PRECISION\" OFF)/' $SRW/src/ufs-weather-model/FV3/atmos_cubed_sphere/CMakeLists.txt + +Proceed to building the executables using the process outlined in :numref:`Step %s `. + +Run an Experiment +===================== + +To configure and run an experiment, users should proceed to :numref:`Chapter %s `. \ No newline at end of file diff --git a/docs/UsersGuide/source/ContainerQuickstart.rst b/docs/UsersGuide/source/ContainerQuickstart.rst index 229db0a6eb..57740bacca 100644 --- a/docs/UsersGuide/source/ContainerQuickstart.rst +++ b/docs/UsersGuide/source/ContainerQuickstart.rst @@ -4,14 +4,14 @@ Container-Based Quick Start Guide ==================================== -This Container-Based Quick Start Guide will help users build and run the "out-of-the-box" case for the Unified Forecast System (:term:`UFS`) Short-Range Weather (SRW) Application using a `Singularity `__ container. The :term:`container` approach provides a uniform enviroment in which to build and run the SRW App. Normally, the details of building and running the SRW App vary from system to system due to the many possible combinations of operating systems, compilers, :term:`MPI`'s, and package versions available. Installation via Singularity container reduces this variability and allows for a smoother SRW App build experience. Normally, containers can only run on a single compute node and are not compatible with the `Rocoto workflow manager `__, so users must run each task in the workflow manually. However, the Singularity container described in this chapter has been adapted such that it is able to run across multiple nodes using Rocoto. This makes it an excellent starting point for beginners. The :ref:`non-container approach ` may still be more appropriate for users who desire additional customizability, particularly if they already have experience running the SRW App. +This Container-Based Quick Start Guide will help users build and run the "out-of-the-box" case for the Unified Forecast System (:term:`UFS`) Short-Range Weather (SRW) Application using a `Singularity `__ container. The :term:`container` approach provides a uniform enviroment in which to build and run the SRW App. Normally, the details of building and running the SRW App vary from system to system due to the many possible combinations of operating systems, compilers, :term:`MPI`'s, and package versions available. Installation via Singularity container reduces this variability and allows for a smoother SRW App build experience. Normally, containers can only run on a single compute node and are not compatible with the `Rocoto workflow manager `__, so users must run each task in the workflow manually. However, the Singularity container described in this chapter has been adapted such that it is able to run across multiple nodes using Rocoto. This makes it an excellent starting point for beginners. The :ref:`non-container build approach ` may still be more appropriate for users who desire additional customizability, particularly if they already have experience running the SRW App. The "out-of-the-box" SRW App case described in this User's Guide builds a weather forecast for June 15-16, 2019. Multiple convective weather events during these two days produced over 200 filtered storm reports. Severe weather was clustered in two areas: the Upper Midwest through the Ohio Valley and the Southern Great Plains. This forecast uses a predefined 25-km Continental United States (:term:`CONUS`) grid (RRFS_CONUS_25km), the Global Forecast System (:term:`GFS`) version 16 physics suite (FV3_GFS_v16 :term:`CCPP`), and :term:`FV3`-based GFS raw external model data for initialization. .. attention:: * The SRW Application has `four levels of support `__. The steps described in this chapter will work most smoothly on preconfigured (Level 1) systems. However, this guide can serve as a starting point for running the SRW App on other systems, too. - * This chapter of the User's Guide should **only** be used for container builds. For non-container builds, see :numref:`Chapter %s ` for a Quick Start Guide or :numref:`Chapter %s ` for a detailed guide to building the SRW App **without** a container. + * This chapter of the User's Guide should **only** be used for container builds. For non-container builds, see :numref:`Chapter %s ` for a Quick Start Guide or :numref:`Chapter %s ` for a detailed guide to building the SRW App **without** a container. .. _DownloadCodeC: diff --git a/docs/UsersGuide/source/InputOutputFiles.rst b/docs/UsersGuide/source/InputOutputFiles.rst index 124a888795..1a57d2bf39 100644 --- a/docs/UsersGuide/source/InputOutputFiles.rst +++ b/docs/UsersGuide/source/InputOutputFiles.rst @@ -227,7 +227,7 @@ By setting ``USE_CRTM`` to "TRUE", the workflow will use the path defined in ``C Downloading and Staging Input Data ================================== -A set of input files, including static (fix) data and raw initial and lateral boundary conditions (:term:`IC/LBCs`), is required to run the SRW Application. The data required for the "out-of-the-box" SRW App case described in Chapters :numref:`%s ` and :numref:`%s ` is already preinstalled on `Level 1 & 2 `__ systems, along with data required to run the :ref:`WE2E ` test cases. Therefore, users on these systems do not need to stage the fixed files manually because they have been prestaged, and the paths are set in ``regional_workflow/ush/setup.sh``. Users on Level 3 & 4 systems can find the most recent SRW App release data in the `UFS SRW Application Data Bucket `__ by clicking on `Browse Bucket `__. +A set of input files, including static (fix) data and raw initial and lateral boundary conditions (:term:`IC/LBCs`), is required to run the SRW Application. The data required for the "out-of-the-box" SRW App case described in Chapters :numref:`%s ` and :numref:`%s ` is already preinstalled on `Level 1 & 2 `__ systems, along with data required to run the :ref:`WE2E ` test cases. Therefore, users on these systems do not need to stage the fixed files manually because they have been prestaged, and the paths are set in ``regional_workflow/ush/setup.sh``. Users on Level 3 & 4 systems can find the most recent SRW App release data in the `UFS SRW Application Data Bucket `__ by clicking on `Browse Bucket `__. .. _StaticFixFiles: diff --git a/docs/UsersGuide/source/Introduction.rst b/docs/UsersGuide/source/Introduction.rst index 390e9ca2d6..54269841db 100644 --- a/docs/UsersGuide/source/Introduction.rst +++ b/docs/UsersGuide/source/Introduction.rst @@ -8,7 +8,7 @@ The Unified Forecast System (:term:`UFS`) is a community-based, coupled, compreh The UFS includes `multiple applications `__ that support different forecast durations and spatial domains. This documentation describes the UFS Short-Range Weather (SRW) Application, which targets predictions of atmospheric behavior on a limited spatial domain and on time scales from minutes to several days. The SRW Application v2.0.0 release includes a prognostic atmospheric model, pre- and post-processing, and a community workflow for running the system end-to-end. These components are documented within this User's Guide and supported through a `community forum `__. New and improved capabilities for this release include the addition of a verification package (METplus) for both deterministic and ensemble simulations and support for four stochastically perturbed physics schemes. Future work will expand the capabilities of the application to include data assimilation (DA) and a forecast restart/cycling capability. -This documentation provides a :ref:`Quick Start Guide ` designed for use on `Level 1 systems `__ or as an overview of the workflow. It also provides a :ref:`Container-Based Quick Start Guide ` for running the SRW Application in a container and a :ref:`detailed guide ` for running the SRW App on any supported platform. Additionally, this User's Guide provides an overview of the :ref:`release components ` and details on how to customize or modify different portions of the workflow. +This documentation provides a :ref:`Quick Start Guide ` designed for use on `Level 1 systems `__ or as an overview of the workflow. It also provides a :ref:`Container-Based Quick Start Guide ` for running the SRW Application in a container and a :ref:`detailed guide ` for running the SRW App on any supported platform. Additionally, this User's Guide provides an overview of the :ref:`release components ` and details on how to customize or modify different portions of the workflow. The SRW App v2.0.0 citation is as follows and should be used when presenting results based on research conducted with the App: @@ -30,7 +30,12 @@ Variables presented as ``AaBbCc123`` in this User's Guide typically refer to var File paths or code that include angle brackets (e.g., ``build__``) indicate that users should insert options appropriate to their SRW App configuration (e.g., ``build_orion_intel``). .. hint:: - * To get started running the SRW App, users can view :numref:`Chapter %s ` for a quick overview of the workflow steps. For more detailed explanations, users can refer to the :ref:`Container-Based Quick Start Guide ` or the in-depth chapter on :ref:`Building and Running the Short-Range Weather Application `. + * To get started with the SRW App, users have a few options: + + #. View :numref:`Chapter %s ` for a quick overview of the workflow steps. + #. To build the application in a container, which provides a more uniform work environment, users can refer to the :ref:`Container-Based Quick Start Guide `. + #. For detailed instructions on building and running the SRW App, users can refer to :numref:`Chapter %s: Building the SRW App ` and :numref:`Chapter %s Running the SRW App `. + * For background information on the SRW App code repositories and directory structure, see :numref:`Section %s ` below. * For an outline of SRW App components, see section :numref:`Section %s ` below or refer to :numref:`Chapter %s ` for a more in-depth treatment. @@ -175,7 +180,7 @@ The SRW Application has a portable CMake-based build system that packages togeth The SRW Application allows for configuration of various elements of the workflow. For example, users can modify the parameters of the atmospheric model, such as start and end dates, duration, time step, and the physics suite used for the simulation. More information on how to do this is available in :numref:`Section %s `. -The SRW Application has been tested on a variety of platforms widely used by researchers, including NOAA High-Performance Computing (HPC) systems (e.g., Hera, Orion), cloud environments, and generic Linux and MacOS systems. Four `levels of support `__ have been defined for the SRW Application. Preconfigured (Level 1) systems already have the required external libraries available in a central location (via :term:`HPC-Stack`). The SRW Application is expected to build and run out-of-the-box on these systems, and users can :ref:`download the SRW App code ` without first installing prerequisites. On other platforms (Levels 2-4), the SRW App can be :ref:`run within a container ` that includes the HPC-Stack, or the required libraries will need to be installed as part of the :ref:`SRW Application build ` process. Once these prerequisite libraries are installed, applications and models should build and run successfully. However, users may need to perform additional troubleshooting on Level 3 or 4 systems since little or no pre-release testing has been conducted on these systems. +The SRW Application has been tested on a variety of platforms widely used by researchers, including NOAA High-Performance Computing (HPC) systems (e.g., Hera, Orion), cloud environments, and generic Linux and MacOS systems. Four `levels of support `__ have been defined for the SRW Application. Preconfigured (Level 1) systems already have the required external libraries available in a central location (via :term:`HPC-Stack`). The SRW Application is expected to build and run out-of-the-box on these systems, and users can :ref:`download the SRW App code ` without first installing prerequisites. On other platforms (Levels 2-4), the SRW App can be :ref:`run within a container ` that includes the HPC-Stack, or the required libraries will need to be installed as part of the :ref:`SRW Application build ` process. Once these prerequisite libraries are installed, applications and models should build and run successfully. However, users may need to perform additional troubleshooting on Level 3 or 4 systems since little or no pre-release testing has been conducted on these systems. diff --git a/docs/UsersGuide/source/Quickstart.rst b/docs/UsersGuide/source/Quickstart.rst index c0ca4d6a0a..3669743f26 100644 --- a/docs/UsersGuide/source/Quickstart.rst +++ b/docs/UsersGuide/source/Quickstart.rst @@ -4,7 +4,7 @@ Quick Start Guide ==================== -This chapter provides a brief summary of how to build and run the SRW Application. The steps will run most smoothly on `Level 1 `__ systems. Users should expect to reference other chapters of this User's Guide, particularly :numref:`Chapter %s `, for additional explanations regarding each step. +This chapter provides a brief summary of how to build and run the SRW Application. The steps will run most smoothly on `Level 1 `__ systems. Users should expect to reference other chapters of this User's Guide, particularly :numref:`Chapter %s ` and :numref:`Chapter %s `, for additional explanations regarding each step. Install the HPC-Stack @@ -17,7 +17,7 @@ Once the HPC-Stack has been successfully installed, users can move on to buildin Building and Running the UFS SRW Application =============================================== -For a detailed explanation of how to build and run the SRW App on any supported system, see :numref:`Chapter %s `. The overall procedure for generating an experiment is shown in :numref:`Figure %s `, with the scripts to generate and run the workflow shown in red. An overview of the required steps appears below. However, users can expect to access other referenced sections of this User's Guide for more detail. +For a detailed explanation of how to build and run the SRW App on any supported system, see :numref:`Chapter %s: Building the SRW App ` and :numref:`Chapter %s: Running the SRW App `. The overall procedure for generating an experiment is shown in :numref:`Figure %s `, with the scripts to generate and run the workflow shown in red. An overview of the required steps appears below. However, users can expect to access other referenced sections of this User's Guide for more detail. #. Clone the SRW App from GitHub: diff --git a/docs/UsersGuide/source/BuildRunSRW.rst b/docs/UsersGuide/source/RunSRW.rst similarity index 73% rename from docs/UsersGuide/source/BuildRunSRW.rst rename to docs/UsersGuide/source/RunSRW.rst index 299bdfb65e..95a0467024 100644 --- a/docs/UsersGuide/source/BuildRunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -1,26 +1,20 @@ -.. _BuildRunSRW: +.. _RunSRW: -===================================== -Building and Running the SRW App -===================================== +=========================== +Running the SRW App +=========================== -The Unified Forecast System (:term:`UFS`) Short-Range Weather (SRW) Application is an :term:`umbrella repository` consisting of a number of different :ref:`components ` housed in external repositories. Once the SRW App is built, users can configure an experiment and generate predictions of atmospheric behavior over a limited spatial area and on time scales ranging from minutes out to several days. +This chapter walks users through how to build and run the "out-of-the-box" case for the SRW App. However, the steps are relevant to any SRW Application experiment and can be modified to suit user goals. This chapter assumes that users have already built the SRW App by following the steps in :numref:`Chapter %s `. These steps are also applicable to containerized versions of the SRW App and assume that the user has completed Steps :numref:` ` through :numref:` `. -This chapter walks users through how to build and run the "out-of-the-box" case for the SRW App. However, the steps are relevant to any SRW Application experiment and can be modified to suit user goals. The out-of-the-box SRW App case builds a weather forecast for June 15-16, 2019. Multiple convective weather events during these two days produced over 200 filtered storm reports. Severe weather was clustered in two areas: the Upper Midwest through the Ohio Valley and the Southern Great Plains. This forecast uses a predefined 25-km Continental United States (:term:`CONUS`) domain (RRFS_CONUS_25km), the Global Forecast System (:term:`GFS`) version 16 physics suite (FV3_GFS_v16 :term:`CCPP`), and :term:`FV3`-based GFS raw external model data for initialization. +The out-of-the-box SRW App case builds a weather forecast for June 15-16, 2019. Multiple convective weather events during these two days produced over 200 filtered storm reports. Severe weather was clustered in two areas: the Upper Midwest through the Ohio Valley and the Southern Great Plains. This forecast uses a predefined 25-km Continental United States (:term:`CONUS`) domain (RRFS_CONUS_25km), the Global Forecast System (:term:`GFS`) version 16 physics suite (FV3_GFS_v16 :term:`CCPP`), and :term:`FV3`-based GFS raw external model data for initialization. .. attention:: The SRW Application has `four levels of support `__. The steps described in this chapter will work most smoothly on preconfigured (Level 1) systems. This chapter can also serve as a starting point for running the SRW App on other systems (including generic Linux/Mac systems), but the user may need to perform additional troubleshooting. -.. note:: - The :ref:`container approach ` is recommended for a smoother first-time build and run experience. Building without a container may allow for more customization. However, the non-container approach requires more in-depth system-based knowledge, especially on Level 3 and 4 systems, so it is less appropriate for beginners. The overall procedure for generating an experiment is shown in :numref:`Figure %s `, with the scripts to generate and run the workflow shown in red. The steps are as follows: - #. :ref:`Install prerequisites ` - #. :ref:`Clone the SRW App from GitHub ` - #. :ref:`Check out the external repositories ` - #. :ref:`Set up the build environment and build the executables ` #. :ref:`Download and stage data ` #. :ref:`Optional: Configure a new grid ` #. :ref:`Generate a regional workflow experiment ` @@ -38,406 +32,6 @@ The overall procedure for generating an experiment is shown in :numref:`Figure % *Overall layout of the SRW App Workflow* - -.. _HPCstackInfo: - -Install the HPC-Stack -======================== - -.. Attention:: - Skip the HPC-Stack installation if working on a `Level 1 system `_ (e.g., Cheyenne, Hera, Orion, NOAA Cloud). - -**Definition:** :term:`HPC-Stack` is a repository that provides a unified, shell script-based build system to build the software stack required for `UFS `_ applications such as the SRW App. - -Background ----------------- - -The UFS Weather Model draws on over 50 code libraries to run its applications. These libraries range from libraries developed in-house at NOAA (e.g., NCEPLIBS, FMS) to libraries developed by NOAA's partners (e.g., PIO, ESMF) to truly third party libraries (e.g., NETCDF). Individual installation of these libraries is not practical, so the `HPC-Stack `__ was developed as a central installation system to ensure that the infrastructure environment across multiple platforms is as similar as possible. Installation of the HPC-Stack is required to run the SRW App. - -Instructions -------------------------- -Users working on systems that fall under `Support Levels 2-4 `__ will need to install the HPC-Stack the first time they try to build applications (such as the SRW App) that depend on it. Users can either build the HPC-Stack on their local system or use the centrally maintained stacks on each HPC platform if they are working on a Level 1 system. Before installing the HPC-Stack, users on both Linux and MacOS systems should set the stack size to "unlimited" (if allowed) or to the largest possible value: - -.. code-block:: console - - # Linux, if allowed - ulimit -s unlimited - - # MacOS, this corresponds to 65MB - ulimit -S -s unlimited - -For a detailed description of installation options, see :ref:`Installing the HPC-Stack `. - -After completing installation, continue to the next section (:numref:`Section %s: Download the UFS SRW Application Code `). - -.. _DownloadSRWApp: - -Download the UFS SRW Application Code -====================================== -The SRW Application source code is publicly available on GitHub. To download the SRW App code, clone the ``develop`` branch of the repository: - -.. code-block:: console - - git clone -b develop https://github.com/ufs-community/ufs-srweather-app.git - -The cloned repository contains the configuration files and sub-directories shown in -:numref:`Table %s `. The user may set an ``$SRW`` environment variable to point to the location of the new ``ufs-srweather-app`` repository. For example, if ``ufs-srweather-app`` was cloned into the ``$HOME`` directory, the following commands will set an ``$SRW`` environment variable in a bash or csh shell, respectively: - -.. code-block:: console - - export SRW=$HOME/ufs-srweather-app - setenv SRW $HOME/ufs-srweather-app - -.. _FilesAndSubDirs: - -.. table:: Files and sub-directories of the ufs-srweather-app repository - - +--------------------------------+--------------------------------------------------------+ - | **File/Directory Name** | **Description** | - +================================+========================================================+ - | CMakeLists.txt | Main CMake file for SRW App | - +--------------------------------+--------------------------------------------------------+ - | Externals.cfg | Includes tags pointing to the correct version of the | - | | external GitHub repositories/branches used in the SRW | - | | App. | - +--------------------------------+--------------------------------------------------------+ - | LICENSE.md | CC0 license information | - +--------------------------------+--------------------------------------------------------+ - | README.md | Getting Started Guide | - +--------------------------------+--------------------------------------------------------+ - | ufs_srweather_app_meta.h.in | Meta information for SRW App which can be used by | - | | other packages | - +--------------------------------+--------------------------------------------------------+ - | ufs_srweather_app.settings.in | SRW App configuration summary | - +--------------------------------+--------------------------------------------------------+ - | modulefiles | Contains build and workflow modulefiles | - +--------------------------------+--------------------------------------------------------+ - | etc | Contains Lmod startup scripts | - +--------------------------------+--------------------------------------------------------+ - | docs | Contains release notes, documentation, and User's Guide| - +--------------------------------+--------------------------------------------------------+ - | manage_externals | Utility for checking out external repositories | - +--------------------------------+--------------------------------------------------------+ - | src | Contains CMakeLists.txt; external repositories | - | | will be cloned into this directory. | - +--------------------------------+--------------------------------------------------------+ - - -.. _CheckoutExternals: - -Check Out External Components -================================ - -The SRW App relies on a variety of components (e.g., regional_workflow, UFS_UTILS, ufs-weather-model, and UPP) detailed in :numref:`Chapter %s ` of this User's Guide. Each component has its own repository. Users must run the ``checkout_externals`` script to collect the individual components of the SRW App from their respective Git repositories. The ``checkout_externals`` script uses the configuration file ``Externals.cfg`` in the top level directory of the SRW App to clone the correct tags (code versions) of the external repositories listed in :numref:`Section %s ` into the appropriate directories under the ``regional_workflow`` and ``src`` directories. - -Run the executable that pulls in SRW App components from external repositories: - -.. code-block:: console - - cd $SRW - ./manage_externals/checkout_externals - -The script should output dialogue indicating that it is retrieving different code repositories. It may take several minutes to download these repositories. - - -.. _BuildExecutables: - -Set Up the Environment and Build the Executables -=================================================== - -.. _DevBuild: - -``devbuild.sh`` Approach ------------------------------ - -On Level 1 systems for which a modulefile is provided under the ``modulefiles`` directory, users can build the SRW App binaries with: - -.. code-block:: console - - ./devbuild.sh --platform= - -where ```` is replaced with the name of the platform the user is working on. Valid values are: ``cheyenne`` | ``gaea`` | ``hera`` | ``jet`` | ``linux`` | ``macos`` | ``noaacloud`` | ``odin`` | ``orion`` | ``singularity`` | ``wcoss2`` - -.. note:: - Although build modulefiles exist for generic Linux and MacOS machines, users will need to alter these according to the instructions in Sections :numref:`%s ` & :numref:`%s `. It is recommended that users on these systems build the SRW App with the :ref:`CMake Approach ` instead. - -If compiler auto-detection fails for some reason, specify it using the ``--compiler`` argument. For example: - -.. code-block:: console - - ./devbuild.sh --platform=hera --compiler=intel - -where valid values are ``intel`` or ``gnu``. - -If users want to build the optional ``GSI`` and ``rrfs_utl`` components for RRFS (NOTE: These components are not currently available for use at runtime), they can add the ``--rrfs`` argument. For example: - -.. code-block:: console - - ./devbuild.sh --platform=hera --rrfs - -The last line of the console output should be ``[100%] Built target ufs-weather-model``, indicating that the UFS Weather Model executable has been built successfully. - -The executables listed in :numref:`Table %s ` should appear in the ``ufs-srweather-app/bin`` directory. If users choose to build the ``GSI`` and ``rrfs_utl`` components, the executables listed in :numref:`Table %s ` will also appear there. If this build method does not work, or if users are not on a supported machine, they will have to manually setup the environment and build the SRW App binaries with CMake as described in :numref:`Section %s `. - - -.. _ExecDescription: - -.. table:: Names and descriptions of the executables produced by the build step and used by the SRW App - - +------------------------+---------------------------------------------------------------------------------+ - | **Executable Name** | **Description** | - +========================+=================================================================================+ - | chgres_cube | Reads in raw external model (global or regional) and surface climatology data | - | | to create initial and lateral boundary conditions | - +------------------------+---------------------------------------------------------------------------------+ - | emcsfc_ice_blend | Blends National Ice Center sea ice cover and EMC sea ice concentration data to | - | | create a global sea ice analysis used to update the GFS once per day | - +------------------------+---------------------------------------------------------------------------------+ - | emcsfc_snow2mdl | Blends National Ice Center snow cover and Air Force snow depth data to create a | - | | global depth analysis used to update the GFS snow field once per day | - +------------------------+---------------------------------------------------------------------------------+ - | filter_topo | Filters topography based on resolution | - +------------------------+---------------------------------------------------------------------------------+ - | fregrid | Remaps data from the input mosaic grid to the output mosaic grid | - +------------------------+---------------------------------------------------------------------------------+ - | fvcom_to_FV3 | Determines lake surface conditions for the Great Lakes | - +------------------------+---------------------------------------------------------------------------------+ - | global_cycle | Updates the GFS surface conditions using external snow and sea ice analyses | - +------------------------+---------------------------------------------------------------------------------+ - | global_equiv_resol | Calculates a global, uniform, cubed-sphere equivalent resolution for the | - | | regional Extended Schmidt Gnomonic (ESG) grid | - +------------------------+---------------------------------------------------------------------------------+ - | inland | Creates an inland land mask by determining in-land (i.e. non-coastal) points | - | | and assigning a value of 1. Default value is 0. | - +------------------------+---------------------------------------------------------------------------------+ - | lakefrac | Calculates the ratio of the lake area to the grid cell area at each atmospheric | - | | grid point. | - +------------------------+---------------------------------------------------------------------------------+ - | make_hgrid | Computes geo-referencing parameters (e.g., latitude, longitude, grid cell area) | - | | for global uniform grids | - +------------------------+---------------------------------------------------------------------------------+ - | make_solo_mosaic | Creates mosaic files with halos | - +------------------------+---------------------------------------------------------------------------------+ - | orog | Generates orography, land mask, and gravity wave drag files from fixed files | - +------------------------+---------------------------------------------------------------------------------+ - | orog_gsl | Ceates orographic statistics fields required for the orographic drag suite | - | | developed by NOAA's Global Systems Laboratory (GSL) | - +------------------------+---------------------------------------------------------------------------------+ - | regional_esg_grid | Generates an ESG regional grid based on a user-defined namelist | - +------------------------+---------------------------------------------------------------------------------+ - | sfc_climo_gen | Creates surface climatology fields from fixed files for use in ``chgres_cube`` | - +------------------------+---------------------------------------------------------------------------------+ - | shave | Shaves the excess halo rows down to what is required for the lateral boundary | - | | conditions (LBC's) in the orography and grid files | - +------------------------+---------------------------------------------------------------------------------+ - | upp.x | Post-processor for the model output | - +------------------------+---------------------------------------------------------------------------------+ - | ufs_model | UFS Weather Model executable | - +------------------------+---------------------------------------------------------------------------------+ - | vcoord_gen | Generates hybrid coordinate interface profiles | - +------------------------+---------------------------------------------------------------------------------+ - -.. _RRFSexec: - -.. table:: Names and descriptions of the executables produced when the RRFS option is enabled - - +----------------------------+-----------------------------------------------------------------------------+ - | **Executable Name** | **Description** | - +============================+=============================================================================+ - | gsi.x | Runs the Gridpoint Statistical Interpolation (GSI). | - +----------------------------+-----------------------------------------------------------------------------+ - | enkf.x | Runs the Ensemble Kalman Filter. | - +----------------------------+-----------------------------------------------------------------------------+ - | gen_annual_maxmin_GVF.exe | Generate maximum and minimum GVF files based on yearly long GVF | - | | observations for update_GVF process. | - +----------------------------+-----------------------------------------------------------------------------+ - | update_GVF.exe | Update the greenness vegetation fraction (GVF) in the surface file based on | - | | the real-time observations files. | - +----------------------------+-----------------------------------------------------------------------------+ - | ref2tten.exe | Calculate temperature tendency based on the radar reflectivity observation | - | | at each grid point. This temperature tendency can be used by the model | - | | during integration as latent heating initialization for ongoing | - | | precipitation systems, especially convection. | - +----------------------------+-----------------------------------------------------------------------------+ - | update_ice.exe | Replace ice fields in warm start surface files based on the forecast from | - | | cold start forecast using the GFS as the initial file. | - +----------------------------+-----------------------------------------------------------------------------+ - | process_updatesst.exe | Update SST field based on the SST analysis from NCEP. | - +----------------------------+-----------------------------------------------------------------------------+ - | check_imssnow_fv3lam.exe | This is a tool used to read snow and ice fields from surface files and | - | | check that field. | - +----------------------------+-----------------------------------------------------------------------------+ - | gen_cs.exe | NCL scripts to do cross section plotting. | - +----------------------------+-----------------------------------------------------------------------------+ - | lakesurgery.exe | Replace the existing lake depth with the GLOBathy bathymetry. It is | - | | designed to work with the HRRR model. | - +----------------------------+-----------------------------------------------------------------------------+ - | process_imssnow_fv3lam.exe | Use FV3LAM snow and ice fields based on the snow and ice information from | - | | imssnow. | - +----------------------------+-----------------------------------------------------------------------------+ - | gen_ensmean_recenter.exe | Runs the ensemble mean/recentering calculation for FV3LAM ensemble files. | - +----------------------------+-----------------------------------------------------------------------------+ - | update_bc.exe | Adjust 0-h boundary conditions based on the analysis results during data | - | | assimilation cycling. | - +----------------------------+-----------------------------------------------------------------------------+ - | adjust_soiltq.exe | Use the lowest level temperature and moisture analysis increments to adjust | - | | the soil moisture and soil temperature after analysis. | - +----------------------------+-----------------------------------------------------------------------------+ - | process_NSSL_mosaic.exe | Process NSSL MRMS radar reflectivity mosaic observations: read 33 level | - | | NSSL MRMS radar reflectivity grib2 files and then interpolate the | - | | reflectivity horizontally to the ESG grid. | - +----------------------------+-----------------------------------------------------------------------------+ - | use_raphrrr_sfc.exe | Use RAP and HRRR surface fields to replace the surface fields in FV3LAM. | - | | This is only used for starting the RRFS surface cycling. | - +----------------------------+-----------------------------------------------------------------------------+ - | process_Lightning.exe | Processes lightning data: read NLDN NetCDF observation files and map the | - | | lightning observations into FV3LAM ESG grid. | - +----------------------------+-----------------------------------------------------------------------------+ - | process_larccld.exe | Process NASA Langley cloud top product: reads the cloud top pressure, | - | | temperature, etc and maps them to the ESG grid. | - +----------------------------+-----------------------------------------------------------------------------+ - | process_metarcld.exe | Process METAR ceilometers cloud observations: reads the cloud base and | - | | coverage observations from PrepBUFR and distributes the cloud | - | | observations/weather/visibility observations to the ESG grid. | - +----------------------------+-----------------------------------------------------------------------------+ - | fv3lam_nonvarcldana.exe | Runs the non-variational cloud and precipitable hydrometeor analysis based | - | | on the METAR cloud observations, satellite retrieved cloud top products, | - | | and radar reflectivity. | - +----------------------------+-----------------------------------------------------------------------------+ - - - -.. _CMakeApproach: - -CMake Approach ------------------ - -Set Up the Build Environment -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. attention:: - * If users successfully built the executables in :numref:`Table %s `, they should skip to step :numref:`Step %s `. - * Users who want to build the SRW App on a generic MacOS should skip to :numref:`Section %s ` and follow the approach there. - -If the ``devbuild.sh`` approach failed, users need to set up their environment to run a workflow on their specific platform. First, users should make sure ``Lmod`` is the app used for loading modulefiles. This is the case on most Level 1 systems; however, on systems such as Gaea/Odin, the default modulefile loader is from Cray and must be switched to Lmod. For example, on Gaea, users can run one of the following two commands depending on whether they have a bash or csh shell, respectively: - -.. code-block:: console - - source etc/lmod-setup.sh gaea - source etc/lmod-setup.csh gaea - -If users execute one of the above commands on systems that don't need it, it will not cause any problems (it will simply do a ``module purge``). - -From here on, ``Lmod`` is ready to load the modulefiles needed by the SRW App. These modulefiles are located in the ``modulefiles`` directory. To load the necessary modulefile for a specific ```` using a given ````, run: - -.. code-block:: console - - module use - module load build__ - -where ```` is the full path to the ``modulefiles`` directory. - -This will work on Level 1 systems, where a modulefile is available in the ``modulefiles`` directory. On Level 2-4 systems (including generic Linux/MacOS systems), users will need to modify certain environment variables, such as the path to HPC-Stack, so that the SRW App can find and load the appropriate modules. For systems with Lmod installed, one of the current ``build__`` modulefiles can be copied and used as a template. To check whether Lmod is installed, run ``echo $LMOD_PKG``, and see if it outputs a path to the Lmod package. On systems without Lmod, users can modify or set the required environment variables with the ``export`` or ``setenv`` commands, depending on whether they are using a bash or csh/tcsh shell, respectively: - -.. code-block:: - - export = - setenv - -Note that building the SRW App without Lmod is not supported at this time. It should be possible to do so, but it has not been tested. Users are encouraged to install Lmod on their system. - -.. _BuildCMake: - -Build the Executables Using CMake -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -After setting up the build environment in the preceding section (by loading the ``build__`` modulefile), users need to build the executables required to run the SRW App. In the ``ufs-srweather-app`` directory, create a subdirectory to hold the build's executables: - -.. code-block:: console - - mkdir build - cd build - -From the build directory, run the following commands to build the pre-processing utilities, forecast model, and post-processor: - -.. code-block:: console - - cmake .. -DCMAKE_INSTALL_PREFIX=.. - make -j 4 >& build.out & - -``-DCMAKE_INSTALL_PREFIX`` specifies the location in which the ``bin``, ``include``, ``lib``, and ``share`` directories will be created. These directories will contain various components of the SRW App. Its recommended value ``..`` denotes one directory up from the build directory. In the next line, the ``make`` call argument ``-j 4`` indicates that the build will run in parallel with 4 threads. Although users can specify a larger or smaller number of threads (e.g., ``-j8``, ``-j2``), it is highly recommended to use at least 4 parallel threads to prevent overly long installation times. - -If users want to build the optional ``GSI`` and ``rrfs_utl`` components for RRFS (NOTE: These components are not currently available for use at runtime), they can add ``ENABLE_RRFS=on`` to the original cmake command. For example: - -.. code-block:: console - - cmake .. -DCMAKE_INSTALL_PREFIX=.. ENABLE_RRFS=on - make -j 4 >& build.out & - -The build will take a few minutes to complete. When it starts, a random number is printed to the console, and when it is done, a ``[1]+ Done`` message is printed to the console. ``[1]+ Exit`` indicates an error. Output from the build will be in the ``ufs-srweather-app/build/build.out`` file. When the build completes, users should see the forecast model executable ``ufs_model`` and several pre- and post-processing executables in the ``ufs-srweather-app/bin`` directory. These executables are described in :numref:`Table %s `. - -.. hint:: - - If you see the ``build.out`` file, but there is no ``ufs-srweather-app/bin`` directory, wait a few more minutes for the build to complete. - -.. _MacDetails: - -Additional Details for Building on MacOS ------------------------------------------- - -.. note:: - Users who are **not** building the SRW App on a MacOS machine may skip to the :ref:`next section `. - -The SRW App can be built on MacOS machines, presuming HPC-Stack has already been installed successfully. The following two options have been tested: - -* **Option 1:** MacBookAir 2020, M1 chip (arm64, running natively), 4+4 cores, Big Sur 11.6.4, GNU compiler suite v.11.2.0_3 (gcc, gfortran, g++); no MPI pre-installed - -* **Option 2:** MacBook Pro 2015, 2.8 GHz Quad-Core Intel Core i7 (x86_64), Catalina OS X 10.15.7, GNU compiler suite v.11.2.0_3 (gcc, gfortran, g++); no MPI pre-installed - -The ``build_macos_gnu`` modulefile initializes the module environment, lists the location of HPC-Stack modules, loads the meta-modules and modules, and sets compilers, additional flags, and environment variables needed for building the SRW App. The modulefile must be modified to include the absolute path to the user's HPC-Stack installation and ``ufs-srweather-app`` directories. In particular, the following section must be modified: - -.. code-block:: console - - # This path should point to your HPCstack installation directory - setenv HPCstack "/Users/username/hpc-stack/install" - - # This path should point to your SRW Application directory - setenv SRW "/Users/username/ufs-srweather-app" - -An excerpt of the ``build_macos_gnu`` contents appears below for Option 1. To use Option 2, the user will need to comment out the lines specific to Option 1 and uncomment the lines specific to Option 2 in the ``build_macos_gnu`` modulefile. Additionally, users need to verify that all file paths reflect their system's configuration and that the correct version numbers for software libraries appear in the modulefile. - -.. code-block:: console - - # Option 1 compiler paths: - setenv CC "/opt/homebrew/bin/gcc" - setenv FC "/opt/homebrew/bin/gfortran" - setenv CXX "/opt/homebrew/bin/g++" - - # Option 2 compiler paths: - #setenv CC "/usr/local/bin/gcc" - #setenv FC "/usr/local/bin/gfortran" - #setenv CXX "/usr/local/bin/g++" - -Then, users must source the Lmod setup file, just as they would on other systems, and load the modulefiles needed for building and running the SRW App: - -.. code-block:: console - - source etc/lmod-setup.sh macos - module use - module load build_macos_gnu - export LDFLAGS="-L${MPI_ROOT}/lib" - -In a csh/tcsh shell, users would run ``source etc/lmod-setup.csh macos`` in place of the first line in the code block above. - -Additionally, for Option 1 systems, set the variable ``ENABLE_QUAD_PRECISION`` to ``OFF`` in the ``$SRW/src/ufs-weather-model/FV3/atmos_cubed_sphere/CMakeLists.txt`` file. This change is optional if using Option 2 to build the SRW App. To make this change using a streamline editor (`sed`), run: - -.. code-block:: console - - sed -i .bak 's/QUAD_PRECISION\" ON)/QUAD_PRECISION\" OFF)/' $SRW/src/ufs-weather-model/FV3/atmos_cubed_sphere/CMakeLists.txt - -Proceed to building the executables using the process outlined in :numref:`Step %s `. - - .. _Data: Download and Stage the Data diff --git a/docs/UsersGuide/source/WE2Etests.rst b/docs/UsersGuide/source/WE2Etests.rst index 93b075781f..9feac60ca6 100644 --- a/docs/UsersGuide/source/WE2Etests.rst +++ b/docs/UsersGuide/source/WE2Etests.rst @@ -61,7 +61,7 @@ Users may specify the set of tests to run by creating a text file, such as ``my_ (and ``Ctrl + D`` to exit). For each test in ``my_tests.txt``, ``run_WE2E_tests.sh`` will generate a new experiment directory and, by default, create a new :term:`cron` job in the user's cron table that will (re)launch the workflow every 2 minutes. This cron job calls the workflow launch script ``launch_FV3LAM_wflow.sh`` until the workflow either completes successfully (i.e., all tasks are successful) or fails (i.e., at least one task fails). The cron job is then removed from the user's cron table. -The examples below demonstrate several common ways that ``run_WE2E_tests.sh`` can be called with the ``my_tests.txt`` file above. These examples assume that the user has already built the SRW App and loaded the regional workflow as described in :numref:`Chapter %s ` (and in detail in :numref:`Chapter %s `). +The examples below demonstrate several common ways that ``run_WE2E_tests.sh`` can be called with the ``my_tests.txt`` file above. These examples assume that the user has already built the SRW App and loaded the regional workflow as described in :numref:`Chapter %s ` (and in detail in Chapters :numref:`%s ` and :numref:`%s `). #. To run the tests listed in ``my_tests.txt`` on Hera and charge the computational resources used to the "rtrr" account, use: diff --git a/docs/UsersGuide/source/index.rst b/docs/UsersGuide/source/index.rst index d2dd7398a7..6a3d068693 100644 --- a/docs/UsersGuide/source/index.rst +++ b/docs/UsersGuide/source/index.rst @@ -14,7 +14,8 @@ UFS Short-Range Weather App Users Guide Introduction Quickstart ContainerQuickstart - BuildRunSRW + BuildSRW + RunSRW Components InputOutputFiles LAMGrids From 9e0ddd54b9a60bc3dba5a4a22e181c8825d75a09 Mon Sep 17 00:00:00 2001 From: gspetro Date: Wed, 28 Sep 2022 19:05:31 -0400 Subject: [PATCH 12/58] minor fix --- docs/UsersGuide/source/RunSRW.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index 95a0467024..91ab613e9a 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -4,7 +4,7 @@ Running the SRW App =========================== -This chapter walks users through how to build and run the "out-of-the-box" case for the SRW App. However, the steps are relevant to any SRW Application experiment and can be modified to suit user goals. This chapter assumes that users have already built the SRW App by following the steps in :numref:`Chapter %s `. These steps are also applicable to containerized versions of the SRW App and assume that the user has completed Steps :numref:` ` through :numref:` `. +This chapter walks users through how to run the "out-of-the-box" case for the SRW App. However, the steps are relevant to any SRW Application experiment and can be modified to suit user goals. This chapter assumes that users have already built the SRW App by following the steps in :numref:`Chapter %s `. These steps are also applicable to containerized versions of the SRW App and assume that the user has completed Steps :numref:` ` through :numref:` `. The out-of-the-box SRW App case builds a weather forecast for June 15-16, 2019. Multiple convective weather events during these two days produced over 200 filtered storm reports. Severe weather was clustered in two areas: the Upper Midwest through the Ohio Valley and the Southern Great Plains. This forecast uses a predefined 25-km Continental United States (:term:`CONUS`) domain (RRFS_CONUS_25km), the Global Forecast System (:term:`GFS`) version 16 physics suite (FV3_GFS_v16 :term:`CCPP`), and :term:`FV3`-based GFS raw external model data for initialization. From 9e16fa7776e2f32c9750fe93794643db257693d6 Mon Sep 17 00:00:00 2001 From: gspetro Date: Wed, 28 Sep 2022 19:52:02 -0400 Subject: [PATCH 13/58] update file exts in Config Params chapter --- docs/UsersGuide/source/ConfigWorkflow.rst | 69 +++++++++++++---------- 1 file changed, 38 insertions(+), 31 deletions(-) diff --git a/docs/UsersGuide/source/ConfigWorkflow.rst b/docs/UsersGuide/source/ConfigWorkflow.rst index 4eeb57b48c..9d2c1734cb 100644 --- a/docs/UsersGuide/source/ConfigWorkflow.rst +++ b/docs/UsersGuide/source/ConfigWorkflow.rst @@ -1,13 +1,16 @@ .. _ConfigWorkflow: -============================================================================================ -Workflow Parameters: Configuring the Workflow in ``config.sh`` and ``config_defaults.sh`` -============================================================================================ -To create the experiment directory and workflow when running the SRW Application, the user must create an experiment configuration file named ``config.sh``. This file contains experiment-specific information, such as dates, external model data, observation data, directories, and other relevant settings. To help the user, two sample configuration files have been included in the ``regional_workflow`` repository's ``ush`` directory: ``config.community.sh`` and ``config.nco.sh``. The first is for running experiments in community mode (``RUN_ENVIR`` set to "community"), and the second is for running experiments in "nco" mode (``RUN_ENVIR`` set to "nco"). Note that for this release, only "community" mode is supported. These files can be used as the starting point from which to generate a variety of experiment configurations for the SRW App. +================================================================================================ +Workflow Parameters: Configuring the Workflow in ``config.yaml`` and ``config_defaults.yaml`` +================================================================================================ +To create the experiment directory and workflow when running the SRW Application, the user must create an experiment configuration file (usually named ``config.yaml``). This file contains experiment-specific information, such as forecast dates, grid and physics suite selections, data directories, and other relevant settings. To help the user, two sample configuration files have been included in the ``ush`` directory: ``config.community.yaml`` and ``config.nco.yaml``. The first is for running experiments in *community* mode (``RUN_ENVIR`` set to "community"), and the second is for running experiments in *nco* mode (``RUN_ENVIR`` set to "nco"). The content of these files can be copied into ``config.yaml`` and used as the starting point from which to generate a variety of experiment configurations for the SRW App. Note that for this release, only "community" mode is supported. -There is an extensive list of experiment parameters that a user can set when configuring the experiment. Not all of these need to be explicitly set by the user in ``config.sh``. If a user does not define an entry in the ``config.sh`` script, either its value in ``config_defaults.sh`` will be used, or it will be reset depending on other parameters, such as the platform on which the experiment will be run (specified by ``MACHINE``). Note that ``config_defaults.sh`` contains the full list of experiment parameters that a user may set in ``config.sh`` (i.e., the user cannot set parameters in ``config.sh`` that are not initialized in ``config_defaults.sh``). +There is an extensive list of experiment parameters that a user can set when configuring the experiment. Not all of these parameters need to be set explicitly by the user in ``config.yaml``. If a user does not define an entry in the ``config.yaml`` script, either its value in ``config_defaults.yaml`` will be used, or it will be reset depending on other parameters, such as the platform on which the experiment will be run (specified by ``MACHINE``). -The following is a list of the parameters in the ``config_defaults.sh`` file. For each parameter, the default value and a brief description is given. +.. note:: + The ``config_defaults.yaml`` file contains the full list of experiment parameters that a user may set in ``config.yaml``. The user cannot set parameters in ``config.yaml`` that are not initialized in ``config_defaults.yaml``. + +The following is a list of the parameters in the ``config_defaults.yaml`` file. For each parameter, the default value and a brief description is given. .. _PlatEnv: @@ -27,7 +30,7 @@ Platform Environment The machine (a.k.a. platform or system) on which the workflow will run. Currently supported platforms are listed on the `SRW App Wiki page `__. When running the SRW App on any ParellelWorks/NOAA Cloud system, use "NOAACLOUD" regardless of the underlying system (AWS, GCP, or Azure). When running the SRW App in a container, set ``MACHINE`` to "SINGULARITY" regardless of the underlying platform (including on NOAA Cloud systems). Valid values: ``"HERA"`` | ``"ORION"`` | ``"JET"`` | ``"CHEYENNE"`` | ``"GAEA"`` | ``"NOAACLOUD"`` | ``"STAMPEDE"`` | ``"ODIN"`` | ``"MACOS"`` | ``"LINUX"`` | ``"SINGULARITY"`` | ``"WCOSS2"`` ``MACHINE_FILE``: (Default: "") - Path to a configuration file with machine-specific settings. If none is provided, ``setup.sh`` will attempt to set the path to a configuration file for a supported platform. + Path to a configuration file with machine-specific settings. If none is provided, ``setup.py`` will attempt to set the path to a configuration file for a supported platform. ``ACCOUNT``: (Default: "project_name") The account under which users submit jobs to the queue on the specified ``MACHINE``. To determine an appropriate ``ACCOUNT`` field for `Level 1 `__ systems, users may run the ``groups`` command, which will return a list of projects that the user has permissions for. Not all of the listed projects/groups have an HPC allocation, but those that do are potentially valid account names. On some systems, the ``saccount_params`` command will display additional account details. @@ -39,7 +42,7 @@ Platform Environment The workflow manager to use (e.g., "ROCOTO"). This is set to "none" by default, but if the machine name is set to a platform that supports Rocoto, this will be overwritten and set to "ROCOTO." Valid values: ``"rocoto"`` | ``"none"`` ``NCORES_PER_NODE``: (Default: "") - The number of cores available per node on the compute platform. Set for supported platforms in ``setup.sh``, but it is now also configurable for all platforms. + The number of cores available per node on the compute platform. Set for supported platforms in ``setup.py``, but it is now also configurable for all platforms. ``LMOD_PATH``: (Default: "") Path to the LMOD shell file on the user's Linux system. It is set automatically for supported machines. @@ -57,7 +60,7 @@ Platform Environment Machine-Dependent Parameters: ------------------------------- -These parameters vary depending on machine. On `Level 1 and 2 `__ systems, the appropriate values for each machine can be viewed in the ``regional_workflow/ush/machine/.sh`` scripts. To specify a value other than the default, add these variables and the desired value in the ``config.sh`` file so that they override the ``config_defaults.sh`` and machine default values. +These parameters vary depending on machine. On `Level 1 and 2 `__ systems, the appropriate values for each machine can be viewed in the ``ush/machine/.sh`` scripts. To specify a value other than the default, add these variables and the desired value in the ``config.yaml`` file so that they override the ``config_defaults.yaml`` and machine default values. ``PARTITION_DEFAULT``: (Default: "") This variable is only used with the Slurm job scheduler (i.e., if ``SCHED`` is set to "slurm"). This is the default partition to which Slurm submits workflow tasks. When a variable that designates the partition (e.g., ``PARTITION_HPSS``, ``PARTITION_FCST``; see below) is **not** specified, the task will be submitted to the default partition indicated in the ``PARTITION_DEFAULT`` variable. If this value is not set or is set to an empty string, it will be (re)set to a machine-dependent value. Valid values: ``""`` | ``"hera"`` | ``"normal"`` | ``"orion"`` | ``"sjet,vjet,kjet,xjet"`` | ``"workq"`` @@ -117,7 +120,7 @@ Cron is a job scheduler accessed through the command-line on UNIX-like operating Directory Parameters ==================== ``EXPT_BASEDIR``: (Default: "") - The full path to the base directory inside of which the experiment directory (``EXPT_SUBDIR``) will be created. If this is not specified or if it is set to an empty string, it will default to ``${HOMEdir}/../../expt_dirs``, where ``${HOMEdir}`` contains the full path to the ``regional_workflow`` directory. + The full path to the base directory inside of which the experiment directory (``EXPT_SUBDIR``) will be created. If this is not specified or if it is set to an empty string, it will default to ``${HOMEdir}/../../expt_dirs``, where ``${HOMEdir}`` contains the full path to the ``ush`` directory. ``EXPT_SUBDIR``: (Default: "") A descriptive name of the user's choice for the experiment directory (*not* its full path). The full path to the experiment directory, which will be contained in the variable ``EXPTDIR``, will be: @@ -151,7 +154,7 @@ These variables apply only when using NCO mode (i.e., when ``RUN_ENVIR`` is set ${FIXLAM_NCO_BASEDIR}/${PREDEF_GRID_NAME} - The workflow scripts will create a symlink in the experiment directory that will point to a subdirectory (having the name of the grid being used) under this directory. This variable should be set to a null string in ``config_defaults.sh`` and specified by the user in the workflow configuration file (``config.sh``). + The workflow scripts will create a symlink in the experiment directory that will point to a subdirectory (having the name of the grid being used) under this directory. This variable should be set to a null string in ``config_defaults.yaml`` and specified by the user in the workflow configuration file (``config.yaml``). ``STMP``: (Default: "/base/path/of/directory/containing/model/input/and/raw/output/files") The beginning portion of the path to the directory that will contain :term:`cycle-dependent` model input files, symlinks to :term:`cycle-independent` input files, and raw (i.e., before post-processing) forecast output files for a given :term:`cycle`. The format for cycle dates (cdate) is ``cdate="${YYYYMMDD}${HH}"``, where the date is specified using YYYYMMDD format, and the hour is specified using HH format. The files for a cycle date will be located in the following directory: @@ -186,7 +189,7 @@ Pre-Processing File Separator Parameters File Name Parameters ==================== -``EXPT_CONFIG_FN``: (Default: "config.sh") +``EXPT_CONFIG_FN``: (Default: "config.yaml") Name of the user-specified configuration file for the forecast experiment. ``RGNL_GRID_NML_FN``: (Default: "regional_grid.nml") @@ -226,13 +229,10 @@ File Name Parameters Name of the Rocoto workflow XML file that the experiment generation script creates. This file defines the workflow for the experiment. ``GLOBAL_VAR_DEFNS_FN``: (Default: "var_defns.sh") - Name of the file (a shell script) containing definitions of the primary and secondary experiment variables (parameters). This file is sourced by many scripts (e.g., the J-job scripts corresponding to each workflow task) in order to make all the experiment variables available in those scripts. The primary variables are defined in the default configuration script (``config_defaults.sh``) and in ``config.sh``. The secondary experiment variables are generated by the experiment generation script. - -``EXTRN_MDL_ICS_VAR_DEFNS_FN``: (Default: "extrn_mdl_ics_var_defns.sh") - Name of the file (a shell script) containing the definitions of variables associated with the external model from which :term:`ICs` are generated. This file is created by the ``GET_EXTRN_ICS_TN`` task because the values of the variables it contains are not known before this task runs. The file is then sourced by the ``MAKE_ICS_TN`` task. + Name of the file (a shell script) containing definitions of the primary and secondary experiment variables (parameters). This file is sourced by many scripts (e.g., the J-job scripts corresponding to each workflow task) in order to make all the experiment variables available in those scripts. The primary variables are defined in the default configuration script (``config_defaults.yaml``) and in ``config.yaml``. The secondary experiment variables are generated by the experiment generation script. -``EXTRN_MDL_LBCS_VAR_DEFNS_FN``: (Default: "extrn_mdl_lbcs_var_defns.sh") - Name of the file (a shell script) containing the definitions of variables associated with the external model from which :term:`LBCs` are generated. This file is created by the ``GET_EXTRN_LBCS_TN`` task because the values of the variables it contains are not known before this task runs. The file is then sourced by the ``MAKE_ICS_TN`` task. +``EXTRN_MDL_VAR_DEFNS_FN``: (Default: "extrn_mdl_var_defns") + Name of the file (a shell script) containing the defintions of variables associated with the external model from which :term:`ICs` or :term:`LBCs` are generated. This file is created by the ``GET_EXTRN_*_TN`` task because the values of the variables it contains are not known before this task runs. The file is then sourced by the ``MAKE_ICS_TN`` and ``MAKE_LBCS_TN`` tasks. ``WFLOW_LAUNCH_SCRIPT_FN``: (Default: "launch_FV3LAM_wflow.sh") Name of the script that can be used to (re)launch the experiment's Rocoto workflow. @@ -261,7 +261,7 @@ Model Configuration Parameters ================================= ``DT_ATMOS``: (Default: "") - Time step for the outermost atmospheric model loop in seconds. This corresponds to the frequency at which the physics routines and the top level dynamics routine are called. (Note that one call to the top-level dynamics routine results in multiple calls to the horizontal dynamics, tracer transport, and vertical dynamics routines; see the `FV3 dycore scientific documentation `__ for details.) Must be set. Takes an integer value. In the SRW App, a default value for ``DT_ATMOS`` appears in the ``set_predef_grid_params.sh`` script, but a different value can be set in ``config.sh``. + Time step for the outermost atmospheric model loop in seconds. This corresponds to the frequency at which the physics routines and the top level dynamics routine are called. (Note that one call to the top-level dynamics routine results in multiple calls to the horizontal dynamics, tracer transport, and vertical dynamics routines; see the `FV3 dycore scientific documentation `__ for details.) Must be set. Takes an integer value. In the SRW App, a default value for ``DT_ATMOS`` appears in the ``set_predef_grid_params.py`` script, but a different value can be set in ``config.yaml``. ``RESTART_INTERVAL``: (Default: "0") Frequency of the output restart files in hours. Using the default interval ("0"), restart files are produced at the end of a forecast run. When ``RESTART_INTERVAL="1"``, restart files are produced every hour with the prefix "YYYYMMDD.HHmmSS." in the ``RESTART`` directory. @@ -269,7 +269,7 @@ Model Configuration Parameters .. _InlinePost: ``WRITE_DOPOST``: (Default: "FALSE") - Flag that determines whether to use the INLINE POST option. If TRUE, the ``WRITE_DOPOST`` flag in the ``model_configure`` file will be set to "TRUE", and the post-processing tasks get called from within the weather model so that the post-processed files (in :term:`grib2` format) are output by the Weather Model at the same time that it outputs the ``dynf###.nc`` and ``phyf###.nc`` files. Setting ``WRITE_DOPOST="TRUE"`` turns off the separate ``run_post`` task (i.e., ``RUN_TASK_RUN_POST`` is set to "FALSE") in ``setup.sh``. + Flag that determines whether to use the INLINE POST option. If TRUE, the ``WRITE_DOPOST`` flag in the ``model_configure`` file will be set to "TRUE", and the post-processing tasks get called from within the weather model so that the post-processed files (in :term:`grib2` format) are output by the Weather Model at the same time that it outputs the ``dynf###.nc`` and ``phyf###.nc`` files. Setting ``WRITE_DOPOST="TRUE"`` turns off the separate ``run_post`` task (i.e., ``RUN_TASK_RUN_POST`` is set to "FALSE") in ``setup.py``. METplus Parameters ===================== @@ -307,19 +307,24 @@ METplus Parameters .. note:: There is a problem with the valid time in the metadata for files valid from 19 - 00 UTC (i.e., files under the "00" directory). The script to pull the CCPA data from the NOAA HPSS (``regional_workflow/scripts/exregional_get_ccpa_files.sh``) has an example of how to account for this and organize the data into a more intuitive format. When a fix is provided, it will be accounted for in the ``exregional_get_ccpa_files.sh`` script. +.. COMMENT: Find file & rm regional_workflow ref + ``MRMS_OBS_DIR``: (Default: "") User-specified location of top-level directory where MRMS composite reflectivity files used by METplus are located. This parameter needs to be set for both user-provided observations and for observations that are retrieved from the NOAA :term:`HPSS` (if the user has access) via the ``get_obs_mrms_tn`` task (activated in the workflow by setting ``RUN_TASK_GET_OBS_MRMS="TRUE"``). When pulling observations directly from NOAA HPSS, the data retrieved will be placed in this directory. Please note, this path must be defind as ``//mrms/proc``. METplus configuration files require the use of a predetermined directory structure and file names. Therefore, if the MRMS files are user-provided, they need to follow the anticipated naming structure: ``{YYYYMMDD}/MergedReflectivityQCComposite_00.50_{YYYYMMDD}-{HH}{mm}{SS}.grib2``, where YYYYMMDD and {HH}{mm}{SS} are as described in the note :ref:`above `. .. note:: - METplus is configured to look for a MRMS composite reflectivity file for the valid time of the forecast being verified; since MRMS composite reflectivity files do not always exactly match the valid time, a script (within the main script that retrieves MRMS data from the NOAA HPSS) is used to identify and rename the MRMS composite reflectivity file to match the valid time of the forecast. The script to pull the MRMS data from the NOAA HPSS has an example of the expected file-naming structure: ``regional_workflow/scripts/exregional_get_mrms_files.sh``. This script calls the script used to identify the MRMS file closest to the valid time: ``regional_workflow/ush/mrms_pull_topofhour.py``. + METplus is configured to look for a MRMS composite reflectivity file for the valid time of the forecast being verified; since MRMS composite reflectivity files do not always exactly match the valid time, a script (within the main script that retrieves MRMS data from the NOAA HPSS) is used to identify and rename the MRMS composite reflectivity file to match the valid time of the forecast. The script to pull the MRMS data from the NOAA HPSS has an example of the expected file-naming structure: ``regional_workflow/scripts/exregional_get_mrms_files.sh``. This script calls the script used to identify the MRMS file closest to the valid time: ``ush/mrms_pull_topofhour.py``. +.. COMMENT: Find file & rm regional_workflow ref ``NDAS_OBS_DIR``: (Default: "") User-specified location of top-level directory where NDAS prepbufr files used by METplus are located. This parameter needs to be set for both user-provided observations and for observations that are retrieved from the NOAA :term:`HPSS` (if the user has access) via the ``get_obs_ndas_tn`` task (activated in the workflow by setting ``RUN_TASK_GET_OBS_NDAS="TRUE"``). When pulling observations directly from NOAA HPSS, the data retrieved will be placed in this directory. Please note, this path must be defined as ``//ndas/proc``. METplus is configured to verify near-surface variables hourly and upper-air variables at 00 and 12 UTC with NDAS prepbufr files. METplus configuration files require the use of predetermined file names. Therefore, if the NDAS files are user-provided, they need to follow the anticipated naming structure: ``prepbufr.ndas.{YYYYMMDDHH}``, where YYYYMMDD and HH are as described in the note :ref:`above `. The script to pull the NDAS data from the NOAA HPSS (``regional_workflow/scripts/exregional_get_ndas_files.sh``) has an example of how to rename the NDAS data into a more intuitive format with the valid time listed in the file name. + +.. COMMENT: Find file & rm regional_workflow ref Initial and Lateral Boundary Condition Generation Parameters ============================================================ @@ -338,6 +343,8 @@ Initial and Lateral Boundary Condition Generation Parameters ``EXTRN_MDL_LBCS_OFFSET_HRS``: (Default: "") Users may wish to use lateral boundary conditions from a forecast that was started earlier than the start of the forecast configured here. This variable indicates how many hours earlier the external model started than the FV3 forecast configured here. For example, if the forecast should use lateral boundary conditions from the GFS started 6 hours earlier, then ``EXTRN_MDL_LBCS_OFFSET_HRS="6"``. Note: the default value is model-dependent and is set in ``set_extrn_mdl_params.sh``. +.. COMMENT: Find file & confirm file extension + ``FV3GFS_FILE_FMT_ICS``: (Default: "nemsio") If using the FV3GFS model as the source of the :term:`ICs` (i.e., if ``EXTRN_MDL_NAME_ICS="FV3GFS"``), this variable specifies the format of the model files to use when generating the ICs. Valid values: ``"nemsio"`` | ``"grib2"`` | ``"netcdf"`` @@ -350,7 +357,7 @@ Base Directories for External Model Files =========================================== .. note:: - These variables must be defined as null strings in ``config_defaults.sh`` so that if they are specified by the user in the experiment configuration file (``config.sh``), they remain set to those values, and if not, they get set to machine-dependent values. + These variables must be defined as null strings in ``config_defaults.yaml`` so that if they are specified by the user in the experiment configuration file (``config.yaml``), they remain set to those values, and if not, they get set to machine-dependent values. ``EXTRN_MDL_SYSBASEDIR_ICS``: (Default: "") Base directory on the local machine containing external model files for generating :term:`ICs` on the native grid. The way the full path containing these files is constructed depends on the user-specified external model for ICs (defined in ``EXTRN_MDL_NAME_ICS`` above). @@ -508,7 +515,7 @@ Stochastic Kinetic Energy Backscatter (SKEB) Parameters Parameters for Stochastically Perturbed Parameterizations (SPP) ------------------------------------------------------------------ -SPP perturbs specific tuning parameters within a physics :term:`parameterization ` (unlike :ref:`SPPT `, which multiplies overall physics tendencies by a random perturbation field *after* the call to the physics suite). Each SPP option is an array, applicable (in order) to the :term:`RAP`/:term:`HRRR`-based parameterization listed in ``SPP_VAR_LIST``. Enter each value of the array in ``config.sh`` as shown below without commas or single quotes (e.g., ``SPP_VAR_LIST=( "pbl" "sfc" "mp" "rad" "gwd"`` ). Both commas and single quotes will be added by Jinja when creating the namelist. +SPP perturbs specific tuning parameters within a physics :term:`parameterization ` (unlike :ref:`SPPT `, which multiplies overall physics tendencies by a random perturbation field *after* the call to the physics suite). Each SPP option is an array, applicable (in order) to the :term:`RAP`/:term:`HRRR`-based parameterization listed in ``SPP_VAR_LIST``. Enter each value of the array in ``config.yaml`` as shown below without commas or single quotes (e.g., ``SPP_VAR_LIST=( "pbl" "sfc" "mp" "rad" "gwd"`` ). Both commas and single quotes will be added by Jinja when creating the namelist. .. note:: SPP is currently only available for specific physics schemes used in the RAP/HRRR physics suite. Users need to be aware of which :term:`SDF` is chosen when turning this option on. Among the supported physics suites, the full set of parameterizations can only be used with the ``FV3_HRRR`` option for ``CCPP_PHYS_SUITE``. @@ -574,7 +581,7 @@ The parameters below turn on SPP in Noah or RUC LSM (support for Noah MP is in p Predefined Grid Parameters ========================== ``PREDEF_GRID_NAME``: (Default: "") - This parameter indicates which (if any) predefined regional grid to use for the experiment. Setting ``PREDEF_GRID_NAME`` provides a convenient method of specifying a commonly used set of grid-dependent parameters. The predefined grid settings can be viewed in the script ``ush/set_predef_grid_params.sh``. + This parameter indicates which (if any) predefined regional grid to use for the experiment. Setting ``PREDEF_GRID_NAME`` provides a convenient method of specifying a commonly used set of grid-dependent parameters. The predefined grid settings can be viewed in the script ``ush/set_predef_grid_params.py``. **Currently supported options:** @@ -607,9 +614,9 @@ Predefined Grid Parameters .. note:: - * If ``PREDEF_GRID_NAME`` is set to a valid predefined grid name, the grid generation method, the (native) grid parameters, and the write component grid parameters are set to predefined values for the specified grid, overwriting any settings of these parameters in the user-specified experiment configuration file (``config.sh``). In addition, if the time step ``DT_ATMOS`` and the computational parameters (``LAYOUT_X``, ``LAYOUT_Y``, and ``BLOCKSIZE``) are not specified in that configuration file, they are also set to predefined values for the specified grid. + * If ``PREDEF_GRID_NAME`` is set to a valid predefined grid name, the grid generation method, the (native) grid parameters, and the write component grid parameters are set to predefined values for the specified grid, overwriting any settings of these parameters in the user-specified experiment configuration file (``config.yaml``). In addition, if the time step ``DT_ATMOS`` and the computational parameters (``LAYOUT_X``, ``LAYOUT_Y``, and ``BLOCKSIZE``) are not specified in that configuration file, they are also set to predefined values for the specified grid. - * If ``PREDEF_GRID_NAME`` is set to an empty string, it implies that the user will provide the native grid parameters in the user-specified experiment configuration file (``config.sh``). In this case, the grid generation method, the native grid parameters, the write component grid parameters, the main time step (``DT_ATMOS``), and the computational parameters (``LAYOUT_X``, ``LAYOUT_Y``, and ``BLOCKSIZE``) must be set in the configuration file. Otherwise, the values of the parameters in the default experiment configuration file (``config_defaults.sh``) will be used. + * If ``PREDEF_GRID_NAME`` is set to an empty string, it implies that the user will provide the native grid parameters in the user-specified experiment configuration file (``config.yaml``). In this case, the grid generation method, the native grid parameters, the write component grid parameters, the main time step (``DT_ATMOS``), and the computational parameters (``LAYOUT_X``, ``LAYOUT_Y``, and ``BLOCKSIZE``) must be set in the configuration file. Otherwise, the values of the parameters in the default experiment configuration file (``config_defaults.yaml``) will be used. .. _ConfigParameters: @@ -736,9 +743,9 @@ Computational Forecast Parameters .. note:: - In ``config_defaults.sh`` these parameters are set to null strings so that: + In ``config_defaults.yaml`` these parameters are set to null strings so that: - #. If the experiment is using a predefined grid and the user sets the ``BLOCKSIZE`` parameter in the user-specified experiment configuration file (i.e., ``config.sh``), that value will be used in the forecast(s). Otherwise, the default ``BLOCKSIZE`` for that predefined grid will be used. + #. If the experiment is using a predefined grid and the user sets the ``BLOCKSIZE`` parameter in the user-specified experiment configuration file (i.e., ``config.yaml``), that value will be used in the forecast(s). Otherwise, the default ``BLOCKSIZE`` for that predefined grid will be used. #. If the experiment is *not* using a predefined grid (i.e., it is using a custom grid whose parameters are specified in the experiment configuration file), then the user must specify a value for the ``BLOCKSIZE`` parameter in that configuration file. Otherwise, it will remain set to a null string, and the experiment generation will fail, because the generation scripts check to ensure that all the parameters defined in this section are set to non-empty strings before creating the experiment directory. .. _WriteComp: @@ -766,7 +773,7 @@ Write-Component (Quilting) Parameters The number of MPI tasks to allocate for each write group. ``WRTCMP_output_grid``: (Default: "''") - Sets the type (coordinate system) of the write component grid. The default empty string forces the user to set a valid value for ``WRTCMP_output_grid`` in ``config.sh`` if specifying a *custom* grid. When creating an experiment with a user-defined grid, this parameter must be specified or the experiment will fail. Valid values: ``"lambert_conformal"`` | ``"regional_latlon"`` | ``"rotated_latlon"`` + Sets the type (coordinate system) of the write component grid. The default empty string forces the user to set a valid value for ``WRTCMP_output_grid`` in ``config.yaml`` if specifying a *custom* grid. When creating an experiment with a user-defined grid, this parameter must be specified or the experiment will fail. Valid values: ``"lambert_conformal"`` | ``"regional_latlon"`` | ``"rotated_latlon"`` ``WRTCMP_cen_lon``: (Default: "") Longitude (in degrees) of the center of the write component grid. Can usually be set to the corresponding value from the native grid. @@ -933,7 +940,7 @@ For each workflow task, additional parameters determine the values to pass to th | ``PPN_RUN_FCST``: (Default: "") .. note:: - The correct value for ``PPN_RUN_FCST`` will be calculated from ``NCORES_PER_NODE`` and ``OMP_NUM_THREADS`` in ``setup.sh``. + The correct value for ``PPN_RUN_FCST`` will be calculated from ``NCORES_PER_NODE`` and ``OMP_NUM_THREADS`` in ``setup.py``. | ``PPN_RUN_POST``: (Default: "24") | ``PPN_GET_OBS_CCPA``: (Default: "1") @@ -1102,7 +1109,7 @@ Surface Climatology Parameter Fixed File Parameters ===================== -These parameters are associated with the fixed (i.e., static) files. On `Level 1 & 2 `__ systems, fixed files are prestaged with paths defined in the ``setup.sh`` script. Because the default values are platform-dependent, they are set to a null string in ``config_defaults.sh``. Then these null values are overwritten in ``setup.sh`` with machine-specific values or with a user-specified value from ``config.sh``. +These parameters are associated with the fixed (i.e., static) files. On `Level 1 & 2 `__ systems, fixed files are prestaged with paths defined in the ``setup.py`` script. Because the default values are platform-dependent, they are set to a null string in ``config_defaults.yaml``. Then these null values are overwritten in ``setup.py`` with machine-specific values or with a user-specified value from ``config.yaml``. ``FIXgsm``: (Default: "") System directory in which the majority of fixed (i.e., time-independent) files that are needed to run the FV3-LAM model are located. From 5c9acb588836dec215dd7de63c8e666d5479b5ff Mon Sep 17 00:00:00 2001 From: gspetro Date: Mon, 3 Oct 2022 11:33:46 -0400 Subject: [PATCH 14/58] update user/platform sections of Config Params Chapter --- docs/UsersGuide/source/BuildSRW.rst | 7 + docs/UsersGuide/source/ConfigWorkflow.rst | 745 +++++++++++++----- .../UsersGuide/source/ContainerQuickstart.rst | 6 +- 3 files changed, 561 insertions(+), 197 deletions(-) diff --git a/docs/UsersGuide/source/BuildSRW.rst b/docs/UsersGuide/source/BuildSRW.rst index c0785f6cc1..3b19e0023c 100644 --- a/docs/UsersGuide/source/BuildSRW.rst +++ b/docs/UsersGuide/source/BuildSRW.rst @@ -121,6 +121,13 @@ Run the executable that pulls in SRW App components from external repositories: The script should output dialogue indicating that it is retrieving different code repositories. It may take several minutes to download these repositories. +To see more options, users can run ``./manage_externals/checkout_externals -h``. For example: + + * ``-S``: Outputs the status of the repositories managed by checkout_externals. By default only summary information is provided. Use with the ``-v`` (verbose) option to see details. + * ``-x [EXCLUDE [EXCLUDE ...]]``: allows users to exclude components listed in the externals file when checking out externals. + * ``-o``: By default only the required externals are checked out. This flag will also checkout the optional externals. + +Generally, users will not need to use the options and can simply run the script, but the options are available for those who are curious. .. _BuildExecutables: diff --git a/docs/UsersGuide/source/ConfigWorkflow.rst b/docs/UsersGuide/source/ConfigWorkflow.rst index 9d2c1734cb..46ef8341aa 100644 --- a/docs/UsersGuide/source/ConfigWorkflow.rst +++ b/docs/UsersGuide/source/ConfigWorkflow.rst @@ -3,19 +3,22 @@ ================================================================================================ Workflow Parameters: Configuring the Workflow in ``config.yaml`` and ``config_defaults.yaml`` ================================================================================================ -To create the experiment directory and workflow when running the SRW Application, the user must create an experiment configuration file (usually named ``config.yaml``). This file contains experiment-specific information, such as forecast dates, grid and physics suite selections, data directories, and other relevant settings. To help the user, two sample configuration files have been included in the ``ush`` directory: ``config.community.yaml`` and ``config.nco.yaml``. The first is for running experiments in *community* mode (``RUN_ENVIR`` set to "community"), and the second is for running experiments in *nco* mode (``RUN_ENVIR`` set to "nco"). The content of these files can be copied into ``config.yaml`` and used as the starting point from which to generate a variety of experiment configurations for the SRW App. Note that for this release, only "community" mode is supported. +To create the experiment directory and workflow when running the SRW Application, the user must create an experiment configuration file (usually named ``config.yaml``). This file contains experiment-specific information, such as forecast dates, grid and physics suite selections, data directories, and other relevant settings. To help the user, two sample configuration files have been included in the ``ush`` directory: ``config.community.yaml`` and ``config.nco.yaml``. The first is for running experiments in *community* mode (``RUN_ENVIR`` set to "community"), and the second is for running experiments in *nco* mode (``RUN_ENVIR`` set to "nco"). The content of these files can be copied into ``config.yaml`` and used as the starting point from which to generate a variety of experiment configurations for the SRW App. Note that for this release, only *community* mode is supported. There is an extensive list of experiment parameters that a user can set when configuring the experiment. Not all of these parameters need to be set explicitly by the user in ``config.yaml``. If a user does not define an entry in the ``config.yaml`` script, either its value in ``config_defaults.yaml`` will be used, or it will be reset depending on other parameters, such as the platform on which the experiment will be run (specified by ``MACHINE``). .. note:: The ``config_defaults.yaml`` file contains the full list of experiment parameters that a user may set in ``config.yaml``. The user cannot set parameters in ``config.yaml`` that are not initialized in ``config_defaults.yaml``. -The following is a list of the parameters in the ``config_defaults.yaml`` file. For each parameter, the default value and a brief description is given. +The following is a list of the parameters in the ``config_defaults.yaml`` file. For each parameter, the default value and a brief description is provided. -.. _PlatEnv: +.. _user: + +USER Configuration Parameters +================================= + +If non-default parameters are selected for the variables in this section, they should be added to the ``user:`` section of the ``config.yaml`` file. -Platform Environment -==================== ``RUN_ENVIR``: (Default: "nco") This variable determines the workflow mode. The user can choose between two options: "nco" and "community". The "nco" mode uses a directory structure that mimics what is used in operations at NOAA/NCEP Central Operations (NCO) and at the NOAA/NCEP/Environmental Modeling Center (EMC), which works with NCO on pre-implementation testing. Specifics of the conventions used in "nco" mode can be found in the following `WCOSS Implementation Standards `__ document: @@ -24,10 +27,13 @@ Platform Environment | January 19, 2022 | Version 11.0.0 - Setting ``RUN_ENVIR`` to "community" is recommended in most cases for users who are not planning to implement their code into operations at NCO. + Setting ``RUN_ENVIR`` to "community" is recommended in most cases for users who are not planning to implement their code into operations at NCO. Valid values: ``"nco"`` | ``"community"`` ``MACHINE``: (Default: "BIG_COMPUTER") - The machine (a.k.a. platform or system) on which the workflow will run. Currently supported platforms are listed on the `SRW App Wiki page `__. When running the SRW App on any ParellelWorks/NOAA Cloud system, use "NOAACLOUD" regardless of the underlying system (AWS, GCP, or Azure). When running the SRW App in a container, set ``MACHINE`` to "SINGULARITY" regardless of the underlying platform (including on NOAA Cloud systems). Valid values: ``"HERA"`` | ``"ORION"`` | ``"JET"`` | ``"CHEYENNE"`` | ``"GAEA"`` | ``"NOAACLOUD"`` | ``"STAMPEDE"`` | ``"ODIN"`` | ``"MACOS"`` | ``"LINUX"`` | ``"SINGULARITY"`` | ``"WCOSS2"`` + The machine (a.k.a. platform or system) on which the workflow will run. Currently supported platforms are listed on the `SRW App Wiki page `__. When running the SRW App on any ParellelWorks/NOAA Cloud system, use "NOAACLOUD" regardless of the underlying system (AWS, GCP, or Azure). Valid values: ``"HERA"`` | ``"ORION"`` | ``"JET"`` | ``"CHEYENNE"`` | ``"GAEA"`` | ``"NOAACLOUD"`` | ``"STAMPEDE"`` | ``"ODIN"`` | ``"MACOS"`` | ``"LINUX"`` | ``"SINGULARITY"`` + + .. hint:: + Users who are NOT on a named, supported Level 1 or 2 platform will need to set the ``MACHINE`` variable to ``LINUX`` or ``MACOS``; to combine use of a Linux or MacOS platform with the Rocoto workflow manager, users will also need to set ``WORKFLOW_MANAGER: "rocoto"`` in the ``platform:`` section of ``config.yaml``. This combination will assume a Slurm batch manager when generating the XML. ``MACHINE_FILE``: (Default: "") Path to a configuration file with machine-specific settings. If none is provided, ``setup.py`` will attempt to set the path to a configuration file for a supported platform. @@ -35,109 +41,235 @@ Platform Environment ``ACCOUNT``: (Default: "project_name") The account under which users submit jobs to the queue on the specified ``MACHINE``. To determine an appropriate ``ACCOUNT`` field for `Level 1 `__ systems, users may run the ``groups`` command, which will return a list of projects that the user has permissions for. Not all of the listed projects/groups have an HPC allocation, but those that do are potentially valid account names. On some systems, the ``saccount_params`` command will display additional account details. -``COMPILER``: (Default: "intel") - Type of compiler invoked during the build step. Currently, this must be set manually (i.e., it is not inherited from the build system in the ``ufs-srweather-app`` directory). Valid values: ``"intel"`` | ``"gnu"`` +.. _PlatformConfig: + +PLATFORM Configuration Parameters +===================================== + +If non-default parameters are selected for the variables in this section, they should be added to the ``platform:`` section of the ``config.yaml`` file. ``WORKFLOW_MANAGER``: (Default: "none") - The workflow manager to use (e.g., "ROCOTO"). This is set to "none" by default, but if the machine name is set to a platform that supports Rocoto, this will be overwritten and set to "ROCOTO." Valid values: ``"rocoto"`` | ``"none"`` + The workflow manager to use (e.g., "rocoto"). This is set to "none" by default, but if the machine name is set to a platform that supports Rocoto, this will be overwritten and set to "rocoto." If set explicitly to "rocoto" along with the use of the ``MACHINE: "LINUX"`` target, the configuration layer assumes a Slurm batch manager when generating the XML. Valid values: ``"rocoto"`` | ``"none"`` ``NCORES_PER_NODE``: (Default: "") The number of cores available per node on the compute platform. Set for supported platforms in ``setup.py``, but it is now also configurable for all platforms. + .. COMMENT: Does it mean Level 1 platforms for "supported platforms"? Check setup.py. + ``LMOD_PATH``: (Default: "") Path to the LMOD shell file on the user's Linux system. It is set automatically for supported machines. + .. COMMENT: Does it mean Level 1 platforms for "supported platforms"? + ``BUILD_MOD_FN``: (Default: "") - Name of alternative build module file to use if running on an unsupported platform. Is set automatically for supported machines. + Name of an alternative build module file to use if running on an unsupported platform. It is set automatically for supported machines. ``WFLOW_MOD_FN``: (Default: "") - Name of alternative workflow module file to use if running on an unsupported platform. Is set automatically for supported machines. + Name of an alternative workflow module file to use if running on an unsupported platform. It is set automatically for supported machines. .. _sched: ``SCHED``: (Default: "") The job scheduler to use (e.g., Slurm) on the specified ``MACHINE``. Leaving this an empty string allows the experiment generation script to set it automatically depending on the machine the workflow is running on. Valid values: ``"slurm"`` | ``"pbspro"`` | ``"lsf"`` | ``"lsfcray"`` | ``"none"`` -Machine-Dependent Parameters: + +Machine-Dependent Parameters ------------------------------- These parameters vary depending on machine. On `Level 1 and 2 `__ systems, the appropriate values for each machine can be viewed in the ``ush/machine/.sh`` scripts. To specify a value other than the default, add these variables and the desired value in the ``config.yaml`` file so that they override the ``config_defaults.yaml`` and machine default values. ``PARTITION_DEFAULT``: (Default: "") - This variable is only used with the Slurm job scheduler (i.e., if ``SCHED`` is set to "slurm"). This is the default partition to which Slurm submits workflow tasks. When a variable that designates the partition (e.g., ``PARTITION_HPSS``, ``PARTITION_FCST``; see below) is **not** specified, the task will be submitted to the default partition indicated in the ``PARTITION_DEFAULT`` variable. If this value is not set or is set to an empty string, it will be (re)set to a machine-dependent value. Valid values: ``""`` | ``"hera"`` | ``"normal"`` | ``"orion"`` | ``"sjet,vjet,kjet,xjet"`` | ``"workq"`` + This variable is only used with the Slurm job scheduler (i.e., when ``SCHED: "slurm"``). This is the default partition to which Slurm submits workflow tasks. When a variable that designates the partition (e.g., ``PARTITION_HPSS``, ``PARTITION_FCST``; see below) is **not** specified, the task will be submitted to the default partition indicated in the ``PARTITION_DEFAULT`` variable. If this value is not set or is set to an empty string, it will be (re)set to a machine-dependent value. Valid values: ``""`` | ``"hera"`` | ``"normal"`` | ``"orion"`` | ``"sjet"`` | ``"vjet"`` | ``"kjet"`` | ``"xjet"`` | ``"workq"`` -``CLUSTERS_DEFAULT``: (Default: "") - This variable is only used with the Slurm job scheduler (i.e., if ``SCHED`` is set to "slurm"). These are the default clusters to which Slurm submits workflow tasks. If ``CLUSTERS_HPSS`` or ``CLUSTERS_FCST`` (see below) are not specified, the task will be submitted to the default clusters indicated in this variable. If this value is not set or is set to an empty string, it will be (re)set to a machine-dependent value. + .. COMMENT: Don't see these valid values in valid_param_vals anymore. Also, "xjet" is not listed here but is an option... ``QUEUE_DEFAULT``: (Default: "") The default queue or QOS to which workflow tasks are submitted (QOS is Slurm's term for queue; it stands for "Quality of Service"). If the task's ``QUEUE_HPSS`` or ``QUEUE_FCST`` parameters (see below) are not specified, the task will be submitted to the queue indicated by this variable. If this value is not set or is set to an empty string, it will be (re)set to a machine-dependent value. Valid values: ``""`` | ``"batch"`` | ``"dev"`` | ``"normal"`` | ``"regular"`` | ``"workq"`` + .. COMMENT: Don't see these valid values in valid_param_vals anymore. + ``PARTITION_HPSS``: (Default: "") - This variable is only used with the Slurm job scheduler (i.e., if ``SCHED`` is set to "slurm"). Tasks that get or create links to external model files are submitted to the partition specified in this variable. These links are needed to generate initial conditions (:term:`ICs`) and lateral boundary conditions (:term:`LBCs`) for the experiment. If this variable is not set or is set to an empty string, it will be (re)set to the ``PARTITION_DEFAULT`` value (if set) or to a machine-dependent value. Valid values: ``""`` | ``"normal"`` | ``"service"`` | ``"workq"`` + This variable is only used with the Slurm job scheduler (i.e., when ``SCHED: "slurm"``). Tasks that get or create links to external model files are submitted to the partition specified in this variable. These links are needed to generate initial conditions (:term:`ICs`) and lateral boundary conditions (:term:`LBCs`) for the experiment. If this variable is not set or is set to an empty string, it will be (re)set to the ``PARTITION_DEFAULT`` value (if set) or to a machine-dependent value. Valid values: ``""`` | ``"normal"`` | ``"service"`` | ``"workq"`` -``CLUSTERS_HPSS``: (Default: "") - This variable is only used with the Slurm job scheduler (i.e., if ``SCHED`` is set to "slurm"). Tasks that get or create links to external model files are submitted to the clusters specified in this variable. These links are needed to generate initial conditions (ICs) and lateral boundary conditions (LBCs) for the experiment. If this variable is not set or is set to an empty string, it will be (re)set to a machine-dependent value. + .. COMMENT: Don't see these valid values in valid_param_vals anymore. ``QUEUE_HPSS``: (Default: "") - Tasks that get or create links to external model files are submitted to this queue, or QOS (QOS is Slurm's term for queue; it stands for "Quality of Service"). If this value is not set or is set to an empty string, it will be (re)set to a machine-dependent value. Valid values: ``""`` | ``"batch"`` | ``"dev_transfer"`` | ``"normal"`` | ``"regular"`` | ``"workq"`` + Tasks that get or create links to external model files are submitted to this queue, or QOS (QOS is Slurm's term for queue; it stands for "Quality of Service"). These links are needed to generate initial conditions (:term:`ICs`) and lateral boundary conditions (:term:`LBCs`) for the experiment. If this value is not set or is set to an empty string, it will be (re)set to a machine-dependent value. Valid values: ``""`` | ``"batch"`` | ``"dev_transfer"`` | ``"normal"`` | ``"regular"`` | ``"workq"`` + + .. COMMENT: Don't see these valid values in valid_param_vals anymore. ``PARTITION_FCST``: (Default: "") - This variable is only used with the Slurm job scheduler (i.e., if ``SCHED`` is set to "slurm"). The task that runs forecasts is submitted to this partition. If this variable is not set or is set to an empty string, it will be (re)set to a machine-dependent value. Valid values: ``""`` | ``"hera"`` | ``"normal"`` | ``"orion"`` | ``"sjet,vjet,kjet,xjet"`` | ``"workq"`` + This variable is only used with the Slurm job scheduler (i.e., when ``SCHED: "slurm"``). The task that runs forecasts is submitted to this partition. If this variable is not set or is set to an empty string, it will be (re)set to a machine-dependent value. Valid values: ``""`` | ``"hera"`` | ``"normal"`` | ``"orion"`` | ``"sjet"`` | ``"vjet"`` | ``"kjet"`` | ``"xjet"`` | ``"workq"`` -``CLUSTERS_FCST``: (Default: "") - This variable is only used with the Slurm job scheduler (i.e., if ``SCHED`` is set to "slurm"). The task that runs forecasts is submitted to this cluster. If this variable is not set or is set to an empty string, it will be (re)set to a machine-dependent value. +.. COMMENT: Don't see these valid values in valid_param_vals anymore. ``QUEUE_FCST``: (Default: "") The task that runs a forecast is submitted to this queue, or QOS (QOS is Slurm's term for queue; it stands for "Quality of Service"). If this variable is not set or set to an empty string, it will be (re)set to a machine-dependent value. Valid values: ``""`` | ``"batch"`` | ``"dev"`` | ``"normal"`` | ``"regular"`` | ``"workq"`` +.. COMMENT: Don't see these valid values in valid_param_vals anymore. + Parameters for Running Without a Workflow Manager -================================================= -These settings control run commands for platforms without a workflow manager. Values will be ignored unless ``WORKFLOW_MANAGER="none"``. +----------------------------------------------------- +These settings set run commands for platforms without a workflow manager. Values will be ignored unless ``WORKFLOW_MANAGER: "none"``. ``RUN_CMD_UTILS``: (Default: "mpirun -np 1") The run command for MPI-enabled pre-processing utilities (e.g., shave, orog, sfc_climo_gen). This can be left blank for smaller domains, in which case the executables will run without :term:`MPI`. Users may need to use a different command for launching an MPI-enabled executable depending on their machine and MPI installation. -``RUN_CMD_FCST``: (Default: "mpirun -np \${PE_MEMBER01}") - The run command for the model forecast step. This will be appended to the end of the variable definitions file (``var_defns.sh``). Changing the ``${PE_MEMBER01}`` variable is **not** recommended; it refers to the number of MPI tasks that the Weather Model will expect to run with. Running the Weather Model with a different number of MPI tasks than the workflow has been set up for can lead to segmentation faults and other errors. It is also important to escape the ``$`` character or use single quotes here so that ``PE_MEMBER01`` is not referenced until runtime, since it is not defined at the beginning of the workflow generation script. +``RUN_CMD_FCST``: (Default: "mpirun -np ${PE_MEMBER01}") + The run command for the model forecast step. This will be appended to the end of the variable definitions file (``var_defns.sh``). Changing the ``${PE_MEMBER01}`` variable is **not** recommended; it refers to the number of MPI tasks that the Weather Model will expect to run with. Running the Weather Model with a different number of MPI tasks than the workflow has been set up for can lead to segmentation faults and other errors. + + .. COMMENT: Is this no longer an issue?: + It is also important to escape the ``$`` character or use single quotes here so that ``PE_MEMBER01`` is not referenced until runtime, since it is not defined at the beginning of the workflow generation script. ``RUN_CMD_POST``: (Default: "mpirun -np 1") The run command for post-processing (via the :term:`UPP`). Can be left blank for smaller domains, in which case UPP will run without :term:`MPI`. +``SLURM_NATIVE_CMD``: (Default: "") + Allows an extra parameter to be passed to slurm via XML Native command. + +.. COMMENT: Should SLURM_NATIVE_CMD go in a different part of the platform: section? + + +METplus Parameters +---------------------- + +:ref:`METplus ` is a scientific verification framework that spans a wide range of temporal and spatial scales. Many of the METplus parameters are described below, but additional documentation for the METplus components is available on the `METplus website `__. + +``MODEL``: (Default: "") + A descriptive name of the user's choice for the model being verified. + +``MET_INSTALL_DIR``: (Default: "") + Path to top-level directory of MET installation. + +``METPLUS_PATH``: (Default: "") + Path to top-level directory of METplus installation. + +``MET_BIN_EXEC``: (Default: "bin") + Location where METplus executables are installed. + +.. COMMENT: MET_BIN_EXEC not in config.yaml... + +.. _METParamNote: + +.. note:: + Where a date field is required: + * ``YYYY`` refers to the 4-digit valid year + * ``MM`` refers to the 2-digit valid month + * ``DD`` refers to the 2-digit valid day of the month + * ``HH`` refers to the 2-digit valid hour of the day + * ``mm`` refers to the 2-digit valid minutes of the hour + * ``SS`` refers to the two-digit valid seconds of the hour + +``CCPA_OBS_DIR``: (Default: "") + User-specified location of top-level directory where CCPA hourly precipitation files used by METplus are located. This parameter needs to be set for both user-provided observations and for observations that are retrieved from the NOAA :term:`HPSS` (if the user has access) via the ``get_obs_ccpa_tn`` task. (This task is activated in the workflow by setting ``RUN_TASK_GET_OBS_CCPA: true``). + + METplus configuration files require the use of a predetermined directory structure and file names. If the CCPA files are user-provided, they need to follow the anticipated naming structure: ``{YYYYMMDD}/ccpa.t{HH}z.01h.hrap.conus.gb2``, where YYYYMMDD and HH are as described in the note :ref:`above `. When pulling observations from NOAA HPSS, the data retrieved will be placed in the ``CCPA_OBS_DIR`` directory. This path must be defind as ``//ccpa/proc``. METplus is configured to verify 01-, 03-, 06-, and 24-h accumulated precipitation using hourly CCPA files. + + .. note:: + There is a problem with the valid time in the metadata for files valid from 19 - 00 UTC (i.e., files under the "00" directory). The script to pull the CCPA data from the NOAA HPSS (``scripts/exregional_get_obs_ccpa.sh``) has an example of how to account for this and organize the data into a more intuitive format. When a fix is provided, it will be accounted for in the ``exregional_get_obs_ccpa.sh`` script. + +``MRMS_OBS_DIR``: (Default: "") + User-specified location of top-level directory where MRMS composite reflectivity files used by METplus are located. This parameter needs to be set for both user-provided observations and for observations that are retrieved from the NOAA :term:`HPSS` (if the user has access) via the ``get_obs_mrms_tn`` task (activated in the workflow by setting ``RUN_TASK_GET_OBS_MRMS: true``). When pulling observations directly from NOAA HPSS, the data retrieved will be placed in this directory. Please note, this path must be defind as ``//mrms/proc``. + + METplus configuration files require the use of a predetermined directory structure and file names. Therefore, if the MRMS files are user-provided, they need to follow the anticipated naming structure: ``{YYYYMMDD}/MergedReflectivityQCComposite_00.50_{YYYYMMDD}-{HH}{mm}{SS}.grib2``, where YYYYMMDD and {HH}{mm}{SS} are as described in the note :ref:`above `. + +.. note:: + METplus is configured to look for a MRMS composite reflectivity file for the valid time of the forecast being verified; since MRMS composite reflectivity files do not always exactly match the valid time, a script (within the main script that retrieves MRMS data from the NOAA HPSS) is used to identify and rename the MRMS composite reflectivity file to match the valid time of the forecast. The script to pull the MRMS data from the NOAA HPSS has an example of the expected file-naming structure: ``scripts/exregional_get_obs_mrms.sh``. This script calls the script used to identify the MRMS file closest to the valid time: ``ush/mrms_pull_topofhour.py``. + +``NDAS_OBS_DIR``: (Default: "") + User-specified location of the top-level directory where NDAS prepbufr files used by METplus are located. This parameter needs to be set for both user-provided observations and for observations that are retrieved from the NOAA :term:`HPSS` (if the user has access) via the ``get_obs_ndas_tn`` task (activated in the workflow by setting ``RUN_TASK_GET_OBS_NDAS: true``). When pulling observations directly from NOAA HPSS, the data retrieved will be placed in this directory. Please note, this path must be defined as ``//ndas/proc``. METplus is configured to verify near-surface variables hourly and upper-air variables at 00 and 12 UTC with NDAS prepbufr files. + + METplus configuration files require the use of predetermined file names. Therefore, if the NDAS files are user-provided, they need to follow the anticipated naming structure: ``prepbufr.ndas.{YYYYMMDDHH}``, where YYYYMMDDHH is as described in the note :ref:`above `. The script to pull the NDAS data from the NOAA HPSS (``scripts/exregional_get_obs_ndas.sh``) has an example of how to rename the NDAS data into a more intuitive format with the valid time listed in the file name. + +General Directory Parameters +------------------------------- +``DOMAIN_PREGEN_BASEDIR``: (Default: "") + The base directory containing pregenerated grid, orography, and surface climatology files. This is an alternative for setting ``GRID_DIR``, ``OROG_DIR``, and ``SFC_CLIMO_DIR`` individually. For the pregenerated grid specified by ``PREDEF_GRID_NAME``, these "fixed" files are located in: + + .. code-block:: console + + ${DOMAIN_PREGEN_BASEDIR}/${PREDEF_GRID_NAME} + + The workflow scripts will create a symlink in the experiment directory that will point to a subdirectory (having the name of the grid being used) under this directory. This variable should be set to a null string in this file, but it can be specified in the user-specified workflow configuration file set by ``EXPT_CONFIG_FN`` (usually ``config.yaml``). + +.. COMMENT: Clarify second paragraph above... + +.. _workflow: + +WORKFLOW Configuration Parameters +===================================== + +If non-default parameters are selected for the variables in this section, they should be added to the ``workflow:`` section of the ``config.yaml`` file. + +``WORKFLOW_ID``: (Default: "") + Unique ID for workflow run that will be set in ``setup.py``. + +.. COMMENT: But what does the workflow_id DO?!?! + .. _Cron: Cron-Associated Parameters -========================== +------------------------------ Cron is a job scheduler accessed through the command-line on UNIX-like operating systems. It is useful for automating tasks such as the ``rocotorun`` command, which launches each workflow task in the SRW App. Cron periodically checks a cron table (aka crontab) to see if any tasks are are ready to execute. If so, it runs them. -``USE_CRON_TO_RELAUNCH``: (Default: "FALSE") +``USE_CRON_TO_RELAUNCH``: (Default: false) Flag that determines whether or not a line is added to the user's cron table, which calls the experiment launch script every ``CRON_RELAUNCH_INTVL_MNTS`` minutes. -``CRON_RELAUNCH_INTVL_MNTS``: (Default: "03") +``CRON_RELAUNCH_INTVL_MNTS``: (Default: 3) The interval (in minutes) between successive calls of the experiment launch script by a cron job to (re)launch the experiment (so that the workflow for the experiment kicks off where it left off). This is used only if ``USE_CRON_TO_RELAUNCH`` is set to "TRUE". .. _DirParams: Directory Parameters -==================== +----------------------- + ``EXPT_BASEDIR``: (Default: "") - The full path to the base directory inside of which the experiment directory (``EXPT_SUBDIR``) will be created. If this is not specified or if it is set to an empty string, it will default to ``${HOMEdir}/../../expt_dirs``, where ``${HOMEdir}`` contains the full path to the ``ush`` directory. + The full path to the base directory in which the experiment directory (``EXPT_SUBDIR``) will be created. If this is not specified or if it is set to an empty string, it will default to ``${HOMEdir}/../expt_dirs``, where ``${HOMEdir}`` contains the full path to the ``ufs-srweather-app`` directory. ``EXPT_SUBDIR``: (Default: "") - A descriptive name of the user's choice for the experiment directory (*not* its full path). The full path to the experiment directory, which will be contained in the variable ``EXPTDIR``, will be: + The user-designated name of the experiment directory (*not* its full path). The full path to the experiment directory, which will be contained in the variable ``EXPTDIR``, will be: .. code-block:: console EXPTDIR="${EXPT_BASEDIR}/${EXPT_SUBDIR}" - This parameter cannot be left as a null string. + This parameter cannot be left as a null string. It must be set to a non-null value in the user-defined experiment configuration file (i.e., ``config.yaml``). -``EXEC_SUBDIR``: (Default: "bin") +``EXEC_SUBDIR``: (Default: "exec") The name of the subdirectory of ``ufs-srweather-app`` where executables are installed. +Pre-Processing File Separator Parameters +-------------------------------------------- + +``DOT_OR_USCORE``: (Default: "_") + This variable sets the separator character(s) to use in the names of the grid, mosaic, and orography fixed files. Ideally, the same separator should be used in the names of these fixed files as in the surface climatology fixed files. Valid values: ``"_"`` | ``"."`` + + .. COMMENT: It also says "Ideally, the same separator should be used in the names of these fixed files as the surface climatology fixed files (which always use a "." as the separator), i.e. ideally DOT_OR_USCORE should be set to "." " --> Does it have to be set to "_" in the SRW App? + + + #----------------------------------------------------------------------- + # + # Set the separator character(s) to use in the names of the grid, mosaic, + # and orography fixed files. + # + # Ideally, the same separator should be used in the names of these fixed + # files as the surface climatology fixed files (which always use a "." + # as the separator), i.e. ideally, DOT_OR_USCORE should be set to "." + # + #----------------------------------------------------------------------- + # + DOT_OR_USCORE: "_" + # + + + + + .. _NCOModeParms: NCO Mode Parameters -=================== +----------------------- + These variables apply only when using NCO mode (i.e., when ``RUN_ENVIR`` is set to "nco"). ``COMINgfs``: (Default: "/base/path/of/directory/containing/gfs/input/files") @@ -182,13 +314,9 @@ These variables apply only when using NCO mode (i.e., when ``RUN_ENVIR`` is set $PTMP/com/$NET/$envir/$RUN.$yyyymmdd/$hh -Pre-Processing File Separator Parameters -======================================== -``DOT_OR_USCORE``: (Default: "_") - This variable sets the separator character(s) to use in the names of the grid, mosaic, and orography fixed files. Ideally, the same separator should be used in the names of these fixed files as in the surface climatology fixed files. Valid values: ``"_"`` | ``"."`` - File Name Parameters -==================== +------------------------ + ``EXPT_CONFIG_FN``: (Default: "config.yaml") Name of the user-specified configuration file for the forecast experiment. @@ -240,6 +368,288 @@ File Name Parameters ``WFLOW_LAUNCH_LOG_FN``: (Default: "log.launch_FV3LAM_wflow") Name of the log file that contains the output from successive calls to the workflow launch script (``WFLOW_LAUNCH_SCRIPT_FN``). + + + +#***************************************** DELETE BELOW THIS LINE **************************************** + + + #----------------------------------------------------------------------- + # + # Set file names. Definitions: + # + # EXPT_CONFIG_FN: + # Name of the user-specified configuration file for the forecast experiment. + # + # CONSTANTS_FN: + # Name of the file containing definitions of various mathematical, physical, + # and SRW App contants. + # + # RGNL_GRID_NML_FN: + # Name of file containing the namelist settings for the code that generates + # a "ESGgrid" type of regional grid. + # + # FV3_NML_BASE_SUITE_FN: + # Name of Fortran namelist file containing the forecast model's base suite + # namelist, i.e. the portion of the namelist that is common to all physics + # suites. + # + # FV3_NML_YAML_CONFIG_FN: + # Name of YAML configuration file containing the forecast model's namelist + # settings for various physics suites. + # + # FV3_NML_BASE_ENS_FN: + # Name of Fortran namelist file containing the forecast model's base + # ensemble namelist, i.e. the the namelist file that is the starting point + # from which the namelist files for each of the enesemble members are + # generated. + # + # FV3_EXEC_FN: + # Name to use for the forecast model executable when it is copied from + # the directory in which it is created in the build step to the executables + # directory (EXECDIR; this is set during experiment generation). + # + # DIAG_TABLE_TMPL_FN: + # Name of a template file that specifies the output fields of the forecast + # model (ufs-weather-model: diag_table) followed by [dot_ccpp_phys_suite]. + # Its default value is the name of the file that the ufs weather model + # expects to read in. + # + # FIELD_TABLE_TMPL_FN: + # Name of a template file that specifies the tracers in IC/LBC files of the + # forecast model (ufs-weather-mode: field_table) followed by [dot_ccpp_phys_suite]. + # Its default value is the name of the file that the ufs weather model expects + # to read in. + # + # MODEL_CONFIG_TMPL_FN: + # Name of a template file that contains settings and configurations for the + # NUOPC/ESMF main component (ufs-weather-model: model_config). Its default + # value is the name of the file that the ufs weather model expects to read in. + # + # NEMS_CONFIG_TMPL_FN: + # Name of a template file that contains information about the various NEMS + # components and their run sequence (ufs-weather-model: nems.configure). + # Its default value is the name of the file that the ufs weather model expects + # to read in. + # + # FCST_MODEL: + # Name of forecast model (default=ufs-weather-model) + # + # WFLOW_XML_FN: + # Name of the rocoto workflow XML file that the experiment generation + # script creates and that defines the workflow for the experiment. + # + # GLOBAL_VAR_DEFNS_FN: + # Name of file (a shell script) containing the defintions of the primary + # experiment variables (parameters) defined in this default configuration + # script and in the user-specified configuration as well as secondary + # experiment variables generated by the experiment generation script. + # This file is sourced by many scripts (e.g. the J-job scripts corresponding + # to each workflow task) in order to make all the experiment variables + # available in those scripts. + # + # EXTRN_MDL_VAR_DEFNS_FN: + # Name of file (a shell script) containing the defintions of variables + # associated with the external model from which ICs or LBCs are generated. This + # file is created by the GET_EXTRN_*_TN task because the values of the variables + # it contains are not known before this task runs. The file is then sourced by + # the MAKE_ICS_TN and MAKE_LBCS_TN tasks. + # + # WFLOW_LAUNCH_SCRIPT_FN: + # Name of the script that can be used to (re)launch the experiment's rocoto + # workflow. + # + # WFLOW_LAUNCH_LOG_FN: + # Name of the log file that contains the output from successive calls to + # the workflow launch script (WFLOW_LAUNCH_SCRIPT_FN). + # + #----------------------------------------------------------------------- + # + EXPT_CONFIG_FN: "config.yaml" + CONSTANTS_FN: "constants.sh" + + RGNL_GRID_NML_FN: "regional_grid.nml" + + FV3_NML_BASE_SUITE_FN: "input.nml.FV3" + FV3_NML_YAML_CONFIG_FN: "FV3.input.yml" + FV3_NML_BASE_ENS_FN: "input.nml.base_ens" + FV3_EXEC_FN: "ufs_model" + + DATA_TABLE_TMPL_FN: "" + DIAG_TABLE_TMPL_FN: "" + FIELD_TABLE_TMPL_FN: "" + MODEL_CONFIG_TMPL_FN: "" + NEMS_CONFIG_TMPL_FN: "" + + FCST_MODEL: "ufs-weather-model" + WFLOW_XML_FN: "FV3LAM_wflow.xml" + GLOBAL_VAR_DEFNS_FN: "var_defns.sh" + EXTRN_MDL_VAR_DEFNS_FN: "extrn_mdl_var_defns" + WFLOW_LAUNCH_SCRIPT_FN: "launch_FV3LAM_wflow.sh" + WFLOW_LAUNCH_LOG_FN: "log.launch_FV3LAM_wflow" + # + #----------------------------------------------------------------------- + # + # Set CCPP-associated parameters. Definitions: + # + # CCPP_PHYS_SUITE: + # The physics suite that will run using CCPP (Common Community Physics + # Package). The choice of physics suite determines the forecast model's + # namelist file, the diagnostics table file, the field table file, and + # the XML physics suite definition file that are staged in the experiment + # directory or the cycle directories under it. + # + #----------------------------------------------------------------------- + # + CCPP_PHYS_SUITE: "FV3_GFS_v16" + # + #----------------------------------------------------------------------- + # + # Set GRID_GEN_METHOD. This variable specifies the method to use to + # generate a regional grid in the horizontal. The values that it can + # take on are: + # + # * "GFDLgrid": + # This setting will generate a regional grid by first generating a + # "parent" global cubed-sphere grid and then taking a portion of tile + # 6 of that global grid -- referred to in the grid generation scripts + # as "tile 7" even though it doesn't correspond to a complete tile -- + # and using it as the regional grid. Note that the forecast is run on + # only on the regional grid (i.e. tile 7, not tiles 1 through 6). + # + # * "ESGgrid": + # This will generate a regional grid using the map projection developed + # by Jim Purser of EMC. + # + # Note that: + # + # 1) If the experiment is using one of the predefined grids (i.e. if + # PREDEF_GRID_NAME is set to the name of one of the valid predefined + # grids), then GRID_GEN_METHOD will be reset to the value of + # GRID_GEN_METHOD for that grid. This will happen regardless of + # whether or not GRID_GEN_METHOD is assigned a value in the user- + # specified experiment configuration file, i.e. any value it may be + # assigned in the experiment configuration file will be overwritten. + # + # 2) If the experiment is not using one of the predefined grids (i.e. if + # PREDEF_GRID_NAME is set to a null string), then GRID_GEN_METHOD must + # be set in the experiment configuration file. Otherwise, it will + # remain set to a null string, and the experiment generation will + # fail because the generation scripts check to ensure that it is set + # to a non-empty string before creating the experiment directory. + # + #----------------------------------------------------------------------- + # + GRID_GEN_METHOD: "" + # + #----------------------------------------------------------------------- + # + # Set forecast parameters. Definitions: + # + # DATE_FIRST_CYCL: + # Starting date of the first forecast in the set of forecasts to run. + # Format is "YYYYMMDD". Note that this does not include the hour-of-day. + # + # DATE_LAST_CYCL: + # Starting date of the last forecast in the set of forecasts to run. + # Format is "YYYYMMDD". Note that this does not include the hour-of-day. + # + # CYCL_HRS: + # An array containing the hours of the day at which to launch forecasts. + # Forecasts are launched at these hours on each day from DATE_FIRST_CYCL + # to DATE_LAST_CYCL, inclusive. Each element of this array must be a + # two-digit string representing an integer that is less than or equal to + # 23, e.g. "00", "03", "12", "23". + # + # INCR_CYCL_FREQ: + # Increment in hours for Cycle Frequency (cycl_freq). + # Default is 24, which means cycle_freq=24:00:00 + # + # FCST_LEN_HRS: + # The length of each forecast, in integer hours. + # + #----------------------------------------------------------------------- + # + DATE_FIRST_CYCL: "YYYYMMDD" + DATE_LAST_CYCL: "YYYYMMDD" + CYCL_HRS: [ "HH1", "HH2" ] + INCR_CYCL_FREQ: 24 + FCST_LEN_HRS: 24 + # + #----------------------------------------------------------------------- + # + # Set PREEXISTING_DIR_METHOD. This variable determines the method to use + # use to deal with preexisting directories [e.g ones generated by previous + # calls to the experiment generation script using the same experiment name + # (EXPT_SUBDIR) as the current experiment]. This variable must be set to + # one of "delete", "rename", and "quit". The resulting behavior for each + # of these values is as follows: + # + # * "delete": + # The preexisting directory is deleted and a new directory (having the + # same name as the original preexisting directory) is created. + # + # * "rename": + # The preexisting directory is renamed and a new directory (having the + # same name as the original preexisting directory) is created. The new + # name of the preexisting directory consists of its original name and + # the suffix "_oldNNN", where NNN is a 3-digit integer chosen to make + # the new name unique. + # + # * "quit": + # The preexisting directory is left unchanged, but execution of the + # currently running script is terminated. In this case, the preexisting + # directory must be dealt with manually before rerunning the script. + # + #----------------------------------------------------------------------- + # + PREEXISTING_DIR_METHOD: "delete" + # + #----------------------------------------------------------------------- + # + # Set flags for more detailed messages. Defintitions: + # + # VERBOSE: + # This is a flag that determines whether or not the experiment generation + # and workflow task scripts tend to print out more informational messages. + # + # DEBUG: + # This is a flag that determines whether or not very detailed debugging + # messages are printed to out. Note that if DEBUG is set to TRUE, then + # VERBOSE will also get reset to TRUE if it isn't already. + # + #----------------------------------------------------------------------- + # + VERBOSE: true + DEBUG: false + # + #----------------------------------------------------------------------- + # + # COMPILER: + # Type of compiler invoked during the build step. + # + #------------------------------------------------------------------------ + # + COMPILER: "intel" + + #is this the right place? + GET_OBS: "get_obs" + VX_TN: "run_vx" + VX_ENSGRID_TN: "run_ensgridvx" + VX_ENSGRID_PROB_REFC_TN: "run_ensgridvx_prob_refc" + MAXTRIES_VX_ENSGRID_PROB_REFC: 1 + + + + + + +``COMPILER``: (Default: "intel") + Type of compiler invoked during the build step. Currently, this must be set manually (i.e., it is not inherited from the build system in the ``ufs-srweather-app`` directory). Valid values: ``"intel"`` | ``"gnu"`` + + + + Forecast Parameters =================== ``DATE_FIRST_CYCL``: (Default: "YYYYMMDD") @@ -264,67 +674,13 @@ Model Configuration Parameters Time step for the outermost atmospheric model loop in seconds. This corresponds to the frequency at which the physics routines and the top level dynamics routine are called. (Note that one call to the top-level dynamics routine results in multiple calls to the horizontal dynamics, tracer transport, and vertical dynamics routines; see the `FV3 dycore scientific documentation `__ for details.) Must be set. Takes an integer value. In the SRW App, a default value for ``DT_ATMOS`` appears in the ``set_predef_grid_params.py`` script, but a different value can be set in ``config.yaml``. ``RESTART_INTERVAL``: (Default: "0") - Frequency of the output restart files in hours. Using the default interval ("0"), restart files are produced at the end of a forecast run. When ``RESTART_INTERVAL="1"``, restart files are produced every hour with the prefix "YYYYMMDD.HHmmSS." in the ``RESTART`` directory. + Frequency of the output restart files in hours. Using the default interval ("0"), restart files are produced at the end of a forecast run. When ``RESTART_INTERVAL: "1"``, restart files are produced every hour with the prefix "YYYYMMDD.HHmmSS." in the ``RESTART`` directory. .. _InlinePost: -``WRITE_DOPOST``: (Default: "FALSE") - Flag that determines whether to use the INLINE POST option. If TRUE, the ``WRITE_DOPOST`` flag in the ``model_configure`` file will be set to "TRUE", and the post-processing tasks get called from within the weather model so that the post-processed files (in :term:`grib2` format) are output by the Weather Model at the same time that it outputs the ``dynf###.nc`` and ``phyf###.nc`` files. Setting ``WRITE_DOPOST="TRUE"`` turns off the separate ``run_post`` task (i.e., ``RUN_TASK_RUN_POST`` is set to "FALSE") in ``setup.py``. - -METplus Parameters -===================== - -:ref:`METplus ` is a scientific verification framework that spans a wide range of temporal and spatial scales. Many of the METplus parameters are described below, but additional documentation for the METplus components is available on the `METplus website `__. - -``MODEL``: (Default: "") - A descriptive name of the user's choice for the model being verified. - -``MET_INSTALL_DIR``: (Default: "") - Path to top-level directory of MET installation. - -``METPLUS_PATH``: (Default: "") - Path to top-level directory of METplus installation. - -``MET_BIN_EXEC``: (Default: "bin") - Location where METplus executables are installed. - -.. _METParamNote: +``WRITE_DOPOST``: (Default: false) + Flag that determines whether to use the INLINE POST option. If TRUE, the ``WRITE_DOPOST`` flag in the ``model_configure`` file will be set to "TRUE", and the post-processing tasks get called from within the weather model so that the post-processed files (in :term:`grib2` format) are output by the Weather Model at the same time that it outputs the ``dynf###.nc`` and ``phyf###.nc`` files. Setting ``WRITE_DOPOST: true`` turns off the separate ``run_post`` task (i.e., ``RUN_TASK_RUN_POST`` is set to false) in ``setup.py``. -.. note:: - Where a date field is required: - * ``YYYY`` refers to the 4-digit valid year - * ``MM`` refers to the 2-digit valid month - * ``DD`` refers to the 2-digit valid day of the month - * ``HH`` refers to the 2-digit valid hour of the day - * ``mm`` refers to the 2-digit valid minutes of the hour - * ``SS`` refers to the two-digit valid seconds of the hour - -``CCPA_OBS_DIR``: (Default: "") - User-specified location of top-level directory where CCPA hourly precipitation files used by METplus are located. This parameter needs to be set for both user-provided observations and for observations that are retrieved from the NOAA :term:`HPSS` (if the user has access) via the ``get_obs_ccpa_tn`` task. (This task is activated in the workflow by setting ``RUN_TASK_GET_OBS_CCPA="TRUE"``). - - METplus configuration files require the use of a predetermined directory structure and file names. If the CCPA files are user-provided, they need to follow the anticipated naming structure: ``{YYYYMMDD}/ccpa.t{HH}z.01h.hrap.conus.gb2``, where YYYYMMDD and HH are as described in the note :ref:`above `. When pulling observations from NOAA HPSS, the data retrieved will be placed in the ``CCPA_OBS_DIR`` directory. This path must be defind as ``//ccpa/proc``. METplus is configured to verify 01-, 03-, 06-, and 24-h accumulated precipitation using hourly CCPA files. - - .. note:: - There is a problem with the valid time in the metadata for files valid from 19 - 00 UTC (i.e., files under the "00" directory). The script to pull the CCPA data from the NOAA HPSS (``regional_workflow/scripts/exregional_get_ccpa_files.sh``) has an example of how to account for this and organize the data into a more intuitive format. When a fix is provided, it will be accounted for in the ``exregional_get_ccpa_files.sh`` script. - -.. COMMENT: Find file & rm regional_workflow ref - -``MRMS_OBS_DIR``: (Default: "") - User-specified location of top-level directory where MRMS composite reflectivity files used by METplus are located. This parameter needs to be set for both user-provided observations and for observations that are retrieved from the NOAA :term:`HPSS` (if the user has access) via the ``get_obs_mrms_tn`` task (activated in the workflow by setting ``RUN_TASK_GET_OBS_MRMS="TRUE"``). When pulling observations directly from NOAA HPSS, the data retrieved will be placed in this directory. Please note, this path must be defind as ``//mrms/proc``. - - METplus configuration files require the use of a predetermined directory structure and file names. Therefore, if the MRMS files are user-provided, they need to follow the anticipated naming structure: ``{YYYYMMDD}/MergedReflectivityQCComposite_00.50_{YYYYMMDD}-{HH}{mm}{SS}.grib2``, where YYYYMMDD and {HH}{mm}{SS} are as described in the note :ref:`above `. - -.. note:: - METplus is configured to look for a MRMS composite reflectivity file for the valid time of the forecast being verified; since MRMS composite reflectivity files do not always exactly match the valid time, a script (within the main script that retrieves MRMS data from the NOAA HPSS) is used to identify and rename the MRMS composite reflectivity file to match the valid time of the forecast. The script to pull the MRMS data from the NOAA HPSS has an example of the expected file-naming structure: ``regional_workflow/scripts/exregional_get_mrms_files.sh``. This script calls the script used to identify the MRMS file closest to the valid time: ``ush/mrms_pull_topofhour.py``. - -.. COMMENT: Find file & rm regional_workflow ref - -``NDAS_OBS_DIR``: (Default: "") - User-specified location of top-level directory where NDAS prepbufr files used by METplus are located. This parameter needs to be set for both user-provided observations and for observations that are retrieved from the NOAA :term:`HPSS` (if the user has access) via the ``get_obs_ndas_tn`` task (activated in the workflow by setting ``RUN_TASK_GET_OBS_NDAS="TRUE"``). When pulling observations directly from NOAA HPSS, the data retrieved will be placed in this directory. Please note, this path must be defined as ``//ndas/proc``. METplus is configured to verify near-surface variables hourly and upper-air variables at 00 and 12 UTC with NDAS prepbufr files. - - METplus configuration files require the use of predetermined file names. Therefore, if the NDAS files are user-provided, they need to follow the anticipated naming structure: ``prepbufr.ndas.{YYYYMMDDHH}``, where YYYYMMDD and HH are as described in the note :ref:`above `. The script to pull the NDAS data from the NOAA HPSS (``regional_workflow/scripts/exregional_get_ndas_files.sh``) has an example of how to rename the NDAS data into a more intuitive format with the valid time listed in the file name. - -.. COMMENT: Find file & rm regional_workflow ref Initial and Lateral Boundary Condition Generation Parameters ============================================================ @@ -338,18 +694,18 @@ Initial and Lateral Boundary Condition Generation Parameters The interval (in integer hours) at which LBC files will be generated. This is also referred to as the *boundary specification interval*. Note that the model selected in ``EXTRN_MDL_NAME_LBCS`` must have data available at a frequency greater than or equal to that implied by ``LBC_SPEC_INTVL_HRS``. For example, if ``LBC_SPEC_INTVL_HRS`` is set to "6", then the model must have data available at least every 6 hours. It is up to the user to ensure that this is the case. ``EXTRN_MDL_ICS_OFFSET_HRS``: (Default: "0") - Users may wish to start a forecast using forecast data from a previous cycle of an external model. This variable indicates how many hours earlier the external model started than the FV3 forecast configured here. For example, if the forecast should start from a 6-hour forecast of the GFS, then ``EXTRN_MDL_ICS_OFFSET_HRS="6"``. + Users may wish to start a forecast using forecast data from a previous cycle of an external model. This variable indicates how many hours earlier the external model started than the FV3 forecast configured here. For example, if the forecast should start from a 6-hour forecast of the GFS, then ``EXTRN_MDL_ICS_OFFSET_HRS: "6"``. ``EXTRN_MDL_LBCS_OFFSET_HRS``: (Default: "") - Users may wish to use lateral boundary conditions from a forecast that was started earlier than the start of the forecast configured here. This variable indicates how many hours earlier the external model started than the FV3 forecast configured here. For example, if the forecast should use lateral boundary conditions from the GFS started 6 hours earlier, then ``EXTRN_MDL_LBCS_OFFSET_HRS="6"``. Note: the default value is model-dependent and is set in ``set_extrn_mdl_params.sh``. + Users may wish to use lateral boundary conditions from a forecast that was started earlier than the start of the forecast configured here. This variable indicates how many hours earlier the external model started than the FV3 forecast configured here. For example, if the forecast should use lateral boundary conditions from the GFS started 6 hours earlier, then ``EXTRN_MDL_LBCS_OFFSET_HRS: "6"``. Note: the default value is model-dependent and is set in ``set_extrn_mdl_params.sh``. .. COMMENT: Find file & confirm file extension ``FV3GFS_FILE_FMT_ICS``: (Default: "nemsio") - If using the FV3GFS model as the source of the :term:`ICs` (i.e., if ``EXTRN_MDL_NAME_ICS="FV3GFS"``), this variable specifies the format of the model files to use when generating the ICs. Valid values: ``"nemsio"`` | ``"grib2"`` | ``"netcdf"`` + If using the FV3GFS model as the source of the :term:`ICs` (i.e., if ``EXTRN_MDL_NAME_ICS: "FV3GFS"``), this variable specifies the format of the model files to use when generating the ICs. Valid values: ``"nemsio"`` | ``"grib2"`` | ``"netcdf"`` ``FV3GFS_FILE_FMT_LBCS``: (Default: "nemsio") - If using the FV3GFS model as the source of the :term:`LBCs` (i.e., if ``EXTRN_MDL_NAME_ICS="FV3GFS"``), this variable specifies the format of the model files to use when generating the LBCs. Valid values: ``"nemsio"`` | ``"grib2"`` | ``"netcdf"`` + If using the FV3GFS model as the source of the :term:`LBCs` (i.e., if ``EXTRN_MDL_NAME_LBCS: "FV3GFS"``), this variable specifies the format of the model files to use when generating the LBCs. Valid values: ``"nemsio"`` | ``"grib2"`` | ``"netcdf"`` @@ -368,21 +724,21 @@ Base Directories for External Model Files User-Staged External Model Directory and File Parameters ======================================================== -``USE_USER_STAGED_EXTRN_FILES``: (Default: "FALSE") +``USE_USER_STAGED_EXTRN_FILES``: (Default: false) Flag that determines whether the workflow will look for the external model files needed for generating :term:`ICs` and :term:`LBCs` in user-specified directories (rather than fetching them from mass storage like NOAA :term:`HPSS`). -``EXTRN_MDL_SOURCE_BASEDIR_ICS``: (Default: "/base/dir/containing/user/staged/extrn/mdl/files/for/ICs") - Directory containing external model files for generating ICs. If ``USE_USER_STAGED_EXTRN_FILES`` is set to "TRUE", the workflow looks within this directory for a subdirectory named "YYYYMMDDHH", which contains the external model files specified by the array ``EXTRN_MDL_FILES_ICS``. This "YYYYMMDDHH" subdirectory corresponds to the start date and cycle hour of the forecast (see :ref:`above `). These files will be used to generate the :term:`ICs` on the native FV3-LAM grid. This variable is not used if ``USE_USER_STAGED_EXTRN_FILES`` is set to "FALSE". +``EXTRN_MDL_SOURCE_BASEDIR_ICS``: (Default: "") + Directory containing external model files for generating ICs. If ``USE_USER_STAGED_EXTRN_FILES`` is set to "TRUE", the workflow looks within this directory for a subdirectory named "YYYYMMDDHH", which contains the external model files specified by the array ``EXTRN_MDL_FILES_ICS``. This "YYYYMMDDHH" subdirectory corresponds to the start date and cycle hour of the forecast (see :ref:`above `). These files will be used to generate the :term:`ICs` on the native FV3-LAM grid. This variable is not used if ``USE_USER_STAGED_EXTRN_FILES`` is set to false. ``EXTRN_MDL_FILES_ICS``: (Default: "ICS_file1" "ICS_file2" "...") - Array containing the file names to search for in the ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` directory. This variable is not used if ``USE_USER_STAGED_EXTRN_FILES`` is set to "FALSE". + Array containing the file names to search for in the ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` directory. This variable is not used if ``USE_USER_STAGED_EXTRN_FILES`` is set to false. -``EXTRN_MDL_SOURCE_BASEDIR_LBCS``: (Default: "/base/dir/containing/user/staged/extrn/mdl/files/for/ICs") +``EXTRN_MDL_SOURCE_BASEDIR_LBCS``: (Default: "") Analogous to ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` but for :term:`LBCs` instead of :term:`ICs`. - Directory containing external model files for generating LBCs. If ``USE_USER_STAGED_EXTRN_FILES`` is set to "TRUE", the workflow looks within this directory for a subdirectory named "YYYYMMDDHH", which contains the external model files specified by the array ``EXTRN_MDL_FILES_LBCS``. This "YYYYMMDDHH" subdirectory corresponds to the start date and cycle hour of the forecast (see :ref:`above `). These files will be used to generate the :term:`LBCs` on the native FV3-LAM grid. This variable is not used if ``USE_USER_STAGED_EXTRN_FILES`` is set to "FALSE". + Directory containing external model files for generating LBCs. If ``USE_USER_STAGED_EXTRN_FILES`` is set to "TRUE", the workflow looks within this directory for a subdirectory named "YYYYMMDDHH", which contains the external model files specified by the array ``EXTRN_MDL_FILES_LBCS``. This "YYYYMMDDHH" subdirectory corresponds to the start date and cycle hour of the forecast (see :ref:`above `). These files will be used to generate the :term:`LBCs` on the native FV3-LAM grid. This variable is not used if ``USE_USER_STAGED_EXTRN_FILES`` is set to false. -``EXTRN_MDL_FILES_LBCS``: (Default: " "LBCS_file1" "LBCS_file2" "...") - Analogous to ``EXTRN_MDL_FILES_ICS`` but for :term:`LBCs` instead of :term:`ICs`. Array containing the file names to search for in the ``EXTRN_MDL_SOURCE_BASEDIR_LBCS`` directory. This variable is not used if ``USE_USER_STAGED_EXTRN_FILES`` is set to "FALSE". +``EXTRN_MDL_FILES_LBCS``: (Default: "") + Analogous to ``EXTRN_MDL_FILES_ICS`` but for :term:`LBCs` instead of :term:`ICs`. Array containing the file names to search for in the ``EXTRN_MDL_SOURCE_BASEDIR_LBCS`` directory. This variable is not used if ``USE_USER_STAGED_EXTRN_FILES`` is set to false. NOMADS Parameters @@ -390,7 +746,7 @@ NOMADS Parameters Set parameters associated with NOMADS online data. -``NOMADS``: (Default: "FALSE") +``NOMADS``: (Default: false) Flag controlling whether to use NOMADS online data. ``NOMADS_file_type``: (Default: "nemsio") @@ -422,13 +778,13 @@ Stochastic Physics Parameters For the most updated and detailed documentation of these parameters, see the `UFS Stochastic Physics Documentation `__. -``NEW_LSCALE``: (Default: "TRUE") +``NEW_LSCALE``: (Default: true) Use correct formula for converting a spatial legnth scale into spectral space. Specific Humidity (SHUM) Perturbation Parameters --------------------------------------------------- -``DO_SHUM``: (Default: "FALSE") +``DO_SHUM``: (Default: false) Flag to turn Specific Humidity (SHUM) perturbations on or off. SHUM perturbations multiply the low-level specific humidity by a small random number at each time-step. The SHUM scheme attempts to address missing physics phenomena (e.g., cold pools, gust fronts) most active in convective regions. ``ISEED_SHUM``: (Default: "2") @@ -453,7 +809,7 @@ Stochastically Perturbed Physics Tendencies (SPPT) Parameters SPPT perturbs full physics tendencies *after* the call to the physics suite, unlike :ref:`SPP ` (below), which perturbs specific tuning parameters within a physics scheme. -``DO_SPPT``: (Default: "FALSE") +``DO_SPPT``: (Default: false) Flag to turn Stochastically Perturbed Physics Tendencies (SPPT) on or off. SPPT multiplies the physics tendencies by a random number between 0 and 2 before updating the model state. This addresses error in the physics parameterizations (either missing physics or unresolved subgrid processes). It is most active in the boundary layer and convective regions. ``ISEED_SPPT``: (Default: "1") @@ -477,13 +833,13 @@ SPPT perturbs full physics tendencies *after* the call to the physics suite, unl ``SPPT_SFCLIMIT``: (Default: "TRUE") When "TRUE", tapers the SPPT perturbations to zero at the model's lowest level, which reduces model crashes. -``USE_ZMTNBLCK``: (Default: "FALSE") +``USE_ZMTNBLCK``: (Default: false) When "TRUE", do not apply perturbations below the dividing streamline that is diagnosed by the gravity wave drag, mountain blocking scheme Stochastic Kinetic Energy Backscatter (SKEB) Parameters ---------------------------------------------------------- -``DO_SKEB``: (Default: "FALSE") +``DO_SKEB``: (Default: false) Flag to turn Stochastic Kinetic Energy Backscatter (SKEB) on or off. SKEB adds wind perturbations to the model state. Perturbations are random in space/time, but amplitude is determined by a smoothed dissipation estimate provided by the :term:`dynamical core`. SKEB addresses errors in the dynamics more active in the mid-latitudes. ``ISEED_SKEB``: (Default: "3") @@ -515,12 +871,12 @@ Stochastic Kinetic Energy Backscatter (SKEB) Parameters Parameters for Stochastically Perturbed Parameterizations (SPP) ------------------------------------------------------------------ -SPP perturbs specific tuning parameters within a physics :term:`parameterization ` (unlike :ref:`SPPT `, which multiplies overall physics tendencies by a random perturbation field *after* the call to the physics suite). Each SPP option is an array, applicable (in order) to the :term:`RAP`/:term:`HRRR`-based parameterization listed in ``SPP_VAR_LIST``. Enter each value of the array in ``config.yaml`` as shown below without commas or single quotes (e.g., ``SPP_VAR_LIST=( "pbl" "sfc" "mp" "rad" "gwd"`` ). Both commas and single quotes will be added by Jinja when creating the namelist. +SPP perturbs specific tuning parameters within a physics :term:`parameterization ` (unlike :ref:`SPPT `, which multiplies overall physics tendencies by a random perturbation field *after* the call to the physics suite). Each SPP option is an array, applicable (in order) to the :term:`RAP`/:term:`HRRR`-based parameterization listed in ``SPP_VAR_LIST``. Enter each value of the array in ``config.yaml`` as shown below without commas or single quotes (e.g., ``SPP_VAR_LIST: [ "pbl" "sfc" "mp" "rad" "gwd" ]`` ). Both commas and single quotes will be added by Jinja when creating the namelist. .. note:: SPP is currently only available for specific physics schemes used in the RAP/HRRR physics suite. Users need to be aware of which :term:`SDF` is chosen when turning this option on. Among the supported physics suites, the full set of parameterizations can only be used with the ``FV3_HRRR`` option for ``CCPP_PHYS_SUITE``. -``DO_SPP``: (Default: "false") +``DO_SPP``: (Default: false) Flag to turn SPP on or off. SPP perturbs parameters or variables with unknown or uncertain magnitudes within the physics code based on ranges provided by physics experts. ``ISEED_SPP``: (Default: ( "4" "4" "4" "4" "4" ) ) @@ -555,7 +911,7 @@ Land surface perturbations can be applied to land model parameters and land mode The parameters below turn on SPP in Noah or RUC LSM (support for Noah MP is in progress). Please be aware of the :term:`SDF` that you choose if you wish to turn on Land Surface Model (LSM) SPP. SPP in LSM schemes is handled in the ``&nam_sfcperts`` namelist block instead of in ``&nam_sppperts``, where all other SPP is implemented. The default perturbation frequency is determined by the ``fhcyc`` namelist entry. Since that parameter is set to zero in the SRW App, use ``LSM_SPP_EACH_STEP`` to perturb every time step. -``DO_LSM_SPP``: (Default: "false") +``DO_LSM_SPP``: (Default: false) Turns on Land Surface Model (LSM) Stochastic Physics Parameterizations (SPP). When "TRUE", sets ``lndp_type=2``, which applies land perturbations to the selected paramaters using a newer scheme designed for data assimilation (DA) ensemble spread. LSM SPP perturbs uncertain land surface fields ("smc" "vgf" "alb" "sal" "emi" "zol" "stc") based on recommendations from physics experts. ``LSM_SPP_TSCALE``: (Default: ( ( "21600" "21600" "21600" "21600" "21600" "21600" "21600" ) ) ) @@ -643,7 +999,7 @@ Grid Generation Parameters ESGgrid Settings ------------------- -The following parameters must be set if using the "ESGgrid" method to generate a regional grid (i.e., when ``GRID_GEN_METHOD="ESGgrid"``). +The following parameters must be set if using the "ESGgrid" method to generate a regional grid (i.e., when ``GRID_GEN_METHOD: "ESGgrid"``). ``ESGgrid_LON_CTR``: (Default: "") The longitude of the center of the grid (in degrees). @@ -677,7 +1033,7 @@ The following parameters must be set if using the "ESGgrid" method to generate a GFDLgrid Settings --------------------- -The following parameters must be set if using the "GFDLgrid" method to generate a regional grid (i.e., when ``GRID_GEN_METHOD="GFDLgrid"``). Note that the regional grid is defined with respect to a "parent" global cubed-sphere grid. Thus, all the parameters for a global cubed-sphere grid must be specified even though the model equations are integrated only on the regional grid. Tile 6 has arbitrarily been chosen as the tile to use to orient the global parent grid on the sphere (Earth). For convenience, the regional grid is denoted as "tile 7" even though it is embedded within tile 6 (i.e., it doesn't extend beyond the boundary of tile 6). Its exact location within tile 6 is determined by specifying the starting and ending i- and j-indices of the regional grid on tile 6, where ``i`` is the grid index in the x direction and ``j`` is the grid index in the y direction. All of this information is set in the variables below. +The following parameters must be set if using the "GFDLgrid" method to generate a regional grid (i.e., when ``GRID_GEN_METHOD: "GFDLgrid"``). Note that the regional grid is defined with respect to a "parent" global cubed-sphere grid. Thus, all the parameters for a global cubed-sphere grid must be specified even though the model equations are integrated only on the regional grid. Tile 6 has arbitrarily been chosen as the tile to use to orient the global parent grid on the sphere (Earth). For convenience, the regional grid is denoted as "tile 7" even though it is embedded within tile 6 (i.e., it doesn't extend beyond the boundary of tile 6). Its exact location within tile 6 is determined by specifying the starting and ending i- and j-indices of the regional grid on tile 6, where ``i`` is the grid index in the x direction and ``j`` is the grid index in the y direction. All of this information is set in the variables below. ``GFDLgrid_LON_T6_CTR``: (Default: "") Longitude of the center of tile 6 (in degrees). @@ -688,7 +1044,7 @@ The following parameters must be set if using the "GFDLgrid" method to generate ``GFDLgrid_NUM_CELLS``: (Default: "") Number of grid cells in either of the two horizontal directions (x and y) on each of the six tiles of the parent global cubed-sphere grid. Valid values: ``"48"`` | ``"96"`` | ``"192"`` | ``"384"`` | ``"768"`` | ``"1152"`` | ``"3072"`` - To give an idea of what these values translate to in terms of grid cell size in kilometers, we list below the approximate grid cell size on a uniform global grid having the specified value of ``GFDLgrid_NUM_CELLS``, where by "uniform" we mean with Schmidt stretch factor ``GFDLgrid_STRETCH_FAC="1"`` (although in regional applications ``GFDLgrid_STRETCH_FAC`` will typically be set to a value greater than ``"1"`` to obtain a smaller grid size on tile 6): + To give an idea of what these values translate to in terms of grid cell size in kilometers, we list below the approximate grid cell size on a uniform global grid having the specified value of ``GFDLgrid_NUM_CELLS``, where by "uniform" we mean with Schmidt stretch factor ``GFDLgrid_STRETCH_FAC: "1"`` (although in regional applications ``GFDLgrid_STRETCH_FAC`` will typically be set to a value greater than ``"1"`` to obtain a smaller grid size on tile 6): +---------------------+--------------------+ | GFDLgrid_NUM_CELLS | typical cell size | @@ -730,7 +1086,7 @@ The following parameters must be set if using the "GFDLgrid" method to generate j-index on tile 6 at which the regional grid (tile 7) ends. ``GFDLgrid_USE_NUM_CELLS_IN_FILENAMES``: (Default: "") - Flag that determines the file naming convention to use for grid, orography, and surface climatology files (or, if using pregenerated files, the naming convention that was used to name these files). These files usually start with the string ``"C${RES}_"``, where ``RES`` is an integer. In the global forecast model, ``RES`` is the number of points in each of the two horizontal directions (x and y) on each tile of the global grid (defined here as ``GFDLgrid_NUM_CELLS``). If this flag is set to "TRUE", ``RES`` will be set to ``GFDLgrid_NUM_CELLS`` just as in the global forecast model. If it is set to "FALSE", we calculate (in the grid generation task) an "equivalent global uniform cubed-sphere resolution" -- call it ``RES_EQUIV`` -- and then set ``RES`` equal to it. ``RES_EQUIV`` is the number of grid points in each of the x and y directions on each tile that a global UNIFORM (i.e., stretch factor of 1) cubed-sphere grid would need to have in order to have the same average grid size as the regional grid. This is a more useful indicator of the grid size because it takes into account the effects of ``GFDLgrid_NUM_CELLS``, ``GFDLgrid_STRETCH_FAC``, and ``GFDLgrid_REFINE_RATIO`` in determining the regional grid's typical grid size, whereas simply setting ``RES`` to ``GFDLgrid_NUM_CELLS`` doesn't take into account the effects of ``GFDLgrid_STRETCH_FAC`` and ``GFDLgrid_REFINE_RATIO`` on the regional grid's resolution. Nevertheless, some users still prefer to use ``GFDLgrid_NUM_CELLS`` in the file names, so we allow for that here by setting this flag to "TRUE". + Flag that determines the file naming convention to use for grid, orography, and surface climatology files (or, if using pregenerated files, the naming convention that was used to name these files). These files usually start with the string ``"C${RES}_"``, where ``RES`` is an integer. In the global forecast model, ``RES`` is the number of points in each of the two horizontal directions (x and y) on each tile of the global grid (defined here as ``GFDLgrid_NUM_CELLS``). If this flag is set to true, ``RES`` will be set to ``GFDLgrid_NUM_CELLS`` just as in the global forecast model. If it is set to false, we calculate (in the grid generation task) an "equivalent global uniform cubed-sphere resolution" -- call it ``RES_EQUIV`` -- and then set ``RES`` equal to it. ``RES_EQUIV`` is the number of grid points in each of the x and y directions on each tile that a global UNIFORM (i.e., stretch factor of 1) cubed-sphere grid would need to have in order to have the same average grid size as the regional grid. This is a more useful indicator of the grid size because it takes into account the effects of ``GFDLgrid_NUM_CELLS``, ``GFDLgrid_STRETCH_FAC``, and ``GFDLgrid_REFINE_RATIO`` in determining the regional grid's typical grid size, whereas simply setting ``RES`` to ``GFDLgrid_NUM_CELLS`` doesn't take into account the effects of ``GFDLgrid_STRETCH_FAC`` and ``GFDLgrid_REFINE_RATIO`` on the regional grid's resolution. Nevertheless, some users still prefer to use ``GFDLgrid_NUM_CELLS`` in the file names, so we allow for that here by setting this flag to true. Computational Forecast Parameters ================================= @@ -756,15 +1112,15 @@ Write-Component (Quilting) Parameters .. note:: The :term:`UPP` (called by the ``RUN_POST_TN`` task) cannot process output on the native grid types ("GFDLgrid" and "ESGgrid"), so output fields are interpolated to a **write-component grid** before writing them to an output file. The output files written by the UFS Weather Model use an Earth System Modeling Framework (:term:`ESMF`) component, referred to as the **write component**. This model component is configured with settings in the ``model_configure`` file, as described in `Section 4.2.3 `__ of the UFS Weather Model documentation. -``QUILTING``: (Default: "TRUE") +``QUILTING``: (Default: true) .. attention:: The regional grid requires the use of the write component, so users generally should not need to change the default value for ``QUILTING``. - Flag that determines whether to use the write component for writing forecast output files to disk. If set to "TRUE", the forecast model will output files named ``dynf$HHH.nc`` and ``phyf$HHH.nc`` (where ``HHH`` is the 3-digit forecast hour) containing dynamics and physics fields, respectively, on the write-component grid. For example, the output files for the 3rd hour of the forecast would be ``dynf$003.nc`` and ``phyf$003.nc``. (The regridding from the native FV3-LAM grid to the write-component grid is done by the forecast model.) If ``QUILTING`` is set to "FALSE", then the output file names are ``fv3_history.nc`` and ``fv3_history2d.nc``, and they contain fields on the native grid. Although the UFS Weather Model can run without quilting, the regional grid requires the use of the write component. Therefore, QUILTING should be set to "TRUE" when running the SRW App. If ``QUILTING`` is set to "FALSE", the ``RUN_POST_TN`` (meta)task cannot run because the :term:`UPP` code that this task calls cannot process fields on the native grid. In that case, the ``RUN_POST_TN`` (meta)task will be automatically removed from the Rocoto workflow XML. The :ref:`INLINE POST ` option also requires ``QUILTING`` to be set to "TRUE" in the SRW App. + Flag that determines whether to use the write component for writing forecast output files to disk. If set to "TRUE", the forecast model will output files named ``dynf$HHH.nc`` and ``phyf$HHH.nc`` (where ``HHH`` is the 3-digit forecast hour) containing dynamics and physics fields, respectively, on the write-component grid. For example, the output files for the 3rd hour of the forecast would be ``dynf$003.nc`` and ``phyf$003.nc``. (The regridding from the native FV3-LAM grid to the write-component grid is done by the forecast model.) If ``QUILTING`` is set to false, then the output file names are ``fv3_history.nc`` and ``fv3_history2d.nc``, and they contain fields on the native grid. Although the UFS Weather Model can run without quilting, the regional grid requires the use of the write component. Therefore, QUILTING should be set to true when running the SRW App. If ``QUILTING`` is set to false, the ``RUN_POST_TN`` (meta)task cannot run because the :term:`UPP` code that this task calls cannot process fields on the native grid. In that case, the ``RUN_POST_TN`` (meta)task will be automatically removed from the Rocoto workflow XML. The :ref:`INLINE POST ` option also requires ``QUILTING`` to be set to true in the SRW App. -``PRINT_ESMF``: (Default: "FALSE") - Flag that determines whether to output extra (debugging) information from :term:`ESMF` routines. Must be "TRUE" or "FALSE". Note that the write component uses ESMF library routines to interpolate from the native forecast model grid to the user-specified output grid (which is defined in the model configuration file ``model_configure`` in the forecast run directory). +``PRINT_ESMF``: (Default: false) + Flag that determines whether to output extra (debugging) information from :term:`ESMF` routines. Must be true or false. Note that the write component uses ESMF library routines to interpolate from the native forecast model grid to the user-specified output grid (which is defined in the model configuration file ``model_configure`` in the forecast run directory). ``WRTCMP_write_groups``: (Default: "1") The number of write groups (i.e., groups of :term:`MPI` tasks) to use in the write component. @@ -835,13 +1191,13 @@ Pre-existing Directory Parameter Verbose Parameter ================= -``VERBOSE``: (Default: "TRUE") - Flag that determines whether the experiment generation and workflow task scripts print out extra informational messages. Valid values: ``"TRUE"`` | ``"true"`` | ``"YES"`` | ``"yes"`` | ``"FALSE"`` | ``"false"`` | ``"NO"`` | ``"no"`` +``VERBOSE``: (Default: true) + Flag that determines whether the experiment generation and workflow task scripts print out extra informational messages. Valid values: ``"True"`` | ``"False"`` Debug Parameter ================= -``DEBUG``: (Default: "FALSE") - Flag that determines whether to print out very detailed debugging messages. Note that if DEBUG is set to TRUE, then VERBOSE will also be reset to TRUE if it isn't already. Valid values: ``"TRUE"`` | ``"true"`` | ``"YES"`` | ``"yes"`` | ``"FALSE"`` | ``"false"`` | ``"NO"`` | ``"no"`` +``DEBUG``: (Default: false) + Flag that determines whether to print out very detailed debugging messages. Note that if DEBUG is set to TRUE, then VERBOSE will also be reset to TRUE if it isn't already. Valid values: ``"True"`` | ``"False"`` .. _WFTasks: @@ -1028,40 +1384,40 @@ These parameters set flags (and related directories) that determine whether vari Baseline Workflow Tasks -------------------------- -``RUN_TASK_MAKE_GRID``: (Default: "TRUE") - Flag that determines whether to run the grid file generation task (``MAKE_GRID_TN``). If this is set to "TRUE", the grid generation task is run and new grid files are generated. If it is set to "FALSE", then the scripts look for pre-generated grid files in the directory specified by ``GRID_DIR`` (see below). +``RUN_TASK_MAKE_GRID``: (Default: true) + Flag that determines whether to run the grid file generation task (``MAKE_GRID_TN``). If this is set to true, the grid generation task is run and new grid files are generated. If it is set to false, then the scripts look for pre-generated grid files in the directory specified by ``GRID_DIR`` (see below). -``GRID_DIR``: (Default: "/path/to/pregenerated/grid/files") - The directory containing pre-generated grid files when ``RUN_TASK_MAKE_GRID`` is set to "FALSE". +``GRID_DIR``: (Default: "") + The directory containing pre-generated grid files when ``RUN_TASK_MAKE_GRID`` is set to false. -``RUN_TASK_MAKE_OROG``: (Default: "TRUE") - Same as ``RUN_TASK_MAKE_GRID`` but for the orography generation task (``MAKE_OROG_TN``). Flag that determines whether to run the orography file generation task (``MAKE_OROG_TN``). If this is set to "TRUE", the orography generation task is run and new orography files are generated. If it is set to "FALSE", then the scripts look for pre-generated orography files in the directory specified by ``OROG_DIR`` (see below). +``RUN_TASK_MAKE_OROG``: (Default: true) + Same as ``RUN_TASK_MAKE_GRID`` but for the orography generation task (``MAKE_OROG_TN``). Flag that determines whether to run the orography file generation task (``MAKE_OROG_TN``). If this is set to true, the orography generation task is run and new orography files are generated. If it is set to false, then the scripts look for pre-generated orography files in the directory specified by ``OROG_DIR`` (see below). -``OROG_DIR``: (Default: "/path/to/pregenerated/orog/files") - The directory containing pre-generated orography files to use when ``MAKE_OROG_TN`` is set to "FALSE". +``OROG_DIR``: (Default: "") + The directory containing pre-generated orography files to use when ``MAKE_OROG_TN`` is set to false. -``RUN_TASK_MAKE_SFC_CLIMO``: (Default: "TRUE") - Same as ``RUN_TASK_MAKE_GRID`` but for the surface climatology generation task (``MAKE_SFC_CLIMO_TN``). Flag that determines whether to run the surface climatology file generation task (``MAKE_SFC_CLIMO_TN``). If this is set to "TRUE", the surface climatology generation task is run and new surface climatology files are generated. If it is set to "FALSE", then the scripts look for pre-generated surface climatology files in the directory specified by ``SFC_CLIMO_DIR`` (see below). +``RUN_TASK_MAKE_SFC_CLIMO``: (Default: true) + Same as ``RUN_TASK_MAKE_GRID`` but for the surface climatology generation task (``MAKE_SFC_CLIMO_TN``). Flag that determines whether to run the surface climatology file generation task (``MAKE_SFC_CLIMO_TN``). If this is set to true, the surface climatology generation task is run and new surface climatology files are generated. If it is set to false, then the scripts look for pre-generated surface climatology files in the directory specified by ``SFC_CLIMO_DIR`` (see below). -``SFC_CLIMO_DIR``: (Default: "/path/to/pregenerated/surface/climo/files") - The directory containing pre-generated surface climatology files to use when ``MAKE_SFC_CLIMO_TN`` is set to "FALSE". +``SFC_CLIMO_DIR``: (Default: "") + The directory containing pre-generated surface climatology files to use when ``MAKE_SFC_CLIMO_TN`` is set to false. -``RUN_TASK_GET_EXTRN_ICS``: (Default: "TRUE") +``RUN_TASK_GET_EXTRN_ICS``: (Default: true) Flag that determines whether to run the ``GET_EXTRN_ICS_TN`` task. -``RUN_TASK_GET_EXTRN_LBCS``: (Default: "TRUE") +``RUN_TASK_GET_EXTRN_LBCS``: (Default: true) Flag that determines whether to run the ``GET_EXTRN_LBCS_TN`` task. -``RUN_TASK_MAKE_ICS``: (Default: "TRUE") +``RUN_TASK_MAKE_ICS``: (Default: true) Flag that determines whether to run the ``MAKE_ICS_TN`` task. -``RUN_TASK_MAKE_LBCS``: (Default: "TRUE") +``RUN_TASK_MAKE_LBCS``: (Default: true) Flag that determines whether to run the ``MAKE_LBCS_TN`` task. -``RUN_TASK_RUN_FCST``: (Default: "TRUE") +``RUN_TASK_RUN_FCST``: (Default: true) Flag that determines whether to run the ``RUN_FCST_TN`` task. -``RUN_TASK_RUN_POST``: (Default: "TRUE") +``RUN_TASK_RUN_POST``: (Default: true) Flag that determines whether to run the ``RUN_POST_TN`` task. .. _VXTasks: @@ -1069,25 +1425,25 @@ Baseline Workflow Tasks Verification Tasks -------------------- -``RUN_TASK_GET_OBS_CCPA``: (Default: "FALSE") +``RUN_TASK_GET_OBS_CCPA``: (Default: false) Flag that determines whether to run the ``GET_OBS_CCPA_TN`` task, which retrieves the :term:`CCPA` hourly precipitation files used by METplus from NOAA :term:`HPSS`. -``RUN_TASK_GET_OBS_MRMS``: (Default: "FALSE") +``RUN_TASK_GET_OBS_MRMS``: (Default: false) Flag that determines whether to run the ``GET_OBS_MRMS_TN`` task, which retrieves the :term:`MRMS` composite reflectivity files used by METplus from NOAA HPSS. -``RUN_TASK_GET_OBS_NDAS``: (Default: "FALSE") +``RUN_TASK_GET_OBS_NDAS``: (Default: false) Flag that determines whether to run the ``GET_OBS_NDAS_TN`` task, which retrieves the :term:`NDAS` PrepBufr files used by METplus from NOAA HPSS. -``RUN_TASK_VX_GRIDSTAT``: (Default: "FALSE") +``RUN_TASK_VX_GRIDSTAT``: (Default: false) Flag that determines whether to run the grid-stat verification task. -``RUN_TASK_VX_POINTSTAT``: (Default: "FALSE") +``RUN_TASK_VX_POINTSTAT``: (Default: false) Flag that determines whether to run the point-stat verification task. -``RUN_TASK_VX_ENSGRID``: (Default: "FALSE") +``RUN_TASK_VX_ENSGRID``: (Default: false) Flag that determines whether to run the ensemble-stat verification for gridded data task. -``RUN_TASK_VX_ENSPOINT``: (Default: "FALSE") +``RUN_TASK_VX_ENSPOINT``: (Default: false) Flag that determines whether to run the ensemble point verification task. If this flag is set, both ensemble-stat point verification and point verification of ensemble-stat output is computed. .. @@ -1096,7 +1452,7 @@ Verification Tasks Aerosol Climatology Parameter ================================ -``USE_MERRA_CLIMO``: (Default: "FALSE") +``USE_MERRA_CLIMO``: (Default: false) Flag that determines whether :term:`MERRA2` aerosol climatology data and lookup tables for optics properties are obtained. .. @@ -1124,19 +1480,20 @@ These parameters are associated with the fixed (i.e., static) files. On `Level 1 The location on disk of the static input files used by the ``make_orog`` task (i.e., ``orog.x`` and ``shave.x``). Can be the same as ``FIXgsm``. ``SFC_CLIMO_INPUT_DIR``: (Default: "") - The location on disk of the static surface climatology input fields, used by ``sfc_climo_gen``. These files are only used if ``RUN_TASK_MAKE_SFC_CLIMO=TRUE``. + The location on disk of the static surface climatology input fields, used by ``sfc_climo_gen``. These files are only used if ``RUN_TASK_MAKE_SFC_CLIMO: true``. ``FNGLAC, ..., FNMSKH``: (Default: see below) .. code-block:: console - (FNGLAC="global_glacier.2x2.grb" - FNMXIC="global_maxice.2x2.grb" - FNTSFC="RTGSST.1982.2012.monthly.clim.grb" - FNSNOC="global_snoclim.1.875.grb" - FNZORC="igbp" - FNAISC="CFSR.SEAICE.1982.2012.monthly.clim.grb" - FNSMCC="global_soilmgldas.t126.384.190.grb" - FNMSKH="seaice_newland.grb") + (FNGLAC: &FNGLAC "global_glacier.2x2.grb" + FNMXIC: &FNMXIC "global_maxice.2x2.grb" + FNTSFC: &FNTSFC "RTGSST.1982.2012.monthly.clim.grb" + FNSNOC: &FNSNOC "global_snoclim.1.875.grb" + FNZORC: &FNZORC "igbp" + FNAISC: &FNAISC "CFSR.SEAICE.1982.2012.monthly.clim.grb" + FNSMCC: &FNSMCC "global_soilmgldas.t126.384.190.grb" + FNMSKH: &FNMSKH "seaice_newland.grb" + ) Names and default locations of (some of the) global data files that are assumed to exist in a system directory. (This directory is machine-dependent; the experiment generation scripts will set it and store it in the variable ``FIXgsm``.) These file names also appear directly in the forecast model's input :term:`namelist` file. @@ -1241,16 +1598,16 @@ These parameters are associated with the fixed (i.e., static) files. On `Level 1 Subhourly Forecast Parameters ================================= -``SUB_HOURLY_POST``: (Default: "FALSE") +``SUB_HOURLY_POST``: (Default: false) Flag that indicates whether the forecast model will generate output files on a sub-hourly time interval (e.g., 10 minutes, 15 minutes). This will also cause the post-processor to process these sub-hourly files. If this variable is set to "TRUE", then ``DT_SUBHOURLY_POST_MNTS`` should be set to a valid value between "01" and "59". -``DT_SUB_HOURLY_POST_MNTS``: (Default: "00") - Time interval in minutes between the forecast model output files. If ``SUB_HOURLY_POST`` is set to "TRUE", this needs to be set to a valid two-digit integer between "01" and "59". Note that if ``SUB_HOURLY_POST`` is set to "TRUE" but ``DT_SUB_HOURLY_POST_MNTS`` is set to "00", ``SUB_HOURLY_POST`` will get reset to "FALSE" in the experiment generation scripts (there will be an informational message in the log file to emphasize this). Valid values: ``"1"`` | ``"01"`` | ``"2"`` | ``"02"`` | ``"3"`` | ``"03"`` | ``"4"`` | ``"04"`` | ``"5"`` | ``"05"`` | ``"6"`` | ``"06"`` | ``"10"`` | ``"12"`` | ``"15"`` | ``"20"`` | ``"30"`` +``DT_SUB_HOURLY_POST_MNTS``: (Default: 0) + Time interval in minutes between the forecast model output files. If ``SUB_HOURLY_POST`` is set to true, this needs to be set to a valid two-digit integer between 1 and 59. Note that if ``SUB_HOURLY_POST`` is set to true but ``DT_SUB_HOURLY_POST_MNTS`` is set to 0, ``SUB_HOURLY_POST`` will get reset to false in the experiment generation scripts (there will be an informational message in the log file to emphasize this). Valid values: ``0`` | ``1`` | ``2`` | ``3`` | ``4`` | ``5`` | ``6`` | ``10`` | ``12`` | ``15`` | ``20`` | ``30`` Customized Post Configuration Parameters ======================================== -``USE_CUSTOM_POST_CONFIG_FILE``: (Default: "FALSE") +``USE_CUSTOM_POST_CONFIG_FILE``: (Default: false) Flag that determines whether a user-provided custom configuration file should be used for post-processing the model data. If this is set to "TRUE", then the workflow will use the custom post-processing (:term:`UPP`) configuration file specified in ``CUSTOM_POST_CONFIG_FP``. Otherwise, a default configuration file provided in the UPP repository will be used. ``CUSTOM_POST_CONFIG_FP``: (Default: "") @@ -1262,7 +1619,7 @@ Community Radiative Transfer Model (CRTM) Parameters These variables set parameters associated with outputting satellite fields in the :term:`UPP` :term:`grib2` files using the Community Radiative Transfer Model (:term:`CRTM`). :numref:`Section %s ` includes further instructions on how to do this. -``USE_CRTM``: (Default: "FALSE") +``USE_CRTM``: (Default: false) Flag that defines whether external :term:`CRTM` coefficient files have been staged by the user in order to output synthetic satellite products available within the :term:`UPP`. If this is set to "TRUE", then the workflow will check for these files in the directory ``CRTM_DIR``. Otherwise, it is assumed that no satellite fields are being requested in the UPP configuration. ``CRTM_DIR``: (Default: "") @@ -1271,11 +1628,11 @@ These variables set parameters associated with outputting satellite fields in th Ensemble Model Parameters ============================ -``DO_ENSEMBLE``: (Default: "FALSE") - Flag that determines whether to run a set of ensemble forecasts (for each set of specified cycles). If this is set to "TRUE", ``NUM_ENS_MEMBERS`` forecasts are run for each cycle, each with a different set of stochastic seed values. When "FALSE", a single forecast is run for each cycle. +``DO_ENSEMBLE``: (Default: false) + Flag that determines whether to run a set of ensemble forecasts (for each set of specified cycles). If this is set to true, ``NUM_ENS_MEMBERS`` forecasts are run for each cycle, each with a different set of stochastic seed values. When false, a single forecast is run for each cycle. ``NUM_ENS_MEMBERS``: (Default: "1") - The number of ensemble members to run if ``DO_ENSEMBLE`` is set to "TRUE". This variable also controls the naming of the ensemble member directories. For example, if ``NUM_ENS_MEMBERS`` is set to "8", the member directories will be named *mem1, mem2, ..., mem8*. If it is set to "08" (with a leading zero), the member directories will be named *mem01, mem02, ..., mem08*. However, after reading in the number of characters in this string (in order to determine how many leading zeros, if any, should be placed in the names of the member directories), the workflow generation scripts strip away those leading zeros. Thus, in the variable definitions file (``GLOBAL_VAR_DEFNS_FN``), this variable appears with its leading zeros stripped. This variable is not used unless ``DO_ENSEMBLE`` is set to "TRUE". + The number of ensemble members to run if ``DO_ENSEMBLE`` is set to true. This variable also controls the naming of the ensemble member directories. For example, if ``NUM_ENS_MEMBERS`` is set to "8", the member directories will be named *mem1, mem2, ..., mem8*. If it is set to "08" (with a leading zero), the member directories will be named *mem01, mem02, ..., mem08*. However, after reading in the number of characters in this string (in order to determine how many leading zeros, if any, should be placed in the names of the member directories), the workflow generation scripts strip away those leading zeros. Thus, in the variable definitions file (``GLOBAL_VAR_DEFNS_FN``), this variable appears with its leading zeros stripped. This variable is not used unless ``DO_ENSEMBLE`` is set to true. .. _HaloBlend: @@ -1287,7 +1644,7 @@ Halo Blend Parameter FVCOM Parameter =============== -``USE_FVCOM``: (Default: "FALSE") +``USE_FVCOM``: (Default: false) Flag that specifies whether or not to update surface conditions in FV3-LAM with fields generated from the Finite Volume Community Ocean Model (:term:`FVCOM`). If set to "TRUE", lake/sea surface temperatures, ice surface temperatures, and ice placement will be overwritten using data provided by FVCOM. Setting ``USE_FVCOM`` to "TRUE" causes the executable ``process_FVCOM.exe`` in the ``MAKE_ICS_TN`` task to run. This, in turn, modifies the file ``sfc_data.nc`` generated by ``chgres_cube``. Note that the FVCOM data must already be interpolated to the desired FV3-LAM grid. ``FVCOM_WCSTART``: (Default: "cold") @@ -1309,12 +1666,12 @@ Thread Affinity Interface .. code-block:: console - KMP_AFFINITY_MAKE_OROG="disabled" - KMP_AFFINITY_MAKE_SFC_CLIMO="scatter" - KMP_AFFINITY_MAKE_ICS="scatter" - KMP_AFFINITY_MAKE_LBCS="scatter" - KMP_AFFINITY_RUN_FCST="scatter" - KMP_AFFINITY_RUN_POST="scatter" + KMP_AFFINITY_MAKE_OROG: "disabled" + KMP_AFFINITY_MAKE_SFC_CLIMO: "scatter" + KMP_AFFINITY_MAKE_ICS: "scatter" + KMP_AFFINITY_MAKE_LBCS: "scatter" + KMP_AFFINITY_RUN_FCST: "scatter" + KMP_AFFINITY_RUN_POST: "scatter" "Intel's runtime library can bind OpenMP threads to physical processing units. The interface is controlled using the KMP_AFFINITY environment variable. Thread affinity restricts execution of certain threads to a subset of the physical processing units in a multiprocessor computer. Depending on the system (machine) topology, application, and operating system, thread affinity can have a dramatic effect on the application speed and on the execution speed of a program." Valid values: ``"scatter"`` | ``"disabled"`` | ``"balanced"`` | ``"compact"`` | ``"explicit"`` | ``"none"`` @@ -1324,12 +1681,12 @@ Thread Affinity Interface .. code-block:: console - OMP_NUM_THREADS_MAKE_OROG="6" - OMP_NUM_THREADS_MAKE_SFC_CLIMO="1" - OMP_NUM_THREADS_MAKE_ICS="1" - OMP_NUM_THREADS_MAKE_LBCS="1" - OMP_NUM_THREADS_RUN_FCST="2" # atmos_nthreads in model_configure - OMP_NUM_THREADS_RUN_POST="1" + OMP_NUM_THREADS_MAKE_OROG: "6" + OMP_NUM_THREADS_MAKE_SFC_CLIMO: "1" + OMP_NUM_THREADS_MAKE_ICS: "1" + OMP_NUM_THREADS_MAKE_LBCS: "1" + OMP_NUM_THREADS_RUN_FCST: "2" # atmos_nthreads in model_configure + OMP_NUM_THREADS_RUN_POST: "1" The number of OpenMP threads to use for parallel regions. @@ -1341,12 +1698,12 @@ Thread Affinity Interface .. code-block:: console - OMP_STACKSIZE_MAKE_OROG="2048m" - OMP_STACKSIZE_MAKE_SFC_CLIMO="1024m" - OMP_STACKSIZE_MAKE_ICS="1024m" - OMP_STACKSIZE_MAKE_LBCS="1024m" - OMP_STACKSIZE_RUN_FCST="1024m" - OMP_STACKSIZE_RUN_POST="1024m" + OMP_STACKSIZE_MAKE_OROG: "2048m" + OMP_STACKSIZE_MAKE_SFC_CLIMO: "1024m" + OMP_STACKSIZE_MAKE_ICS: "1024m" + OMP_STACKSIZE_MAKE_LBCS: "1024m" + OMP_STACKSIZE_RUN_FCST: "1024m" + OMP_STACKSIZE_RUN_POST: "1024m" Controls the size of the stack for threads created by the OpenMP implementation. diff --git a/docs/UsersGuide/source/ContainerQuickstart.rst b/docs/UsersGuide/source/ContainerQuickstart.rst index 57740bacca..6a0559a540 100644 --- a/docs/UsersGuide/source/ContainerQuickstart.rst +++ b/docs/UsersGuide/source/ContainerQuickstart.rst @@ -247,7 +247,7 @@ To activate the regional workflow, run the following commands: where: * ```` is replaced with the actual path to the modulefiles on the user's system (often ``$PWD/modulefiles``), and - * ```` is a valid, lowercased machine/platform name (see the ``MACHINE`` variable in :numref:`Section %s `). + * ```` is a valid, lowercased machine/platform name (see the ``MACHINE`` variable in :numref:`Section %s `). The ``wflow_`` modulefile will then output instructions to activate the regional workflow. The user should run the commands specified in the modulefile output. For example, if the output says: @@ -273,7 +273,7 @@ where: * ``-c`` indicates the compiler on the user's local machine (e.g., ``intel/2022.1.2``) * ``-m`` indicates the :term:`MPI` on the user's local machine (e.g., ``impi/2022.1.2``) - * ```` refers to the local machine (e.g., ``hera``, ``jet``, ``noaacloud``, ``mac``). See ``MACHINE`` in :numref:`Section %s ` for a full list of options. + * ```` refers to the local machine (e.g., ``hera``, ``jet``, ``noaacloud``, ``mac``). See ``MACHINE`` in :numref:`Section %s ` for a full list of options. * ``-i`` indicates the name of the container image that was built in :numref:`Step %s ` (``ubuntu20.04-intel-srwapp`` or ``ubuntu20.04-intel-srwapp-develop.img`` by default). For example, on Hera, the command would be: @@ -299,7 +299,7 @@ From here, users can follow the steps below to configure the out-of-the-box SRW The default settings include a predefined 25-km :term:`CONUS` grid (RRFS_CONUS_25km), the :term:`GFS` v16 physics suite (FV3_GFS_v16 :term:`CCPP`), and :term:`FV3`-based GFS raw external model data for initialization. - #. Edit the ``MACHINE`` and ``ACCOUNT`` variables in the ``user:`` section of ``config.yaml``. See :numref:`Section %s ` for details on valid values. + #. Edit the ``MACHINE`` and ``ACCOUNT`` variables in the ``user:`` section of ``config.yaml``. See :numref:`Section %s ` for details on valid values. .. note:: From 48544443d9e301f4df7686d5f82e13d9f3b1b3aa Mon Sep 17 00:00:00 2001 From: gspetro Date: Mon, 3 Oct 2022 22:16:28 -0400 Subject: [PATCH 15/58] update file name params --- docs/UsersGuide/source/ConfigWorkflow.rst | 240 ++++++---------------- 1 file changed, 61 insertions(+), 179 deletions(-) diff --git a/docs/UsersGuide/source/ConfigWorkflow.rst b/docs/UsersGuide/source/ConfigWorkflow.rst index 46ef8341aa..eed979f9df 100644 --- a/docs/UsersGuide/source/ConfigWorkflow.rst +++ b/docs/UsersGuide/source/ConfigWorkflow.rst @@ -246,20 +246,68 @@ Pre-Processing File Separator Parameters .. COMMENT: It also says "Ideally, the same separator should be used in the names of these fixed files as the surface climatology fixed files (which always use a "." as the separator), i.e. ideally DOT_OR_USCORE should be set to "." " --> Does it have to be set to "_" in the SRW App? +Set File Name Parameters +---------------------------- + +``EXPT_CONFIG_FN``: (Default: "config.yaml") + Name of the user-specified configuration file for the forecast experiment. + +``CONSTANTS_FN``: (Default: "constants.sh") + Name of the file containing definitions of various mathematical, physical, and SRW App contants. + +``RGNL_GRID_NML_FN``: (Default: "regional_grid.nml") + Name of the file containing namelist settings for the code that generates an "ESGgrid" regional grid. + +``FV3_NML_BASE_SUITE_FN``: (Default: "input.nml.FV3") + Name of the Fortran file containing the forecast model's base suite namelist (i.e., the portion of the namelist that is common to all physics suites). + +``FV3_NML_YAML_CONFIG_FN``: (Default: "FV3.input.yml") + Name of YAML configuration file containing the forecast model's namelist settings for various physics suites. + +``FV3_NML_BASE_ENS_FN``: (Default: "input.nml.base_ens") + Name of the Fortran file containing the forecast model's base ensemble namelist (i.e., the original namelist file from which each of the ensemble members' namelist files is generated). + +``FV3_EXEC_FN``: (Default: "ufs_model") + Name of the forecast model executable that is copied from the executables directory (``EXEC_SUBDIR``;where it was created during the build process) to the experiment directory; set during experiment generation. + +.. COMMENT: Check this definition... + +``DIAG_TABLE_TMPL_FN``: (Default: "") + Name of a template file that specifies the output fields of the forecast model. The selected physics suite is appended to this file name in ``setup.py``, taking the form ``{DIAG_TABLE_TMPL_FN}.{CCPP_PHYS_SUITE}``. Generally, the SRW App expects to read in the default value set in ``setup.py`` (i.e., ``diag_table.{CCPP_PHYS_SUITE}``), and users should **not** specify a value for ``DIAG_TABLE_TMPL_FN`` in their configuration file (i.e., ``config.yaml``) unless (1) the file name required by the model changes, and (2) they also change the names of the ``diag_table`` options in the ``ufs-srweather-app/parm`` directory. + +``FIELD_TABLE_TMPL_FN``: (Default: "") + Name of a template file that specifies the :term:`tracers ` that the forecast model will read in from the :term:`IC/LBC ` files. The selected physics suite is appended to this file name in ``setup.py``, taking the form ``{FIELD_TABLE_TMPL_FN}.{CCPP_PHYS_SUITE}``. Generally, the SRW App expects to read in the default value set in ``setup.py`` (i.e., ``field_table.{CCPP_PHYS_SUITE}``), and users should **not** specify a different value for ``FIELD_TABLE_TMPL_FN`` in their configuration file (i.e., ``config.yaml``) unless (1) the file name required by the model changes, and (2) they also change the names of the ``field_table`` options in the ``ufs-srweather-app/parm`` directory. + +``DATA_TABLE_TMPL_FN``: (Default: "") + Name of a template file that contains the data table read in by the forecast model. Generally, the SRW App expects to read in the default value set in ``setup.py`` (i.e., ``data_table``), and users should **not** specify a different value for ``DATA_TABLE_TMPL_FN`` in their configuration file (i.e., ``config.yaml``) unless (1) the file name required by the model changes, and (2) they also change the name of ``data_table`` in the ``ufs-srweather-app/parm`` directory. + +``MODEL_CONFIG_TMPL_FN``: (Default: "") + Name of a template file that contains settings and configurations for the :term:`NUOPC`/:term:`ESMF` main component. Generally, the SRW App expects to read in the default value set in ``setup.py`` (i.e., ``model_configure``), and users should **not** specify a different value for ``MODEL_CONFIG_TMPL_FN`` in their configuration file (i.e., ``config.yaml``) unless (1) the file name required by the model changes, and (2) they also change the name of ``model_configure`` in the ``ufs-srweather-app/parm`` directory. + +``NEMS_CONFIG_TMPL_FN``: (Default: "") + Name of a template file that contains information about the various :term:`NEMS` components and their run sequence. Generally, the SRW App expects to read in the default value set in ``setup.py`` (i.e., ``nems.configure``), and users should **not** specify a different value for ``NEMS_CONFIG_TMPL_FN`` in their configuration file (i.e., ``config.yaml``) unless (1) the file name required by the model changes, and (2) they also change the name of ``nems.configure`` in the ``ufs-srweather-app/parm`` directory. + +``FCST_MODEL``: (Default: "ufs-weather-model") + Name of forecast model. Valid values: ``"ufs-weather-model"`` | ``"fv3gfs_aqm"`` + +``WFLOW_XML_FN``: (Default: "FV3LAM_wflow.xml") + Name of the Rocoto workflow XML file that the experiment generation script creates. This file defines the workflow for the experiment. + +``GLOBAL_VAR_DEFNS_FN``: (Default: "var_defns.sh") + Name of the file (a shell script) containing definitions of the primary and secondary experiment variables (parameters). This file is sourced by many scripts (e.g., the J-job scripts corresponding to each workflow task) in order to make all the experiment variables available in those scripts. The primary variables are defined in the default configuration script (``config_defaults.yaml``) and in ``config.yaml``. The secondary experiment variables are generated by the experiment generation script. + +``EXTRN_MDL_VAR_DEFNS_FN``: (Default: "extrn_mdl_var_defns") + Name of the file (a shell script) containing the definitions of variables associated with the external model from which :term:`ICs` or :term:`LBCs` are generated. This file is created by the ``GET_EXTRN_*_TN`` task because the values of the variables it contains are not known before this task runs. The file is then sourced by the ``MAKE_ICS_TN`` and ``MAKE_LBCS_TN`` tasks. + +``WFLOW_LAUNCH_SCRIPT_FN``: (Default: "launch_FV3LAM_wflow.sh") + Name of the script that can be used to (re)launch the experiment's Rocoto workflow. + +``WFLOW_LAUNCH_LOG_FN``: (Default: "log.launch_FV3LAM_wflow") + Name of the log file that contains the output from successive calls to the workflow launch script (``WFLOW_LAUNCH_SCRIPT_FN``). + + + - #----------------------------------------------------------------------- - # - # Set the separator character(s) to use in the names of the grid, mosaic, - # and orography fixed files. - # - # Ideally, the same separator should be used in the names of these fixed - # files as the surface climatology fixed files (which always use a "." - # as the separator), i.e. ideally, DOT_OR_USCORE should be set to "." - # - #----------------------------------------------------------------------- - # - DOT_OR_USCORE: "_" - # @@ -314,59 +362,6 @@ These variables apply only when using NCO mode (i.e., when ``RUN_ENVIR`` is set $PTMP/com/$NET/$envir/$RUN.$yyyymmdd/$hh -File Name Parameters ------------------------- - -``EXPT_CONFIG_FN``: (Default: "config.yaml") - Name of the user-specified configuration file for the forecast experiment. - -``RGNL_GRID_NML_FN``: (Default: "regional_grid.nml") - Name of the file containing namelist settings for the code that generates an "ESGgrid" regional grid. - -``FV3_NML_BASE_SUITE_FN``: (Default: "input.nml.FV3") - Name of the Fortran file containing the forecast model's base suite namelist (i.e., the portion of the namelist that is common to all physics suites). - -``FV3_NML_YAML_CONFIG_FN``: (Default: "FV3.input.yml") - Name of YAML configuration file containing the forecast model's namelist settings for various physics suites. - -``FV3_NML_BASE_ENS_FN``: (Default: "input.nml.base_ens") - Name of the Fortran file containing the forecast model's base ensemble namelist (i.e., the original namelist file from which each of the ensemble members' namelist files is generated). - -``DIAG_TABLE_FN``: (Default: "diag_table") - Name of the file specifying the fields that the forecast model will output. - -``FIELD_TABLE_FN``: (Default: "field_table") - Name of the file specifying the :term:`tracers ` that the forecast model will read in from the :term:`IC/LBC ` files. - -``DATA_TABLE_FN``: (Default: "data_table") - Name of the file containing the data table read in by the forecast model. - -``MODEL_CONFIG_FN``: (Default: "model_configure") - Name of the file containing settings and configurations for the :term:`NUOPC`/:term:`ESMF` component. - -``NEMS_CONFIG_FN``: (Default: "nems.configure") - Name of the file containing information about the various :term:`NEMS` components and their run sequence. - -``FV3_EXEC_FN``: (Default: "ufs_model") - Name of the forecast model executable stored in the executables directory (``EXECDIR``; set during experiment generation). - -``FCST_MODEL``: (Default: "ufs-weather-model") - Name of forecast model. Valid values: ``"ufs-weather-model"`` | ``"fv3gfs_aqm"`` - -``WFLOW_XML_FN``: (Default: "FV3LAM_wflow.xml") - Name of the Rocoto workflow XML file that the experiment generation script creates. This file defines the workflow for the experiment. - -``GLOBAL_VAR_DEFNS_FN``: (Default: "var_defns.sh") - Name of the file (a shell script) containing definitions of the primary and secondary experiment variables (parameters). This file is sourced by many scripts (e.g., the J-job scripts corresponding to each workflow task) in order to make all the experiment variables available in those scripts. The primary variables are defined in the default configuration script (``config_defaults.yaml``) and in ``config.yaml``. The secondary experiment variables are generated by the experiment generation script. - -``EXTRN_MDL_VAR_DEFNS_FN``: (Default: "extrn_mdl_var_defns") - Name of the file (a shell script) containing the defintions of variables associated with the external model from which :term:`ICs` or :term:`LBCs` are generated. This file is created by the ``GET_EXTRN_*_TN`` task because the values of the variables it contains are not known before this task runs. The file is then sourced by the ``MAKE_ICS_TN`` and ``MAKE_LBCS_TN`` tasks. - -``WFLOW_LAUNCH_SCRIPT_FN``: (Default: "launch_FV3LAM_wflow.sh") - Name of the script that can be used to (re)launch the experiment's Rocoto workflow. - -``WFLOW_LAUNCH_LOG_FN``: (Default: "log.launch_FV3LAM_wflow") - Name of the log file that contains the output from successive calls to the workflow launch script (``WFLOW_LAUNCH_SCRIPT_FN``). @@ -374,120 +369,7 @@ File Name Parameters #***************************************** DELETE BELOW THIS LINE **************************************** - #----------------------------------------------------------------------- - # - # Set file names. Definitions: - # - # EXPT_CONFIG_FN: - # Name of the user-specified configuration file for the forecast experiment. - # - # CONSTANTS_FN: - # Name of the file containing definitions of various mathematical, physical, - # and SRW App contants. - # - # RGNL_GRID_NML_FN: - # Name of file containing the namelist settings for the code that generates - # a "ESGgrid" type of regional grid. - # - # FV3_NML_BASE_SUITE_FN: - # Name of Fortran namelist file containing the forecast model's base suite - # namelist, i.e. the portion of the namelist that is common to all physics - # suites. - # - # FV3_NML_YAML_CONFIG_FN: - # Name of YAML configuration file containing the forecast model's namelist - # settings for various physics suites. - # - # FV3_NML_BASE_ENS_FN: - # Name of Fortran namelist file containing the forecast model's base - # ensemble namelist, i.e. the the namelist file that is the starting point - # from which the namelist files for each of the enesemble members are - # generated. - # - # FV3_EXEC_FN: - # Name to use for the forecast model executable when it is copied from - # the directory in which it is created in the build step to the executables - # directory (EXECDIR; this is set during experiment generation). - # - # DIAG_TABLE_TMPL_FN: - # Name of a template file that specifies the output fields of the forecast - # model (ufs-weather-model: diag_table) followed by [dot_ccpp_phys_suite]. - # Its default value is the name of the file that the ufs weather model - # expects to read in. - # - # FIELD_TABLE_TMPL_FN: - # Name of a template file that specifies the tracers in IC/LBC files of the - # forecast model (ufs-weather-mode: field_table) followed by [dot_ccpp_phys_suite]. - # Its default value is the name of the file that the ufs weather model expects - # to read in. - # - # MODEL_CONFIG_TMPL_FN: - # Name of a template file that contains settings and configurations for the - # NUOPC/ESMF main component (ufs-weather-model: model_config). Its default - # value is the name of the file that the ufs weather model expects to read in. - # - # NEMS_CONFIG_TMPL_FN: - # Name of a template file that contains information about the various NEMS - # components and their run sequence (ufs-weather-model: nems.configure). - # Its default value is the name of the file that the ufs weather model expects - # to read in. - # - # FCST_MODEL: - # Name of forecast model (default=ufs-weather-model) - # - # WFLOW_XML_FN: - # Name of the rocoto workflow XML file that the experiment generation - # script creates and that defines the workflow for the experiment. - # - # GLOBAL_VAR_DEFNS_FN: - # Name of file (a shell script) containing the defintions of the primary - # experiment variables (parameters) defined in this default configuration - # script and in the user-specified configuration as well as secondary - # experiment variables generated by the experiment generation script. - # This file is sourced by many scripts (e.g. the J-job scripts corresponding - # to each workflow task) in order to make all the experiment variables - # available in those scripts. - # - # EXTRN_MDL_VAR_DEFNS_FN: - # Name of file (a shell script) containing the defintions of variables - # associated with the external model from which ICs or LBCs are generated. This - # file is created by the GET_EXTRN_*_TN task because the values of the variables - # it contains are not known before this task runs. The file is then sourced by - # the MAKE_ICS_TN and MAKE_LBCS_TN tasks. - # - # WFLOW_LAUNCH_SCRIPT_FN: - # Name of the script that can be used to (re)launch the experiment's rocoto - # workflow. - # - # WFLOW_LAUNCH_LOG_FN: - # Name of the log file that contains the output from successive calls to - # the workflow launch script (WFLOW_LAUNCH_SCRIPT_FN). - # - #----------------------------------------------------------------------- - # - EXPT_CONFIG_FN: "config.yaml" - CONSTANTS_FN: "constants.sh" - - RGNL_GRID_NML_FN: "regional_grid.nml" - FV3_NML_BASE_SUITE_FN: "input.nml.FV3" - FV3_NML_YAML_CONFIG_FN: "FV3.input.yml" - FV3_NML_BASE_ENS_FN: "input.nml.base_ens" - FV3_EXEC_FN: "ufs_model" - - DATA_TABLE_TMPL_FN: "" - DIAG_TABLE_TMPL_FN: "" - FIELD_TABLE_TMPL_FN: "" - MODEL_CONFIG_TMPL_FN: "" - NEMS_CONFIG_TMPL_FN: "" - - FCST_MODEL: "ufs-weather-model" - WFLOW_XML_FN: "FV3LAM_wflow.xml" - GLOBAL_VAR_DEFNS_FN: "var_defns.sh" - EXTRN_MDL_VAR_DEFNS_FN: "extrn_mdl_var_defns" - WFLOW_LAUNCH_SCRIPT_FN: "launch_FV3LAM_wflow.sh" - WFLOW_LAUNCH_LOG_FN: "log.launch_FV3LAM_wflow" - # #----------------------------------------------------------------------- # # Set CCPP-associated parameters. Definitions: From 6e447e1411757111805b1c3d7beae8fcc9bbfb35 Mon Sep 17 00:00:00 2001 From: gspetro Date: Mon, 3 Oct 2022 22:45:19 -0400 Subject: [PATCH 16/58] grid_gen, verbose, compiler, etc. params --- docs/UsersGuide/source/ConfigWorkflow.rst | 351 ++++++++-------------- 1 file changed, 130 insertions(+), 221 deletions(-) diff --git a/docs/UsersGuide/source/ConfigWorkflow.rst b/docs/UsersGuide/source/ConfigWorkflow.rst index eed979f9df..306873861a 100644 --- a/docs/UsersGuide/source/ConfigWorkflow.rst +++ b/docs/UsersGuide/source/ConfigWorkflow.rst @@ -305,20 +305,110 @@ Set File Name Parameters ``WFLOW_LAUNCH_LOG_FN``: (Default: "log.launch_FV3LAM_wflow") Name of the log file that contains the output from successive calls to the workflow launch script (``WFLOW_LAUNCH_SCRIPT_FN``). - +.. _CCPP_Params: + +CCPP Parameter +------------------ + +``CCPP_PHYS_SUITE``: (Default: "FV3_GFS_v16") + This parameter indicates which :term:`CCPP` (Common Community Physics Package) physics suite to use for the forecast(s). The choice of physics suite determines the forecast model's namelist file, the diagnostics table file, the field table file, and the XML physics suite definition file, which are staged in the experiment directory or the :term:`cycle` directories under it. + + **Current supported settings for this parameter are:** + + | ``"FV3_GFS_v16"`` + | ``"FV3_RRFS_v1beta"`` + | ``"FV3_HRRR"`` + | ``"FV3_WoFS_v0"`` + + **Other valid values include:** + + | ``"FV3_GFS_2017_gfdlmp"`` + | ``"FV3_GFS_2017_gfdlmp_regional"`` + | ``"FV3_GFS_v15p2"`` + | ``"FV3_GFS_v15_thompson_mynn_lam3km"`` + + +.. _ConfigParameters: + +Grid Generation Parameters +------------------------------ + +``GRID_GEN_METHOD``: (Default: "") + This variable specifies which method to use to generate a regional grid in the horizontal plane. The values that it can take on are: + + * **"ESGgrid":** The "ESGgrid" method will generate a regional version of the Extended Schmidt Gnomonic (ESG) grid using the map projection developed by Jim Purser of EMC (:cite:t:`Purser_2020`). "ESGgrid" is the preferred grid option. + + * **"GFDLgrid":** The "GFDLgrid" method first generates a "parent" global cubed-sphere grid. Then a portion from tile 6 of the global grid is used as the regional grid. This regional grid is referred to in the grid generation scripts as "tile 7," even though it does not correspond to a complete tile. The forecast is run only on the regional grid (i.e., on tile 7, not on tiles 1 through 6). Note that the "GFDLgrid" method is the legacy grid generation method. It is not supported in *all* predefined domains. + +.. attention:: + + If the experiment uses a **predefined grid** (i.e., if ``PREDEF_GRID_NAME`` is set to the name of a valid predefined grid), then ``GRID_GEN_METHOD`` will be reset to the value of ``GRID_GEN_METHOD`` for that grid. This will happen regardless of whether ``GRID_GEN_METHOD`` is assigned a value in the experiment configuration file; any value assigned will be overwritten. + +.. note:: + + If the experiment uses a **user-defined grid** (i.e., if ``PREDEF_GRID_NAME`` is set to a null string), then ``GRID_GEN_METHOD`` must be set in the experiment configuration file. Otherwise, the experiment generation will fail because the generation scripts check to ensure that the grid name is set to a non-empty string before creating the experiment directory. + +Forecast Parameters +---------------------- +``DATE_FIRST_CYCL``: (Default: "YYYYMMDD") + Starting date of the first forecast in the set of forecasts to run. Format is "YYYYMMDD". Note that this does not include the hour of the day. + +``DATE_LAST_CYCL``: (Default: "YYYYMMDD") + Starting date of the last forecast in the set of forecasts to run. Format is "YYYYMMDD". Note that this does not include the hour of the day. +``CYCL_HRS``: (Default: [ "HH1", "HH2" ] ) + An array containing the hours of the day at which to launch forecasts. Forecasts are launched at these hours on each day from ``DATE_FIRST_CYCL`` to ``DATE_LAST_CYCL``, inclusive. Each element of this array must be a two-digit string representing an integer that is less than or equal to 23 (e.g., "00", "03", "12", "23"). +``INCR_CYCL_FREQ``: (Default: 24) + Increment in hours for cycle frequency (cycl_freq). The default is 24, which means cycl_freq=24:00:00. +``FCST_LEN_HRS``: (Default: 24) + The length of each forecast, in integer hours. +Pre-Existing Directory Parameter +------------------------------------ +``PREEXISTING_DIR_METHOD``: (Default: "delete") + This variable determines how to deal with pre-existing directories (resulting from previous calls to the experiment generation script using the same experiment name [``EXPT_SUBDIR``] as the current experiment). This variable must be set to one of three valid values: ``"delete"``, ``"rename"``, or ``"quit"``. The behavior for each of these values is as follows: + * **"delete":** The preexisting directory is deleted and a new directory (having the same name as the original preexisting directory) is created. + + * **"rename":** The preexisting directory is renamed and a new directory (having the same name as the original pre-existing directory) is created. The new name of the preexisting directory consists of its original name and the suffix "_old###", where ``###`` is a 3-digit integer chosen to make the new name unique. + + * **"quit":** The preexisting directory is left unchanged, but execution of the currently running script is terminated. In this case, the preexisting directory must be dealt with manually before rerunning the script. + +Verbose Parameter +--------------------- +``VERBOSE``: (Default: true) + Flag that determines whether the experiment generation and workflow task scripts print out extra informational messages. Valid values: ``"True"`` | ``"False"`` + +Debug Parameter +-------------------- +``DEBUG``: (Default: false) + Flag that determines whether to print out very detailed debugging messages. Note that if DEBUG is set to true, then VERBOSE will also be reset to true if it isn't already. Valid values: ``"True"`` | ``"False"`` + +Compiler +----------- + +``COMPILER``: (Default: "intel") + Type of compiler invoked during the build step. Currently, this must be set manually (i.e., it is not inherited from the build system in the ``ufs-srweather-app`` directory). Valid values: ``"intel"`` | ``"gnu"`` + + .. COMMENT: This bit isn't in config_defaults: "Currently, this must be set manually (i.e., it is not inherited from the build system in the ``ufs-srweather-app`` directory)." + Should it be removed? Is it still true? + + .. COMMENT: Add?: + GET_OBS: "get_obs" + VX_TN: "run_vx" + VX_ENSGRID_TN: "run_ensgridvx" + VX_ENSGRID_PROB_REFC_TN: "run_ensgridvx_prob_refc" + MAXTRIES_VX_ENSGRID_PROB_REFC: 1 .. _NCOModeParms: NCO Mode Parameters ------------------------ +======================= -These variables apply only when using NCO mode (i.e., when ``RUN_ENVIR`` is set to "nco"). +These variables apply only when using NCO mode (i.e., when ``RUN_ENVIR`` is set to "nco"). If non-default parameters are selected for the variables in this section, they should be added to the ``nco:`` section of the ``config.yaml`` file. ``COMINgfs``: (Default: "/base/path/of/directory/containing/gfs/input/files") The beginning portion of the path to the directory that contains files generated by the external model (FV3GFS). The initial and lateral boundary condition generation tasks need this path in order to create initial and boundary condition files for a given cycle on the native FV3-LAM grid. For a cycle that starts on the date specified by the variable YYYYMMDD (consisting of the 4-digit year, 2-digit month, and 2-digit day of the month) and the hour specified by the variable HH (consisting of the 2-digit hour of the day), the directory in which the workflow will look for the external model files is: @@ -363,191 +453,68 @@ These variables apply only when using NCO mode (i.e., when ``RUN_ENVIR`` is set $PTMP/com/$NET/$envir/$RUN.$yyyymmdd/$hh - - - -#***************************************** DELETE BELOW THIS LINE **************************************** - - - - #----------------------------------------------------------------------- - # - # Set CCPP-associated parameters. Definitions: - # - # CCPP_PHYS_SUITE: - # The physics suite that will run using CCPP (Common Community Physics - # Package). The choice of physics suite determines the forecast model's - # namelist file, the diagnostics table file, the field table file, and - # the XML physics suite definition file that are staged in the experiment - # directory or the cycle directories under it. - # - #----------------------------------------------------------------------- - # - CCPP_PHYS_SUITE: "FV3_GFS_v16" - # - #----------------------------------------------------------------------- - # - # Set GRID_GEN_METHOD. This variable specifies the method to use to - # generate a regional grid in the horizontal. The values that it can - # take on are: - # - # * "GFDLgrid": - # This setting will generate a regional grid by first generating a - # "parent" global cubed-sphere grid and then taking a portion of tile - # 6 of that global grid -- referred to in the grid generation scripts - # as "tile 7" even though it doesn't correspond to a complete tile -- - # and using it as the regional grid. Note that the forecast is run on - # only on the regional grid (i.e. tile 7, not tiles 1 through 6). - # - # * "ESGgrid": - # This will generate a regional grid using the map projection developed - # by Jim Purser of EMC. - # - # Note that: - # - # 1) If the experiment is using one of the predefined grids (i.e. if - # PREDEF_GRID_NAME is set to the name of one of the valid predefined - # grids), then GRID_GEN_METHOD will be reset to the value of - # GRID_GEN_METHOD for that grid. This will happen regardless of - # whether or not GRID_GEN_METHOD is assigned a value in the user- - # specified experiment configuration file, i.e. any value it may be - # assigned in the experiment configuration file will be overwritten. - # - # 2) If the experiment is not using one of the predefined grids (i.e. if - # PREDEF_GRID_NAME is set to a null string), then GRID_GEN_METHOD must - # be set in the experiment configuration file. Otherwise, it will - # remain set to a null string, and the experiment generation will - # fail because the generation scripts check to ensure that it is set - # to a non-empty string before creating the experiment directory. - # - #----------------------------------------------------------------------- - # - GRID_GEN_METHOD: "" - # - #----------------------------------------------------------------------- - # - # Set forecast parameters. Definitions: - # - # DATE_FIRST_CYCL: - # Starting date of the first forecast in the set of forecasts to run. - # Format is "YYYYMMDD". Note that this does not include the hour-of-day. - # - # DATE_LAST_CYCL: - # Starting date of the last forecast in the set of forecasts to run. - # Format is "YYYYMMDD". Note that this does not include the hour-of-day. - # - # CYCL_HRS: - # An array containing the hours of the day at which to launch forecasts. - # Forecasts are launched at these hours on each day from DATE_FIRST_CYCL - # to DATE_LAST_CYCL, inclusive. Each element of this array must be a - # two-digit string representing an integer that is less than or equal to - # 23, e.g. "00", "03", "12", "23". - # - # INCR_CYCL_FREQ: - # Increment in hours for Cycle Frequency (cycl_freq). - # Default is 24, which means cycle_freq=24:00:00 - # - # FCST_LEN_HRS: - # The length of each forecast, in integer hours. +#---------------------------- +# NCO specific variables +#----------------------------- +nco: # #----------------------------------------------------------------------- # - DATE_FIRST_CYCL: "YYYYMMDD" - DATE_LAST_CYCL: "YYYYMMDD" - CYCL_HRS: [ "HH1", "HH2" ] - INCR_CYCL_FREQ: 24 - FCST_LEN_HRS: 24 + # Set variables that are only used in NCO mode (i.e. when RUN_ENVIR is + # set to "nco"). Definitions: # - #----------------------------------------------------------------------- - # - # Set PREEXISTING_DIR_METHOD. This variable determines the method to use - # use to deal with preexisting directories [e.g ones generated by previous - # calls to the experiment generation script using the same experiment name - # (EXPT_SUBDIR) as the current experiment]. This variable must be set to - # one of "delete", "rename", and "quit". The resulting behavior for each - # of these values is as follows: + # envir, NET, model_ver, RUN: + # Standard environment variables defined in the NCEP Central Operations WCOSS + # Implementation Standards document as follows: # - # * "delete": - # The preexisting directory is deleted and a new directory (having the - # same name as the original preexisting directory) is created. + # envir: + # Set to "test" during the initial testing phase, "para" when running + # in parallel (on a schedule), and "prod" in production. # - # * "rename": - # The preexisting directory is renamed and a new directory (having the - # same name as the original preexisting directory) is created. The new - # name of the preexisting directory consists of its original name and - # the suffix "_oldNNN", where NNN is a 3-digit integer chosen to make - # the new name unique. + # NET: + # Model name (first level of com directory structure) # - # * "quit": - # The preexisting directory is left unchanged, but execution of the - # currently running script is terminated. In this case, the preexisting - # directory must be dealt with manually before rerunning the script. + # model_ver: + # Version number of package in three digits (second level of com directory) # - #----------------------------------------------------------------------- + # RUN: + # Name of model run (third level of com directory structure). + # In general, same as $NET # - PREEXISTING_DIR_METHOD: "delete" + # OPSROOT: + # The operations root directory in NCO mode. + # + # For more information on NCO standards + # + # https://www.nco.ncep.noaa.gov/idsb/implementation_standards/ImplementationStandards.v11.0.0.pdf # #----------------------------------------------------------------------- # - # Set flags for more detailed messages. Defintitions: - # - # VERBOSE: - # This is a flag that determines whether or not the experiment generation - # and workflow task scripts tend to print out more informational messages. - # - # DEBUG: - # This is a flag that determines whether or not very detailed debugging - # messages are printed to out. Note that if DEBUG is set to TRUE, then - # VERBOSE will also get reset to TRUE if it isn't already. - # - #----------------------------------------------------------------------- - # - VERBOSE: true - DEBUG: false - # - #----------------------------------------------------------------------- - # - # COMPILER: - # Type of compiler invoked during the build step. - # - #------------------------------------------------------------------------ - # - COMPILER: "intel" - - #is this the right place? - GET_OBS: "get_obs" - VX_TN: "run_vx" - VX_ENSGRID_TN: "run_ensgridvx" - VX_ENSGRID_PROB_REFC_TN: "run_ensgridvx_prob_refc" - MAXTRIES_VX_ENSGRID_PROB_REFC: 1 - + envir: "para" + NET: "rrfs" + RUN: "rrfs" + model_ver: "v1.0.0" + OPSROOT: "" -``COMPILER``: (Default: "intel") - Type of compiler invoked during the build step. Currently, this must be set manually (i.e., it is not inherited from the build system in the ``ufs-srweather-app`` directory). Valid values: ``"intel"`` | ``"gnu"`` +#***************************************** DELETE BELOW THIS LINE **************************************** + #is this the right place? + GET_OBS: "get_obs" + VX_TN: "run_vx" + VX_ENSGRID_TN: "run_ensgridvx" + VX_ENSGRID_PROB_REFC_TN: "run_ensgridvx_prob_refc" + MAXTRIES_VX_ENSGRID_PROB_REFC: 1 -Forecast Parameters -=================== -``DATE_FIRST_CYCL``: (Default: "YYYYMMDD") - Starting date of the first forecast in the set of forecasts to run. Format is "YYYYMMDD". Note that this does not include the hour of the day. -``DATE_LAST_CYCL``: (Default: "YYYYMMDD") - Starting date of the last forecast in the set of forecasts to run. Format is "YYYYMMDD". Note that this does not include the hour of the day. -``CYCL_HRS``: (Default: ( "HH1" "HH2" )) - An array containing the hours of the day at which to launch forecasts. Forecasts are launched at these hours on each day from ``DATE_FIRST_CYCL`` to ``DATE_LAST_CYCL``, inclusive. Each element of this array must be a two-digit string representing an integer that is less than or equal to 23 (e.g., "00", "03", "12", "23"). -``INCR_CYCL_FREQ``: (Default: "24") - Increment in hours for cycle frequency (cycl_freq). The default is "24", which means cycl_freq=24:00:00. -``FCST_LEN_HRS``: (Default: "24") - The length of each forecast, in integer hours. Model Configuration Parameters ================================= @@ -634,26 +601,6 @@ Set parameters associated with NOMADS online data. ``NOMADS_file_type``: (Default: "nemsio") Flag controlling the format of the data. Valid values: ``"GRIB2"`` | ``"grib2"`` | ``"NEMSIO"`` | ``"nemsio"`` -.. _CCPP_Params: - -CCPP Parameter -=============== -``CCPP_PHYS_SUITE``: (Default: "FV3_GFS_v16") - This parameter indicates which :term:`CCPP` (Common Community Physics Package) physics suite to use for the forecast(s). The choice of physics suite determines the forecast model's namelist file, the diagnostics table file, the field table file, and the XML physics suite definition file, which are staged in the experiment directory or the :term:`cycle` directories under it. - - **Current supported settings for this parameter are:** - - | ``"FV3_GFS_v16"`` - | ``"FV3_RRFS_v1beta"`` - | ``"FV3_HRRR"`` - | ``"FV3_WoFS_v0"`` - - **Other valid values include:** - - | ``"FV3_GFS_2017_gfdlmp"`` - | ``"FV3_GFS_2017_gfdlmp_regional"`` - | ``"FV3_GFS_v15p2"`` - | ``"FV3_GFS_v15_thompson_mynn_lam3km"`` Stochastic Physics Parameters ================================ @@ -857,24 +804,6 @@ Predefined Grid Parameters * If ``PREDEF_GRID_NAME`` is set to an empty string, it implies that the user will provide the native grid parameters in the user-specified experiment configuration file (``config.yaml``). In this case, the grid generation method, the native grid parameters, the write component grid parameters, the main time step (``DT_ATMOS``), and the computational parameters (``LAYOUT_X``, ``LAYOUT_Y``, and ``BLOCKSIZE``) must be set in the configuration file. Otherwise, the values of the parameters in the default experiment configuration file (``config_defaults.yaml``) will be used. -.. _ConfigParameters: - -Grid Generation Parameters -========================== -``GRID_GEN_METHOD``: (Default: "") - This variable specifies which method to use to generate a regional grid in the horizontal plane. The values that it can take on are: - - * **"ESGgrid":** The "ESGgrid" method will generate a regional version of the Extended Schmidt Gnomonic (ESG) grid using the map projection developed by Jim Purser of EMC (:cite:t:`Purser_2020`). "ESGgrid" is the preferred grid option. - - * **"GFDLgrid":** The "GFDLgrid" method first generates a "parent" global cubed-sphere grid. Then a portion from tile 6 of the global grid is used as the regional grid. This regional grid is referred to in the grid generation scripts as "tile 7," even though it does not correspond to a complete tile. The forecast is run only on the regional grid (i.e., on tile 7, not on tiles 1 through 6). Note that the "GFDLgrid" method is the legacy grid generation method. It is not supported in *all* predefined domains. - -.. attention:: - - If the experiment uses a **predefined grid** (i.e., if ``PREDEF_GRID_NAME`` is set to the name of a valid predefined grid), then ``GRID_GEN_METHOD`` will be reset to the value of ``GRID_GEN_METHOD`` for that grid. This will happen regardless of whether ``GRID_GEN_METHOD`` is assigned a value in the experiment configuration file; any value assigned will be overwritten. - -.. note:: - - If the experiment uses a **user-defined grid** (i.e., if ``PREDEF_GRID_NAME`` is set to a null string), then ``GRID_GEN_METHOD`` must be set in the experiment configuration file. Otherwise, the experiment generation will fail because the generation scripts check to ensure that the grid name is set to a non-empty string before creating the experiment directory. .. _ESGgrid: @@ -1059,27 +988,7 @@ Write-Component (Quilting) Parameters ``WRTCMP_dy``: (Default: "") Grid cell size (in meters) along the y-axis of the Lambert conformal projection. -Pre-existing Directory Parameter -================================ -``PREEXISTING_DIR_METHOD``: (Default: "delete") - This variable determines how to deal with pre-existing directories (resulting from previous calls to the experiment generation script using the same experiment name [``EXPT_SUBDIR``] as the current experiment). This variable must be set to one of three valid values: ``"delete"``, ``"rename"``, or ``"quit"``. The behavior for each of these values is as follows: - - * **"delete":** The preexisting directory is deleted and a new directory (having the same name as the original preexisting directory) is created. - - * **"rename":** The preexisting directory is renamed and a new directory (having the same name as the original pre-existing directory) is created. The new name of the preexisting directory consists of its original name and the suffix "_old###", where ``###`` is a 3-digit integer chosen to make the new name unique. - - * **"quit":** The preexisting directory is left unchanged, but execution of the currently running script is terminated. In this case, the preexisting directory must be dealt with manually before rerunning the script. - -Verbose Parameter -================= -``VERBOSE``: (Default: true) - Flag that determines whether the experiment generation and workflow task scripts print out extra informational messages. Valid values: ``"True"`` | ``"False"`` - -Debug Parameter -================= -``DEBUG``: (Default: false) - Flag that determines whether to print out very detailed debugging messages. Note that if DEBUG is set to TRUE, then VERBOSE will also be reset to TRUE if it isn't already. Valid values: ``"True"`` | ``"False"`` .. _WFTasks: From 60f2e468cb0d08d9fd950fa5c764f8b75e99652a Mon Sep 17 00:00:00 2001 From: gspetro Date: Thu, 13 Oct 2022 15:06:37 -0400 Subject: [PATCH 17/58] ConfigWorkflow 1st draft revision --- docs/UsersGuide/source/BuildSRW.rst | 8 +- docs/UsersGuide/source/ConfigWorkflow.rst | 2307 +++++++++++++-------- docs/UsersGuide/source/RocotoInfo.rst | 2 +- 3 files changed, 1494 insertions(+), 823 deletions(-) diff --git a/docs/UsersGuide/source/BuildSRW.rst b/docs/UsersGuide/source/BuildSRW.rst index 3b19e0023c..715cef758c 100644 --- a/docs/UsersGuide/source/BuildSRW.rst +++ b/docs/UsersGuide/source/BuildSRW.rst @@ -166,7 +166,7 @@ If users want to build the optional ``GSI`` and ``rrfs_utl`` components for RRFS The last line of the console output should be ``[100%] Built target ufs-weather-model``, indicating that the UFS Weather Model executable has been built successfully. -The executables listed in :numref:`Table %s ` should appear in the ``ufs-srweather-app/bin`` directory. If users choose to build the ``GSI`` and ``rrfs_utl`` components, the executables listed in :numref:`Table %s ` will also appear there. If this build method does not work, or if users are not on a supported machine, they will have to manually setup the environment and build the SRW App binaries with CMake as described in :numref:`Section %s `. +The executables listed in :numref:`Table %s ` should appear in the ``ufs-srweather-app/exec`` directory. If users choose to build the ``GSI`` and ``rrfs_utl`` components, the executables listed in :numref:`Table %s ` will also appear there. If this build method does not work, or if users are not on a supported machine, they will have to manually setup the environment and build the SRW App binaries with CMake as described in :numref:`Section %s `. .. _ExecDescription: @@ -354,7 +354,7 @@ From the build directory, run the following commands to build the pre-processing cmake .. -DCMAKE_INSTALL_PREFIX=.. make -j 4 >& build.out & -``-DCMAKE_INSTALL_PREFIX`` specifies the location in which the ``bin``, ``include``, ``lib``, and ``share`` directories will be created. These directories will contain various components of the SRW App. Its recommended value ``..`` denotes one directory up from the build directory. In the next line, the ``make`` call argument ``-j 4`` indicates that the build will run in parallel with 4 threads. Although users can specify a larger or smaller number of threads (e.g., ``-j8``, ``-j2``), it is highly recommended to use at least 4 parallel threads to prevent overly long installation times. +``-DCMAKE_INSTALL_PREFIX`` specifies the location in which the ``exec``, ``include``, ``lib``, and ``share`` directories will be created. These directories will contain various components of the SRW App. Its recommended value ``..`` denotes one directory up from the build directory. In the next line, the ``make`` call argument ``-j 4`` indicates that the build will run in parallel with 4 threads. Although users can specify a larger or smaller number of threads (e.g., ``-j8``, ``-j2``), it is highly recommended to use at least 4 parallel threads to prevent overly long installation times. If users want to build the optional ``GSI`` and ``rrfs_utl`` components for RRFS (NOTE: These components are not currently available for use at runtime), they can add ``ENABLE_RRFS=on`` to the original cmake command. For example: @@ -363,11 +363,11 @@ If users want to build the optional ``GSI`` and ``rrfs_utl`` components for RRFS cmake .. -DCMAKE_INSTALL_PREFIX=.. ENABLE_RRFS=on make -j 4 >& build.out & -The build will take a few minutes to complete. When it starts, a random number is printed to the console, and when it is done, a ``[1]+ Done`` message is printed to the console. ``[1]+ Exit`` indicates an error. Output from the build will be in the ``ufs-srweather-app/build/build.out`` file. When the build completes, users should see the forecast model executable ``ufs_model`` and several pre- and post-processing executables in the ``ufs-srweather-app/bin`` directory. These executables are described in :numref:`Table %s `. +The build will take a few minutes to complete. When it starts, a random number is printed to the console, and when it is done, a ``[1]+ Done`` message is printed to the console. ``[1]+ Exit`` indicates an error. Output from the build will be in the ``ufs-srweather-app/build/build.out`` file. When the build completes, users should see the forecast model executable ``ufs_model`` and several pre- and post-processing executables in the ``ufs-srweather-app/exec`` directory. These executables are described in :numref:`Table %s `. .. hint:: - If you see the ``build.out`` file, but there is no ``ufs-srweather-app/bin`` directory, wait a few more minutes for the build to complete. + If you see the ``build.out`` file, but there is no ``ufs-srweather-app/exec`` directory, wait a few more minutes for the build to complete. .. _MacDetails: diff --git a/docs/UsersGuide/source/ConfigWorkflow.rst b/docs/UsersGuide/source/ConfigWorkflow.rst index 306873861a..025fb4b277 100644 --- a/docs/UsersGuide/source/ConfigWorkflow.rst +++ b/docs/UsersGuide/source/ConfigWorkflow.rst @@ -226,6 +226,8 @@ Directory Parameters ``EXPT_BASEDIR``: (Default: "") The full path to the base directory in which the experiment directory (``EXPT_SUBDIR``) will be created. If this is not specified or if it is set to an empty string, it will default to ``${HOMEdir}/../expt_dirs``, where ``${HOMEdir}`` contains the full path to the ``ufs-srweather-app`` directory. +.. COMMENT: Check whether HOMEdir refers to ush or ufs-srweather-app now... + ``EXPT_SUBDIR``: (Default: "") The user-designated name of the experiment directory (*not* its full path). The full path to the experiment directory, which will be contained in the variable ``EXPTDIR``, will be: @@ -328,7 +330,7 @@ CCPP Parameter | ``"FV3_GFS_v15_thompson_mynn_lam3km"`` -.. _ConfigParameters: +.. _GridGen: Grid Generation Parameters ------------------------------ @@ -402,1100 +404,1769 @@ Compiler VX_ENSGRID_PROB_REFC_TN: "run_ensgridvx_prob_refc" MAXTRIES_VX_ENSGRID_PROB_REFC: 1 +Verification Parameters +--------------------------- -.. _NCOModeParms: - -NCO Mode Parameters -======================= - -These variables apply only when using NCO mode (i.e., when ``RUN_ENVIR`` is set to "nco"). If non-default parameters are selected for the variables in this section, they should be added to the ``nco:`` section of the ``config.yaml`` file. +``GET_OBS``: (Default: "get_obs") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. + .. COMMENT: How is this different from the other get_obs tasks? Define. -``COMINgfs``: (Default: "/base/path/of/directory/containing/gfs/input/files") - The beginning portion of the path to the directory that contains files generated by the external model (FV3GFS). The initial and lateral boundary condition generation tasks need this path in order to create initial and boundary condition files for a given cycle on the native FV3-LAM grid. For a cycle that starts on the date specified by the variable YYYYMMDD (consisting of the 4-digit year, 2-digit month, and 2-digit day of the month) and the hour specified by the variable HH (consisting of the 2-digit hour of the day), the directory in which the workflow will look for the external model files is: +``VX_TN``: (Default: "run_vx") + Set the name of the Rocoto workflow task that launches verification tasks. Users typically do not need to change this value. - .. code-block:: console +``VX_ENSGRID_TN``: (Default: "run_ensgridvx") + Set the name of the Rocoto workflow task that launches ensemble verification tasks. Users typically do not need to change this value. + .. COMMENT: Check definition... think it might not be right (there's a separate "DO_ENSEMBLE" variable) - $COMINgfs/gfs.$yyyymmdd/$hh/atmos +``VX_ENSGRID_PROB_REFC_TN``: (Default: "run_ensgridvx_prob_refc") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. + .. COMMENT: How is this different from the other get_obs tasks? Define. -``FIXLAM_NCO_BASEDIR``: (Default: "") - The base directory containing pregenerated grid, orography, and surface climatology files. For the pregenerated grid type specified in the variable ``PREDEF_GRID_NAME``, these "fixed" files are located in: +``MAXTRIES_VX_ENSGRID_PROB_REFC``: (Default: 1) + Maximum number of times to attempt the task. + .. COMMENT: Which task? - .. code-block:: console - ${FIXLAM_NCO_BASEDIR}/${PREDEF_GRID_NAME} +.. _NCOModeParms: - The workflow scripts will create a symlink in the experiment directory that will point to a subdirectory (having the name of the grid being used) under this directory. This variable should be set to a null string in ``config_defaults.yaml`` and specified by the user in the workflow configuration file (``config.yaml``). +NCO-Specific Variables +========================= -``STMP``: (Default: "/base/path/of/directory/containing/model/input/and/raw/output/files") - The beginning portion of the path to the directory that will contain :term:`cycle-dependent` model input files, symlinks to :term:`cycle-independent` input files, and raw (i.e., before post-processing) forecast output files for a given :term:`cycle`. The format for cycle dates (cdate) is ``cdate="${YYYYMMDD}${HH}"``, where the date is specified using YYYYMMDD format, and the hour is specified using HH format. The files for a cycle date will be located in the following directory: +A standard set of environment variables has been established for *nco* mode to simplify the production workflow and improve the troubleshooting process for operational and preoperational models. These variables are only used in *nco* mode (i.e., when ``RUN_ENVIR: "nco"``). When non-default parameters are selected for the variables in this section, they should be added to the ``nco:`` section of the ``config.yaml`` file. - .. code-block:: console +.. note:: + Only *community* mode is fully supported for this release. *nco* mode is used by those at the Environmental Modeling Center (EMC) and Global Systems Laboratory (GSL) who are working on pre-implementation operational testing. Other users should run the SRW App in *community* mode. - $STMP/tmpnwprd/$RUN/$cdate +``envir, NET, model_ver, RUN``: + Standard environment variables defined in the NCEP Central Operations WCOSS Implementation Standards document. These variables are used in forming the path to various directories containing input, output, and workflow files. The variables are defined in the `WCOSS Implementation Standards `__ document (pp. 4-5) as follows: -``NET, envir, RUN``: - Variables used in forming the path to the directory that will contain the post-processor (:term:`UPP`) output files for a given cycle (see ``PTMP`` below). These are defined in the `WCOSS Implementation Standards `__ document (pp. 4-5, 19-20) as follows: + ``envir``: (Default: "para") + Set to "test" during the initial testing phase, "para" when running in parallel (on a schedule), and "prod" in production. ``NET``: (Default: "rrfs") Model name (first level of ``com`` directory structure) - ``envir``: (Default: "para") - Set to "test" during the initial testing phase, "para" when running in parallel (on a schedule), and "prod" in production. (Second level of ``com`` directory structure.) + ``model_ver``: (Default: "v1.0.0") + Version number of package in three digits (second level of ``com`` directory) - ``RUN``: (Default: "experiment_name") - Name of model run (third level of ``com`` directory structure). + ``RUN``: (Default: "rrfs") + Name of model run (third level of ``com`` directory structure). In general, same as ``$NET``. -``PTMP``: (Default: "/base/path/of/directory/containing/postprocessed/output/files") - The beginning portion of the path to the directory that will contain the output files from the post-processor (:term:`UPP`) for a given cycle. For a cycle that starts on the date specified by YYYYMMDD and hour specified by HH (where YYYYMMDD and HH are as described above), the UPP output files will be placed in the following directory: - - .. code-block:: console +``OPSROOT``: (Default: "") + The operations root directory in *nco* mode. - $PTMP/com/$NET/$envir/$RUN.$yyyymmdd/$hh +.. COMMENT: Remove the following variables? They no longer appear in config_defaults... + ``COMINgfs``: (Default: "/base/path/of/directory/containing/gfs/input/files") + The beginning portion of the path to the directory that contains files generated by the external model (FV3GFS). The initial and lateral boundary condition generation tasks need this path in order to create initial and boundary condition files for a given cycle on the native FV3-LAM grid. For a cycle that starts on the date specified by the variable YYYYMMDD (consisting of the 4-digit year, 2-digit month, and 2-digit day of the month) and the hour specified by the variable HH (consisting of the 2-digit hour of the day), the directory in which the workflow will look for the external model files is: -#---------------------------- -# NCO specific variables -#----------------------------- -nco: - # - #----------------------------------------------------------------------- - # - # Set variables that are only used in NCO mode (i.e. when RUN_ENVIR is - # set to "nco"). Definitions: - # - # envir, NET, model_ver, RUN: - # Standard environment variables defined in the NCEP Central Operations WCOSS - # Implementation Standards document as follows: - # - # envir: - # Set to "test" during the initial testing phase, "para" when running - # in parallel (on a schedule), and "prod" in production. - # - # NET: - # Model name (first level of com directory structure) - # - # model_ver: - # Version number of package in three digits (second level of com directory) - # - # RUN: - # Name of model run (third level of com directory structure). - # In general, same as $NET - # - # OPSROOT: - # The operations root directory in NCO mode. - # - # For more information on NCO standards - # - # https://www.nco.ncep.noaa.gov/idsb/implementation_standards/ImplementationStandards.v11.0.0.pdf - # - #----------------------------------------------------------------------- - # - envir: "para" - NET: "rrfs" - RUN: "rrfs" - model_ver: "v1.0.0" - OPSROOT: "" + .. code-block:: console + $COMINgfs/gfs.$yyyymmdd/$hh/atmos + ``FIXLAM_NCO_BASEDIR``: (Default: "") + The base directory containing pregenerated grid, orography, and surface climatology files. For the pregenerated grid type specified in the variable ``PREDEF_GRID_NAME``, these "fixed" files are located in: + .. code-block:: console + ${FIXLAM_NCO_BASEDIR}/${PREDEF_GRID_NAME} + The workflow scripts will create a symlink in the experiment directory that will point to a subdirectory (having the name of the grid being used) under this directory. This variable should be set to a null string in ``config_defaults.yaml`` and specified by the user in the workflow configuration file (``config.yaml``). + ``STMP``: (Default: "/base/path/of/directory/containing/model/input/and/raw/output/files") + The beginning portion of the path to the directory that will contain :term:`cycle-dependent` model input files, symlinks to :term:`cycle-independent` input files, and raw (i.e., before post-processing) forecast output files for a given :term:`cycle`. The format for cycle dates (cdate) is ``cdate="${YYYYMMDD}${HH}"``, where the date is specified using YYYYMMDD format, and the hour is specified using HH format. The files for a cycle date will be located in the following directory: -#***************************************** DELETE BELOW THIS LINE **************************************** + .. code-block:: console - #is this the right place? - GET_OBS: "get_obs" - VX_TN: "run_vx" - VX_ENSGRID_TN: "run_ensgridvx" - VX_ENSGRID_PROB_REFC_TN: "run_ensgridvx_prob_refc" - MAXTRIES_VX_ENSGRID_PROB_REFC: 1 + $STMP/tmpnwprd/$RUN/$cdate + ``PTMP``: (Default: "/base/path/of/directory/containing/postprocessed/output/files") + The beginning portion of the path to the directory that will contain the output files from the post-processor (:term:`UPP`) for a given cycle. For a cycle that starts on the date specified by YYYYMMDD and hour specified by HH (where YYYYMMDD and HH are as described above), the UPP output files will be placed in the following directory: + + .. code-block:: console + $PTMP/com/$NET/$envir/$RUN.$yyyymmdd/$hh +WORKFLOW SWITCHES Configuration Parameters +============================================= +These parameters set flags that determine whether various workflow tasks should be run. When non-default parameters are selected for the variables in this section, they should be added to the ``workflow_switches:`` section of the ``config.yaml`` file. Note that the ``MAKE_GRID_TN``, ``MAKE_OROG_TN``, and ``MAKE_SFC_CLIMO_TN`` are all :term:`cycle-independent` tasks, i.e., if they are run, they only run once at the beginning of the workflow before any cycles are run. +Baseline Workflow Tasks +-------------------------- -Model Configuration Parameters -================================= +``RUN_TASK_MAKE_GRID``: (Default: true) + Flag that determines whether to run the grid file generation task (``MAKE_GRID_TN``). If this is set to true, the grid generation task is run and new grid files are generated. If it is set to false, then the scripts look for pre-generated grid files in the directory specified by ``GRID_DIR`` (see below). -``DT_ATMOS``: (Default: "") - Time step for the outermost atmospheric model loop in seconds. This corresponds to the frequency at which the physics routines and the top level dynamics routine are called. (Note that one call to the top-level dynamics routine results in multiple calls to the horizontal dynamics, tracer transport, and vertical dynamics routines; see the `FV3 dycore scientific documentation `__ for details.) Must be set. Takes an integer value. In the SRW App, a default value for ``DT_ATMOS`` appears in the ``set_predef_grid_params.py`` script, but a different value can be set in ``config.yaml``. +.. COMMENT: see below where? -``RESTART_INTERVAL``: (Default: "0") - Frequency of the output restart files in hours. Using the default interval ("0"), restart files are produced at the end of a forecast run. When ``RESTART_INTERVAL: "1"``, restart files are produced every hour with the prefix "YYYYMMDD.HHmmSS." in the ``RESTART`` directory. +``RUN_TASK_MAKE_OROG``: (Default: true) + Same as ``RUN_TASK_MAKE_GRID`` but for the orography generation task (``MAKE_OROG_TN``). Flag that determines whether to run the orography file generation task (``MAKE_OROG_TN``). If this is set to true, the orography generation task is run and new orography files are generated. If it is set to false, then the scripts look for pre-generated orography files in the directory specified by ``OROG_DIR`` (see below). -.. _InlinePost: +.. COMMENT: see below where? -``WRITE_DOPOST``: (Default: false) - Flag that determines whether to use the INLINE POST option. If TRUE, the ``WRITE_DOPOST`` flag in the ``model_configure`` file will be set to "TRUE", and the post-processing tasks get called from within the weather model so that the post-processed files (in :term:`grib2` format) are output by the Weather Model at the same time that it outputs the ``dynf###.nc`` and ``phyf###.nc`` files. Setting ``WRITE_DOPOST: true`` turns off the separate ``run_post`` task (i.e., ``RUN_TASK_RUN_POST`` is set to false) in ``setup.py``. +``RUN_TASK_MAKE_SFC_CLIMO``: (Default: true) + Same as ``RUN_TASK_MAKE_GRID`` but for the surface climatology generation task (``MAKE_SFC_CLIMO_TN``). Flag that determines whether to run the surface climatology file generation task (``MAKE_SFC_CLIMO_TN``). If this is set to true, the surface climatology generation task is run and new surface climatology files are generated. If it is set to false, then the scripts look for pre-generated surface climatology files in the directory specified by ``SFC_CLIMO_DIR`` (see below). +.. COMMENT: see below where? -Initial and Lateral Boundary Condition Generation Parameters -============================================================ -``EXTRN_MDL_NAME_ICS``: (Default: "FV3GFS") - The name of the external model that will provide fields from which initial condition (IC) files, surface files, and 0-th hour boundary condition files will be generated for input into the forecast model. Valid values: ``"GSMGFS"`` | ``"FV3GFS"`` | ``"RAP"`` | ``"HRRR"`` | ``"NAM"`` +``RUN_TASK_GET_EXTRN_ICS``: (Default: true) + Flag that determines whether to run the ``GET_EXTRN_ICS_TN`` task. -``EXTRN_MDL_NAME_LBCS``: (Default: "FV3GFS") - The name of the external model that will provide fields from which lateral boundary condition (LBC) files (except for the 0-th hour LBC file) will be generated for input into the forecast model. Valid values: ``"GSMGFS"`` | ``"FV3GFS"`` | ``"RAP"`` | ``"HRRR"`` | ``"NAM"`` +``RUN_TASK_GET_EXTRN_LBCS``: (Default: true) + Flag that determines whether to run the ``GET_EXTRN_LBCS_TN`` task. -``LBC_SPEC_INTVL_HRS``: (Default: "6") - The interval (in integer hours) at which LBC files will be generated. This is also referred to as the *boundary specification interval*. Note that the model selected in ``EXTRN_MDL_NAME_LBCS`` must have data available at a frequency greater than or equal to that implied by ``LBC_SPEC_INTVL_HRS``. For example, if ``LBC_SPEC_INTVL_HRS`` is set to "6", then the model must have data available at least every 6 hours. It is up to the user to ensure that this is the case. +``RUN_TASK_MAKE_ICS``: (Default: true) + Flag that determines whether to run the ``MAKE_ICS_TN`` task. -``EXTRN_MDL_ICS_OFFSET_HRS``: (Default: "0") - Users may wish to start a forecast using forecast data from a previous cycle of an external model. This variable indicates how many hours earlier the external model started than the FV3 forecast configured here. For example, if the forecast should start from a 6-hour forecast of the GFS, then ``EXTRN_MDL_ICS_OFFSET_HRS: "6"``. +``RUN_TASK_MAKE_LBCS``: (Default: true) + Flag that determines whether to run the ``MAKE_LBCS_TN`` task. -``EXTRN_MDL_LBCS_OFFSET_HRS``: (Default: "") - Users may wish to use lateral boundary conditions from a forecast that was started earlier than the start of the forecast configured here. This variable indicates how many hours earlier the external model started than the FV3 forecast configured here. For example, if the forecast should use lateral boundary conditions from the GFS started 6 hours earlier, then ``EXTRN_MDL_LBCS_OFFSET_HRS: "6"``. Note: the default value is model-dependent and is set in ``set_extrn_mdl_params.sh``. +``RUN_TASK_RUN_FCST``: (Default: true) + Flag that determines whether to run the ``RUN_FCST_TN`` task. -.. COMMENT: Find file & confirm file extension +``RUN_TASK_RUN_POST``: (Default: true) + Flag that determines whether to run the ``RUN_POST_TN`` task. -``FV3GFS_FILE_FMT_ICS``: (Default: "nemsio") - If using the FV3GFS model as the source of the :term:`ICs` (i.e., if ``EXTRN_MDL_NAME_ICS: "FV3GFS"``), this variable specifies the format of the model files to use when generating the ICs. Valid values: ``"nemsio"`` | ``"grib2"`` | ``"netcdf"`` +.. _VXTasks: -``FV3GFS_FILE_FMT_LBCS``: (Default: "nemsio") - If using the FV3GFS model as the source of the :term:`LBCs` (i.e., if ``EXTRN_MDL_NAME_LBCS: "FV3GFS"``), this variable specifies the format of the model files to use when generating the LBCs. Valid values: ``"nemsio"`` | ``"grib2"`` | ``"netcdf"`` +Verification Tasks +-------------------- +``RUN_TASK_GET_OBS_CCPA``: (Default: false) + Flag that determines whether to run the ``GET_OBS_CCPA_TN`` task, which retrieves the :term:`CCPA` hourly precipitation files used by METplus from NOAA :term:`HPSS`. +.. COMMENT: Not included in this section of config_defaults...? Where is it now? Delete? -Base Directories for External Model Files -=========================================== +``RUN_TASK_GET_OBS_MRMS``: (Default: false) + Flag that determines whether to run the ``GET_OBS_MRMS_TN`` task, which retrieves the :term:`MRMS` composite reflectivity files used by METplus from NOAA HPSS. -.. note:: - These variables must be defined as null strings in ``config_defaults.yaml`` so that if they are specified by the user in the experiment configuration file (``config.yaml``), they remain set to those values, and if not, they get set to machine-dependent values. +.. COMMENT: Not included in this section of config_defaults...? Where is it now? Delete? -``EXTRN_MDL_SYSBASEDIR_ICS``: (Default: "") - Base directory on the local machine containing external model files for generating :term:`ICs` on the native grid. The way the full path containing these files is constructed depends on the user-specified external model for ICs (defined in ``EXTRN_MDL_NAME_ICS`` above). +``RUN_TASK_GET_OBS_NDAS``: (Default: false) + Flag that determines whether to run the ``GET_OBS_NDAS_TN`` task, which retrieves the :term:`NDAS` PrepBufr files used by METplus from NOAA HPSS. -``EXTRN_MDL_SYSBASEDIR_LBCS``: (Default: "") - Base directory on the local machine containing external model files for generating :term:`LBCs` on the native grid. The way the full path containing these files is constructed depends on the user-specified external model for LBCs (defined in ``EXTRN_MDL_NAME_LBCS`` above). +.. COMMENT: Not included in this section of config_defaults...? Where is it now? Delete? -User-Staged External Model Directory and File Parameters -======================================================== -``USE_USER_STAGED_EXTRN_FILES``: (Default: false) - Flag that determines whether the workflow will look for the external model files needed for generating :term:`ICs` and :term:`LBCs` in user-specified directories (rather than fetching them from mass storage like NOAA :term:`HPSS`). +``RUN_TASK_VX_GRIDSTAT``: (Default: false) + Flag that determines whether to run the grid-stat verification task. -``EXTRN_MDL_SOURCE_BASEDIR_ICS``: (Default: "") - Directory containing external model files for generating ICs. If ``USE_USER_STAGED_EXTRN_FILES`` is set to "TRUE", the workflow looks within this directory for a subdirectory named "YYYYMMDDHH", which contains the external model files specified by the array ``EXTRN_MDL_FILES_ICS``. This "YYYYMMDDHH" subdirectory corresponds to the start date and cycle hour of the forecast (see :ref:`above `). These files will be used to generate the :term:`ICs` on the native FV3-LAM grid. This variable is not used if ``USE_USER_STAGED_EXTRN_FILES`` is set to false. - -``EXTRN_MDL_FILES_ICS``: (Default: "ICS_file1" "ICS_file2" "...") - Array containing the file names to search for in the ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` directory. This variable is not used if ``USE_USER_STAGED_EXTRN_FILES`` is set to false. +``RUN_TASK_VX_POINTSTAT``: (Default: false) + Flag that determines whether to run the point-stat verification task. -``EXTRN_MDL_SOURCE_BASEDIR_LBCS``: (Default: "") - Analogous to ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` but for :term:`LBCs` instead of :term:`ICs`. - Directory containing external model files for generating LBCs. If ``USE_USER_STAGED_EXTRN_FILES`` is set to "TRUE", the workflow looks within this directory for a subdirectory named "YYYYMMDDHH", which contains the external model files specified by the array ``EXTRN_MDL_FILES_LBCS``. This "YYYYMMDDHH" subdirectory corresponds to the start date and cycle hour of the forecast (see :ref:`above `). These files will be used to generate the :term:`LBCs` on the native FV3-LAM grid. This variable is not used if ``USE_USER_STAGED_EXTRN_FILES`` is set to false. +``RUN_TASK_VX_ENSGRID``: (Default: false) + Flag that determines whether to run the ensemble-stat verification for gridded data task. -``EXTRN_MDL_FILES_LBCS``: (Default: "") - Analogous to ``EXTRN_MDL_FILES_ICS`` but for :term:`LBCs` instead of :term:`ICs`. Array containing the file names to search for in the ``EXTRN_MDL_SOURCE_BASEDIR_LBCS`` directory. This variable is not used if ``USE_USER_STAGED_EXTRN_FILES`` is set to false. +``RUN_TASK_VX_ENSPOINT``: (Default: false) + Flag that determines whether to run the ensemble point verification task. If this flag is set, both ensemble-stat point verification and point verification of ensemble-stat output is computed. +.. + COMMENT: Might be worth defining "ensemble-stat verification for gridded data," "ensemble point verification," "ensemble-stat point verification," and "point verification of ensemble-stat output" -NOMADS Parameters -====================== -Set parameters associated with NOMADS online data. +MAKE_GRID Configuration Parameters +====================================== -``NOMADS``: (Default: false) - Flag controlling whether to use NOMADS online data. +Non-default parameters for the ``make_grid`` task are set in the ``task_make_grid:`` section of the ``config.yaml`` file. -``NOMADS_file_type``: (Default: "nemsio") - Flag controlling the format of the data. Valid values: ``"GRIB2"`` | ``"grib2"`` | ``"NEMSIO"`` | ``"nemsio"`` +Basic Task Parameters +-------------------------- +For each workflow task, certain parameter values must be passed to the job scheduler (e.g., Slurm), which submits a job for the task. Typically, users do not need to adjust the default values. -Stochastic Physics Parameters -================================ + ``MAKE_GRID_TN``: (Default: "make_grid") + Set the name of this :term:`cycle-independent` Rocoto workflow task. Users typically do not need to change this value. -For the most updated and detailed documentation of these parameters, see the `UFS Stochastic Physics Documentation `__. + ``NNODES_MAKE_GRID``: (Default: 1) + Number of nodes to use for the job. -``NEW_LSCALE``: (Default: true) - Use correct formula for converting a spatial legnth scale into spectral space. + ``PPN_MAKE_GRID``: (Default: 24) + Number of :term:`MPI` processes per node. -Specific Humidity (SHUM) Perturbation Parameters ---------------------------------------------------- + ``WTIME_MAKE_GRID``: (Default: 00:20:00) + Maximum time for the task to complete. -``DO_SHUM``: (Default: false) - Flag to turn Specific Humidity (SHUM) perturbations on or off. SHUM perturbations multiply the low-level specific humidity by a small random number at each time-step. The SHUM scheme attempts to address missing physics phenomena (e.g., cold pools, gust fronts) most active in convective regions. + ``MAXTRIES_MAKE_GRID``: (Default: 2) + Maximum number of times to attempt the task. -``ISEED_SHUM``: (Default: "2") - Seed for setting the SHUM random number sequence. + ``GRID_DIR``: (Default: "") + The directory containing pre-generated grid files when ``RUN_TASK_MAKE_GRID`` is set to false. -``SHUM_MAG``: (Default: "0.006") - Amplitudes of random patterns. Corresponds to the variable ``shum`` in ``input.nml``. -``SHUM_LSCALE``: (Default: "150000") - Decorrelation spatial scale in meters. +GFDLgrid Settings +--------------------- -``SHUM_TSCALE``: (Default: "21600") - Decorrelation timescale in seconds. Corresponds to the variable ``shum_tau`` in ``input.nml``. +The following parameters must be set if using the "GFDLgrid" method to generate a regional grid (i.e., when ``GRID_GEN_METHOD: "GFDLgrid"``, see :numref:`Section %s `). If a different ``GRID_GEN_METHOD`` is used, these parameters will be ignored. When using a predefined grid with ``GRID_GEN_METHOD: "GFDLgrid"``, the values in this section will be set automatically to the assigned values for that grid. -``SHUM_INT``: (Default: "3600") - Interval in seconds to update random pattern (optional). Perturbations still get applied at every time-step. Corresponds to the variable ``shumint`` in ``input.nml``. +Note that the regional grid is defined with respect to a "parent" global cubed-sphere grid. Thus, all the parameters for a global cubed-sphere grid must be specified even though the model equations are integrated only on the regional grid. Tile 6 has arbitrarily been chosen as the tile to use to orient the global parent grid on the sphere (Earth). For convenience, the regional grid is denoted as "tile 7" even though it is embedded within tile 6 (i.e., it doesn't extend beyond the boundary of tile 6). Its exact location within tile 6 is determined by specifying the starting and ending i- and j-indices of the regional grid on tile 6, where ``i`` is the grid index in the x direction and ``j`` is the grid index in the y direction. All of this information is set in the variables below. -.. _SPPT: +``GFDLgrid_LON_T6_CTR``: (Default: "") + Longitude of the center of tile 6 (in degrees). -Stochastically Perturbed Physics Tendencies (SPPT) Parameters ------------------------------------------------------------------ +``GFDLgrid_LAT_T6_CTR``: (Default: "") + Latitude of the center of tile 6 (in degrees). -SPPT perturbs full physics tendencies *after* the call to the physics suite, unlike :ref:`SPP ` (below), which perturbs specific tuning parameters within a physics scheme. +``GFDLgrid_NUM_CELLS``: (Default: "") + Number of grid cells in either of the two horizontal directions (x and y) on each of the six tiles of the parent global cubed-sphere grid. Valid values: ``"48"`` | ``"96"`` | ``"192"`` | ``"384"`` | ``"768"`` | ``"1152"`` | ``"3072"`` -``DO_SPPT``: (Default: false) - Flag to turn Stochastically Perturbed Physics Tendencies (SPPT) on or off. SPPT multiplies the physics tendencies by a random number between 0 and 2 before updating the model state. This addresses error in the physics parameterizations (either missing physics or unresolved subgrid processes). It is most active in the boundary layer and convective regions. + To give an idea of what these values translate to in terms of grid cell size in kilometers, we list below the approximate grid cell size on a uniform global grid having the specified value of ``GFDLgrid_NUM_CELLS``, where by "uniform" we mean with Schmidt stretch factor ``GFDLgrid_STRETCH_FAC: "1"`` (although in regional applications ``GFDLgrid_STRETCH_FAC`` will typically be set to a value greater than ``"1"`` to obtain a smaller grid size on tile 6): -``ISEED_SPPT``: (Default: "1") - Seed for setting the SPPT random number sequence. + .. COMMENT: Add/change above? + # The mapping from GFDLgrid_NUM_CELLS to a nominal + # resolution (grid cell size) for a uniform global grid (i.e. Schmidt + # stretch factor GFDLgrid_STRETCH_FAC set to 1) for several values of + # GFDLgrid_NUM_CELLS is as follows: -``SPPT_MAG``: (Default: "0.7") - Amplitude of random patterns. Corresponds to the variable ``sppt`` in ``input.nml``. + +---------------------+--------------------+ + | GFDLgrid_NUM_CELLS | typical cell size | + +=====================+====================+ + | 48 | 200 km | + +---------------------+--------------------+ + | 96 | 100 km | + +---------------------+--------------------+ + | 192 | 50 km | + +---------------------+--------------------+ + | 384 | 25 km | + +---------------------+--------------------+ + | 768 | 13 km | + +---------------------+--------------------+ + | 1152 | 8.5 km | + +---------------------+--------------------+ + | 3072 | 3.2 km | + +---------------------+--------------------+ -``SPPT_LOGIT``: (Default: "TRUE") - Limits the SPPT perturbations to between 0 and 2. Should be "TRUE"; otherwise the model will crash. + Note that these are only typical cell sizes. The actual cell size on the global grid tiles varies somewhat as we move across a tile and is also dependent on ``GFDLgrid_STRETCH_FAC``, which modifies the shape and size of the tile. -``SPPT_LSCALE``: (Default: "150000") - Decorrelation spatial scale in meters. +``GFDLgrid_STRETCH_FAC``: (Default: "") + Stretching factor used in the Schmidt transformation applied to the parent cubed-sphere grid. Setting the Schmidt stretching factor to a value greater than 1 shrinks tile 6, while setting it to a value less than 1 (but still greater than 0) expands it. The remaining 5 tiles change shape as necessary to maintain global coverage of the grid. -``SPPT_TSCALE``: (Default: "21600") - Decorrelation timescale in seconds. Corresponds to the variable ``sppt_tau`` in ``input.nml``. - -``SPPT_INT``: (Default: "3600") - Interval in seconds to update random pattern (optional parameter). Perturbations still get applied at every time-step. Corresponds to the variable ``spptint`` in ``input.nml``. +``GFDLgrid_REFINE_RATIO``: (Default: "") + Cell refinement ratio for the regional grid. It refers to the number of cells in either the x or y direction on the regional grid (tile 7) that abut one cell on its parent tile (tile 6). -``SPPT_SFCLIMIT``: (Default: "TRUE") - When "TRUE", tapers the SPPT perturbations to zero at the model's lowest level, which reduces model crashes. +``GFDLgrid_ISTART_OF_RGNL_DOM_ON_T6G``: (Default: "") + i-index on tile 6 at which the regional grid (tile 7) starts. -``USE_ZMTNBLCK``: (Default: false) - When "TRUE", do not apply perturbations below the dividing streamline that is diagnosed by the gravity wave drag, mountain blocking scheme +``GFDLgrid_IEND_OF_RGNL_DOM_ON_T6G``: (Default: "") + i-index on tile 6 at which the regional grid (tile 7) ends. -Stochastic Kinetic Energy Backscatter (SKEB) Parameters ----------------------------------------------------------- +``GFDLgrid_JSTART_OF_RGNL_DOM_ON_T6G``: (Default: "") + j-index on tile 6 at which the regional grid (tile 7) starts. -``DO_SKEB``: (Default: false) - Flag to turn Stochastic Kinetic Energy Backscatter (SKEB) on or off. SKEB adds wind perturbations to the model state. Perturbations are random in space/time, but amplitude is determined by a smoothed dissipation estimate provided by the :term:`dynamical core`. SKEB addresses errors in the dynamics more active in the mid-latitudes. +``GFDLgrid_JEND_OF_RGNL_DOM_ON_T6G``: (Default: "") + j-index on tile 6 at which the regional grid (tile 7) ends. -``ISEED_SKEB``: (Default: "3") - Seed for setting the SHUM random number sequence. +``GFDLgrid_USE_NUM_CELLS_IN_FILENAMES``: (Default: "") + Flag that determines the file naming convention to use for grid, orography, and surface climatology files (or, if using pregenerated files, the naming convention that was used to name these files). These files usually start with the string ``"C${RES}_"``, where ``RES`` is an integer. In the global forecast model, ``RES`` is the number of points in each of the two horizontal directions (x and y) on each tile of the global grid (defined here as ``GFDLgrid_NUM_CELLS``). If this flag is set to true, ``RES`` will be set to ``GFDLgrid_NUM_CELLS`` just as in the global forecast model. If it is set to false, we calculate (in the grid generation task) an "equivalent global uniform cubed-sphere resolution" --- call it ``RES_EQUIV`` --- and then set ``RES`` equal to it. ``RES_EQUIV`` is the number of grid points in each of the x and y directions on each tile that a global UNIFORM (i.e., stretch factor of 1) cubed-sphere grid would need to have in order to have the same average grid size as the regional grid. This is a more useful indicator of the grid size because it takes into account the effects of ``GFDLgrid_NUM_CELLS``, ``GFDLgrid_STRETCH_FAC``, and ``GFDLgrid_REFINE_RATIO`` in determining the regional grid's typical grid size, whereas simply setting ``RES`` to ``GFDLgrid_NUM_CELLS`` doesn't take into account the effects of ``GFDLgrid_STRETCH_FAC`` and ``GFDLgrid_REFINE_RATIO`` on the regional grid's resolution. Nevertheless, some users still prefer to use ``GFDLgrid_NUM_CELLS`` in the file names, so we allow for that here by setting this flag to true. -``SKEB_MAG``: (Default: "0.5") - Amplitude of random patterns. Corresponds to the variable ``skeb`` in ``input.nml``. +.. _ESGgrid: -``SKEB_LSCALE``: (Default: "150000") - Decorrelation spatial scale in meters. +ESGgrid Settings +------------------- -``SKEB_TSCALE``: (Default: "21600") - Decorrelation timescale in seconds. Corresponds to the variable ``skeb_tau`` in ``input.nml``. +The following parameters must be set if using the "ESGgrid" method to generate a regional grid (i.e., when ``GRID_GEN_METHOD: "ESGgrid"``, see :numref:`Section %s `). If a different ``GRID_GEN_METHOD`` is used, these parameters will be ignored. When using a predefined grid with ``GRID_GEN_METHOD: "ESGgrid"``, the values in this section will be set automatically to the assigned values for that grid. -``SKEB_INT``: (Default: "3600") - Interval in seconds to update random pattern (optional). Perturbations still get applied every time-step. Corresponds to the variable ``skebint`` in ``input.nml``. +``ESGgrid_LON_CTR``: (Default: "") + The longitude of the center of the grid (in degrees). -``SKEBNORM``: (Default: "1") - Patterns: - * 0-random pattern is stream function - * 1-pattern is K.E. norm - * 2-pattern is vorticity +``ESGgrid_LAT_CTR``: (Default: "") + The latitude of the center of the grid (in degrees). -``SKEB_VDOF``: (Default: "10") - The number of degrees of freedom in the vertical direction for the SKEB random pattern. +``ESGgrid_DELX``: (Default: "") + The cell size in the zonal direction of the regional grid (in meters). -.. _SPP: +``ESGgrid_DELY``: (Default: "") + The cell size in the meridional direction of the regional grid (in meters). -Parameters for Stochastically Perturbed Parameterizations (SPP) ------------------------------------------------------------------- +``ESGgrid_NX``: (Default: "") + The number of cells in the zonal direction on the regional grid. -SPP perturbs specific tuning parameters within a physics :term:`parameterization ` (unlike :ref:`SPPT `, which multiplies overall physics tendencies by a random perturbation field *after* the call to the physics suite). Each SPP option is an array, applicable (in order) to the :term:`RAP`/:term:`HRRR`-based parameterization listed in ``SPP_VAR_LIST``. Enter each value of the array in ``config.yaml`` as shown below without commas or single quotes (e.g., ``SPP_VAR_LIST: [ "pbl" "sfc" "mp" "rad" "gwd" ]`` ). Both commas and single quotes will be added by Jinja when creating the namelist. +``ESGgrid_NY``: (Default: "") + The number of cells in the meridional direction on the regional grid. -.. note:: - SPP is currently only available for specific physics schemes used in the RAP/HRRR physics suite. Users need to be aware of which :term:`SDF` is chosen when turning this option on. Among the supported physics suites, the full set of parameterizations can only be used with the ``FV3_HRRR`` option for ``CCPP_PHYS_SUITE``. +``ESGgrid_PAZI``: (Default: "") + The rotational parameter for the "ESGgrid" (in degrees). -``DO_SPP``: (Default: false) - Flag to turn SPP on or off. SPP perturbs parameters or variables with unknown or uncertain magnitudes within the physics code based on ranges provided by physics experts. +``ESGgrid_WIDE_HALO_WIDTH``: (Default: "") + The width (in number of grid cells) of the :term:`halo` to add around the regional grid before shaving the halo down to the width(s) expected by the forecast model. The user need not specify this variable since it is set automatically in ``set_gridparams_ESGgrid.py`` -``ISEED_SPP``: (Default: ( "4" "4" "4" "4" "4" ) ) - Seed for setting the random number sequence for the perturbation pattern. +.. _WideHalo: -``SPP_MAG_LIST``: (Default: ( "0.2" "0.2" "0.75" "0.2" "0.2" ) ) - SPP perturbation magnitudes used in each parameterization. Corresponds to the variable ``spp_prt_list`` in ``input.nml`` +.. note:: + A :term:`halo` is the strip of cells surrounding the regional grid; the halo is used to feed in the lateral boundary conditions to the grid. The forecast model requires **grid** files containing 3-cell- and 4-cell-wide halos and **orography** files with 0-cell- and 3-cell-wide halos. In order to generate grid and orography files with appropriately-sized halos, the grid and orography tasks create preliminary files with halos around the regional domain of width ``ESGgrid_WIDE_HALO_WIDTH`` cells. The files are then read in and "shaved" down to obtain grid files with 3-cell-wide and 4-cell-wide halos and orography files with 0-cell-wide and 3-cell-wide halos. The original halo that gets shaved down is referred to as the "wide" halo because it is wider than the 0-cell-wide, 3-cell-wide, and 4-cell-wide halos that users eventually end up with. Note that the grid and orography files with the wide halo are only needed as intermediates in generating the files with 0-cell-, 3-cell-, and 4-cell-wide halos; they are not needed by the forecast model. -``SPP_LSCALE``: (Default: ( "150000.0" "150000.0" "150000.0" "150000.0" "150000.0" ) ) - Decorrelation spatial scales in meters. - -``SPP_TSCALE``: (Default: ( "21600.0" "21600.0" "21600.0" "21600.0" "21600.0" ) ) - Decorrelation timescales in seconds. Corresponds to the variable ``spp_tau`` in ``input.nml``. -``SPP_SIGTOP1``: (Default: ( "0.1" "0.1" "0.1" "0.1" "0.1") ) - Controls vertical tapering of perturbations at the tropopause and corresponds to the lower sigma level at which to taper perturbations to zero. + +MAKE_OROG Configuration Parameters +===================================== -``SPP_SIGTOP2``: (Default: ( "0.025" "0.025" "0.025" "0.025" "0.025" ) ) - Controls vertical tapering of perturbations at the tropopause and corresponds to the upper sigma level at which to taper perturbations to zero. +Non-default parameters for the ``make_orog`` task are set in the ``task_make_orog:`` section of the ``config.yaml`` file. -``SPP_STDDEV_CUTOFF``: (Default: ( "1.5" "1.5" "2.5" "1.5" "1.5" ) ) - Limit for possible perturbation values in standard deviations from the mean. +``MAKE_OROG_TN``: (Default: "make_orog") + Set the name of this :term:`cycle-independent` Rocoto workflow task. Users typically do not need to change this value. -``SPP_VAR_LIST``: (Default: ( "pbl" "sfc" "mp" "rad" "gwd" ) ) - The list of parameterizations to perturb: planetary boundary layer (PBL), surface physics (SFC), microphysics (MP), radiation (RAD), gravity wave drag (GWD). Valid values: ``"pbl"`` | ``"sfc"`` | ``"rad"`` | ``"gwd"`` | ``"mp"`` +``NNODES_MAKE_OROG``: (Default: 1) + Number of nodes to use for the job. +``PPN_MAKE_OROG``: (Default: 24) + Number of :term:`MPI` processes per node. -Land Surface Model (LSM) SPP -------------------------------- +``WTIME_MAKE_OROG``: (Default: 00:20:00) + Maximum time for the task to complete. -Land surface perturbations can be applied to land model parameters and land model prognostic variables. The LSM scheme is intended to address errors in the land model and land-atmosphere interactions. LSM perturbations include soil moisture content (SMC) (volume fraction), vegetation fraction (VGF), albedo (ALB), salinity (SAL), emissivity (EMI), surface roughness (ZOL) (in cm), and soil temperature (STC). Perturbations to soil moisture content (SMC) are only applied at the first time step. Only five perturbations at a time can be applied currently, but all seven are shown below. In addition, only one unique *iseed* value is allowed at the moment, and it is used for each pattern. +``MAXTRIES_MAKE_OROG``: (Default: 2) + Maximum number of times to attempt the task. -The parameters below turn on SPP in Noah or RUC LSM (support for Noah MP is in progress). Please be aware of the :term:`SDF` that you choose if you wish to turn on Land Surface Model (LSM) SPP. SPP in LSM schemes is handled in the ``&nam_sfcperts`` namelist block instead of in ``&nam_sppperts``, where all other SPP is implemented. The default perturbation frequency is determined by the ``fhcyc`` namelist entry. Since that parameter is set to zero in the SRW App, use ``LSM_SPP_EACH_STEP`` to perturb every time step. +``KMP_AFFINITY_MAKE_OROG``: (Default: "disabled") + Intel Thread Affinity Interface for the ``make_orog`` task. See :ref:`this note ` for more information on thread affinity. Settings for the ``make_orog`` task is disabled because this task does not use parallelized code. -``DO_LSM_SPP``: (Default: false) - Turns on Land Surface Model (LSM) Stochastic Physics Parameterizations (SPP). When "TRUE", sets ``lndp_type=2``, which applies land perturbations to the selected paramaters using a newer scheme designed for data assimilation (DA) ensemble spread. LSM SPP perturbs uncertain land surface fields ("smc" "vgf" "alb" "sal" "emi" "zol" "stc") based on recommendations from physics experts. +``OMP_NUM_THREADS_MAKE_OROG``: (Default: 6) + The number of OpenMP threads to use for parallel regions. -``LSM_SPP_TSCALE``: (Default: ( ( "21600" "21600" "21600" "21600" "21600" "21600" "21600" ) ) ) - Decorrelation timescales in seconds. +``OMP_STACKSIZE_MAKE_OROG``: (Default: "2048m") + Controls the size of the stack for threads created by the OpenMP implementation. -``LSM_SPP_LSCALE``: (Default: ( ( "150000" "150000" "150000" "150000" "150000" "150000" "150000" ) ) ) - Decorrelation spatial scales in meters. +``OROG_DIR``: (Default: "") + The directory containing pre-generated orography files to use when ``MAKE_OROG_TN`` is set to false. -``ISEED_LSM_SPP``: (Default: ("9") ) - Seed to initialize the random perturbation pattern. +MAKE_SFC_CLIMO Configuration Parameters +=========================================== -``LSM_SPP_VAR_LIST``: (Default: ( ( "smc" "vgf" "alb" "sal" "emi" "zol" "stc" ) ) ) - Indicates which LSM variables to perturb. +Non-default parameters for the ``make_sfc_climo`` task are set in the ``task_make_sfc_climo:`` section of the ``config.yaml`` file. -``LSM_SPP_MAG_LIST``: (Default: ( ( "0.2" "0.001" "0.001" "0.001" "0.001" "0.001" "0.2" ) ) ) - Sets the maximum random pattern amplitude for each of the LSM perturbations. +``MAKE_SFC_CLIMO_TN``: "make_sfc_climo" + Set the name of this :term:`cycle-independent` Rocoto workflow task. Users typically do not need to change this value. -``LSM_SPP_EACH_STEP``: (Default: "true") - When set to "TRUE", it sets ``lndp_each_step=.true.`` and perturbs each time step. +``NNODES_MAKE_SFC_CLIMO``: (Default: 2) + Number of nodes to use for the job. -.. _PredefGrid: +``PPN_MAKE_SFC_CLIMO``: (Default: 24) + Number of :term:`MPI` processes per node. -Predefined Grid Parameters -========================== -``PREDEF_GRID_NAME``: (Default: "") - This parameter indicates which (if any) predefined regional grid to use for the experiment. Setting ``PREDEF_GRID_NAME`` provides a convenient method of specifying a commonly used set of grid-dependent parameters. The predefined grid settings can be viewed in the script ``ush/set_predef_grid_params.py``. - - **Currently supported options:** - - | ``"RRFS_CONUS_25km"`` - | ``"RRFS_CONUS_13km"`` - | ``"RRFS_CONUS_3km"`` - | ``"SUBCONUS_Ind_3km"`` - - **Other valid values include:** +``WTIME_MAKE_SFC_CLIMO``: (Default: 00:20:00) + Maximum time for the task to complete. - | ``"CONUS_25km_GFDLgrid"`` - | ``"CONUS_3km_GFDLgrid"`` - | ``"EMC_AK"`` - | ``"EMC_HI"`` - | ``"EMC_PR"`` - | ``"EMC_GU"`` - | ``"GSL_HAFSV0.A_25km"`` - | ``"GSL_HAFSV0.A_13km"`` - | ``"GSL_HAFSV0.A_3km"`` - | ``"GSD_HRRR_AK_50km"`` - | ``"RRFS_AK_13km"`` - | ``"RRFS_AK_3km"`` - | ``"RRFS_CONUScompact_25km"`` - | ``"RRFS_CONUScompact_13km"`` - | ``"RRFS_CONUScompact_3km"`` - | ``"RRFS_NA_13km"`` - | ``"RRFS_NA_3km"`` - | ``"RRFS_SUBCONUS_3km"`` - | ``"WoFS_3km"`` +``MAXTRIES_MAKE_SFC_CLIMO``: (Default: 2) + Maximum number of times to attempt the task. -.. note:: +``KMP_AFFINITY_MAKE_SFC_CLIMO``: (Default: "scatter") + Intel Thread Affinity Interface for the ``make_sfc_climo`` task. See :ref:`this note ` for more information on thread affinity. - * If ``PREDEF_GRID_NAME`` is set to a valid predefined grid name, the grid generation method, the (native) grid parameters, and the write component grid parameters are set to predefined values for the specified grid, overwriting any settings of these parameters in the user-specified experiment configuration file (``config.yaml``). In addition, if the time step ``DT_ATMOS`` and the computational parameters (``LAYOUT_X``, ``LAYOUT_Y``, and ``BLOCKSIZE``) are not specified in that configuration file, they are also set to predefined values for the specified grid. +``OMP_NUM_THREADS_MAKE_SFC_CLIMO``: (Default: 1) + The number of OpenMP threads to use for parallel regions. - * If ``PREDEF_GRID_NAME`` is set to an empty string, it implies that the user will provide the native grid parameters in the user-specified experiment configuration file (``config.yaml``). In this case, the grid generation method, the native grid parameters, the write component grid parameters, the main time step (``DT_ATMOS``), and the computational parameters (``LAYOUT_X``, ``LAYOUT_Y``, and ``BLOCKSIZE``) must be set in the configuration file. Otherwise, the values of the parameters in the default experiment configuration file (``config_defaults.yaml``) will be used. +``OMP_STACKSIZE_MAKE_SFC_CLIMO``: (Default: "1024m") + Controls the size of the stack for threads created by the OpenMP implementation. +``SFC_CLIMO_DIR``: (Default: "") + The directory containing pre-generated surface climatology files to use when ``MAKE_SFC_CLIMO_TN`` is set to false. +GET_EXTRN_ICS Configuration Parameters +========================================= -.. _ESGgrid: +Non-default parameters for the ``get_extrn_ics`` task are set in the ``task_get_extrn_ics:`` section of the ``config.yaml`` file. -ESGgrid Settings -------------------- +Basic Task Parameters +--------------------------------- -The following parameters must be set if using the "ESGgrid" method to generate a regional grid (i.e., when ``GRID_GEN_METHOD: "ESGgrid"``). +For each workflow task, certain parameter values must be passed to the job scheduler (e.g., Slurm), which submits a job for the task. -``ESGgrid_LON_CTR``: (Default: "") - The longitude of the center of the grid (in degrees). +``GET_EXTRN_ICS_TN``: (Default: "get_extrn_ics") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. -``ESGgrid_LAT_CTR``: (Default: "") - The latitude of the center of the grid (in degrees). +``NNODES_GET_EXTRN_ICS``: (Default: 1) + Number of nodes to use for the job. -``ESGgrid_DELX``: (Default: "") - The cell size in the zonal direction of the regional grid (in meters). +``PPN_GET_EXTRN_ICS``: (Default: 1) + Number of :term:`MPI` processes per node. -``ESGgrid_DELY``: (Default: "") - The cell size in the meridional direction of the regional grid (in meters). +``WTIME_GET_EXTRN_ICS``: (Default: 00:45:00) + Maximum time for the task to complete. -``ESGgrid_NX``: (Default: "") - The number of cells in the zonal direction on the regional grid. +``MAXTRIES_GET_EXTRN_ICS``: (Default: 1) + Maximum number of times to attempt the task. -``ESGgrid_NY``: (Default: "") - The number of cells in the meridional direction on the regional grid. +``EXTRN_MDL_NAME_ICS``: (Default: "FV3GFS") + The name of the external model that will provide fields from which initial condition (IC) files, surface files, and 0-th hour boundary condition files will be generated for input into the forecast model. Valid values: ``"GSMGFS"`` | ``"FV3GFS"`` | ``"RAP"`` | ``"HRRR"`` | ``"NAM"`` -``ESGgrid_PAZI``: (Default: "") - The rotational parameter for the "ESGgrid" (in degrees). +``EXTRN_MDL_ICS_OFFSET_HRS``: (Default: 0) + Users may wish to start a forecast using forecast data from a previous cycle of an external model. This variable indicates how many hours earlier the external model started than the FV3 forecast configured here. For example, if the forecast should start from a 6-hour forecast of the GFS, then ``EXTRN_MDL_ICS_OFFSET_HRS: "6"``. -``ESGgrid_WIDE_HALO_WIDTH``: (Default: "") - The width (in number of grid cells) of the :term:`halo` to add around the regional grid before shaving the halo down to the width(s) expected by the forecast model. +``FV3GFS_FILE_FMT_ICS``: (Default: "nemsio") + If using the FV3GFS model as the source of the :term:`ICs` (i.e., if ``EXTRN_MDL_NAME_ICS: "FV3GFS"``), this variable specifies the format of the model files to use when generating the ICs. Valid values: ``"nemsio"`` | ``"grib2"`` | ``"netcdf"`` -.. _WideHalo: +File and Directory Parameters +-------------------------------- -.. note:: - A :term:`halo` is the strip of cells surrounding the regional grid; the halo is used to feed in the lateral boundary conditions to the grid. The forecast model requires **grid** files containing 3-cell- and 4-cell-wide halos and **orography** files with 0-cell- and 3-cell-wide halos. In order to generate grid and orography files with appropriately-sized halos, the grid and orography tasks create preliminary files with halos around the regional domain of width ``ESGgrid_WIDE_HALO_WIDTH`` cells. The files are then read in and "shaved" down to obtain grid files with 3-cell-wide and 4-cell-wide halos and orography files with 0-cell-wide and 3-cell-wide halos. The original halo that gets shaved down is referred to as the "wide" halo because it is wider than the 0-cell-wide, 3-cell-wide, and 4-cell-wide halos that users eventually end up with. Note that the grid and orography files with the wide halo are only needed as intermediates in generating the files with 0-cell-, 3-cell-, and 4-cell-wide halos; they are not needed by the forecast model. +``EXTRN_MDL_SYSBASEDIR_ICS``: (Default: '') + Base directory on the local machine containing external model files for generating :term:`ICs` on the native grid. The way the full path containing these files is constructed depends on the user-specified external model for ICs (defined in ``EXTRN_MDL_NAME_ICS`` above). -GFDLgrid Settings +``USE_USER_STAGED_EXTRN_FILES``: (Default: false) + Flag that determines whether the workflow will look for the external model files needed for generating :term:`ICs` in user-specified directories (rather than fetching them from mass storage like NOAA :term:`HPSS`). + + .. COMMENT: Current definition in config_defaults only lists LBCs, but it's in the ICs section... + +``EXTRN_MDL_SOURCE_BASEDIR_ICS``: (Default: "") + Directory containing external model files for generating ICs. If ``USE_USER_STAGED_EXTRN_FILES`` is set to true, the workflow looks within this directory for a subdirectory named "YYYYMMDDHH", which contains the external model files specified by the array ``EXTRN_MDL_FILES_ICS``. This "YYYYMMDDHH" subdirectory corresponds to the start date and cycle hour of the forecast (see :ref:`above `). These files will be used to generate the :term:`ICs` on the native FV3-LAM grid. This variable is not used if ``USE_USER_STAGED_EXTRN_FILES`` is set to false. + +``EXTRN_MDL_FILES_ICS``: (Default: "") + Array containing templates of the file names to search for in the ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` directory. This variable is not used if ``USE_USER_STAGED_EXTRN_FILES`` is set to false. A single template should be used for each model file type that is used. Users may use any of the Python-style templates allowed in the ``ush/retrieve_data.py`` script. To see the full list of supported templates, run that script with the ``-h`` option. + + For example, to set FV3GFS nemsio input files: + + .. code-block:: console + + EXTRN_MDL_FILES_ICS=( gfs.t{hh}z.atmf{fcst_hr:03d}.nemsio \ + gfs.t{hh}z.sfcf{fcst_hr:03d}.nemsio ) + + To set FV3GFS grib files: + + .. code-block:: console + + EXTRN_MDL_FILES_ICS=( gfs.t{hh}z.pgrb2.0p25.f{fcst_hr:03d} ) + +``EXTRN_MDL_DATA_STORES``: (Default: "") + A list of data stores where the scripts should look to find external model data. The list is in priority order. If disk information is provided via ``USE_USER_STAGED_EXTRN_FILES`` or a known location on the platform, the disk location will receive highest priority. Valid values: ``disk`` | ``hpss`` | ``aws`` | ``nomads`` + +NOMADS Parameters --------------------- -The following parameters must be set if using the "GFDLgrid" method to generate a regional grid (i.e., when ``GRID_GEN_METHOD: "GFDLgrid"``). Note that the regional grid is defined with respect to a "parent" global cubed-sphere grid. Thus, all the parameters for a global cubed-sphere grid must be specified even though the model equations are integrated only on the regional grid. Tile 6 has arbitrarily been chosen as the tile to use to orient the global parent grid on the sphere (Earth). For convenience, the regional grid is denoted as "tile 7" even though it is embedded within tile 6 (i.e., it doesn't extend beyond the boundary of tile 6). Its exact location within tile 6 is determined by specifying the starting and ending i- and j-indices of the regional grid on tile 6, where ``i`` is the grid index in the x direction and ``j`` is the grid index in the y direction. All of this information is set in the variables below. +Set parameters associated with NOMADS online data. -``GFDLgrid_LON_T6_CTR``: (Default: "") - Longitude of the center of tile 6 (in degrees). +``NOMADS``: (Default: false) + Flag controlling whether to use NOMADS online data. -``GFDLgrid_LAT_T6_CTR``: (Default: "") - Latitude of the center of tile 6 (in degrees). +``NOMADS_file_type``: (Default: "nemsio") + Flag controlling the format of the data. Valid values: ``"GRIB2"`` | ``"grib2"`` | ``"NEMSIO"`` | ``"nemsio"`` -``GFDLgrid_NUM_CELLS``: (Default: "") - Number of grid cells in either of the two horizontal directions (x and y) on each of the six tiles of the parent global cubed-sphere grid. Valid values: ``"48"`` | ``"96"`` | ``"192"`` | ``"384"`` | ``"768"`` | ``"1152"`` | ``"3072"`` - To give an idea of what these values translate to in terms of grid cell size in kilometers, we list below the approximate grid cell size on a uniform global grid having the specified value of ``GFDLgrid_NUM_CELLS``, where by "uniform" we mean with Schmidt stretch factor ``GFDLgrid_STRETCH_FAC: "1"`` (although in regional applications ``GFDLgrid_STRETCH_FAC`` will typically be set to a value greater than ``"1"`` to obtain a smaller grid size on tile 6): +GET_EXTRN_LBCS Configuration Parameters +========================================== - +---------------------+--------------------+ - | GFDLgrid_NUM_CELLS | typical cell size | - +=====================+====================+ - | 48 | 208 km | - +---------------------+--------------------+ - | 96 | 104 km | - +---------------------+--------------------+ - | 192 | 52 km | - +---------------------+--------------------+ - | 384 | 26 km | - +---------------------+--------------------+ - | 768 | 13 km | - +---------------------+--------------------+ - | 1152 | 8.7 km | - +---------------------+--------------------+ - | 3072 | 3.3 km | - +---------------------+--------------------+ +Non-default parameters for the ``get_extrn_lbcs`` task are set in the ``task_get_extrn_lbcs:`` section of the ``config.yaml`` file. + +Basic Task Parameters +--------------------------------- + +For each workflow task, certain parameter values must be passed to the job scheduler (e.g., Slurm), which submits a job for the task. + +``GET_EXTRN_LBCS_TN``: (Default: "get_extrn_lbcs") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. + +``NNODES_GET_EXTRN_LBCS``: (Default: 1) + Number of nodes to use for the job. + +``PPN_GET_EXTRN_LBCS``: (Default: 1) + Number of :term:`MPI` processes per node. + +``WTIME_GET_EXTRN_LBCS``: (Default: 00:45:00) + Maximum time for the task to complete. + +``MAXTRIES_GET_EXTRN_LBCS``: (Default: 1) + Maximum number of times to attempt the task. + +``EXTRN_MDL_NAME_LBCS``: (Default: "FV3GFS") + The name of the external model that will provide fields from which lateral boundary condition (LBC) files (except for the 0-th hour LBC file) will be generated for input into the forecast model. Valid values: ``"GSMGFS"`` | ``"FV3GFS"`` | ``"RAP"`` | ``"HRRR"`` | ``"NAM"`` + + .. COMMENT: The "except" parenthetical is not in config defaults... + +``LBC_SPEC_INTVL_HRS``: (Default: "6") + The interval (in integer hours) at which LBC files will be generated. This is also referred to as the *boundary update interval*. Note that the model selected in ``EXTRN_MDL_NAME_LBCS`` must have data available at a frequency greater than or equal to that implied by ``LBC_SPEC_INTVL_HRS``. For example, if ``LBC_SPEC_INTVL_HRS`` is set to "6", then the model must have data available at least every 6 hours. It is up to the user to ensure that this is the case. + +``EXTRN_MDL_LBCS_OFFSET_HRS``: (Default: "") + Users may wish to use lateral boundary conditions from a forecast that was started earlier than the start of the forecast configured here. This variable indicates how many hours earlier the external model started than the FV3 forecast configured here. For example, if the forecast should use lateral boundary conditions from the GFS started 6 hours earlier, then ``EXTRN_MDL_LBCS_OFFSET_HRS: "6"``. Note: the default value is model-dependent and is set in ``set_extrn_mdl_params.sh``. + +.. COMMENT: Find file & confirm file extension + +``FV3GFS_FILE_FMT_LBCS``: (Default: "nemsio") + If using the FV3GFS model as the source of the :term:`LBCs` (i.e., if ``EXTRN_MDL_NAME_LBCS: "FV3GFS"``), this variable specifies the format of the model files to use when generating the LBCs. Valid values: ``"nemsio"`` | ``"grib2"`` | ``"netcdf"`` + + +File and Directory Parameters +-------------------------------- + +``EXTRN_MDL_SYSBASEDIR_LBCS``: (Default: '') + Same as ``EXTRN_MDL_SYSBASEDIR_ICS`` but for :term:`LBCs`. Base directory on the local machine containing external model files for generating LBCs on the native grid. The way the full path containing these files is constructed depends on the user-specified external model for LBCs (defined in ``EXTRN_MDL_NAME_LBCS`` above). + + .. note:: + This variable must be defined as null strings in ``config_defaults.yaml`` so that if they are specified by the user in the experiment configuration file (``config.yaml``), they remain set to those values, and if not, they get set to machine-dependent values. + + .. COMMENT: In the original config_defaults, the note applied to the ICS version, too. The current config_defaults comments still talk about "these"/"they"... Add the note above with ICS, too? + +``USE_USER_STAGED_EXTRN_FILES``: (Default: false) + Analogous to ``USE_USER_STAGED_EXTRN_FILES`` in :term:`ICs` but for :term:`LBCs`. Flag that determines whether the workflow will look for the external model files needed for generating :term:`LBCs` in user-specified directories (rather than fetching them from mass storage like NOAA :term:`HPSS`). + +``EXTRN_MDL_SOURCE_BASEDIR_LBCS``: (Default: "") + Analogous to ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` but for :term:`LBCs` instead of :term:`ICs`. + Directory containing external model files for generating LBCs. If ``USE_USER_STAGED_EXTRN_FILES`` is set to true, the workflow looks within this directory for a subdirectory named "YYYYMMDDHH", which contains the external model files specified by the array ``EXTRN_MDL_FILES_LBCS``. This "YYYYMMDDHH" subdirectory corresponds to the start date and cycle hour of the forecast (see :ref:`above `). These files will be used to generate the :term:`LBCs` on the native FV3-LAM grid. This variable is not used if ``USE_USER_STAGED_EXTRN_FILES`` is set to false. + +``EXTRN_MDL_FILES_LBCS``: (Default: "") + Analogous to ``EXTRN_MDL_FILES_ICS`` but for :term:`LBCs` instead of :term:`ICs`. Array containing templates of the file names to search for in the ``EXTRN_MDL_SOURCE_BASEDIR_LBCS`` directory. This variable is not used if ``USE_USER_STAGED_EXTRN_FILES`` is set to false. A single template should be used for each model file type that is used. Users may use any of the Python-style templates allowed in the ``ush/retrieve_data.py`` script. To see the full list of supported templates, run that script with the ``-h`` option. For examples, see the ``EXTRN_MDL_FILES_ICS`` variable above. + +``EXTRN_MDL_DATA_STORES``: (Default: "") + Analogous to ``EXTRN_MDL_DATA_STORES`` in :term:`ICs` but for :term:`LBCs`. A list of data stores where the scripts should look to find external model data. The list is in priority order. If disk information is provided via ``USE_USER_STAGED_EXTRN_FILES`` or a known location on the platform, the disk location will receive highest priority. Valid values: ``disk`` | ``hpss`` | ``aws`` | ``nomads`` + +NOMADS Parameters +--------------------- + +Set parameters associated with NOMADS online data. Analogus to :term:`ICs` NOMADS Parameters. + +``NOMADS``: (Default: false) + Flag controlling whether to use NOMADS online data. + +``NOMADS_file_type``: (Default: "nemsio") + Flag controlling the format of the data. Valid values: ``"GRIB2"`` | ``"grib2"`` | ``"NEMSIO"`` | ``"nemsio"`` + +MAKE_ICS Configuration Parameters +====================================== + +Non-default parameters for the ``make_ics`` task are set in the ``task_make_ics:`` section of the ``config.yaml`` file. + +Basic Task Parameters +--------------------------------- + +For each workflow task, certain parameter values must be passed to the job scheduler (e.g., Slurm), which submits a job for the task. + +``MAKE_ICS_TN``: (Default: "make_ics") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. + +``NNODES_MAKE_ICS``: (Default: 4) + Number of nodes to use for the job. + +``PPN_MAKE_ICS``: (Default: 12) + Number of :term:`MPI` processes per node. + +``WTIME_MAKE_ICS``: (Default: 00:30:00) + Maximum time for the task to complete. + +``MAXTRIES_MAKE_ICS``: (Default: 1) + Maximum number of times to attempt the task. + +``KMP_AFFINITY_MAKE_ICS``: (Default: "scatter") + Intel Thread Affinity Interface for the ``make_ics`` task. See :ref:`this note ` for more information on thread affinity. + +``OMP_NUM_THREADS_MAKE_ICS``: (Default: 1) + The number of OpenMP threads to use for parallel regions. + +``OMP_STACKSIZE_MAKE_ICS``: (Default: "1024m") + Controls the size of the stack for threads created by the OpenMP implementation. + +FVCOM Parameter +------------------- +``USE_FVCOM``: (Default: false) + Flag that specifies whether to update surface conditions in FV3-:term:`LAM` with fields generated from the Finite Volume Community Ocean Model (:term:`FVCOM`). If set to true, lake/sea surface temperatures, ice surface temperatures, and ice placement will be overwritten using data provided by FVCOM. Setting ``USE_FVCOM`` to true causes the executable ``process_FVCOM.exe`` in the ``MAKE_ICS_TN`` task to run. This, in turn, modifies the file ``sfc_data.nc`` generated by ``chgres_cube`` during the ``make_ics`` task. Note that the FVCOM data must already be interpolated to the desired FV3-LAM grid. + +``FVCOM_WCSTART``: (Default: "cold") + Define if this is a "warm" start or a "cold" start. Setting this to "warm" will read in ``sfc_data.nc`` generated in a RESTART directory. Setting this to "cold" will read in the ``sfc_data.nc`` generated from ``chgres_cube`` in the ``make_ics`` portion of the workflow. Valid values: ``"cold"`` | ``"warm"`` + +``FVCOM_DIR``: (Default: "") + User-defined directory where the ``fvcom.nc`` file containing :term:`FVCOM` data already interpolated to the FV3-LAM native grid is located. The file in this directory must be named ``fvcom.nc``. + +``FVCOM_FILE``: (Default: "fvcom.nc") + Name of the file located in ``FVCOM_DIR`` that has :term:`FVCOM` data interpolated to the FV3-LAM grid. This file will be copied later to a new location, and the name will be changed to ``fvcom.nc`` if a name other than ``fvcom.nc`` is selected. + + +MAKE_LBCS Configuration Parameters +====================================== + +Non-default parameters for the ``make_lbcs`` task are set in the ``task_make_lbcs:`` section of the ``config.yaml`` file. + +``MAKE_LBCS_TN``: (Default: "make_lbcs") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. + +``NNODES_MAKE_LBCS``: (Default: 4) + Number of nodes to use for the job. + +``PPN_MAKE_LBCS``: (Default: 12) + Number of :term:`MPI` processes per node. + +``WTIME_MAKE_LBCS``: (Default: 00:30:00) + Maximum time for the task to complete. + +``MAXTRIES_MAKE_LBCS``: (Default: 1) + Maximum number of times to attempt the task. + +``KMP_AFFINITY_MAKE_LBCS``: (Default: "scatter") + Intel Thread Affinity Interface for the ``make_lbcs`` task. See :ref:`this note ` for more information on thread affinity. + +``OMP_NUM_THREADS_MAKE_LBCS``: (Default: 1) + The number of OpenMP threads to use for parallel regions. + +``OMP_STACKSIZE_MAKE_LBCS``: (Default: "1024m") + Controls the size of the stack for threads created by the OpenMP implementation. + +``LBC_SPEC_FCST_HRS``: (Default: []) + +.. COMMENT: What is this variable?!?! No definition anywhere... + + +FORECAST Configuration Parameters +===================================== + +Non-default parameters for the ``run_fcst`` task are set in the ``task_run_fcst`` section of the ``config.yaml`` file. + +Basic Task Parameters +--------------------------------- + +For each workflow task, certain parameter values must be passed to the job scheduler (e.g., Slurm), which submits a job for the task. + +``RUN_FCST_TN``: (Default: "run_fcst") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. + +``NNODES_RUN_FCST``: (Default: "") + Number of nodes to use for the job. This is calculated in the workflow generation scripts, so there is no need to set it in the configuration file. + +``PPN_RUN_FCST``: (Default: "") + Number of :term:`MPI` processes per node. It will be calculated from ``NCORES_PER_NODE`` and ``OMP_NUM_THREADS`` in ``setup.py``. + +``WTIME_RUN_FCST``: (Default: 04:30:00) + Maximum time for the task to complete. + +``MAXTRIES_RUN_FCST``: (Default: 1) + Maximum number of times to attempt the task. + +``KMP_AFFINITY_RUN_FCST``: (Default: "scatter") + Intel Thread Affinity Interface for the ``run_fcst`` task. + +.. _thread-affinity: + + .. note:: + + **Thread Affinity Interface** + + "Intel's runtime library can bind OpenMP threads to physical processing units. The interface is controlled using the ``KMP_AFFINITY`` environment variable. Thread affinity restricts execution of certain threads to a subset of the physical processing units in a multiprocessor computer. Depending on the system (machine) topology, application, and operating system, thread affinity can have a dramatic effect on the application speed and on the execution speed of a program." Valid values: ``"scatter"`` | ``"disabled"`` | ``"balanced"`` | ``"compact"`` | ``"explicit"`` | ``"none"`` + + For more information, see the `Intel Development Reference Guide `__. + +``OMP_NUM_THREADS_RUN_FCST``: (Default: 2) + The number of OpenMP threads to use for parallel regions. + ..COMMENT: Note says: # atmos_nthreads in model_configure --> What does this mean? Can it be removed? + +``OMP_STACKSIZE_RUN_FCST``: (Default: "1024m") + Controls the size of the stack for threads created by the OpenMP implementation. + +Model Configuration Parameters +---------------------------------- + +These parameters set values in ``model_configure``. +.. COMMENT: Is this accurate??? ^ And what is model_configure? + +``DT_ATMOS``: (Default: "") + Time step for the outermost atmospheric model loop in seconds. This corresponds to the frequency at which the physics routines and the top level dynamics routine are called. (Note that one call to the top-level dynamics routine results in multiple calls to the horizontal dynamics, :term:`tracer` transport, and vertical dynamics routines; see the `FV3 dycore scientific documentation `__ for details.) Must be set. Takes an integer value. In the SRW App, a default value for ``DT_ATMOS`` appears in the ``set_predef_grid_params.py`` script, but a different value can be set in ``config.yaml``. + +``RESTART_INTERVAL``: (Default: 0) + Frequency of the output restart files in hours. Using the default interval (0), restart files are produced at the end of a forecast run. When ``RESTART_INTERVAL: 1``, restart files are produced every hour with the prefix "YYYYMMDD.HHmmSS." in the ``RESTART`` directory. + +.. _InlinePost: + +``WRITE_DOPOST``: (Default: false) + Flag that determines whether to use the inline post option, which calls the :term:`UPP` from within the Weather Model. The default ``WRITE_DOPOST: false`` does not use the inline post functionality, and the ``run_post`` tasks are called from outside of the Weather Model. If ``WRITE_DOPOST: true``, the ``WRITE_DOPOST`` flag in the ``model_configure`` file will be set to true, and the post-processing tasks will be called from within the Weather Model. This means that the post-processed files (in :term:`grib2` format) are output by the Weather Model at the same time that it outputs the ``dynf###.nc`` and ``phyf###.nc`` files. Setting ``WRITE_DOPOST: true`` turns off the separate ``run_post`` task (i.e., ``RUN_TASK_RUN_POST`` is set to false) in ``setup.py`` to avoid unnecessary computations. + + .. COMMENT: Reword above to be more concise. + +Computational Parameters +---------------------------- + +``LAYOUT_X, LAYOUT_Y``: (Default: "") + The number of :term:`MPI` tasks (processes) to use in the two horizontal directions (x and y) of the regional grid when running the forecast model. + +``BLOCKSIZE``: (Default: "") + The amount of data that is passed into the cache at a time. + +.. note:: + + In ``config_defaults.yaml`` the computational parameters are set to null strings so that: + + #. If the experiment is using a predefined grid and the user sets the parameter in the user-specified experiment configuration file (i.e., ``config.yaml``), that value will be used in the forecast(s). Otherwise, the default value for that predefined grid will be used. + #. If the experiment is *not* using a predefined grid (i.e., it is using a custom grid whose parameters are specified in the experiment configuration file), then the user must specify a value for the parameter in that configuration file. Otherwise, the parameter will remain set to a null string, and the experiment generation will fail because the generation scripts check to ensure that all the parameters defined in this section are set to non-empty strings before creating the experiment directory. + +.. _WriteComp: + +Write-Component (Quilting) Parameters +----------------------------------------- + +.. note:: + The :term:`UPP` (called by the ``RUN_POST_TN`` task) cannot process output on the native grid types ("GFDLgrid" and "ESGgrid"), so output fields are interpolated to a **write component grid** before writing them to an output file. The output files written by the UFS Weather Model use an Earth System Modeling Framework (:term:`ESMF`) component, referred to as the **write component**. This model component is configured with settings in the ``model_configure`` file, as described in `Section 4.2.3 `__ of the UFS Weather Model documentation. + +``QUILTING``: (Default: true) + + .. attention:: + The regional grid requires the use of the write component, so users generally should not need to change the default value for ``QUILTING``. + + Flag that determines whether to use the write component for writing forecast output files to disk. If set to true, the forecast model will output files named ``dynf$HHH.nc`` and ``phyf$HHH.nc`` (where ``HHH`` is the 3-digit forecast hour) containing dynamics and physics fields, respectively, on the write-component grid. For example, the output files for the 3rd hour of the forecast would be ``dynf$003.nc`` and ``phyf$003.nc``. (The regridding from the native FV3-LAM grid to the write-component grid is done by the forecast model.) If ``QUILTING`` is set to false, then the output file names are ``fv3_history.nc`` and ``fv3_history2d.nc``, and they contain fields on the native grid. Although the UFS Weather Model can run without quilting, the regional grid requires the use of the write component. Therefore, QUILTING should be set to true when running the SRW App. If ``QUILTING`` is set to false, the ``RUN_POST_TN`` (meta)task cannot run because the :term:`UPP` code called by this task cannot process fields on the native grid. In that case, the ``RUN_POST_TN`` (meta)task will be automatically removed from the Rocoto workflow XML. The :ref:`INLINE POST ` option also requires ``QUILTING`` to be set to true in the SRW App. + + .. COMMENT: Most of this detail is not in the config_defaults file... where did I get it? + +``PRINT_ESMF``: (Default: false) + Flag that determines whether to output extra (debugging) information from :term:`ESMF` routines. Note that the write component uses ESMF library routines to interpolate from the native forecast model grid to the user-specified output grid (which is defined in the model configuration file ``MODEL_CONFIG_FN`` in the forecast run directory). Valid values: ``true`` | ``false`` + + .. COMMENT: Used to say ``model_configure`` (as opposed to config.yaml, which is EXPT_CONFIG_FN)? Or is this a third thing...? + +``WRTCMP_write_groups``: (Default: 1) + The number of write groups (i.e., groups of :term:`MPI` tasks) to use in the write component. + +``WRTCMP_write_tasks_per_group``: (Default: 20) + The number of MPI tasks to allocate for each write group. + +``WRTCMP_output_grid``: (Default: "''") + Sets the type (coordinate system) of the write component grid. The default empty string forces the user to set a valid value for ``WRTCMP_output_grid`` in ``config.yaml`` if specifying a *custom* grid. When creating an experiment with a user-defined grid, this parameter must be specified or the experiment will fail. Valid values: ``"lambert_conformal"`` | ``"regional_latlon"`` | ``"rotated_latlon"`` + +``WRTCMP_cen_lon``: (Default: "") + Longitude (in degrees) of the center of the write component grid. Can usually be set to the corresponding value from the native grid. + +``WRTCMP_cen_lat``: (Default: "") + Latitude (in degrees) of the center of the write component grid. Can usually be set to the corresponding value from the native grid. + +``WRTCMP_lon_lwr_left``: (Default: "") + Longitude (in degrees) of the center of the lower-left (southwest) cell on the write component grid. If using the "rotated_latlon" coordinate system, this is expressed in terms of the rotated longitude. Must be set manually when running an experiment with a user-defined grid. + +``WRTCMP_lat_lwr_left``: (Default: "") + Latitude (in degrees) of the center of the lower-left (southwest) cell on the write component grid. If using the "rotated_latlon" coordinate system, this is expressed in terms of the rotated latitude. Must be set manually when running an experiment with a user-defined grid. + +.. COMMENT: The descriptions for the five tasks above have been deleted from config_defaults... why? The variables are still there... + +**The following parameters must be set when** ``WRTCMP_output_grid`` **is set to "rotated_latlon":** + +``WRTCMP_lon_upr_rght``: (Default: "") + Longitude (in degrees) of the center of the upper-right (northeast) cell on the write component grid (expressed in terms of the rotated longitude). + +``WRTCMP_lat_upr_rght``: (Default: "") + Latitude (in degrees) of the center of the upper-right (northeast) cell on the write component grid (expressed in terms of the rotated latitude). + +``WRTCMP_dlon``: (Default: "") + Size (in degrees) of a grid cell on the write component grid (expressed in terms of the rotated longitude). + +``WRTCMP_dlat``: (Default: "") + Size (in degrees) of a grid cell on the write component grid (expressed in terms of the rotated latitude). + +.. COMMENT: Descriptions for all variables in this section were removed from config_defaults... why? + +**The following parameters must be set when** ``WRTCMP_output_grid`` **is set to "lambert_conformal":** + +``WRTCMP_stdlat1``: (Default: "") + First standard latitude (in degrees) in definition of Lambert conformal projection. + +``WRTCMP_stdlat2``: (Default: "") + Second standard latitude (in degrees) in definition of Lambert conformal projection. + +``WRTCMP_nx``: (Default: "") + Number of grid points in the x-coordinate of the Lambert conformal projection. + +``WRTCMP_ny``: (Default: "") + Number of grid points in the y-coordinate of the Lambert conformal projection. + +``WRTCMP_dx``: (Default: "") + Grid cell size (in meters) along the x-axis of the Lambert conformal projection. + +``WRTCMP_dy``: (Default: "") + Grid cell size (in meters) along the y-axis of the Lambert conformal projection. + + .. COMMENT: Descriptions for all variables in this section were removed from config_defaults... why? + + +.. _PredefGrid: + +Predefined Grid Parameters +------------------------------ + +``PREDEF_GRID_NAME``: (Default: "") + This parameter indicates which (if any) predefined regional grid to use for the experiment. Setting ``PREDEF_GRID_NAME`` provides a convenient method of specifying a commonly used set of grid-dependent parameters. The predefined grid settings can be viewed in the script ``ush/set_predef_grid_params.py``. + + **Currently supported options:** + + | ``"RRFS_CONUS_25km"`` + | ``"RRFS_CONUS_13km"`` + | ``"RRFS_CONUS_3km"`` + | ``"SUBCONUS_Ind_3km"`` + + **Other valid values include:** + + | ``"CONUS_25km_GFDLgrid"`` + | ``"CONUS_3km_GFDLgrid"`` + | ``"EMC_AK"`` + | ``"EMC_HI"`` + | ``"EMC_PR"`` + | ``"EMC_GU"`` + | ``"GSL_HAFSV0.A_25km"`` + | ``"GSL_HAFSV0.A_13km"`` + | ``"GSL_HAFSV0.A_3km"`` + | ``"GSD_HRRR_AK_50km"`` + | ``"RRFS_AK_13km"`` + | ``"RRFS_AK_3km"`` + | ``"RRFS_CONUScompact_25km"`` + | ``"RRFS_CONUScompact_13km"`` + | ``"RRFS_CONUScompact_3km"`` + | ``"RRFS_NA_13km"`` + | ``"RRFS_NA_3km"`` + | ``"RRFS_SUBCONUS_3km"`` + | ``"WoFS_3km"`` + +.. note:: + + * If ``PREDEF_GRID_NAME`` is set to a valid predefined grid name, the grid generation method, the (native) grid parameters, and the write component grid parameters are set to predefined values for the specified grid, overwriting any settings of these parameters in the user-specified experiment configuration file (``config.yaml``). In addition, if the time step ``DT_ATMOS`` and the computational parameters (``LAYOUT_X``, ``LAYOUT_Y``, and ``BLOCKSIZE``) are not specified in that configuration file, they are also set to predefined values for the specified grid. + + * If ``PREDEF_GRID_NAME`` is set to an empty string, it implies that the user will provide the native grid parameters in the user-specified experiment configuration file (``config.yaml``). In this case, the grid generation method, the native grid parameters, the write component grid parameters, the main time step (``DT_ATMOS``), and the computational parameters (``LAYOUT_X``, ``LAYOUT_Y``, and ``BLOCKSIZE``) must be set in the configuration file. Otherwise, the values of the parameters in the default experiment configuration file (``config_defaults.yaml``) will be used. + +Aerosol Climatology Parameter +--------------------------------- + +``USE_MERRA_CLIMO``: (Default: false) + Flag that determines whether :term:`MERRA2` aerosol climatology data and lookup tables for optics properties are obtained. + + .. COMMENT: When would it be appropriate to obtain these files? + +Surface Climatology Parameter +--------------------------------- + +``SFC_CLIMO_FIELDS``: (Default: see below) + + .. code-block:: console + + [ + "facsf", + "maximum_snow_albedo", + "slope_type", + "snowfree_albedo", + "soil_type", + "substrate_temperature", + "vegetation_greenness", + "vegetation_type" + ] + + Array containing the names of all the fields that the ``MAKE_SFC_CLIMO_TN`` task generates on the native FV3-LAM grid. + +Fixed File Parameters +------------------------- + +These parameters are associated with the fixed (i.e., static) files. On `Level 1 & 2 `__ systems, fixed files are pre-staged with paths defined in the ``setup.py`` script. Because the default values are platform-dependent, they are set to a null string in ``config_defaults.yaml``. Then these null values are overwritten in ``setup.py`` with machine-specific values or with a user-specified value from ``config.yaml``. + +``FIXgsm``: (Default: "") + System directory in which the majority of fixed (i.e., time-independent) files that are needed to run the FV3-LAM model are located. + +``FIXaer``: (Default: "") + System directory where :term:`MERRA2` aerosol climatology files are located. + +``FIXlut``: (Default: "") + System directory where the lookup tables for optics properties are located. + +``TOPO_DIR``: (Default: "") + The location on disk of the static input files used by the ``make_orog`` task (i.e., ``orog.x`` and ``shave.x``). Can be the same as ``FIXgsm``. + +``SFC_CLIMO_INPUT_DIR``: (Default: "") + The location on disk of the static surface climatology input fields, used by ``sfc_climo_gen``. These files are only used if ``RUN_TASK_MAKE_SFC_CLIMO: true``. + +``SYMLINK_FIX_FILES``: (Default: true) + .. COMMENT: Add definition! There isn't one in config_defaults. + +``FNGLAC, ..., FNMSKH``: (Default: see below) + + .. code-block:: console + + FNGLAC: &FNGLAC "global_glacier.2x2.grb" + FNMXIC: &FNMXIC "global_maxice.2x2.grb" + FNTSFC: &FNTSFC "RTGSST.1982.2012.monthly.clim.grb" + FNSNOC: &FNSNOC "global_snoclim.1.875.grb" + FNZORC: &FNZORC "igbp" + FNAISC: &FNAISC "CFSR.SEAICE.1982.2012.monthly.clim.grb" + FNSMCC: &FNSMCC "global_soilmgldas.t126.384.190.grb" + FNMSKH: &FNMSKH "seaice_newland.grb" + + .. COMMENT: Should these default values be in an array? They were before... but currently aren't in config_defaults. + + Names and default locations of (some of the) global data files that are assumed to exist in a system directory. (This directory is machine-dependent; the experiment generation scripts will set it and store it in the variable ``FIXgsm``.) These file names also appear directly in the forecast model's input :term:`namelist` file. + + .. COMMENT: A note also says: + "# Because the default values are dependent on the platform, we set these + # to a null string which will then be overwritten in setup.py unless the + # user has specified a different value in config.yaml" + ADD? + +``FIXgsm_FILES_TO_COPY_TO_FIXam``: (Default: see below) + + .. code-block:: console + + [*FNGLAC, + *FNMXIC, + *FNTSFC, + *FNSNOC, + *FNAISC, + *FNSMCC, + *FNMSKH, + "global_climaeropac_global.txt", + "fix_co2_proj/global_co2historicaldata_2010.txt", + "fix_co2_proj/global_co2historicaldata_2011.txt", + "fix_co2_proj/global_co2historicaldata_2012.txt", + "fix_co2_proj/global_co2historicaldata_2013.txt", + "fix_co2_proj/global_co2historicaldata_2014.txt", + "fix_co2_proj/global_co2historicaldata_2015.txt", + "fix_co2_proj/global_co2historicaldata_2016.txt", + "fix_co2_proj/global_co2historicaldata_2017.txt", + "fix_co2_proj/global_co2historicaldata_2018.txt", + "fix_co2_proj/global_co2historicaldata_2019.txt", + "fix_co2_proj/global_co2historicaldata_2020.txt", + "fix_co2_proj/global_co2historicaldata_2021.txt", + "global_co2historicaldata_glob.txt", + "co2monthlycyc.txt", + "global_h2o_pltc.f77", + "global_hyblev.l65.txt", + "global_zorclim.1x1.grb", + "global_sfc_emissivity_idx.txt", + "global_tg3clim.2.6x1.5.grb", + "global_solarconstant_noaa_an.txt", + "global_albedo4.1x1.grb", + "geo_em.d01.lat-lon.2.5m.HGT_M.nc", + "HGT.Beljaars_filtered.lat-lon.30s_res.nc", + "replace_with_FIXgsm_ozone_prodloss_filename" + ] + + If not running in NCO mode, this array contains the names of the files to copy from the ``FIXgsm`` system directory to the ``FIXam`` directory under the experiment directory. + + .. note:: + The last element in the list above contains a dummy value. This value will be reset by the workflow generation scripts to the name of the ozone production/loss file that needs to be copied from ``FIXgsm``. The name of this file depends on the ozone parameterization scheme, and that, in turn, depends on the :term:`CCPP` physics suite specified for the experiment. + +``FV3_NML_VARNAME_TO_FIXam_FILES_MAPPING``: (Default: see below) + + .. code-block:: console + + [!join_str ["FNGLAC | ",*FNGLAC], + !join_str ["FNMXIC | ",*FNMXIC], + !join_str ["FNTSFC | ",*FNTSFC], + !join_str ["FNSNOC | ",*FNSNOC], + !join_str ["FNAISC | ",*FNAISC], + !join_str ["FNSMCC | ",*FNSMCC], + !join_str ["FNMSKH | ",*FNMSKH] + ] + + This array is used to set some of the :term:`namelist` variables in the forecast model's namelist file. It maps file symlinks to the actual fixed file locations in the ``FIXam`` directory. The symlink names appear in the first column (to the left of the "|" symbol), and the paths to these files (in the ``FIXam`` directory) are held in workflow variables, which appear to the right of the "|" symbol. It is possible to remove ``FV3_NML_VARNAME_TO_FIXam_FILES_MAPPING`` as a workflow variable and make it only a local one since it is used in only one script. + +``FV3_NML_VARNAME_TO_SFC_CLIMO_FIELD_MAPPING``: (Default: see below) + .. code-block:: console + + [ + "FNALBC | snowfree_albedo", + "FNALBC2 | facsf", + "FNTG3C | substrate_temperature", + "FNVEGC | vegetation_greenness", + "FNVETC | vegetation_type", + "FNSOTC | soil_type", + "FNVMNC | vegetation_greenness", + "FNVMXC | vegetation_greenness", + "FNSLPC | slope_type", + "FNABSC | maximum_snow_albedo" + ] + + This array is used to set some of the :term:`namelist` variables in the forecast model's namelist file. The variable names appear in the first column (to the left of the "|" symbol), and the paths to these surface climatology files on the native FV3-LAM grid (in the ``FIXLAM`` directory) are derived from the corresponding surface climatology fields (the second column of the array). + +``CYCLEDIR_LINKS_TO_FIXam_FILES_MAPPING``: (Default: see below) + .. code-block:: console + + [ + "aerosol.dat | global_climaeropac_global.txt", + "co2historicaldata_2010.txt | fix_co2_proj/global_co2historicaldata_2010.txt", + "co2historicaldata_2011.txt | fix_co2_proj/global_co2historicaldata_2011.txt", + "co2historicaldata_2012.txt | fix_co2_proj/global_co2historicaldata_2012.txt", + "co2historicaldata_2013.txt | fix_co2_proj/global_co2historicaldata_2013.txt", + "co2historicaldata_2014.txt | fix_co2_proj/global_co2historicaldata_2014.txt", + "co2historicaldata_2015.txt | fix_co2_proj/global_co2historicaldata_2015.txt", + "co2historicaldata_2016.txt | fix_co2_proj/global_co2historicaldata_2016.txt", + "co2historicaldata_2017.txt | fix_co2_proj/global_co2historicaldata_2017.txt", + "co2historicaldata_2018.txt | fix_co2_proj/global_co2historicaldata_2018.txt", + "co2historicaldata_2019.txt | fix_co2_proj/global_co2historicaldata_2019.txt", + "co2historicaldata_2020.txt | fix_co2_proj/global_co2historicaldata_2020.txt", + "co2historicaldata_2021.txt | fix_co2_proj/global_co2historicaldata_2021.txt", + "co2historicaldata_glob.txt | global_co2historicaldata_glob.txt", + "co2monthlycyc.txt | co2monthlycyc.txt", + "global_h2oprdlos.f77 | global_h2o_pltc.f77", + "global_albedo4.1x1.grb | global_albedo4.1x1.grb", + "global_zorclim.1x1.grb | global_zorclim.1x1.grb", + "global_tg3clim.2.6x1.5.grb | global_tg3clim.2.6x1.5.grb", + "sfc_emissivity_idx.txt | global_sfc_emissivity_idx.txt", + "solarconstant_noaa_an.txt | global_solarconstant_noaa_an.txt", + "global_o3prdlos.f77 | " + ] + + This array specifies the mapping to use between the symlinks that need to be created in each cycle directory (these are the "files" that :term:`FV3` looks for) and their targets in the ``FIXam`` directory. The first column of the array specifies the symlink to be created, and the second column specifies its target file in ``FIXam`` (where columns are delineated by the pipe symbol "|"). + + +RUN_POST Configuration Parameters +===================================== + +Non-default parameters for the ``run_post`` task are set in the ``task_run_post:`` section of the ``config.yaml`` file. + +Basic Task Parameters +--------------------------------- + +For each workflow task, certain parameter values must be passed to the job scheduler (e.g., Slurm), which submits a job for the task. + +``RUN_POST_TN``: (Default: "run_post") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. + +``NNODES_RUN_POST``: (Default: 2) + Number of nodes to use for the job. + +``PPN_RUN_POST``: (Default: 24) + Number of :term:`MPI` processes per node. + +``WTIME_RUN_POST``: (Default: 00:15:00) + Maximum time for the task to complete. + +``MAXTRIES_RUN_POST``: (Default: 2) + Maximum number of times to attempt the task. + +``KMP_AFFINITY_RUN_POST``: (Default: "scatter") + Intel Thread Affinity Interface for the ``run_post`` task. See :ref:`this note ` for more information on thread affinity. + +``OMP_NUM_THREADS_RUN_POST``: (Default: 1) + The number of OpenMP threads to use for parallel regions. + +``OMP_STACKSIZE_RUN_POST``: (Default: "1024m") + Controls the size of the stack for threads created by the OpenMP implementation. + + +Subhourly Post Parameters +----------------------------- +Set parameters associated with subhourly forecast model output and post-processing. + +``SUB_HOURLY_POST``: (Default: false) + Flag that indicates whether the forecast model will generate output files on a sub-hourly time interval (e.g., 10 minutes, 15 minutes). This will also cause the post-processor to process these sub-hourly files. If this variable is set to true, then ``DT_SUBHOURLY_POST_MNTS`` should be set to a valid value between 1 and 59. + +``DT_SUB_HOURLY_POST_MNTS``: (Default: 0) + Time interval in minutes between the forecast model output files (only used if ``SUB_HOURLY_POST`` is set to true). If ``SUB_HOURLY_POST`` is set to true, this needs to be set to a valid two-digit integer between 1 and 59. Note that if ``SUB_HOURLY_POST`` is set to true but ``DT_SUB_HOURLY_POST_MNTS`` is set to 0, ``SUB_HOURLY_POST`` will get reset to false in the experiment generation scripts (there will be an informational message in the log file to emphasize this). Valid values: ``0`` | ``1`` | ``2`` | ``3`` | ``4`` | ``5`` | ``6`` | ``10`` | ``12`` | ``15`` | ``20`` | ``30`` + +Customized Post Configuration Parameters +-------------------------------------------- + +Set parameters for customizing the :term:`UPP`. + +``USE_CUSTOM_POST_CONFIG_FILE``: (Default: false) + Flag that determines whether a user-provided custom configuration file should be used for post-processing the model data. If this is set to true, then the workflow will use the custom post-processing (:term:`UPP`) configuration file specified in ``CUSTOM_POST_CONFIG_FP``. Otherwise, a default configuration file provided in the UPP repository will be used. + +``CUSTOM_POST_CONFIG_FP``: (Default: "") + The full path to the custom post flat file, including filename, to be used for post-processing. This is only used if ``CUSTOM_POST_CONFIG_FILE`` is set to true. + +``POST_OUTPUT_DOMAIN_NAME``: (Default: "") + Domain name (in lowercase) used to construct the names of the output files generated by :term:`UPP`. The post output files are named as follows: + + .. code-block:: console + + $NET.tHHz.[var_name].f###.${POST_OUTPUT_DOMAIN_NAME}.grib2 + + If using a custom grid, ``POST_OUTPUT_DOMAIN_NAME`` must be specified by the user. If using a predefined grid, ``POST_OUTPUT_DOMAIN_NAME`` defaults to ``PREDEF_GRID_NAME``. Note that this variable is first changed to lower case before being used to construct the file names. + + .. COMMENT: Reword/reorganize a tad above? + + + +GET_OBS_CCPA Configuration Parameters +======================================== + +.. COMMENT: Add details about the VX GET tasks? Like, what the task is for? When it is used? + +Non-default parameters for the ``get_obs_ccpa`` task are set in the ``task_get_obs_ccpa:`` section of the ``config.yaml`` file. + +``GET_OBS_CCPA_TN``: (Default: "get_obs_ccpa") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. + +``NNODES_GET_OBS_CCPA``: (Default: 1) + Number of nodes to use for the job. + +``PPN_GET_OBS_CCPA``: (Default: 1) + Number of :term:`MPI` processes per node. + +``WTIME_GET_OBS_CCPA``: (Default: 00:45:00) + Maximum time for the task to complete. + +``MAXTRIES_GET_OBS_CCPA``: (Default: 1) + +GET_OBS_MRMS Configuration Parameters +======================================== + +Non-default parameters for the ``get_obs_mrms`` task are set in the ``task_get_obs_mrms:`` section of the ``config.yaml`` file. + +``GET_OBS_MRMS_TN``: (Default: "get_obs_mrms") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. + +``NNODES_GET_OBS_MRMS``: (Default: 1) + Number of nodes to use for the job. + +``PPN_GET_OBS_MRMS``: (Default: 1) + Number of :term:`MPI` processes per node. + +``WTIME_GET_OBS_MRMS``: (Default: 00:45:00) + Maximum time for the task to complete. + +``MAXTRIES_GET_OBS_MRMS``: (Default: 1) + +GET_OBS_NDAS Configuration Parameters +======================================== + +Non-default parameters for the ``get_obs_ndas`` task are set in the ``task_get_obs_ndas:`` section of the ``config.yaml`` file. + +``GET_OBS_NDAS_TN``: (Default: "get_obs_ndas") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. + +``NNODES_GET_OBS_NDAS``: (Default: 1) + Number of nodes to use for the job. + +``PPN_GET_OBS_NDAS``: (Default: 1) + Number of :term:`MPI` processes per node. + +``WTIME_GET_OBS_NDAS``: (Default: 02:00:00) + Maximum time for the task to complete. + +``MAXTRIES_GET_OBS_NDAS``: (Default: 1) + Maximum number of times to attempt the task. + + + +VX_GRIDSTAT Configuration Parameters +======================================== + +Non-default parameters for the ``run_gridstatvx`` task are set in the ``task_run_vx_gridstat:`` section of the ``config.yaml`` file. + +``VX_GRIDSTAT_TN``: (Default: "run_gridstatvx") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. + +``NNODES_VX_GRIDSTAT``: (Default: 1) + Number of nodes to use for the job. + +``PPN_VX_GRIDSTAT``: (Default: 1) + Number of :term:`MPI` processes per node. + +``WTIME_VX_GRIDSTAT``: (Default: 02:00:00) + Maximum time for the task to complete. + +``MAXTRIES_VX_GRIDSTAT``: (Default: 1) + Maximum number of times to attempt the task. + + +VX_GRIDSTAT_REFC Configuration Parameters +============================================= + +Non-default parameters for the ``run_gridstatvx_refc`` task are set in the ``task_run_vx_gridstat_refc:`` section of the ``config.yaml`` file. + +``VX_GRIDSTAT_REFC_TN``: (Default: "run_gridstatvx_refc") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. + +``NNODES_VX_GRIDSTAT``: (Default: 1) + Number of nodes to use for the job. + +``PPN_VX_GRIDSTAT``: (Default: 1) + Number of :term:`MPI` processes per node. + +``WTIME_VX_GRIDSTAT``: (Default: 02:00:00) + Maximum time for the task to complete. + +``MAXTRIES_VX_GRIDSTAT_REFC``: (Default: 1) + Maximum number of times to attempt the task. + + +VX_GRIDSTAT_RETOP Configuration Parameters +============================================= + +Non-default parameters for the ``run_gridstatvx_retop`` task are set in the ``task_run_vx_gridstat_retop:`` section of the ``config.yaml`` file. + +``VX_GRIDSTAT_RETOP_TN``: (Default: "run_gridstatvx_retop") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. + +``NNODES_VX_GRIDSTAT``: (Default: 1) + Number of nodes to use for the job. + +``PPN_VX_GRIDSTAT``: (Default: 1) + Number of :term:`MPI` processes per node. + +``WTIME_VX_GRIDSTAT``: (Default: 02:00:00) + Maximum time for the task to complete. + +``MAXTRIES_VX_GRIDSTAT_RETOP``: (Default: 1) + Maximum number of times to attempt the task. + + +VX_GRIDSTAT_03h Configuration Parameters +============================================= + +Non-default parameters for the ``run_gridstatvx_03h`` task are set in the ``task_run_vx_gridstat_03h:`` section of the ``config.yaml`` file. + +``VX_GRIDSTAT_03h_TN``: (Default: "run_gridstatvx_03h") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. + +``NNODES_VX_GRIDSTAT``: (Default: 1) + Number of nodes to use for the job. + +``PPN_VX_GRIDSTAT``: (Default: 1) + Number of :term:`MPI` processes per node. + +``WTIME_VX_GRIDSTAT``: (Default: 02:00:00) + Maximum time for the task to complete. + +``MAXTRIES_VX_GRIDSTAT_03h``: (Default: 1) + Maximum number of times to attempt the task. + + +VX_GRIDSTAT_06h Configuration Parameters +============================================= + +Non-default parameters for the ``run_gridstatvx_06h`` task are set in the ``task_run_vx_gridstat_06h:`` section of the ``config.yaml`` file. + +``VX_GRIDSTAT_06h_TN``: (Default: "run_gridstatvx_06h") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. + +``NNODES_VX_GRIDSTAT``: (Default: 1) + Number of nodes to use for the job. + +``PPN_VX_GRIDSTAT``: (Default: 1) + Number of :term:`MPI` processes per node. + +``WTIME_VX_GRIDSTAT``: (Default: 02:00:00) + Maximum time for the task to complete. + +``MAXTRIES_VX_GRIDSTAT_06h``: (Default: 1) + Maximum number of times to attempt the task. + + +VX_GRIDSTAT_24h Configuration Parameters +============================================= + +Non-default parameters for the ``run_gridstatvx_24h`` task are set in the ``task_run_vx_gridstat_24h:`` section of the ``config.yaml`` file. + +``VX_GRIDSTAT_24h_TN``: (Default: "run_gridstatvx_24h") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. + +``NNODES_VX_GRIDSTAT``: (Default: 1) + Number of nodes to use for the job. + +``PPN_VX_GRIDSTAT``: (Default: 1) + Number of :term:`MPI` processes per node. + +``WTIME_VX_GRIDSTAT``: (Default: 02:00:00) + Maximum time for the task to complete. + +``MAXTRIES_VX_GRIDSTAT_24h``: (Default: 1) + Maximum number of times to attempt the task. + + +VX_POINTSTAT Configuration Parameters +============================================= + +Non-default parameters for the ``run_pointstatvx`` task are set in the ``task_run_vx_pointstat:`` section of the ``config.yaml`` file. + +``VX_POINTSTAT_TN``: (Default: "run_pointstatvx") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. + +``NNODES_VX_POINTSTAT``: (Default: 1) + Number of nodes to use for the job. + +``PPN_VX_POINTSTAT``: (Default: 1) + Number of :term:`MPI` processes per node. + +``WTIME_VX_POINTSTAT``: (Default: 01:00:00) + Maximum time for the task to complete. + +``MAXTRIES_VX_POINTSTAT``: (Default: 1) + Maximum number of times to attempt the task. + + +VX_ENSGRID Configuration Parameters +============================================= + +Non-default parameters for the ``run_ensgridvx_*`` tasks are set in the ``task_run_vx_ensgrid:`` section of the ``config.yaml`` file. + +``VX_ENSGRID_03h_TN``: (Default: "run_ensgridvx_03h") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. + +``MAXTRIES_VX_ENSGRID_03h``: (Default: 1) + Maximum number of times to attempt the task. + +``VX_ENSGRID_06h_TN``: (Default: "run_ensgridvx_06h") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. + +``MAXTRIES_VX_ENSGRID_06h``: (Default: 1) + Maximum number of times to attempt the task. + +``VX_ENSGRID_24h_TN``: (Default: "run_ensgridvx_24h") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. + +``MAXTRIES_VX_ENSGRID_24h``: (Default: 1) + Maximum number of times to attempt the task. + +``VX_ENSGRID_RETOP_TN``: (Default: "run_ensgridvx_retop") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. + +``MAXTRIES_VX_ENSGRID_RETOP``: (Default: 1) + Maximum number of times to attempt the task. + +``VX_ENSGRID_PROB_RETOP_TN``: (Default: "run_ensgridvx_prob_retop") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. + +``MAXTRIES_VX_ENSGRID_PROB_RETOP``: (Default: 1) + Maximum number of times to attempt the task. + +``NNODES_VX_ENSGRID``: (Default: 1) + Number of nodes to use for the job. + +``PPN_VX_ENSGRID``: (Default: 1) + Number of :term:`MPI` processes per node. + +``WTIME_VX_ENSGRID``: (Default: 01:00:00) + Maximum time for the task to complete. + +``MAXTRIES_VX_ENSGRID``: (Default: 1) + Maximum number of times to attempt the task. + + +VX_ENSGRID_REFC Configuration Parameters +============================================= + +Non-default parameters for the ``run_ensgridvx_refc`` task are set in the ``task_run_vx_ensgrid_refc:`` section of the ``config.yaml`` file. + +``VX_ENSGRID_REFC_TN``: (Default: "run_ensgridvx_refc") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. + +``NNODES_VX_ENSGRID``: (Default: 1) + Number of nodes to use for the job. + +``PPN_VX_ENSGRID``: (Default: 1) + Number of :term:`MPI` processes per node. + +``WTIME_VX_ENSGRID``: (Default: 01:00:00) + Maximum time for the task to complete. + +``MAXTRIES_VX_ENSGRID_REFC``: (Default: 1) + Maximum number of times to attempt the task. + + +VX_ENSGRID_MEAN Configuration Parameters +============================================= + +Non-default parameters for the ``run_ensgridvx_mean`` task are set in the ``task_run_vx_ensgrid_mean:`` section of the ``config.yaml`` file. + +``VX_ENSGRID_MEAN_TN``: (Default: "run_ensgridvx_mean") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. + +``NNODES_VX_ENSGRID_MEAN``: (Default: 1) + Number of nodes to use for the job. + +``PPN_VX_ENSGRID_MEAN``: (Default: 1) + Number of :term:`MPI` processes per node. + +``WTIME_VX_ENSGRID_MEAN``: (Default: 01:00:00) + Maximum time for the task to complete. + +``MAXTRIES_VX_ENSGRID_MEAN``: (Default: 1) + Maximum number of times to attempt the task. + + +VX_ENSGRID_MEAN_03h Configuration Parameters +=============================================== + +Non-default parameters for the ``run_ensgridvx_mean_03h`` task are set in the ``task_run_vx_ensgrid_mean_03h:`` section of the ``config.yaml`` file. + +``VX_ENSGRID_MEAN_03h_TN``: (Default: "run_ensgridvx_mean_03h") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. + +``NNODES_VX_ENSGRID_MEAN``: (Default: 1) + Number of nodes to use for the job. + +``PPN_VX_ENSGRID_MEAN``: (Default: 1) + Number of :term:`MPI` processes per node. + +``WTIME_VX_ENSGRID_MEAN``: (Default: 01:00:00) + Maximum time for the task to complete. + +``MAXTRIES_VX_ENSGRID_MEAN_03h``: (Default: 1) + Maximum number of times to attempt the task. + + +VX_ENSGRID_MEAN_06h Configuration Parameters +=============================================== + +Non-default parameters for the ``run_ensgridvx_mean_06h`` task are set in the ``task_run_vx_ensgrid_mean_06h:`` section of the ``config.yaml`` file. + +``VX_ENSGRID_MEAN_06h_TN``: (Default: "run_ensgridvx_mean_06h") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. - Note that these are only typical cell sizes. The actual cell size on the global grid tiles varies somewhat as we move across a tile (and is dependent on ``GFDLgrid_STRETCH_FAC``). +``NNODES_VX_ENSGRID_MEAN``: (Default: 1) + Number of nodes to use for the job. +``PPN_VX_ENSGRID_MEAN``: (Default: 1) + Number of :term:`MPI` processes per node. -``GFDLgrid_STRETCH_FAC``: (Default: "") - Stretching factor used in the Schmidt transformation applied to the parent cubed-sphere grid. Setting the Schmidt stretching factor to a value greater than 1 shrinks tile 6, while setting it to a value less than 1 (but still greater than 0) expands it. The remaining 5 tiles change shape as necessary to maintain global coverage of the grid. +``WTIME_VX_ENSGRID_MEAN``: (Default: 01:00:00) + Maximum time for the task to complete. -``GFDLgrid_REFINE_RATIO``: (Default: "") - Cell refinement ratio for the regional grid. It refers to the number of cells in either the x or y direction on the regional grid (tile 7) that abut one cell on its parent tile (tile 6). +``MAXTRIES_VX_ENSGRID_MEAN_06h``: (Default: 1) + Maximum number of times to attempt the task. -``GFDLgrid_ISTART_OF_RGNL_DOM_ON_T6G``: (Default: "") - i-index on tile 6 at which the regional grid (tile 7) starts. -``GFDLgrid_IEND_OF_RGNL_DOM_ON_T6G``: (Default: "") - i-index on tile 6 at which the regional grid (tile 7) ends. +VX_ENSGRID_MEAN_24h Configuration Parameters +=============================================== -``GFDLgrid_JSTART_OF_RGNL_DOM_ON_T6G``: (Default: "") - j-index on tile 6 at which the regional grid (tile 7) starts. +Non-default parameters for the ``run_ensgridvx_mean_24h`` task are set in the ``task_run_vx_ensgrid_mean_24h:`` section of the ``config.yaml`` file. -``GFDLgrid_JEND_OF_RGNL_DOM_ON_T6G``: (Default: "") - j-index on tile 6 at which the regional grid (tile 7) ends. +``VX_ENSGRID_MEAN_24h_TN``: (Default: "run_ensgridvx_mean_24h") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. -``GFDLgrid_USE_NUM_CELLS_IN_FILENAMES``: (Default: "") - Flag that determines the file naming convention to use for grid, orography, and surface climatology files (or, if using pregenerated files, the naming convention that was used to name these files). These files usually start with the string ``"C${RES}_"``, where ``RES`` is an integer. In the global forecast model, ``RES`` is the number of points in each of the two horizontal directions (x and y) on each tile of the global grid (defined here as ``GFDLgrid_NUM_CELLS``). If this flag is set to true, ``RES`` will be set to ``GFDLgrid_NUM_CELLS`` just as in the global forecast model. If it is set to false, we calculate (in the grid generation task) an "equivalent global uniform cubed-sphere resolution" -- call it ``RES_EQUIV`` -- and then set ``RES`` equal to it. ``RES_EQUIV`` is the number of grid points in each of the x and y directions on each tile that a global UNIFORM (i.e., stretch factor of 1) cubed-sphere grid would need to have in order to have the same average grid size as the regional grid. This is a more useful indicator of the grid size because it takes into account the effects of ``GFDLgrid_NUM_CELLS``, ``GFDLgrid_STRETCH_FAC``, and ``GFDLgrid_REFINE_RATIO`` in determining the regional grid's typical grid size, whereas simply setting ``RES`` to ``GFDLgrid_NUM_CELLS`` doesn't take into account the effects of ``GFDLgrid_STRETCH_FAC`` and ``GFDLgrid_REFINE_RATIO`` on the regional grid's resolution. Nevertheless, some users still prefer to use ``GFDLgrid_NUM_CELLS`` in the file names, so we allow for that here by setting this flag to true. +``NNODES_VX_ENSGRID_MEAN``: (Default: 1) + Number of nodes to use for the job. -Computational Forecast Parameters -================================= +``PPN_VX_ENSGRID_MEAN``: (Default: 1) + Number of :term:`MPI` processes per node. -``LAYOUT_X, LAYOUT_Y``: (Default: "") - The number of :term:`MPI` tasks (processes) to use in the two horizontal directions (x and y) of the regional grid when running the forecast model. +``WTIME_VX_ENSGRID_MEAN``: (Default: 01:00:00) + Maximum time for the task to complete. -``BLOCKSIZE``: (Default: "") - The amount of data that is passed into the cache at a time. +``MAXTRIES_VX_ENSGRID_MEAN_24h``: (Default: 1) + Maximum number of times to attempt the task. -.. note:: - In ``config_defaults.yaml`` these parameters are set to null strings so that: +VX_ENSGRID_PROB Configuration Parameters +============================================ - #. If the experiment is using a predefined grid and the user sets the ``BLOCKSIZE`` parameter in the user-specified experiment configuration file (i.e., ``config.yaml``), that value will be used in the forecast(s). Otherwise, the default ``BLOCKSIZE`` for that predefined grid will be used. - #. If the experiment is *not* using a predefined grid (i.e., it is using a custom grid whose parameters are specified in the experiment configuration file), then the user must specify a value for the ``BLOCKSIZE`` parameter in that configuration file. Otherwise, it will remain set to a null string, and the experiment generation will fail, because the generation scripts check to ensure that all the parameters defined in this section are set to non-empty strings before creating the experiment directory. +Non-default parameters for the ``run_ensgridvx_prob`` task are set in the ``task_run_vx_ensgrid_prob:`` section of the ``config.yaml`` file. -.. _WriteComp: +``VX_ENSGRID_PROB_TN``: (Default: "run_ensgridvx_prob") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. -Write-Component (Quilting) Parameters -====================================== +``NNODES_VX_ENSGRID_PROB``: (Default: 1) + Number of nodes to use for the job. -.. note:: - The :term:`UPP` (called by the ``RUN_POST_TN`` task) cannot process output on the native grid types ("GFDLgrid" and "ESGgrid"), so output fields are interpolated to a **write-component grid** before writing them to an output file. The output files written by the UFS Weather Model use an Earth System Modeling Framework (:term:`ESMF`) component, referred to as the **write component**. This model component is configured with settings in the ``model_configure`` file, as described in `Section 4.2.3 `__ of the UFS Weather Model documentation. +``PPN_VX_ENSGRID_PROB``: (Default: 1) + Number of :term:`MPI` processes per node. -``QUILTING``: (Default: true) +``WTIME_VX_ENSGRID_PROB``: (Default: 01:00:00) + Maximum time for the task to complete. - .. attention:: - The regional grid requires the use of the write component, so users generally should not need to change the default value for ``QUILTING``. +``MAXTRIES_VX_ENSGRID_PROB``: (Default: 1) + Maximum number of times to attempt the task. - Flag that determines whether to use the write component for writing forecast output files to disk. If set to "TRUE", the forecast model will output files named ``dynf$HHH.nc`` and ``phyf$HHH.nc`` (where ``HHH`` is the 3-digit forecast hour) containing dynamics and physics fields, respectively, on the write-component grid. For example, the output files for the 3rd hour of the forecast would be ``dynf$003.nc`` and ``phyf$003.nc``. (The regridding from the native FV3-LAM grid to the write-component grid is done by the forecast model.) If ``QUILTING`` is set to false, then the output file names are ``fv3_history.nc`` and ``fv3_history2d.nc``, and they contain fields on the native grid. Although the UFS Weather Model can run without quilting, the regional grid requires the use of the write component. Therefore, QUILTING should be set to true when running the SRW App. If ``QUILTING`` is set to false, the ``RUN_POST_TN`` (meta)task cannot run because the :term:`UPP` code that this task calls cannot process fields on the native grid. In that case, the ``RUN_POST_TN`` (meta)task will be automatically removed from the Rocoto workflow XML. The :ref:`INLINE POST ` option also requires ``QUILTING`` to be set to true in the SRW App. -``PRINT_ESMF``: (Default: false) - Flag that determines whether to output extra (debugging) information from :term:`ESMF` routines. Must be true or false. Note that the write component uses ESMF library routines to interpolate from the native forecast model grid to the user-specified output grid (which is defined in the model configuration file ``model_configure`` in the forecast run directory). +VX_ENSGRID_PROB_03h Configuration Parameters +================================================ -``WRTCMP_write_groups``: (Default: "1") - The number of write groups (i.e., groups of :term:`MPI` tasks) to use in the write component. +Non-default parameters for the ``run_ensgridvx_prob_03h`` task are set in the ``task_run_vx_ensgrid_prob_03h:`` section of the ``config.yaml`` file. -``WRTCMP_write_tasks_per_group``: (Default: "20") - The number of MPI tasks to allocate for each write group. +``VX_ENSGRID_PROB_03h_TN``: (Default: "run_ensgridvx_prob_03h") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. -``WRTCMP_output_grid``: (Default: "''") - Sets the type (coordinate system) of the write component grid. The default empty string forces the user to set a valid value for ``WRTCMP_output_grid`` in ``config.yaml`` if specifying a *custom* grid. When creating an experiment with a user-defined grid, this parameter must be specified or the experiment will fail. Valid values: ``"lambert_conformal"`` | ``"regional_latlon"`` | ``"rotated_latlon"`` +``NNODES_VX_ENSGRID_PROB``: (Default: 1) + Number of nodes to use for the job. -``WRTCMP_cen_lon``: (Default: "") - Longitude (in degrees) of the center of the write component grid. Can usually be set to the corresponding value from the native grid. +``PPN_VX_ENSGRID_PROB``: (Default: 1) + Number of :term:`MPI` processes per node. -``WRTCMP_cen_lat``: (Default: "") - Latitude (in degrees) of the center of the write component grid. Can usually be set to the corresponding value from the native grid. +``WTIME_VX_ENSGRID_PROB``: (Default: 01:00:00) + Maximum time for the task to complete. -``WRTCMP_lon_lwr_left``: (Default: "") - Longitude (in degrees) of the center of the lower-left (southwest) cell on the write component grid. If using the "rotated_latlon" coordinate system, this is expressed in terms of the rotated longitude. Must be set manually when running an experiment with a user-defined grid. +``MAXTRIES_VX_ENSGRID_PROB_03h``: (Default: 1) + Maximum number of times to attempt the task. -``WRTCMP_lat_lwr_left``: (Default: "") - Latitude (in degrees) of the center of the lower-left (southwest) cell on the write component grid. If using the "rotated_latlon" coordinate system, this is expressed in terms of the rotated latitude. Must be set manually when running an experiment with a user-defined grid. -**The following parameters must be set when** ``WRTCMP_output_grid`` **is set to "rotated_latlon":** +VX_ENSGRID_PROB_06h Configuration Parameters +================================================ -``WRTCMP_lon_upr_rght``: (Default: "") - Longitude (in degrees) of the center of the upper-right (northeast) cell on the write component grid (expressed in terms of the rotated longitude). +Non-default parameters for the ``run_ensgridvx_prob_06h`` task are set in the ``task_run_vx_ensgrid_prob_06h:`` section of the ``config.yaml`` file. -``WRTCMP_lat_upr_rght``: (Default: "") - Latitude (in degrees) of the center of the upper-right (northeast) cell on the write component grid (expressed in terms of the rotated latitude). +``VX_ENSGRID_PROB_06h_TN``: (Default: "run_ensgridvx_prob_06h") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. -``WRTCMP_dlon``: (Default: "") - Size (in degrees) of a grid cell on the write component grid (expressed in terms of the rotated longitude). +``NNODES_VX_ENSGRID_PROB``: (Default: 1) + Number of nodes to use for the job. -``WRTCMP_dlat``: (Default: "") - Size (in degrees) of a grid cell on the write component grid (expressed in terms of the rotated latitude). +``PPN_VX_ENSGRID_PROB``: (Default: 1) + Number of :term:`MPI` processes per node. -**The following parameters must be set when** ``WRTCMP_output_grid`` **is set to "lambert_conformal":** +``WTIME_VX_ENSGRID_PROB``: (Default: 01:00:00) + Maximum time for the task to complete. -``WRTCMP_stdlat1``: (Default: "") - First standard latitude (in degrees) in definition of Lambert conformal projection. +``MAXTRIES_VX_ENSGRID_PROB_06h``: (Default: 1) + Maximum number of times to attempt the task. -``WRTCMP_stdlat2``: (Default: "") - Second standard latitude (in degrees) in definition of Lambert conformal projection. -``WRTCMP_nx``: (Default: "") - Number of grid points in the x-coordinate of the Lambert conformal projection. +VX_ENSGRID_PROB_24h Configuration Parameters +================================================ -``WRTCMP_ny``: (Default: "") - Number of grid points in the y-coordinate of the Lambert conformal projection. +Non-default parameters for the ``run_ensgridvx_prob_24h`` task are set in the ``task_run_vx_ensgrid_prob_24h:`` section of the ``config.yaml`` file. -``WRTCMP_dx``: (Default: "") - Grid cell size (in meters) along the x-axis of the Lambert conformal projection. +``VX_ENSGRID_PROB_24h_TN``: (Default: "run_ensgridvx_prob_24h") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. -``WRTCMP_dy``: (Default: "") - Grid cell size (in meters) along the y-axis of the Lambert conformal projection. +``NNODES_VX_ENSGRID_PROB``: (Default: 1) + Number of nodes to use for the job. +``PPN_VX_ENSGRID_PROB``: (Default: 1) + Number of :term:`MPI` processes per node. +``WTIME_VX_ENSGRID_PROB``: (Default: 01:00:00) + Maximum time for the task to complete. -.. _WFTasks: - -Rocoto Workflow Tasks -======================== - -Set the names of the various Rocoto workflow tasks. These names usually do not need to be changed. - -**Baseline Tasks:** - -| ``MAKE_GRID_TN``: (Default: "make_grid") -| ``MAKE_OROG_TN``: (Default: "make_orog") -| ``MAKE_SFC_CLIMO_TN``: (Default: "make_sfc_climo") -| ``GET_EXTRN_ICS_TN``: (Default: "get_extrn_ics") -| ``GET_EXTRN_LBCS_TN``: (Default: "get_extrn_lbcs") -| ``MAKE_ICS_TN``: (Default: "make_ics") -| ``MAKE_LBCS_TN``: (Default: "make_lbcs") -| ``RUN_FCST_TN``: (Default: "run_fcst") -| ``RUN_POST_TN``: (Default: "run_post") - -**METplus Verification Tasks:** When running METplus verification tasks, the following task names are also added to the Rocoto workflow: - -| ``GET_OBS``: (Default: "get_obs") -| ``GET_OBS_CCPA_TN``: (Default: "get_obs_ccpa") -| ``GET_OBS_MRMS_TN``: (Default: "get_obs_mrms") -| ``GET_OBS_NDAS_TN``: (Default: "get_obs_ndas") -| ``VX_TN``: (Default: "run_vx") -| ``VX_GRIDSTAT_TN``: (Default: "run_gridstatvx") -| ``VX_GRIDSTAT_REFC_TN``: (Default: "run_gridstatvx_refc") -| ``VX_GRIDSTAT_RETOP_TN``: (Default: "run_gridstatvx_retop") -| ``VX_GRIDSTAT_03h_TN``: (Default: "run_gridstatvx_03h") -| ``VX_GRIDSTAT_06h_TN``: (Default: "run_gridstatvx_06h") -| ``VX_GRIDSTAT_24h_TN``: (Default: "run_gridstatvx_24h") -| ``VX_POINTSTAT_TN``: (Default: "run_pointstatvx") -| ``VX_ENSGRID_TN``: (Default: "run_ensgridvx") -| ``VX_ENSGRID_03h_TN``: (Default: "run_ensgridvx_03h") -| ``VX_ENSGRID_06h_TN``: (Default: "run_ensgridvx_06h") -| ``VX_ENSGRID_24h_TN``: (Default: "run_ensgridvx_24h") -| ``VX_ENSGRID_REFC_TN``: (Default: "run_ensgridvx_refc") -| ``VX_ENSGRID_RETOP_TN``: (Default: "run_ensgridvx_retop") -| ``VX_ENSGRID_MEAN_TN``: (Default: "run_ensgridvx_mean") -| ``VX_ENSGRID_PROB_TN``: (Default: "run_ensgridvx_prob") -| ``VX_ENSGRID_MEAN_03h_TN``: (Default: "run_ensgridvx_mean_03h") -| ``VX_ENSGRID_PROB_03h_TN``: (Default: "run_ensgridvx_prob_03h") -| ``VX_ENSGRID_MEAN_06h_TN``: (Default: "run_ensgridvx_mean_06h") -| ``VX_ENSGRID_PROB_06h_TN``: (Default: "run_ensgridvx_prob_06h") -| ``VX_ENSGRID_MEAN_24h_TN``: (Default: "run_ensgridvx_mean_24h") -| ``VX_ENSGRID_PROB_24h_TN``: (Default: "run_ensgridvx_prob_24h") -| ``VX_ENSGRID_PROB_REFC_TN``: (Default: "run_ensgridvx_prob_refc") -| ``VX_ENSGRID_PROB_RETOP_TN``: (Default: "run_ensgridvx_prob_retop") -| ``VX_ENSPOINT_TN``: (Default: "run_enspointvx") -| ``VX_ENSPOINT_MEAN_TN``: (Default: "run_enspointvx_mean") -| ``VX_ENSPOINT_PROB_TN``: (Default: "run_enspointvx_prob") - - -Workflow Task Parameters -======================== -For each workflow task, additional parameters determine the values to pass to the job scheduler (e.g., Slurm), which submits a job for each task. Parameters include the number of nodes to use for the job, the number of :term:`MPI` processes per node, the maximum walltime to allow for the job to complete, and the maximum number of times to attempt each task. - -**Number of nodes:** - -| ``NNODES_MAKE_GRID``: (Default: "1") -| ``NNODES_MAKE_OROG``: (Default: "1") -| ``NNODES_MAKE_SFC_CLIMO``: (Default: "2") -| ``NNODES_GET_EXTRN_ICS``: (Default: "1") -| ``NNODES_GET_EXTRN_LBCS``: (Default: "1") -| ``NNODES_MAKE_ICS``: (Default: "4") -| ``NNODES_MAKE_LBCS``: (Default: "4") -| ``NNODES_RUN_FCST``: (Default: "") +``MAXTRIES_VX_ENSGRID_PROB_24h``: (Default: 1) + Maximum number of times to attempt the task. -.. note:: - The correct value for ``NNODES_RUN_FCST`` will be calculated in the workflow generation scripts. - -| ``NNODES_RUN_POST``: (Default: "2") -| ``NNODES_GET_OBS_CCPA``: (Default: "1") -| ``NNODES_GET_OBS_MRMS``: (Default: "1") -| ``NNODES_GET_OBS_NDAS``: (Default: "1") -| ``NNODES_VX_GRIDSTAT``: (Default: "1") -| ``NNODES_VX_POINTSTAT``: (Default: "1") -| ``NNODES_VX_ENSGRID``: (Default: "1") -| ``NNODES_VX_ENSGRID_MEAN``: (Default: "1") -| ``NNODES_VX_ENSGRID_PROB``: (Default: "1") -| ``NNODES_VX_ENSPOINT``: (Default: "1") -| ``NNODES_VX_ENSPOINT_MEAN``: (Default: "1") -| ``NNODES_VX_ENSPOINT_PROB``: (Default: "1") - -**Number of MPI processes per node:** - -| ``PPN_MAKE_GRID``: (Default: "24") -| ``PPN_MAKE_OROG``: (Default: "24") -| ``PPN_MAKE_SFC_CLIMO``: (Default: "24") -| ``PPN_GET_EXTRN_ICS``: (Default: "1") -| ``PPN_GET_EXTRN_LBCS``: (Default: "1") -| ``PPN_MAKE_ICS``: (Default: "12") -| ``PPN_MAKE_LBCS``: (Default: "12") -| ``PPN_RUN_FCST``: (Default: "") -.. note:: - The correct value for ``PPN_RUN_FCST`` will be calculated from ``NCORES_PER_NODE`` and ``OMP_NUM_THREADS`` in ``setup.py``. - -| ``PPN_RUN_POST``: (Default: "24") -| ``PPN_GET_OBS_CCPA``: (Default: "1") -| ``PPN_GET_OBS_MRMS``: (Default: "1") -| ``PPN_GET_OBS_NDAS``: (Default: "1") -| ``PPN_VX_GRIDSTAT``: (Default: "1") -| ``PPN_VX_POINTSTAT``: (Default: "1") -| ``PPN_VX_ENSGRID``: (Default: "1") -| ``PPN_VX_ENSGRID_MEAN``: (Default: "1") -| ``PPN_VX_ENSGRID_PROB``: (Default: "1") -| ``PPN_VX_ENSPOINT``: (Default: "1") -| ``PPN_VX_ENSPOINT_MEAN``: (Default: "1") -| ``PPN_VX_ENSPOINT_PROB``: (Default: "1") - - -**Wall Times:** Maximum amount of time for the task to run - -| ``WTIME_MAKE_GRID``: (Default: "00:20:00") -| ``WTIME_MAKE_OROG``: (Default: "01:00:00") -| ``WTIME_MAKE_SFC_CLIMO``: (Default: "00:20:00") -| ``WTIME_GET_EXTRN_ICS``: (Default: "00:45:00") -| ``WTIME_GET_EXTRN_LBCS``: (Default: "00:45:00") -| ``WTIME_MAKE_ICS``: (Default: "00:30:00") -| ``WTIME_MAKE_LBCS``: (Default: "00:30:00") -| ``WTIME_RUN_FCST``: (Default: "04:30:00") -| ``WTIME_RUN_POST``: (Default: "00:15:00") -| ``WTIME_GET_OBS_CCPA``: (Default: "00:45:00") -| ``WTIME_GET_OBS_MRMS``: (Default: "00:45:00") -| ``WTIME_GET_OBS_NDAS``: (Default: "02:00:00") -| ``WTIME_VX_GRIDSTAT``: (Default: "02:00:00") -| ``WTIME_VX_POINTSTAT``: (Default: "01:00:00") -| ``WTIME_VX_ENSGRID``: (Default: "01:00:00") -| ``WTIME_VX_ENSGRID_MEAN``: (Default: "01:00:00") -| ``WTIME_VX_ENSGRID_PROB``: (Default: "01:00:00") -| ``WTIME_VX_ENSPOINT``: (Default: "01:00:00") -| ``WTIME_VX_ENSPOINT_MEAN``: (Default: "01:00:00") -| ``WTIME_VX_ENSPOINT_PROB``: (Default: "01:00:00") - -**Maximum number of attempts to run a task:** - -| ``MAXTRIES_MAKE_GRID``: (Default: "2") -| ``MAXTRIES_MAKE_OROG``: (Default: "2") -| ``MAXTRIES_MAKE_SFC_CLIMO``: (Default: "2") -| ``MAXTRIES_GET_EXTRN_ICS``: (Default: "1") -| ``MAXTRIES_GET_EXTRN_LBCS``: (Default: "1") -| ``MAXTRIES_MAKE_ICS``: (Default: "1") -| ``MAXTRIES_MAKE_LBCS``: (Default: "1") -| ``MAXTRIES_RUN_FCST``: (Default: "1") -| ``MAXTRIES_RUN_POST``: (Default: "2") -| ``MAXTRIES_GET_OBS_CCPA``: (Default: "1") -| ``MAXTRIES_GET_OBS_MRMS``: (Default: "1") -| ``MAXTRIES_GET_OBS_NDAS``: (Default: "1") -| ``MAXTRIES_VX_GRIDSTAT``: (Default: "1") -| ``MAXTRIES_VX_GRIDSTAT_REFC``: (Default: "1") -| ``MAXTRIES_VX_GRIDSTAT_RETOP``: (Default: "1") -| ``MAXTRIES_VX_GRIDSTAT_03h``: (Default: "1") -| ``MAXTRIES_VX_GRIDSTAT_06h``: (Default: "1") -| ``MAXTRIES_VX_GRIDSTAT_24h``: (Default: "1") -| ``MAXTRIES_VX_POINTSTAT``: (Default: "1") -| ``MAXTRIES_VX_ENSGRID``: (Default: "1") -| ``MAXTRIES_VX_ENSGRID_REFC``: (Default: "1") -| ``MAXTRIES_VX_ENSGRID_RETOP``: (Default: "1") -| ``MAXTRIES_VX_ENSGRID_03h``: (Default: "1") -| ``MAXTRIES_VX_ENSGRID_06h``: (Default: "1") -| ``MAXTRIES_VX_ENSGRID_24h``: (Default: "1") -| ``MAXTRIES_VX_ENSGRID_MEAN``: (Default: "1") -| ``MAXTRIES_VX_ENSGRID_PROB``: (Default: "1") -| ``MAXTRIES_VX_ENSGRID_MEAN_03h``: (Default: "1") -| ``MAXTRIES_VX_ENSGRID_PROB_03h``: (Default: "1") -| ``MAXTRIES_VX_ENSGRID_MEAN_06h``: (Default: "1") -| ``MAXTRIES_VX_ENSGRID_PROB_06h``: (Default: "1") -| ``MAXTRIES_VX_ENSGRID_MEAN_24h``: (Default: "1") -| ``MAXTRIES_VX_ENSGRID_PROB_24h``: (Default: "1") -| ``MAXTRIES_VX_ENSGRID_PROB_REFC``: (Default: "1") -| ``MAXTRIES_VX_ENSGRID_PROB_RETOP``: (Default: "1") -| ``MAXTRIES_VX_ENSPOINT``: (Default: "1") -| ``MAXTRIES_VX_ENSPOINT_MEAN``: (Default: "1") -| ``MAXTRIES_VX_ENSPOINT_PROB``: (Default: "1") - - -Pre-Processing Parameters -========================= -These parameters set flags (and related directories) that determine whether various workflow tasks should be run. Note that the ``MAKE_GRID_TN``, ``MAKE_OROG_TN``, and ``MAKE_SFC_CLIMO_TN`` are all :term:`cycle-independent` tasks, i.e., if they are to be run, they do so only once at the beginning of the workflow before any cycles are run. +VX_ENSPOINT Configuration Parameters +======================================== -Baseline Workflow Tasks --------------------------- +Non-default parameters for the ``run_enspointvx`` task are set in the ``task_run_vx_enspoint:`` section of the ``config.yaml`` file. -``RUN_TASK_MAKE_GRID``: (Default: true) - Flag that determines whether to run the grid file generation task (``MAKE_GRID_TN``). If this is set to true, the grid generation task is run and new grid files are generated. If it is set to false, then the scripts look for pre-generated grid files in the directory specified by ``GRID_DIR`` (see below). +``VX_ENSPOINT_TN``: (Default: "run_enspointvx") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. -``GRID_DIR``: (Default: "") - The directory containing pre-generated grid files when ``RUN_TASK_MAKE_GRID`` is set to false. +``NNODES_VX_ENSPOINT``: (Default: 1) + Number of nodes to use for the job. -``RUN_TASK_MAKE_OROG``: (Default: true) - Same as ``RUN_TASK_MAKE_GRID`` but for the orography generation task (``MAKE_OROG_TN``). Flag that determines whether to run the orography file generation task (``MAKE_OROG_TN``). If this is set to true, the orography generation task is run and new orography files are generated. If it is set to false, then the scripts look for pre-generated orography files in the directory specified by ``OROG_DIR`` (see below). +``PPN_VX_ENSPOINT``: (Default: 1) + Number of :term:`MPI` processes per node. -``OROG_DIR``: (Default: "") - The directory containing pre-generated orography files to use when ``MAKE_OROG_TN`` is set to false. +``WTIME_VX_ENSPOINT``: (Default: 01:00:00) + Maximum time for the task to complete. -``RUN_TASK_MAKE_SFC_CLIMO``: (Default: true) - Same as ``RUN_TASK_MAKE_GRID`` but for the surface climatology generation task (``MAKE_SFC_CLIMO_TN``). Flag that determines whether to run the surface climatology file generation task (``MAKE_SFC_CLIMO_TN``). If this is set to true, the surface climatology generation task is run and new surface climatology files are generated. If it is set to false, then the scripts look for pre-generated surface climatology files in the directory specified by ``SFC_CLIMO_DIR`` (see below). +``MAXTRIES_VX_ENSPOINT``: (Default: 1) + Maximum number of times to attempt the task. -``SFC_CLIMO_DIR``: (Default: "") - The directory containing pre-generated surface climatology files to use when ``MAKE_SFC_CLIMO_TN`` is set to false. -``RUN_TASK_GET_EXTRN_ICS``: (Default: true) - Flag that determines whether to run the ``GET_EXTRN_ICS_TN`` task. +VX_ENSPOINT_MEAN Configuration Parameters +============================================== -``RUN_TASK_GET_EXTRN_LBCS``: (Default: true) - Flag that determines whether to run the ``GET_EXTRN_LBCS_TN`` task. +Non-default parameters for the ``run_enspointvx_mean`` task are set in the ``task_run_vx_enspoint_mean:`` section of the ``config.yaml`` file. -``RUN_TASK_MAKE_ICS``: (Default: true) - Flag that determines whether to run the ``MAKE_ICS_TN`` task. +``VX_ENSPOINT_MEAN_TN``: (Default: "run_enspointvx_mean") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. -``RUN_TASK_MAKE_LBCS``: (Default: true) - Flag that determines whether to run the ``MAKE_LBCS_TN`` task. +``NNODES_VX_ENSPOINT_MEAN``: (Default: 1) + Number of nodes to use for the job. -``RUN_TASK_RUN_FCST``: (Default: true) - Flag that determines whether to run the ``RUN_FCST_TN`` task. +``PPN_VX_ENSPOINT_MEAN``: (Default: 1) + Number of :term:`MPI` processes per node. -``RUN_TASK_RUN_POST``: (Default: true) - Flag that determines whether to run the ``RUN_POST_TN`` task. +``WTIME_VX_ENSPOINT_MEAN``: (Default: 01:00:00) + Maximum time for the task to complete. -.. _VXTasks: +``MAXTRIES_VX_ENSPOINT_MEAN``: (Default: 1) + Maximum number of times to attempt the task. -Verification Tasks --------------------- -``RUN_TASK_GET_OBS_CCPA``: (Default: false) - Flag that determines whether to run the ``GET_OBS_CCPA_TN`` task, which retrieves the :term:`CCPA` hourly precipitation files used by METplus from NOAA :term:`HPSS`. +VX_ENSPOINT_PROB Configuration Parameters +============================================== -``RUN_TASK_GET_OBS_MRMS``: (Default: false) - Flag that determines whether to run the ``GET_OBS_MRMS_TN`` task, which retrieves the :term:`MRMS` composite reflectivity files used by METplus from NOAA HPSS. +Non-default parameters for the ``run_enspointvx_prob`` task are set in the ``task_run_vx_enspoint_prob:`` section of the ``config.yaml`` file. -``RUN_TASK_GET_OBS_NDAS``: (Default: false) - Flag that determines whether to run the ``GET_OBS_NDAS_TN`` task, which retrieves the :term:`NDAS` PrepBufr files used by METplus from NOAA HPSS. +``VX_ENSPOINT_PROB_TN``: (Default: "run_enspointvx_prob") + Set the name of this Rocoto workflow task. Users typically do not need to change this value. -``RUN_TASK_VX_GRIDSTAT``: (Default: false) - Flag that determines whether to run the grid-stat verification task. +``NNODES_VX_ENSPOINT_PROB``: (Default: 1) + Number of nodes to use for the job. -``RUN_TASK_VX_POINTSTAT``: (Default: false) - Flag that determines whether to run the point-stat verification task. +``PPN_VX_ENSPOINT_PROB``: (Default: 1) + Number of :term:`MPI` processes per node. -``RUN_TASK_VX_ENSGRID``: (Default: false) - Flag that determines whether to run the ensemble-stat verification for gridded data task. +``WTIME_VX_ENSPOINT_PROB``: (Default: 01:00:00) + Maximum time for the task to complete. -``RUN_TASK_VX_ENSPOINT``: (Default: false) - Flag that determines whether to run the ensemble point verification task. If this flag is set, both ensemble-stat point verification and point verification of ensemble-stat output is computed. +``MAXTRIES_VX_ENSPOINT_PROB``: (Default: 1) + Maximum number of times to attempt the task. -.. - COMMENT: Might be worth defining "ensemble-stat verification for gridded data," "ensemble point verification," "ensemble-stat point verification," and "point verification of ensemble-stat output" -Aerosol Climatology Parameter -================================ +Global Configuration Parameters +=================================== -``USE_MERRA_CLIMO``: (Default: false) - Flag that determines whether :term:`MERRA2` aerosol climatology data and lookup tables for optics properties are obtained. +Non-default parameters for the miscellaneous tasks are set in the ``global:`` section of the ``config.yaml`` file. -.. - COMMENT: When would it be appropriate to obtain these files? +Community Radiative Transfer Model (CRTM) Parameters +-------------------------------------------------------- -Surface Climatology Parameter -============================= -``SFC_CLIMO_FIELDS``: (Default: "("facsf" "maximum_snow_albedo" "slope_type" "snowfree_albedo" "soil_type" "substrate_temperature" "vegetation_greenness" "vegetation_type")" ) - Array containing the names of all the fields for which ``MAKE_SFC_CLIMO_TN`` generates files on the native FV3-LAM grid. +These variables set parameters associated with outputting satellite fields in the :term:`UPP` :term:`grib2` files using the Community Radiative Transfer Model (:term:`CRTM`). :numref:`Section %s ` includes further instructions on how to do this. -Fixed File Parameters -===================== -These parameters are associated with the fixed (i.e., static) files. On `Level 1 & 2 `__ systems, fixed files are prestaged with paths defined in the ``setup.py`` script. Because the default values are platform-dependent, they are set to a null string in ``config_defaults.yaml``. Then these null values are overwritten in ``setup.py`` with machine-specific values or with a user-specified value from ``config.yaml``. +``USE_CRTM``: (Default: false) + Flag that defines whether external :term:`CRTM` coefficient files have been staged by the user in order to output synthetic satellite products available within the :term:`UPP`. If this is set to true, then the workflow will check for these files in the directory ``CRTM_DIR``. Otherwise, it is assumed that no satellite fields are being requested in the UPP configuration. -``FIXgsm``: (Default: "") - System directory in which the majority of fixed (i.e., time-independent) files that are needed to run the FV3-LAM model are located. +``CRTM_DIR``: (Default: "") + This is the path to the top CRTM fix file directory. This is only used if ``USE_CRTM`` is set to true. -``FIXaer``: (Default: "") - System directory where :term:`MERRA2` aerosol climatology files are located. -``FIXlut``: (Default: "") - System directory where the lookup tables for optics properties are located. +Ensemble Model Parameters +----------------------------- -``TOPO_DIR``: (Default: "") - The location on disk of the static input files used by the ``make_orog`` task (i.e., ``orog.x`` and ``shave.x``). Can be the same as ``FIXgsm``. +Set parameters associated with running ensembles. -``SFC_CLIMO_INPUT_DIR``: (Default: "") - The location on disk of the static surface climatology input fields, used by ``sfc_climo_gen``. These files are only used if ``RUN_TASK_MAKE_SFC_CLIMO: true``. +``DO_ENSEMBLE``: (Default: false) + Flag that determines whether to run a set of ensemble forecasts (for each set of specified cycles). If this is set to true, ``NUM_ENS_MEMBERS`` forecasts are run for each cycle, each with a different set of stochastic seed values. When false, a single forecast is run for each cycle. -``FNGLAC, ..., FNMSKH``: (Default: see below) - .. code-block:: console +``NUM_ENS_MEMBERS``: (Default: 1) + The number of ensemble members to run if ``DO_ENSEMBLE`` is set to true. This variable also controls the naming of the ensemble member directories. For example, if ``NUM_ENS_MEMBERS`` is set to 8, the member directories will be named *mem1, mem2, ..., mem8*. If it is set to 08 (with a leading zero), the member directories will be named *mem01, mem02, ..., mem08*. However, after reading in the number of characters in this string (in order to determine how many leading zeros, if any, should be placed in the names of the member directories), the workflow generation scripts strip away those leading zeros. Thus, in the variable definitions file (``GLOBAL_VAR_DEFNS_FN``), this variable appears with its leading zeros stripped. This variable is not used unless ``DO_ENSEMBLE`` is set to true. - (FNGLAC: &FNGLAC "global_glacier.2x2.grb" - FNMXIC: &FNMXIC "global_maxice.2x2.grb" - FNTSFC: &FNTSFC "RTGSST.1982.2012.monthly.clim.grb" - FNSNOC: &FNSNOC "global_snoclim.1.875.grb" - FNZORC: &FNZORC "igbp" - FNAISC: &FNAISC "CFSR.SEAICE.1982.2012.monthly.clim.grb" - FNSMCC: &FNSMCC "global_soilmgldas.t126.384.190.grb" - FNMSKH: &FNMSKH "seaice_newland.grb" - ) + .. COMMENT: Is the note about 8 vs 08 still true? It looks like the workflow now uses integers, not strings... - Names and default locations of (some of the) global data files that are assumed to exist in a system directory. (This directory is machine-dependent; the experiment generation scripts will set it and store it in the variable ``FIXgsm``.) These file names also appear directly in the forecast model's input :term:`namelist` file. -``FIXgsm_FILES_TO_COPY_TO_FIXam``: (Default: see below) - .. code-block:: console +Stochastic Physics Parameters +---------------------------------- - ("$FNGLAC" \ - "$FNMXIC" \ - "$FNTSFC" \ - "$FNSNOC" \ - "$FNAISC" \ - "$FNSMCC" \ - "$FNMSKH" \ - "global_climaeropac_global.txt" \ - "fix_co2_proj/global_co2historicaldata_2010.txt" \ - "fix_co2_proj/global_co2historicaldata_2011.txt" \ - "fix_co2_proj/global_co2historicaldata_2012.txt" \ - "fix_co2_proj/global_co2historicaldata_2013.txt" \ - "fix_co2_proj/global_co2historicaldata_2014.txt" \ - "fix_co2_proj/global_co2historicaldata_2015.txt" \ - "fix_co2_proj/global_co2historicaldata_2016.txt" \ - "fix_co2_proj/global_co2historicaldata_2017.txt" \ - "fix_co2_proj/global_co2historicaldata_2018.txt" \ - "fix_co2_proj/global_co2historicaldata_2019.txt" \ - "fix_co2_proj/global_co2historicaldata_2020.txt" \ - "fix_co2_proj/global_co2historicaldata_2021.txt" \ - "global_co2historicaldata_glob.txt" \ - "co2monthlycyc.txt" \ - "global_h2o_pltc.f77" \ - "global_hyblev.l65.txt" \ - "global_zorclim.1x1.grb" \ - "global_sfc_emissivity_idx.txt" \ - "global_tg3clim.2.6x1.5.grb" \ - "global_solarconstant_noaa_an.txt" \ - "global_albedo4.1x1.grb" \ - "geo_em.d01.lat-lon.2.5m.HGT_M.nc" \ - "HGT.Beljaars_filtered.lat-lon.30s_res.nc" \ - "replace_with_FIXgsm_ozone_prodloss_filename") +Set default ad-hoc stochastic physics options. For the most updated and detailed documentation of these parameters, see the `UFS Stochastic Physics Documentation `__. - If not running in NCO mode, this array contains the names of the files to copy from the ``FIXgsm`` system directory to the ``FIXam`` directory under the experiment directory. - - .. note:: - The last element in the list above contains a dummy value. This value will be reset by the workflow generation scripts to the name of the ozone production/loss file that needs to be copied from ``FIXgsm``. This file depends on the :term:`CCPP` physics suite specified for the experiment (and the corresponding ozone parameterization scheme used in that physics suite). +``NEW_LSCALE``: (Default: true) + Use correct formula for converting a spatial legnth scale into spectral space. -``FV3_NML_VARNAME_TO_FIXam_FILES_MAPPING``: (Default: see below) - .. code-block:: console +Specific Humidity (SHUM) Perturbation Parameters +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - ("FNGLAC | $FNGLAC" \ - "FNMXIC | $FNMXIC" \ - "FNTSFC | $FNTSFC" \ - "FNSNOC | $FNSNOC" \ - "FNAISC | $FNAISC" \ - "FNSMCC | $FNSMCC" \ - "FNMSKH | $FNMSKH" ) +``DO_SHUM``: (Default: false) + Flag to turn Specific Humidity (SHUM) perturbations on or off. SHUM perturbations multiply the low-level specific humidity by a small random number at each time-step. The SHUM scheme attempts to address missing physics phenomena (e.g., cold pools, gust fronts) most active in convective regions. - This array is used to set some of the :term:`namelist` variables in the forecast model's namelist file. It maps file symlinks to the actual fixed file locations in the ``FIXam`` directory. The symlink names appear in the first column (to the left of the "|" symbol), and the paths to these files (in the ``FIXam`` directory) are held in workflow variables, which appear to the right of the "|" symbol. It is possible to remove ``FV3_NML_VARNAME_TO_FIXam_FILES_MAPPING`` as a workflow variable and make it only a local one since it is used in only one script. +``ISEED_SHUM``: (Default: 2) + Seed for setting the SHUM random number sequence. -``FV3_NML_VARNAME_TO_SFC_CLIMO_FIELD_MAPPING``: (Default: see below) - .. code-block:: console +``SHUM_MAG``: (Default: 0.006) + Amplitudes of random patterns. Corresponds to the variable ``shum`` in ``input.nml``. - ("FNALBC | snowfree_albedo" \ - "FNALBC2 | facsf" \ - "FNTG3C | substrate_temperature" \ - "FNVEGC | vegetation_greenness" \ - "FNVETC | vegetation_type" \ - "FNSOTC | soil_type" \ - "FNVMNC | vegetation_greenness" \ - "FNVMXC | vegetation_greenness" \ - "FNSLPC | slope_type" \ - "FNABSC | maximum_snow_albedo" ) +``SHUM_LSCALE``: (Default: 150000) + Decorrelation spatial scale in meters. - This array is used to set some of the :term:`namelist` variables in the forecast model's namelist file. The variable names appear in the first column (to the left of the "|" symbol), and the paths to these surface climatology files on the native FV3-LAM grid (in the ``FIXLAM`` directory) are derived from the corresponding surface climatology fields (the second column of the array). - -``CYCLEDIR_LINKS_TO_FIXam_FILES_MAPPING``: (Default: see below) - .. code-block:: console +``SHUM_TSCALE``: (Default: 21600) + Decorrelation timescale in seconds. Corresponds to the variable ``shum_tau`` in ``input.nml``. - ("aerosol.dat | global_climaeropac_global.txt" \ - "co2historicaldata_2010.txt | fix_co2_proj/global_co2historicaldata_2010.txt" \ - "co2historicaldata_2011.txt | fix_co2_proj/global_co2historicaldata_2011.txt" \ - "co2historicaldata_2012.txt | fix_co2_proj/global_co2historicaldata_2012.txt" \ - "co2historicaldata_2013.txt | fix_co2_proj/global_co2historicaldata_2013.txt" \ - "co2historicaldata_2014.txt | fix_co2_proj/global_co2historicaldata_2014.txt" \ - "co2historicaldata_2015.txt | fix_co2_proj/global_co2historicaldata_2015.txt" \ - "co2historicaldata_2016.txt | fix_co2_proj/global_co2historicaldata_2016.txt" \ - "co2historicaldata_2017.txt | fix_co2_proj/global_co2historicaldata_2017.txt" \ - "co2historicaldata_2018.txt | fix_co2_proj/global_co2historicaldata_2018.txt" \ - "co2historicaldata_2019.txt | fix_co2_proj/global_co2historicaldata_2019.txt" \ - "co2historicaldata_2020.txt | fix_co2_proj/global_co2historicaldata_2020.txt" \ - "co2historicaldata_2021.txt | fix_co2_proj/global_co2historicaldata_2021.txt" \ - "co2historicaldata_glob.txt | global_co2historicaldata_glob.txt" \ - "co2monthlycyc.txt | co2monthlycyc.txt" \ - "global_h2oprdlos.f77 | global_h2o_pltc.f77" \ - "global_albedo4.1x1.grb | global_albedo4.1x1.grb" \ - "global_zorclim.1x1.grb | global_zorclim.1x1.grb" \ - "global_tg3clim.2.6x1.5.grb | global_tg3clim.2.6x1.5.grb" \ - "sfc_emissivity_idx.txt | global_sfc_emissivity_idx.txt" \ - "solarconstant_noaa_an.txt | global_solarconstant_noaa_an.txt" \ - "global_o3prdlos.f77 | " ) +``SHUM_INT``: (Default: 3600) + Interval in seconds to update random pattern (optional). Perturbations still get applied at every time-step. Corresponds to the variable ``shumint`` in ``input.nml``. - This array specifies the mapping to use between the symlinks that need to be created in each cycle directory (these are the "files" that :term:`FV3` looks for) and their targets in the ``FIXam`` directory. The first column of the array specifies the symlink to be created, and the second column specifies its target file in ``FIXam`` (where columns are delineated by the pipe symbol "|"). +.. _SPPT: -Subhourly Forecast Parameters -================================= +Stochastically Perturbed Physics Tendencies (SPPT) Parameters +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -``SUB_HOURLY_POST``: (Default: false) - Flag that indicates whether the forecast model will generate output files on a sub-hourly time interval (e.g., 10 minutes, 15 minutes). This will also cause the post-processor to process these sub-hourly files. If this variable is set to "TRUE", then ``DT_SUBHOURLY_POST_MNTS`` should be set to a valid value between "01" and "59". +SPPT perturbs full physics tendencies *after* the call to the physics suite, unlike :ref:`SPP ` (below), which perturbs specific tuning parameters within a physics scheme. -``DT_SUB_HOURLY_POST_MNTS``: (Default: 0) - Time interval in minutes between the forecast model output files. If ``SUB_HOURLY_POST`` is set to true, this needs to be set to a valid two-digit integer between 1 and 59. Note that if ``SUB_HOURLY_POST`` is set to true but ``DT_SUB_HOURLY_POST_MNTS`` is set to 0, ``SUB_HOURLY_POST`` will get reset to false in the experiment generation scripts (there will be an informational message in the log file to emphasize this). Valid values: ``0`` | ``1`` | ``2`` | ``3`` | ``4`` | ``5`` | ``6`` | ``10`` | ``12`` | ``15`` | ``20`` | ``30`` +``DO_SPPT``: (Default: false) + Flag to turn Stochastically Perturbed Physics Tendencies (SPPT) on or off. SPPT multiplies the physics tendencies by a random number between 0 and 2 before updating the model state. This addresses error in the physics parameterizations (either missing physics or unresolved subgrid processes). It is most active in the boundary layer and convective regions. -Customized Post Configuration Parameters -======================================== +``ISEED_SPPT``: (Default: 1) + Seed for setting the SPPT random number sequence. -``USE_CUSTOM_POST_CONFIG_FILE``: (Default: false) - Flag that determines whether a user-provided custom configuration file should be used for post-processing the model data. If this is set to "TRUE", then the workflow will use the custom post-processing (:term:`UPP`) configuration file specified in ``CUSTOM_POST_CONFIG_FP``. Otherwise, a default configuration file provided in the UPP repository will be used. +``SPPT_MAG``: (Default: 0.7) + Amplitude of random patterns. Corresponds to the variable ``sppt`` in ``input.nml``. -``CUSTOM_POST_CONFIG_FP``: (Default: "") - The full path to the custom flat file, including filename, to be used for post-processing. This is only used if ``CUSTOM_POST_CONFIG_FILE`` is set to "TRUE". +``SPPT_LOGIT``: (Default: true) + Limits the SPPT perturbations to between 0 and 2. Should be "TRUE"; otherwise the model will crash. +``SPPT_LSCALE``: (Default: 150000) + Decorrelation spatial scale in meters. -Community Radiative Transfer Model (CRTM) Parameters -======================================================= +``SPPT_TSCALE``: (Default: 21600) + Decorrelation timescale in seconds. Corresponds to the variable ``sppt_tau`` in ``input.nml``. + +``SPPT_INT``: (Default: 3600) + Interval in seconds to update random pattern (optional parameter). Perturbations still get applied at every time-step. Corresponds to the variable ``spptint`` in ``input.nml``. -These variables set parameters associated with outputting satellite fields in the :term:`UPP` :term:`grib2` files using the Community Radiative Transfer Model (:term:`CRTM`). :numref:`Section %s ` includes further instructions on how to do this. +``SPPT_SFCLIMIT``: (Default: true) + When true, tapers the SPPT perturbations to zero at the model's lowest level, which reduces model crashes. -``USE_CRTM``: (Default: false) - Flag that defines whether external :term:`CRTM` coefficient files have been staged by the user in order to output synthetic satellite products available within the :term:`UPP`. If this is set to "TRUE", then the workflow will check for these files in the directory ``CRTM_DIR``. Otherwise, it is assumed that no satellite fields are being requested in the UPP configuration. +``USE_ZMTNBLCK``: (Default: false) + When true, do not apply perturbations below the dividing streamline that is diagnosed by the gravity wave drag, mountain blocking scheme. -``CRTM_DIR``: (Default: "") - This is the path to the top CRTM fix file directory. This is only used if ``USE_CRTM`` is set to "TRUE". -Ensemble Model Parameters -============================ +Stochastic Kinetic Energy Backscatter (SKEB) Parameters +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -``DO_ENSEMBLE``: (Default: false) - Flag that determines whether to run a set of ensemble forecasts (for each set of specified cycles). If this is set to true, ``NUM_ENS_MEMBERS`` forecasts are run for each cycle, each with a different set of stochastic seed values. When false, a single forecast is run for each cycle. +``DO_SKEB``: (Default: false) + Flag to turn Stochastic Kinetic Energy Backscatter (SKEB) on or off. SKEB adds wind perturbations to the model state. Perturbations are random in space/time, but amplitude is determined by a smoothed dissipation estimate provided by the :term:`dynamical core`. SKEB addresses errors in the dynamics more active in the mid-latitudes. -``NUM_ENS_MEMBERS``: (Default: "1") - The number of ensemble members to run if ``DO_ENSEMBLE`` is set to true. This variable also controls the naming of the ensemble member directories. For example, if ``NUM_ENS_MEMBERS`` is set to "8", the member directories will be named *mem1, mem2, ..., mem8*. If it is set to "08" (with a leading zero), the member directories will be named *mem01, mem02, ..., mem08*. However, after reading in the number of characters in this string (in order to determine how many leading zeros, if any, should be placed in the names of the member directories), the workflow generation scripts strip away those leading zeros. Thus, in the variable definitions file (``GLOBAL_VAR_DEFNS_FN``), this variable appears with its leading zeros stripped. This variable is not used unless ``DO_ENSEMBLE`` is set to true. +``ISEED_SKEB``: (Default: 3) + Seed for setting the SHUM random number sequence. -.. _HaloBlend: +``SKEB_MAG``: (Default: 0.5) + Amplitude of random patterns. Corresponds to the variable ``skeb`` in ``input.nml``. -Halo Blend Parameter -==================== -``HALO_BLEND``: (Default: "10") - Number of cells to use for "blending" the external solution (obtained from the :term:`LBCs`) with the internal solution from the FV3LAM :term:`dycore`. Specifically, it refers to the number of rows into the computational domain that should be blended with the LBCs. Cells at which blending occurs are all within the boundary of the native grid; they don't involve the 4 cells outside the boundary where the LBCs are specified (which is a different :term:`halo`). Blending is necessary to smooth out waves generated due to mismatch between the external and internal solutions. To shut :term:`halo` blending off, set this to zero. +``SKEB_LSCALE``: (Default: 150000) + Decorrelation spatial scale in meters. +``SKEB_TSCALE``: (Default: 21600) + Decorrelation timescale in seconds. Corresponds to the variable ``skeb_tau`` in ``input.nml``. -FVCOM Parameter -=============== -``USE_FVCOM``: (Default: false) - Flag that specifies whether or not to update surface conditions in FV3-LAM with fields generated from the Finite Volume Community Ocean Model (:term:`FVCOM`). If set to "TRUE", lake/sea surface temperatures, ice surface temperatures, and ice placement will be overwritten using data provided by FVCOM. Setting ``USE_FVCOM`` to "TRUE" causes the executable ``process_FVCOM.exe`` in the ``MAKE_ICS_TN`` task to run. This, in turn, modifies the file ``sfc_data.nc`` generated by ``chgres_cube``. Note that the FVCOM data must already be interpolated to the desired FV3-LAM grid. +``SKEB_INT``: (Default: 3600) + Interval in seconds to update random pattern (optional). Perturbations still get applied every time-step. Corresponds to the variable ``skebint`` in ``input.nml``. -``FVCOM_WCSTART``: (Default: "cold") - Define if this is a "warm" start or a "cold" start. Setting this to "warm" will read in ``sfc_data.nc`` generated in a RESTART directory. Setting this to "cold" will read in the ``sfc_data.nc`` generated from ``chgres_cube`` in the ``make_ics`` portion of the workflow. Valid values: ``"cold"`` | ``"warm"`` +``SKEBNORM``: (Default: 1) + Patterns: + * 0-random pattern is stream function + * 1-pattern is K.E. norm + * 2-pattern is vorticity + +``SKEB_VDOF``: (Default: 10) + The number of degrees of freedom in the vertical direction for the SKEB random pattern. -``FVCOM_DIR``: (Default: "/user/defined/dir/to/fvcom/data") - User-defined directory where the ``fvcom.nc`` file containing :term:`FVCOM` data on the FV3-LAM native grid is located. The file name in this directory must be ``fvcom.nc``. -``FVCOM_FILE``: (Default: "fvcom.nc") - Name of file located in ``FVCOM_DIR`` that has :term:`FVCOM` data interpolated to the FV3-LAM grid. This file will be copied later to a new location and the name changed to ``fvcom.nc`` if a name other than ``fvcom.nc`` is selected. +.. _SPP: + +Parameters for Stochastically Perturbed Parameterizations (SPP) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Thread Affinity Interface -=========================== +SPP perturbs specific tuning parameters within a physics :term:`parameterization ` (unlike :ref:`SPPT `, which multiplies overall physics tendencies by a random perturbation field *after* the call to the physics suite). Patterns evolve and are applied at each time step. Each SPP option is an array, applicable (in order) to the :term:`RAP`/:term:`HRRR`-based parameterization listed in ``SPP_VAR_LIST``. Enter each value of the array in ``config.yaml`` as shown below without commas or single quotes (e.g., ``SPP_VAR_LIST: [ "pbl" "sfc" "mp" "rad" "gwd" ]`` ). Both commas and single quotes will be added by Jinja when creating the namelist. .. note:: - Note that settings for the ``make_grid`` and ``make_orog`` tasks are disabled or not included below because they do not use parallelized code. + SPP is currently only available for specific physics schemes used in the RAP/HRRR physics suite. Users need to be aware of which :term:`SDF` is chosen when turning this option on. Of the four supported physics suites, the full set of parameterizations can only be used with the ``FV3_HRRR`` option for ``CCPP_PHYS_SUITE``. + +``DO_SPP``: (Default: false) + Flag to turn SPP on or off. SPP perturbs parameters or variables with unknown or uncertain magnitudes within the physics code based on ranges provided by physics experts. -``KMP_AFFINITY_*``: (Default: see below) +``ISEED_SPP``: (Default: [ 4, 5, 6, 7, 8 ] ) + Seed for setting the random number sequence for the perturbation pattern. - .. code-block:: console +``SPP_VAR_LIST``: (Default: [ "pbl", "sfc", "mp", "rad", "gwd" ] ) + The list of parameterizations to perturb: planetary boundary layer (PBL), surface physics (SFC), microphysics (MP), radiation (RAD), gravity wave drag (GWD). Valid values: ``"pbl"`` | ``"sfc"`` | ``"rad"`` | ``"gwd"`` | ``"mp"`` - KMP_AFFINITY_MAKE_OROG: "disabled" - KMP_AFFINITY_MAKE_SFC_CLIMO: "scatter" - KMP_AFFINITY_MAKE_ICS: "scatter" - KMP_AFFINITY_MAKE_LBCS: "scatter" - KMP_AFFINITY_RUN_FCST: "scatter" - KMP_AFFINITY_RUN_POST: "scatter" +``SPP_MAG_LIST``: (Default: [ 0.2, 0.2, 0.75, 0.2, 0.2 ] ) + SPP perturbation magnitudes used in each parameterization. Corresponds to the variable ``spp_prt_list`` in ``input.nml`` - "Intel's runtime library can bind OpenMP threads to physical processing units. The interface is controlled using the KMP_AFFINITY environment variable. Thread affinity restricts execution of certain threads to a subset of the physical processing units in a multiprocessor computer. Depending on the system (machine) topology, application, and operating system, thread affinity can have a dramatic effect on the application speed and on the execution speed of a program." Valid values: ``"scatter"`` | ``"disabled"`` | ``"balanced"`` | ``"compact"`` | ``"explicit"`` | ``"none"`` +``SPP_LSCALE``: (Default: [ 150000.0, 150000.0, 150000.0, 150000.0, 150000.0 ] ) + Decorrelation spatial scales in meters. + +``SPP_TSCALE``: (Default: [ 21600.0, 21600.0, 21600.0, 21600.0, 21600.0 ] ) + Decorrelation timescales in seconds. Corresponds to the variable ``spp_tau`` in ``input.nml``. - For more information, see the `Intel Development Reference Guide `__. +``SPP_SIGTOP1``: (Default: [ 0.1, 0.1, 0.1, 0.1, 0.1 ] ) + Controls vertical tapering of perturbations at the tropopause and corresponds to the lower sigma level at which to taper perturbations to zero. -``OMP_NUM_THREADS_*``: (Default: see below) +``SPP_SIGTOP2``: (Default: [ 0.025, 0.025, 0.025, 0.025, 0.025 ] ) + Controls vertical tapering of perturbations at the tropopause and corresponds to the upper sigma level at which to taper perturbations to zero. - .. code-block:: console +``SPP_STDDEV_CUTOFF``: (Default: [ 1.5, 1.5, 2.5, 1.5, 1.5 ] ) + Limit for possible perturbation values in standard deviations from the mean. - OMP_NUM_THREADS_MAKE_OROG: "6" - OMP_NUM_THREADS_MAKE_SFC_CLIMO: "1" - OMP_NUM_THREADS_MAKE_ICS: "1" - OMP_NUM_THREADS_MAKE_LBCS: "1" - OMP_NUM_THREADS_RUN_FCST: "2" # atmos_nthreads in model_configure - OMP_NUM_THREADS_RUN_POST: "1" - The number of OpenMP threads to use for parallel regions. +Land Surface Model (LSM) SPP +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. - COMMENT: What does the #atmos_nthreads comment mean? Can it be removed? - +Land surface perturbations can be applied to land model parameters and land model prognostic variables. The LSM scheme is intended to address errors in the land model and land-atmosphere interactions. LSM perturbations include soil moisture content (SMC) (volume fraction), vegetation fraction (VGF), albedo (ALB), salinity (SAL), emissivity (EMI), surface roughness (ZOL) (in cm), and soil temperature (STC). Perturbations to soil moisture content (SMC) are only applied at the first time step. Only five perturbations at a time can be applied currently, but all seven are shown below. In addition, only one unique *iseed* value is allowed at the moment, and it is used for each pattern. -``OMP_STACKSIZE_*``: (Default: see below) +The parameters below turn on SPP in Noah or RUC LSM (support for Noah MP is in progress). Please be aware of the :term:`SDF` that you choose if you wish to turn on Land Surface Model (LSM) SPP. SPP in LSM schemes is handled in the ``&nam_sfcperts`` namelist block instead of in ``&nam_sppperts``, where all other SPP is implemented. - .. code-block:: console + .. COMMENT: No longer appears: + "The default perturbation frequency is determined by the ``fhcyc`` namelist entry. Since that parameter is set to zero in the SRW App, use ``LSM_SPP_EACH_STEP`` to perturb every time step."" + +``DO_LSM_SPP``: (Default: false) + Turns on Land Surface Model (LSM) Stochastic Physics Parameterizations (SPP). When true, sets ``lndp_type=2``, which applies land perturbations to the selected paramaters using a newer scheme designed for data assimilation (DA) ensemble spread. LSM SPP perturbs uncertain land surface fields ("smc" "vgf" "alb" "sal" "emi" "zol" "stc") based on recommendations from physics experts. - OMP_STACKSIZE_MAKE_OROG: "2048m" - OMP_STACKSIZE_MAKE_SFC_CLIMO: "1024m" - OMP_STACKSIZE_MAKE_ICS: "1024m" - OMP_STACKSIZE_MAKE_LBCS: "1024m" - OMP_STACKSIZE_RUN_FCST: "1024m" - OMP_STACKSIZE_RUN_POST: "1024m" +``LSM_SPP_TSCALE``: (Default: [ 21600, 21600, 21600, 21600, 21600, 21600, 21600 ] ) + Decorrelation timescales in seconds. - Controls the size of the stack for threads created by the OpenMP implementation. +``LSM_SPP_LSCALE``: (Default: [ 150000, 150000, 150000, 150000, 150000, 150000, 150000 ] ) + Decorrelation spatial scales in meters. + +``ISEED_LSM_SPP``: (Default: [ 9 ] ) + Seed to initialize the random perturbation pattern. + +``LSM_SPP_VAR_LIST``: (Default: [ "smc", "vgf", "alb", "sal", "emi", "zol", "stc" ] ) + Indicates which LSM variables to perturb. +``LSM_SPP_MAG_LIST``: (Default: [ 0.017, 0.001, 0.001, 0.001, 0.001, 0.001, 0.2 ] ) + Sets the maximum random pattern amplitude for each of the LSM perturbations. + +.. COMMENT: This variable no longer appears and was going to be removed. See if anything has replaced it. + ``LSM_SPP_EACH_STEP``: (Default: "true") + When set to "TRUE", it sets ``lndp_each_step=.true.`` and perturbs each time step. + + +.. _HaloBlend: + +Halo Blend Parameter +------------------------ +``HALO_BLEND``: (Default: 10) + Number of cells to use for "blending" the external solution (obtained from the :term:`LBCs`) with the internal solution from the FV3LAM :term:`dycore`. Specifically, it refers to the number of rows into the computational domain that should be blended with the LBCs. Cells at which blending occurs are all within the boundary of the native grid; they don't involve the 4 cells outside the boundary where the LBCs are specified (which is a different :term:`halo`). Blending is necessary to smooth out waves generated due to mismatch between the external and internal solutions. To shut :term:`halo` blending off, set this to zero. diff --git a/docs/UsersGuide/source/RocotoInfo.rst b/docs/UsersGuide/source/RocotoInfo.rst index ac49064abf..da5af70fa2 100644 --- a/docs/UsersGuide/source/RocotoInfo.rst +++ b/docs/UsersGuide/source/RocotoInfo.rst @@ -143,7 +143,7 @@ from the ``$EXPTDIR`` directory as follows: where * ``-c`` is the cycle to query in YYYYMMDDHHmm format -* ``-t`` is the task name (see default task names in :numref:`Chapter %s `) +* ``-t`` is the task name (e.g., ``make_grid``, ``get_extrn_ics``, ``run_fcst``). See :numref:`Chapter %s ` for the default values for task name variables, which end in ``_TN``. The cycle and task names appear in the first and second columns of the table output by ``rocotostat``. From 4cdcdfa2be864e01c6ad369e7e374cff3d9494fa Mon Sep 17 00:00:00 2001 From: gspetro Date: Fri, 14 Oct 2022 09:52:59 -0400 Subject: [PATCH 18/58] add met docs to intersphinx --- docs/UsersGuide/source/ConfigWorkflow.rst | 101 +++++++--------------- docs/UsersGuide/source/conf.py | 1 + 2 files changed, 31 insertions(+), 71 deletions(-) diff --git a/docs/UsersGuide/source/ConfigWorkflow.rst b/docs/UsersGuide/source/ConfigWorkflow.rst index 0373378ef1..9e53c7cc10 100644 --- a/docs/UsersGuide/source/ConfigWorkflow.rst +++ b/docs/UsersGuide/source/ConfigWorkflow.rst @@ -320,8 +320,11 @@ CCPP Parameter ``CCPP_PHYS_SUITE``: (Default: "FV3_GFS_v16") This parameter indicates which :term:`CCPP` (Common Community Physics Package) physics suite to use for the forecast(s). The choice of physics suite determines the forecast model's namelist file, the diagnostics table file, the field table file, and the XML physics suite definition file, which are staged in the experiment directory or the :term:`cycle` directories under it. + + .. note:: + For information on *stochastic physics* parameters, see :numref:`Section %s `. - **Current supported settings for this parameter are:** + **Current supported settings for the CCPP parameter are:** | ``"FV3_GFS_v16"`` | ``"FV3_RRFS_v1beta"`` @@ -403,34 +406,25 @@ Compiler .. COMMENT: This bit isn't in config_defaults: "Currently, this must be set manually (i.e., it is not inherited from the build system in the ``ufs-srweather-app`` directory)." Should it be removed? Is it still true? - .. COMMENT: Add?: - GET_OBS: "get_obs" - VX_TN: "run_vx" - VX_ENSGRID_TN: "run_ensgridvx" - VX_ENSGRID_PROB_REFC_TN: "run_ensgridvx_prob_refc" - MAXTRIES_VX_ENSGRID_PROB_REFC: 1 - Verification Parameters --------------------------- ``GET_OBS``: (Default: "get_obs") Set the name of this Rocoto workflow task. Users typically do not need to change this value. - .. COMMENT: How is this different from the other get_obs tasks? Define. + .. COMMENT: How is this different from the other get_obs tasks (e.g., RUN_TASK_GET_OBS_CCPA, MRMS)? Define. Add to WORKFLOW_SWITCHES section? ``VX_TN``: (Default: "run_vx") Set the name of the Rocoto workflow task that launches verification tasks. Users typically do not need to change this value. + .. COMMENT: Define. Is this an overarching VX indicator task? Add to WORKFLOW_SWITCHES section? ``VX_ENSGRID_TN``: (Default: "run_ensgridvx") - Set the name of the Rocoto workflow task that launches ensemble verification tasks. Users typically do not need to change this value. - .. COMMENT: Check definition... think it might not be right (there's a separate "DO_ENSEMBLE" variable) + Set the name of the Rocoto workflow task that runs METplus grid-to-grid ensemble verification for 1-h accumulated precipitation. Users typically do not need to change this value. ``VX_ENSGRID_PROB_REFC_TN``: (Default: "run_ensgridvx_prob_refc") - Set the name of this Rocoto workflow task. Users typically do not need to change this value. - .. COMMENT: How is this different from the other get_obs tasks? Define. + Set the name of the Rocoto workflow task that runs METplus grid-to-grid verification for ensemble probabilities for composite reflectivity. Users typically do not need to change this value. ``MAXTRIES_VX_ENSGRID_PROB_REFC``: (Default: 1) - Maximum number of times to attempt the task. - .. COMMENT: Which task? + Maximum number of times to attempt ``VX_ENSGRID_PROB_REFC_TN``. .. _NCOModeParms: @@ -461,38 +455,6 @@ A standard set of environment variables has been established for *nco* mode to s ``OPSROOT``: (Default: "") The operations root directory in *nco* mode. -.. COMMENT: Remove the following variables? They no longer appear in config_defaults... - - ``COMINgfs``: (Default: "/base/path/of/directory/containing/gfs/input/files") - The beginning portion of the path to the directory that contains files generated by the external model (FV3GFS). The initial and lateral boundary condition generation tasks need this path in order to create initial and boundary condition files for a given cycle on the native FV3-LAM grid. For a cycle that starts on the date specified by the variable YYYYMMDD (consisting of the 4-digit year, 2-digit month, and 2-digit day of the month) and the hour specified by the variable HH (consisting of the 2-digit hour of the day), the directory in which the workflow will look for the external model files is: - - .. code-block:: console - - $COMINgfs/gfs.$yyyymmdd/$hh/atmos - - ``FIXLAM_NCO_BASEDIR``: (Default: "") - The base directory containing pregenerated grid, orography, and surface climatology files. For the pregenerated grid type specified in the variable ``PREDEF_GRID_NAME``, these "fixed" files are located in: - - .. code-block:: console - - ${FIXLAM_NCO_BASEDIR}/${PREDEF_GRID_NAME} - - The workflow scripts will create a symlink in the experiment directory that will point to a subdirectory (having the name of the grid being used) under this directory. This variable should be set to a null string in ``config_defaults.yaml`` and specified by the user in the workflow configuration file (``config.yaml``). - - ``STMP``: (Default: "/base/path/of/directory/containing/model/input/and/raw/output/files") - The beginning portion of the path to the directory that will contain :term:`cycle-dependent` model input files, symlinks to :term:`cycle-independent` input files, and raw (i.e., before post-processing) forecast output files for a given :term:`cycle`. The format for cycle dates (cdate) is ``cdate="${YYYYMMDD}${HH}"``, where the date is specified using YYYYMMDD format, and the hour is specified using HH format. The files for a cycle date will be located in the following directory: - - .. code-block:: console - - $STMP/tmpnwprd/$RUN/$cdate - - ``PTMP``: (Default: "/base/path/of/directory/containing/postprocessed/output/files") - The beginning portion of the path to the directory that will contain the output files from the post-processor (:term:`UPP`) for a given cycle. For a cycle that starts on the date specified by YYYYMMDD and hour specified by HH (where YYYYMMDD and HH are as described above), the UPP output files will be placed in the following directory: - - .. code-block:: console - - $PTMP/com/$NET/$envir/$RUN.$yyyymmdd/$hh - WORKFLOW SWITCHES Configuration Parameters ============================================= @@ -502,19 +464,13 @@ Baseline Workflow Tasks -------------------------- ``RUN_TASK_MAKE_GRID``: (Default: true) - Flag that determines whether to run the grid file generation task (``MAKE_GRID_TN``). If this is set to true, the grid generation task is run and new grid files are generated. If it is set to false, then the scripts look for pre-generated grid files in the directory specified by ``GRID_DIR`` (see below). - -.. COMMENT: see below where? + Flag that determines whether to run the grid file generation task (``MAKE_GRID_TN``). If this is set to true, the grid generation task is run and new grid files are generated. If it is set to false, then the scripts look for pre-generated grid files in the directory specified by ``GRID_DIR`` (see :numref:`Section %s ` below). ``RUN_TASK_MAKE_OROG``: (Default: true) - Same as ``RUN_TASK_MAKE_GRID`` but for the orography generation task (``MAKE_OROG_TN``). Flag that determines whether to run the orography file generation task (``MAKE_OROG_TN``). If this is set to true, the orography generation task is run and new orography files are generated. If it is set to false, then the scripts look for pre-generated orography files in the directory specified by ``OROG_DIR`` (see below). - -.. COMMENT: see below where? + Same as ``RUN_TASK_MAKE_GRID`` but for the orography generation task (``MAKE_OROG_TN``). Flag that determines whether to run the orography file generation task (``MAKE_OROG_TN``). If this is set to true, the orography generation task is run and new orography files are generated. If it is set to false, then the scripts look for pre-generated orography files in the directory specified by ``OROG_DIR`` (see :numref:`Section %s ` below). ``RUN_TASK_MAKE_SFC_CLIMO``: (Default: true) - Same as ``RUN_TASK_MAKE_GRID`` but for the surface climatology generation task (``MAKE_SFC_CLIMO_TN``). Flag that determines whether to run the surface climatology file generation task (``MAKE_SFC_CLIMO_TN``). If this is set to true, the surface climatology generation task is run and new surface climatology files are generated. If it is set to false, then the scripts look for pre-generated surface climatology files in the directory specified by ``SFC_CLIMO_DIR`` (see below). - -.. COMMENT: see below where? + Same as ``RUN_TASK_MAKE_GRID`` but for the surface climatology generation task (``MAKE_SFC_CLIMO_TN``). Flag that determines whether to run the surface climatology file generation task (``MAKE_SFC_CLIMO_TN``). If this is set to true, the surface climatology generation task is run and new surface climatology files are generated. If it is set to false, then the scripts look for pre-generated surface climatology files in the directory specified by ``SFC_CLIMO_DIR`` (see :numref:`Section %s ` below). ``RUN_TASK_GET_EXTRN_ICS``: (Default: true) Flag that determines whether to run the ``GET_EXTRN_ICS_TN`` task. @@ -538,28 +494,27 @@ Baseline Workflow Tasks Verification Tasks -------------------- +.. COMMENT: + ``RUN_TASK_GET_OBS_CCPA``: (Default: false) + Flag that determines whether to run the ``GET_OBS_CCPA_TN`` task, which retrieves the :term:`CCPA` hourly precipitation files used by METplus from NOAA :term:`HPSS`. -``RUN_TASK_GET_OBS_CCPA``: (Default: false) - Flag that determines whether to run the ``GET_OBS_CCPA_TN`` task, which retrieves the :term:`CCPA` hourly precipitation files used by METplus from NOAA :term:`HPSS`. - -.. COMMENT: Not included in this section of config_defaults...? Where is it now? Delete? - -``RUN_TASK_GET_OBS_MRMS``: (Default: false) - Flag that determines whether to run the ``GET_OBS_MRMS_TN`` task, which retrieves the :term:`MRMS` composite reflectivity files used by METplus from NOAA HPSS. + .. COMMENT: Not included in this section of config_defaults...? Where is it now? Replaced by GET_OBS? Delete? -.. COMMENT: Not included in this section of config_defaults...? Where is it now? Delete? + ``RUN_TASK_GET_OBS_MRMS``: (Default: false) + Flag that determines whether to run the ``GET_OBS_MRMS_TN`` task, which retrieves the :term:`MRMS` composite reflectivity files used by METplus from NOAA HPSS. -``RUN_TASK_GET_OBS_NDAS``: (Default: false) - Flag that determines whether to run the ``GET_OBS_NDAS_TN`` task, which retrieves the :term:`NDAS` PrepBufr files used by METplus from NOAA HPSS. + .. COMMENT: Not included in this section of config_defaults...? Where is it now? Replaced by GET_OBS? Delete? -.. COMMENT: Not included in this section of config_defaults...? Where is it now? Delete? + ``RUN_TASK_GET_OBS_NDAS``: (Default: false) + Flag that determines whether to run the ``GET_OBS_NDAS_TN`` task, which retrieves the :term:`NDAS` PrepBufr files used by METplus from NOAA HPSS. + .. COMMENT: Not included in this section of config_defaults...? Where is it now? Replaced by GET_OBS? Delete? ``RUN_TASK_VX_GRIDSTAT``: (Default: false) - Flag that determines whether to run the grid-stat verification task. + Flag that determines whether to run the grid-stat verification task. The :ref:`MET Grid-Stat tool ` provides verification statistics for a matched forecast and observation grid. ``RUN_TASK_VX_POINTSTAT``: (Default: false) - Flag that determines whether to run the point-stat verification task. + Flag that determines whether to run the point-stat verification task. The :ref:`MET Point-Stat tool ` provides verification statistics for forecasts at observation points (as opposed to over gridded analyses). ``RUN_TASK_VX_ENSGRID``: (Default: false) Flag that determines whether to run the ensemble-stat verification for gridded data task. @@ -570,6 +525,7 @@ Verification Tasks .. COMMENT: Might be worth defining "ensemble-stat verification for gridded data," "ensemble point verification," "ensemble-stat point verification," and "point verification of ensemble-stat output" +.. _make-grid: MAKE_GRID Configuration Parameters ====================================== @@ -701,8 +657,8 @@ The following parameters must be set if using the "ESGgrid" method to generate a .. note:: A :term:`halo` is the strip of cells surrounding the regional grid; the halo is used to feed in the lateral boundary conditions to the grid. The forecast model requires **grid** files containing 3-cell- and 4-cell-wide halos and **orography** files with 0-cell- and 3-cell-wide halos. In order to generate grid and orography files with appropriately-sized halos, the grid and orography tasks create preliminary files with halos around the regional domain of width ``ESGgrid_WIDE_HALO_WIDTH`` cells. The files are then read in and "shaved" down to obtain grid files with 3-cell-wide and 4-cell-wide halos and orography files with 0-cell-wide and 3-cell-wide halos. The original halo that gets shaved down is referred to as the "wide" halo because it is wider than the 0-cell-wide, 3-cell-wide, and 4-cell-wide halos that users eventually end up with. Note that the grid and orography files with the wide halo are only needed as intermediates in generating the files with 0-cell-, 3-cell-, and 4-cell-wide halos; they are not needed by the forecast model. - - +.. _make-orog: + MAKE_OROG Configuration Parameters ===================================== @@ -735,6 +691,8 @@ Non-default parameters for the ``make_orog`` task are set in the ``task_make_oro ``OROG_DIR``: (Default: "") The directory containing pre-generated orography files to use when ``MAKE_OROG_TN`` is set to false. +.. _make-sfc-climo: + MAKE_SFC_CLIMO Configuration Parameters =========================================== @@ -2002,6 +1960,7 @@ Set parameters associated with running ensembles. .. COMMENT: Is the note about 8 vs 08 still true? It looks like the workflow now uses integers, not strings... +.. _stochastic-physics: Stochastic Physics Parameters ---------------------------------- diff --git a/docs/UsersGuide/source/conf.py b/docs/UsersGuide/source/conf.py index 39d812cf7c..c1a376d0ba 100644 --- a/docs/UsersGuide/source/conf.py +++ b/docs/UsersGuide/source/conf.py @@ -205,6 +205,7 @@ def setup(app): # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { 'hpc-stack': ('https://hpc-stack.readthedocs.io/en/latest/', None), + 'met': ('https://met.readthedocs.io/en/latest/', None), } # -- Options for todo extension ---------------------------------------------- From 3b95eab98239908268fbce1e2d7c015a14d13ab9 Mon Sep 17 00:00:00 2001 From: gspetro Date: Mon, 17 Oct 2022 16:26:22 -0400 Subject: [PATCH 19/58] fix minor errors --- docs/UsersGuide/source/ConfigWorkflow.rst | 198 +++++++++------------- ush/config_defaults.yaml | 6 +- 2 files changed, 86 insertions(+), 118 deletions(-) diff --git a/docs/UsersGuide/source/ConfigWorkflow.rst b/docs/UsersGuide/source/ConfigWorkflow.rst index 9e53c7cc10..70c89c27c4 100644 --- a/docs/UsersGuide/source/ConfigWorkflow.rst +++ b/docs/UsersGuide/source/ConfigWorkflow.rst @@ -3,9 +3,9 @@ ================================================================================================ Workflow Parameters: Configuring the Workflow in ``config.yaml`` and ``config_defaults.yaml`` ================================================================================================ -To create the experiment directory and workflow when running the SRW Application, the user must create an experiment configuration file (usually named ``config.yaml``). This file contains experiment-specific information, such as forecast dates, grid and physics suite selections, data directories, and other relevant settings. To help the user, two sample configuration files have been included in the ``ush`` directory: ``config.community.yaml`` and ``config.nco.yaml``. The first is for running experiments in *community* mode (``RUN_ENVIR`` set to "community"), and the second is for running experiments in *nco* mode (``RUN_ENVIR`` set to "nco"). The content of these files can be copied into ``config.yaml`` and used as the starting point from which to generate a variety of experiment configurations for the SRW App. Note that for this release, only *community* mode is supported. +To create the experiment directory and workflow when running the SRW Application, the user must create an experiment configuration file (usually named ``config.yaml``). This file contains experiment-specific information, such as forecast dates, grid and physics suite choices, data directories, and other relevant settings. To help the user, two sample configuration files have been included in the ``ush`` directory: ``config.community.yaml`` and ``config.nco.yaml``. The first is for running experiments in *community* mode (``RUN_ENVIR`` set to "community"), and the second is for running experiments in *nco* mode (``RUN_ENVIR`` set to "nco"). The content of these files can be copied into ``config.yaml`` and used as the starting point from which to generate a variety of experiment configurations for the SRW App. Note that for this release, only *community* mode is supported. -There is an extensive list of experiment parameters that a user can set when configuring the experiment. Not all of these parameters need to be set explicitly by the user in ``config.yaml``. If a user does not define an entry in the ``config.yaml`` script, either its value in ``config_defaults.yaml`` will be used, or it will be reset depending on other parameters, such as the platform on which the experiment will be run (specified by ``MACHINE``). +There is an extensive list of experiment parameters that a user can set when configuring the experiment. Not all of these parameters need to be set explicitly by the user in ``config.yaml``. If a user does not define a variable in the ``config.yaml`` script, its value in ``config_defaults.yaml`` will be used, or the value will be reset depending on other parameters, such as the platform (``MACHINE``) selected for the experiment. .. note:: The ``config_defaults.yaml`` file contains the full list of experiment parameters that a user may set in ``config.yaml``. The user cannot set parameters in ``config.yaml`` that are not initialized in ``config_defaults.yaml``. @@ -30,7 +30,7 @@ If non-default parameters are selected for the variables in this section, they s Setting ``RUN_ENVIR`` to "community" is recommended in most cases for users who are not planning to implement their code into operations at NCO. Valid values: ``"nco"`` | ``"community"`` ``MACHINE``: (Default: "BIG_COMPUTER") - The machine (a.k.a. platform or system) on which the workflow will run. Currently supported platforms are listed on the `SRW App Wiki page `__. When running the SRW App on any ParellelWorks/NOAA Cloud system, use "NOAACLOUD" regardless of the underlying system (AWS, GCP, or Azure). Valid values: ``"HERA"`` | ``"ORION"`` | ``"JET"`` | ``"CHEYENNE"`` | ``"GAEA"`` | ``"NOAACLOUD"`` | ``"STAMPEDE"`` | ``"ODIN"`` | ``"MACOS"`` | ``"LINUX"`` | ``"SINGULARITY"`` + The machine (a.k.a. platform or system) on which the workflow will run. Currently supported platforms are listed on the `SRW App Wiki page `__. When running the SRW App on any ParellelWorks/NOAA Cloud system, use "NOAACLOUD" regardless of the underlying system (AWS, GCP, or Azure). Valid values: ``"HERA"`` | ``"ORION"`` | ``"JET"`` | ``"CHEYENNE"`` | ``"GAEA"`` | ``"NOAACLOUD"`` | ``"STAMPEDE"`` | ``"ODIN"`` | ``"MACOS"`` | ``"LINUX"`` | ``"SINGULARITY"`` | ``"WCOSS2"`` .. hint:: Users who are NOT on a named, supported Level 1 or 2 platform will need to set the ``MACHINE`` variable to ``LINUX`` or ``MACOS``; to combine use of a Linux or MacOS platform with the Rocoto workflow manager, users will also need to set ``WORKFLOW_MANAGER: "rocoto"`` in the ``platform:`` section of ``config.yaml``. This combination will assume a Slurm batch manager when generating the XML. @@ -54,13 +54,9 @@ If non-default parameters are selected for the variables in this section, they s ``NCORES_PER_NODE``: (Default: "") The number of cores available per node on the compute platform. Set for supported platforms in ``setup.py``, but it is now also configurable for all platforms. - .. COMMENT: Does it mean Level 1 platforms for "supported platforms"? Check setup.py. - ``LMOD_PATH``: (Default: "") Path to the LMOD shell file on the user's Linux system. It is set automatically for supported machines. - .. COMMENT: Does it mean Level 1 platforms for "supported platforms"? - ``BUILD_MOD_FN``: (Default: "") Name of an alternative build module file to use if running on an unsupported platform. It is set automatically for supported machines. @@ -78,6 +74,9 @@ If non-default parameters are selected for the variables in this section, they s ``SCHED``: (Default: "") The job scheduler to use (e.g., Slurm) on the specified ``MACHINE``. Leaving this an empty string allows the experiment generation script to set it automatically depending on the machine the workflow is running on. Valid values: ``"slurm"`` | ``"pbspro"`` | ``"lsf"`` | ``"lsfcray"`` | ``"none"`` +``SLURM_NATIVE_CMD``: (Default: "") + Allows an extra parameter to be passed to slurm via XML Native command. + Machine-Dependent Parameters ------------------------------- @@ -86,7 +85,7 @@ These parameters vary depending on machine. On `Level 1 and 2 ` below). + Flag that determines whether to run the grid file generation task (``MAKE_GRID_TN``). If this is set to true, the grid generation task is run and new grid files are generated. If it is set to false, then the scripts look for pre-generated grid files in the directory specified by ``GRID_DIR`` (see :numref:`Section %s ` below). Valid values: ``True`` | ``False`` ``RUN_TASK_MAKE_OROG``: (Default: true) - Same as ``RUN_TASK_MAKE_GRID`` but for the orography generation task (``MAKE_OROG_TN``). Flag that determines whether to run the orography file generation task (``MAKE_OROG_TN``). If this is set to true, the orography generation task is run and new orography files are generated. If it is set to false, then the scripts look for pre-generated orography files in the directory specified by ``OROG_DIR`` (see :numref:`Section %s ` below). + Same as ``RUN_TASK_MAKE_GRID`` but for the orography generation task (``MAKE_OROG_TN``). Flag that determines whether to run the orography file generation task (``MAKE_OROG_TN``). If this is set to true, the orography generation task is run and new orography files are generated. If it is set to false, then the scripts look for pre-generated orography files in the directory specified by ``OROG_DIR`` (see :numref:`Section %s ` below). Valid values: ``True`` | ``False`` ``RUN_TASK_MAKE_SFC_CLIMO``: (Default: true) - Same as ``RUN_TASK_MAKE_GRID`` but for the surface climatology generation task (``MAKE_SFC_CLIMO_TN``). Flag that determines whether to run the surface climatology file generation task (``MAKE_SFC_CLIMO_TN``). If this is set to true, the surface climatology generation task is run and new surface climatology files are generated. If it is set to false, then the scripts look for pre-generated surface climatology files in the directory specified by ``SFC_CLIMO_DIR`` (see :numref:`Section %s ` below). + Same as ``RUN_TASK_MAKE_GRID`` but for the surface climatology generation task (``MAKE_SFC_CLIMO_TN``). Flag that determines whether to run the surface climatology file generation task (``MAKE_SFC_CLIMO_TN``). If this is set to true, the surface climatology generation task is run and new surface climatology files are generated. If it is set to false, then the scripts look for pre-generated surface climatology files in the directory specified by ``SFC_CLIMO_DIR`` (see :numref:`Section %s ` below). Valid values: ``True`` | ``False`` ``RUN_TASK_GET_EXTRN_ICS``: (Default: true) Flag that determines whether to run the ``GET_EXTRN_ICS_TN`` task. @@ -488,39 +473,41 @@ Baseline Workflow Tasks Flag that determines whether to run the ``RUN_FCST_TN`` task. ``RUN_TASK_RUN_POST``: (Default: true) - Flag that determines whether to run the ``RUN_POST_TN`` task. + Flag that determines whether to run the ``RUN_POST_TN`` task. Valid values: ``True`` | ``False`` .. _VXTasks: Verification Tasks -------------------- .. COMMENT: - ``RUN_TASK_GET_OBS_CCPA``: (Default: false) - Flag that determines whether to run the ``GET_OBS_CCPA_TN`` task, which retrieves the :term:`CCPA` hourly precipitation files used by METplus from NOAA :term:`HPSS`. +``RUN_TASK_GET_OBS_CCPA``: (Default: false) + Flag that determines whether to run the ``GET_OBS_CCPA_TN`` task, which retrieves the :term:`CCPA` hourly precipitation files used by METplus from NOAA :term:`HPSS`. See :numref:`Section %s ` for additional parameters related to this task. - .. COMMENT: Not included in this section of config_defaults...? Where is it now? Replaced by GET_OBS? Delete? + .. COMMENT: No description of task in config_defaults. Just lists var and default value - ``RUN_TASK_GET_OBS_MRMS``: (Default: false) - Flag that determines whether to run the ``GET_OBS_MRMS_TN`` task, which retrieves the :term:`MRMS` composite reflectivity files used by METplus from NOAA HPSS. +``RUN_TASK_GET_OBS_MRMS``: (Default: false) + Flag that determines whether to run the ``GET_OBS_MRMS_TN`` task, which retrieves the :term:`MRMS` composite reflectivity files used by METplus from NOAA HPSS. See :numref:`Section %s ` for additional parameters related to this task. - .. COMMENT: Not included in this section of config_defaults...? Where is it now? Replaced by GET_OBS? Delete? + .. COMMENT: No description of task in config_defaults. Just lists var and default value - ``RUN_TASK_GET_OBS_NDAS``: (Default: false) - Flag that determines whether to run the ``GET_OBS_NDAS_TN`` task, which retrieves the :term:`NDAS` PrepBufr files used by METplus from NOAA HPSS. +``RUN_TASK_GET_OBS_NDAS``: (Default: false) + Flag that determines whether to run the ``GET_OBS_NDAS_TN`` task, which retrieves the :term:`NDAS` PrepBufr files used by METplus from NOAA HPSS. See :numref:`Section %s ` for additional parameters related to this task. - .. COMMENT: Not included in this section of config_defaults...? Where is it now? Replaced by GET_OBS? Delete? + .. COMMENT: No description of task in config_defaults. Just lists var and default value ``RUN_TASK_VX_GRIDSTAT``: (Default: false) - Flag that determines whether to run the grid-stat verification task. The :ref:`MET Grid-Stat tool ` provides verification statistics for a matched forecast and observation grid. + Flag that determines whether to run the grid-stat verification task. The :ref:`MET Grid-Stat tool ` provides verification statistics for a matched forecast and observation grid. See :numref:`Section %s ` for additional parameters related to this task. Valid values: ``True`` | ``False`` ``RUN_TASK_VX_POINTSTAT``: (Default: false) - Flag that determines whether to run the point-stat verification task. The :ref:`MET Point-Stat tool ` provides verification statistics for forecasts at observation points (as opposed to over gridded analyses). + Flag that determines whether to run the point-stat verification task. The :ref:`MET Point-Stat tool ` provides verification statistics for forecasts at observation points (as opposed to over gridded analyses). See :numref:`Section %s ` for additional parameters related to this task. Valid values: ``True`` | ``False`` ``RUN_TASK_VX_ENSGRID``: (Default: false) - Flag that determines whether to run the ensemble-stat verification for gridded data task. + Flag that determines whether to run the ensemble-stat verification for gridded data task. The :ref:`MET Ensemble-Stat tool ` provides verification statistics for ensemble forecasts and can be used in conjunction with the :ref:`MET Grid-Stat tool `. See :numref:`Section %s ` for additional parameters related to this task. Valid values: ``True`` | ``False`` + + https://met.readthedocs.io/en/latest/Users_Guide/ensemble-stat.html ``RUN_TASK_VX_ENSPOINT``: (Default: false) - Flag that determines whether to run the ensemble point verification task. If this flag is set, both ensemble-stat point verification and point verification of ensemble-stat output is computed. + Flag that determines whether to run the ensemble point verification task. If this flag is set, both ensemble-stat point verification and point verification of ensemble-stat output is computed. The :ref:`MET Ensemble-Stat tool ` provides verification statistics for ensemble forecasts and can be used in conjunction with the :ref:`MET Point-Stat tool `. See :numref:`Section %s ` for additional parameters related to this task. Valid values: ``True`` | ``False`` .. COMMENT: Might be worth defining "ensemble-stat verification for gridded data," "ensemble point verification," "ensemble-stat point verification," and "point verification of ensemble-stat output" @@ -570,18 +557,12 @@ Note that the regional grid is defined with respect to a "parent" global cubed-s Latitude of the center of tile 6 (in degrees). ``GFDLgrid_NUM_CELLS``: (Default: "") - Number of grid cells in either of the two horizontal directions (x and y) on each of the six tiles of the parent global cubed-sphere grid. Valid values: ``"48"`` | ``"96"`` | ``"192"`` | ``"384"`` | ``"768"`` | ``"1152"`` | ``"3072"`` + Number of grid cells in either of the two horizontal directions (x and y) on each of the six tiles of the parent global cubed-sphere grid. Valid values: ``48`` | ``96`` | ``192`` | ``384`` | ``768`` | ``1152`` | ``3072`` To give an idea of what these values translate to in terms of grid cell size in kilometers, we list below the approximate grid cell size on a uniform global grid having the specified value of ``GFDLgrid_NUM_CELLS``, where by "uniform" we mean with Schmidt stretch factor ``GFDLgrid_STRETCH_FAC: "1"`` (although in regional applications ``GFDLgrid_STRETCH_FAC`` will typically be set to a value greater than ``"1"`` to obtain a smaller grid size on tile 6): - .. COMMENT: Add/change above? - # The mapping from GFDLgrid_NUM_CELLS to a nominal - # resolution (grid cell size) for a uniform global grid (i.e. Schmidt - # stretch factor GFDLgrid_STRETCH_FAC set to 1) for several values of - # GFDLgrid_NUM_CELLS is as follows: - +---------------------+--------------------+ - | GFDLgrid_NUM_CELLS | typical cell size | + | GFDLgrid_NUM_CELLS | Typical Cell Size | +=====================+====================+ | 48 | 200 km | +---------------------+--------------------+ @@ -766,9 +747,7 @@ File and Directory Parameters Base directory on the local machine containing external model files for generating :term:`ICs` on the native grid. The way the full path containing these files is constructed depends on the user-specified external model for ICs (defined in ``EXTRN_MDL_NAME_ICS`` above). ``USE_USER_STAGED_EXTRN_FILES``: (Default: false) - Flag that determines whether the workflow will look for the external model files needed for generating :term:`ICs` in user-specified directories (rather than fetching them from mass storage like NOAA :term:`HPSS`). - - .. COMMENT: Current definition in config_defaults only lists LBCs, but it's in the ICs section... + Flag that determines whether the workflow will look for the external model files needed for generating :term:`ICs` in user-specified directories (rather than fetching them from mass storage like NOAA :term:`HPSS`). Valid values: ``True`` | ``False`` ``EXTRN_MDL_SOURCE_BASEDIR_ICS``: (Default: "") Directory containing external model files for generating ICs. If ``USE_USER_STAGED_EXTRN_FILES`` is set to true, the workflow looks within this directory for a subdirectory named "YYYYMMDDHH", which contains the external model files specified by the array ``EXTRN_MDL_FILES_ICS``. This "YYYYMMDDHH" subdirectory corresponds to the start date and cycle hour of the forecast (see :ref:`above `). These files will be used to generate the :term:`ICs` on the native FV3-LAM grid. This variable is not used if ``USE_USER_STAGED_EXTRN_FILES`` is set to false. @@ -798,7 +777,7 @@ NOMADS Parameters Set parameters associated with NOMADS online data. ``NOMADS``: (Default: false) - Flag controlling whether to use NOMADS online data. + Flag controlling whether to use NOMADS online data. Valid values: ``True`` | ``False`` ``NOMADS_file_type``: (Default: "nemsio") Flag controlling the format of the data. Valid values: ``"GRIB2"`` | ``"grib2"`` | ``"NEMSIO"`` | ``"nemsio"`` @@ -838,9 +817,7 @@ For each workflow task, certain parameter values must be passed to the job sched The interval (in integer hours) at which LBC files will be generated. This is also referred to as the *boundary update interval*. Note that the model selected in ``EXTRN_MDL_NAME_LBCS`` must have data available at a frequency greater than or equal to that implied by ``LBC_SPEC_INTVL_HRS``. For example, if ``LBC_SPEC_INTVL_HRS`` is set to "6", then the model must have data available at least every 6 hours. It is up to the user to ensure that this is the case. ``EXTRN_MDL_LBCS_OFFSET_HRS``: (Default: "") - Users may wish to use lateral boundary conditions from a forecast that was started earlier than the start of the forecast configured here. This variable indicates how many hours earlier the external model started than the FV3 forecast configured here. For example, if the forecast should use lateral boundary conditions from the GFS started 6 hours earlier, then ``EXTRN_MDL_LBCS_OFFSET_HRS: "6"``. Note: the default value is model-dependent and is set in ``set_extrn_mdl_params.sh``. - -.. COMMENT: Find file & confirm file extension + Users may wish to use lateral boundary conditions from a forecast that was started earlier than the start of the forecast configured here. This variable indicates how many hours earlier the external model started than the FV3 forecast configured here. For example, if the forecast should use lateral boundary conditions from the GFS started 6 hours earlier, then ``EXTRN_MDL_LBCS_OFFSET_HRS: "6"``. Note: the default value is model-dependent and is set in ``ush/set_extrn_mdl_params.py``. ``FV3GFS_FILE_FMT_LBCS``: (Default: "nemsio") If using the FV3GFS model as the source of the :term:`LBCs` (i.e., if ``EXTRN_MDL_NAME_LBCS: "FV3GFS"``), this variable specifies the format of the model files to use when generating the LBCs. Valid values: ``"nemsio"`` | ``"grib2"`` | ``"netcdf"`` @@ -858,7 +835,7 @@ File and Directory Parameters .. COMMENT: In the original config_defaults, the note applied to the ICS version, too. The current config_defaults comments still talk about "these"/"they"... Add the note above with ICS, too? ``USE_USER_STAGED_EXTRN_FILES``: (Default: false) - Analogous to ``USE_USER_STAGED_EXTRN_FILES`` in :term:`ICs` but for :term:`LBCs`. Flag that determines whether the workflow will look for the external model files needed for generating :term:`LBCs` in user-specified directories (rather than fetching them from mass storage like NOAA :term:`HPSS`). + Analogous to ``USE_USER_STAGED_EXTRN_FILES`` in :term:`ICs` but for :term:`LBCs`. Flag that determines whether the workflow will look for the external model files needed for generating :term:`LBCs` in user-specified directories (rather than fetching them from mass storage like NOAA :term:`HPSS`). Valid values: ``True`` | ``False`` ``EXTRN_MDL_SOURCE_BASEDIR_LBCS``: (Default: "") Analogous to ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` but for :term:`LBCs` instead of :term:`ICs`. @@ -918,10 +895,10 @@ For each workflow task, certain parameter values must be passed to the job sched FVCOM Parameter ------------------- ``USE_FVCOM``: (Default: false) - Flag that specifies whether to update surface conditions in FV3-:term:`LAM` with fields generated from the Finite Volume Community Ocean Model (:term:`FVCOM`). If set to true, lake/sea surface temperatures, ice surface temperatures, and ice placement will be overwritten using data provided by FVCOM. Setting ``USE_FVCOM`` to true causes the executable ``process_FVCOM.exe`` in the ``MAKE_ICS_TN`` task to run. This, in turn, modifies the file ``sfc_data.nc`` generated by ``chgres_cube`` during the ``make_ics`` task. Note that the FVCOM data must already be interpolated to the desired FV3-LAM grid. + Flag that specifies whether to update surface conditions in FV3-:term:`LAM` with fields generated from the Finite Volume Community Ocean Model (:term:`FVCOM`). If set to true, lake/sea surface temperatures, ice surface temperatures, and ice placement will be overwritten using data provided by FVCOM. Setting ``USE_FVCOM`` to true causes the executable ``process_FVCOM.exe`` in the ``MAKE_ICS_TN`` task to run. This, in turn, modifies the file ``sfc_data.nc`` generated by ``chgres_cube`` during the ``make_ics`` task. Note that the FVCOM data must already be interpolated to the desired FV3-LAM grid. Valid values: ``True`` | ``False`` ``FVCOM_WCSTART``: (Default: "cold") - Define if this is a "warm" start or a "cold" start. Setting this to "warm" will read in ``sfc_data.nc`` generated in a RESTART directory. Setting this to "cold" will read in the ``sfc_data.nc`` generated from ``chgres_cube`` in the ``make_ics`` portion of the workflow. Valid values: ``"cold"`` | ``"warm"`` + Define if this is a "warm" start or a "cold" start. Setting this to "warm" will read in ``sfc_data.nc`` generated in a RESTART directory. Setting this to "cold" will read in the ``sfc_data.nc`` generated from ``chgres_cube`` in the ``make_ics`` portion of the workflow. Valid values: ``"cold"`` | ``"COLD"`` | ``"warm"`` | ``"WARM"`` ``FVCOM_DIR``: (Default: "") User-defined directory where the ``fvcom.nc`` file containing :term:`FVCOM` data already interpolated to the FV3-LAM native grid is located. The file in this directory must be named ``fvcom.nc``. @@ -1012,8 +989,7 @@ For each workflow task, certain parameter values must be passed to the job sched Model Configuration Parameters ---------------------------------- -These parameters set values in ``model_configure``. -.. COMMENT: Is this accurate??? ^ And what is model_configure? +These parameters set values in the Weather Model's ``model_configure`` file. ``DT_ATMOS``: (Default: "") Time step for the outermost atmospheric model loop in seconds. This corresponds to the frequency at which the physics routines and the top level dynamics routine are called. (Note that one call to the top-level dynamics routine results in multiple calls to the horizontal dynamics, :term:`tracer` transport, and vertical dynamics routines; see the `FV3 dycore scientific documentation `__ for details.) Must be set. Takes an integer value. In the SRW App, a default value for ``DT_ATMOS`` appears in the ``set_predef_grid_params.py`` script, but a different value can be set in ``config.yaml``. @@ -1024,9 +1000,7 @@ These parameters set values in ``model_configure``. .. _InlinePost: ``WRITE_DOPOST``: (Default: false) - Flag that determines whether to use the inline post option, which calls the :term:`UPP` from within the Weather Model. The default ``WRITE_DOPOST: false`` does not use the inline post functionality, and the ``run_post`` tasks are called from outside of the Weather Model. If ``WRITE_DOPOST: true``, the ``WRITE_DOPOST`` flag in the ``model_configure`` file will be set to true, and the post-processing tasks will be called from within the Weather Model. This means that the post-processed files (in :term:`grib2` format) are output by the Weather Model at the same time that it outputs the ``dynf###.nc`` and ``phyf###.nc`` files. Setting ``WRITE_DOPOST: true`` turns off the separate ``run_post`` task (i.e., ``RUN_TASK_RUN_POST`` is set to false) in ``setup.py`` to avoid unnecessary computations. - - .. COMMENT: Reword above to be more concise. + Flag that determines whether to use the inline post option. The default ``WRITE_DOPOST: false`` does not use the inline post functionality, and the ``run_post`` tasks are called from outside of the Weather Model. If ``WRITE_DOPOST: true``, the ``WRITE_DOPOST`` flag in the ``model_configure`` file will be set to true, and the post-processing (:term:`UPP`) tasks will be called from within the Weather Model. This means that the post-processed files (in :term:`grib2` format) are output by the Weather Model at the same time that it outputs the ``dynf###.nc`` and ``phyf###.nc`` files. Setting ``WRITE_DOPOST: true`` turns off the separate ``run_post`` task (i.e., ``RUN_TASK_RUN_POST`` is set to false) in ``setup.py`` to avoid unnecessary computations. Valid values: ``True`` | ``False`` Computational Parameters ---------------------------- @@ -1057,12 +1031,12 @@ Write-Component (Quilting) Parameters .. attention:: The regional grid requires the use of the write component, so users generally should not need to change the default value for ``QUILTING``. - Flag that determines whether to use the write component for writing forecast output files to disk. If set to true, the forecast model will output files named ``dynf$HHH.nc`` and ``phyf$HHH.nc`` (where ``HHH`` is the 3-digit forecast hour) containing dynamics and physics fields, respectively, on the write-component grid. For example, the output files for the 3rd hour of the forecast would be ``dynf$003.nc`` and ``phyf$003.nc``. (The regridding from the native FV3-LAM grid to the write-component grid is done by the forecast model.) If ``QUILTING`` is set to false, then the output file names are ``fv3_history.nc`` and ``fv3_history2d.nc``, and they contain fields on the native grid. Although the UFS Weather Model can run without quilting, the regional grid requires the use of the write component. Therefore, QUILTING should be set to true when running the SRW App. If ``QUILTING`` is set to false, the ``RUN_POST_TN`` (meta)task cannot run because the :term:`UPP` code called by this task cannot process fields on the native grid. In that case, the ``RUN_POST_TN`` (meta)task will be automatically removed from the Rocoto workflow XML. The :ref:`INLINE POST ` option also requires ``QUILTING`` to be set to true in the SRW App. + Flag that determines whether to use the write component for writing forecast output files to disk. If set to true, the forecast model will output files named ``dynf$HHH.nc`` and ``phyf$HHH.nc`` (where ``HHH`` is the 3-digit forecast hour) containing dynamics and physics fields, respectively, on the write-component grid. For example, the output files for the 3rd hour of the forecast would be ``dynf$003.nc`` and ``phyf$003.nc``. (The regridding from the native FV3-LAM grid to the write-component grid is done by the forecast model.) If ``QUILTING`` is set to false, then the output file names are ``fv3_history.nc`` and ``fv3_history2d.nc``, and they contain fields on the native grid. Although the UFS Weather Model can run without quilting, the regional grid requires the use of the write component. Therefore, QUILTING should be set to true when running the SRW App. If ``QUILTING`` is set to false, the ``RUN_POST_TN`` (meta)task cannot run because the :term:`UPP` code called by this task cannot process fields on the native grid. In that case, the ``RUN_POST_TN`` (meta)task will be automatically removed from the Rocoto workflow XML. The :ref:`INLINE POST ` option also requires ``QUILTING`` to be set to true in the SRW App. Valid values: ``True`` | ``False`` .. COMMENT: Most of this detail is not in the config_defaults file... where did I get it? ``PRINT_ESMF``: (Default: false) - Flag that determines whether to output extra (debugging) information from :term:`ESMF` routines. Note that the write component uses ESMF library routines to interpolate from the native forecast model grid to the user-specified output grid (which is defined in the model configuration file ``MODEL_CONFIG_FN`` in the forecast run directory). Valid values: ``true`` | ``false`` + Flag that determines whether to output extra (debugging) information from :term:`ESMF` routines. Note that the write component uses ESMF library routines to interpolate from the native forecast model grid to the user-specified output grid (which is defined in the model configuration file ``MODEL_CONFIG_FN`` in the forecast run directory). Valid values: ``True`` | ``False`` .. COMMENT: Used to say ``model_configure`` (as opposed to config.yaml, which is EXPT_CONFIG_FN)? Or is this a third thing...? @@ -1175,7 +1149,7 @@ Aerosol Climatology Parameter --------------------------------- ``USE_MERRA_CLIMO``: (Default: false) - Flag that determines whether :term:`MERRA2` aerosol climatology data and lookup tables for optics properties are obtained. + Flag that determines whether :term:`MERRA2` aerosol climatology data and lookup tables for optics properties are obtained. Valid values: ``True`` | ``False`` .. COMMENT: When would it be appropriate to obtain these files? @@ -1224,27 +1198,17 @@ These parameters are associated with the fixed (i.e., static) files. On `Level 1 ``FNGLAC, ..., FNMSKH``: (Default: see below) - .. code-block:: console - - FNGLAC: &FNGLAC "global_glacier.2x2.grb" - FNMXIC: &FNMXIC "global_maxice.2x2.grb" - FNTSFC: &FNTSFC "RTGSST.1982.2012.monthly.clim.grb" - FNSNOC: &FNSNOC "global_snoclim.1.875.grb" - FNZORC: &FNZORC "igbp" - FNAISC: &FNAISC "CFSR.SEAICE.1982.2012.monthly.clim.grb" - FNSMCC: &FNSMCC "global_soilmgldas.t126.384.190.grb" - FNMSKH: &FNMSKH "seaice_newland.grb" - - .. COMMENT: Should these default values be in an array? They were before... but currently aren't in config_defaults. + | ``FNGLAC:`` &FNGLAC "global_glacier.2x2.grb" + | ``FNMXIC:`` &FNMXIC "global_maxice.2x2.grb" + | ``FNTSFC:`` &FNTSFC "RTGSST.1982.2012.monthly.clim.grb" + | ``FNSNOC:`` &FNSNOC "global_snoclim.1.875.grb" + | ``FNZORC:`` &FNZORC "igbp" + | ``FNAISC:`` &FNAISC "CFSR.SEAICE.1982.2012.monthly.clim.grb" + | ``FNSMCC:`` &FNSMCC "global_soilmgldas.t126.384.190.grb" + | ``FNMSKH:`` &FNMSKH "seaice_newland.grb" Names and default locations of (some of the) global data files that are assumed to exist in a system directory. (This directory is machine-dependent; the experiment generation scripts will set it and store it in the variable ``FIXgsm``.) These file names also appear directly in the forecast model's input :term:`namelist` file. - .. COMMENT: A note also says: - "# Because the default values are dependent on the platform, we set these - # to a null string which will then be overwritten in setup.py unless the - # user has specified a different value in config.yaml" - ADD? - ``FIXgsm_FILES_TO_COPY_TO_FIXam``: (Default: see below) .. code-block:: console @@ -1392,7 +1356,7 @@ Subhourly Post Parameters Set parameters associated with subhourly forecast model output and post-processing. ``SUB_HOURLY_POST``: (Default: false) - Flag that indicates whether the forecast model will generate output files on a sub-hourly time interval (e.g., 10 minutes, 15 minutes). This will also cause the post-processor to process these sub-hourly files. If this variable is set to true, then ``DT_SUBHOURLY_POST_MNTS`` should be set to a valid value between 1 and 59. + Flag that indicates whether the forecast model will generate output files on a sub-hourly time interval (e.g., 10 minutes, 15 minutes). This will also cause the post-processor to process these sub-hourly files. If this variable is set to true, then ``DT_SUBHOURLY_POST_MNTS`` should be set to a valid value between 1 and 59. Valid values: ``True`` | ``False`` ``DT_SUB_HOURLY_POST_MNTS``: (Default: 0) Time interval in minutes between the forecast model output files (only used if ``SUB_HOURLY_POST`` is set to true). If ``SUB_HOURLY_POST`` is set to true, this needs to be set to a valid two-digit integer between 1 and 59. Note that if ``SUB_HOURLY_POST`` is set to true but ``DT_SUB_HOURLY_POST_MNTS`` is set to 0, ``SUB_HOURLY_POST`` will get reset to false in the experiment generation scripts (there will be an informational message in the log file to emphasize this). Valid values: ``0`` | ``1`` | ``2`` | ``3`` | ``4`` | ``5`` | ``6`` | ``10`` | ``12`` | ``15`` | ``20`` | ``30`` @@ -1403,33 +1367,29 @@ Customized Post Configuration Parameters Set parameters for customizing the :term:`UPP`. ``USE_CUSTOM_POST_CONFIG_FILE``: (Default: false) - Flag that determines whether a user-provided custom configuration file should be used for post-processing the model data. If this is set to true, then the workflow will use the custom post-processing (:term:`UPP`) configuration file specified in ``CUSTOM_POST_CONFIG_FP``. Otherwise, a default configuration file provided in the UPP repository will be used. + Flag that determines whether a user-provided custom configuration file should be used for post-processing the model data. If this is set to true, then the workflow will use the custom post-processing (:term:`UPP`) configuration file specified in ``CUSTOM_POST_CONFIG_FP``. Otherwise, a default configuration file provided in the UPP repository will be used. Valid values: ``True`` | ``False`` ``CUSTOM_POST_CONFIG_FP``: (Default: "") The full path to the custom post flat file, including filename, to be used for post-processing. This is only used if ``CUSTOM_POST_CONFIG_FILE`` is set to true. ``POST_OUTPUT_DOMAIN_NAME``: (Default: "") - Domain name (in lowercase) used to construct the names of the output files generated by :term:`UPP`. The post output files are named as follows: + Domain name (in lowercase) used to construct the names of the output files generated by the :term:`UPP`. If using a predefined grid, ``POST_OUTPUT_DOMAIN_NAME`` defaults to ``PREDEF_GRID_NAME``. If using a custom grid, ``POST_OUTPUT_DOMAIN_NAME`` must be specified by the user. The post output files are named as follows: .. code-block:: console $NET.tHHz.[var_name].f###.${POST_OUTPUT_DOMAIN_NAME}.grib2 - If using a custom grid, ``POST_OUTPUT_DOMAIN_NAME`` must be specified by the user. If using a predefined grid, ``POST_OUTPUT_DOMAIN_NAME`` defaults to ``PREDEF_GRID_NAME``. Note that this variable is first changed to lower case before being used to construct the file names. - - .. COMMENT: Reword/reorganize a tad above? - + Note that this variable is first changed to lower case before being used to construct the file names. +.. _get-obs-ccpa: GET_OBS_CCPA Configuration Parameters ======================================== -.. COMMENT: Add details about the VX GET tasks? Like, what the task is for? When it is used? - Non-default parameters for the ``get_obs_ccpa`` task are set in the ``task_get_obs_ccpa:`` section of the ``config.yaml`` file. ``GET_OBS_CCPA_TN``: (Default: "get_obs_ccpa") - Set the name of this Rocoto workflow task. Users typically do not need to change this value. + Set the name of this Rocoto workflow task. Users typically do not need to change this value. See :numref:`Section %s ` for more information about the verification tasks. ``NNODES_GET_OBS_CCPA``: (Default: 1) Number of nodes to use for the job. @@ -1442,10 +1402,12 @@ Non-default parameters for the ``get_obs_ccpa`` task are set in the ``task_get_o ``MAXTRIES_GET_OBS_CCPA``: (Default: 1) +.. _get-obs-mrms: + GET_OBS_MRMS Configuration Parameters ======================================== -Non-default parameters for the ``get_obs_mrms`` task are set in the ``task_get_obs_mrms:`` section of the ``config.yaml`` file. +Non-default parameters for the ``get_obs_mrms`` task are set in the ``task_get_obs_mrms:`` section of the ``config.yaml`` file. See :numref:`Section %s ` for more information about the verification tasks. ``GET_OBS_MRMS_TN``: (Default: "get_obs_mrms") Set the name of this Rocoto workflow task. Users typically do not need to change this value. @@ -1461,10 +1423,12 @@ Non-default parameters for the ``get_obs_mrms`` task are set in the ``task_get_o ``MAXTRIES_GET_OBS_MRMS``: (Default: 1) +.. _get-obs-ndas: + GET_OBS_NDAS Configuration Parameters ======================================== -Non-default parameters for the ``get_obs_ndas`` task are set in the ``task_get_obs_ndas:`` section of the ``config.yaml`` file. +Non-default parameters for the ``get_obs_ndas`` task are set in the ``task_get_obs_ndas:`` section of the ``config.yaml`` file. See :numref:`Section %s ` for more information about the verification tasks. ``GET_OBS_NDAS_TN``: (Default: "get_obs_ndas") Set the name of this Rocoto workflow task. Users typically do not need to change this value. @@ -1482,6 +1446,7 @@ Non-default parameters for the ``get_obs_ndas`` task are set in the ``task_get_o Maximum number of times to attempt the task. +.. _VX-gridstat: VX_GRIDSTAT Configuration Parameters ======================================== @@ -1608,6 +1573,7 @@ Non-default parameters for the ``run_gridstatvx_24h`` task are set in the ``task ``MAXTRIES_VX_GRIDSTAT_24h``: (Default: 1) Maximum number of times to attempt the task. +.. _VX-pointstat: VX_POINTSTAT Configuration Parameters ============================================= @@ -1629,6 +1595,7 @@ Non-default parameters for the ``run_pointstatvx`` task are set in the ``task_ru ``MAXTRIES_VX_POINTSTAT``: (Default: 1) Maximum number of times to attempt the task. +.. _VX-ensgrid: VX_ENSGRID Configuration Parameters ============================================= @@ -1866,6 +1833,7 @@ Non-default parameters for the ``run_ensgridvx_prob_24h`` task are set in the `` ``MAXTRIES_VX_ENSGRID_PROB_24h``: (Default: 1) Maximum number of times to attempt the task. +.. _VX-enspoint: VX_ENSPOINT Configuration Parameters ======================================== @@ -1941,7 +1909,7 @@ Community Radiative Transfer Model (CRTM) Parameters These variables set parameters associated with outputting satellite fields in the :term:`UPP` :term:`grib2` files using the Community Radiative Transfer Model (:term:`CRTM`). :numref:`Section %s ` includes further instructions on how to do this. ``USE_CRTM``: (Default: false) - Flag that defines whether external :term:`CRTM` coefficient files have been staged by the user in order to output synthetic satellite products available within the :term:`UPP`. If this is set to true, then the workflow will check for these files in the directory ``CRTM_DIR``. Otherwise, it is assumed that no satellite fields are being requested in the UPP configuration. + Flag that defines whether external :term:`CRTM` coefficient files have been staged by the user in order to output synthetic satellite products available within the :term:`UPP`. If this is set to true, then the workflow will check for these files in the directory ``CRTM_DIR``. Otherwise, it is assumed that no satellite fields are being requested in the UPP configuration. Valid values: ``True`` | ``False`` ``CRTM_DIR``: (Default: "") This is the path to the top CRTM fix file directory. This is only used if ``USE_CRTM`` is set to true. @@ -1953,7 +1921,7 @@ Ensemble Model Parameters Set parameters associated with running ensembles. ``DO_ENSEMBLE``: (Default: false) - Flag that determines whether to run a set of ensemble forecasts (for each set of specified cycles). If this is set to true, ``NUM_ENS_MEMBERS`` forecasts are run for each cycle, each with a different set of stochastic seed values. When false, a single forecast is run for each cycle. + Flag that determines whether to run a set of ensemble forecasts (for each set of specified cycles). If this is set to true, ``NUM_ENS_MEMBERS`` forecasts are run for each cycle, each with a different set of stochastic seed values. When false, a single forecast is run for each cycle. Valid values: ``True`` | ``False`` ``NUM_ENS_MEMBERS``: (Default: 1) The number of ensemble members to run if ``DO_ENSEMBLE`` is set to true. This variable also controls the naming of the ensemble member directories. For example, if ``NUM_ENS_MEMBERS`` is set to 8, the member directories will be named *mem1, mem2, ..., mem8*. If it is set to 08 (with a leading zero), the member directories will be named *mem01, mem02, ..., mem08*. However, after reading in the number of characters in this string (in order to determine how many leading zeros, if any, should be placed in the names of the member directories), the workflow generation scripts strip away those leading zeros. Thus, in the variable definitions file (``GLOBAL_VAR_DEFNS_FN``), this variable appears with its leading zeros stripped. This variable is not used unless ``DO_ENSEMBLE`` is set to true. @@ -1974,7 +1942,7 @@ Specific Humidity (SHUM) Perturbation Parameters ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ``DO_SHUM``: (Default: false) - Flag to turn Specific Humidity (SHUM) perturbations on or off. SHUM perturbations multiply the low-level specific humidity by a small random number at each time-step. The SHUM scheme attempts to address missing physics phenomena (e.g., cold pools, gust fronts) most active in convective regions. + Flag to turn Specific Humidity (SHUM) perturbations on or off. SHUM perturbations multiply the low-level specific humidity by a small random number at each time-step. The SHUM scheme attempts to address missing physics phenomena (e.g., cold pools, gust fronts) most active in convective regions. Valid values: ``True`` | ``False`` ``ISEED_SHUM``: (Default: 2) Seed for setting the SHUM random number sequence. @@ -1999,7 +1967,7 @@ Stochastically Perturbed Physics Tendencies (SPPT) Parameters SPPT perturbs full physics tendencies *after* the call to the physics suite, unlike :ref:`SPP ` (below), which perturbs specific tuning parameters within a physics scheme. ``DO_SPPT``: (Default: false) - Flag to turn Stochastically Perturbed Physics Tendencies (SPPT) on or off. SPPT multiplies the physics tendencies by a random number between 0 and 2 before updating the model state. This addresses error in the physics parameterizations (either missing physics or unresolved subgrid processes). It is most active in the boundary layer and convective regions. + Flag to turn Stochastically Perturbed Physics Tendencies (SPPT) on or off. SPPT multiplies the physics tendencies by a random number between 0 and 2 before updating the model state. This addresses error in the physics parameterizations (either missing physics or unresolved subgrid processes). It is most active in the boundary layer and convective regions. Valid values: ``True`` | ``False`` ``ISEED_SPPT``: (Default: 1) Seed for setting the SPPT random number sequence. @@ -2023,14 +1991,14 @@ SPPT perturbs full physics tendencies *after* the call to the physics suite, unl When true, tapers the SPPT perturbations to zero at the model's lowest level, which reduces model crashes. ``USE_ZMTNBLCK``: (Default: false) - When true, do not apply perturbations below the dividing streamline that is diagnosed by the gravity wave drag, mountain blocking scheme. + When true, do not apply perturbations below the dividing streamline that is diagnosed by the gravity wave drag, mountain blocking scheme. Valid values: ``True`` | ``False`` Stochastic Kinetic Energy Backscatter (SKEB) Parameters ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ``DO_SKEB``: (Default: false) - Flag to turn Stochastic Kinetic Energy Backscatter (SKEB) on or off. SKEB adds wind perturbations to the model state. Perturbations are random in space/time, but amplitude is determined by a smoothed dissipation estimate provided by the :term:`dynamical core`. SKEB addresses errors in the dynamics more active in the mid-latitudes. + Flag to turn Stochastic Kinetic Energy Backscatter (SKEB) on or off. SKEB adds wind perturbations to the model state. Perturbations are random in space/time, but amplitude is determined by a smoothed dissipation estimate provided by the :term:`dynamical core`. SKEB addresses errors in the dynamics more active in the mid-latitudes. Valid values: ``True`` | ``False`` ``ISEED_SKEB``: (Default: 3) Seed for setting the SHUM random number sequence. @@ -2068,7 +2036,7 @@ SPP perturbs specific tuning parameters within a physics :term:`parameterization SPP is currently only available for specific physics schemes used in the RAP/HRRR physics suite. Users need to be aware of which :term:`SDF` is chosen when turning this option on. Of the four supported physics suites, the full set of parameterizations can only be used with the ``FV3_HRRR`` option for ``CCPP_PHYS_SUITE``. ``DO_SPP``: (Default: false) - Flag to turn SPP on or off. SPP perturbs parameters or variables with unknown or uncertain magnitudes within the physics code based on ranges provided by physics experts. + Flag to turn SPP on or off. SPP perturbs parameters or variables with unknown or uncertain magnitudes within the physics code based on ranges provided by physics experts. Valid values: ``True`` | ``False`` ``ISEED_SPP``: (Default: [ 4, 5, 6, 7, 8 ] ) Seed for setting the random number sequence for the perturbation pattern. @@ -2106,7 +2074,7 @@ The parameters below turn on SPP in Noah or RUC LSM (support for Noah MP is in p "The default perturbation frequency is determined by the ``fhcyc`` namelist entry. Since that parameter is set to zero in the SRW App, use ``LSM_SPP_EACH_STEP`` to perturb every time step."" ``DO_LSM_SPP``: (Default: false) - Turns on Land Surface Model (LSM) Stochastic Physics Parameterizations (SPP). When true, sets ``lndp_type=2``, which applies land perturbations to the selected paramaters using a newer scheme designed for data assimilation (DA) ensemble spread. LSM SPP perturbs uncertain land surface fields ("smc" "vgf" "alb" "sal" "emi" "zol" "stc") based on recommendations from physics experts. + Turns on Land Surface Model (LSM) Stochastic Physics Parameterizations (SPP). When true, sets ``lndp_type=2``, which applies land perturbations to the selected paramaters using a newer scheme designed for data assimilation (DA) ensemble spread. LSM SPP perturbs uncertain land surface fields ("smc" "vgf" "alb" "sal" "emi" "zol" "stc") based on recommendations from physics experts. Valid values: ``True`` | ``False`` ``LSM_SPP_TSCALE``: (Default: [ 21600, 21600, 21600, 21600, 21600, 21600, 21600 ] ) Decorrelation timescales in seconds. diff --git a/ush/config_defaults.yaml b/ush/config_defaults.yaml index c3d1608e9f..45542b0920 100644 --- a/ush/config_defaults.yaml +++ b/ush/config_defaults.yaml @@ -1176,7 +1176,7 @@ task_get_extrn_ics: # # USE_USER_STAGED_EXTRN_FILES: # Flag that determines whether or not the workflow will look for the - # external model files needed for generating LBCs in user-specified + # external model files needed for generating ICs in user-specified # directories. # # EXTRN_MDL_SOURCE_BASEDIR_ICS: @@ -1684,8 +1684,8 @@ task_run_fcst: #----------------------------------------------------------------------- # # Because the default values are dependent on the platform, we set these - # to a null string which will then be overwritten in setup.sh unless the - # user has specified a different value in config.sh + # to a null string which will then be overwritten in setup.py unless the + # user has specified a different value in config.yaml # SYMLINK_FIX_FILES: true FIXgsm: "" From 15a69f45dba5f93c67f40abbc9bfdf4cbe5130fe Mon Sep 17 00:00:00 2001 From: gspetro Date: Mon, 17 Oct 2022 17:04:33 -0400 Subject: [PATCH 20/58] updated table 4.1 --- docs/UsersGuide/source/BuildSRW.rst | 93 +++++++++++++++++++---------- 1 file changed, 62 insertions(+), 31 deletions(-) diff --git a/docs/UsersGuide/source/BuildSRW.rst b/docs/UsersGuide/source/BuildSRW.rst index 715cef758c..8c73f7e2f2 100644 --- a/docs/UsersGuide/source/BuildSRW.rst +++ b/docs/UsersGuide/source/BuildSRW.rst @@ -74,36 +74,67 @@ The cloned repository contains the configuration files and sub-directories shown .. table:: Files and sub-directories of the ufs-srweather-app repository - +--------------------------------+--------------------------------------------------------+ - | **File/Directory Name** | **Description** | - +================================+========================================================+ - | CMakeLists.txt | Main CMake file for SRW App | - +--------------------------------+--------------------------------------------------------+ - | Externals.cfg | Includes tags pointing to the correct version of the | - | | external GitHub repositories/branches used in the SRW | - | | App. | - +--------------------------------+--------------------------------------------------------+ - | LICENSE.md | CC0 license information | - +--------------------------------+--------------------------------------------------------+ - | README.md | Getting Started Guide | - +--------------------------------+--------------------------------------------------------+ - | ufs_srweather_app_meta.h.in | Meta information for SRW App which can be used by | - | | other packages | - +--------------------------------+--------------------------------------------------------+ - | ufs_srweather_app.settings.in | SRW App configuration summary | - +--------------------------------+--------------------------------------------------------+ - | modulefiles | Contains build and workflow modulefiles | - +--------------------------------+--------------------------------------------------------+ - | etc | Contains Lmod startup scripts | - +--------------------------------+--------------------------------------------------------+ - | docs | Contains release notes, documentation, and User's Guide| - +--------------------------------+--------------------------------------------------------+ - | manage_externals | Utility for checking out external repositories | - +--------------------------------+--------------------------------------------------------+ - | src | Contains CMakeLists.txt; external repositories | - | | will be cloned into this directory. | - +--------------------------------+--------------------------------------------------------+ - + +--------------------------------+-----------------------------------------------------------+ + | **File/Directory Name** | **Description** | + +================================+===========================================================+ + | CMakeLists.txt | Main CMake file for SRW App | + +--------------------------------+-----------------------------------------------------------+ + | devbuild.sh | SRW App build script | + +--------------------------------+-----------------------------------------------------------+ + | docs | Contains release notes, documentation, and User's Guide | + +--------------------------------+-----------------------------------------------------------+ + | environment.yml | | + +--------------------------------+-----------------------------------------------------------+ + | etc | Contains Lmod startup scripts | + +--------------------------------+-----------------------------------------------------------+ + | Externals.cfg | Includes tags pointing to the correct version of the | + | | external GitHub repositories/branches used in the SRW | + | | App. | + +--------------------------------+-----------------------------------------------------------+ + | jobs | Contains the *j-job* script for each workflow task. These | + | | scripts set up the environment variables and call an | + | | *ex-script* script located in the ``scripts`` | + | | subdirectory. | + +--------------------------------+-----------------------------------------------------------+ + | LICENSE.md | CC0 license information | + +--------------------------------+-----------------------------------------------------------+ + | manage_externals | Utility for checking out external repositories | + +--------------------------------+-----------------------------------------------------------+ + | modulefiles | Contains build and workflow modulefiles | + +--------------------------------+-----------------------------------------------------------+ + | parm | Contains parameter files. Includes UFS Weather Model | + | | configuration files such as ``model_configure``, | + | | ``diag_table``, and ``field_table``. | + +--------------------------------+-----------------------------------------------------------+ + | README.md | Getting Started Guide | + +--------------------------------+-----------------------------------------------------------+ + | rename_model.sh | | + +--------------------------------+-----------------------------------------------------------+ + | scripts | Contains the *ex-script* for each workflow task. | + | | These scripts are where the script logic and executables | + | | are contained. | + +--------------------------------+-----------------------------------------------------------+ + | sorc | Contains CMakeLists.txt; external repositories | + | | will be cloned into this directory. | + +--------------------------------+-----------------------------------------------------------+ + | tests | Contains SRW App tests, including workflow end-to-end | + | | (WE2E) tests. | + +--------------------------------+-----------------------------------------------------------+ + | ufs_srweather_app_meta.h.in | Meta information for SRW App which can be used by | + | | other packages | + +--------------------------------+-----------------------------------------------------------+ + | ufs_srweather_app.settings.in | SRW App configuration summary | + +--------------------------------+-----------------------------------------------------------+ + | ush | Contains utility scripts. Includes the experiment | + | | configuration file and the experiment generation file. | + +--------------------------------+-----------------------------------------------------------+ + | versions | Contains ``run.ver`` and ``build.ver`` files, which track | + | | package versions at run time and compile time, | + | | respectively. | + +--------------------------------+-----------------------------------------------------------+ + +.. COMMENT: Is environment.yml deprecated? Remove? + Add rename_model.sh details. .. _CheckoutExternals: @@ -351,7 +382,7 @@ From the build directory, run the following commands to build the pre-processing .. code-block:: console - cmake .. -DCMAKE_INSTALL_PREFIX=.. + cmake .. -DCMAKE_INSTALL_PREFIX=.. -DCMAKE_INSTALL_BINDIR=exec .. make -j 4 >& build.out & ``-DCMAKE_INSTALL_PREFIX`` specifies the location in which the ``exec``, ``include``, ``lib``, and ``share`` directories will be created. These directories will contain various components of the SRW App. Its recommended value ``..`` denotes one directory up from the build directory. In the next line, the ``make`` call argument ``-j 4`` indicates that the build will run in parallel with 4 threads. Although users can specify a larger or smaller number of threads (e.g., ``-j8``, ``-j2``), it is highly recommended to use at least 4 parallel threads to prevent overly long installation times. From 264ed05c4c3ca2838974e913b4ecdda79937433d Mon Sep 17 00:00:00 2001 From: gspetro Date: Mon, 17 Oct 2022 18:46:35 -0400 Subject: [PATCH 21/58] add default values to ConfigWorkflow, other minor fixes --- docs/UsersGuide/source/BuildSRW.rst | 31 +++++++++++++---------- docs/UsersGuide/source/ConfigWorkflow.rst | 1 + 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/docs/UsersGuide/source/BuildSRW.rst b/docs/UsersGuide/source/BuildSRW.rst index 8c73f7e2f2..5e58f02cab 100644 --- a/docs/UsersGuide/source/BuildSRW.rst +++ b/docs/UsersGuide/source/BuildSRW.rst @@ -141,7 +141,7 @@ The cloned repository contains the configuration files and sub-directories shown Check Out External Components ================================ -The SRW App relies on a variety of components (e.g., regional_workflow, UFS_UTILS, ufs-weather-model, and UPP) detailed in :numref:`Chapter %s ` of this User's Guide. Each component has its own repository. Users must run the ``checkout_externals`` script to collect the individual components of the SRW App from their respective Git repositories. The ``checkout_externals`` script uses the configuration file ``Externals.cfg`` in the top level directory of the SRW App to clone the correct tags (code versions) of the external repositories listed in :numref:`Section %s ` into the appropriate directories under the ``regional_workflow`` and ``src`` directories. +The SRW App relies on a variety of components (e.g., UFS_UTILS, ufs-weather-model, and UPP) detailed in :numref:`Chapter %s ` of this User's Guide. Each component has its own repository. Users must run the ``checkout_externals`` script to collect the individual components of the SRW App from their respective GitHub repositories. The ``checkout_externals`` script uses the configuration file ``Externals.cfg`` in the top level directory of the SRW App to clone the correct tags (code versions) of the external repositories listed in :numref:`Section %s ` into the appropriate directories (e.g., ``ush``, ``sorc``). Run the executable that pulls in SRW App components from external repositories: @@ -152,10 +152,10 @@ Run the executable that pulls in SRW App components from external repositories: The script should output dialogue indicating that it is retrieving different code repositories. It may take several minutes to download these repositories. -To see more options, users can run ``./manage_externals/checkout_externals -h``. For example: +To see more options for the ``checkout_externals`` script, users can run ``./manage_externals/checkout_externals -h``. For example: - * ``-S``: Outputs the status of the repositories managed by checkout_externals. By default only summary information is provided. Use with the ``-v`` (verbose) option to see details. - * ``-x [EXCLUDE [EXCLUDE ...]]``: allows users to exclude components listed in the externals file when checking out externals. + * ``-S``: Outputs the status of the repositories managed by ``checkout_externals``. By default only summary information is provided. Use with the ``-v`` (verbose) option to see details. + * ``-x [EXCLUDE [EXCLUDE ...]]``: allows users to exclude components when checking out externals. * ``-o``: By default only the required externals are checked out. This flag will also checkout the optional externals. Generally, users will not need to use the options and can simply run the script, but the options are available for those who are curious. @@ -170,7 +170,7 @@ Set Up the Environment and Build the Executables ``devbuild.sh`` Approach ----------------------------- -On Level 1 systems for which a modulefile is provided under the ``modulefiles`` directory, users can build the SRW App binaries with: +On Level 1 systems for which a modulefile is provided under the ``modulefiles`` directory, users can build the SRW App binaries with the following command: .. code-block:: console @@ -189,7 +189,9 @@ If compiler auto-detection fails for some reason, specify it using the ``--compi where valid values are ``intel`` or ``gnu``. -If users want to build the optional ``GSI`` and ``rrfs_utl`` components for RRFS (NOTE: These components are not currently available for use at runtime), they can add the ``--rrfs`` argument. For example: +If users want to build the optional ``GSI`` and ``rrfs_utl`` components for RRFS, they can add the ``--rrfs`` argument (NOTE: These components are not currently available for use at runtime). For example: + +.. COMMENT: What does the runtime note mean? .. code-block:: console @@ -197,12 +199,12 @@ If users want to build the optional ``GSI`` and ``rrfs_utl`` components for RRFS The last line of the console output should be ``[100%] Built target ufs-weather-model``, indicating that the UFS Weather Model executable has been built successfully. -The executables listed in :numref:`Table %s ` should appear in the ``ufs-srweather-app/exec`` directory. If users choose to build the ``GSI`` and ``rrfs_utl`` components, the executables listed in :numref:`Table %s ` will also appear there. If this build method does not work, or if users are not on a supported machine, they will have to manually setup the environment and build the SRW App binaries with CMake as described in :numref:`Section %s `. +The executables listed in :numref:`Table %s ` should appear in the ``ufs-srweather-app/exec`` directory. If users choose to build the ``GSI`` and ``rrfs_utl`` components, the executables listed in :numref:`Table %s ` will also appear there. If this build method does not work, or if users are not on a supported machine, they will have to manually set up the environment and build the SRW App binaries with CMake as described in :numref:`Section %s `. .. _ExecDescription: -.. table:: Names and descriptions of the executables produced by the build step and used by the SRW App +.. table:: Names and descriptions of the executables produced by the build step and used by the SRW App +------------------------+---------------------------------------------------------------------------------+ | **Executable Name** | **Description** | @@ -227,7 +229,7 @@ The executables listed in :numref:`Table %s ` should appear in | global_equiv_resol | Calculates a global, uniform, cubed-sphere equivalent resolution for the | | | regional Extended Schmidt Gnomonic (ESG) grid | +------------------------+---------------------------------------------------------------------------------+ - | inland | Creates an inland land mask by determining in-land (i.e. non-coastal) points | + | inland | Creates an inland land mask by determining inland (i.e., non-coastal) points | | | and assigning a value of 1. Default value is 0. | +------------------------+---------------------------------------------------------------------------------+ | lakefrac | Calculates the ratio of the lake area to the grid cell area at each atmospheric | @@ -248,7 +250,7 @@ The executables listed in :numref:`Table %s ` should appear in | sfc_climo_gen | Creates surface climatology fields from fixed files for use in ``chgres_cube`` | +------------------------+---------------------------------------------------------------------------------+ | shave | Shaves the excess halo rows down to what is required for the lateral boundary | - | | conditions (LBC's) in the orography and grid files | + | | conditions (LBCs) in the orography and grid files | +------------------------+---------------------------------------------------------------------------------+ | upp.x | Post-processor for the model output | +------------------------+---------------------------------------------------------------------------------+ @@ -268,11 +270,11 @@ The executables listed in :numref:`Table %s ` should appear in +----------------------------+-----------------------------------------------------------------------------+ | enkf.x | Runs the Ensemble Kalman Filter. | +----------------------------+-----------------------------------------------------------------------------+ - | gen_annual_maxmin_GVF.exe | Generate maximum and minimum GVF files based on yearly long GVF | - | | observations for update_GVF process. | + | gen_annual_maxmin_GVF.exe | Generate maximum and minimum greenness vegetation fraction (GVF) files | + | | based on yearly long GVF observations for update_GVF process. | +----------------------------+-----------------------------------------------------------------------------+ - | update_GVF.exe | Update the greenness vegetation fraction (GVF) in the surface file based on | - | | the real-time observations files. | + | update_GVF.exe | Update the GVF in the surface file based on the real-time observations | + | | files. | +----------------------------+-----------------------------------------------------------------------------+ | ref2tten.exe | Calculate temperature tendency based on the radar reflectivity observation | | | at each grid point. This temperature tendency can be used by the model | @@ -325,6 +327,7 @@ The executables listed in :numref:`Table %s ` should appear in | | and radar reflectivity. | +----------------------------+-----------------------------------------------------------------------------+ +.. COMMENT: Remove RRFS table? Save it somewhere tho so it can be used later in RRFS docs. .. _CMakeApproach: diff --git a/docs/UsersGuide/source/ConfigWorkflow.rst b/docs/UsersGuide/source/ConfigWorkflow.rst index 70c89c27c4..9620c5105f 100644 --- a/docs/UsersGuide/source/ConfigWorkflow.rst +++ b/docs/UsersGuide/source/ConfigWorkflow.rst @@ -480,6 +480,7 @@ Baseline Workflow Tasks Verification Tasks -------------------- .. COMMENT: + ``RUN_TASK_GET_OBS_CCPA``: (Default: false) Flag that determines whether to run the ``GET_OBS_CCPA_TN`` task, which retrieves the :term:`CCPA` hourly precipitation files used by METplus from NOAA :term:`HPSS`. See :numref:`Section %s ` for additional parameters related to this task. From 834f2ba2dd8ecd79817667a223c971e984010bd1 Mon Sep 17 00:00:00 2001 From: gspetro Date: Mon, 17 Oct 2022 19:29:31 -0400 Subject: [PATCH 22/58] add RRFS and GSI to Glossary --- docs/UsersGuide/source/BuildSRW.rst | 9 ++++----- docs/UsersGuide/source/Glossary.rst | 8 ++++++++ 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/docs/UsersGuide/source/BuildSRW.rst b/docs/UsersGuide/source/BuildSRW.rst index 5e58f02cab..0bfcbb0386 100644 --- a/docs/UsersGuide/source/BuildSRW.rst +++ b/docs/UsersGuide/source/BuildSRW.rst @@ -189,18 +189,17 @@ If compiler auto-detection fails for some reason, specify it using the ``--compi where valid values are ``intel`` or ``gnu``. -If users want to build the optional ``GSI`` and ``rrfs_utl`` components for RRFS, they can add the ``--rrfs`` argument (NOTE: These components are not currently available for use at runtime). For example: +If users want to build the optional ``GSI`` and ``rrfs_utl`` components for :term:`RRFS`, they can pass the ``gsi`` and ``rrfs_utils`` arguments (NOTE: These components are not currently available for use at runtime). For example: .. COMMENT: What does the runtime note mean? .. code-block:: console - ./devbuild.sh --platform=hera --rrfs + ./devbuild.sh -p=hera gsi rrfs_utils The last line of the console output should be ``[100%] Built target ufs-weather-model``, indicating that the UFS Weather Model executable has been built successfully. -The executables listed in :numref:`Table %s ` should appear in the ``ufs-srweather-app/exec`` directory. If users choose to build the ``GSI`` and ``rrfs_utl`` components, the executables listed in :numref:`Table %s ` will also appear there. If this build method does not work, or if users are not on a supported machine, they will have to manually set up the environment and build the SRW App binaries with CMake as described in :numref:`Section %s `. - +The executables listed in :numref:`Table %s ` should appear in the ``ufs-srweather-app/exec`` directory. If users choose to build the ``GSI`` and ``rrfs_utils`` components, the executables listed in :numref:`Table %s ` will also appear there. If the ``devbuild.sh`` build method does not work, or if users are not on a supported machine, they will have to manually set up the environment and build the SRW App binaries with CMake as described in :numref:`Section %s `. .. _ExecDescription: @@ -242,7 +241,7 @@ The executables listed in :numref:`Table %s ` should appear in +------------------------+---------------------------------------------------------------------------------+ | orog | Generates orography, land mask, and gravity wave drag files from fixed files | +------------------------+---------------------------------------------------------------------------------+ - | orog_gsl | Ceates orographic statistics fields required for the orographic drag suite | + | orog_gsl | Creates orographic statistics fields required for the orographic drag suite | | | developed by NOAA's Global Systems Laboratory (GSL) | +------------------------+---------------------------------------------------------------------------------+ | regional_esg_grid | Generates an ESG regional grid based on a user-defined namelist | diff --git a/docs/UsersGuide/source/Glossary.rst b/docs/UsersGuide/source/Glossary.rst index 0d48c55237..a82e54f315 100644 --- a/docs/UsersGuide/source/Glossary.rst +++ b/docs/UsersGuide/source/Glossary.rst @@ -93,6 +93,11 @@ Glossary GRIB2 The second version of the World Meterological Organization's (WMO) standard for distributing gridded data. + GSI + `Gridpoint Statistical Interpolation `__ (GSI) is a variational data assimilation system, designed to be flexible, state-of-art, and run efficiently on various parallel computing platforms. It supports :term:`RRFS` features. GSI code is publicly available `on GitHub `__, but some features are only accessible to NOAA affiliates. + + .. COMMENT: What does GSI do... just data assimilation stuff? How is it different from JEDI and other options? What is available to the public? What is needed for running RRFS? + halo A strip of cells on the edge of the regional grid. The :ref:`wide halo ` surrounds the regional grid and is used to feed the lateral boundary conditions into the grid. The :ref:`HALO_BLEND ` parameter refers to a strip of cells *inside* the boundary of the native grid. This halo smooths out mismatches between the external and internal solutions. @@ -185,6 +190,9 @@ Glossary Repository A central location in which files (e.g., data, code, documentation) are stored and managed. + RRFS + The `Rapid Refresh Forecast System `__ is NOAA's next-generation convection-allowing, rapidly-updated, ensemble-based data assimilation and forecasting system currently scheduled for operational implementation in 2024. It is designed to run forecasts on a 3-km :term:`CONUS` domain. + SDF Suite Definition File. An external file containing information about the construction of a physics suite. It describes the schemes that are called, in which order they are called, whether they are subcycled, and whether they are assembled into groups to be called together. From 506ca4733e7e8cf923818a8357d120d1f2d330ff Mon Sep 17 00:00:00 2001 From: gspetro Date: Mon, 17 Oct 2022 22:55:20 -0400 Subject: [PATCH 23/58] update tables & file exts --- docs/UsersGuide/source/BuildSRW.rst | 108 ++++++++++++++++------------ docs/UsersGuide/source/Glossary.rst | 3 + docs/UsersGuide/source/RunSRW.rst | 77 ++++++++++---------- 3 files changed, 106 insertions(+), 82 deletions(-) diff --git a/docs/UsersGuide/source/BuildSRW.rst b/docs/UsersGuide/source/BuildSRW.rst index 0bfcbb0386..ef0c5e6a62 100644 --- a/docs/UsersGuide/source/BuildSRW.rst +++ b/docs/UsersGuide/source/BuildSRW.rst @@ -189,7 +189,9 @@ If compiler auto-detection fails for some reason, specify it using the ``--compi where valid values are ``intel`` or ``gnu``. -If users want to build the optional ``GSI`` and ``rrfs_utl`` components for :term:`RRFS`, they can pass the ``gsi`` and ``rrfs_utils`` arguments (NOTE: These components are not currently available for use at runtime). For example: +The last line of the console output should be ``[100%] Built target ufs-weather-model``, indicating that the UFS Weather Model executable has been built successfully. + +If users want to build the optional ``GSI`` and ``rrfs_utl`` components for :term:`RRFS`, they can pass the ``gsi`` and ``rrfs_utils`` arguments to ``devbuild.sh`` (NOTE: These components are not currently available for use at runtime). For example: .. COMMENT: What does the runtime note mean? @@ -197,9 +199,16 @@ If users want to build the optional ``GSI`` and ``rrfs_utl`` components for :ter ./devbuild.sh -p=hera gsi rrfs_utils -The last line of the console output should be ``[100%] Built target ufs-weather-model``, indicating that the UFS Weather Model executable has been built successfully. +The last few lines of the RRFS console output should be: + +.. code-block:: console + + [100%] Built target RRFS_UTILS + Install the project... + -- Install configuration: "RELEASE" + -- Installing: /path/to/ufs-srweather-app/exec/ufs_srweather_app.settings -The executables listed in :numref:`Table %s ` should appear in the ``ufs-srweather-app/exec`` directory. If users choose to build the ``GSI`` and ``rrfs_utils`` components, the executables listed in :numref:`Table %s ` will also appear there. If the ``devbuild.sh`` build method does not work, or if users are not on a supported machine, they will have to manually set up the environment and build the SRW App binaries with CMake as described in :numref:`Section %s `. +After running ``devbuild.sh``, the executables listed in :numref:`Table %s ` should appear in the ``ufs-srweather-app/exec`` directory. If users choose to build the ``GSI`` and ``rrfs_utils`` components, the executables listed in :numref:`Table %s ` will also appear there. If the ``devbuild.sh`` build method does not work, or if users are not on a supported machine, they will have to manually set up the environment and build the SRW App binaries with CMake as described in :numref:`Section %s `. .. _ExecDescription: @@ -251,7 +260,7 @@ The executables listed in :numref:`Table %s ` should appear in | shave | Shaves the excess halo rows down to what is required for the lateral boundary | | | conditions (LBCs) in the orography and grid files | +------------------------+---------------------------------------------------------------------------------+ - | upp.x | Post-processor for the model output | + | upp.x | Post processor for the model output | +------------------------+---------------------------------------------------------------------------------+ | ufs_model | UFS Weather Model executable | +------------------------+---------------------------------------------------------------------------------+ @@ -269,64 +278,73 @@ The executables listed in :numref:`Table %s ` should appear in +----------------------------+-----------------------------------------------------------------------------+ | enkf.x | Runs the Ensemble Kalman Filter. | +----------------------------+-----------------------------------------------------------------------------+ - | gen_annual_maxmin_GVF.exe | Generate maximum and minimum greenness vegetation fraction (GVF) files | - | | based on yearly long GVF observations for update_GVF process. | + | adjust_soiltq.exe | Uses the lowest-level temperature and moisture analysis increments to | + | | adjust the soil moisture and soil temperature after analysis. | +----------------------------+-----------------------------------------------------------------------------+ - | update_GVF.exe | Update the GVF in the surface file based on the real-time observations | - | | files. | - +----------------------------+-----------------------------------------------------------------------------+ - | ref2tten.exe | Calculate temperature tendency based on the radar reflectivity observation | - | | at each grid point. This temperature tendency can be used by the model | - | | during integration as latent heating initialization for ongoing | - | | precipitation systems, especially convection. | - +----------------------------+-----------------------------------------------------------------------------+ - | update_ice.exe | Replace ice fields in warm start surface files based on the forecast from | - | | cold start forecast using the GFS as the initial file. | + | check_imssnow_fv3lam.exe | This is a tool used to read snow and ice fields from surface files and | + | | check those fields. | +----------------------------+-----------------------------------------------------------------------------+ - | process_updatesst.exe | Update SST field based on the SST analysis from NCEP. | + | fv3lam_nonvarcldana.exe | Runs the non-variational cloud and precipitable hydrometeor analysis based | + | | on the METAR cloud observations, satellite retrieved cloud top products, | + | | and radar reflectivity. | +----------------------------+-----------------------------------------------------------------------------+ - | check_imssnow_fv3lam.exe | This is a tool used to read snow and ice fields from surface files and | - | | check that field. | + | gen_annual_maxmin_GVF.exe | Generates maximum and minimum greenness vegetation fraction (GVF) files | + | | based on year-long GVF observations for the ``update_GVF`` process. | +----------------------------+-----------------------------------------------------------------------------+ | gen_cs.exe | NCL scripts to do cross section plotting. | +----------------------------+-----------------------------------------------------------------------------+ - | lakesurgery.exe | Replace the existing lake depth with the GLOBathy bathymetry. It is | + | gen_ensmean_recenter.exe | Runs the ensemble mean/recentering calculation for FV3LAM ensemble files. | + +----------------------------+-----------------------------------------------------------------------------+ + | lakesurgery.exe | Replaces the existing lake depth with the GLOBathy bathymetry. It is | | | designed to work with the HRRR model. | +----------------------------+-----------------------------------------------------------------------------+ - | process_imssnow_fv3lam.exe | Use FV3LAM snow and ice fields based on the snow and ice information from | + | nc_diag_cat.x | | + +----------------------------+-----------------------------------------------------------------------------+ + | process_imssnow_fv3lam.exe | Uses FV3LAM snow and ice fields based on the snow and ice information from | | | imssnow. | +----------------------------+-----------------------------------------------------------------------------+ - | gen_ensmean_recenter.exe | Runs the ensemble mean/recentering calculation for FV3LAM ensemble files. | + | process_larccld.exe | Processes NASA Langley cloud top product, which reads the cloud top | + | | pressure, temperature, etc. and maps them to the ESG grid. | +----------------------------+-----------------------------------------------------------------------------+ - | update_bc.exe | Adjust 0-h boundary conditions based on the analysis results during data | - | | assimilation cycling. | + | process_Lightning.exe | Processes lightning data. Reads NLDN NetCDF observation files and map the | + | | lightning observations into FV3LAM ESG grid. | +----------------------------+-----------------------------------------------------------------------------+ - | adjust_soiltq.exe | Use the lowest level temperature and moisture analysis increments to adjust | - | | the soil moisture and soil temperature after analysis. | + | process_metarcld.exe | Processes METAR ceilometer cloud observations. Reads the cloud base and | + | | coverage observations from PrepBUFR and distributes the cloud, weather, | + | | and visibility observations to the ESG grid. | +----------------------------+-----------------------------------------------------------------------------+ - | process_NSSL_mosaic.exe | Process NSSL MRMS radar reflectivity mosaic observations: read 33 level | - | | NSSL MRMS radar reflectivity grib2 files and then interpolate the | + | process_NSSL_mosaic.exe | Processes :term:`NSSL` MRMS radar reflectivity mosaic observations. Reads | + | | 33-level NSSL MRMS radar reflectivity grib2 files and then interpolates the | | | reflectivity horizontally to the ESG grid. | +----------------------------+-----------------------------------------------------------------------------+ - | use_raphrrr_sfc.exe | Use RAP and HRRR surface fields to replace the surface fields in FV3LAM. | - | | This is only used for starting the RRFS surface cycling. | + | process_updatesst.exe | Updates Sea Surface Temperature (SST) field based on the SST analysis from | + | | NCEP. | +----------------------------+-----------------------------------------------------------------------------+ - | process_Lightning.exe | Processes lightning data: read NLDN NetCDF observation files and map the | - | | lightning observations into FV3LAM ESG grid. | + | ref2tten.exe | Calculates temperature tendency based on the radar reflectivity observation | + | | at each grid point. This temperature tendency can be used by the model | + | | during integration as latent heating initialization for ongoing | + | | precipitation systems, especially convection. | +----------------------------+-----------------------------------------------------------------------------+ - | process_larccld.exe | Process NASA Langley cloud top product: reads the cloud top pressure, | - | | temperature, etc and maps them to the ESG grid. | + | test_nc_unlimdims.x | | +----------------------------+-----------------------------------------------------------------------------+ - | process_metarcld.exe | Process METAR ceilometers cloud observations: reads the cloud base and | - | | coverage observations from PrepBUFR and distributes the cloud | - | | observations/weather/visibility observations to the ESG grid. | + | ufs_srweather_app.settings | | +----------------------------+-----------------------------------------------------------------------------+ - | fv3lam_nonvarcldana.exe | Runs the non-variational cloud and precipitable hydrometeor analysis based | - | | on the METAR cloud observations, satellite retrieved cloud top products, | - | | and radar reflectivity. | + | update_bc.exe | Adjusts 0-h boundary conditions based on the analysis results during data | + | | assimilation cycling. | +----------------------------+-----------------------------------------------------------------------------+ - -.. COMMENT: Remove RRFS table? Save it somewhere tho so it can be used later in RRFS docs. + | update_GVF.exe | Updates the GVF in the surface file based on the real-time observation | + | | files. | + +----------------------------+-----------------------------------------------------------------------------+ + | update_ice.exe | Replaces ice fields in warm start surface files based on the forecast from | + | | cold start forecast using the GFS as the initial file. | + +----------------------------+-----------------------------------------------------------------------------+ + | use_raphrrr_sfc.exe | Uses RAP and HRRR surface fields to replace the surface fields in FV3LAM. | + | | This is only used for starting the RRFS surface cycling. | + +----------------------------+-----------------------------------------------------------------------------+ + +.. COMMENT: What does nc_diag_cat.x do? And test_nc_unlimdims.x? ufs_srweather_app.settings? + - precipitable hydrometeor analysis? + - What does the update_ice.exe description mean? .. _CMakeApproach: @@ -387,9 +405,11 @@ From the build directory, run the following commands to build the pre-processing cmake .. -DCMAKE_INSTALL_PREFIX=.. -DCMAKE_INSTALL_BINDIR=exec .. make -j 4 >& build.out & -``-DCMAKE_INSTALL_PREFIX`` specifies the location in which the ``exec``, ``include``, ``lib``, and ``share`` directories will be created. These directories will contain various components of the SRW App. Its recommended value ``..`` denotes one directory up from the build directory. In the next line, the ``make`` call argument ``-j 4`` indicates that the build will run in parallel with 4 threads. Although users can specify a larger or smaller number of threads (e.g., ``-j8``, ``-j2``), it is highly recommended to use at least 4 parallel threads to prevent overly long installation times. +``-DCMAKE_INSTALL_PREFIX`` specifies the location in which the ``exec``, ``include``, ``lib``, and ``share`` directories will be created. These directories will contain various components of the SRW App. Its recommended value ``..`` denotes one directory up from the build directory. In the next line, the ``make`` argument ``-j 4`` indicates that the build will run in parallel with 4 threads. Although users can specify a larger or smaller number of threads (e.g., ``-j 8``, ``-j 2``), it is highly recommended to use at least 4 parallel threads to prevent overly long installation times. + +If users want to build the optional ``GSI`` and ``rrfs_utl`` components for RRFS, they can add ``ENABLE_RRFS=on`` to the original cmake command. (NOTE: These components are not currently available for use at runtime.) For example: -If users want to build the optional ``GSI`` and ``rrfs_utl`` components for RRFS (NOTE: These components are not currently available for use at runtime), they can add ``ENABLE_RRFS=on`` to the original cmake command. For example: +.. COMMENT: What does this comment mean??? .. code-block:: console diff --git a/docs/UsersGuide/source/Glossary.rst b/docs/UsersGuide/source/Glossary.rst index a82e54f315..939891dc6c 100644 --- a/docs/UsersGuide/source/Glossary.rst +++ b/docs/UsersGuide/source/Glossary.rst @@ -172,6 +172,9 @@ Glossary netCDF NetCDF (`Network Common Data Form `__) is a file format and community standard for storing multidimensional scientific data. It includes a set of software libraries and machine-independent data formats that support the creation, access, and sharing of array-oriented scientific data. + NSSL + The `National Severe Storms Laboratory `__. + NUOPC The `National Unified Operational Prediction Capability `__ Layer "defines conventions and a set of generic components for building coupled models using the Earth System Modeling Framework (:term:`ESMF`)." diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index 91ab613e9a..1fd0e6e7ce 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -4,7 +4,7 @@ Running the SRW App =========================== -This chapter walks users through how to run the "out-of-the-box" case for the SRW App. However, the steps are relevant to any SRW Application experiment and can be modified to suit user goals. This chapter assumes that users have already built the SRW App by following the steps in :numref:`Chapter %s `. These steps are also applicable to containerized versions of the SRW App and assume that the user has completed Steps :numref:` ` through :numref:` `. +This chapter explains how to set up and run the "out-of-the-box" case for the SRW App. However, the steps are relevant to any SRW Application experiment and can be modified to suit user goals. This chapter assumes that users have already built the SRW App by following the steps in :numref:`Chapter %s `. These steps are also applicable to containerized versions of the SRW App and assume that the user has completed Steps :numref:`Section %s ` through :numref:`Section %s `. The out-of-the-box SRW App case builds a weather forecast for June 15-16, 2019. Multiple convective weather events during these two days produced over 200 filtered storm reports. Severe weather was clustered in two areas: the Upper Midwest through the Ohio Valley and the Southern Great Plains. This forecast uses a predefined 25-km Continental United States (:term:`CONUS`) domain (RRFS_CONUS_25km), the Global Forecast System (:term:`GFS`) version 16 physics suite (FV3_GFS_v16 :term:`CCPP`), and :term:`FV3`-based GFS raw external model data for initialization. @@ -44,7 +44,7 @@ The SRW App requires input files to run. These include static datasets, initial Grid Configuration ======================= -The SRW App officially supports four different predefined grids as shown in :numref:`Table %s `. The out-of-the-box SRW App case uses the ``RRFS_CONUS_25km`` predefined grid option. More information on the predefined and user-generated grid options can be found in :numref:`Chapter %s ` for those who are curious. Users who plan to utilize one of the four predefined domain (grid) options may continue to :numref:`Step %s `. Users who plan to create a new domain should refer to :numref:`Section %s ` for details on how to do so. At a minimum, these users will need to add the new grid name to the ``valid_param_vals.sh`` script and add the corresponding grid-specific parameters in the ``set_predef_grid_params.sh`` script. +The SRW App officially supports four different predefined grids as shown in :numref:`Table %s `. The out-of-the-box SRW App case uses the ``RRFS_CONUS_25km`` predefined grid option. More information on the predefined and user-generated grid options can be found in :numref:`Chapter %s ` for those who are curious. Users who plan to utilize one of the four predefined domain (grid) options may continue to :numref:`Step %s `. Users who plan to create a new domain should refer to :numref:`Section %s ` for details on how to do so. At a minimum, these users will need to add the new grid name to the ``valid_param_vals.yaml`` script and add the corresponding grid-specific parameters in the ``set_predef_grid_params.py`` script. .. _PredefinedGrids: @@ -80,24 +80,24 @@ The first two steps depend on the platform being used and are described here for Set Experiment Parameters ---------------------------- -Each experiment requires certain basic information to run (e.g., date, grid, physics suite). This information is specified in ``config_defaults.sh`` and in the user-specified ``config.sh`` file. When generating a new experiment, the SRW App first reads and assigns default values from the ``config_defaults.sh`` file. Then, it reads and (re)assigns variables from the user's custom ``config.sh`` file. +Each experiment requires certain basic information to run (e.g., date, grid, physics suite). This information is specified in ``config_defaults.yaml`` and in the user-specified ``config.yaml`` file. When generating a new experiment, the SRW App first reads and assigns default values from the ``config_defaults.yaml`` file. Then, it reads and (re)assigns variables from the user's custom ``config.yaml`` file. -For background info on ``config_defaults.sh``, read :numref:`Section %s `, or jump to :numref:`Section %s ` to continue configuring the experiment. +For background info on ``config_defaults.yaml``, read :numref:`Section %s `, or jump to :numref:`Section %s ` to continue configuring the experiment. .. _DefaultConfigSection: -Default configuration: ``config_defaults.sh`` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Default configuration: ``config_defaults.yaml`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. note:: - This section provides background information on how the SRW App uses the ``config_defaults.sh`` file. It is informative, but users do not need to modify ``config_defaults.sh`` to run the out-of-the-box case for the SRW App. Therefore, users may skip to :numref:`Step %s ` to continue configuring their experiment. + This section provides background information on how the SRW App uses the ``config_defaults.yaml`` file. It is informative, but users do not need to modify ``config_defaults.yaml`` to run the out-of-the-box case for the SRW App. Therefore, users may skip to :numref:`Step %s ` to continue configuring their experiment. -Configuration variables in the ``config_defaults.sh`` file appear in :numref:`Table %s `. Some of these default values are intentionally invalid in order to ensure that the user assigns valid values in the user-specified ``config.sh`` file. Any settings provided in ``config.sh`` will override the ``config_defaults.sh`` +Configuration variables in the ``config_defaults.yaml`` file appear in :numref:`Table %s `. Some of these default values are intentionally invalid in order to ensure that the user assigns valid values in the user-specified ``config.yaml`` file. Any settings provided in ``config.yaml`` will override the ``config_defaults.yaml`` settings. There is usually no need for a user to modify the default configuration file. Additional information on the default settings can be found in the file itself and in :numref:`Chapter %s `. .. _ConfigVarsDefault: -.. table:: Configuration variables specified in the config_defaults.sh script. +.. table:: Configuration variables specified in the config_defaults.yaml script +----------------------+--------------------------------------------------------------+ | **Group Name** | **Configuration variables** | @@ -278,17 +278,17 @@ settings. There is usually no need for a user to modify the default configuratio .. _UserSpecificConfig: -User-specific configuration: ``config.sh`` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +User-specific configuration: ``config.yaml`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -The user must specify certain basic information about the experiment in a ``config.sh`` file located in the ``ufs-srweather-app/regional_workflow/ush`` directory. Two example templates are provided in that directory: ``config.community.sh`` and ``config.nco.sh``. The first file is a minimal example for creating and running an experiment in the *community* mode (with ``RUN_ENVIR`` set to ``community``). The second is an example for creating and running an experiment in the *NCO* (operational) mode (with ``RUN_ENVIR`` set to ``nco``). The *community* mode is recommended in most cases and is fully supported for this release. The operational/NCO mode is typically used by those at the NOAA/NCEP/Environmental Modeling Center (EMC) and the NOAA/Global Systems Laboratory (GSL) working on pre-implementation testing for the Rapid Refresh Forecast System (RRFS). :numref:`Table %s ` shows the configuration variables that appear in the ``config.community.sh``, along with their default values in ``config_default.sh`` and the values defined in ``config.community.sh``. +The user must specify certain basic information about the experiment in a ``config.yaml`` file located in the ``ufs-srweather-app/regional_workflow/ush`` directory. Two example templates are provided in that directory: ``config.community.yaml`` and ``config.nco.yaml``. The first file is a minimal example for creating and running an experiment in the *community* mode (with ``RUN_ENVIR`` set to ``community``). The second is an example for creating and running an experiment in the *NCO* (operational) mode (with ``RUN_ENVIR`` set to ``nco``). The *community* mode is recommended in most cases and is fully supported for this release. The operational/NCO mode is typically used by those at the NOAA/NCEP/Environmental Modeling Center (EMC) and the NOAA/Global Systems Laboratory (GSL) working on pre-implementation testing for the Rapid Refresh Forecast System (RRFS). :numref:`Table %s ` shows the configuration variables that appear in the ``config.community.yaml``, along with their default values in ``config_default.yaml`` and the values defined in ``config.community.yaml``. .. _ConfigCommunity: -.. table:: Configuration variables specified in the config.community.sh script +.. table:: Configuration variables specified in the config.community.yaml script +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | **Parameter** | **Default Value** | **config.community.sh Value** | + | **Parameter** | **Default Value** | **config.community.yaml Value** | +================================+===================+==================================================================================+ | MACHINE | "BIG_COMPUTER" | "hera" | +--------------------------------+-------------------+----------------------------------------------------------------------------------+ @@ -378,16 +378,16 @@ The user must specify certain basic information about the experiment in a ``conf +--------------------------------+-------------------+----------------------------------------------------------------------------------+ -To get started, make a copy of ``config.community.sh``. From the ``ufs-srweather-app`` directory, run: +To get started, make a copy of ``config.community.yaml``. From the ``ufs-srweather-app`` directory, run: .. code-block:: console cd $SRW/regional_workflow/ush - cp config.community.sh config.sh + cp config.community.yaml config.yaml The default settings in this file include a predefined 25-km :term:`CONUS` grid (RRFS_CONUS_25km), the :term:`GFS` v16 physics suite (FV3_GFS_v16 :term:`CCPP`), and :term:`FV3`-based GFS raw external model data for initialization. -Next, edit the new ``config.sh`` file to customize it for your machine. At a minimum, change the ``MACHINE`` and ``ACCOUNT`` variables; then choose a name for the experiment directory by setting ``EXPT_SUBDIR``. If you have pre-staged initialization data for the experiment, set ``USE_USER_STAGED_EXTRN_FILES="TRUE"``, and set the paths to the data for ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` and ``EXTRN_MDL_SOURCE_BASEDIR_LBCS``. If the modulefile used to set up the build environment in :numref:`Section %s ` uses a GNU compiler, check that the line ``COMPILER="gnu"`` appears in the ``config.sh`` file. On platforms where Rocoto and :term:`cron` are available, users can automate resubmission of their experiment workflow by adding the following lines to the ``config.sh`` file: +Next, edit the new ``config.yaml`` file to customize it for your machine. At a minimum, change the ``MACHINE`` and ``ACCOUNT`` variables; then choose a name for the experiment directory by setting ``EXPT_SUBDIR``. If you have pre-staged initialization data for the experiment, set ``USE_USER_STAGED_EXTRN_FILES="TRUE"``, and set the paths to the data for ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` and ``EXTRN_MDL_SOURCE_BASEDIR_LBCS``. If the modulefile used to set up the build environment in :numref:`Section %s ` uses a GNU compiler, check that the line ``COMPILER="gnu"`` appears in the ``config.yaml`` file. On platforms where Rocoto and :term:`cron` are available, users can automate resubmission of their experiment workflow by adding the following lines to the ``config.yaml`` file: .. code-block:: console @@ -398,7 +398,7 @@ Next, edit the new ``config.sh`` file to customize it for your machine. At a min Generic Linux and MacOS users should refer to :numref:`Section %s ` for additional details on configuring an experiment and python environment. -Sample ``config.sh`` settings are indicated below for Level 1 platforms. Detailed guidance applicable to all systems can be found in :numref:`Chapter %s: Configuring the Workflow `, which discusses each variable and the options available. Additionally, information about the four predefined Limited Area Model (LAM) Grid options can be found in :numref:`Chapter %s: Limited Area Model (LAM) Grids `. +Sample ``config.yaml`` settings are indicated below for Level 1 platforms. Detailed guidance applicable to all systems can be found in :numref:`Chapter %s: Configuring the Workflow `, which discusses each variable and the options available. Additionally, information about the four predefined Limited Area Model (LAM) Grid options can be found in :numref:`Chapter %s: Limited Area Model (LAM) Grids `. .. hint:: @@ -455,7 +455,7 @@ On Gaea: "/lustre/f2/pdata/ncep/UFS_SRW_App/develop/input_model_data////" -On **WCOSS** systems, edit ``config.sh`` with these WCOSS-specific parameters, and use a valid WCOSS project code for the account parameter: +On **WCOSS** systems, edit ``config.yaml`` with these WCOSS-specific parameters, and use a valid WCOSS project code for the account parameter: .. code-block:: console @@ -487,7 +487,7 @@ On NOAA Cloud Systems: .. note:: The values of the configuration variables should be consistent with those in the - ``valid_param_vals.sh`` script. In addition, various sample configuration files can be found in the ``regional_workflow/tests/baseline_configs`` directory. + ``valid_param_vals.yaml`` script. In addition, various sample configuration files can be found in the ``regional_workflow/tests/baseline_configs`` directory. To configure an experiment and python environment for a general Linux or Mac system, see the :ref:`next section `. To configure an experiment to run METplus verification tasks, see :numref:`Section %s `. Otherwise, skip to :numref:`Section %s `. @@ -555,14 +555,14 @@ Configuring an Experiment on General Linux and MacOS Systems **Configure the SRW App:** -Configure an experiment using a template. Copy the contents of ``config.community.sh`` into ``config.sh``: +Configure an experiment using a template. Copy the contents of ``config.community.yaml`` into ``config.yaml``: .. code-block:: console cd $SRW/regional_workflow/ush - cp config.community.sh config.sh + cp config.community.yaml config.yaml -In the ``config.sh`` file, set ``MACHINE="macos"`` or ``MACHINE="linux"``, and modify the account and experiment info. For example: +In the ``config.yaml`` file, set ``MACHINE="macos"`` or ``MACHINE="linux"``, and modify the account and experiment info. For example: .. code-block:: console @@ -579,7 +579,7 @@ In the ``config.sh`` file, set ``MACHINE="macos"`` or ``MACHINE="linux"``, and m Due to the limited number of processors on MacOS systems, users must also configure the domain decomposition defaults (usually, there are only 8 CPUs in M1-family chips and 4 CPUs for x86_64). -For :ref:`Option 1 `, add the following information to ``config.sh``: +For :ref:`Option 1 `, add the following information to ``config.yaml``: .. code-block:: console @@ -588,7 +588,7 @@ For :ref:`Option 1 `, add the following information to ``config.sh`` WRTCMP_write_groups="1" WRTCMP_write_tasks_per_group="2" -For :ref:`Option 2 `, add the following information to ``config.sh``: +For :ref:`Option 2 `, add the following information to ``config.yaml``: .. code-block:: console @@ -602,7 +602,7 @@ For :ref:`Option 2 `, add the following information to ``config.sh`` **Configure the Machine File** -Configure a ``macos.sh`` or ``linux.sh`` machine file in ``$SRW/regional_workflow/ush/machine/`` based on the number of CPUs (````) in the system (usually 8 or 4 in MacOS; varies on Linux systems). Job scheduler (``SCHED``) options can be viewed :ref:`here `. Users must also set the path to the fix file directories. +Configure a ``macos.yaml`` or ``linux.yaml`` machine file in ``$SRW/regional_workflow/ush/machine/`` based on the number of CPUs (````) in the system (usually 8 or 4 in MacOS; varies on Linux systems). Job scheduler (``SCHED``) options can be viewed :ref:`here `. Users must also set the path to the fix file directories. .. code-block:: console @@ -635,7 +635,7 @@ Configure a ``macos.sh`` or ``linux.sh`` machine file in ``$SRW/regional_workflo Configure METplus Verification Suite (Optional) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Users who want to use the METplus verification suite to evaluate their forecasts need to add additional information to their ``config.sh`` file. Other users may skip to the :ref:`next section `. +Users who want to use the METplus verification suite to evaluate their forecasts need to add additional information to their ``config.yaml`` file. Other users may skip to the :ref:`next section `. .. attention:: METplus *installation* is not included as part of the build process for this release of the SRW App. However, METplus is preinstalled on many `Level 1 & 2 `__ systems. For the v2.0.0 release, METplus *use* is supported on systems with a functioning METplus installation, although installation itself is not supported. For more information about METplus, see :numref:`Section %s `. @@ -648,14 +648,14 @@ Users who want to use the METplus verification suite to evaluate their forecasts module use -a module load met/ -To use METplus verification, the path to the MET and METplus directories must be added to ``config.sh``: +To use METplus verification, the path to the MET and METplus directories must be added to ``config.yaml``: .. code-block:: console METPLUS_PATH="" MET_INSTALL_DIR="" -Users who have already staged the observation data needed for METplus (i.e., the :term:`CCPA`, :term:`MRMS`, and :term:`NDAS` data) on their system should set the path to this data and set the corresponding ``RUN_TASK_GET_OBS_*`` parameters to "FALSE" in ``config.sh``. +Users who have already staged the observation data needed for METplus (i.e., the :term:`CCPA`, :term:`MRMS`, and :term:`NDAS` data) on their system should set the path to this data and set the corresponding ``RUN_TASK_GET_OBS_*`` parameters to "FALSE" in ``config.yaml``. .. code-block:: console @@ -670,7 +670,7 @@ If users have access to NOAA :term:`HPSS` but have not pre-staged the data, they Users who do not have access to NOAA HPSS and do not have the data on their system will need to download :term:`CCPA`, :term:`MRMS`, and :term:`NDAS` data manually from collections of publicly available data, such as the ones listed `here `__. -Next, the verification tasks must be turned on according to the user's needs. Users should add some or all of the following tasks to ``config.sh``, depending on the verification procedure(s) they have in mind: +Next, the verification tasks must be turned on according to the user's needs. Users should add some or all of the following tasks to ``config.yaml``, depending on the verification procedure(s) they have in mind: .. code-block:: console @@ -739,23 +739,24 @@ Run the following command from the ``ufs-srweather-app/regional_workflow/ush`` d .. code-block:: console - ./generate_FV3LAM_wflow.sh + ./generate_FV3LAM_wflow.py The last line of output from this script, starting with ``*/1 * * * *`` or ``*/3 * * * *``, can be saved and :ref:`used later ` to automatically run portions of the workflow if users have the Rocoto workflow manager installed on their system. -This workflow generation script creates an experiment directory and populates it with all the data needed to run through the workflow. The flowchart in :numref:`Figure %s ` describes the experiment generation process. First, ``generate_FV3LAM_wflow.sh`` runs the ``setup.sh`` script to set the configuration parameters. Second, it copies the time-independent (fix) files and other necessary data input files from their location in the ufs-weather-model directory to the experiment directory (``$EXPTDIR``). Third, it copies the weather model executable (``ufs_model``) from the ``bin`` directory to ``$EXPTDIR`` and creates the input namelist file ``input.nml`` based on the ``input.nml.FV3`` file in the regional_workflow/ush/templates directory. Lastly, it creates the workflow XML file ``FV3LAM_wflow.xml`` that is executed when running the experiment with the Rocoto workflow manager. +This workflow generation script creates an experiment directory and populates it with all the data needed to run through the workflow. The flowchart in :numref:`Figure %s ` describes the experiment generation process. First, ``generate_FV3LAM_wflow.py`` runs the ``setup.py`` script to set the configuration parameters. Second, it copies the time-independent (fix) files and other necessary data input files from their location in the ufs-weather-model directory to the experiment directory (``$EXPTDIR``). Third, it copies the weather model executable (``ufs_model``) from the ``bin`` directory to ``$EXPTDIR`` and creates the input namelist file ``input.nml`` based on the ``input.nml.FV3`` file in the regional_workflow/ush/templates directory. Lastly, it creates the workflow XML file ``FV3LAM_wflow.xml`` that is executed when running the experiment with the Rocoto workflow manager. -The ``setup.sh`` script reads three other configuration scripts in order: (1) ``config_default.sh`` (:numref:`Section %s `), (2) ``config.sh`` (:numref:`Section %s `), and (3) ``set_predef_grid_params.sh``. If a parameter is specified differently in these scripts, the file containing the last defined value will be used. +The ``setup.py`` script reads three other configuration scripts in order: (1) ``config_default.yaml`` (:numref:`Section %s `), (2) ``config.yaml`` (:numref:`Section %s `), and (3) ``set_predef_grid_params.py``. If a parameter is specified differently in these scripts, the file containing the last defined value will be used. -The generated workflow will appear in ``$EXPTDIR``, where ``EXPTDIR=${EXPT_BASEDIR}/${EXPT_SUBDIR}``. These variables were specified in the ``config.sh`` file in :numref:`Step %s `. The settings for these paths can also be viewed in the console output from the ``./generate_FV3LAM_wflow.sh`` script or in the ``log.generate_FV3LAM_wflow`` file, which can be found in ``$EXPTDIR``. +The generated workflow will appear in ``$EXPTDIR``, where ``EXPTDIR=${EXPT_BASEDIR}/${EXPT_SUBDIR}``. These variables were specified in the ``config.yaml`` file in :numref:`Step %s `. The settings for these paths can also be viewed in the console output from the ``./generate_FV3LAM_wflow.py`` script or in the ``log.generate_FV3LAM_wflow`` file, which can be found in ``$EXPTDIR``. .. _WorkflowGeneration: .. figure:: _static/FV3regional_workflow_gen_v2.png - :alt: Flowchart of the workflow generation process. Scripts are called in the following order: source_util_funcs.sh (which calls bash_utils), then set_FV3nml_sfc_climo_filenames.sh, set_FV3nml_stock_params.sh, create_diag_table_files.sh, and setup.sh. setup.sh calls several scripts: set_cycle_dates.sh, set_grid_params_GFDLgrid.sh, set_grid_params_ESGgrid.sh, link_fix.sh, set_ozone_param.sh, set_Thompson_mp_fix_files.sh, config_defaults.sh, config.sh, and valid_param_vals.sh. Then, it sets a number of variables, including FIXgsm, TOPO_DIR, and SFC_CLIMO_INPUT_DIR variables. Next, set_predef_grid_params.sh is called, and the FIXam and FIXLAM directories are set, along with the forecast input files. The setup script also calls set_extrn_mdl_params.sh, sets the GRID_GEN_METHOD with HALO, checks various parameters, and generates shell scripts. Then, the workflow generation script sets up YAML-compliant strings and generates the actual Rocoto workflow XML file from the template file (fill_jinja_template.py). The workflow generation script checks the crontab file and, if applicable, copies certain fix files to the experiment directory. Then, it copies templates of various input files to the experiment directory and sets parameters for the input.nml file. Finally, it generates the workflow. Additional information on each step appears in comments within each script. + :alt: Flowchart of the workflow generation process. Scripts are called in the following order: source_util_funcs.sh (which calls bash_utils), then set_FV3nml_sfc_climo_filenames.sh, set_FV3nml_stock_params.sh, create_diag_table_files.sh, and setup.py. setup.py calls several scripts: set_cycle_dates.sh, set_grid_params_GFDLgrid.sh, set_grid_params_ESGgrid.sh, link_fix.sh, set_ozone_param.sh, set_Thompson_mp_fix_files.sh, config_defaults.sh, config.sh, and valid_param_vals.sh. Then, it sets a number of variables, including FIXgsm, TOPO_DIR, and SFC_CLIMO_INPUT_DIR variables. Next, set_predef_grid_params.sh is called, and the FIXam and FIXLAM directories are set, along with the forecast input files. The setup script also calls set_extrn_mdl_params.sh, sets the GRID_GEN_METHOD with HALO, checks various parameters, and generates shell scripts. Then, the workflow generation script sets up YAML-compliant strings and generates the actual Rocoto workflow XML file from the template file (fill_jinja_template.py). The workflow generation script checks the crontab file and, if applicable, copies certain fix files to the experiment directory. Then, it copies templates of various input files to the experiment directory and sets parameters for the input.nml file. Finally, it generates the workflow. Additional information on each step appears in comments within each script. *Experiment generation description* +.. COMMENT: Get updates image/slides from Chan-Hoo! .. _WorkflowTaskDescription: @@ -765,7 +766,7 @@ Description of Workflow Tasks .. note:: This section gives a general overview of workflow tasks. To begin running the workflow, skip to :numref:`Step %s ` -:numref:`Figure %s ` illustrates the overall workflow. Individual tasks that make up the workflow are specified in the ``FV3LAM_wflow.xml`` file. :numref:`Table %s ` describes the function of each baseline task. The first three pre-processing tasks; ``MAKE_GRID``, ``MAKE_OROG``, and ``MAKE_SFC_CLIMO`` are optional. If the user stages pre-generated grid, orography, and surface climatology fix files, these three tasks can be skipped by adding the following lines to the ``config.sh`` file before running the ``generate_FV3LAM_wflow.sh`` script: +:numref:`Figure %s ` illustrates the overall workflow. Individual tasks that make up the workflow are specified in the ``FV3LAM_wflow.xml`` file. :numref:`Table %s ` describes the function of each baseline task. The first three pre-processing tasks; ``MAKE_GRID``, ``MAKE_OROG``, and ``MAKE_SFC_CLIMO`` are optional. If the user stages pre-generated grid, orography, and surface climatology fix files, these three tasks can be skipped by adding the following lines to the ``config.yaml`` file before running the ``generate_FV3LAM_wflow.py`` script: .. code-block:: console @@ -958,14 +959,14 @@ If the login shell is csh/tcsh, it can be set using: Automated Option ^^^^^^^^^^^^^^^^^^^ -The simplest way to run the Rocoto workflow is to automate the process using a job scheduler such as :term:`Cron`. For automatic resubmission of the workflow at regular intervals (e.g., every minute), the user can add the following commands to their ``config.sh`` file *before* generating the experiment: +The simplest way to run the Rocoto workflow is to automate the process using a job scheduler such as :term:`Cron`. For automatic resubmission of the workflow at regular intervals (e.g., every minute), the user can add the following commands to their ``config.yaml`` file *before* generating the experiment: .. code-block:: console USE_CRON_TO_RELAUNCH="TRUE" CRON_RELAUNCH_INTVL_MNTS="02" -This will automatically add an appropriate entry to the user's :term:`cron table` and launch the workflow. Alternatively, the user can add a crontab entry using the ``crontab -e`` command. As mentioned in :numref:`Section %s `, the last line of output from ``./generate_FV3LAM_wflow.sh`` (starting with ``*/1 * * * *`` or ``*/3 * * * *``), can be pasted into the crontab file. It can also be found in the ``$EXPTDIR/log.generate_FV3LAM_wflow`` file. The crontab entry should resemble the following: +This will automatically add an appropriate entry to the user's :term:`cron table` and launch the workflow. Alternatively, the user can add a crontab entry using the ``crontab -e`` command. As mentioned in :numref:`Section %s `, the last line of output from ``./generate_FV3LAM_wflow.py`` (starting with ``*/1 * * * *`` or ``*/3 * * * *``), can be pasted into the crontab file. It can also be found in the ``$EXPTDIR/log.generate_FV3LAM_wflow`` file. The crontab entry should resemble the following: .. code-block:: console From b5e81bba4dda41370d35f91095e8c5840cd295ca Mon Sep 17 00:00:00 2001 From: gspetro Date: Tue, 18 Oct 2022 10:56:22 -0400 Subject: [PATCH 24/58] add L1 data locations --- docs/UsersGuide/source/RunSRW.rst | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index 1fd0e6e7ce..606c221bfd 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -37,7 +37,29 @@ The overall procedure for generating an experiment is shown in :numref:`Figure % Download and Stage the Data ============================ -The SRW App requires input files to run. These include static datasets, initial and boundary conditions files, and model configuration files. On Level 1 systems, the data required to run SRW App tests are already available. For Level 2-4 systems, the data must be added. Detailed instructions on how to add the data can be found in :numref:`Section %s `. Sections :numref:`%s ` and :numref:`%s ` contain useful background information on the input and output files used in the SRW App. +The SRW App requires input files to run. These include static datasets, initial and boundary conditions files, and model configuration files. On Level 1 systems, the data required to run SRW App tests are already available in the following locations: + +.. table:: Data locations for Level 1 systems + + +--------------+--------------------------------------------------------------+ + | Machine | File location | + +==============+==============================================================+ + | Cheyenne | /glade/p/ral/jntp/UFS_SRW_App/develop/input_model_data/ | + +--------------+--------------------------------------------------------------+ + | Gaea | /lustre/f2/pdata/ncep/UFS_SRW_App/develop/input_model_data/ | + +--------------+--------------------------------------------------------------+ + | Hera | /scratch2/BMC/det/UFS_SRW_App/develop/input_model_data/ | + +--------------+--------------------------------------------------------------+ + | Jet | /mnt/lfs4/BMC/wrfruc/UFS_SRW_App/develop/input_model_data/ | + +--------------+--------------------------------------------------------------+ + | NOAA Cloud | /contrib/EPIC/UFS_SRW_App/develop/input_model_data/ | + +--------------+--------------------------------------------------------------+ + | Orion | /work/noaa/fv3-cam/UFS_SRW_App/develop/input_model_data/ | + +--------------+--------------------------------------------------------------+ + | WCOSS2 | /lfs/h2/emc/lam/noscrub/UFS_SRW_App/ | + +--------------+--------------------------------------------------------------+ + +For Level 2-4 systems, the data must be added. Detailed instructions on how to add the data can be found in :numref:`Section %s `. Sections :numref:`%s ` and :numref:`%s ` contain useful background information on the input and output files used in the SRW App. .. _GridSpecificConfig: From c42c599590f32f3281c87ef085b737d9a3b4cac8 Mon Sep 17 00:00:00 2001 From: gspetro Date: Tue, 18 Oct 2022 19:01:18 -0400 Subject: [PATCH 25/58] address comments in ConfigWorkflow --- docs/UsersGuide/source/ConfigWorkflow.rst | 180 +++++++---------- ush/config_defaults.yaml | 236 ++++++++++++---------- 2 files changed, 207 insertions(+), 209 deletions(-) diff --git a/docs/UsersGuide/source/ConfigWorkflow.rst b/docs/UsersGuide/source/ConfigWorkflow.rst index 9620c5105f..0a959bfe73 100644 --- a/docs/UsersGuide/source/ConfigWorkflow.rst +++ b/docs/UsersGuide/source/ConfigWorkflow.rst @@ -77,40 +77,43 @@ If non-default parameters are selected for the variables in this section, they s ``SLURM_NATIVE_CMD``: (Default: "") Allows an extra parameter to be passed to slurm via XML Native command. +``DOMAIN_PREGEN_BASEDIR``: (Default: "") + The base directory containing pregenerated grid, orography, and surface climatology files. This is an alternative for setting ``GRID_DIR``, ``OROG_DIR``, and ``SFC_CLIMO_DIR`` individually. For the pregenerated grid specified by ``PREDEF_GRID_NAME``, these "fixed" files are located in: + + .. code-block:: console + + ${DOMAIN_PREGEN_BASEDIR}/${PREDEF_GRID_NAME} + + The workflow scripts will create a symlink in the experiment directory that will point to a subdirectory (having the same name as the experiment grid) under this directory. This variable should be set to a null string in ``config_defaults.yaml``, but it can be changed in the user-specified workflow configuration file set by ``EXPT_CONFIG_FN`` (usually ``config.yaml``). + +.. Scripts and commands needed by workflow and tasks +``ENV_INIT_SCRIPTS_FPS``: (Default: []) +``PRE_TASK_CMDS``: (Default: "") + +.. COMMENT: Define! + Machine-Dependent Parameters ------------------------------- These parameters vary depending on machine. On `Level 1 and 2 `__ systems, the appropriate values for each machine can be viewed in the ``ush/machine/.sh`` scripts. To specify a value other than the default, add these variables and the desired value in the ``config.yaml`` file so that they override the ``config_defaults.yaml`` and machine default values. ``PARTITION_DEFAULT``: (Default: "") - This variable is only used with the Slurm job scheduler (i.e., when ``SCHED: "slurm"``). This is the default partition to which Slurm submits workflow tasks. When a variable that designates the partition (e.g., ``PARTITION_HPSS``, ``PARTITION_FCST``; see below) is **not** specified, the task will be submitted to the default partition indicated in the ``PARTITION_DEFAULT`` variable. If this value is not set or is set to an empty string, it will be (re)set to a machine-dependent value. Valid values: ``""`` | ``"hera"`` | ``"normal"`` | ``"orion"`` | ``"sjet"`` | ``"vjet"`` | ``"kjet"`` | ``"xjet"`` | ``"workq"`` - - .. COMMENT: Don't see these valid values in valid_param_vals anymore. + This variable is only used with the Slurm job scheduler (i.e., when ``SCHED: "slurm"``). This is the default partition to which Slurm submits workflow tasks. When a variable that designates the partition (e.g., ``PARTITION_HPSS``, ``PARTITION_FCST``; see below) is **not** specified, the task will be submitted to the default partition indicated in the ``PARTITION_DEFAULT`` variable. If this value is not set or is set to an empty string, it will be (re)set to a machine-dependent value. Options are machine-dependent and include: ``""`` | ``"hera"`` | ``"normal"`` | ``"orion"`` | ``"sjet"`` | ``"vjet"`` | ``"kjet"`` | ``"xjet"`` | ``"workq"`` ``QUEUE_DEFAULT``: (Default: "") - The default queue or QOS to which workflow tasks are submitted (QOS is Slurm's term for queue; it stands for "Quality of Service"). If the task's ``QUEUE_HPSS`` or ``QUEUE_FCST`` parameters (see below) are not specified, the task will be submitted to the queue indicated by this variable. If this value is not set or is set to an empty string, it will be (re)set to a machine-dependent value. Valid values: ``""`` | ``"batch"`` | ``"dev"`` | ``"normal"`` | ``"regular"`` | ``"workq"`` - - .. COMMENT: Don't see these valid values in valid_param_vals anymore. + The default queue or QOS to which workflow tasks are submitted (QOS is Slurm's term for queue; it stands for "Quality of Service"). If the task's ``QUEUE_HPSS`` or ``QUEUE_FCST`` parameters (see below) are not specified, the task will be submitted to the queue indicated by this variable. If this value is not set or is set to an empty string, it will be (re)set to a machine-dependent value. Options are machine-dependent and include: ``""`` | ``"batch"`` | ``"dev"`` | ``"normal"`` | ``"regular"`` | ``"workq"`` ``PARTITION_HPSS``: (Default: "") - This variable is only used with the Slurm job scheduler (i.e., when ``SCHED: "slurm"``). Tasks that get or create links to external model files are submitted to the partition specified in this variable. These links are needed to generate initial conditions (:term:`ICs`) and lateral boundary conditions (:term:`LBCs`) for the experiment. If this variable is not set or is set to an empty string, it will be (re)set to the ``PARTITION_DEFAULT`` value (if set) or to a machine-dependent value. Valid values: ``""`` | ``"normal"`` | ``"service"`` | ``"workq"`` - - .. COMMENT: Don't see these valid values in valid_param_vals anymore. + This variable is only used with the Slurm job scheduler (i.e., when ``SCHED: "slurm"``). Tasks that get or create links to external model files are submitted to the partition specified in this variable. These links are needed to generate initial conditions (:term:`ICs`) and lateral boundary conditions (:term:`LBCs`) for the experiment. If this variable is not set or is set to an empty string, it will be (re)set to the ``PARTITION_DEFAULT`` value (if set) or to a machine-dependent value. Options are machine-dependent and include: ``""`` | ``"normal"`` | ``"service"`` | ``"workq"`` ``QUEUE_HPSS``: (Default: "") - Tasks that get or create links to external model files are submitted to this queue, or QOS (QOS is Slurm's term for queue; it stands for "Quality of Service"). These links are needed to generate initial conditions (:term:`ICs`) and lateral boundary conditions (:term:`LBCs`) for the experiment. If this value is not set or is set to an empty string, it will be (re)set to a machine-dependent value. Valid values: ``""`` | ``"batch"`` | ``"dev_transfer"`` | ``"normal"`` | ``"regular"`` | ``"workq"`` - - .. COMMENT: Don't see these valid values in valid_param_vals anymore. + Tasks that get or create links to external model files are submitted to this queue, or QOS (QOS is Slurm's term for queue; it stands for "Quality of Service"). These links are needed to generate initial conditions (:term:`ICs`) and lateral boundary conditions (:term:`LBCs`) for the experiment. If this value is not set or is set to an empty string, it will be (re)set to a machine-dependent value. Options are machine-dependent and include: ``""`` | ``"batch"`` | ``"dev_transfer"`` | ``"normal"`` | ``"regular"`` | ``"workq"`` ``PARTITION_FCST``: (Default: "") - This variable is only used with the Slurm job scheduler (i.e., when ``SCHED: "slurm"``). The task that runs forecasts is submitted to this partition. If this variable is not set or is set to an empty string, it will be (re)set to a machine-dependent value. Valid values: ``""`` | ``"hera"`` | ``"normal"`` | ``"orion"`` | ``"sjet"`` | ``"vjet"`` | ``"kjet"`` | ``"xjet"`` | ``"workq"`` - -.. COMMENT: Don't see these valid values in valid_param_vals anymore. + This variable is only used with the Slurm job scheduler (i.e., when ``SCHED: "slurm"``). The task that runs forecasts is submitted to this partition. If this variable is not set or is set to an empty string, it will be (re)set to a machine-dependent value. Options are machine-dependent and include: ``""`` | ``"hera"`` | ``"normal"`` | ``"orion"`` | ``"sjet"`` | ``"vjet"`` | ``"kjet"`` | ``"xjet"`` | ``"workq"`` ``QUEUE_FCST``: (Default: "") - The task that runs a forecast is submitted to this queue, or QOS (QOS is Slurm's term for queue; it stands for "Quality of Service"). If this variable is not set or set to an empty string, it will be (re)set to a machine-dependent value. Valid values: ``""`` | ``"batch"`` | ``"dev"`` | ``"normal"`` | ``"regular"`` | ``"workq"`` - -.. COMMENT: Don't see these valid values in valid_param_vals anymore. + The task that runs a forecast is submitted to this queue, or QOS (QOS is Slurm's term for queue; it stands for "Quality of Service"). If this variable is not set or set to an empty string, it will be (re)set to a machine-dependent value. Options are machine-dependent and include: ``""`` | ``"batch"`` | ``"dev"`` | ``"normal"`` | ``"regular"`` | ``"workq"`` Parameters for Running Without a Workflow Manager ----------------------------------------------------- @@ -141,9 +144,7 @@ METplus Parameters Path to top-level directory of METplus installation. ``MET_BIN_EXEC``: (Default: "") - Location where METplus executables are installed. - - .. COMMENT: Add MET_BIN_EXEC to config_defaults descriptions (variable is there but no description) + Name of subdirectory where METplus executables are installed. .. _METParamNote: @@ -177,16 +178,13 @@ METplus Parameters METplus configuration files require the use of predetermined file names. Therefore, if the NDAS files are user-provided, they need to follow the anticipated naming structure: ``prepbufr.ndas.{YYYYMMDDHH}``, where YYYYMMDDHH is as described in the note :ref:`above `. The script to pull the NDAS data from the NOAA HPSS (``scripts/exregional_get_obs_ndas.sh``) has an example of how to rename the NDAS data into a more intuitive format with the valid time listed in the file name. -General Directory Parameters -------------------------------- -``DOMAIN_PREGEN_BASEDIR``: (Default: "") - The base directory containing pregenerated grid, orography, and surface climatology files. This is an alternative for setting ``GRID_DIR``, ``OROG_DIR``, and ``SFC_CLIMO_DIR`` individually. For the pregenerated grid specified by ``PREDEF_GRID_NAME``, these "fixed" files are located in: - - .. code-block:: console - - ${DOMAIN_PREGEN_BASEDIR}/${PREDEF_GRID_NAME} +Test Directories +---------------------- - The workflow scripts will create a symlink in the experiment directory that will point to a subdirectory (having the same name as the experiment grid) under this directory. This variable should be set to a null string in ``config_defaults.yaml``, but it can be changed in the user-specified workflow configuration file set by ``EXPT_CONFIG_FN`` (usually ``config.yaml``). +``TEST_EXTRN_MDL_SOURCE_BASEDIR``: (Default: "") +``TEST_PREGEN_BASEDIR``: (Default: "") +``TEST_ALT_EXTRN_MDL_SYSBASEDIR_ICS``: (Default: "") +``TEST_ALT_EXTRN_MDL_SYSBASEDIR_LBCS``: (Default: "") .. _workflow: @@ -196,9 +194,7 @@ WORKFLOW Configuration Parameters If non-default parameters are selected for the variables in this section, they should be added to the ``workflow:`` section of the ``config.yaml`` file. ``WORKFLOW_ID``: (Default: "") - Unique ID for workflow run that will be set in ``setup.py``. - -.. COMMENT: But what does the workflow_id DO?!?! + Unique ID for workflow run that will be set in ``setup.py``. Users should not set this variable in their configuration file; it will be overridden in ``setup.py``. .. _Cron: @@ -263,9 +259,9 @@ Set File Name Parameters Name of the Fortran file containing the forecast model's base ensemble namelist (i.e., the original namelist file from which each of the ensemble members' namelist files is generated). ``FV3_EXEC_FN``: (Default: "ufs_model") - Name of the forecast model executable that is copied from the executables directory (``EXEC_SUBDIR``, where it was created during the build process) to the experiment directory; set during experiment generation. - -.. COMMENT: Check this definition... + Name of the forecast model executable that is copied from the executables directory (``EXEC_SUBDIR``, where it was created during the build process) to the experiment directory; set during experiment generation. + +.. COMMENT: Check this definition... : Name to use for the forecast model executable. ``DIAG_TABLE_TMPL_FN``: (Default: "") Name of a template file that specifies the output fields of the forecast model. The selected physics suite is appended to this file name in ``setup.py``, taking the form ``{DIAG_TABLE_TMPL_FN}.{CCPP_PHYS_SUITE}``. Generally, the SRW App expects to read in the default value set in ``setup.py`` (i.e., ``diag_table.{CCPP_PHYS_SUITE}``), and users should **not** specify a value for ``DIAG_TABLE_TMPL_FN`` in their configuration file (i.e., ``config.yaml``) unless (1) the file name required by the model changes, and (2) they also change the names of the ``diag_table`` options in the ``ufs-srweather-app/parm`` directory. @@ -388,10 +384,7 @@ Compiler ----------- ``COMPILER``: (Default: "intel") - Type of compiler invoked during the build step. Currently, this must be set manually (i.e., it is not inherited from the build system in the ``ufs-srweather-app`` directory). Valid values: ``"intel"`` | ``"gnu"`` - - .. COMMENT: This bit isn't in config_defaults: "Currently, this must be set manually (i.e., it is not inherited from the build system in the ``ufs-srweather-app`` directory)." - Should it be removed? Is it still true? + Type of compiler invoked during the build step. Currently, this must be set manually; it is not inherited from the build system in the ``ufs-srweather-app`` directory. Valid values: ``"intel"`` | ``"gnu"`` Verification Parameters --------------------------- @@ -479,23 +472,16 @@ Baseline Workflow Tasks Verification Tasks -------------------- -.. COMMENT: ``RUN_TASK_GET_OBS_CCPA``: (Default: false) Flag that determines whether to run the ``GET_OBS_CCPA_TN`` task, which retrieves the :term:`CCPA` hourly precipitation files used by METplus from NOAA :term:`HPSS`. See :numref:`Section %s ` for additional parameters related to this task. - .. COMMENT: No description of task in config_defaults. Just lists var and default value - ``RUN_TASK_GET_OBS_MRMS``: (Default: false) Flag that determines whether to run the ``GET_OBS_MRMS_TN`` task, which retrieves the :term:`MRMS` composite reflectivity files used by METplus from NOAA HPSS. See :numref:`Section %s ` for additional parameters related to this task. - .. COMMENT: No description of task in config_defaults. Just lists var and default value - ``RUN_TASK_GET_OBS_NDAS``: (Default: false) Flag that determines whether to run the ``GET_OBS_NDAS_TN`` task, which retrieves the :term:`NDAS` PrepBufr files used by METplus from NOAA HPSS. See :numref:`Section %s ` for additional parameters related to this task. - .. COMMENT: No description of task in config_defaults. Just lists var and default value - ``RUN_TASK_VX_GRIDSTAT``: (Default: false) Flag that determines whether to run the grid-stat verification task. The :ref:`MET Grid-Stat tool ` provides verification statistics for a matched forecast and observation grid. See :numref:`Section %s ` for additional parameters related to this task. Valid values: ``True`` | ``False`` @@ -543,6 +529,41 @@ For each workflow task, certain parameter values must be passed to the job sched ``GRID_DIR``: (Default: "") The directory containing pre-generated grid files when ``RUN_TASK_MAKE_GRID`` is set to false. +.. _ESGgrid: + +ESGgrid Settings +------------------- + +The following parameters must be set if using the "ESGgrid" method to generate a regional grid (i.e., when ``GRID_GEN_METHOD: "ESGgrid"``, see :numref:`Section %s `). If a different ``GRID_GEN_METHOD`` is used, these parameters will be ignored. When using a predefined grid with ``GRID_GEN_METHOD: "ESGgrid"``, the values in this section will be set automatically to the assigned values for that grid. + +``ESGgrid_LON_CTR``: (Default: "") + The longitude of the center of the grid (in degrees). + +``ESGgrid_LAT_CTR``: (Default: "") + The latitude of the center of the grid (in degrees). + +``ESGgrid_DELX``: (Default: "") + The cell size in the zonal direction of the regional grid (in meters). + +``ESGgrid_DELY``: (Default: "") + The cell size in the meridional direction of the regional grid (in meters). + +``ESGgrid_NX``: (Default: "") + The number of cells in the zonal direction on the regional grid. + +``ESGgrid_NY``: (Default: "") + The number of cells in the meridional direction on the regional grid. + +``ESGgrid_PAZI``: (Default: "") + The rotational parameter for the "ESGgrid" (in degrees). + +``ESGgrid_WIDE_HALO_WIDTH``: (Default: "") + The width (in number of grid cells) of the :term:`halo` to add around the regional grid before shaving the halo down to the width(s) expected by the forecast model. The user need not specify this variable since it is set automatically in ``set_gridparams_ESGgrid.py`` + +.. _WideHalo: + +.. note:: + A :term:`halo` is the strip of cells surrounding the regional grid; the halo is used to feed in the lateral boundary conditions to the grid. The forecast model requires **grid** files containing 3-cell- and 4-cell-wide halos and **orography** files with 0-cell- and 3-cell-wide halos. In order to generate grid and orography files with appropriately-sized halos, the grid and orography tasks create preliminary files with halos around the regional domain of width ``ESGgrid_WIDE_HALO_WIDTH`` cells. The files are then read in and "shaved" down to obtain grid files with 3-cell-wide and 4-cell-wide halos and orography files with 0-cell-wide and 3-cell-wide halos. The original halo that gets shaved down is referred to as the "wide" halo because it is wider than the 0-cell-wide, 3-cell-wide, and 4-cell-wide halos that users eventually end up with. Note that the grid and orography files with the wide halo are only needed as intermediates in generating the files with 0-cell-, 3-cell-, and 4-cell-wide halos; they are not needed by the forecast model. GFDLgrid Settings --------------------- @@ -603,42 +624,6 @@ Note that the regional grid is defined with respect to a "parent" global cubed-s ``GFDLgrid_USE_NUM_CELLS_IN_FILENAMES``: (Default: "") Flag that determines the file naming convention to use for grid, orography, and surface climatology files (or, if using pregenerated files, the naming convention that was used to name these files). These files usually start with the string ``"C${RES}_"``, where ``RES`` is an integer. In the global forecast model, ``RES`` is the number of points in each of the two horizontal directions (x and y) on each tile of the global grid (defined here as ``GFDLgrid_NUM_CELLS``). If this flag is set to true, ``RES`` will be set to ``GFDLgrid_NUM_CELLS`` just as in the global forecast model. If it is set to false, we calculate (in the grid generation task) an "equivalent global uniform cubed-sphere resolution" --- call it ``RES_EQUIV`` --- and then set ``RES`` equal to it. ``RES_EQUIV`` is the number of grid points in each of the x and y directions on each tile that a global UNIFORM (i.e., stretch factor of 1) cubed-sphere grid would need to have in order to have the same average grid size as the regional grid. This is a more useful indicator of the grid size because it takes into account the effects of ``GFDLgrid_NUM_CELLS``, ``GFDLgrid_STRETCH_FAC``, and ``GFDLgrid_REFINE_RATIO`` in determining the regional grid's typical grid size, whereas simply setting ``RES`` to ``GFDLgrid_NUM_CELLS`` doesn't take into account the effects of ``GFDLgrid_STRETCH_FAC`` and ``GFDLgrid_REFINE_RATIO`` on the regional grid's resolution. Nevertheless, some users still prefer to use ``GFDLgrid_NUM_CELLS`` in the file names, so we allow for that here by setting this flag to true. -.. _ESGgrid: - -ESGgrid Settings -------------------- - -The following parameters must be set if using the "ESGgrid" method to generate a regional grid (i.e., when ``GRID_GEN_METHOD: "ESGgrid"``, see :numref:`Section %s `). If a different ``GRID_GEN_METHOD`` is used, these parameters will be ignored. When using a predefined grid with ``GRID_GEN_METHOD: "ESGgrid"``, the values in this section will be set automatically to the assigned values for that grid. - -``ESGgrid_LON_CTR``: (Default: "") - The longitude of the center of the grid (in degrees). - -``ESGgrid_LAT_CTR``: (Default: "") - The latitude of the center of the grid (in degrees). - -``ESGgrid_DELX``: (Default: "") - The cell size in the zonal direction of the regional grid (in meters). - -``ESGgrid_DELY``: (Default: "") - The cell size in the meridional direction of the regional grid (in meters). - -``ESGgrid_NX``: (Default: "") - The number of cells in the zonal direction on the regional grid. - -``ESGgrid_NY``: (Default: "") - The number of cells in the meridional direction on the regional grid. - -``ESGgrid_PAZI``: (Default: "") - The rotational parameter for the "ESGgrid" (in degrees). - -``ESGgrid_WIDE_HALO_WIDTH``: (Default: "") - The width (in number of grid cells) of the :term:`halo` to add around the regional grid before shaving the halo down to the width(s) expected by the forecast model. The user need not specify this variable since it is set automatically in ``set_gridparams_ESGgrid.py`` - -.. _WideHalo: - -.. note:: - A :term:`halo` is the strip of cells surrounding the regional grid; the halo is used to feed in the lateral boundary conditions to the grid. The forecast model requires **grid** files containing 3-cell- and 4-cell-wide halos and **orography** files with 0-cell- and 3-cell-wide halos. In order to generate grid and orography files with appropriately-sized halos, the grid and orography tasks create preliminary files with halos around the regional domain of width ``ESGgrid_WIDE_HALO_WIDTH`` cells. The files are then read in and "shaved" down to obtain grid files with 3-cell-wide and 4-cell-wide halos and orography files with 0-cell-wide and 3-cell-wide halos. The original halo that gets shaved down is referred to as the "wide" halo because it is wider than the 0-cell-wide, 3-cell-wide, and 4-cell-wide halos that users eventually end up with. Note that the grid and orography files with the wide halo are only needed as intermediates in generating the files with 0-cell-, 3-cell-, and 4-cell-wide halos; they are not needed by the forecast model. - .. _make-orog: MAKE_OROG Configuration Parameters @@ -747,6 +732,9 @@ File and Directory Parameters ``EXTRN_MDL_SYSBASEDIR_ICS``: (Default: '') Base directory on the local machine containing external model files for generating :term:`ICs` on the native grid. The way the full path containing these files is constructed depends on the user-specified external model for ICs (defined in ``EXTRN_MDL_NAME_ICS`` above). + .. note:: + This variable must be defined as a null string in ``config_defaults.yaml`` so that if it is specified by the user in the experiment configuration file (``config.yaml``), it remains set to those values, and if not, it gets set to machine-dependent values. + ``USE_USER_STAGED_EXTRN_FILES``: (Default: false) Flag that determines whether the workflow will look for the external model files needed for generating :term:`ICs` in user-specified directories (rather than fetching them from mass storage like NOAA :term:`HPSS`). Valid values: ``True`` | ``False`` @@ -812,8 +800,6 @@ For each workflow task, certain parameter values must be passed to the job sched ``EXTRN_MDL_NAME_LBCS``: (Default: "FV3GFS") The name of the external model that will provide fields from which lateral boundary condition (LBC) files (except for the 0-th hour LBC file) will be generated for input into the forecast model. Valid values: ``"GSMGFS"`` | ``"FV3GFS"`` | ``"RAP"`` | ``"HRRR"`` | ``"NAM"`` - .. COMMENT: The "except" parenthetical is not in config defaults... - ``LBC_SPEC_INTVL_HRS``: (Default: "6") The interval (in integer hours) at which LBC files will be generated. This is also referred to as the *boundary update interval*. Note that the model selected in ``EXTRN_MDL_NAME_LBCS`` must have data available at a frequency greater than or equal to that implied by ``LBC_SPEC_INTVL_HRS``. For example, if ``LBC_SPEC_INTVL_HRS`` is set to "6", then the model must have data available at least every 6 hours. It is up to the user to ensure that this is the case. @@ -831,9 +817,7 @@ File and Directory Parameters Same as ``EXTRN_MDL_SYSBASEDIR_ICS`` but for :term:`LBCs`. Base directory on the local machine containing external model files for generating LBCs on the native grid. The way the full path containing these files is constructed depends on the user-specified external model for LBCs (defined in ``EXTRN_MDL_NAME_LBCS`` above). .. note:: - This variable must be defined as null strings in ``config_defaults.yaml`` so that if they are specified by the user in the experiment configuration file (``config.yaml``), they remain set to those values, and if not, they get set to machine-dependent values. - - .. COMMENT: In the original config_defaults, the note applied to the ICS version, too. The current config_defaults comments still talk about "these"/"they"... Add the note above with ICS, too? + This variable must be defined as a null string in ``config_defaults.yaml`` so that if it is specified by the user in the experiment configuration file (``config.yaml``), it remains set to those values, and if not, it gets set to machine-dependent values. ``USE_USER_STAGED_EXTRN_FILES``: (Default: false) Analogous to ``USE_USER_STAGED_EXTRN_FILES`` in :term:`ICs` but for :term:`LBCs`. Flag that determines whether the workflow will look for the external model files needed for generating :term:`LBCs` in user-specified directories (rather than fetching them from mass storage like NOAA :term:`HPSS`). Valid values: ``True`` | ``False`` @@ -937,11 +921,6 @@ Non-default parameters for the ``make_lbcs`` task are set in the ``task_make_lbc ``OMP_STACKSIZE_MAKE_LBCS``: (Default: "1024m") Controls the size of the stack for threads created by the OpenMP implementation. -``LBC_SPEC_FCST_HRS``: (Default: []) - -.. COMMENT: What is this variable?!?! No definition anywhere... - - FORECAST Configuration Parameters ===================================== @@ -982,6 +961,7 @@ For each workflow task, certain parameter values must be passed to the job sched ``OMP_NUM_THREADS_RUN_FCST``: (Default: 2) The number of OpenMP threads to use for parallel regions. + ..COMMENT: Note says: # atmos_nthreads in model_configure --> What does this mean? Can it be removed? ``OMP_STACKSIZE_RUN_FCST``: (Default: "1024m") @@ -1034,12 +1014,8 @@ Write-Component (Quilting) Parameters Flag that determines whether to use the write component for writing forecast output files to disk. If set to true, the forecast model will output files named ``dynf$HHH.nc`` and ``phyf$HHH.nc`` (where ``HHH`` is the 3-digit forecast hour) containing dynamics and physics fields, respectively, on the write-component grid. For example, the output files for the 3rd hour of the forecast would be ``dynf$003.nc`` and ``phyf$003.nc``. (The regridding from the native FV3-LAM grid to the write-component grid is done by the forecast model.) If ``QUILTING`` is set to false, then the output file names are ``fv3_history.nc`` and ``fv3_history2d.nc``, and they contain fields on the native grid. Although the UFS Weather Model can run without quilting, the regional grid requires the use of the write component. Therefore, QUILTING should be set to true when running the SRW App. If ``QUILTING`` is set to false, the ``RUN_POST_TN`` (meta)task cannot run because the :term:`UPP` code called by this task cannot process fields on the native grid. In that case, the ``RUN_POST_TN`` (meta)task will be automatically removed from the Rocoto workflow XML. The :ref:`INLINE POST ` option also requires ``QUILTING`` to be set to true in the SRW App. Valid values: ``True`` | ``False`` - .. COMMENT: Most of this detail is not in the config_defaults file... where did I get it? - ``PRINT_ESMF``: (Default: false) - Flag that determines whether to output extra (debugging) information from :term:`ESMF` routines. Note that the write component uses ESMF library routines to interpolate from the native forecast model grid to the user-specified output grid (which is defined in the model configuration file ``MODEL_CONFIG_FN`` in the forecast run directory). Valid values: ``True`` | ``False`` - - .. COMMENT: Used to say ``model_configure`` (as opposed to config.yaml, which is EXPT_CONFIG_FN)? Or is this a third thing...? + Flag that determines whether to output extra (debugging) information from :term:`ESMF` routines. Note that the write component uses ESMF library routines to interpolate from the native forecast model grid to the user-specified output grid (which is defined in the model configuration file ``model_configure`` in the forecast run directory). Valid values: ``True`` | ``False`` ``WRTCMP_write_groups``: (Default: 1) The number of write groups (i.e., groups of :term:`MPI` tasks) to use in the write component. @@ -1195,7 +1171,7 @@ These parameters are associated with the fixed (i.e., static) files. On `Level 1 The location on disk of the static surface climatology input fields, used by ``sfc_climo_gen``. These files are only used if ``RUN_TASK_MAKE_SFC_CLIMO: true``. ``SYMLINK_FIX_FILES``: (Default: true) - .. COMMENT: Add definition! There isn't one in config_defaults. + Flag that indicates whether to symlink or copy fix files to the experiment directory. ``FNGLAC, ..., FNMSKH``: (Default: see below) @@ -1402,6 +1378,7 @@ Non-default parameters for the ``get_obs_ccpa`` task are set in the ``task_get_o Maximum time for the task to complete. ``MAXTRIES_GET_OBS_CCPA``: (Default: 1) + Maximum number of times to attempt the task. .. _get-obs-mrms: @@ -1423,6 +1400,7 @@ Non-default parameters for the ``get_obs_mrms`` task are set in the ``task_get_o Maximum time for the task to complete. ``MAXTRIES_GET_OBS_MRMS``: (Default: 1) + Maximum number of times to attempt the task. .. _get-obs-ndas: @@ -1925,9 +1903,7 @@ Set parameters associated with running ensembles. Flag that determines whether to run a set of ensemble forecasts (for each set of specified cycles). If this is set to true, ``NUM_ENS_MEMBERS`` forecasts are run for each cycle, each with a different set of stochastic seed values. When false, a single forecast is run for each cycle. Valid values: ``True`` | ``False`` ``NUM_ENS_MEMBERS``: (Default: 1) - The number of ensemble members to run if ``DO_ENSEMBLE`` is set to true. This variable also controls the naming of the ensemble member directories. For example, if ``NUM_ENS_MEMBERS`` is set to 8, the member directories will be named *mem1, mem2, ..., mem8*. If it is set to 08 (with a leading zero), the member directories will be named *mem01, mem02, ..., mem08*. However, after reading in the number of characters in this string (in order to determine how many leading zeros, if any, should be placed in the names of the member directories), the workflow generation scripts strip away those leading zeros. Thus, in the variable definitions file (``GLOBAL_VAR_DEFNS_FN``), this variable appears with its leading zeros stripped. This variable is not used unless ``DO_ENSEMBLE`` is set to true. - - .. COMMENT: Is the note about 8 vs 08 still true? It looks like the workflow now uses integers, not strings... + The number of ensemble members to run if ``DO_ENSEMBLE`` is set to true. This variable also controls the naming of the ensemble member directories. For example, if ``NUM_ENS_MEMBERS`` is set to 8, the member directories will be named *mem1, mem2, ..., mem8*. This variable is not used unless ``DO_ENSEMBLE`` is set to true. .. _stochastic-physics: diff --git a/ush/config_defaults.yaml b/ush/config_defaults.yaml index 45542b0920..2035cfaefb 100644 --- a/ush/config_defaults.yaml +++ b/ush/config_defaults.yaml @@ -214,6 +214,9 @@ platform: # METPLUS_PATH: # Location to top-level directory of METplus installation. # + # MET_BIN_EXEC + # Name of subdirectory where METplus executables are installed. + # # CCPA_OBS_DIR: # User-specified location of top-level directory where CCPA hourly # precipitation files used by METplus are located. This parameter needs @@ -665,7 +668,9 @@ workflow: #----------------------------------------------------------------------- # # COMPILER: - # Type of compiler invoked during the build step. + # Type of compiler invoked during the build step. Currently, this must + # be set manually; it is not inherited from the build system in the + # ufs-srweather-app directory. # #------------------------------------------------------------------------ # @@ -765,6 +770,18 @@ workflow_switches: # RUN_TASK_RUN_POST: # Flag that determines whether the RUN_POST_TN task is to be run. # + # RUN_TASK_GET_OBS_CCPA: + # Flag that determines whether to run the GET_OBS_CCPA_TN task, which + # retrieves the CCPA hourly precipitation files used by METplus from NOAA HPSS. + # + # RUN_TASK_GET_OBS_MRMS: + # Flag that determines whether to run the GET_OBS_MRMS_TN task, which + # retrieves the MRMS composite reflectivity files used by METplus from NOAA HPSS. + # + # RUN_TASK_GET_OBS_NDAS: + # Flag that determines whether to run the GET_OBS_NDAS_TN task, which + # retrieves the NDAS PrepBufr files used by METplus from NOAA HPSS. + # # RUN_TASK_VX_GRIDSTAT: # Flag that determines whether the grid-stat verification task is to be # run. @@ -824,6 +841,94 @@ task_make_grid: GRID_DIR: "" # #----------------------------------------------------------------------- + # + # Set parameters specific to the "ESGgrid" method of generating a regional + # grid (i.e. for GRID_GEN_METHOD set to "ESGgrid"). Definitions: + # + # ESGgrid_LON_CTR: + # The longitude of the center of the grid (in degrees). + # + # ESGgrid_LAT_CTR: + # The latitude of the center of the grid (in degrees). + # + # ESGgrid_DELX: + # The cell size in the zonal direction of the regional grid (in meters). + # + # ESGgrid_DELY: + # The cell size in the meridional direction of the regional grid (in + # meters). + # + # ESGgrid_NX: + # The number of cells in the zonal direction on the regional grid. + # + # ESGgrid_NY: + # The number of cells in the meridional direction on the regional grid. + # + # ESGgrid_WIDE_HALO_WIDTH: + # The width (in units of number of grid cells) of the halo to add around + # the regional grid before shaving the halo down to the width(s) expected + # by the forecast model. + # + # ESGgrid_PAZI: + # The rotational parameter for the ESG grid (in degrees). + # + # In order to generate grid files containing halos that are 3-cell and + # 4-cell wide and orography files with halos that are 0-cell and 3-cell + # wide (all of which are required as inputs to the forecast model), the + # grid and orography tasks first create files with halos around the regional + # domain of width ESGgrid_WIDE_HALO_WIDTH cells. These are first stored + # in files. The files are then read in and "shaved" down to obtain grid + # files with 3-cell-wide and 4-cell-wide halos and orography files with + # 0-cell-wide (i.e. no halo) and 3-cell-wide halos. For this reason, we + # refer to the original halo that then gets shaved down as the "wide" + # halo, i.e. because it is wider than the 0-cell-wide, 3-cell-wide, and + # 4-cell-wide halos that we will eventually end up with. Note that the + # grid and orography files with the wide halo are only needed as intermediates + # in generating the files with 0-cell-, 3-cell-, and 4-cell-wide halos; + # they are not needed by the forecast model. + # NOTE: Probably don't need to make ESGgrid_WIDE_HALO_WIDTH a user-specified + # variable. Just set it in the function set_gridparams_ESGgrid.sh. + # + # Note that: + # + # 1) If the experiment is using one of the predefined grids (i.e. if + # PREDEF_GRID_NAME is set to the name of one of the valid predefined + # grids), then: + # + # a) If the value of GRID_GEN_METHOD for that grid is "GFDLgrid", then + # these parameters will not be used and thus do not need to be reset + # to non-empty strings. + # + # b) If the value of GRID_GEN_METHOD for that grid is "ESGgrid", then + # these parameters will get reset to the values for that grid. + # This will happen regardless of whether or not they are assigned + # values in the user-specified experiment configuration file, i.e. + # any values they may be assigned in the experiment configuration + # file will be overwritten. + # + # 2) If the experiment is not using one of the predefined grids (i.e. if + # PREDEF_GRID_NAME is set to a null string), then: + # + # a) If GRID_GEN_METHOD is set to "GFDLgrid" in the user-specified + # experiment configuration file, then these parameters will not be + # used and thus do not need to be reset to non-empty strings. + # + # b) If GRID_GEN_METHOD is set to "ESGgrid" in the user-specified + # experiment configuration file, then these parameters must be set + # in that configuration file. + # + #----------------------------------------------------------------------- + # + ESGgrid_LON_CTR: "" + ESGgrid_LAT_CTR: "" + ESGgrid_DELX: "" + ESGgrid_DELY: "" + ESGgrid_NX: "" + ESGgrid_NY: "" + ESGgrid_WIDE_HALO_WIDTH: "" + ESGgrid_PAZI: "" + +#----------------------------------------------------------------------- # # Set parameters specific to the "GFDLgrid" method of generating a regional # grid (i.e. for GRID_GEN_METHOD set to "GFDLgrid"). The following @@ -1002,94 +1107,7 @@ task_make_grid: GFDLgrid_JEND_OF_RGNL_DOM_ON_T6G: "" GFDLgrid_USE_NUM_CELLS_IN_FILENAMES: "" # - #----------------------------------------------------------------------- - # - # Set parameters specific to the "ESGgrid" method of generating a regional - # grid (i.e. for GRID_GEN_METHOD set to "ESGgrid"). Definitions: - # - # ESGgrid_LON_CTR: - # The longitude of the center of the grid (in degrees). - # - # ESGgrid_LAT_CTR: - # The latitude of the center of the grid (in degrees). - # - # ESGgrid_DELX: - # The cell size in the zonal direction of the regional grid (in meters). - # - # ESGgrid_DELY: - # The cell size in the meridional direction of the regional grid (in - # meters). - # - # ESGgrid_NX: - # The number of cells in the zonal direction on the regional grid. - # - # ESGgrid_NY: - # The number of cells in the meridional direction on the regional grid. - # - # ESGgrid_WIDE_HALO_WIDTH: - # The width (in units of number of grid cells) of the halo to add around - # the regional grid before shaving the halo down to the width(s) expected - # by the forecast model. - # - # ESGgrid_PAZI: - # The rotational parameter for the ESG grid (in degrees). - # - # In order to generate grid files containing halos that are 3-cell and - # 4-cell wide and orography files with halos that are 0-cell and 3-cell - # wide (all of which are required as inputs to the forecast model), the - # grid and orography tasks first create files with halos around the regional - # domain of width ESGgrid_WIDE_HALO_WIDTH cells. These are first stored - # in files. The files are then read in and "shaved" down to obtain grid - # files with 3-cell-wide and 4-cell-wide halos and orography files with - # 0-cell-wide (i.e. no halo) and 3-cell-wide halos. For this reason, we - # refer to the original halo that then gets shaved down as the "wide" - # halo, i.e. because it is wider than the 0-cell-wide, 3-cell-wide, and - # 4-cell-wide halos that we will eventually end up with. Note that the - # grid and orography files with the wide halo are only needed as intermediates - # in generating the files with 0-cell-, 3-cell-, and 4-cell-wide halos; - # they are not needed by the forecast model. - # NOTE: Probably don't need to make ESGgrid_WIDE_HALO_WIDTH a user-specified - # variable. Just set it in the function set_gridparams_ESGgrid.sh. - # - # Note that: - # - # 1) If the experiment is using one of the predefined grids (i.e. if - # PREDEF_GRID_NAME is set to the name of one of the valid predefined - # grids), then: - # - # a) If the value of GRID_GEN_METHOD for that grid is "GFDLgrid", then - # these parameters will not be used and thus do not need to be reset - # to non-empty strings. - # - # b) If the value of GRID_GEN_METHOD for that grid is "ESGgrid", then - # these parameters will get reset to the values for that grid. - # This will happen regardless of whether or not they are assigned - # values in the user-specified experiment configuration file, i.e. - # any values they may be assigned in the experiment configuration - # file will be overwritten. - # - # 2) If the experiment is not using one of the predefined grids (i.e. if - # PREDEF_GRID_NAME is set to a null string), then: - # - # a) If GRID_GEN_METHOD is set to "GFDLgrid" in the user-specified - # experiment configuration file, then these parameters will not be - # used and thus do not need to be reset to non-empty strings. - # - # b) If GRID_GEN_METHOD is set to "ESGgrid" in the user-specified - # experiment configuration file, then these parameters must be set - # in that configuration file. - # - #----------------------------------------------------------------------- - # - ESGgrid_LON_CTR: "" - ESGgrid_LAT_CTR: "" - ESGgrid_DELX: "" - ESGgrid_DELY: "" - ESGgrid_NX: "" - ESGgrid_NY: "" - ESGgrid_WIDE_HALO_WIDTH: "" - ESGgrid_PAZI: "" - + #---------------------------- # MAKE OROG config parameters #----------------------------- @@ -1166,6 +1184,11 @@ task_get_extrn_ics: # these files is constructed depends on the user-specified external model # for ICs, i.e. EXTRN_MDL_NAME_ICS. # + # Note that this must be defined as a null string here so that if it is + # specified by the user in the experiment configuration file, it remains + # set to those values, and if not, it gets set to machine-dependent + # values. + # #----------------------------------------------------------------------- # EXTRN_MDL_SYSBASEDIR_ICS: '' @@ -1248,8 +1271,8 @@ task_get_extrn_lbcs: # # EXTRN_MDL_NAME_LBCS: #`The name of the external model that will provide fields from which - # lateral boundary condition (LBC) files will be generated for input into - # the forecast model. + # lateral boundary condition (LBC) files (except for the 0-th hour LBC + # file) will be generated for input into the forecast model. # # LBC_SPEC_INTVL_HRS: # The interval (in integer hours) with which LBC files will be generated. @@ -1287,9 +1310,9 @@ task_get_extrn_lbcs: # EXTRN_MDL_SYSBASEDIR_LBCS: # Same as EXTRN_MDL_SYSBASEDIR_ICS but for LBCs. # - # Note that these must be defined as null strings here so that if they - # are specified by the user in the experiment configuration file, they - # remain set to those values, and if not, they get set to machine-dependent + # Note that this must be defined as a null string here so that if it is + # specified by the user in the experiment configuration file, it remains + # set to those values, and if not, it gets set to machine-dependent # values. # #----------------------------------------------------------------------- @@ -1504,7 +1527,8 @@ task_run_fcst: # # QUILTING: # Flag that determines whether or not to use the write component for - # writing output files to disk. + # writing output files to disk. The regional grid requires the use of + # the write component, so users should not change the default value. # # WRTCMP_write_groups: # The number of write groups (i.e. groups of MPI tasks) to use in the @@ -1515,11 +1539,11 @@ task_run_fcst: # # PRINT_ESMF: # Flag for whether or not to output extra (debugging) information from - # ESMF routines. Must be true or false. Note that the write + # ESMF routines. Must be true or false. Note that the write # component uses ESMF library routines to interpolate from the native # forecast model grid to the user-specified output grid (which is defined - # in the model configuration file MODEL_CONFIG_FN in the forecast's run - # directory). + # in the model configuration file "model_configure" in the forecast's + # run directory). # #----------------------------------------------------------------------- # @@ -1618,6 +1642,10 @@ task_run_fcst: # # Set parameters associated with the fixed (i.e. static) files. Definitions: # + # SYMLINK_FIX_FILES: + # Flag that indicates whether to symlink or copy fix files to the + # experiment directory. + # # FIXgsm: # System directory in which the majority of fixed (i.e. time-independent) # files that are needed to run the FV3-LAM model are located @@ -2147,15 +2175,9 @@ global: # NUM_ENS_MEMBERS: # The number of ensemble members to run if DO_ENSEMBLE is set to true. # This variable also controls the naming of the ensemble member directories. - # For example, if this is set to "8", the member directories will be named - # mem1, mem2, ..., mem8. If it is set to "08" (note the leading zero), - # the member directories will be named mem01, mem02, ..., mem08. Note, - # however, that after reading in the number of characters in this string - # (in order to determine how many leading zeros, if any, should be placed - # in the names of the member directories), the workflow generation scripts - # strip away those leading zeros. Thus, in the variable definitions file - # (GLOBAL_VAR_DEFNS_FN), this variable appear with its leading zeros - # stripped. This variable is not used if DO_ENSEMBLE is not set to true. + # For example, if this is set to 8, the member directories will be named + # mem1, mem2, ..., mem8. This variable is not used if DO_ENSEMBLE is not + # set to true. # #----------------------------------------------------------------------- # From 6a9e843464ce55f9217fc2e71738c846d70c45b5 Mon Sep 17 00:00:00 2001 From: gspetro Date: Tue, 18 Oct 2022 21:38:42 -0400 Subject: [PATCH 26/58] fix table --- docs/UsersGuide/source/RunSRW.rst | 480 +++++++++++++++++------------- 1 file changed, 271 insertions(+), 209 deletions(-) diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index 606c221bfd..db9583430b 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -4,7 +4,7 @@ Running the SRW App =========================== -This chapter explains how to set up and run the "out-of-the-box" case for the SRW App. However, the steps are relevant to any SRW Application experiment and can be modified to suit user goals. This chapter assumes that users have already built the SRW App by following the steps in :numref:`Chapter %s `. These steps are also applicable to containerized versions of the SRW App and assume that the user has completed Steps :numref:`Section %s ` through :numref:`Section %s `. +This chapter explains how to set up and run the "out-of-the-box" case for the SRW App. However, the steps are relevant to any SRW Application experiment and can be modified to suit user goals. This chapter assumes that users have already built the SRW App by following the steps in :numref:`Chapter %s `. These steps are also applicable to containerized versions of the SRW App and assume that the user has completed Steps :numref:`%s ` through :numref:`%s `. The out-of-the-box SRW App case builds a weather forecast for June 15-16, 2019. Multiple convective weather events during these two days produced over 200 filtered storm reports. Severe weather was clustered in two areas: the Upper Midwest through the Ohio Valley and the Southern Great Plains. This forecast uses a predefined 25-km Continental United States (:term:`CONUS`) domain (RRFS_CONUS_25km), the Global Forecast System (:term:`GFS`) version 16 physics suite (FV3_GFS_v16 :term:`CCPP`), and :term:`FV3`-based GFS raw external model data for initialization. @@ -13,13 +13,13 @@ The out-of-the-box SRW App case builds a weather forecast for June 15-16, 2019. The SRW Application has `four levels of support `__. The steps described in this chapter will work most smoothly on preconfigured (Level 1) systems. This chapter can also serve as a starting point for running the SRW App on other systems (including generic Linux/Mac systems), but the user may need to perform additional troubleshooting. -The overall procedure for generating an experiment is shown in :numref:`Figure %s `, with the scripts to generate and run the workflow shown in red. The steps are as follows: +The overall procedure for generating an experiment is shown in :numref:`Figure %s `, with the scripts to generate and run the workflow shown in red. Once the SRW has been built, as described in :numref:`Chapter %s `, the steps to run a forecast are as follows: #. :ref:`Download and stage data ` #. :ref:`Optional: Configure a new grid ` #. :ref:`Generate a regional workflow experiment ` - * :ref:`Configure the experiment parameters ` + * :ref:`Set the experiment configuration parameters ` * :ref:`Load the python environment for the regional workflow ` #. :ref:`Run the regional workflow ` @@ -41,32 +41,32 @@ The SRW App requires input files to run. These include static datasets, initial .. table:: Data locations for Level 1 systems - +--------------+--------------------------------------------------------------+ - | Machine | File location | - +==============+==============================================================+ - | Cheyenne | /glade/p/ral/jntp/UFS_SRW_App/develop/input_model_data/ | - +--------------+--------------------------------------------------------------+ - | Gaea | /lustre/f2/pdata/ncep/UFS_SRW_App/develop/input_model_data/ | - +--------------+--------------------------------------------------------------+ - | Hera | /scratch2/BMC/det/UFS_SRW_App/develop/input_model_data/ | - +--------------+--------------------------------------------------------------+ - | Jet | /mnt/lfs4/BMC/wrfruc/UFS_SRW_App/develop/input_model_data/ | - +--------------+--------------------------------------------------------------+ - | NOAA Cloud | /contrib/EPIC/UFS_SRW_App/develop/input_model_data/ | - +--------------+--------------------------------------------------------------+ - | Orion | /work/noaa/fv3-cam/UFS_SRW_App/develop/input_model_data/ | - +--------------+--------------------------------------------------------------+ - | WCOSS2 | /lfs/h2/emc/lam/noscrub/UFS_SRW_App/ | - +--------------+--------------------------------------------------------------+ - -For Level 2-4 systems, the data must be added. Detailed instructions on how to add the data can be found in :numref:`Section %s `. Sections :numref:`%s ` and :numref:`%s ` contain useful background information on the input and output files used in the SRW App. + +--------------+-----------------------------------------------------------------+ + | Machine | File location | + +==============+=================================================================+ + | Cheyenne | /glade/p/ral/jntp/UFS_SRW_App/develop/input_model_data/ | + +--------------+-----------------------------------------------------------------+ + | Gaea | /lustre/f2/pdata/ncep/UFS_SRW_App/develop/input_model_data/ | + +--------------+-----------------------------------------------------------------+ + | Hera | /scratch2/BMC/det/UFS_SRW_App/develop/input_model_data/ | + +--------------+-----------------------------------------------------------------+ + | Jet | /mnt/lfs4/BMC/wrfruc/UFS_SRW_App/develop/input_model_data/ | + +--------------+-----------------------------------------------------------------+ + | NOAA Cloud | /contrib/EPIC/UFS_SRW_App/develop/input_model_data/ | + +--------------+-----------------------------------------------------------------+ + | Orion | /work/noaa/fv3-cam/UFS_SRW_App/develop/input_model_data/ | + +--------------+-----------------------------------------------------------------+ + | WCOSS2 | /lfs/h2/emc/lam/noscrub/UFS_SRW_App/develop/input_model_data/ | + +--------------+-----------------------------------------------------------------+ + +For Level 2-4 systems, the data must be added to the user's system. Detailed instructions on how to add the data can be found in :numref:`Section %s `. Sections :numref:`%s ` and :numref:`%s ` contain useful background information on the input and output files used in the SRW App. .. _GridSpecificConfig: Grid Configuration ======================= -The SRW App officially supports four different predefined grids as shown in :numref:`Table %s `. The out-of-the-box SRW App case uses the ``RRFS_CONUS_25km`` predefined grid option. More information on the predefined and user-generated grid options can be found in :numref:`Chapter %s ` for those who are curious. Users who plan to utilize one of the four predefined domain (grid) options may continue to :numref:`Step %s `. Users who plan to create a new domain should refer to :numref:`Section %s ` for details on how to do so. At a minimum, these users will need to add the new grid name to the ``valid_param_vals.yaml`` script and add the corresponding grid-specific parameters in the ``set_predef_grid_params.py`` script. +The SRW App officially supports the four predefined grids shown in :numref:`Table %s `. The out-of-the-box SRW App case uses the ``RRFS_CONUS_25km`` predefined grid option. More information on the predefined and user-generated grid options can be found in :numref:`Chapter %s ` for those who are curious. Users who plan to utilize one of the four predefined domain (grid) options may continue to :numref:`Step %s `. Users who plan to create a new custom domain should refer to :numref:`Section %s ` for instructions. At a minimum, these users will need to add the new grid name to the ``valid_param_vals.yaml`` script and add the corresponding grid-specific parameters in the ``set_predef_grid_params.py`` script. .. _PredefinedGrids: @@ -91,18 +91,18 @@ Generate the Forecast Experiment ================================= Generating the forecast experiment requires three steps: -#. :ref:`Set experiment parameters ` -#. :ref:`Set Python and other environment parameters ` +#. :ref:`Set experiment configuration parameters ` +#. :ref:`Load the python environment for the regional workflow ` #. :ref:`Run a script to generate the experiment workflow ` The first two steps depend on the platform being used and are described here for each Level 1 platform. Users will need to adjust the instructions to reflect their machine configuration if they are working on a Level 2-4 platform. Information in :numref:`Chapter %s: Configuring the Workflow ` can help with this. .. _ExptConfig: -Set Experiment Parameters ----------------------------- +Set Experiment Configuration Parameters +------------------------------------------ -Each experiment requires certain basic information to run (e.g., date, grid, physics suite). This information is specified in ``config_defaults.yaml`` and in the user-specified ``config.yaml`` file. When generating a new experiment, the SRW App first reads and assigns default values from the ``config_defaults.yaml`` file. Then, it reads and (re)assigns variables from the user's custom ``config.yaml`` file. +Each experiment requires certain basic information to run (e.g., date, grid, physics suite). This information is specified in ``config_defaults.yaml`` and in the user-specified ``config.yaml`` file. When generating a new experiment, the SRW App first reads and assigns default values from ``config_defaults.yaml``. Then, it reads and (re)assigns variables from the user's custom ``config.yaml`` file. For background info on ``config_defaults.yaml``, read :numref:`Section %s `, or jump to :numref:`Section %s ` to continue configuring the experiment. @@ -112,191 +112,253 @@ Default configuration: ``config_defaults.yaml`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. note:: - This section provides background information on how the SRW App uses the ``config_defaults.yaml`` file. It is informative, but users do not need to modify ``config_defaults.yaml`` to run the out-of-the-box case for the SRW App. Therefore, users may skip to :numref:`Step %s ` to continue configuring their experiment. + This section provides background information on available parameters and how the SRW App uses the ``config_defaults.yaml`` file. It is informative, but users do not need to modify ``config_defaults.yaml`` to run the out-of-the-box case for the SRW App. Therefore, users may skip to :numref:`Step %s ` to continue configuring their experiment. -Configuration variables in the ``config_defaults.yaml`` file appear in :numref:`Table %s `. Some of these default values are intentionally invalid in order to ensure that the user assigns valid values in the user-specified ``config.yaml`` file. Any settings provided in ``config.yaml`` will override the ``config_defaults.yaml`` +Configuration parameters in the ``config_defaults.yaml`` file appear in :numref:`Table %s `. Some of these default values are intentionally invalid in order to ensure that the user assigns valid values in the user-specified ``config.yaml`` file. Any settings provided in ``config.yaml`` will override the settings in ``config_defaults.yaml``. settings. There is usually no need for a user to modify the default configuration file. Additional information on the default settings can be found in the file itself and in :numref:`Chapter %s `. .. _ConfigVarsDefault: .. table:: Configuration variables specified in the config_defaults.yaml script - +----------------------+--------------------------------------------------------------+ - | **Group Name** | **Configuration variables** | - +======================+==============================================================+ - | Experiment mode | RUN_ENVIR | - +----------------------+--------------------------------------------------------------+ - | Machine and queue | MACHINE, MACHINE_FILE, ACCOUNT, COMPILER, SCHED, | - | | LMOD_PATH, NCORES_PER_NODE, BUILD_MOD_FN, WFLOW_MOD_FN, | - | | PARTITION_DEFAULT, CLUSTERS_DEFAULT, QUEUE_DEFAULT, | - | | PARTITION_HPSS, CLUSTERS_HPSS, QUEUE_HPSS, PARTITION_FCST, | - | | CLUSTERS_FCST, QUEUE_FCST | - +----------------------+--------------------------------------------------------------+ - | Workflow management | WORKFLOW_MANAGER, RUN_CMD_UTILS, RUN_CMD_FCST, RUN_CMD_POST | - +----------------------+--------------------------------------------------------------+ - | Cron | USE_CRON_TO_RELAUNCH, CRON_RELAUNCH_INTVL_MNTS | - +----------------------+--------------------------------------------------------------+ - | Directory parameters | EXPT_BASEDIR, EXPT_SUBDIR, EXEC_SUBDIR | - +----------------------+--------------------------------------------------------------+ - | NCO mode | COMINgfs, FIXLAM_NCO_BASEDIR, STMP, NET, envir, RUN, PTMP | - +----------------------+--------------------------------------------------------------+ - | Separator | DOT_OR_USCORE | - +----------------------+--------------------------------------------------------------+ - | File name | EXPT_CONFIG_FN, RGNL_GRID_NML_FN, DATA_TABLE_FN, | - | | DIAG_TABLE_FN, FIELD_TABLE_FN, FV3_NML_BASE_SUITE_FN, | - | | FV3_NML_YAML_CONFIG_FN, FV3_NML_BASE_ENS_FN, | - | | MODEL_CONFIG_FN, NEMS_CONFIG_FN, FV3_EXEC_FN, | - | | FCST_MODEL, WFLOW_XML_FN, GLOBAL_VAR_DEFNS_FN, | - | | EXTRN_MDL_ICS_VAR_DEFNS_FN, EXTRN_MDL_LBCS_VAR_DEFNS_FN, | - | | WFLOW_LAUNCH_SCRIPT_FN, WFLOW_LAUNCH_LOG_FN | - +----------------------+--------------------------------------------------------------+ - | Forecast | DATE_FIRST_CYCL, DATE_LAST_CYCL, CYCL_HRS, INCR_CYCL_FREQ, | - | | FCST_LEN_HRS | - +----------------------+--------------------------------------------------------------+ - | IC/LBC | EXTRN_MDL_NAME_ICS, EXTRN_MDL_NAME_LBCS, | - | | LBC_SPEC_INTVL_HRS, EXTRN_MDL_ICS_OFFSET_HRS, | - | | EXTRN_MDL_LBCS_OFFSET_HRS, FV3GFS_FILE_FMT_ICS, | - | | FV3GFS_FILE_FMT_LBCS | - +----------------------+--------------------------------------------------------------+ - | NOMADS | NOMADS, NOMADS_file_type | - +----------------------+--------------------------------------------------------------+ - | External model | EXTRN_MDL_SYSBASEDIR_ICS, EXTRN_MDL_SYSBASEDIR_LBCS, | - | | USE_USER_STAGED_EXTRN_FILES, EXTRN_MDL_SOURCE_BASEDIR_ICS, | - | | EXTRN_MDL_FILES_ICS, EXTRN_MDL_SOURCE_BASEDIR_LBCS, | - | | EXTRN_MDL_FILES_LBCS | - +----------------------+--------------------------------------------------------------+ - | CCPP | CCPP_PHYS_SUITE | - +----------------------+--------------------------------------------------------------+ - | Stochastic physics | NEW_LSCALE, DO_SHUM, DO_SPPT, DO_SKEB, DO_SPP, DO_LSM_SPP, | - | | ISEED_SHUM, SHUM_MAG, SHUM_LSCALE, SHUM_TSCALE, SHUM_INT, | - | | ISEED_SPPT, SPPT_MAG, SPPT_LOGIT, SPPT_LSCALE, SPPT_TSCALE, | - | | SPPT_INT, SPPT_SFCLIMIT, USE_ZMTNBLCK, ISEED_SKEB, | - | | SKEB_MAG, SKEB_LSCALE, SKEP_TSCALE, SKEB_INT, SKEBNORM, | - | | SKEB_VDOF, ISEED_SPP, SPP_MAG_LIST, SPP_LSCALE, SPP_TSCALE, | - | | SPP_SIGTOP1, SPP_SIGTOP2, SPP_STDDEV_CUTOFF, SPP_VAR_LIST, | - | | LSM_SPP_TSCALE, LSM_SPP_LSCALE, ISEED_LSM_SPP, | - | | LSM_SPP_VAR_LIST, LSM_SPP_MAG_LIST, LSM_SPP_EACH_STEP | - +----------------------+--------------------------------------------------------------+ - | GRID | GRID_GEN_METHOD, PREDEF_GRID_NAME | - +----------------------+--------------------------------------------------------------+ - | ESG grid | ESGgrid_LON_CTR, ESGgrid_LAT_CTR, ESGgrid_DELX, | - | | ESGgrid_DELY, ESGgrid_NX, ESGgrid_NY, ESGgrid_PAZI | - | | ESGgrid_WIDE_HALO_WIDTH | - +----------------------+--------------------------------------------------------------+ - | GFDL grid | GFDLgrid_LON_T6_CTR, GFDLgrid_LAT_T6_CTR, GFDLgrid_RES, | - | | GFDLgrid_STRETCH_FAC, GFDLgrid_REFINE_RATIO, | - | | GFDLgrid_ISTART_OF_RGNL_DOM_ON_T6G, | - | | GFDLgrid_IEND_OF_RGNL_DOM_ON_T6G, | - | | GFDLgrid_JSTART_OF_RGNL_DOM_ON_T6G, | - | | GFDLgrid_JEND_OF_RGNL_DOM_ON_T6G, | - | | GFDLgrid_USE_GFDLgrid_RES_IN_FILENAMES | - +----------------------+--------------------------------------------------------------+ - | Input configuration | DT_ATMOS, RESTART_INTERVAL, WRITE_DOPOST, LAYOUT_X, | - | | LAYOUT_Y, BLOCKSIZE, QUILTING, | - | | PRINT_ESMF, WRTCMP_write_groups, | - | | WRTCMP_write_tasks_per_group, WRTCMP_output_grid, | - | | WRTCMP_cen_lon, WRTCMP_cen_lat, WRTCMP_lon_lwr_left, | - | | WRTCMP_lat_lwr_left, WRTCMP_lon_upr_rght, | - | | WRTCMP_lat_upr_rght, WRTCMP_dlon, WRTCMP_dlat, | - | | WRTCMP_stdlat1, WRTCMP_stdlat2, WRTCMP_nx, WRTCMP_ny, | - | | WRTCMP_dx, WRTCMP_dy | - +----------------------+--------------------------------------------------------------+ - | Experiment generation| PREEXISTING_DIR_METHOD, VERBOSE, DEBUG | - +----------------------+--------------------------------------------------------------+ - | Cycle-independent | RUN_TASK_MAKE_GRID, GRID_DIR, RUN_TASK_MAKE_OROG, | - | | OROG_DIR, RUN_TASK_MAKE_SFC_CLIMO, SFC_CLIMO_DIR | - +----------------------+--------------------------------------------------------------+ - | Cycle dependent | RUN_TASK_GET_EXTRN_ICS, RUN_TASK_GET_EXTRN_LBCS, | - | | RUN_TASK_MAKE_ICS, RUN_TASK_MAKE_LBCS, RUN_TASK_RUN_FCST, | - | | RUN_TASK_RUN_POST | - +----------------------+--------------------------------------------------------------+ - | VX run tasks | RUN_TASK_GET_OBS_CCPA, RUN_TASK_GET_OBS_MRMS, | - | | RUN_TASK_GET_OBS_NDAS, RUN_TASK_VX_GRIDSTAT, | - | | RUN_TASK_VX_POINTSTAT, RUN_TASK_VX_ENSGRID, | - | | RUN_TASK_VX_ENSPOINT | - +----------------------+--------------------------------------------------------------+ - | Fixed File Parameters| FIXgsm, FIXaer, FIXlut, TOPO_DIR, SFC_CLIMO_INPUT_DIR, | - | | FNGLAC, FNMXIC, FNTSFC, FNSNOC, FNZORC, | - | | FNAISC, FNSMCC, FNMSKH, FIXgsm_FILES_TO_COPY_TO_FIXam, | - | | FV3_NML_VARNAME_TO_FIXam_FILES_MAPPING, | - | | FV3_NML_VARNAME_TO_SFC_CLIMO_FIELD_MAPPING, | - | | CYCLEDIR_LINKS_TO_FIXam_FILES_MAPPING | - +----------------------+--------------------------------------------------------------+ - | Workflow tasks | MAKE_GRID_TN, MAKE_OROG_TN, MAKE_SFC_CLIMO_TN, | - | | GET_EXTRN_ICS_TN, GET_EXTRN_LBCS_TN, MAKE_ICS_TN, | - | | MAKE_LBCS_TN, RUN_FCST_TN, RUN_POST_TN | - +----------------------+--------------------------------------------------------------+ - | Verification tasks | GET_OBS, GET_OBS_CCPA_TN, GET_OBS_MRMS_TN, GET_OBS_NDAS_TN, | - | | VX_TN, VX_GRIDSTAT_TN, VX_GRIDSTAT_REFC_TN, | - | | VX_GRIDSTAT_RETOP_TN, VX_GRIDSTAT_##h_TN, VX_POINTSTAT_TN, | - | | VX_ENSGRID_TN, VX_ENSGRID_##h_TN, VX_ENSGRID_REFC_TN, | - | | VX_ENSGRID_RETOP_TN, VX_ENSGRID_MEAN_TN, VX_ENSGRID_PROB_TN, | - | | VX_ENSGRID_MEAN_##h_TN, VX_ENSGRID_PROB_03h_TN, | - | | VX_ENSGRID_PROB_REFC_TN, VX_ENSGRID_PROB_RETOP_TN, | - | | VX_ENSPOINT_TN, VX_ENSPOINT_MEAN_TN, VX_ENSPOINT_PROB_TN | - +----------------------+--------------------------------------------------------------+ - | NODE | NNODES_MAKE_GRID, NNODES_MAKE_OROG, NNODES_MAKE_SFC_CLIMO, | - | | NNODES_GET_EXTRN_ICS, NNODES_GET_EXTRN_LBCS, | - | | NNODES_MAKE_ICS, NNODES_MAKE_LBCS, NNODES_RUN_FCST, | - | | NNODES_RUN_POST, NNODES_GET_OBS_CCPA, NNODES_GET_OBS_MRMS, | - | | NNODES_GET_OBS_NDAS, NNODES_VX_GRIDSTAT, | - | | NNODES_VX_POINTSTAT, NNODES_VX_ENSGRID, | - | | NNODES_VX_ENSGRID_MEAN, NNODES_VX_ENSGRID_PROB, | - | | NNODES_VX_ENSPOINT, NNODES_VX_ENSPOINT_MEAN, | - | | NNODES_VX_ENSPOINT_PROB | - +----------------------+--------------------------------------------------------------+ - | MPI processes | PPN_MAKE_GRID, PPN_MAKE_OROG, PPN_MAKE_SFC_CLIMO, | - | | PPN_GET_EXTRN_ICS, PPN_GET_EXTRN_LBCS, PPN_MAKE_ICS, | - | | PPN_MAKE_LBCS, PPN_RUN_FCST, PPN_RUN_POST, | - | | PPN_GET_OBS_CCPA, PPN_GET_OBS_MRMS, PPN_GET_OBS_NDAS, | - | | PPN_VX_GRIDSTAT, PPN_VX_POINTSTAT, PPN_VX_ENSGRID, | - | | PPN_VX_ENSGRID_MEAN, PPN_VX_ENSGRID_PROB, PPN_VX_ENSPOINT, | - | | PPN_VX_ENSPOINT_MEAN, PPN_VX_ENSPOINT_PROB | - +----------------------+--------------------------------------------------------------+ - | Walltime | WTIME_MAKE_GRID, WTIME_MAKE_OROG, WTIME_MAKE_SFC_CLIMO, | - | | WTIME_GET_EXTRN_ICS, WTIME_GET_EXTRN_LBCS, WTIME_MAKE_ICS, | - | | WTIME_MAKE_LBCS, WTIME_RUN_FCST, WTIME_RUN_POST, | - | | WTIME_GET_OBS_CCPA, WTIME_GET_OBS_MRMS, WTIME_GET_OBS_NDAS, | - | | WTIME_VX_GRIDSTAT, WTIME_VX_POINTSTAT, WTIME_VX_ENSGRID, | - | | WTIME_VX_ENSGRID_MEAN, WTIME_VX_ENSGRID_PROB, | - | | WTIME_VX_ENSPOINT, WTIME_VX_ENSPOINT_MEAN, | - | | WTIME_VX_ENSPOINT_PROB | - +----------------------+--------------------------------------------------------------+ - | Maximum attempt | MAXTRIES_MAKE_GRID, MAXTRIES_MAKE_OROG, | - | | MAXTRIES_MAKE_SFC_CLIMO, MAXTRIES_GET_EXTRN_ICS, | - | | MAXTRIES_GET_EXTRN_LBCS, MAXTRIES_MAKE_ICS, | - | | MAXTRIES_MAKE_LBCS, MAXTRIES_RUN_FCST, MAXTRIES_RUN_POST, | - | | MAXTRIES_GET_OBS_CCPA, MAXTRIES_GET_OBS_MRMS, | - | | MAXTRIES_GET_OBS_NDAS, MAXTRIES_VX_GRIDSTAT, | - | | MAXTRIES_VX_GRIDSTAT_REFC, MAXTRIES_VX_GRIDSTAT_RETOP, | - | | MAXTRIES_VX_GRIDSTAT_##h, MAXTRIES_VX_POINTSTAT, | - | | MAXTRIES_VX_ENSGRID, MAXTRIES_VX_ENSGRID_REFC, | - | | MAXTRIES_VX_ENSGRID_RETOP, MAXTRIES_VX_ENSGRID_##h, | - | | MAXTRIES_VX_ENSGRID_MEAN, MAXTRIES_VX_ENSGRID_PROB, | - | | MAXTRIES_VX_ENSGRID_MEAN_##h, MAXTRIES_VX_ENSGRID_PROB_##h, | - | | MAXTRIES_VX_ENSGRID_PROB_REFC, | - | | MAXTRIES_VX_ENSGRID_PROB_RETOP, MAXTRIES_VX_ENSPOINT, | - | | MAXTRIES_VX_ENSPOINT_MEAN, MAXTRIES_VX_ENSPOINT_PROB | - +----------------------+--------------------------------------------------------------+ - | Climatology | SFC_CLIMO_FIELDS, USE_MERRA_CLIMO | - +----------------------+--------------------------------------------------------------+ - | CRTM | USE_CRTM, CRTM_DIR | - +----------------------+--------------------------------------------------------------+ - | Post configuration | USE_CUSTOM_POST_CONFIG_FILE, CUSTOM_POST_CONFIG_FP, | - | | SUB_HOURLY_POST, DT_SUB_HOURLY_POST_MNTS | - +----------------------+--------------------------------------------------------------+ - | METplus | MODEL, MET_INSTALL_DIR, MET_BIN_EXEC, METPLUS_PATH, | - | | CCPA_OBS_DIR, MRMS_OBS_DIR, NDAS_OBS_DIR | - +----------------------+--------------------------------------------------------------+ - | Running ensembles | DO_ENSEMBLE, NUM_ENS_MEMBERS | - +----------------------+--------------------------------------------------------------+ - | Boundary blending | HALO_BLEND | - +----------------------+--------------------------------------------------------------+ - | FVCOM | USE_FVCOM, FVCOM_WCSTART, FVCOM_DIR, FVCOM_FILE | - +----------------------+--------------------------------------------------------------+ - | Thread Affinity | KMP_AFFINITY_*, OMP_NUM_THREADS_*, OMP_STACKSIZE_* | - +----------------------+--------------------------------------------------------------+ - + +-----------------------------+-----------------------------------------------------------------------+ + | **Group Name** | **Configuration variables** | + +=============================+=======================================================================+ + | User | RUN_ENVIR, MACHINE, MACHINE_FILE, ACCOUNT | + +-----------------------------+-----------------------------------------------------------------------+ + | Platform | WORKFLOW_MANAGER, NCORES_PER_NODE, BUILD_MOD_FN, WFLOW_MOD_FN, | + | | BUILD_VER_FN, RUN_VER_FN, SCHED, DOMAIN_PREGEN_BASEDIR, | + | | ENV_INIT_SCRIPTS_FPS, PRE_TASK_CMDS | + | | | + | - Machine | PARTITION_DEFAULT, QUEUE_DEFAULT, PARTITION_HPSS, QUEUE_HPSS, | + | | PARTITION_FCST, QUEUE_FCST | + | | | + | - Workflow | RUN_CMD_UTILS, RUN_CMD_FCST, RUN_CMD_POST, SLURM_NATIVE_CMD | + | | | + | - METplus | MODEL, MET_INSTALL_DIR, METPLUS_PATH, MET_BIN_EXEC, CCPA_OBS_DIR, | + | | MRMS_OBS_DIR, NDAS_OBS_DIR | + +-----------------------------+-----------------------------------------------------------------------+ + | Workflow | WORKFLOW_ID, USE_CRON_TO_RELAUNCH, CRON_RELAUNCH_INTVL_MNTS, | + | | EXPT_BASEDIR, EXPT_SUBDIR, EXEC_SUBDIR, DOT_OR_USCORE | + | | | + | - File names | EXPT_CONFIG_FN, CONSTANTS_FN, RGNL_GRID_NML_FN, | + | | FV3_NML_BASE_SUITE_FN, FV3_NML_YAML_CONFIG_FN, FV3_NML_BASE_ENS_FN, | + | | FV3_EXEC_FN, DIAG_TABLE_TMPL_FN, FIELD_TABLE_TMPL_FN, | + | | DATA_TABLE_TMPL_FN, MODEL_CONFIG_TMPL_FN, NEMS_CONFIG_TMPL_FN, | + | | FCST_MODEL, WFLOW_XML_FN, GLOBAL_VAR_DEFNS_FN, | + | | EXTRN_MDL_VAR_DEFNS_FN, WFLOW_LAUNCH_SCRIPT_FN, WFLOW_LAUNCH_LOG_FN | + | | | + | - Forecast | CCPP_PHYS_SUITE, GRID_GEN_METHOD, DATE_FIRST_CYCL, DATE_LAST_CYCL, | + | | CYCL_HRS, INCR_CYCL_FREQ, FCST_LEN_HRS | + | | | + | - Verification | GET_OBS, VX_TN, VX_ENSGRID_TN, VX_ENSGRID_PROB_REFC_TN, | + | | MAXTRIES_VX_ENSGRID_PROB_REFC | + | | | + | - Miscellaneous | PREEXISTING_DIR_METHOD, VERBOSE, DEBUG, COMPILER | + +-----------------------------+-----------------------------------------------------------------------+ + | NCO | envir, NET, model_ver, RUN, OPSROOT | + +-----------------------------+-----------------------------------------------------------------------+ + | Workflow Switches | | + | | | + | - Cycle-independent | RUN_TASK_MAKE_GRID, RUN_TASK_MAKE_OROG, RUN_TASK_MAKE_SFC_CLIMO, | + | | | + | - Cycle dependent | RUN_TASK_GET_EXTRN_ICS, RUN_TASK_GET_EXTRN_LBCS, RUN_TASK_MAKE_ICS, | + | | RUN_TASK_MAKE_LBCS, RUN_TASK_RUN_FCST, RUN_TASK_RUN_POST | + | | | + | - VX run tasks | RUN_TASK_GET_OBS_CCPA, RUN_TASK_GET_OBS_MRMS, RUN_TASK_GET_OBS_NDAS, | + | | RUN_TASK_VX_GRIDSTAT, RUN_TASK_VX_POINTSTAT, RUN_TASK_VX_ENSGRID, | + | | RUN_TASK_VX_ENSPOINT | + +-----------------------------+-----------------------------------------------------------------------+ + | task_make_grid | | + | | | + | - Basic | MAKE_GRID_TN, NNODES_MAKE_GRID, PPN_MAKE_GRID, WTIME_MAKE_GRID, | + | | MAXTRIES_MAKE_GRID, GRID_DIR | + | | | + | - ESGgrid Settings | ESGgrid_LON_CTR, ESGgrid_LAT_CTR, ESGgrid_DELX, ESGgrid_DELY, | + | | ESGgrid_NX, ESGgrid_NY, ESGgrid_PAZI, ESGgrid_WIDE_HALO_WIDTH | + | | | + | - GFDLgrid Settings | GFDLgrid_LON_T6_CTR, GFDLgrid_LAT_T6_CTR, GFDLgrid_NUM_CELLS, | + | | GFDLgrid_STRETCH_FAC, GFDLgrid_REFINE_RATIO, | + | | GFDLgrid_ISTART_OF_RGNL_DOM_ON_T6G, GFDLgrid_IEND_OF_RGNL_DOM_ON_T6G, | + | | GFDLgrid_JSTART_OF_RGNL_DOM_ON_T6G, GFDLgrid_JEND_OF_RGNL_DOM_ON_T6G, | + | | GFDLgrid_USE_NUM_CELLS_IN_FILENAMES | + +-----------------------------+-----------------------------------------------------------------------+ + | task_make_orog | MAKE_OROG_TN, NNODES_MAKE_OROG, PPN_MAKE_OROG, WTIME_MAKE_OROG, | + | | MAXTRIES_MAKE_OROG, KMP_AFFINITY_MAKE_OROG, OMP_NUM_THREADS_MAKE_OROG | + | | OMP_STACKSIZE_MAKE_OROG, OROG_DIR | + +-----------------------------+-----------------------------------------------------------------------+ + | task_make_sfc_climo | MAKE_SFC_CLIMO_TN, NNODES_MAKE_SFC_CLIMO, PPN_MAKE_SFC_CLIMO, | + | | WTIME_MAKE_SFC_CLIMO, MAXTRIES_MAKE_SFC_CLIMO, | + | | KMP_AFFINITY_MAKE_SFC_CLIMO, OMP_NUM_THREADS_MAKE_SFC_CLIMO, | + | | OMP_STACKSIZE_MAKE_SFC_CLIMO, SFC_CLIMO_DIR | + +-----------------------------+-----------------------------------------------------------------------+ + | task_get_extrn_ics | | + | | | + | - Basic | GET_EXTRN_ICS_TN, NNODES_GET_EXTRN_ICS, PPN_GET_EXTRN_ICS, | + | | WTIME_GET_EXTRN_ICS, MAXTRIES_GET_EXTRN_ICS, EXTRN_MDL_NAME_ICS, | + | | EXTRN_MDL_ICS_OFFSET_HRS, FV3GFS_FILE_FMT_ICS | + | | | + | - File/Directory | EXTRN_MDL_SYSBASEDIR_ICS, USE_USER_STAGED_EXTRN_FILES, | + | Parameter | EXTRN_MDL_SOURCE_BASEDIR_ICS, EXTRN_MDL_FILES_ICS, | + | | EXTRN_MDL_FILES_ICS, EXTRN_MDL_FILES_ICS, EXTRN_MDL_DATA_STORES | + | | | + | - NOMADS Parameters | NOMADS, NOMADS_file_type | + +-----------------------------+-----------------------------------------------------------------------+ + | task_get_extrn_lbcs | | + | | | + | - Basic | GET_EXTRN_LBCS_TN, NNODES_GET_EXTRN_LBCS, PPN_GET_EXTRN_LBCS, | + | | WTIME_GET_EXTRN_LBCS, MAXTRIES_GET_EXTRN_LBCS, EXTRN_MDL_NAME_LBCS, | + | | LBC_SPEC_INTVL_HRS, EXTRN_MDL_LBCS_OFFSET_HRS, FV3GFS_FILE_FMT_LBCS | + | | | + | - File/Directory | EXTRN_MDL_SYSBASEDIR_LBCS, USE_USER_STAGED_EXTRN_FILES, | + | Parameter | EXTRN_MDL_SOURCE_BASEDIR_LBCS, EXTRN_MDL_FILES_LBCS, | + | | EXTRN_MDL_DATA_STORES | + | | | + | - NOMADS Parameters | NOMADS, NOMADS_file_type | + +-----------------------------+-----------------------------------------------------------------------+ + | task_make_ics | | + | | | + | - Basic | MAKE_ICS_TN, NNODES_MAKE_ICS, PPN_MAKE_ICS, WTIME_MAKE_ICS, | + | | MAXTRIES_MAKE_ICS, KMP_AFFINITY_MAKE_ICS, OMP_NUM_THREADS_MAKE_ICS, | + | | OMP_STACKSIZE_MAKE_ICS | + | | | + | - FVCOM Parameter | USE_FVCOM, FVCOM_WCSTART, FVCOM_DIR, FVCOM_FILE | + +-----------------------------+-----------------------------------------------------------------------+ + | task_make_lbcs | MAKE_LBCS_TN, NNODES_MAKE_LBCS, PPN_MAKE_LBCS, WTIME_MAKE_LBCS, | + | | MAXTRIES_MAKE_LBCS, KMP_AFFINITY_MAKE_LBCS, OMP_NUM_THREADS_MAKE_LBCS,| + | | OMP_STACKSIZE_MAKE_LBCS | + +-----------------------------+-----------------------------------------------------------------------+ + | task_run_fcst | | + | | | + | - Basic | RUN_FCST_TN, NNODES_RUN_FCST, PPN_RUN_FCST, WTIME_RUN_FCST, | + | | MAXTRIES_RUN_FCST, KMP_AFFINITY_RUN_FCST, OMP_NUM_THREADS_RUN_FCST, | + | | OMP_STACKSIZE_RUN_FCST | + | | | + | - Model Config | DT_ATMOS, RESTART_INTERVAL, WRITE_DOPOST | + | | | + | - Computational | LAYOUT_X, LAYOUT_Y, BLOCKSIZE | + | | | + | - Write Component | QUILTING, PRINT_ESMF, WRTCMP_write_groups, | + | | WRTCMP_write_tasks_per_group, WRTCMP_output_grid, WRTCMP_cen_lon, | + | | WRTCMP_cen_lat, WRTCMP_lon_lwr_left, WRTCMP_lat_lwr_left, | + | | WRTCMP_lon_upr_rght, WRTCMP_lat_upr_rght, WRTCMP_dlon, WRTCMP_dlat, | + | | WRTCMP_stdlat1, WRTCMP_stdlat2, WRTCMP_nx, WRTCMP_ny, WRTCMP_dx, | + | | WRTCMP_dy | + | | | + | - Predefined Grid | PREDEF_GRID_NAME | + | | | + | - Miscellaneous | USE_MERRA_CLIMO, SFC_CLIMO_FIELDS | + | | | + | - Fixed Files | FIXgsm, FIXaer, FIXlut, TOPO_DIR, SFC_CLIMO_INPUT_DIR, | + | | SYMLINK_FIX_FILES, FNGLAC, FNMXIC, FNTSFC, FNSNOC, FNZORC, FNAISC, | + | | FNSMCC, FNMSKH, FIXgsm_FILES_TO_COPY_TO_FIXam, | + | | FV3_NML_VARNAME_TO_FIXam_FILES_MAPPING, | + | | FV3_NML_VARNAME_TO_SFC_CLIMO_FIELD_MAPPING, | + | | CYCLEDIR_LINKS_TO_FIXam_FILES_MAPPING | + +-----------------------------+-----------------------------------------------------------------------+ + | task_run_post | | + | | | + | - Basic | RUN_POST_TN, NNODES_RUN_POST, PPN_RUN_POST, WTIME_RUN_POST, | + | | MAXTRIES_RUN_POST, KMP_AFFINITY_RUN_POST, OMP_NUM_THREADS_RUN_POST, | + | | OMP_STACKSIZE_RUN_POST | + | | | + | - Subhourly Post | SUB_HOURLY_POST, DT_SUB_HOURLY_POST_MNTS | + | | | + | - Custom Post | USE_CUSTOM_POST_CONFIG_FILE, CUSTOM_POST_CONFIG_FP, | + | | POST_OUTPUT_DOMAIN_NAME | + +-----------------------------+-----------------------------------------------------------------------+ + | Global | | + | | | + | - CRTM | USE_CRTM, CRTM_DIR | + | | | + | - Ensembles | DO_ENSEMBLE, NUM_ENS_MEMBERS | + | | | + | - Stochastic Physics | NEW_LSCALE, DO_SHUM, ISEED_SHUM, SHUM_MAG, SHUM_LSCALE, SHUM_TSCALE, | + | | SHUM_INT, DO_SPPT, ISEED_SPPT, SPPT_MAG, SPPT_LOGIT, SPPT_LSCALE, | + | | SPPT_TSCALE, SPPT_INT, SPPT_SFCLIMIT, USE_ZMTNBLCK, DO_SKEB, | + | | ISEED_SKEB, SKEB_MAG, SKEB_LSCALE, SKEP_TSCALE, SKEB_INT, SKEBNORM, | + | | SKEB_VDOF, DO_SPP, ISEED_SPP, SPP_VAR_LIST, SPP_MAG_LIST, SPP_LSCALE, | + | | SPP_TSCALE, SPP_SIGTOP1, SPP_SIGTOP2, SPP_STDDEV_CUTOFF, DO_LSM_SPP, | + | | LSM_SPP_TSCALE, LSM_SPP_LSCALE, ISEED_LSM_SPP, LSM_SPP_VAR_LIST, | + | | LSM_SPP_MAG_LIST | + | | | + | - Halo | HALO_BLEND | + +-----------------------------+-----------------------------------------------------------------------+ + | task_get_obs_ccpa | GET_OBS_CCPA_TN, NNODES_GET_OBS_CCPA, PPN_GET_OBS_CCPA, | + | | WTIME_GET_OBS_CCPA, MAXTRIES_GET_OBS_CCPA | + +-----------------------------+-----------------------------------------------------------------------+ + | task_get_obs_mrms | GET_OBS_MRMS_TN, NNODES_GET_OBS_MRMS, PPN_GET_OBS_MRMS, | + | | WTIME_GET_OBS_MRMS, MAXTRIES_GET_OBS_MRMS | + +-----------------------------+-----------------------------------------------------------------------+ + | task_get_obs_ndas | GET_OBS_NDAS_TN, NNODES_GET_OBS_NDAS, PPN_GET_OBS_NDAS, | + | | WTIME_GET_OBS_NDAS, MAXTRIES_GET_OBS_NDAS | + +-----------------------------+-----------------------------------------------------------------------+ + | task_run_vx_gridstat | VX_GRIDSTAT_TN, NNODES_VX_GRIDSTAT, PPN_VX_GRIDSTAT, | + | | WTIME_VX_GRIDSTAT, MAXTRIES_VX_GRIDSTAT | + +-----------------------------+-----------------------------------------------------------------------+ + | task_run_vx_gridstat_refc | VX_GRIDSTAT_REFC_TN, NNODES_VX_GRIDSTAT, PPN_VX_GRIDSTAT, | + | | WTIME_VX_GRIDSTAT, MAXTRIES_VX_GRIDSTAT_REFC | + +-----------------------------+-----------------------------------------------------------------------+ + | task_run_vx_gridstat_retop | VX_GRIDSTAT_RETOP_TN, NNODES_VX_GRIDSTAT, PPN_VX_GRIDSTAT, | + | | WTIME_VX_GRIDSTAT, MAXTRIES_VX_GRIDSTAT_RETOP | + +-----------------------------+-----------------------------------------------------------------------+ + | task_run_vx_gridstat_03h | VX_GRIDSTAT_03h_TN, NNODES_VX_GRIDSTAT, PPN_VX_GRIDSTAT, | + | | WTIME_VX_GRIDSTAT, MAXTRIES_VX_GRIDSTAT_03h | + +-----------------------------+-----------------------------------------------------------------------+ + | task_run_vx_gridstat_06h | VX_GRIDSTAT_06h_TN, NNODES_VX_GRIDSTAT, PPN_VX_GRIDSTAT, | + | | WTIME_VX_GRIDSTAT, MAXTRIES_VX_GRIDSTAT_06h | + +-----------------------------+-----------------------------------------------------------------------+ + | task_run_vx_gridstat_24h | VX_GRIDSTAT_24h_TN, NNODES_VX_GRIDSTAT, PPN_VX_GRIDSTAT, | + | | WTIME_VX_GRIDSTAT, MAXTRIES_VX_GRIDSTAT_24h | + +-----------------------------+-----------------------------------------------------------------------+ + | task_run_vx_pointstat | VX_POINTSTAT_TN, NNODES_VX_POINTSTAT, PPN_VX_POINTSTAT, | + | | WTIME_VX_POINTSTAT, MAXTRIES_VX_POINTSTAT | + +-----------------------------+-----------------------------------------------------------------------+ + | task_run_vx_ensgrid | VX_ENSGRID_03h_TN, MAXTRIES_VX_ENSGRID_03h, VX_ENSGRID_06h_TN, | + | | MAXTRIES_VX_ENSGRID_06h, VX_ENSGRID_24h_TN, MAXTRIES_VX_ENSGRID_24h, | + | | VX_ENSGRID_RETOP_TN, MAXTRIES_VX_ENSGRID_RETOP, | + | | VX_ENSGRID_PROB_RETOP_TN, MAXTRIES_VX_ENSGRID_PROB_RETOP, | + | | NNODES_VX_ENSGRID, PPN_VX_ENSGRID, WTIME_VX_ENSGRID, | + | | MAXTRIES_VX_ENSGRID | + +-----------------------------+-----------------------------------------------------------------------+ + | task_run_vx_ensgrid_refc | VX_ENSGRID_REFC_TN, NNODES_VX_ENSGRID, PPN_VX_ENSGRID, | + | | WTIME_VX_ENSGRID, MAXTRIES_VX_ENSGRID_REFC | + +-----------------------------+-----------------------------------------------------------------------+ + | task_run_vx_ensgrid_mean | VX_ENSGRID_MEAN_TN, NNODES_VX_ENSGRID_MEAN, PPN_VX_ENSGRID_MEAN, | + | | WTIME_VX_ENSGRID_MEAN, MAXTRIES_VX_ENSGRID_MEAN | + +-----------------------------+-----------------------------------------------------------------------+ + | task_run_vx_ensgrid_mean_03h| VX_ENSGRID_MEAN_03h_TN, NNODES_VX_ENSGRID_MEAN, PPN_VX_ENSGRID_MEAN, | + | | WTIME_VX_ENSGRID_MEAN, MAXTRIES_VX_ENSGRID_MEAN_03h | + +-----------------------------+-----------------------------------------------------------------------+ + | task_run_vx_ensgrid_mean_06h| VX_ENSGRID_MEAN_06h_TN, NNODES_VX_ENSGRID_MEAN, PPN_VX_ENSGRID_MEAN, | + | | WTIME_VX_ENSGRID_MEAN, MAXTRIES_VX_ENSGRID_MEAN_06h | + +-----------------------------+-----------------------------------------------------------------------+ + | task_run_vx_ensgrid_mean_24h| VX_ENSGRID_MEAN_24h_TN, NNODES_VX_ENSGRID_MEAN, PPN_VX_ENSGRID_MEAN, | + | | WTIME_VX_ENSGRID_MEAN, MAXTRIES_VX_ENSGRID_MEAN_24h | + +-----------------------------+-----------------------------------------------------------------------+ + | task_run_vx_ensgrid_prob | VX_ENSGRID_PROB_TN, NNODES_VX_ENSGRID_PROB, PPN_VX_ENSGRID_PROB, | + | | WTIME_VX_ENSGRID_PROB, MAXTRIES_VX_ENSGRID_PROB | + +-----------------------------+-----------------------------------------------------------------------+ + | task_run_vx_ensgrid_prob_03h| VX_ENSGRID_PROB_03h_TN, NNODES_VX_ENSGRID_PROB, PPN_VX_ENSGRID_PROB, | + | | WTIME_VX_ENSGRID_PROB, MAXTRIES_VX_ENSGRID_PROB_03h | + +-----------------------------+-----------------------------------------------------------------------+ + | task_run_vx_ensgrid_prob_06h| VX_ENSGRID_PROB_06h_TN, NNODES_VX_ENSGRID_PROB, PPN_VX_ENSGRID_PROB, | + | | WTIME_VX_ENSGRID_PROB, MAXTRIES_VX_ENSGRID_PROB_06h | + +-----------------------------+-----------------------------------------------------------------------+ + | task_run_vx_ensgrid_prob_24h| VX_ENSGRID_PROB_24h_TN, NNODES_VX_ENSGRID_PROB, PPN_VX_ENSGRID_PROB, | + | | WTIME_VX_ENSGRID_PROB, MAXTRIES_VX_ENSGRID_PROB_24h | + +-----------------------------+-----------------------------------------------------------------------+ + | task_run_vx_enspoint | VX_ENSPOINT_TN, NNODES_VX_ENSPOINT, PPN_VX_ENSPOINT, | + | | WTIME_VX_ENSPOINT, MAXTRIES_VX_ENSPOINT | + +-----------------------------+-----------------------------------------------------------------------+ + | task_run_vx_enspoint_mean | VX_ENSPOINT_MEAN_TN, NNODES_VX_ENSPOINT_MEAN, PPN_VX_ENSPOINT_MEAN, | + | | WTIME_VX_ENSPOINT_MEAN, MAXTRIES_VX_ENSPOINT_MEAN | + +-----------------------------+-----------------------------------------------------------------------+ + | task_run_vx_enspoint_prob | VX_ENSPOINT_PROB_TN, NNODES_VX_ENSPOINT_PROB, PPN_VX_ENSPOINT_PROB, | + | | WTIME_VX_ENSPOINT_PROB, MAXTRIES_VX_ENSPOINT_PROB | + +-----------------------------+-----------------------------------------------------------------------+ + +.. COMMENT: Move the VX stuff to its own chapter? .. _UserSpecificConfig: @@ -705,8 +767,8 @@ These tasks are independent, so users may set some values to "TRUE" and others t .. _SetUpPythonEnv: -Set Up the Python and Other Environment Parameters ----------------------------------------------------- +Load the Python Environment for the Regional Workflow +--------------------------------------------------------- The workflow requires Python 3 with the packages ``PyYAML``, ``Jinja2``, and ``f90nml`` available. This Python environment has already been set up on Level 1 platforms, and it can be activated in the following way: @@ -767,7 +829,7 @@ The last line of output from this script, starting with ``*/1 * * * *`` or ``*/3 This workflow generation script creates an experiment directory and populates it with all the data needed to run through the workflow. The flowchart in :numref:`Figure %s ` describes the experiment generation process. First, ``generate_FV3LAM_wflow.py`` runs the ``setup.py`` script to set the configuration parameters. Second, it copies the time-independent (fix) files and other necessary data input files from their location in the ufs-weather-model directory to the experiment directory (``$EXPTDIR``). Third, it copies the weather model executable (``ufs_model``) from the ``bin`` directory to ``$EXPTDIR`` and creates the input namelist file ``input.nml`` based on the ``input.nml.FV3`` file in the regional_workflow/ush/templates directory. Lastly, it creates the workflow XML file ``FV3LAM_wflow.xml`` that is executed when running the experiment with the Rocoto workflow manager. -The ``setup.py`` script reads three other configuration scripts in order: (1) ``config_default.yaml`` (:numref:`Section %s `), (2) ``config.yaml`` (:numref:`Section %s `), and (3) ``set_predef_grid_params.py``. If a parameter is specified differently in these scripts, the file containing the last defined value will be used. +The ``setup.py`` script reads three other configuration scripts in order: (1) ``config_defaults.yaml`` (:numref:`Section %s `), (2) ``config.yaml`` (:numref:`Section %s `), and (3) ``set_predef_grid_params.py``. If a parameter is specified differently in these scripts, the file containing the last defined value will be used. The generated workflow will appear in ``$EXPTDIR``, where ``EXPTDIR=${EXPT_BASEDIR}/${EXPT_SUBDIR}``. These variables were specified in the ``config.yaml`` file in :numref:`Step %s `. The settings for these paths can also be viewed in the console output from the ``./generate_FV3LAM_wflow.py`` script or in the ``log.generate_FV3LAM_wflow`` file, which can be found in ``$EXPTDIR``. From 1f97b1592786a909ee06b52bcdf33e97332c0a6f Mon Sep 17 00:00:00 2001 From: gspetro Date: Tue, 18 Oct 2022 21:40:08 -0400 Subject: [PATCH 27/58] minor fixes --- docs/UsersGuide/source/ConfigWorkflow.rst | 2 ++ docs/UsersGuide/source/ContainerQuickstart.rst | 2 +- docs/UsersGuide/source/Quickstart.rst | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/UsersGuide/source/ConfigWorkflow.rst b/docs/UsersGuide/source/ConfigWorkflow.rst index 0a959bfe73..26fb27c527 100644 --- a/docs/UsersGuide/source/ConfigWorkflow.rst +++ b/docs/UsersGuide/source/ConfigWorkflow.rst @@ -87,7 +87,9 @@ If non-default parameters are selected for the variables in this section, they s The workflow scripts will create a symlink in the experiment directory that will point to a subdirectory (having the same name as the experiment grid) under this directory. This variable should be set to a null string in ``config_defaults.yaml``, but it can be changed in the user-specified workflow configuration file set by ``EXPT_CONFIG_FN`` (usually ``config.yaml``). .. Scripts and commands needed by workflow and tasks + ``ENV_INIT_SCRIPTS_FPS``: (Default: []) + ``PRE_TASK_CMDS``: (Default: "") .. COMMENT: Define! diff --git a/docs/UsersGuide/source/ContainerQuickstart.rst b/docs/UsersGuide/source/ContainerQuickstart.rst index 6a0559a540..8b72c079e5 100644 --- a/docs/UsersGuide/source/ContainerQuickstart.rst +++ b/docs/UsersGuide/source/ContainerQuickstart.rst @@ -326,7 +326,7 @@ From here, users can follow the steps below to configure the out-of-the-box SRW EXTRN_MDL_FILES_ICS: [] EXTRN_MDL_DATA_STORES: disk - On other systems, users will need to change the path for ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` and ``EXTRN_MDL_FILES_LBCS`` (below) to reflect the location of the system's data. The location of the machine's global data can be viewed :ref:`here ` for Level 1 systems. Alternatively, the user can add the path to their local data if they downloaded it as described in :numref:`Section %s `. + On other systems, users will need to change the path for ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` and ``EXTRN_MDL_FILES_LBCS`` (below) to reflect the location of the system's data. The location of the machine's global data can be viewed :ref:`here ` for Level 1 systems. Alternatively, the user can add the path to their local data if they downloaded it as described in :numref:`Section %s `. #. Edit the ``task_get_extrn_lbcs:`` section of the ``config.yaml`` to include the correct data paths to the lateral boundary conditions files. For example, on Hera, add: diff --git a/docs/UsersGuide/source/Quickstart.rst b/docs/UsersGuide/source/Quickstart.rst index 3669743f26..ca0479e82f 100644 --- a/docs/UsersGuide/source/Quickstart.rst +++ b/docs/UsersGuide/source/Quickstart.rst @@ -102,7 +102,7 @@ For a detailed explanation of how to build and run the SRW App on any supported Please do the following to activate conda: > conda activate regional_workflow - then the user should run ``conda activate regional_workflow`` to activate the ``regional_workflow`` environment. + then the user should run ``conda activate regional_workflow`` to activate the regional workflow environment. #. Generate the experiment workflow. From c74408d410a85288490cc96fd3a94262a51cf72d Mon Sep 17 00:00:00 2001 From: gspetro Date: Wed, 19 Oct 2022 18:18:19 -0400 Subject: [PATCH 28/58] minor updates --- docs/UsersGuide/source/ConfigWorkflow.rst | 3 +++ docs/UsersGuide/source/RunSRW.rst | 28 +++++++++++------------ 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/docs/UsersGuide/source/ConfigWorkflow.rst b/docs/UsersGuide/source/ConfigWorkflow.rst index 26fb27c527..f4eb8bac4d 100644 --- a/docs/UsersGuide/source/ConfigWorkflow.rst +++ b/docs/UsersGuide/source/ConfigWorkflow.rst @@ -91,6 +91,7 @@ If non-default parameters are selected for the variables in this section, they s ``ENV_INIT_SCRIPTS_FPS``: (Default: []) ``PRE_TASK_CMDS``: (Default: "") + Pre-task commands such as ``ulimit`` needed by tasks. For example: ``'{ ulimit -s unlimited; ulimit -a; }'`` .. COMMENT: Define! @@ -355,6 +356,8 @@ Forecast Parameters ``CYCL_HRS``: (Default: [ "HH1", "HH2" ] ) An array containing the hours of the day at which to launch forecasts. Forecasts are launched at these hours on each day from ``DATE_FIRST_CYCL`` to ``DATE_LAST_CYCL``, inclusive. Each element of this array must be a two-digit string representing an integer that is less than or equal to 23 (e.g., "00", "03", "12", "23"). +.. COMMENT: Delete CYCL_HRS + ``INCR_CYCL_FREQ``: (Default: 24) Increment in hours for cycle frequency (cycl_freq). The default is 24, which means cycl_freq=24:00:00. diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index db9583430b..159e328d57 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -358,14 +358,12 @@ settings. There is usually no need for a user to modify the default configuratio | | WTIME_VX_ENSPOINT_PROB, MAXTRIES_VX_ENSPOINT_PROB | +-----------------------------+-----------------------------------------------------------------------+ -.. COMMENT: Move the VX stuff to its own chapter? - .. _UserSpecificConfig: User-specific configuration: ``config.yaml`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -The user must specify certain basic information about the experiment in a ``config.yaml`` file located in the ``ufs-srweather-app/regional_workflow/ush`` directory. Two example templates are provided in that directory: ``config.community.yaml`` and ``config.nco.yaml``. The first file is a minimal example for creating and running an experiment in the *community* mode (with ``RUN_ENVIR`` set to ``community``). The second is an example for creating and running an experiment in the *NCO* (operational) mode (with ``RUN_ENVIR`` set to ``nco``). The *community* mode is recommended in most cases and is fully supported for this release. The operational/NCO mode is typically used by those at the NOAA/NCEP/Environmental Modeling Center (EMC) and the NOAA/Global Systems Laboratory (GSL) working on pre-implementation testing for the Rapid Refresh Forecast System (RRFS). :numref:`Table %s ` shows the configuration variables that appear in the ``config.community.yaml``, along with their default values in ``config_default.yaml`` and the values defined in ``config.community.yaml``. +The user must specify certain basic experiment configuration information in a ``config.yaml`` file located in the ``ufs-srweather-app/ush`` directory. Two example templates are provided in that directory: ``config.community.yaml`` and ``config.nco.yaml``. The first file is a minimal example for creating and running an experiment in *community* mode (with ``RUN_ENVIR`` set to ``community``). The second is an example for creating and running an experiment in the *NCO* (operational) mode (with ``RUN_ENVIR`` set to ``nco``). The *community* mode is recommended in most cases and is fully supported for this release. The operational/NCO mode is typically used by those at NOAA's Environmental Modeling Center (:term:`EMC`) and at the NOAA Global Systems Laboratory (GSL) working on pre-implementation testing for the Rapid Refresh Forecast System (RRFS). :numref:`Table %s ` shows the configuration variables that appear in the ``config.community.yaml``, along with their default values in ``config_default.yaml`` and the values defined in ``config.community.yaml``. .. _ConfigCommunity: @@ -374,17 +372,25 @@ The user must specify certain basic information about the experiment in a ``conf +--------------------------------+-------------------+----------------------------------------------------------------------------------+ | **Parameter** | **Default Value** | **config.community.yaml Value** | +================================+===================+==================================================================================+ + | RUN_ENVIR | "nco" | "community" | + +--------------------------------+-------------------+----------------------------------------------------------------------------------+ | MACHINE | "BIG_COMPUTER" | "hera" | +--------------------------------+-------------------+----------------------------------------------------------------------------------+ | ACCOUNT | "project_name" | "an_account" | +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | EXPT_SUBDIR | "" | "test_CONUS_25km_GFSv16" | + | EXPT_SUBDIR | "" | "test_community" | +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | COMPILER | "intel" | "intel" | + | CCPP_PHYS_SUITE | "FV3_GFS_v16" | "FV3_GFS_v16" | +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | VERBOSE | "TRUE" | "TRUE" | + | DATE_FIRST_CYCL | "YYYYMMDD" | '2019061518' | +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | RUN_ENVIR | "nco" | "community" | + | DATE_LAST_CYCL | "YYYYMMDD" | '2019061518' | + +--------------------------------+-------------------+----------------------------------------------------------------------------------+ + | CYCL_HRS | ["HH1", "HH2"] | 18 | + +--------------------------------+-------------------+----------------------------------------------------------------------------------+ + | COMPILER | "intel" | "intel" | + +--------------------------------+-------------------+----------------------------------------------------------------------------------+ + | VERBOSE | true | true | +--------------------------------+-------------------+----------------------------------------------------------------------------------+ | PREEXISTING_DIR_METHOD | "delete" | "rename" | +--------------------------------+-------------------+----------------------------------------------------------------------------------+ @@ -396,18 +402,10 @@ The user must specify certain basic information about the experiment in a ``conf +--------------------------------+-------------------+----------------------------------------------------------------------------------+ | QUILTING | "TRUE" | "TRUE" | +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | CCPP_PHYS_SUITE | "FV3_GFS_v16" | "FV3_GFS_v16" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ | FCST_LEN_HRS | "24" | "12" | +--------------------------------+-------------------+----------------------------------------------------------------------------------+ | LBC_SPEC_INTVL_HRS | "6" | "6" | +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | DATE_FIRST_CYCL | "YYYYMMDD" | "20190615" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | DATE_LAST_CYCL | "YYYYMMDD" | "20190615" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | CYCL_HRS | ("HH1" "HH2") | "18" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ | EXTRN_MDL_NAME_ICS | "FV3GFS" | "FV3GFS" | +--------------------------------+-------------------+----------------------------------------------------------------------------------+ | EXTRN_MDL_NAME_LBCS | "FV3GFS" | "FV3GFS" | From 5552857881ceb0ef5f472e4c7a470517c2c6fd13 Mon Sep 17 00:00:00 2001 From: gspetro Date: Thu, 20 Oct 2022 11:25:45 -0400 Subject: [PATCH 29/58] rm reg_wflow references, update tables, minor updates --- docs/UsersGuide/source/ConfigWorkflow.rst | 4 - docs/UsersGuide/source/RunSRW.rst | 504 +++++++--------------- 2 files changed, 156 insertions(+), 352 deletions(-) diff --git a/docs/UsersGuide/source/ConfigWorkflow.rst b/docs/UsersGuide/source/ConfigWorkflow.rst index b91f9c730b..3eeb1aae20 100644 --- a/docs/UsersGuide/source/ConfigWorkflow.rst +++ b/docs/UsersGuide/source/ConfigWorkflow.rst @@ -86,10 +86,6 @@ If non-default parameters are selected for the variables in this section, they s The workflow scripts will create a symlink in the experiment directory that will point to a subdirectory (having the same name as the experiment grid) under this directory. This variable should be set to a null string in ``config_defaults.yaml``, but it can be changed in the user-specified workflow configuration file set by ``EXPT_CONFIG_FN`` (usually ``config.yaml``). -.. Scripts and commands needed by workflow and tasks - -``ENV_INIT_SCRIPTS_FPS``: (Default: []) - ``PRE_TASK_CMDS``: (Default: "") Pre-task commands such as ``ulimit`` needed by tasks. For example: ``'{ ulimit -s unlimited; ulimit -a; }'`` diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index 06de425d19..43c0154fad 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -119,13 +119,12 @@ settings. There is usually no need for a user to modify the default configuratio .. _ConfigVarsDefault: -<<<<<<< HEAD:docs/UsersGuide/source/RunSRW.rst .. table:: Configuration variables specified in the config_defaults.yaml script +-----------------------------+-----------------------------------------------------------------------+ | **Group Name** | **Configuration variables** | +=============================+=======================================================================+ - | User | RUN_ENVIR, MACHINE, MACHINE_FILE, ACCOUNT | + | User | RUN_ENVIR, MACHINE, MACHINE_FILE, ACCOUNT | +-----------------------------+-----------------------------------------------------------------------+ | Platform | WORKFLOW_MANAGER, NCORES_PER_NODE, BUILD_MOD_FN, WFLOW_MOD_FN, | | | BUILD_VER_FN, RUN_VER_FN, SCHED, DOMAIN_PREGEN_BASEDIR, | @@ -150,7 +149,7 @@ settings. There is usually no need for a user to modify the default configuratio | | EXTRN_MDL_VAR_DEFNS_FN, WFLOW_LAUNCH_SCRIPT_FN, WFLOW_LAUNCH_LOG_FN | | | | | - Forecast | CCPP_PHYS_SUITE, GRID_GEN_METHOD, DATE_FIRST_CYCL, DATE_LAST_CYCL, | - | | CYCL_HRS, INCR_CYCL_FREQ, FCST_LEN_HRS | + | | INCR_CYCL_FREQ, FCST_LEN_HRS | | | | | - Verification | GET_OBS, VX_TN, VX_ENSGRID_TN, VX_ENSGRID_PROB_REFC_TN, | | | MAXTRIES_VX_ENSGRID_PROB_REFC | @@ -283,7 +282,7 @@ settings. There is usually no need for a user to modify the default configuratio | | LSM_SPP_TSCALE, LSM_SPP_LSCALE, ISEED_LSM_SPP, LSM_SPP_VAR_LIST, | | | LSM_SPP_MAG_LIST | | | | - | - Halo | HALO_BLEND | + | | HALO_BLEND | +-----------------------------+-----------------------------------------------------------------------+ | task_get_obs_ccpa | GET_OBS_CCPA_TN, NNODES_GET_OBS_CCPA, PPN_GET_OBS_CCPA, | | | WTIME_GET_OBS_CCPA, MAXTRIES_GET_OBS_CCPA | @@ -359,302 +358,111 @@ settings. There is usually no need for a user to modify the default configuratio | | WTIME_VX_ENSPOINT_PROB, MAXTRIES_VX_ENSPOINT_PROB | +-----------------------------+-----------------------------------------------------------------------+ -======= -.. table:: Configuration variables specified in the config_defaults.sh script. - - +----------------------+--------------------------------------------------------------+ - | **Group Name** | **Configuration variables** | - +======================+==============================================================+ - | Experiment mode | RUN_ENVIR | - +----------------------+--------------------------------------------------------------+ - | Machine and queue | MACHINE, MACHINE_FILE, ACCOUNT, COMPILER, SCHED, | - | | LMOD_PATH, NCORES_PER_NODE, BUILD_MOD_FN, WFLOW_MOD_FN, | - | | PARTITION_DEFAULT, CLUSTERS_DEFAULT, QUEUE_DEFAULT, | - | | PARTITION_HPSS, CLUSTERS_HPSS, QUEUE_HPSS, PARTITION_FCST, | - | | CLUSTERS_FCST, QUEUE_FCST | - +----------------------+--------------------------------------------------------------+ - | Workflow management | WORKFLOW_MANAGER, RUN_CMD_UTILS, RUN_CMD_FCST, RUN_CMD_POST | - +----------------------+--------------------------------------------------------------+ - | Cron | USE_CRON_TO_RELAUNCH, CRON_RELAUNCH_INTVL_MNTS | - +----------------------+--------------------------------------------------------------+ - | Directory parameters | EXPT_BASEDIR, EXPT_SUBDIR, EXEC_SUBDIR | - +----------------------+--------------------------------------------------------------+ - | NCO mode | COMINgfs, FIXLAM_NCO_BASEDIR, STMP, NET, envir, RUN, PTMP | - +----------------------+--------------------------------------------------------------+ - | Separator | DOT_OR_USCORE | - +----------------------+--------------------------------------------------------------+ - | File name | EXPT_CONFIG_FN, RGNL_GRID_NML_FN, DATA_TABLE_FN, | - | | DIAG_TABLE_FN, FIELD_TABLE_FN, FV3_NML_BASE_SUITE_FN, | - | | FV3_NML_YAML_CONFIG_FN, FV3_NML_BASE_ENS_FN, | - | | MODEL_CONFIG_FN, NEMS_CONFIG_FN, FV3_EXEC_FN, | - | | FCST_MODEL, WFLOW_XML_FN, GLOBAL_VAR_DEFNS_FN, | - | | EXTRN_MDL_ICS_VAR_DEFNS_FN, EXTRN_MDL_LBCS_VAR_DEFNS_FN, | - | | WFLOW_LAUNCH_SCRIPT_FN, WFLOW_LAUNCH_LOG_FN | - +----------------------+--------------------------------------------------------------+ - | Forecast | DATE_FIRST_CYCL, DATE_LAST_CYCL, INCR_CYCL_FREQ, | - | | FCST_LEN_HRS | - +----------------------+--------------------------------------------------------------+ - | IC/LBC | EXTRN_MDL_NAME_ICS, EXTRN_MDL_NAME_LBCS, | - | | LBC_SPEC_INTVL_HRS, EXTRN_MDL_ICS_OFFSET_HRS, | - | | EXTRN_MDL_LBCS_OFFSET_HRS, FV3GFS_FILE_FMT_ICS, | - | | FV3GFS_FILE_FMT_LBCS | - +----------------------+--------------------------------------------------------------+ - | NOMADS | NOMADS, NOMADS_file_type | - +----------------------+--------------------------------------------------------------+ - | External model | EXTRN_MDL_SYSBASEDIR_ICS, EXTRN_MDL_SYSBASEDIR_LBCS, | - | | USE_USER_STAGED_EXTRN_FILES, EXTRN_MDL_SOURCE_BASEDIR_ICS, | - | | EXTRN_MDL_FILES_ICS, EXTRN_MDL_SOURCE_BASEDIR_LBCS, | - | | EXTRN_MDL_FILES_LBCS | - +----------------------+--------------------------------------------------------------+ - | CCPP | CCPP_PHYS_SUITE | - +----------------------+--------------------------------------------------------------+ - | Stochastic physics | NEW_LSCALE, DO_SHUM, DO_SPPT, DO_SKEB, DO_SPP, DO_LSM_SPP, | - | | ISEED_SHUM, SHUM_MAG, SHUM_LSCALE, SHUM_TSCALE, SHUM_INT, | - | | ISEED_SPPT, SPPT_MAG, SPPT_LOGIT, SPPT_LSCALE, SPPT_TSCALE, | - | | SPPT_INT, SPPT_SFCLIMIT, USE_ZMTNBLCK, ISEED_SKEB, | - | | SKEB_MAG, SKEB_LSCALE, SKEP_TSCALE, SKEB_INT, SKEBNORM, | - | | SKEB_VDOF, ISEED_SPP, SPP_MAG_LIST, SPP_LSCALE, SPP_TSCALE, | - | | SPP_SIGTOP1, SPP_SIGTOP2, SPP_STDDEV_CUTOFF, SPP_VAR_LIST, | - | | LSM_SPP_TSCALE, LSM_SPP_LSCALE, ISEED_LSM_SPP, | - | | LSM_SPP_VAR_LIST, LSM_SPP_MAG_LIST, LSM_SPP_EACH_STEP | - +----------------------+--------------------------------------------------------------+ - | GRID | GRID_GEN_METHOD, PREDEF_GRID_NAME | - +----------------------+--------------------------------------------------------------+ - | ESG grid | ESGgrid_LON_CTR, ESGgrid_LAT_CTR, ESGgrid_DELX, | - | | ESGgrid_DELY, ESGgrid_NX, ESGgrid_NY, ESGgrid_PAZI | - | | ESGgrid_WIDE_HALO_WIDTH | - +----------------------+--------------------------------------------------------------+ - | GFDL grid | GFDLgrid_LON_T6_CTR, GFDLgrid_LAT_T6_CTR, GFDLgrid_RES, | - | | GFDLgrid_STRETCH_FAC, GFDLgrid_REFINE_RATIO, | - | | GFDLgrid_ISTART_OF_RGNL_DOM_ON_T6G, | - | | GFDLgrid_IEND_OF_RGNL_DOM_ON_T6G, | - | | GFDLgrid_JSTART_OF_RGNL_DOM_ON_T6G, | - | | GFDLgrid_JEND_OF_RGNL_DOM_ON_T6G, | - | | GFDLgrid_USE_GFDLgrid_RES_IN_FILENAMES | - +----------------------+--------------------------------------------------------------+ - | Input configuration | DT_ATMOS, RESTART_INTERVAL, WRITE_DOPOST, LAYOUT_X, | - | | LAYOUT_Y, BLOCKSIZE, QUILTING, | - | | PRINT_ESMF, WRTCMP_write_groups, | - | | WRTCMP_write_tasks_per_group, WRTCMP_output_grid, | - | | WRTCMP_cen_lon, WRTCMP_cen_lat, WRTCMP_lon_lwr_left, | - | | WRTCMP_lat_lwr_left, WRTCMP_lon_upr_rght, | - | | WRTCMP_lat_upr_rght, WRTCMP_dlon, WRTCMP_dlat, | - | | WRTCMP_stdlat1, WRTCMP_stdlat2, WRTCMP_nx, WRTCMP_ny, | - | | WRTCMP_dx, WRTCMP_dy | - +----------------------+--------------------------------------------------------------+ - | Experiment generation| PREEXISTING_DIR_METHOD, VERBOSE, DEBUG | - +----------------------+--------------------------------------------------------------+ - | Cycle-independent | RUN_TASK_MAKE_GRID, GRID_DIR, RUN_TASK_MAKE_OROG, | - | | OROG_DIR, RUN_TASK_MAKE_SFC_CLIMO, SFC_CLIMO_DIR | - +----------------------+--------------------------------------------------------------+ - | Cycle dependent | RUN_TASK_GET_EXTRN_ICS, RUN_TASK_GET_EXTRN_LBCS, | - | | RUN_TASK_MAKE_ICS, RUN_TASK_MAKE_LBCS, RUN_TASK_RUN_FCST, | - | | RUN_TASK_RUN_POST | - +----------------------+--------------------------------------------------------------+ - | VX run tasks | RUN_TASK_GET_OBS_CCPA, RUN_TASK_GET_OBS_MRMS, | - | | RUN_TASK_GET_OBS_NDAS, RUN_TASK_VX_GRIDSTAT, | - | | RUN_TASK_VX_POINTSTAT, RUN_TASK_VX_ENSGRID, | - | | RUN_TASK_VX_ENSPOINT | - +----------------------+--------------------------------------------------------------+ - | Fixed File Parameters| FIXgsm, FIXaer, FIXlut, TOPO_DIR, SFC_CLIMO_INPUT_DIR, | - | | FNGLAC, FNMXIC, FNTSFC, FNSNOC, FNZORC, | - | | FNAISC, FNSMCC, FNMSKH, FIXgsm_FILES_TO_COPY_TO_FIXam, | - | | FV3_NML_VARNAME_TO_FIXam_FILES_MAPPING, | - | | FV3_NML_VARNAME_TO_SFC_CLIMO_FIELD_MAPPING, | - | | CYCLEDIR_LINKS_TO_FIXam_FILES_MAPPING | - +----------------------+--------------------------------------------------------------+ - | Workflow tasks | MAKE_GRID_TN, MAKE_OROG_TN, MAKE_SFC_CLIMO_TN, | - | | GET_EXTRN_ICS_TN, GET_EXTRN_LBCS_TN, MAKE_ICS_TN, | - | | MAKE_LBCS_TN, RUN_FCST_TN, RUN_POST_TN | - +----------------------+--------------------------------------------------------------+ - | Verification tasks | GET_OBS, GET_OBS_CCPA_TN, GET_OBS_MRMS_TN, GET_OBS_NDAS_TN, | - | | VX_TN, VX_GRIDSTAT_TN, VX_GRIDSTAT_REFC_TN, | - | | VX_GRIDSTAT_RETOP_TN, VX_GRIDSTAT_##h_TN, VX_POINTSTAT_TN, | - | | VX_ENSGRID_TN, VX_ENSGRID_##h_TN, VX_ENSGRID_REFC_TN, | - | | VX_ENSGRID_RETOP_TN, VX_ENSGRID_MEAN_TN, VX_ENSGRID_PROB_TN, | - | | VX_ENSGRID_MEAN_##h_TN, VX_ENSGRID_PROB_03h_TN, | - | | VX_ENSGRID_PROB_REFC_TN, VX_ENSGRID_PROB_RETOP_TN, | - | | VX_ENSPOINT_TN, VX_ENSPOINT_MEAN_TN, VX_ENSPOINT_PROB_TN | - +----------------------+--------------------------------------------------------------+ - | NODE | NNODES_MAKE_GRID, NNODES_MAKE_OROG, NNODES_MAKE_SFC_CLIMO, | - | | NNODES_GET_EXTRN_ICS, NNODES_GET_EXTRN_LBCS, | - | | NNODES_MAKE_ICS, NNODES_MAKE_LBCS, NNODES_RUN_FCST, | - | | NNODES_RUN_POST, NNODES_GET_OBS_CCPA, NNODES_GET_OBS_MRMS, | - | | NNODES_GET_OBS_NDAS, NNODES_VX_GRIDSTAT, | - | | NNODES_VX_POINTSTAT, NNODES_VX_ENSGRID, | - | | NNODES_VX_ENSGRID_MEAN, NNODES_VX_ENSGRID_PROB, | - | | NNODES_VX_ENSPOINT, NNODES_VX_ENSPOINT_MEAN, | - | | NNODES_VX_ENSPOINT_PROB | - +----------------------+--------------------------------------------------------------+ - | MPI processes | PPN_MAKE_GRID, PPN_MAKE_OROG, PPN_MAKE_SFC_CLIMO, | - | | PPN_GET_EXTRN_ICS, PPN_GET_EXTRN_LBCS, PPN_MAKE_ICS, | - | | PPN_MAKE_LBCS, PPN_RUN_FCST, PPN_RUN_POST, | - | | PPN_GET_OBS_CCPA, PPN_GET_OBS_MRMS, PPN_GET_OBS_NDAS, | - | | PPN_VX_GRIDSTAT, PPN_VX_POINTSTAT, PPN_VX_ENSGRID, | - | | PPN_VX_ENSGRID_MEAN, PPN_VX_ENSGRID_PROB, PPN_VX_ENSPOINT, | - | | PPN_VX_ENSPOINT_MEAN, PPN_VX_ENSPOINT_PROB | - +----------------------+--------------------------------------------------------------+ - | Walltime | WTIME_MAKE_GRID, WTIME_MAKE_OROG, WTIME_MAKE_SFC_CLIMO, | - | | WTIME_GET_EXTRN_ICS, WTIME_GET_EXTRN_LBCS, WTIME_MAKE_ICS, | - | | WTIME_MAKE_LBCS, WTIME_RUN_FCST, WTIME_RUN_POST, | - | | WTIME_GET_OBS_CCPA, WTIME_GET_OBS_MRMS, WTIME_GET_OBS_NDAS, | - | | WTIME_VX_GRIDSTAT, WTIME_VX_POINTSTAT, WTIME_VX_ENSGRID, | - | | WTIME_VX_ENSGRID_MEAN, WTIME_VX_ENSGRID_PROB, | - | | WTIME_VX_ENSPOINT, WTIME_VX_ENSPOINT_MEAN, | - | | WTIME_VX_ENSPOINT_PROB | - +----------------------+--------------------------------------------------------------+ - | Maximum attempt | MAXTRIES_MAKE_GRID, MAXTRIES_MAKE_OROG, | - | | MAXTRIES_MAKE_SFC_CLIMO, MAXTRIES_GET_EXTRN_ICS, | - | | MAXTRIES_GET_EXTRN_LBCS, MAXTRIES_MAKE_ICS, | - | | MAXTRIES_MAKE_LBCS, MAXTRIES_RUN_FCST, MAXTRIES_RUN_POST, | - | | MAXTRIES_GET_OBS_CCPA, MAXTRIES_GET_OBS_MRMS, | - | | MAXTRIES_GET_OBS_NDAS, MAXTRIES_VX_GRIDSTAT, | - | | MAXTRIES_VX_GRIDSTAT_REFC, MAXTRIES_VX_GRIDSTAT_RETOP, | - | | MAXTRIES_VX_GRIDSTAT_##h, MAXTRIES_VX_POINTSTAT, | - | | MAXTRIES_VX_ENSGRID, MAXTRIES_VX_ENSGRID_REFC, | - | | MAXTRIES_VX_ENSGRID_RETOP, MAXTRIES_VX_ENSGRID_##h, | - | | MAXTRIES_VX_ENSGRID_MEAN, MAXTRIES_VX_ENSGRID_PROB, | - | | MAXTRIES_VX_ENSGRID_MEAN_##h, MAXTRIES_VX_ENSGRID_PROB_##h, | - | | MAXTRIES_VX_ENSGRID_PROB_REFC, | - | | MAXTRIES_VX_ENSGRID_PROB_RETOP, MAXTRIES_VX_ENSPOINT, | - | | MAXTRIES_VX_ENSPOINT_MEAN, MAXTRIES_VX_ENSPOINT_PROB | - +----------------------+--------------------------------------------------------------+ - | Climatology | SFC_CLIMO_FIELDS, USE_MERRA_CLIMO | - +----------------------+--------------------------------------------------------------+ - | CRTM | USE_CRTM, CRTM_DIR | - +----------------------+--------------------------------------------------------------+ - | Post configuration | USE_CUSTOM_POST_CONFIG_FILE, CUSTOM_POST_CONFIG_FP, | - | | SUB_HOURLY_POST, DT_SUB_HOURLY_POST_MNTS | - +----------------------+--------------------------------------------------------------+ - | METplus | MODEL, MET_INSTALL_DIR, MET_BIN_EXEC, METPLUS_PATH, | - | | CCPA_OBS_DIR, MRMS_OBS_DIR, NDAS_OBS_DIR | - +----------------------+--------------------------------------------------------------+ - | Running ensembles | DO_ENSEMBLE, NUM_ENS_MEMBERS | - +----------------------+--------------------------------------------------------------+ - | Boundary blending | HALO_BLEND | - +----------------------+--------------------------------------------------------------+ - | FVCOM | USE_FVCOM, FVCOM_WCSTART, FVCOM_DIR, FVCOM_FILE | - +----------------------+--------------------------------------------------------------+ - | Thread Affinity | KMP_AFFINITY_*, OMP_NUM_THREADS_*, OMP_STACKSIZE_* | - +----------------------+--------------------------------------------------------------+ - - ->>>>>>> 6089f69fce191d29d4b1bbdb9a97f2a4e58a1c37:docs/UsersGuide/source/BuildRunSRW.rst .. _UserSpecificConfig: User-specific configuration: ``config.yaml`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -The user must specify certain basic experiment configuration information in a ``config.yaml`` file located in the ``ufs-srweather-app/ush`` directory. Two example templates are provided in that directory: ``config.community.yaml`` and ``config.nco.yaml``. The first file is a minimal example for creating and running an experiment in *community* mode (with ``RUN_ENVIR`` set to ``community``). The second is an example for creating and running an experiment in the *NCO* (operational) mode (with ``RUN_ENVIR`` set to ``nco``). The *community* mode is recommended in most cases and is fully supported for this release. The operational/NCO mode is typically used by those at NOAA's Environmental Modeling Center (:term:`EMC`) and at the NOAA Global Systems Laboratory (GSL) working on pre-implementation testing for the Rapid Refresh Forecast System (RRFS). :numref:`Table %s ` shows the configuration variables that appear in the ``config.community.yaml``, along with their default values in ``config_default.yaml`` and the values defined in ``config.community.yaml``. +The user must specify certain basic experiment configuration information in a ``config.yaml`` file located in the ``ufs-srweather-app/ush`` directory. Two example templates are provided in that directory: ``config.community.yaml`` and ``config.nco.yaml``. The first file is a minimal example for creating and running an experiment in *community* mode (with ``RUN_ENVIR`` set to ``community``). The second is an example for creating and running an experiment in the *NCO* (operational) mode (with ``RUN_ENVIR`` set to ``nco``). The *community* mode is recommended in most cases and is fully supported for this release. The operational/NCO mode is typically used by those at NOAA's Environmental Modeling Center (:term:`EMC`) and at the NOAA Global Systems Laboratory (GSL) working on pre-implementation testing for the Rapid Refresh Forecast System (RRFS). :numref:`Table %s ` compares the configuration variables that appear in the ``config.community.yaml`` with their default values in ``config_default.yaml``. .. _ConfigCommunity: .. table:: Configuration variables specified in the config.community.yaml script - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | **Parameter** | **Default Value** | **config.community.yaml Value** | - +================================+===================+==================================================================================+ - | RUN_ENVIR | "nco" | "community" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | MACHINE | "BIG_COMPUTER" | "hera" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | ACCOUNT | "project_name" | "an_account" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | EXPT_SUBDIR | "" | "test_community" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | CCPP_PHYS_SUITE | "FV3_GFS_v16" | "FV3_GFS_v16" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | DATE_FIRST_CYCL | "YYYYMMDD" | '2019061518' | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | DATE_LAST_CYCL | "YYYYMMDD" | '2019061518' | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | COMPILER | "intel" | "intel" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | VERBOSE | true | true | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | PREEXISTING_DIR_METHOD | "delete" | "rename" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | PREDEF_GRID_NAME | "" | "RRFS_CONUS_25km" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | DO_ENSEMBLE | "FALSE" | "FALSE" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | NUM_ENS_MEMBERS | "1" | "2" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | QUILTING | "TRUE" | "TRUE" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | FCST_LEN_HRS | "24" | "12" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | LBC_SPEC_INTVL_HRS | "6" | "6" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | EXTRN_MDL_NAME_ICS | "FV3GFS" | "FV3GFS" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | EXTRN_MDL_NAME_LBCS | "FV3GFS" | "FV3GFS" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | FV3GFS_FILE_FMT_ICS | "nemsio" | "grib2" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | FV3GFS_FILE_FMT_LBCS | "nemsio" | "grib2" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | WTIME_RUN_FCST | "04:30:00" | "02:00:00" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | USE_USER_STAGED_EXTRN_FILES | "FALSE" | "TRUE" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | EXTRN_MDL_SOURCE_BASEDIR_ICS | "" | "/scratch2/BMC/det/UFS_SRW_App/develop/input_model_data/FV3GFS/grib2/2019061518" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | EXTRN_MDL_FILES_ICS | "" | "gfs.pgrb2.0p25.f000" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | EXTRN_MDL_SOURCE_BASEDIR_LBCS | "" | "/scratch2/BMC/det/UFS_SRW_App/develop/input_model_data/FV3GFS/grib2/2019061518" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | EXTRN_MDL_FILES_LBCS | "" | "gfs.pgrb2.0p25.f006" "gfs.pgrb2.0p25.f012" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | MODEL | "" | FV3_GFS_v16_CONUS_25km" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | METPLUS_PATH | "" | "/path/to/METPlus" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | MET_INSTALL_DIR | "" | "/path/to/MET" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | CCPA_OBS_DIR | "" | "/path/to/processed/CCPA/data" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | MRMS_OBS_DIR | "" | "/path/to/processed/MRMS/data" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | NDAS_OBS_DIR | "" | "/path/to/processed/NDAS/data" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | RUN_TASK_MAKE_GRID | "TRUE" | "TRUE" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | RUN_TASK_MAKE_OROG | "TRUE" | "TRUE" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | RUN_TASK_MAKE_SFC_CLIMO | "TRUE" | "TRUE" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | RUN_TASK_GET_OBS_CCPA | "FALSE" | "FALSE" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | RUN_TASK_GET_OBS_MRMS | "FALSE" | "FALSE" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | RUN_TASK_GET_OBS_NDAS | "FALSE" | "FALSE" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | RUN_TASK_VX_GRIDSTAT | "FALSE" | "FALSE" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | RUN_TASK_VX_POINTSTAT | "FALSE" | "FALSE" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | RUN_TASK_VX_ENSGRID | "FALSE" | "FALSE" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - | RUN_TASK_VX_ENSPOINT | "FALSE" | "FALSE" | - +--------------------------------+-------------------+----------------------------------------------------------------------------------+ - + +--------------------------------+-------------------+------------------------------------+ + | **Parameter** | **Default Value** | **config.community.yaml Value** | + +================================+===================+====================================+ + | RUN_ENVIR | "nco" | "community" | + +--------------------------------+-------------------+------------------------------------+ + | MACHINE | "BIG_COMPUTER" | "hera" | + +--------------------------------+-------------------+------------------------------------+ + | ACCOUNT | "project_name" | "an_account" | + +--------------------------------+-------------------+------------------------------------+ + | MODEL | "" | "FV3_GFS_v16_CONUS_25km" | + +--------------------------------+-------------------+------------------------------------+ + | METPLUS_PATH | "" | "" | + +--------------------------------+-------------------+------------------------------------+ + | MET_INSTALL_DIR | "" | "" | + +--------------------------------+-------------------+------------------------------------+ + | CCPA_OBS_DIR | "" | "" | + +--------------------------------+-------------------+------------------------------------+ + | MRMS_OBS_DIR | "" | "" | + +--------------------------------+-------------------+------------------------------------+ + | NDAS_OBS_DIR | "" | "" | + +--------------------------------+-------------------+------------------------------------+ + | EXPT_SUBDIR | "" | "test_community" | + +--------------------------------+-------------------+------------------------------------+ + | CCPP_PHYS_SUITE | "FV3_GFS_v16" | "FV3_GFS_v16" | + +--------------------------------+-------------------+------------------------------------+ + | DATE_FIRST_CYCL | "YYYYMMDDHH" | '2019061518' | + +--------------------------------+-------------------+------------------------------------+ + | DATE_LAST_CYCL | "YYYYMMDDHH" | '2019061518' | + +--------------------------------+-------------------+------------------------------------+ + | FCST_LEN_HRS | 24 | 12 | + +--------------------------------+-------------------+------------------------------------+ + | PREEXISTING_DIR_METHOD | "delete" | "rename" | + +--------------------------------+-------------------+------------------------------------+ + | VERBOSE | true | true | + +--------------------------------+-------------------+------------------------------------+ + | COMPILER | "intel" | "intel" | + +--------------------------------+-------------------+------------------------------------+ + | RUN_TASK_MAKE_GRID | true | true | + +--------------------------------+-------------------+------------------------------------+ + | RUN_TASK_MAKE_OROG | true | true | + +--------------------------------+-------------------+------------------------------------+ + | RUN_TASK_MAKE_SFC_CLIMO | true | true | + +--------------------------------+-------------------+------------------------------------+ + | RUN_TASK_GET_OBS_CCPA | false | false | + +--------------------------------+-------------------+------------------------------------+ + | RUN_TASK_GET_OBS_MRMS | false | false | + +--------------------------------+-------------------+------------------------------------+ + | RUN_TASK_GET_OBS_NDAS | false | false | + +--------------------------------+-------------------+------------------------------------+ + | RUN_TASK_VX_GRIDSTAT | false | false | + +--------------------------------+-------------------+------------------------------------+ + | RUN_TASK_VX_POINTSTAT | false | false | + +--------------------------------+-------------------+------------------------------------+ + | RUN_TASK_VX_ENSGRID | false | false | + +--------------------------------+-------------------+------------------------------------+ + | RUN_TASK_VX_ENSPOINT | false | false | + +--------------------------------+-------------------+------------------------------------+ + | EXTRN_MDL_NAME_ICS | "FV3GFS" | "FV3GFS" | + +--------------------------------+-------------------+------------------------------------+ + | FV3GFS_FILE_FMT_ICS | "nemsio" | "grib2" | + +--------------------------------+-------------------+------------------------------------+ + | EXTRN_MDL_NAME_LBCS | "FV3GFS" | "FV3GFS" | + +--------------------------------+-------------------+------------------------------------+ + | FV3GFS_FILE_FMT_LBCS | "nemsio" | "grib2" | + +--------------------------------+-------------------+------------------------------------+ + | LBC_SPEC_INTVL_HRS | 6 | 6 | + +--------------------------------+-------------------+------------------------------------+ + | WTIME_RUN_FCST | "04:30:00" | "02:00:00" | + +--------------------------------+-------------------+------------------------------------+ + | QUILTING | true | true | + +--------------------------------+-------------------+------------------------------------+ + | PREDEF_GRID_NAME | "" | "RRFS_CONUS_25km" | + +--------------------------------+-------------------+------------------------------------+ + | DO_ENSEMBLE | false | false | + +--------------------------------+-------------------+------------------------------------+ + | NUM_ENS_MEMBERS | 1 | 2 | + +--------------------------------+-------------------+------------------------------------+ + To get started, make a copy of ``config.community.yaml``. From the ``ufs-srweather-app`` directory, run: .. code-block:: console - cd $SRW/regional_workflow/ush + cd $SRW/ush cp config.community.yaml config.yaml The default settings in this file include a predefined 25-km :term:`CONUS` grid (RRFS_CONUS_25km), the :term:`GFS` v16 physics suite (FV3_GFS_v16 :term:`CCPP`), and :term:`FV3`-based GFS raw external model data for initialization. -Next, edit the new ``config.yaml`` file to customize it for your machine. At a minimum, change the ``MACHINE`` and ``ACCOUNT`` variables; then choose a name for the experiment directory by setting ``EXPT_SUBDIR``. If you have pre-staged initialization data for the experiment, set ``USE_USER_STAGED_EXTRN_FILES="TRUE"``, and set the paths to the data for ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` and ``EXTRN_MDL_SOURCE_BASEDIR_LBCS``. If the modulefile used to set up the build environment in :numref:`Section %s ` uses a GNU compiler, check that the line ``COMPILER="gnu"`` appears in the ``config.yaml`` file. On platforms where Rocoto and :term:`cron` are available, users can automate resubmission of their experiment workflow by adding the following lines to the ``config.yaml`` file: +Next, edit the new ``config.yaml`` file to customize it for your machine. At a minimum, change the ``MACHINE`` and ``ACCOUNT`` variables; then choose a name for the experiment directory by setting ``EXPT_SUBDIR``. If you have pre-staged initialization data for the experiment, set ``USE_USER_STAGED_EXTRN_FILES: true``, and set the paths to the data for ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` and ``EXTRN_MDL_SOURCE_BASEDIR_LBCS``. If the modulefile used to set up the build environment in :numref:`Section %s ` uses a GNU compiler, check that the line ``COMPILER="gnu"`` appears in the ``config.yaml`` file. On platforms where Rocoto and :term:`cron` are available, users can automate resubmission of their experiment workflow by adding the following lines to the ``config.yaml`` file: .. code-block:: console - USE_CRON_TO_RELAUNCH="TRUE" - CRON_RELAUNCH_INTVL_MNTS="03" + USE_CRON_TO_RELAUNCH: true + CRON_RELAUNCH_INTVL_MNTS: 3 .. note:: @@ -674,12 +482,12 @@ Minimum parameter settings for running the out-of-the-box SRW App case on Level .. code-block:: console - MACHINE="cheyenne" - ACCOUNT="" - EXPT_SUBDIR="" - USE_USER_STAGED_EXTRN_FILES="TRUE" - EXTRN_MDL_SOURCE_BASEDIR_ICS="/glade/p/ral/jntp/UFS_SRW_App/develop/input_model_data///" - EXTRN_MDL_SOURCE_BASEDIR_LBCS="/glade/p/ral/jntp/UFS_SRW_App/develop/input_model_data///" + MACHINE: "cheyenne" + ACCOUNT: "" + EXPT_SUBDIR: "" + USE_USER_STAGED_EXTRN_FILES: true + EXTRN_MDL_SOURCE_BASEDIR_ICS: "/glade/p/ral/jntp/UFS_SRW_App/develop/input_model_data///" + EXTRN_MDL_SOURCE_BASEDIR_LBCS: "/glade/p/ral/jntp/UFS_SRW_App/develop/input_model_data///" where: * ```` refers to a valid account name. @@ -691,7 +499,7 @@ where: **Hera, Jet, Orion, Gaea:** -The ``MACHINE``, ``ACCOUNT``, and ``EXPT_SUBDIR`` settings are the same as for Cheyenne, except that ``"cheyenne"`` should be switched to ``"hera"``, ``"jet"``, ``"orion"``, or ``"gaea"``, respectively. Set ``USE_USER_STAGED_EXTRN_FILES="TRUE"``, but replace the file paths to Cheyenne's data with the file paths for the correct machine. ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` and ``EXTRN_MDL_SOURCE_BASEDIR_LBCS`` use the same base file path. +The ``MACHINE``, ``ACCOUNT``, and ``EXPT_SUBDIR`` settings are the same as for Cheyenne, except that ``"cheyenne"`` should be switched to ``"hera"``, ``"jet"``, ``"orion"``, or ``"gaea"``, respectively. Set ``USE_USER_STAGED_EXTRN_FILES: true``, but replace the file paths to Cheyenne's data with the file paths for the correct machine. ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` and ``EXTRN_MDL_SOURCE_BASEDIR_LBCS`` use the same base file path. On Hera: @@ -721,35 +529,35 @@ On **WCOSS** systems, edit ``config.yaml`` with these WCOSS-specific parameters, .. code-block:: console - MACHINE="wcoss2" - ACCOUNT="valid_wcoss_project_code" - EXPT_SUBDIR="my_expt_name" - USE_USER_STAGED_EXTRN_FILES="TRUE" + MACHINE: "wcoss2" + ACCOUNT: "valid_wcoss_project_code" + EXPT_SUBDIR: "my_expt_name" + USE_USER_STAGED_EXTRN_FILES: true On WCOSS2: .. code-block:: console - EXTRN_MDL_SOURCE_BASEDIR_ICS="/lfs/h2/emc/lam/noscrub/UFS_SRW_App/develop/input_model_data///YYYYMMDDHH/ICS" - EXTRN_MDL_SOURCE_BASEDIR_LBCS="/lfs/h2/emc/lam/noscrub/UFS_SRW_App/develop/input_model_data///YYYYMMDDHH/LBCS" + EXTRN_MDL_SOURCE_BASEDIR_ICS: "/lfs/h2/emc/lam/noscrub/UFS_SRW_App/develop/input_model_data///YYYYMMDDHH/ICS" + EXTRN_MDL_SOURCE_BASEDIR_LBCS: "/lfs/h2/emc/lam/noscrub/UFS_SRW_App/develop/input_model_data///YYYYMMDDHH/LBCS" On NOAA Cloud Systems: .. code-block:: console - MACHINE="NOAACLOUD" - ACCOUNT="none" - EXPT_SUBDIR="" - USE_USER_STAGED_EXTRN_FILES="TRUE" - EXTRN_MDL_SOURCE_BASEDIR_ICS="/contrib/EPIC/UFS_SRW_App/develop/input_model_data////" - EXTRN_MDL_FILES_ICS=( "gfs.t18z.pgrb2.0p25.f000" ) - EXTRN_MDL_SOURCE_BASEDIR_LBCS="/contrib/EPIC/UFS_SRW_App/develop/input_model_data////" - EXTRN_MDL_FILES_LBCS=( "gfs.t18z.pgrb2.0p25.f006" "gfs.t18z.pgrb2.0p25.f012" ) + MACHINE: "NOAACLOUD" + ACCOUNT: "none" + EXPT_SUBDIR: "" + USE_USER_STAGED_EXTRN_FILES: true + EXTRN_MDL_SOURCE_BASEDIR_ICS: "/contrib/EPIC/UFS_SRW_App/develop/input_model_data////" + EXTRN_MDL_FILES_ICS: ( "gfs.t18z.pgrb2.0p25.f000" ) + EXTRN_MDL_SOURCE_BASEDIR_LBCS: "/contrib/EPIC/UFS_SRW_App/develop/input_model_data////" + EXTRN_MDL_FILES_LBCS: ( "gfs.t18z.pgrb2.0p25.f006" "gfs.t18z.pgrb2.0p25.f012" ) .. note:: The values of the configuration variables should be consistent with those in the - ``valid_param_vals.yaml`` script. In addition, various sample configuration files can be found in the ``regional_workflow/tests/baseline_configs`` directory. + ``valid_param_vals.yaml`` script. In addition, various sample configuration files can be found in the ``ush/tests/baseline_configs`` directory. To configure an experiment and python environment for a general Linux or Mac system, see the :ref:`next section `. To configure an experiment to run METplus verification tasks, see :numref:`Section %s `. Otherwise, skip to :numref:`Section %s `. @@ -791,7 +599,7 @@ Users should ensure that the following packages are installed and up-to-date: python3 -m ensurepip --default-pip python3 -m pip install ruby OR(on MacOS only): brew install ruby -Users must create a virtual environment (``regional_workflow``), store it in their ``$HOME/venv/`` directory, and install additional python packages: +Users must create a virtual regional workflow environment, store it in their ``$HOME/venv/`` directory, and install additional python packages: .. code-block:: console @@ -821,7 +629,7 @@ Configure an experiment using a template. Copy the contents of ``config.communit .. code-block:: console - cd $SRW/regional_workflow/ush + cd $SRW/ush cp config.community.yaml config.yaml In the ``config.yaml`` file, set ``MACHINE="macos"`` or ``MACHINE="linux"``, and modify the account and experiment info. For example: @@ -832,12 +640,12 @@ In the ``config.yaml`` file, set ``MACHINE="macos"`` or ``MACHINE="linux"``, and ACCOUNT="user" EXPT_SUBDIR="" COMPILER="gnu" - VERBOSE="TRUE" + VERBOSE: true RUN_ENVIR="community" PREEXISTING_DIR_METHOD="rename" PREDEF_GRID_NAME="RRFS_CONUS_25km" - QUILTING="TRUE" + QUILTING: true Due to the limited number of processors on MacOS systems, users must also configure the domain decomposition defaults (usually, there are only 8 CPUs in M1-family chips and 4 CPUs for x86_64). @@ -864,7 +672,7 @@ For :ref:`Option 2 `, add the following information to ``config.yaml **Configure the Machine File** -Configure a ``macos.yaml`` or ``linux.yaml`` machine file in ``$SRW/regional_workflow/ush/machine/`` based on the number of CPUs (````) in the system (usually 8 or 4 in MacOS; varies on Linux systems). Job scheduler (``SCHED``) options can be viewed :ref:`here `. Users must also set the path to the fix file directories. +Configure a ``macos.yaml`` or ``linux.yaml`` machine file in ``$SRW/ush/machine/`` based on the number of CPUs (````) in the system (usually 8 or 4 in MacOS; varies on Linux systems). Job scheduler (``SCHED``) options can be viewed :ref:`here `. Users must also set the path to the fix file directories. .. code-block:: console @@ -903,7 +711,7 @@ Users who want to use the METplus verification suite to evaluate their forecasts METplus *installation* is not included as part of the build process for this release of the SRW App. However, METplus is preinstalled on many `Level 1 & 2 `__ systems. For the v2.0.0 release, METplus *use* is supported on systems with a functioning METplus installation, although installation itself is not supported. For more information about METplus, see :numref:`Section %s `. .. note:: - If METplus users update their METplus installation, they must update the module load statements in ``ufs-srweather-app/regional_workflow/modulefiles/tasks//run_vx.local`` file to correspond to their system's updated installation: + If METplus users update their METplus installation, they must update the module load statements in ``ufs-srweather-app/modulefiles/tasks//run_vx.local`` file to correspond to their system's updated installation: .. code-block:: console @@ -924,9 +732,9 @@ Users who have already staged the observation data needed for METplus (i.e., the CCPA_OBS_DIR="/path/to/UFS_SRW_App/develop/obs_data/ccpa/proc" MRMS_OBS_DIR="/path/to/UFS_SRW_App/develop/obs_data/mrms/proc" NDAS_OBS_DIR="/path/to/UFS_SRW_App/develop/obs_data/ndas/proc" - RUN_TASK_GET_OBS_CCPA="FALSE" - RUN_TASK_GET_OBS_MRMS="FALSE" - RUN_TASK_GET_OBS_NDAS="FALSE" + RUN_TASK_GET_OBS_CCPA: false + RUN_TASK_GET_OBS_MRMS: false + RUN_TASK_GET_OBS_NDAS: false If users have access to NOAA :term:`HPSS` but have not pre-staged the data, they can simply set the ``RUN_TASK_GET_OBS_*`` tasks to "TRUE", and the machine will attempt to download the appropriate data from NOAA HPSS. The ``*_OBS_DIR`` paths must be set to the location where users want the downloaded data to reside. @@ -936,10 +744,10 @@ Next, the verification tasks must be turned on according to the user's needs. Us .. code-block:: console - RUN_TASK_VX_GRIDSTAT="TRUE" - RUN_TASK_VX_POINTSTAT="TRUE" - RUN_TASK_VX_ENSGRID="TRUE" - RUN_TASK_VX_ENSPOINT="TRUE" + RUN_TASK_VX_GRIDSTAT: true + RUN_TASK_VX_POINTSTAT: true + RUN_TASK_VX_ENSGRID: true + RUN_TASK_VX_ENSPOINT: true These tasks are independent, so users may set some values to "TRUE" and others to "FALSE" depending on the needs of their experiment. Note that the ENSGRID and ENSPOINT tasks apply only to ensemble model verification. Additional verification tasks appear in :numref:`Table %s `. More details on all of the parameters in this section are available in :numref:`Section %s `. @@ -997,7 +805,7 @@ However, it may instead be necessary to make additional adjustments to the ``wfl Generate the Regional Workflow ------------------------------------------- -Run the following command from the ``ufs-srweather-app/regional_workflow/ush`` directory to generate the workflow: +Run the following command from the ``ufs-srweather-app/ush`` directory to generate the workflow: .. code-block:: console @@ -1005,7 +813,7 @@ Run the following command from the ``ufs-srweather-app/regional_workflow/ush`` d The last line of output from this script, starting with ``*/1 * * * *`` or ``*/3 * * * *``, can be saved and :ref:`used later ` to automatically run portions of the workflow if users have the Rocoto workflow manager installed on their system. -This workflow generation script creates an experiment directory and populates it with all the data needed to run through the workflow. The flowchart in :numref:`Figure %s ` describes the experiment generation process. First, ``generate_FV3LAM_wflow.py`` runs the ``setup.py`` script to set the configuration parameters. Second, it copies the time-independent (fix) files and other necessary data input files from their location in the ufs-weather-model directory to the experiment directory (``$EXPTDIR``). Third, it copies the weather model executable (``ufs_model``) from the ``bin`` directory to ``$EXPTDIR`` and creates the input namelist file ``input.nml`` based on the ``input.nml.FV3`` file in the regional_workflow/ush/templates directory. Lastly, it creates the workflow XML file ``FV3LAM_wflow.xml`` that is executed when running the experiment with the Rocoto workflow manager. +This workflow generation script creates an experiment directory and populates it with all the data needed to run through the workflow. The flowchart in :numref:`Figure %s ` describes the experiment generation process. First, ``generate_FV3LAM_wflow.py`` runs the ``setup.py`` script to set the configuration parameters. Second, it copies the time-independent (fix) files and other necessary data input files from their location in the ufs-weather-model directory to the experiment directory (``$EXPTDIR``). Third, it copies the Weather Model executable (``ufs_model``) from the ``exec`` directory to ``$EXPTDIR`` and creates the input namelist file ``input.nml`` based on the ``input.nml.FV3`` file in the ``parm`` directory. Lastly, it creates the workflow XML file ``FV3LAM_wflow.xml`` that is executed when running the experiment with the Rocoto workflow manager. The ``setup.py`` script reads three other configuration scripts in order: (1) ``config_defaults.yaml`` (:numref:`Section %s `), (2) ``config.yaml`` (:numref:`Section %s `), and (3) ``set_predef_grid_params.py``. If a parameter is specified differently in these scripts, the file containing the last defined value will be used. @@ -1032,20 +840,20 @@ Description of Workflow Tasks .. code-block:: console - RUN_TASK_MAKE_GRID="FALSE" - RUN_TASK_MAKE_OROG="FALSE" - RUN_TASK_MAKE_SFC_CLIMO="FALSE" + RUN_TASK_MAKE_GRID: false + RUN_TASK_MAKE_OROG: false + RUN_TASK_MAKE_SFC_CLIMO: false .. _WorkflowTasksFig: .. figure:: _static/FV3LAM_wflow_flowchart_v2.png - :alt: Flowchart of the workflow tasks. If the make_grid, make_orog, and make_sfc_climo tasks are toggled off, they will not be run. If toggled on, make_grid, make_orog, and make_sfc_climo will run consecutively by calling the corresponding exregional script in the regional_workflow/scripts directory. The get_ics, get_lbcs, make_ics, make_lbcs, and run_fcst tasks call their respective exregional scripts. The run_post task will run, and if METplus verification tasks have been configured, those will run during post-processing by calling their exregional scripts. + :alt: Flowchart of the workflow tasks. If the make_grid, make_orog, and make_sfc_climo tasks are toggled off, they will not be run. If toggled on, make_grid, make_orog, and make_sfc_climo will run consecutively by calling the corresponding exregional script in the scripts directory. The get_ics, get_lbcs, make_ics, make_lbcs, and run_fcst tasks call their respective exregional scripts. The run_post task will run, and if METplus verification tasks have been configured, those will run during post-processing by calling their exregional scripts. *Flowchart of the workflow tasks* -The ``FV3LAM_wflow.xml`` file runs the specific j-job scripts (``regional_workflow/jobs/JREGIONAL_[task name]``) in the prescribed order when the experiment is launched via the ``launch_FV3LAM_wflow.sh`` script or the ``rocotorun`` command. Each j-job task has its own source script (or "ex-script") named ``exregional_[task name].sh`` in the ``regional_workflow/scripts`` directory. Two database files named ``FV3LAM_wflow.db`` and ``FV3LAM_wflow_lock.db`` are generated and updated by the Rocoto calls. There is usually no need for users to modify these files. To relaunch the workflow from scratch, delete these two ``*.db`` files and then call the launch script repeatedly for each task. +The ``FV3LAM_wflow.xml`` file runs the specific j-job scripts (``jobs/JREGIONAL_[task name]``) in the prescribed order when the experiment is launched via the ``launch_FV3LAM_wflow.sh`` script or the ``rocotorun`` command. Each j-job task has its own source script (or "ex-script") named ``exregional_[task name].sh`` in the ``scripts`` directory. Two database files named ``FV3LAM_wflow.db`` and ``FV3LAM_wflow_lock.db`` are generated and updated by the Rocoto calls. There is usually no need for users to modify these files. To relaunch the workflow from scratch, delete these two ``*.db`` files and then call the launch script repeatedly for each task. .. _WorkflowTasksTable: @@ -1089,16 +897,16 @@ In addition to the baseline tasks described in :numref:`Table %s `, the last line of output from ``./generate_FV3LAM_wflow.py`` (starting with ``*/1 * * * *`` or ``*/3 * * * *``), can be pasted into the crontab file. It can also be found in the ``$EXPTDIR/log.generate_FV3LAM_wflow`` file. The crontab entry should resemble the following: .. code-block:: console - */3 * * * * cd && ./launch_FV3LAM_wflow.sh called_from_cron="TRUE" + */3 * * * * cd && ./launch_FV3LAM_wflow.sh called_from_cron: true where ```` is changed to correspond to the user's ``$EXPTDIR``. The number ``3`` can be changed to a different positive integer and simply means that the workflow will be resubmitted every three minutes. @@ -1409,11 +1217,11 @@ The regional workflow can be run using standalone shell scripts in cases where t export EXPTDIR=`pwd` setenv EXPTDIR `pwd` -#. Copy the wrapper scripts from the ``regional_workflow`` directory into the experiment directory. Each workflow task has a wrapper script that sets environment variables and runs the job script. +#. Copy the wrapper scripts from the ``ush`` directory into the experiment directory. Each workflow task has a wrapper script that sets environment variables and runs the job script. .. code-block:: console - cp /ufs-srweather-app/regional_workflow/ush/wrappers/* . + cp /ufs-srweather-app/ush/wrappers/* . #. Set the ``OMP_NUM_THREADS`` variable. From 8daf90352fa1ce2b6a6e7e35dd4b4ab7f84fdb39 Mon Sep 17 00:00:00 2001 From: gspetro Date: Fri, 21 Oct 2022 16:54:53 -0400 Subject: [PATCH 30/58] switch order of steps so python env is loaded first --- docs/UsersGuide/source/Quickstart.rst | 32 +++++++++++++-------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/docs/UsersGuide/source/Quickstart.rst b/docs/UsersGuide/source/Quickstart.rst index ca0479e82f..613087d3b2 100644 --- a/docs/UsersGuide/source/Quickstart.rst +++ b/docs/UsersGuide/source/Quickstart.rst @@ -68,6 +68,22 @@ For a detailed explanation of how to build and run the SRW App on any supported #. Download and stage data (both the fix files and the :term:`IC/LBC ` files) according to the instructions in :numref:`Section %s ` (if on a Level 2-4 system). + #. Load the python environment for the regional workflow. Users on Level 2-4 systems will need to use one of the existing ``wflow_`` modulefiles (e.g., ``wflow_macos``) and adapt it to their system. + + .. code-block:: console + + module use + module load wflow_ + + After loading the workflow, users should follow the instructions printed to the console. For example, if the output says: + + .. code-block:: console + + Please do the following to activate conda: + > conda activate regional_workflow + + then the user should run ``conda activate regional_workflow`` to activate the regional workflow environment. + #. Configure the experiment parameters. .. code-block:: console @@ -88,22 +104,6 @@ For a detailed explanation of how to build and run the SRW App on any supported INVALID ENTRY: EXTRN_MDL_FILES_ICS=[] FAILURE - #. Load the python environment for the regional workflow. Users on Level 2-4 systems will need to use one of the existing ``wflow_`` modulefiles (e.g., ``wflow_macos``) and adapt it to their system. - - .. code-block:: console - - module use - module load wflow_ - - After loading the workflow, users should follow the instructions printed to the console. For example, if the output says: - - .. code-block:: console - - Please do the following to activate conda: - > conda activate regional_workflow - - then the user should run ``conda activate regional_workflow`` to activate the regional workflow environment. - #. Generate the experiment workflow. .. code-block:: console From 2507cf72b2694df47cded7b4aded129ecf74ba20 Mon Sep 17 00:00:00 2001 From: gspetro Date: Fri, 21 Oct 2022 21:27:44 -0400 Subject: [PATCH 31/58] edit and rearrange pyenv and config BR sections --- docs/UsersGuide/source/ConfigWorkflow.rst | 30 +- docs/UsersGuide/source/RunSRW.rst | 418 +++++++++------------- docs/UsersGuide/source/tables/Tests.rst | 2 +- 3 files changed, 190 insertions(+), 260 deletions(-) diff --git a/docs/UsersGuide/source/ConfigWorkflow.rst b/docs/UsersGuide/source/ConfigWorkflow.rst index 3eeb1aae20..97a5a4390d 100644 --- a/docs/UsersGuide/source/ConfigWorkflow.rst +++ b/docs/UsersGuide/source/ConfigWorkflow.rst @@ -180,11 +180,21 @@ METplus Parameters Test Directories ---------------------- +These directories are used only by the ``run_WE2E_tests.sh`` script, so they are not used unless the user runs a Workflow End-to-End (WE2E) test. + +.. COMMENT: + TEST_PREGEN_BASEDIR does something similar to DOMAIN_PREGEN_BASEDIR in setting OROG/GRID/SFC_CLIMO _DIR variables for NCO mode. The other variables TEST_* variables do similar things that the corresponding variable without TEST_* do, so this definitely looks redundant and removable. + ``TEST_EXTRN_MDL_SOURCE_BASEDIR``: (Default: "") + ``TEST_PREGEN_BASEDIR``: (Default: "") + Similar to ``DOMAIN_PREGEN_BASEDIR``, this variable sets the base directory containing pregenerated grid, orography, and surface climatology files for WE2E tests. This is an alternative for setting ``GRID_DIR``, ``OROG_DIR``, and ``SFC_CLIMO_DIR`` individually. + ``TEST_ALT_EXTRN_MDL_SYSBASEDIR_ICS``: (Default: "") + ``TEST_ALT_EXTRN_MDL_SYSBASEDIR_LBCS``: (Default: "") + .. _workflow: WORKFLOW Configuration Parameters @@ -725,18 +735,18 @@ For each workflow task, certain parameter values must be passed to the job sched File and Directory Parameters -------------------------------- -``EXTRN_MDL_SYSBASEDIR_ICS``: (Default: '') - Base directory on the local machine containing external model files for generating :term:`ICs` on the native grid. The way the full path containing these files is constructed depends on the user-specified external model for ICs (defined in ``EXTRN_MDL_NAME_ICS`` above). - - .. note:: - This variable must be defined as a null string in ``config_defaults.yaml`` so that if it is specified by the user in the experiment configuration file (``config.yaml``), it remains set to those values, and if not, it gets set to machine-dependent values. - ``USE_USER_STAGED_EXTRN_FILES``: (Default: false) Flag that determines whether the workflow will look for the external model files needed for generating :term:`ICs` in user-specified directories (rather than fetching them from mass storage like NOAA :term:`HPSS`). Valid values: ``True`` | ``False`` ``EXTRN_MDL_SOURCE_BASEDIR_ICS``: (Default: "") Directory containing external model files for generating ICs. If ``USE_USER_STAGED_EXTRN_FILES`` is set to true, the workflow looks within this directory for a subdirectory named "YYYYMMDDHH", which contains the external model files specified by the array ``EXTRN_MDL_FILES_ICS``. This "YYYYMMDDHH" subdirectory corresponds to the start date and cycle hour of the forecast (see :ref:`above `). These files will be used to generate the :term:`ICs` on the native FV3-LAM grid. This variable is not used if ``USE_USER_STAGED_EXTRN_FILES`` is set to false. +``EXTRN_MDL_SYSBASEDIR_ICS``: (Default: '') + Base directory on the local machine containing external model files for generating :term:`ICs` on the native grid. The way the full path containing these files is constructed depends on the user-specified external model for ICs (defined in ``EXTRN_MDL_NAME_ICS`` below). + + .. note:: + This variable must be defined as a null string in ``config_defaults.yaml`` so that if it is specified by the user in the experiment configuration file (``config.yaml``), it remains set to those values, and if not, it gets set to machine-dependent values. + ``EXTRN_MDL_FILES_ICS``: (Default: "") Array containing templates of the file names to search for in the ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` directory. This variable is not used if ``USE_USER_STAGED_EXTRN_FILES`` is set to false. A single template should be used for each model file type that is used. Users may use any of the Python-style templates allowed in the ``ush/retrieve_data.py`` script. To see the full list of supported templates, run that script with the ``-h`` option. @@ -744,14 +754,14 @@ File and Directory Parameters .. code-block:: console - EXTRN_MDL_FILES_ICS=( gfs.t{hh}z.atmf{fcst_hr:03d}.nemsio \ - gfs.t{hh}z.sfcf{fcst_hr:03d}.nemsio ) + EXTRN_MDL_FILES_ICS=[ gfs.t{hh}z.atmf{fcst_hr:03d}.nemsio , + gfs.t{hh}z.sfcf{fcst_hr:03d}.nemsio ] - To set FV3GFS grib files: + To set FV3GFS grib files: .. code-block:: console - EXTRN_MDL_FILES_ICS=( gfs.t{hh}z.pgrb2.0p25.f{fcst_hr:03d} ) + EXTRN_MDL_FILES_ICS=[ gfs.t{hh}z.pgrb2.0p25.f{fcst_hr:03d} ] ``EXTRN_MDL_DATA_STORES``: (Default: "") A list of data stores where the scripts should look to find external model data. The list is in priority order. If disk information is provided via ``USE_USER_STAGED_EXTRN_FILES`` or a known location on the platform, the disk location will receive highest priority. Valid values: ``disk`` | ``hpss`` | ``aws`` | ``nomads`` diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index 43c0154fad..1ff177c539 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -91,12 +91,61 @@ Generate the Forecast Experiment ================================= Generating the forecast experiment requires three steps: -#. :ref:`Set experiment configuration parameters ` #. :ref:`Load the python environment for the regional workflow ` +#. :ref:`Set experiment configuration parameters ` #. :ref:`Run a script to generate the experiment workflow ` The first two steps depend on the platform being used and are described here for each Level 1 platform. Users will need to adjust the instructions to reflect their machine configuration if they are working on a Level 2-4 platform. Information in :numref:`Chapter %s: Configuring the Workflow ` can help with this. +.. _SetUpPythonEnv: + +Load the Python Environment for the Regional Workflow +--------------------------------------------------------- + +The workflow requires Python 3 with the packages ``PyYAML``, ``Jinja2``, and ``f90nml`` available. This Python environment has already been set up on Level 1 platforms, and it can be activated in the following way: + +.. code-block:: console + + module use + module load wflow_ + +The ``wflow_`` modulefile will then output instructions to activate the regional workflow. The user should run the commands specified in the modulefile output. For example, if the output says: + +.. code-block:: console + + Please do the following to activate conda: + > conda activate regional_workflow + +then the user should run ``conda activate regional_workflow``. This will activate the ``regional_workflow`` conda environment. However, the command(s) will vary from system to system. Regardless, the user should see ``(regional_workflow)`` in front of the Terminal prompt at this point. If this is not the case, activate the regional workflow from the ``ush`` directory by running: + +.. code-block:: console + + conda init + source ~/.bashrc + conda activate regional_workflow + +.. _LinuxMacActivateWFenv: + +Activating the Workflow Environment on Non-Level 1 Systems +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Users on non-Level 1 systems can copy one of the provided ``wflow_`` files and use it as a template to create a ``wflow_`` file that works for their system. ``wflow_macos`` and ``wflow_linux`` template files are provided with the release. After making appropriate modifications to a ``wflow_`` file, users can run the commands from :numref:`Step %s ` above to activate the regional workflow. + +On generic Linux or MacOS systems, loading the designated ``wflow_`` file will output instructions similar to the following: + +.. code-block:: console + + Please do the following to activate conda: + > source $VENV/bin/activate + +If that does not work, users can also try: + +.. code-block:: console + + source $HOME/venv/regional_workflow/bin/activate + +However, it may instead be necessary to make additional adjustments to the ``wflow_`` file. + .. _ExptConfig: Set Experiment Configuration Parameters @@ -128,57 +177,39 @@ settings. There is usually no need for a user to modify the default configuratio +-----------------------------+-----------------------------------------------------------------------+ | Platform | WORKFLOW_MANAGER, NCORES_PER_NODE, BUILD_MOD_FN, WFLOW_MOD_FN, | | | BUILD_VER_FN, RUN_VER_FN, SCHED, DOMAIN_PREGEN_BASEDIR, | - | | ENV_INIT_SCRIPTS_FPS, PRE_TASK_CMDS | - | | | - | - Machine | PARTITION_DEFAULT, QUEUE_DEFAULT, PARTITION_HPSS, QUEUE_HPSS, | - | | PARTITION_FCST, QUEUE_FCST | - | | | - | - Workflow | RUN_CMD_UTILS, RUN_CMD_FCST, RUN_CMD_POST, SLURM_NATIVE_CMD | - | | | - | - METplus | MODEL, MET_INSTALL_DIR, METPLUS_PATH, MET_BIN_EXEC, CCPA_OBS_DIR, | + | | ENV_INIT_SCRIPTS_FPS, PRE_TASK_CMDS, PARTITION_DEFAULT, QUEUE_DEFAULT,| + | | PARTITION_HPSS, QUEUE_HPSS, PARTITION_FCST, QUEUE_FCST, | + | | RUN_CMD_UTILS, RUN_CMD_FCST, RUN_CMD_POST, SLURM_NATIVE_CMD, | + | | MODEL, MET_INSTALL_DIR, METPLUS_PATH, MET_BIN_EXEC, CCPA_OBS_DIR, | | | MRMS_OBS_DIR, NDAS_OBS_DIR | +-----------------------------+-----------------------------------------------------------------------+ | Workflow | WORKFLOW_ID, USE_CRON_TO_RELAUNCH, CRON_RELAUNCH_INTVL_MNTS, | - | | EXPT_BASEDIR, EXPT_SUBDIR, EXEC_SUBDIR, DOT_OR_USCORE | - | | | - | - File names | EXPT_CONFIG_FN, CONSTANTS_FN, RGNL_GRID_NML_FN, | + | | EXPT_BASEDIR, EXPT_SUBDIR, EXEC_SUBDIR, DOT_OR_USCORE, | + | | EXPT_CONFIG_FN, CONSTANTS_FN, RGNL_GRID_NML_FN, | | | FV3_NML_BASE_SUITE_FN, FV3_NML_YAML_CONFIG_FN, FV3_NML_BASE_ENS_FN, | | | FV3_EXEC_FN, DIAG_TABLE_TMPL_FN, FIELD_TABLE_TMPL_FN, | | | DATA_TABLE_TMPL_FN, MODEL_CONFIG_TMPL_FN, NEMS_CONFIG_TMPL_FN, | | | FCST_MODEL, WFLOW_XML_FN, GLOBAL_VAR_DEFNS_FN, | - | | EXTRN_MDL_VAR_DEFNS_FN, WFLOW_LAUNCH_SCRIPT_FN, WFLOW_LAUNCH_LOG_FN | - | | | - | - Forecast | CCPP_PHYS_SUITE, GRID_GEN_METHOD, DATE_FIRST_CYCL, DATE_LAST_CYCL, | - | | INCR_CYCL_FREQ, FCST_LEN_HRS | - | | | - | - Verification | GET_OBS, VX_TN, VX_ENSGRID_TN, VX_ENSGRID_PROB_REFC_TN, | - | | MAXTRIES_VX_ENSGRID_PROB_REFC | - | | | - | - Miscellaneous | PREEXISTING_DIR_METHOD, VERBOSE, DEBUG, COMPILER | + | | EXTRN_MDL_VAR_DEFNS_FN, WFLOW_LAUNCH_SCRIPT_FN, WFLOW_LAUNCH_LOG_FN, | + | | CCPP_PHYS_SUITE, GRID_GEN_METHOD, DATE_FIRST_CYCL, DATE_LAST_CYCL, | + | | INCR_CYCL_FREQ, FCST_LEN_HRS, GET_OBS, VX_TN, VX_ENSGRID_TN, | + | | VX_ENSGRID_PROB_REFC_TN, MAXTRIES_VX_ENSGRID_PROB_REFC, | + | | PREEXISTING_DIR_METHOD, VERBOSE, DEBUG, COMPILER | +-----------------------------+-----------------------------------------------------------------------+ | NCO | envir, NET, model_ver, RUN, OPSROOT | +-----------------------------+-----------------------------------------------------------------------+ - | Workflow Switches | | - | | | - | - Cycle-independent | RUN_TASK_MAKE_GRID, RUN_TASK_MAKE_OROG, RUN_TASK_MAKE_SFC_CLIMO, | - | | | - | - Cycle dependent | RUN_TASK_GET_EXTRN_ICS, RUN_TASK_GET_EXTRN_LBCS, RUN_TASK_MAKE_ICS, | - | | RUN_TASK_MAKE_LBCS, RUN_TASK_RUN_FCST, RUN_TASK_RUN_POST | - | | | - | - VX run tasks | RUN_TASK_GET_OBS_CCPA, RUN_TASK_GET_OBS_MRMS, RUN_TASK_GET_OBS_NDAS, | + | Workflow Switches | RUN_TASK_MAKE_GRID, RUN_TASK_MAKE_OROG, RUN_TASK_MAKE_SFC_CLIMO, | + | | RUN_TASK_GET_EXTRN_ICS, RUN_TASK_GET_EXTRN_LBCS, RUN_TASK_MAKE_ICS, | + | | RUN_TASK_MAKE_LBCS, RUN_TASK_RUN_FCST, RUN_TASK_RUN_POST, | + | | RUN_TASK_GET_OBS_CCPA, RUN_TASK_GET_OBS_MRMS, RUN_TASK_GET_OBS_NDAS, | | | RUN_TASK_VX_GRIDSTAT, RUN_TASK_VX_POINTSTAT, RUN_TASK_VX_ENSGRID, | | | RUN_TASK_VX_ENSPOINT | +-----------------------------+-----------------------------------------------------------------------+ - | task_make_grid | | - | | | - | - Basic | MAKE_GRID_TN, NNODES_MAKE_GRID, PPN_MAKE_GRID, WTIME_MAKE_GRID, | - | | MAXTRIES_MAKE_GRID, GRID_DIR | - | | | - | - ESGgrid Settings | ESGgrid_LON_CTR, ESGgrid_LAT_CTR, ESGgrid_DELX, ESGgrid_DELY, | - | | ESGgrid_NX, ESGgrid_NY, ESGgrid_PAZI, ESGgrid_WIDE_HALO_WIDTH | - | | | - | - GFDLgrid Settings | GFDLgrid_LON_T6_CTR, GFDLgrid_LAT_T6_CTR, GFDLgrid_NUM_CELLS, | - | | GFDLgrid_STRETCH_FAC, GFDLgrid_REFINE_RATIO, | + | task_make_grid | MAKE_GRID_TN, NNODES_MAKE_GRID, PPN_MAKE_GRID, WTIME_MAKE_GRID, | + | | MAXTRIES_MAKE_GRID, GRID_DIR, ESGgrid_LON_CTR, ESGgrid_LAT_CTR, | + | | ESGgrid_DELX, ESGgrid_DELY, ESGgrid_NX, ESGgrid_NY, ESGgrid_PAZI, | + | | ESGgrid_WIDE_HALO_WIDTH, GFDLgrid_LON_T6_CTR, GFDLgrid_LAT_T6_CTR, | + | | GFDLgrid_NUM_CELLS, GFDLgrid_STRETCH_FAC, GFDLgrid_REFINE_RATIO, | | | GFDLgrid_ISTART_OF_RGNL_DOM_ON_T6G, GFDLgrid_IEND_OF_RGNL_DOM_ON_T6G, | | | GFDLgrid_JSTART_OF_RGNL_DOM_ON_T6G, GFDLgrid_JEND_OF_RGNL_DOM_ON_T6G, | | | GFDLgrid_USE_NUM_CELLS_IN_FILENAMES | @@ -192,97 +223,61 @@ settings. There is usually no need for a user to modify the default configuratio | | KMP_AFFINITY_MAKE_SFC_CLIMO, OMP_NUM_THREADS_MAKE_SFC_CLIMO, | | | OMP_STACKSIZE_MAKE_SFC_CLIMO, SFC_CLIMO_DIR | +-----------------------------+-----------------------------------------------------------------------+ - | task_get_extrn_ics | | - | | | - | - Basic | GET_EXTRN_ICS_TN, NNODES_GET_EXTRN_ICS, PPN_GET_EXTRN_ICS, | + | task_get_extrn_ics | GET_EXTRN_ICS_TN, NNODES_GET_EXTRN_ICS, PPN_GET_EXTRN_ICS, | | | WTIME_GET_EXTRN_ICS, MAXTRIES_GET_EXTRN_ICS, EXTRN_MDL_NAME_ICS, | - | | EXTRN_MDL_ICS_OFFSET_HRS, FV3GFS_FILE_FMT_ICS | - | | | - | - File/Directory | EXTRN_MDL_SYSBASEDIR_ICS, USE_USER_STAGED_EXTRN_FILES, | - | Parameter | EXTRN_MDL_SOURCE_BASEDIR_ICS, EXTRN_MDL_FILES_ICS, | - | | EXTRN_MDL_FILES_ICS, EXTRN_MDL_FILES_ICS, EXTRN_MDL_DATA_STORES | - | | | - | - NOMADS Parameters | NOMADS, NOMADS_file_type | + | | EXTRN_MDL_ICS_OFFSET_HRS, FV3GFS_FILE_FMT_ICS, | + | | EXTRN_MDL_SYSBASEDIR_ICS, USE_USER_STAGED_EXTRN_FILES, | + | | EXTRN_MDL_SOURCE_BASEDIR_ICS, EXTRN_MDL_FILES_ICS, | + | | EXTRN_MDL_FILES_ICS, EXTRN_MDL_FILES_ICS, EXTRN_MDL_DATA_STORES, | + | | NOMADS, NOMADS_file_type | +-----------------------------+-----------------------------------------------------------------------+ - | task_get_extrn_lbcs | | - | | | - | - Basic | GET_EXTRN_LBCS_TN, NNODES_GET_EXTRN_LBCS, PPN_GET_EXTRN_LBCS, | + | task_get_extrn_lbcs | GET_EXTRN_LBCS_TN, NNODES_GET_EXTRN_LBCS, PPN_GET_EXTRN_LBCS, | | | WTIME_GET_EXTRN_LBCS, MAXTRIES_GET_EXTRN_LBCS, EXTRN_MDL_NAME_LBCS, | - | | LBC_SPEC_INTVL_HRS, EXTRN_MDL_LBCS_OFFSET_HRS, FV3GFS_FILE_FMT_LBCS | - | | | - | - File/Directory | EXTRN_MDL_SYSBASEDIR_LBCS, USE_USER_STAGED_EXTRN_FILES, | - | Parameter | EXTRN_MDL_SOURCE_BASEDIR_LBCS, EXTRN_MDL_FILES_LBCS, | - | | EXTRN_MDL_DATA_STORES | - | | | - | - NOMADS Parameters | NOMADS, NOMADS_file_type | + | | LBC_SPEC_INTVL_HRS, EXTRN_MDL_LBCS_OFFSET_HRS, FV3GFS_FILE_FMT_LBCS, | + | | EXTRN_MDL_SYSBASEDIR_LBCS, USE_USER_STAGED_EXTRN_FILES, | + | | EXTRN_MDL_SOURCE_BASEDIR_LBCS, EXTRN_MDL_FILES_LBCS, | + | | EXTRN_MDL_DATA_STORE, NOMADS, NOMADS_file_type | +-----------------------------+-----------------------------------------------------------------------+ - | task_make_ics | | - | | | - | - Basic | MAKE_ICS_TN, NNODES_MAKE_ICS, PPN_MAKE_ICS, WTIME_MAKE_ICS, | + | task_make_ics | MAKE_ICS_TN, NNODES_MAKE_ICS, PPN_MAKE_ICS, WTIME_MAKE_ICS, | | | MAXTRIES_MAKE_ICS, KMP_AFFINITY_MAKE_ICS, OMP_NUM_THREADS_MAKE_ICS, | - | | OMP_STACKSIZE_MAKE_ICS | - | | | - | - FVCOM Parameter | USE_FVCOM, FVCOM_WCSTART, FVCOM_DIR, FVCOM_FILE | + | | OMP_STACKSIZE_MAKE_ICS, USE_FVCOM, FVCOM_WCSTART, FVCOM_DIR, | + | | FVCOM_FILE | +-----------------------------+-----------------------------------------------------------------------+ | task_make_lbcs | MAKE_LBCS_TN, NNODES_MAKE_LBCS, PPN_MAKE_LBCS, WTIME_MAKE_LBCS, | | | MAXTRIES_MAKE_LBCS, KMP_AFFINITY_MAKE_LBCS, OMP_NUM_THREADS_MAKE_LBCS,| | | OMP_STACKSIZE_MAKE_LBCS | +-----------------------------+-----------------------------------------------------------------------+ - | task_run_fcst | | - | | | - | - Basic | RUN_FCST_TN, NNODES_RUN_FCST, PPN_RUN_FCST, WTIME_RUN_FCST, | + | task_run_fcst | RUN_FCST_TN, NNODES_RUN_FCST, PPN_RUN_FCST, WTIME_RUN_FCST, | | | MAXTRIES_RUN_FCST, KMP_AFFINITY_RUN_FCST, OMP_NUM_THREADS_RUN_FCST, | - | | OMP_STACKSIZE_RUN_FCST | - | | | - | - Model Config | DT_ATMOS, RESTART_INTERVAL, WRITE_DOPOST | - | | | - | - Computational | LAYOUT_X, LAYOUT_Y, BLOCKSIZE | - | | | - | - Write Component | QUILTING, PRINT_ESMF, WRTCMP_write_groups, | - | | WRTCMP_write_tasks_per_group, WRTCMP_output_grid, WRTCMP_cen_lon, | - | | WRTCMP_cen_lat, WRTCMP_lon_lwr_left, WRTCMP_lat_lwr_left, | - | | WRTCMP_lon_upr_rght, WRTCMP_lat_upr_rght, WRTCMP_dlon, WRTCMP_dlat, | - | | WRTCMP_stdlat1, WRTCMP_stdlat2, WRTCMP_nx, WRTCMP_ny, WRTCMP_dx, | - | | WRTCMP_dy | - | | | - | - Predefined Grid | PREDEF_GRID_NAME | - | | | - | - Miscellaneous | USE_MERRA_CLIMO, SFC_CLIMO_FIELDS | - | | | - | - Fixed Files | FIXgsm, FIXaer, FIXlut, TOPO_DIR, SFC_CLIMO_INPUT_DIR, | - | | SYMLINK_FIX_FILES, FNGLAC, FNMXIC, FNTSFC, FNSNOC, FNZORC, FNAISC, | - | | FNSMCC, FNMSKH, FIXgsm_FILES_TO_COPY_TO_FIXam, | + | | OMP_STACKSIZE_RUN_FCST, DT_ATMOS, RESTART_INTERVAL, WRITE_DOPOST, | + | | LAYOUT_X, LAYOUT_Y, BLOCKSIZE, QUILTING, PRINT_ESMF, | + | | WRTCMP_write_groups, WRTCMP_write_tasks_per_group, | + | | WRTCMP_cen_lon, WRTCMP_cen_lat, WRTCMP_lon_lwr_left, | + | | WRTCMP_lat_lwr_left, WRTCMP_lon_upr_rght, WRTCMP_lat_upr_rght, | + | | WRTCMP_dlon, WRTCMP_dlat, WRTCMP_stdlat1, WRTCMP_stdlat2, WRTCMP_nx, | + | | WRTCMP_ny, WRTCMP_dx, WRTCMP_dy, PREDEF_GRID_NAME, USE_MERRA_CLIMO, | + | | SFC_CLIMO_FIELDS, FIXgsm, FIXaer, FIXlut, TOPO_DIR, | + | | SFC_CLIMO_INPUT_DIR, SYMLINK_FIX_FILES, FNGLAC, FNMXIC, FNTSFC, | + | | FNSNOC, FNZORC, FNAISC, FNSMCC, FNMSKH, FIXgsm_FILES_TO_COPY_TO_FIXam,| | | FV3_NML_VARNAME_TO_FIXam_FILES_MAPPING, | | | FV3_NML_VARNAME_TO_SFC_CLIMO_FIELD_MAPPING, | | | CYCLEDIR_LINKS_TO_FIXam_FILES_MAPPING | +-----------------------------+-----------------------------------------------------------------------+ - | task_run_post | | - | | | - | - Basic | RUN_POST_TN, NNODES_RUN_POST, PPN_RUN_POST, WTIME_RUN_POST, | + | task_run_post | RUN_POST_TN, NNODES_RUN_POST, PPN_RUN_POST, WTIME_RUN_POST, | | | MAXTRIES_RUN_POST, KMP_AFFINITY_RUN_POST, OMP_NUM_THREADS_RUN_POST, | - | | OMP_STACKSIZE_RUN_POST | - | | | - | - Subhourly Post | SUB_HOURLY_POST, DT_SUB_HOURLY_POST_MNTS | - | | | - | - Custom Post | USE_CUSTOM_POST_CONFIG_FILE, CUSTOM_POST_CONFIG_FP, | + | | OMP_STACKSIZE_RUN_POST, SUB_HOURLY_POST, DT_SUB_HOURLY_POST_MNTS, | + | | USE_CUSTOM_POST_CONFIG_FILE, CUSTOM_POST_CONFIG_FP, | | | POST_OUTPUT_DOMAIN_NAME | +-----------------------------+-----------------------------------------------------------------------+ - | Global | | - | | | - | - CRTM | USE_CRTM, CRTM_DIR | - | | | - | - Ensembles | DO_ENSEMBLE, NUM_ENS_MEMBERS | - | | | - | - Stochastic Physics | NEW_LSCALE, DO_SHUM, ISEED_SHUM, SHUM_MAG, SHUM_LSCALE, SHUM_TSCALE, | + | Global | USE_CRTM, CRTM_DIR, DO_ENSEMBLE, NUM_ENS_MEMBERS, | + | | NEW_LSCALE, DO_SHUM, ISEED_SHUM, SHUM_MAG, SHUM_LSCALE, SHUM_TSCALE, | | | SHUM_INT, DO_SPPT, ISEED_SPPT, SPPT_MAG, SPPT_LOGIT, SPPT_LSCALE, | | | SPPT_TSCALE, SPPT_INT, SPPT_SFCLIMIT, USE_ZMTNBLCK, DO_SKEB, | | | ISEED_SKEB, SKEB_MAG, SKEB_LSCALE, SKEP_TSCALE, SKEB_INT, SKEBNORM, | | | SKEB_VDOF, DO_SPP, ISEED_SPP, SPP_VAR_LIST, SPP_MAG_LIST, SPP_LSCALE, | | | SPP_TSCALE, SPP_SIGTOP1, SPP_SIGTOP2, SPP_STDDEV_CUTOFF, DO_LSM_SPP, | | | LSM_SPP_TSCALE, LSM_SPP_LSCALE, ISEED_LSM_SPP, LSM_SPP_VAR_LIST, | - | | LSM_SPP_MAG_LIST | - | | | - | | HALO_BLEND | + | | LSM_SPP_MAG_LIST, HALO_BLEND | +-----------------------------+-----------------------------------------------------------------------+ | task_get_obs_ccpa | GET_OBS_CCPA_TN, NNODES_GET_OBS_CCPA, PPN_GET_OBS_CCPA, | | | WTIME_GET_OBS_CCPA, MAXTRIES_GET_OBS_CCPA | @@ -457,7 +452,7 @@ To get started, make a copy of ``config.community.yaml``. From the ``ufs-srweath The default settings in this file include a predefined 25-km :term:`CONUS` grid (RRFS_CONUS_25km), the :term:`GFS` v16 physics suite (FV3_GFS_v16 :term:`CCPP`), and :term:`FV3`-based GFS raw external model data for initialization. -Next, edit the new ``config.yaml`` file to customize it for your machine. At a minimum, change the ``MACHINE`` and ``ACCOUNT`` variables; then choose a name for the experiment directory by setting ``EXPT_SUBDIR``. If you have pre-staged initialization data for the experiment, set ``USE_USER_STAGED_EXTRN_FILES: true``, and set the paths to the data for ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` and ``EXTRN_MDL_SOURCE_BASEDIR_LBCS``. If the modulefile used to set up the build environment in :numref:`Section %s ` uses a GNU compiler, check that the line ``COMPILER="gnu"`` appears in the ``config.yaml`` file. On platforms where Rocoto and :term:`cron` are available, users can automate resubmission of their experiment workflow by adding the following lines to the ``config.yaml`` file: +Next, users should edit the new ``config.yaml`` file to customize it for your machine. At a minimum, change the ``MACHINE`` and ``ACCOUNT`` variables; then choose a name for the experiment directory by setting ``EXPT_SUBDIR``. If users have pre-staged initialization data for the experiment, they can set ``USE_USER_STAGED_EXTRN_FILES: true``, and set the paths to the data for ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` and ``EXTRN_MDL_SOURCE_BASEDIR_LBCS``. If the modulefile used to set up the build environment in :numref:`Section %s ` uses a GNU compiler, check that the line ``COMPILER: "gnu"`` appears in the ``config.yaml`` file. On platforms where Rocoto and :term:`cron` are available, users can automate resubmission of their experiment workflow by adding the following lines to the ``workflow:`` section of the ``config.yaml`` file: .. code-block:: console @@ -470,95 +465,69 @@ Next, edit the new ``config.yaml`` file to customize it for your machine. At a m Sample ``config.yaml`` settings are indicated below for Level 1 platforms. Detailed guidance applicable to all systems can be found in :numref:`Chapter %s: Configuring the Workflow `, which discusses each variable and the options available. Additionally, information about the four predefined Limited Area Model (LAM) Grid options can be found in :numref:`Chapter %s: Limited Area Model (LAM) Grids `. -.. hint:: - - To determine an appropriate ACCOUNT field for Level 1 systems, run ``groups``, and it will return a list of projects you have permissions for. Not all of the listed projects/groups have an HPC allocation, but those that do are potentially valid account names. - -Minimum parameter settings for running the out-of-the-box SRW App case on Level 1 machines: - -.. _SystemData: - -**Cheyenne:** +On Level 1 systems, the following fields will need to be updated or added to the appropriate section of the ``config.yaml`` file in order to run the out-of-the-box SRW App case: .. code-block:: console - MACHINE: "cheyenne" - ACCOUNT: "" - EXPT_SUBDIR: "" - USE_USER_STAGED_EXTRN_FILES: true - EXTRN_MDL_SOURCE_BASEDIR_ICS: "/glade/p/ral/jntp/UFS_SRW_App/develop/input_model_data///" - EXTRN_MDL_SOURCE_BASEDIR_LBCS: "/glade/p/ral/jntp/UFS_SRW_App/develop/input_model_data///" + user: + MACHINE: hera + ACCOUNT: an_account + workflow: + EXPT_SUBDIR: test_community + task_get_extrn_ics: + USE_USER_STAGED_EXTRN_FILES: true + EXTRN_MDL_SOURCE_BASEDIR_ICS: "/path/to/UFS_SRW_App/develop/input_model_data///" + task_get_extrn_lbcs: + USE_USER_STAGED_EXTRN_FILES: true + EXTRN_MDL_SOURCE_BASEDIR_LBCS: "/path/to/UFS_SRW_App/develop/input_model_data///" where: - * ```` refers to a valid account name. - * ```` is an experiment name of the user's choice. - * ```` refers to a subdirectory, such as "FV3GFS" or "HRRR", containing the experiment data. - * ```` refers to one of 3 possible data formats: ``grib2``, ``nemsio``, or ``netcdf``. - * ```` refers to a subdirectory containing data for the :term:`cycle` date (in YYYYMMDDHH format). - - -**Hera, Jet, Orion, Gaea:** - -The ``MACHINE``, ``ACCOUNT``, and ``EXPT_SUBDIR`` settings are the same as for Cheyenne, except that ``"cheyenne"`` should be switched to ``"hera"``, ``"jet"``, ``"orion"``, or ``"gaea"``, respectively. Set ``USE_USER_STAGED_EXTRN_FILES: true``, but replace the file paths to Cheyenne's data with the file paths for the correct machine. ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` and ``EXTRN_MDL_SOURCE_BASEDIR_LBCS`` use the same base file path. - -On Hera: - -.. code-block:: console - - "/scratch2/BMC/det/UFS_SRW_App/develop/input_model_data////" - -On Jet: + * ``MACHINE`` refers to a valid machine name (see :numref:`Section %s ` for options). + * ``ACCOUNT`` refers to a valid account name. Not all systems require a valid account name, but most do. -.. code-block:: console - - "/mnt/lfs4/BMC/wrfruc/UFS_SRW_App/develop/input_model_data////" - -On Orion: - -.. code-block:: console - - "/work/noaa/fv3-cam/UFS_SRW_App/develop/input_model_data////" - -On Gaea: - -.. code-block:: console + .. hint:: - "/lustre/f2/pdata/ncep/UFS_SRW_App/develop/input_model_data////" + To determine an appropriate ACCOUNT field for Level 1 systems, run ``groups``, and it will return a list of projects you have permissions for. Not all of the listed projects/groups have an HPC allocation, but those that do are potentially valid account names. -On **WCOSS** systems, edit ``config.yaml`` with these WCOSS-specific parameters, and use a valid WCOSS project code for the account parameter: - -.. code-block:: console - - MACHINE: "wcoss2" - ACCOUNT: "valid_wcoss_project_code" - EXPT_SUBDIR: "my_expt_name" - USE_USER_STAGED_EXTRN_FILES: true + * ``EXPT_SUBDIR`` is changed to an experiment name of the user's choice. + * ```` is the path to the SRW App data on the user's machine (see :numref:`Section %s `). + * ```` refers to a subdirectory containing the experiment data from a particular model. Valid values on Level 1 systems correspond to the valid values for ``EXTRN_MDL_NAME_ICS`` and ``EXTRN_MDL_NAME_LBCS`` (see :numref:`Chapter %s ` for options). + * ```` refers to one of 3 possible data formats: ``grib2``, ``nemsio``, or ``netcdf``. + * ```` refers to a subdirectory containing data for the :term:`cycle` date (in YYYYMMDDHH format). + +For example, to run the out-of-the-box experiment on Hera, add or modify variables in the ``user``, ``workflow``, ``task_get_extrn_ics``, and ``task_get_extrn_lbcs`` sections of ``config.yaml`` (unmodified variables are not shown in this example): -On WCOSS2: + .. code-block:: + + user: + MACHINE: hera + ACCOUNT: nems + workflow: + EXPT_SUBDIR: run_basic_srw + task_get_extrn_ics: + USE_USER_STAGED_EXTRN_FILES: true + EXTRN_MDL_SOURCE_BASEDIR_ICS: /scratch2/BMC/det/UFS_SRW_App/develop/input_model_data/FV3GFS/grib2/2019061518 + task_get_extrn_lbcs: + USE_USER_STAGED_EXTRN_FILES: true + EXTRN_MDL_SOURCE_BASEDIR_LBCS: /scratch2/BMC/det/UFS_SRW_App/develop/input_model_data/FV3GFS/grib2/2019061518 + +To determine whether the ``config.yaml`` file adjustments are valid, users can run the following script from the ``ush`` directory: .. code-block:: console - EXTRN_MDL_SOURCE_BASEDIR_ICS: "/lfs/h2/emc/lam/noscrub/UFS_SRW_App/develop/input_model_data///YYYYMMDDHH/ICS" - EXTRN_MDL_SOURCE_BASEDIR_LBCS: "/lfs/h2/emc/lam/noscrub/UFS_SRW_App/develop/input_model_data///YYYYMMDDHH/LBCS" + ./config_utils.py -c $PWD/config.yaml -v $PWD/config_defaults.yaml -On NOAA Cloud Systems: +A correct ``config.yaml`` file will output a ``SUCCESS`` message. A ``config.yaml`` file with problems will output a ``FAILURE`` message describing the problem. For example: .. code-block:: console - MACHINE: "NOAACLOUD" - ACCOUNT: "none" - EXPT_SUBDIR: "" - USE_USER_STAGED_EXTRN_FILES: true - EXTRN_MDL_SOURCE_BASEDIR_ICS: "/contrib/EPIC/UFS_SRW_App/develop/input_model_data////" - EXTRN_MDL_FILES_ICS: ( "gfs.t18z.pgrb2.0p25.f000" ) - EXTRN_MDL_SOURCE_BASEDIR_LBCS: "/contrib/EPIC/UFS_SRW_App/develop/input_model_data////" - EXTRN_MDL_FILES_LBCS: ( "gfs.t18z.pgrb2.0p25.f006" "gfs.t18z.pgrb2.0p25.f012" ) + INVALID ENTRY: EXTRN_MDL_FILES_ICS=[] + FAILURE .. note:: - The values of the configuration variables should be consistent with those in the - ``valid_param_vals.yaml`` script. In addition, various sample configuration files can be found in the ``ush/tests/baseline_configs`` directory. - + Valid values for configuration variables should be consistent with those in the + ``valid_param_vals.yaml`` script. In addition, various sample configuration files can be found within the subdiretories of ``tests/WE2E/test_configs``. To configure an experiment and python environment for a general Linux or Mac system, see the :ref:`next section `. To configure an experiment to run METplus verification tasks, see :numref:`Section %s `. Otherwise, skip to :numref:`Section %s `. @@ -751,55 +720,6 @@ Next, the verification tasks must be turned on according to the user's needs. Us These tasks are independent, so users may set some values to "TRUE" and others to "FALSE" depending on the needs of their experiment. Note that the ENSGRID and ENSPOINT tasks apply only to ensemble model verification. Additional verification tasks appear in :numref:`Table %s `. More details on all of the parameters in this section are available in :numref:`Section %s `. -.. _SetUpPythonEnv: - -Load the Python Environment for the Regional Workflow ---------------------------------------------------------- - -The workflow requires Python 3 with the packages ``PyYAML``, ``Jinja2``, and ``f90nml`` available. This Python environment has already been set up on Level 1 platforms, and it can be activated in the following way: - -.. code-block:: console - - module use - module load wflow_ - -The ``wflow_`` modulefile will then output instructions to activate the regional workflow. The user should run the commands specified in the modulefile output. For example, if the output says: - -.. code-block:: console - - Please do the following to activate conda: - > conda activate regional_workflow - -then the user should run ``conda activate regional_workflow``. This will activate the ``regional_workflow`` conda environment. However, the command(s) will vary from system to system. Regardless, the user should see ``(regional_workflow)`` in front of the Terminal prompt at this point. If this is not the case, activate the regional workflow from the ``ush`` directory by running: - -.. code-block:: console - - conda init - source ~/.bashrc - conda activate regional_workflow - -.. _LinuxMacActivateWFenv: - -Activating the Workflow Environment on Non-Level 1 Systems -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Users on non-Level 1 systems can copy one of the provided ``wflow_`` files and use it as a template to create a ``wflow_`` file that works for their system. ``wflow_macos`` and ``wflow_linux`` template files are provided with the release. After making appropriate modifications to a ``wflow_`` file, users can run the commands from :numref:`Step %s ` above to activate the regional workflow. - -On generic Linux or MacOS systems, loading the designated ``wflow_`` file will output instructions similar to the following: - -.. code-block:: console - - Please do the following to activate conda: - > source $VENV/bin/activate - -If that does not work, users can also try: - -.. code-block:: console - - source $HOME/venv/regional_workflow/bin/activate - -However, it may instead be necessary to make additional adjustments to the ``wflow_`` file. - .. _GenerateWorkflow: Generate the Regional Workflow @@ -897,16 +817,16 @@ In addition to the baseline tasks described in :numref:`Table %s Date: Mon, 24 Oct 2022 09:41:54 -0400 Subject: [PATCH 32/58] edit mac/linux/VX config sections --- docs/UsersGuide/source/Glossary.rst | 3 + docs/UsersGuide/source/RunSRW.rst | 141 +++++++++++++++------------- 2 files changed, 78 insertions(+), 66 deletions(-) diff --git a/docs/UsersGuide/source/Glossary.rst b/docs/UsersGuide/source/Glossary.rst index 939891dc6c..15dbb2ca3b 100644 --- a/docs/UsersGuide/source/Glossary.rst +++ b/docs/UsersGuide/source/Glossary.rst @@ -98,6 +98,9 @@ Glossary .. COMMENT: What does GSI do... just data assimilation stuff? How is it different from JEDI and other options? What is available to the public? What is needed for running RRFS? + GSL + NOAA `Global Systems Laboratory `__ is one of ten NOAA Research laboratories and is located in Boulder, Colorado. Its research improves environmental prediction models, develops state-of-the-science decision support tools and visualization systems, and uses high-performance computing technology to support a Weather-Ready Nation. + halo A strip of cells on the edge of the regional grid. The :ref:`wide halo ` surrounds the regional grid and is used to feed the lateral boundary conditions into the grid. The :ref:`HALO_BLEND ` parameter refers to a strip of cells *inside* the boundary of the native grid. This halo smooths out mismatches between the external and internal solutions. diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index 1ff177c539..776ae66bd0 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -129,7 +129,7 @@ then the user should run ``conda activate regional_workflow``. This will activat Activating the Workflow Environment on Non-Level 1 Systems ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Users on non-Level 1 systems can copy one of the provided ``wflow_`` files and use it as a template to create a ``wflow_`` file that works for their system. ``wflow_macos`` and ``wflow_linux`` template files are provided with the release. After making appropriate modifications to a ``wflow_`` file, users can run the commands from :numref:`Step %s ` above to activate the regional workflow. +Users on non-Level 1 systems can copy one of the provided ``wflow_`` files and use it as a template to create a ``wflow_`` file that works for their system. ``wflow_macos`` and ``wflow_linux`` template files are provided in the ``modulefiles`` directory. After making appropriate modifications to a ``wflow_`` file, users can run the commands from :numref:`Step %s ` above to activate the regional workflow. On generic Linux or MacOS systems, loading the designated ``wflow_`` file will output instructions similar to the following: @@ -164,7 +164,7 @@ Default configuration: ``config_defaults.yaml`` This section provides background information on available parameters and how the SRW App uses the ``config_defaults.yaml`` file. It is informative, but users do not need to modify ``config_defaults.yaml`` to run the out-of-the-box case for the SRW App. Therefore, users may skip to :numref:`Step %s ` to continue configuring their experiment. Configuration parameters in the ``config_defaults.yaml`` file appear in :numref:`Table %s `. Some of these default values are intentionally invalid in order to ensure that the user assigns valid values in the user-specified ``config.yaml`` file. Any settings provided in ``config.yaml`` will override the settings in ``config_defaults.yaml``. -settings. There is usually no need for a user to modify the default configuration file. Additional information on the default settings can be found in the file itself and in :numref:`Chapter %s `. +settings. There is usually no need for a user to modify the default configuration file. Additional information on the default settings can be found in the ``config_defaults.yaml`` file comments and in :numref:`Chapter %s `. .. _ConfigVarsDefault: @@ -358,7 +358,7 @@ settings. There is usually no need for a user to modify the default configuratio User-specific configuration: ``config.yaml`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -The user must specify certain basic experiment configuration information in a ``config.yaml`` file located in the ``ufs-srweather-app/ush`` directory. Two example templates are provided in that directory: ``config.community.yaml`` and ``config.nco.yaml``. The first file is a minimal example for creating and running an experiment in *community* mode (with ``RUN_ENVIR`` set to ``community``). The second is an example for creating and running an experiment in the *NCO* (operational) mode (with ``RUN_ENVIR`` set to ``nco``). The *community* mode is recommended in most cases and is fully supported for this release. The operational/NCO mode is typically used by those at NOAA's Environmental Modeling Center (:term:`EMC`) and at the NOAA Global Systems Laboratory (GSL) working on pre-implementation testing for the Rapid Refresh Forecast System (RRFS). :numref:`Table %s ` compares the configuration variables that appear in the ``config.community.yaml`` with their default values in ``config_default.yaml``. +The user must specify certain basic experiment configuration information in a ``config.yaml`` file located in the ``ufs-srweather-app/ush`` directory. Two example templates are provided in that directory: ``config.community.yaml`` and ``config.nco.yaml``. The first file is a minimal example for creating and running an experiment in *community* mode (with ``RUN_ENVIR`` set to ``community``). The second is an example for creating and running an experiment in the *NCO* (operational) mode (with ``RUN_ENVIR`` set to ``nco``). The *community* mode is recommended in most cases and is fully supported for this release. The operational/NCO mode is typically used by developers at the Environmental Modeling Center (:term:`EMC`) and at the Global Systems Laboratory (:term:`GSL`) working on pre-implementation testing for the Rapid Refresh Forecast System (RRFS). :numref:`Table %s ` compares the configuration variables that appear in the ``config.community.yaml`` with their default values in ``config_default.yaml``. .. _ConfigCommunity: @@ -452,7 +452,7 @@ To get started, make a copy of ``config.community.yaml``. From the ``ufs-srweath The default settings in this file include a predefined 25-km :term:`CONUS` grid (RRFS_CONUS_25km), the :term:`GFS` v16 physics suite (FV3_GFS_v16 :term:`CCPP`), and :term:`FV3`-based GFS raw external model data for initialization. -Next, users should edit the new ``config.yaml`` file to customize it for your machine. At a minimum, change the ``MACHINE`` and ``ACCOUNT`` variables; then choose a name for the experiment directory by setting ``EXPT_SUBDIR``. If users have pre-staged initialization data for the experiment, they can set ``USE_USER_STAGED_EXTRN_FILES: true``, and set the paths to the data for ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` and ``EXTRN_MDL_SOURCE_BASEDIR_LBCS``. If the modulefile used to set up the build environment in :numref:`Section %s ` uses a GNU compiler, check that the line ``COMPILER: "gnu"`` appears in the ``config.yaml`` file. On platforms where Rocoto and :term:`cron` are available, users can automate resubmission of their experiment workflow by adding the following lines to the ``workflow:`` section of the ``config.yaml`` file: +Next, users should edit the new ``config.yaml`` file to customize it for their machine. At a minimum, users must change the ``MACHINE`` and ``ACCOUNT`` variables. Then, they can choose a name for the experiment directory by setting ``EXPT_SUBDIR``. If users have pre-staged initialization data for the experiment, they can set ``USE_USER_STAGED_EXTRN_FILES: true``, and set the paths to the data for ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` and ``EXTRN_MDL_SOURCE_BASEDIR_LBCS``. If the modulefile used to set up the build environment in :numref:`Section %s ` uses a GNU compiler, check that the line ``COMPILER: "gnu"`` appears in the ``config.yaml`` file. On platforms where Rocoto and :term:`cron` are available, users can automate resubmission of their experiment workflow by adding the following lines to the ``workflow:`` section of the ``config.yaml`` file: .. code-block:: console @@ -495,21 +495,21 @@ where: * ```` refers to one of 3 possible data formats: ``grib2``, ``nemsio``, or ``netcdf``. * ```` refers to a subdirectory containing data for the :term:`cycle` date (in YYYYMMDDHH format). -For example, to run the out-of-the-box experiment on Hera, add or modify variables in the ``user``, ``workflow``, ``task_get_extrn_ics``, and ``task_get_extrn_lbcs`` sections of ``config.yaml`` (unmodified variables are not shown in this example): +For example, to run the out-of-the-box experiment on Gaea, add or modify variables in the ``user``, ``workflow``, ``task_get_extrn_ics``, and ``task_get_extrn_lbcs`` sections of ``config.yaml`` (unmodified variables are not shown in this example): .. code-block:: user: - MACHINE: hera - ACCOUNT: nems + MACHINE: gaea + ACCOUNT: hfv3gfs workflow: EXPT_SUBDIR: run_basic_srw task_get_extrn_ics: USE_USER_STAGED_EXTRN_FILES: true - EXTRN_MDL_SOURCE_BASEDIR_ICS: /scratch2/BMC/det/UFS_SRW_App/develop/input_model_data/FV3GFS/grib2/2019061518 + EXTRN_MDL_SOURCE_BASEDIR_ICS: /lustre/f2/pdata/ncep/UFS_SRW_App/develop/input_model_data/FV3GFS/grib2/2019061518 task_get_extrn_lbcs: USE_USER_STAGED_EXTRN_FILES: true - EXTRN_MDL_SOURCE_BASEDIR_LBCS: /scratch2/BMC/det/UFS_SRW_App/develop/input_model_data/FV3GFS/grib2/2019061518 + EXTRN_MDL_SOURCE_BASEDIR_LBCS: /lustre/f2/pdata/ncep/UFS_SRW_App/develop/input_model_data/FV3GFS/grib2/2019061518 To determine whether the ``config.yaml`` file adjustments are valid, users can run the following script from the ``ush`` directory: @@ -526,8 +526,9 @@ A correct ``config.yaml`` file will output a ``SUCCESS`` message. A ``config.yam .. note:: - Valid values for configuration variables should be consistent with those in the - ``valid_param_vals.yaml`` script. In addition, various sample configuration files can be found within the subdiretories of ``tests/WE2E/test_configs``. + The regional workflow must be loaded for the ``config_utils.py`` script to validate the ``config.yaml`` file. + +Valid values for configuration variables should be consistent with those in the ``ush/valid_param_vals.yaml`` script. In addition, various sample configuration files can be found within the subdirectories of ``tests/WE2E/test_configs``. To configure an experiment and python environment for a general Linux or Mac system, see the :ref:`next section `. To configure an experiment to run METplus verification tasks, see :numref:`Section %s `. Otherwise, skip to :numref:`Section %s `. @@ -539,7 +540,7 @@ User-specific Configuration on a General Linux/MacOS System The configuration process for Linux and MacOS systems is similar to the process for other systems, but it requires a few extra steps. .. note:: - Examples in this subsection presume that the user is running Terminal.app with a bash shell environment. If this is not the case, users will need to adjust the commands to fit their command line application and shell environment. + Examples in this subsection presume that the user is running in the Terminal with a bash shell environment. If this is not the case, users will need to adjust the commands to fit their command line application and shell environment. .. _MacMorePackages: @@ -566,7 +567,7 @@ Users should ensure that the following packages are installed and up-to-date: python3 -m pip --version python3 -m pip install --upgrade pip python3 -m ensurepip --default-pip - python3 -m pip install ruby OR(on MacOS only): brew install ruby + python3 -m pip install ruby OR (on MacOS only): brew install ruby Users must create a virtual regional workflow environment, store it in their ``$HOME/venv/`` directory, and install additional python packages: @@ -601,20 +602,22 @@ Configure an experiment using a template. Copy the contents of ``config.communit cd $SRW/ush cp config.community.yaml config.yaml -In the ``config.yaml`` file, set ``MACHINE="macos"`` or ``MACHINE="linux"``, and modify the account and experiment info. For example: +In the ``config.yaml`` file, set ``MACHINE: macos`` or ``MACHINE: linux``, and modify the account and experiment info. For example: .. code-block:: console - MACHINE="macos" - ACCOUNT="user" - EXPT_SUBDIR="" - COMPILER="gnu" - VERBOSE: true - RUN_ENVIR="community" - PREEXISTING_DIR_METHOD="rename" - - PREDEF_GRID_NAME="RRFS_CONUS_25km" - QUILTING: true + user: + RUN_ENVIR: community + MACHINE: macos + ACCOUNT: user + workflow: + EXPT_SUBDIR: test_community + PREEXISTING_DIR_METHOD: rename + VERBOSE: true + COMPILER: gnu + task_run_fcst: + PREDEF_GRID_NAME: RRFS_CONUS_25km + QUILTING: true Due to the limited number of processors on MacOS systems, users must also configure the domain decomposition defaults (usually, there are only 8 CPUs in M1-family chips and 4 CPUs for x86_64). @@ -622,19 +625,21 @@ For :ref:`Option 1 `, add the following information to ``config.yaml .. code-block:: console - LAYOUT_X="${LAYOUT_X:-3}" - LAYOUT_Y="${LAYOUT_Y:-2}" - WRTCMP_write_groups="1" - WRTCMP_write_tasks_per_group="2" + task_run_fcst: + LAYOUT_X: ${LAYOUT_X:-3} + LAYOUT_Y: ${LAYOUT_Y:-2} + WRTCMP_write_groups: 1 + WRTCMP_write_tasks_per_group: 2 For :ref:`Option 2 `, add the following information to ``config.yaml``: .. code-block:: console - LAYOUT_X="${LAYOUT_X:-3}" - LAYOUT_Y="${LAYOUT_Y:-1}" - WRTCMP_write_groups="1" - WRTCMP_write_tasks_per_group="1" + task_run_fcst: + LAYOUT_X: ${LAYOUT_X:-3} + LAYOUT_Y: ${LAYOUT_Y:-1} + WRTCMP_write_groups: 1 + WRTCMP_write_tasks_per_group: 1 .. note:: The number of MPI processes required by the forecast will be equal to ``LAYOUT_X`` * ``LAYOUT_Y`` + ``WRTCMP_write_tasks_per_group``. @@ -645,29 +650,30 @@ Configure a ``macos.yaml`` or ``linux.yaml`` machine file in ``$SRW/ush/machine/ .. code-block:: console - # Commands to run at the start of each workflow task. - PRE_TASK_CMDS='{ ulimit -a; }' - - # Architecture information - WORKFLOW_MANAGER="none" - NCORES_PER_NODE=${NCORES_PER_NODE:-} - SCHED=${SCHED:-""} - - # UFS SRW App specific paths - FIXgsm="path/to/FIXgsm/files" - FIXaer="path/to/FIXaer/files" - FIXlut="path/to/FIXlut/files" - TOPO_DIR="path/to/FIXgsm/files" # (path to location of static input files used by the - make_orog task) - SFC_CLIMO_INPUT_DIR="path/to/FIXgsm/files" # (path to location of static surface climatology - input fields used by sfc_climo_gen) - - # Run commands for executables - RUN_CMD_SERIAL="time" - RUN_CMD_UTILS="mpirun -np 4" - RUN_CMD_FCST='mpirun -np ${PE_MEMBER01}' - RUN_CMD_POST="mpirun -np 4" - + platform: + # Architecture information + WORKFLOW_MANAGER: none + NCORES_PER_NODE: ${NCORES_PER_NODE:-} + SCHED: ${SCHED:-""} + # Run commands for executables + RUN_CMD_FCST: 'mpirun -np ${PE_MEMBER01}' + RUN_CMD_POST: 'mpirun -np 4' + RUN_CMD_SERIAL: time + RUN_CMD_UTILS: 'mpirun -np 4' + # Commands to run at the start of each workflow task. + PRE_TASK_CMDS: '{ ulimit -a; }' + task_make_orog: + TOPO_DIR: path/to/FIXgsm/files # (path to location of static input files used by the make_orog task) + task_make_sfc_climo: + SFC_CLIMO_INPUT_DIR: path/to/FIXgsm/files # (path to location of static surface climatology input fields used by sfc_climo_gen) + task_run_fcst: + FIXaer: /path/to/FIXaer/files + FIXgsm: /path/to/FIXgsm/files + FIXlut: /path/to/FIXlut/files + data: + FV3GFS: /Users/username/DATA/UFS/FV3GFS + +.. COMMENT: what is this "data:" section used for?! .. _VXConfig: @@ -691,21 +697,24 @@ To use METplus verification, the path to the MET and METplus directories must be .. code-block:: console - METPLUS_PATH="" - MET_INSTALL_DIR="" + platform: + METPLUS_PATH: + MET_INSTALL_DIR: -Users who have already staged the observation data needed for METplus (i.e., the :term:`CCPA`, :term:`MRMS`, and :term:`NDAS` data) on their system should set the path to this data and set the corresponding ``RUN_TASK_GET_OBS_*`` parameters to "FALSE" in ``config.yaml``. +Users who have already staged the observation data needed for METplus (i.e., the :term:`CCPA`, :term:`MRMS`, and :term:`NDAS` data) on their system should set the path to this data and set the corresponding ``RUN_TASK_GET_OBS_*`` parameters to false in ``config.yaml``. .. code-block:: console - CCPA_OBS_DIR="/path/to/UFS_SRW_App/develop/obs_data/ccpa/proc" - MRMS_OBS_DIR="/path/to/UFS_SRW_App/develop/obs_data/mrms/proc" - NDAS_OBS_DIR="/path/to/UFS_SRW_App/develop/obs_data/ndas/proc" - RUN_TASK_GET_OBS_CCPA: false - RUN_TASK_GET_OBS_MRMS: false - RUN_TASK_GET_OBS_NDAS: false + platform: + CCPA_OBS_DIR: /path/to/UFS_SRW_App/develop/obs_data/ccpa/proc + MRMS_OBS_DIR: /path/to/UFS_SRW_App/develop/obs_data/mrms/proc + NDAS_OBS_DIR: /path/to/UFS_SRW_App/develop/obs_data/ndas/proc + workflow_switches: + RUN_TASK_GET_OBS_CCPA: false + RUN_TASK_GET_OBS_MRMS: false + RUN_TASK_GET_OBS_NDAS: false -If users have access to NOAA :term:`HPSS` but have not pre-staged the data, they can simply set the ``RUN_TASK_GET_OBS_*`` tasks to "TRUE", and the machine will attempt to download the appropriate data from NOAA HPSS. The ``*_OBS_DIR`` paths must be set to the location where users want the downloaded data to reside. +If users have access to NOAA :term:`HPSS` but have not pre-staged the data, they can simply set the ``RUN_TASK_GET_OBS_*`` tasks to true, and the machine will attempt to download the appropriate data from NOAA HPSS. The ``*_OBS_DIR`` paths must be set to the location where users want the downloaded data to reside. Users who do not have access to NOAA HPSS and do not have the data on their system will need to download :term:`CCPA`, :term:`MRMS`, and :term:`NDAS` data manually from collections of publicly available data, such as the ones listed `here `__. @@ -718,7 +727,7 @@ Next, the verification tasks must be turned on according to the user's needs. Us RUN_TASK_VX_ENSGRID: true RUN_TASK_VX_ENSPOINT: true -These tasks are independent, so users may set some values to "TRUE" and others to "FALSE" depending on the needs of their experiment. Note that the ENSGRID and ENSPOINT tasks apply only to ensemble model verification. Additional verification tasks appear in :numref:`Table %s `. More details on all of the parameters in this section are available in :numref:`Section %s `. +These tasks are independent, so users may set some values to true and others to false depending on the needs of their experiment. Note that the ENSGRID and ENSPOINT tasks apply only to ensemble model verification. Additional verification tasks appear in :numref:`Table %s `. More details on all of the parameters in this section are available in :numref:`Section %s `. .. _GenerateWorkflow: From 1f3a52a4dee59c9a2b6ec0a7c031b1ecc3f6ee83 Mon Sep 17 00:00:00 2001 From: gspetro Date: Mon, 24 Oct 2022 12:47:27 -0400 Subject: [PATCH 33/58] 1st draft of RunSRW --- docs/UsersGuide/source/ConfigWorkflow.rst | 5 +- docs/UsersGuide/source/Quickstart.rst | 8 ++- docs/UsersGuide/source/RunSRW.rst | 71 ++++++++++++++--------- 3 files changed, 49 insertions(+), 35 deletions(-) diff --git a/docs/UsersGuide/source/ConfigWorkflow.rst b/docs/UsersGuide/source/ConfigWorkflow.rst index 97a5a4390d..fc450948c6 100644 --- a/docs/UsersGuide/source/ConfigWorkflow.rst +++ b/docs/UsersGuide/source/ConfigWorkflow.rst @@ -78,7 +78,7 @@ If non-default parameters are selected for the variables in this section, they s Allows an extra parameter to be passed to slurm via XML Native command. ``DOMAIN_PREGEN_BASEDIR``: (Default: "") - The base directory containing pregenerated grid, orography, and surface climatology files. This is an alternative for setting ``GRID_DIR``, ``OROG_DIR``, and ``SFC_CLIMO_DIR`` individually. For the pregenerated grid specified by ``PREDEF_GRID_NAME``, these "fixed" files are located in: + For use in NCO mode only (``RUN_ENVIR: "nco"``). The base directory containing pregenerated grid, orography, and surface climatology files. This is an alternative for setting ``GRID_DIR``, ``OROG_DIR``, and ``SFC_CLIMO_DIR`` individually. For the pregenerated grid specified by ``PREDEF_GRID_NAME``, these "fixed" files are located in: .. code-block:: console @@ -202,9 +202,6 @@ WORKFLOW Configuration Parameters If non-default parameters are selected for the variables in this section, they should be added to the ``workflow:`` section of the ``config.yaml`` file. -``WORKFLOW_ID``: (Default: "") - Unique ID for workflow run that will be set in ``setup.py``. Users should not set this variable in their configuration file; it will be overridden in ``setup.py``. - .. _Cron: Cron-Associated Parameters diff --git a/docs/UsersGuide/source/Quickstart.rst b/docs/UsersGuide/source/Quickstart.rst index 613087d3b2..6c983044a7 100644 --- a/docs/UsersGuide/source/Quickstart.rst +++ b/docs/UsersGuide/source/Quickstart.rst @@ -71,11 +71,12 @@ For a detailed explanation of how to build and run the SRW App on any supported #. Load the python environment for the regional workflow. Users on Level 2-4 systems will need to use one of the existing ``wflow_`` modulefiles (e.g., ``wflow_macos``) and adapt it to their system. .. code-block:: console - + + source module use module load wflow_ - After loading the workflow, users should follow the instructions printed to the console. For example, if the output says: + where ```` refers to a valid machine name (see :numref:`Section %s `). After loading the workflow, users should follow the instructions printed to the console. For example, if the output says: .. code-block:: console @@ -84,6 +85,9 @@ For a detailed explanation of how to build and run the SRW App on any supported then the user should run ``conda activate regional_workflow`` to activate the regional workflow environment. + .. note:: + If users source the lmod-setup file on a system that doesn't need it, it will not cause any problems (it will simply do a ``module purge``). + #. Configure the experiment parameters. .. code-block:: console diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index 776ae66bd0..4705ba95ce 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -106,9 +106,15 @@ The workflow requires Python 3 with the packages ``PyYAML``, ``Jinja2``, and ``f .. code-block:: console + source module use module load wflow_ +where ```` refers to a valid machine name (see :numref:`Section %s `). + +.. note:: + If users source the lmod-steup file on a system that doesn't need it, it will not cause any problems (it will simply do a ``module purge``). + The ``wflow_`` modulefile will then output instructions to activate the regional workflow. The user should run the commands specified in the modulefile output. For example, if the output says: .. code-block:: console @@ -619,7 +625,7 @@ In the ``config.yaml`` file, set ``MACHINE: macos`` or ``MACHINE: linux``, and m PREDEF_GRID_NAME: RRFS_CONUS_25km QUILTING: true -Due to the limited number of processors on MacOS systems, users must also configure the domain decomposition defaults (usually, there are only 8 CPUs in M1-family chips and 4 CPUs for x86_64). +Due to the limited number of processors on MacOS systems, users must also configure the domain decomposition defaults (usually, there are only 8 CPUs in M1-family chips and 4 CPUs for x86_64 chips). For :ref:`Option 1 `, add the following information to ``config.yaml``: @@ -646,7 +652,7 @@ For :ref:`Option 2 `, add the following information to ``config.yaml **Configure the Machine File** -Configure a ``macos.yaml`` or ``linux.yaml`` machine file in ``$SRW/ush/machine/`` based on the number of CPUs (````) in the system (usually 8 or 4 in MacOS; varies on Linux systems). Job scheduler (``SCHED``) options can be viewed :ref:`here `. Users must also set the path to the fix file directories. +Configure a ``macos.yaml`` or ``linux.yaml`` machine file in ``$SRW/ush/machine/`` based on the number of CPUs (````) in the system (usually 8 or 4 in MacOS; varies on Linux systems). Job scheduler (````) options can be viewed :ref:`here `. Users must also set the path to the fix file directories. .. code-block:: console @@ -685,6 +691,8 @@ Users who want to use the METplus verification suite to evaluate their forecasts .. attention:: METplus *installation* is not included as part of the build process for this release of the SRW App. However, METplus is preinstalled on many `Level 1 & 2 `__ systems. For the v2.0.0 release, METplus *use* is supported on systems with a functioning METplus installation, although installation itself is not supported. For more information about METplus, see :numref:`Section %s `. + .. COMMENT: Update note for release v2.1! + .. note:: If METplus users update their METplus installation, they must update the module load statements in ``ufs-srweather-app/modulefiles/tasks//run_vx.local`` file to correspond to their system's updated installation: @@ -714,7 +722,7 @@ Users who have already staged the observation data needed for METplus (i.e., the RUN_TASK_GET_OBS_MRMS: false RUN_TASK_GET_OBS_NDAS: false -If users have access to NOAA :term:`HPSS` but have not pre-staged the data, they can simply set the ``RUN_TASK_GET_OBS_*`` tasks to true, and the machine will attempt to download the appropriate data from NOAA HPSS. The ``*_OBS_DIR`` paths must be set to the location where users want the downloaded data to reside. +If users have access to NOAA :term:`HPSS` but have not pre-staged the data, they can simply set the ``RUN_TASK_GET_OBS_*`` tasks to true, and the machine will attempt to download the appropriate data from NOAA HPSS. In this case, the ``*_OBS_DIR`` paths must be set to the location where users want the downloaded data to reside. Users who do not have access to NOAA HPSS and do not have the data on their system will need to download :term:`CCPA`, :term:`MRMS`, and :term:`NDAS` data manually from collections of publicly available data, such as the ones listed `here `__. @@ -722,10 +730,11 @@ Next, the verification tasks must be turned on according to the user's needs. Us .. code-block:: console - RUN_TASK_VX_GRIDSTAT: true - RUN_TASK_VX_POINTSTAT: true - RUN_TASK_VX_ENSGRID: true - RUN_TASK_VX_ENSPOINT: true + workflow_switches: + RUN_TASK_VX_GRIDSTAT: true + RUN_TASK_VX_POINTSTAT: true + RUN_TASK_VX_ENSGRID: true + RUN_TASK_VX_ENSPOINT: true These tasks are independent, so users may set some values to true and others to false depending on the needs of their experiment. Note that the ENSGRID and ENSPOINT tasks apply only to ensemble model verification. Additional verification tasks appear in :numref:`Table %s `. More details on all of the parameters in this section are available in :numref:`Section %s `. @@ -744,6 +753,8 @@ The last line of output from this script, starting with ``*/1 * * * *`` or ``*/3 This workflow generation script creates an experiment directory and populates it with all the data needed to run through the workflow. The flowchart in :numref:`Figure %s ` describes the experiment generation process. First, ``generate_FV3LAM_wflow.py`` runs the ``setup.py`` script to set the configuration parameters. Second, it copies the time-independent (fix) files and other necessary data input files from their location in the ufs-weather-model directory to the experiment directory (``$EXPTDIR``). Third, it copies the Weather Model executable (``ufs_model``) from the ``exec`` directory to ``$EXPTDIR`` and creates the input namelist file ``input.nml`` based on the ``input.nml.FV3`` file in the ``parm`` directory. Lastly, it creates the workflow XML file ``FV3LAM_wflow.xml`` that is executed when running the experiment with the Rocoto workflow manager. +.. COMMENT: ufs-weather-model directory doesn't exist... What was intended here? + The ``setup.py`` script reads three other configuration scripts in order: (1) ``config_defaults.yaml`` (:numref:`Section %s `), (2) ``config.yaml`` (:numref:`Section %s `), and (3) ``set_predef_grid_params.py``. If a parameter is specified differently in these scripts, the file containing the last defined value will be used. The generated workflow will appear in ``$EXPTDIR``, where ``EXPTDIR=${EXPT_BASEDIR}/${EXPT_SUBDIR}``. These variables were specified in the ``config.yaml`` file in :numref:`Step %s `. The settings for these paths can also be viewed in the console output from the ``./generate_FV3LAM_wflow.py`` script or in the ``log.generate_FV3LAM_wflow`` file, which can be found in ``$EXPTDIR``. @@ -765,13 +776,14 @@ Description of Workflow Tasks .. note:: This section gives a general overview of workflow tasks. To begin running the workflow, skip to :numref:`Step %s ` -:numref:`Figure %s ` illustrates the overall workflow. Individual tasks that make up the workflow are specified in the ``FV3LAM_wflow.xml`` file. :numref:`Table %s ` describes the function of each baseline task. The first three pre-processing tasks; ``MAKE_GRID``, ``MAKE_OROG``, and ``MAKE_SFC_CLIMO`` are optional. If the user stages pre-generated grid, orography, and surface climatology fix files, these three tasks can be skipped by adding the following lines to the ``config.yaml`` file before running the ``generate_FV3LAM_wflow.py`` script: +:numref:`Figure %s ` illustrates the overall workflow. Individual tasks that make up the workflow are specified in the ``FV3LAM_wflow.xml`` file. :numref:`Table %s ` describes the function of each baseline task. The first three pre-processing tasks; ``MAKE_GRID``, ``MAKE_OROG``, and ``MAKE_SFC_CLIMO``; are optional. If the user stages pre-generated grid, orography, and surface climatology fix files, these three tasks can be skipped by adding the following lines to the ``config.yaml`` file before running the ``generate_FV3LAM_wflow.py`` script: .. code-block:: console - RUN_TASK_MAKE_GRID: false - RUN_TASK_MAKE_OROG: false - RUN_TASK_MAKE_SFC_CLIMO: false + workflow_switches: + RUN_TASK_MAKE_GRID: false + RUN_TASK_MAKE_OROG: false + RUN_TASK_MAKE_SFC_CLIMO: false .. _WorkflowTasksFig: @@ -799,10 +811,10 @@ The ``FV3LAM_wflow.xml`` file runs the specific j-job scripts (``jobs/JREGIONAL_ | | needs to be run once per experiment. | +----------------------+------------------------------------------------------------+ | make_sfc_climo | Pre-processing task to generate surface climatology files. | - | | Only needs to be run, at most, once per experiment. | + | | Only needs to be run once per experiment. | +----------------------+------------------------------------------------------------+ | get_extrn_ics | Cycle-specific task to obtain external data for the | - | | initial conditions | + | | initial conditions (ICs) | +----------------------+------------------------------------------------------------+ | get_extrn_lbcs | Cycle-specific task to obtain external data for the | | | lateral boundary conditions (LBCs) | @@ -811,7 +823,7 @@ The ``FV3LAM_wflow.xml`` file runs the specific j-job scripts (``jobs/JREGIONAL_ +----------------------+------------------------------------------------------------+ | make_lbcs | Generate LBCs from the external data | +----------------------+------------------------------------------------------------+ - | run_fcst | Run the forecast model (UFS weather model) | + | run_fcst | Run the forecast model (UFS Weather Model) | +----------------------+------------------------------------------------------------+ | run_post | Run the post-processing tool (UPP) | +----------------------+------------------------------------------------------------+ @@ -933,9 +945,9 @@ The workflow can be run using the Rocoto workflow manager (see :numref:`Section Run the Workflow Using Rocoto -------------------------------- -The information in this section assumes that Rocoto is available on the desired platform. All official HPC platforms for the UFS SRW App release make use of the Rocoto workflow management software for running experiments. However, Rocoto cannot be used when running the workflow within a container. If Rocoto is not available, it is still possible to run the workflow using stand-alone scripts according to the process outlined in :numref:`Section %s `. +The information in this section assumes that Rocoto is available on the desired platform. All official HPC platforms for the UFS SRW App release make use of the Rocoto workflow management software for running experiments. However, if Rocoto is not available, it is still possible to run the workflow using stand-alone scripts according to the process outlined in :numref:`Section %s `. -There are two main ways to run the workflow with Rocoto: (1) with the ``launch_FV3LAM_wflow.sh`` script, and (2) by manually calling the ``rocotorun`` command. Users can also automate the workflow using a crontab. +There are three ways to run the workflow with Rocoto: (1) automation via crontab (2) by calling the ``launch_FV3LAM_wflow.sh`` script, and (3) by manually calling the ``rocotorun`` command. .. note:: Users may find it helpful to review :numref:`Chapter %s ` to gain a better understanding of Rocoto commands and workflow management before continuing, but this is not required to run the experiment. @@ -963,20 +975,20 @@ The simplest way to run the Rocoto workflow is to automate the process using a j .. code-block:: console USE_CRON_TO_RELAUNCH: true - CRON_RELAUNCH_INTVL_MNTS: 2 + CRON_RELAUNCH_INTVL_MNTS: 3 -This will automatically add an appropriate entry to the user's :term:`cron table` and launch the workflow. Alternatively, the user can add a crontab entry using the ``crontab -e`` command. As mentioned in :numref:`Section %s `, the last line of output from ``./generate_FV3LAM_wflow.py`` (starting with ``*/1 * * * *`` or ``*/3 * * * *``), can be pasted into the crontab file. It can also be found in the ``$EXPTDIR/log.generate_FV3LAM_wflow`` file. The crontab entry should resemble the following: +This will automatically add an appropriate entry to the user's :term:`cron table` and launch the workflow. Alternatively, the user can add a crontab entry using the ``crontab -e`` command. As mentioned in :numref:`Section %s `, the last line of output from ``./generate_FV3LAM_wflow.py`` (starting with ``*/3 * * * *``), can be pasted into the crontab file. It can also be found in the ``$EXPTDIR/log.generate_FV3LAM_wflow`` file. The crontab entry should resemble the following: .. code-block:: console - */3 * * * * cd && ./launch_FV3LAM_wflow.sh called_from_cron: true + */3 * * * * cd && ./launch_FV3LAM_wflow.sh called_from_cron="TRUE" where ```` is changed to correspond to the user's ``$EXPTDIR``. The number ``3`` can be changed to a different positive integer and simply means that the workflow will be resubmitted every three minutes. .. hint:: - * On NOAA Cloud instances, ``*/1 * * * *`` is the preferred option for cron jobs because compute nodes will shut down if they remain idle too long. If the compute node shuts down, it can take 15-20 minutes to start up a new one. - * On other NOAA HPC systems, admins discourage the ``*/1 * * * *`` due to load problems. ``*/3 * * * *`` is the preferred option for cron jobs on non-NOAA Cloud systems. + * On NOAA Cloud instances, ``*/1 * * * *`` (or ``CRON_RELAUNCH_INTVL_MNTS: 1``) is the preferred option for cron jobs because compute nodes will shut down if they remain idle too long. If the compute node shuts down, it can take 15-20 minutes to start up a new one. + * On other NOAA HPC systems, admins discourage the ``*/1 * * * *`` due to load problems. ``*/3 * * * *`` (or ``CRON_RELAUNCH_INTVL_MNTS: 3``) is the preferred option for cron jobs on non-NOAA Cloud systems. To check the experiment progress: @@ -1094,7 +1106,7 @@ Launch the Rocoto Workflow Manually **Load Rocoto** -Instead of running the ``./launch_FV3LAM_wflow.sh`` script, users can load Rocoto and any other required modules. This gives the user more control over the process and allows them to view experiment progress more easily. On Level 1 systems, the Rocoto modules are loaded automatically in :numref:`Step %s `. For most other systems, a variant on the following commands will be necessary to load the Rocoto module: +Instead of running the ``./launch_FV3LAM_wflow.sh`` script, users can load Rocoto and any other required modules manually. This gives the user more control over the process and allows them to view experiment progress more easily. On Level 1 systems, the Rocoto modules are loaded automatically in :numref:`Step %s `. For most other systems, users can load a modified ``wflow_`` modulefile, or they can use a variant on the following commands to load the Rocoto module: .. code-block:: console @@ -1105,7 +1117,7 @@ Some systems may require a version number (e.g., ``module load rocoto/1.3.3``) **Run the Rocoto Workflow** -After loading Rocoto, call ``rocotorun`` from the experiment directory to launch the workflow tasks. This will start any tasks that do not have a dependency. As the workflow progresses through its stages, ``rocotostat`` will show the state of each task and allow users to monitor progress: +After loading Rocoto, ``cd`` to the experiment directory and call ``rocotorun`` to launch the workflow tasks. This will start any tasks that do not have a dependency. As the workflow progresses through its stages, ``rocotostat`` will show the state of each task and allow users to monitor progress: .. code-block:: console @@ -1132,12 +1144,13 @@ If the experiment fails, the ``rocotostat`` command will indicate which task fai Run the Workflow Using Stand-Alone Scripts --------------------------------------------- -.. note:: - The Rocoto workflow manager cannot be used inside a container. +The regional workflow can be run using standalone shell scripts in cases where the Rocoto software is not available on a given platform. If Rocoto *is* available, see :numref:`Section %s ` to run the workflow using Rocoto. -The regional workflow can be run using standalone shell scripts in cases where the Rocoto software is not available on a given platform. If Rocoto *is* available, see :numref:`Section %s ` to run the workflow using Rocoto. +#. ``cd`` into the experiment directory. For example, from ``ush``, presuming default directory settings: -#. ``cd`` into the experiment directory + .. code-block:: console + + cd ../../expt_dirs/test_community #. Set the environment variable ``$EXPTDIR`` for either bash or csh, respectively: @@ -1182,8 +1195,8 @@ Check the batch script output file in your experiment directory for a “SUCCESS when running a 48-h forecast on the 25-km CONUS domain. For a brief description of tasks, see :numref:`Table %s `. +------------+------------------------+----------------+----------------------------+ - | **Stage/** | **Task Run Script** | **Number of** | **Wall clock time (H:mm)** | - | **step** | | **Processors** | | + | **Stage/** | **Task Run Script** | **Number of** | **Wall Clock Time (H:mm)** | + | | | **Processors** | | +============+========================+================+============================+ | 1 | run_get_ics.sh | 1 | 0:20 (depends on HPSS vs | | | | | FTP vs staged-on-disk) | From 6c82f408e35a61b7fb8266a75f3ac9b222290778 Mon Sep 17 00:00:00 2001 From: gspetro Date: Mon, 24 Oct 2022 13:28:49 -0400 Subject: [PATCH 34/58] add parameter definitions that were accidentally deleted in .sh --> .yaml switch --- ush/config_defaults.yaml | 84 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 77 insertions(+), 7 deletions(-) diff --git a/ush/config_defaults.yaml b/ush/config_defaults.yaml index 91e766b4b4..edb9ad41b1 100644 --- a/ush/config_defaults.yaml +++ b/ush/config_defaults.yaml @@ -1525,13 +1525,6 @@ task_run_fcst: # writing output files to disk. The regional grid requires the use of # the write component, so users should not change the default value. # - # WRTCMP_write_groups: - # The number of write groups (i.e. groups of MPI tasks) to use in the - # write component. - # - # WRTCMP_write_tasks_per_group: - # The number of MPI tasks to allocate for each write group. - # # PRINT_ESMF: # Flag for whether or not to output extra (debugging) information from # ESMF routines. Must be true or false. Note that the write @@ -1539,6 +1532,83 @@ task_run_fcst: # forecast model grid to the user-specified output grid (which is defined # in the model configuration file "model_configure" in the forecast's # run directory). + # + # WRTCMP_write_groups: + # The number of write groups (i.e. groups of MPI tasks) to use in the + # write component. + # + # WRTCMP_write_tasks_per_group: + # The number of MPI tasks to allocate for each write group. + # + # WRTCMP_output_grid: + # Sets the type (coordinate system) of the write component grid. The + # default empty string forces the user to set a valid value for + # WRTCMP_output_grid in config.yaml if specifying a *custom* grid. When + # creating an experiment with a user-defined grid, this parameter must + # be specified or the experiment will fail. + # + # WRTCMP_cen_lon: + # Longitude (in degrees) of the center of the write component grid. Can + # usually be set to the corresponding value from the native grid. + # + # WRTCMP_cen_lat: + # Latitude (in degrees) of the center of the write component grid. Can + # usually be set to the corresponding value from the native grid. + # WRTCMP_lon_lwr_left: + # Longitude (in degrees) of the center of the lower-left (southwest) + # cell on the write component grid. If using the "rotated_latlon" + # coordinate system, this is expressed in terms of the rotated longitude. + # Must be set manually when running an experiment with a user-defined grid. + # + # WRTCMP_lat_lwr_left: + # Latitude (in degrees) of the center of the lower-left (southwest) cell + # on the write component grid. If using the "rotated_latlon" coordinate + # system, this is expressed in terms of the rotated latitude. Must be set + # manually when running an experiment with a user-defined grid. + # + # ----------------------------------------------------------------------- + # + # WRTCMP_lon_upr_rght: + # Longitude (in degrees) of the center of the upper-right (northeast) cell + # on the write component grid (expressed in terms of the rotated longitude). + # + # WRTCMP_lat_upr_rght: + # Latitude (in degrees) of the center of the upper-right (northeast) cell + # on the write component grid (expressed in terms of the rotated latitude). + # + # WRTCMP_dlon: + # Size (in degrees) of a grid cell on the write component grid (expressed + # in terms of the rotated longitude). + # + # WRTCMP_dlat: + # Size (in degrees) of a grid cell on the write component grid (expressed + # in terms of the rotated latitude). + # + # ----------------------------------------------------------------------- + # + # WRTCMP_stdlat1: + # First standard latitude (in degrees) in definition of Lambert conformal + # projection. + # + # WRTCMP_stdlat2: + # Second standard latitude (in degrees) in definition of Lambert conformal + # projection. + # + # WRTCMP_nx: + # Number of grid points in the x-coordinate of the Lambert conformal + # projection. + # + # WRTCMP_ny: + # Number of grid points in the y-coordinate of the Lambert conformal + # projection. + # + # WRTCMP_dx: + # Grid cell size (in meters) along the x-axis of the Lambert conformal + # projection. + # + # WRTCMP_dy: + # Grid cell size (in meters) along the y-axis of the Lambert conformal + # projection. # #----------------------------------------------------------------------- # From a69066064181ef27edd04a33455c70d7213319ba Mon Sep 17 00:00:00 2001 From: gspetro Date: Mon, 24 Oct 2022 13:29:16 -0400 Subject: [PATCH 35/58] remove comments --- docs/UsersGuide/source/ConfigWorkflow.rst | 48 ++++++++--------------- 1 file changed, 17 insertions(+), 31 deletions(-) diff --git a/docs/UsersGuide/source/ConfigWorkflow.rst b/docs/UsersGuide/source/ConfigWorkflow.rst index fc450948c6..45e897b564 100644 --- a/docs/UsersGuide/source/ConfigWorkflow.rst +++ b/docs/UsersGuide/source/ConfigWorkflow.rst @@ -89,9 +89,6 @@ If non-default parameters are selected for the variables in this section, they s ``PRE_TASK_CMDS``: (Default: "") Pre-task commands such as ``ulimit`` needed by tasks. For example: ``'{ ulimit -s unlimited; ulimit -a; }'`` -.. COMMENT: Define! - - Machine-Dependent Parameters ------------------------------- These parameters vary depending on machine. On `Level 1 and 2 `__ systems, the appropriate values for each machine can be viewed in the ``ush/machine/.sh`` scripts. To specify a value other than the default, add these variables and the desired value in the ``config.yaml`` file so that they override the ``config_defaults.yaml`` and machine default values. @@ -180,19 +177,19 @@ METplus Parameters Test Directories ---------------------- -These directories are used only by the ``run_WE2E_tests.sh`` script, so they are not used unless the user runs a Workflow End-to-End (WE2E) test. - -.. COMMENT: - TEST_PREGEN_BASEDIR does something similar to DOMAIN_PREGEN_BASEDIR in setting OROG/GRID/SFC_CLIMO _DIR variables for NCO mode. The other variables TEST_* variables do similar things that the corresponding variable without TEST_* do, so this definitely looks redundant and removable. +These directories are used only by the ``run_WE2E_tests.sh`` script, so they are not used unless the user runs a Workflow End-to-End (WE2E) test. Their function corresponds to the same variables without the ``TEST_`` prefix. Users typically should not modify these variables. For any alterations, the logic in the ``run_WE2E_tests.sh`` script would need to be adjusted accordingly. ``TEST_EXTRN_MDL_SOURCE_BASEDIR``: (Default: "") + This parameter allows testing of user-staged files in a known location on a given platform. This path contains a limited dataset and likely will not be useful for most user experiments. ``TEST_PREGEN_BASEDIR``: (Default: "") Similar to ``DOMAIN_PREGEN_BASEDIR``, this variable sets the base directory containing pregenerated grid, orography, and surface climatology files for WE2E tests. This is an alternative for setting ``GRID_DIR``, ``OROG_DIR``, and ``SFC_CLIMO_DIR`` individually. ``TEST_ALT_EXTRN_MDL_SYSBASEDIR_ICS``: (Default: "") + This parameter is used to test the mechanism that allows users to point to a data stream on disk. It sets up a sandbox location that mimics the stream in a more controlled way and tests the ability to access :term:`ICS`. ``TEST_ALT_EXTRN_MDL_SYSBASEDIR_LBCS``: (Default: "") + This parameter is used to test the mechanism that allows users to point to a data stream on disk. It sets up a sandbox location that mimics the stream in a more controlled way and tests the ability to access :term:`LBCS`. .. _workflow: @@ -241,7 +238,6 @@ Pre-Processing File Separator Parameters ``DOT_OR_USCORE``: (Default: "_") This variable sets the separator character(s) to use in the names of the grid, mosaic, and orography fixed files. Ideally, the same separator should be used in the names of these fixed files as in the surface climatology fixed files. Valid values: ``"_"`` | ``"."`` - .. COMMENT: It also says "Ideally, the same separator should be used in the names of these fixed files as the surface climatology fixed files (which always use a "." as the separator), i.e. ideally DOT_OR_USCORE should be set to "." " --> Does it have to be set to "_" in the SRW App? Set File Name Parameters ---------------------------- @@ -265,9 +261,7 @@ Set File Name Parameters Name of the Fortran file containing the forecast model's base ensemble namelist (i.e., the original namelist file from which each of the ensemble members' namelist files is generated). ``FV3_EXEC_FN``: (Default: "ufs_model") - Name of the forecast model executable that is copied from the executables directory (``EXEC_SUBDIR``, where it was created during the build process) to the experiment directory; set during experiment generation. - -.. COMMENT: Check this definition... : Name to use for the forecast model executable. + Name to use for the forecast model executable. ``DIAG_TABLE_TMPL_FN``: (Default: "") Name of a template file that specifies the output fields of the forecast model. The selected physics suite is appended to this file name in ``setup.py``, taking the form ``{DIAG_TABLE_TMPL_FN}.{CCPP_PHYS_SUITE}``. Generally, the SRW App expects to read in the default value set in ``setup.py`` (i.e., ``diag_table.{CCPP_PHYS_SUITE}``), and users should **not** specify a value for ``DIAG_TABLE_TMPL_FN`` in their configuration file (i.e., ``config.yaml``) unless (1) the file name required by the model changes, and (2) they also change the names of the ``diag_table`` options in the ``ufs-srweather-app/parm`` directory. @@ -700,6 +694,8 @@ GET_EXTRN_ICS Configuration Parameters Non-default parameters for the ``get_extrn_ics`` task are set in the ``task_get_extrn_ics:`` section of the ``config.yaml`` file. +.. _basic-get-extrn-ics: + Basic Task Parameters --------------------------------- @@ -739,7 +735,7 @@ File and Directory Parameters Directory containing external model files for generating ICs. If ``USE_USER_STAGED_EXTRN_FILES`` is set to true, the workflow looks within this directory for a subdirectory named "YYYYMMDDHH", which contains the external model files specified by the array ``EXTRN_MDL_FILES_ICS``. This "YYYYMMDDHH" subdirectory corresponds to the start date and cycle hour of the forecast (see :ref:`above `). These files will be used to generate the :term:`ICs` on the native FV3-LAM grid. This variable is not used if ``USE_USER_STAGED_EXTRN_FILES`` is set to false. ``EXTRN_MDL_SYSBASEDIR_ICS``: (Default: '') - Base directory on the local machine containing external model files for generating :term:`ICs` on the native grid. The way the full path containing these files is constructed depends on the user-specified external model for ICs (defined in ``EXTRN_MDL_NAME_ICS`` below). + A known location of a real data stream on a given platform. This is typically a real-time data stream as on Hera, Jet, or WCOSS. External model files for generating :term:`ICs` on the native grid should be accessible via this data stream. The way the full path containing these files is constructed depends on the user-specified external model for ICs (defined above in :numref:`Section %s ` ``EXTRN_MDL_NAME_ICS``). .. note:: This variable must be defined as a null string in ``config_defaults.yaml`` so that if it is specified by the user in the experiment configuration file (``config.yaml``), it remains set to those values, and if not, it gets set to machine-dependent values. @@ -780,6 +776,8 @@ GET_EXTRN_LBCS Configuration Parameters Non-default parameters for the ``get_extrn_lbcs`` task are set in the ``task_get_extrn_lbcs:`` section of the ``config.yaml`` file. +.. _basic-get-extrn-lbcs: + Basic Task Parameters --------------------------------- @@ -816,12 +814,6 @@ For each workflow task, certain parameter values must be passed to the job sched File and Directory Parameters -------------------------------- -``EXTRN_MDL_SYSBASEDIR_LBCS``: (Default: '') - Same as ``EXTRN_MDL_SYSBASEDIR_ICS`` but for :term:`LBCs`. Base directory on the local machine containing external model files for generating LBCs on the native grid. The way the full path containing these files is constructed depends on the user-specified external model for LBCs (defined in ``EXTRN_MDL_NAME_LBCS`` above). - - .. note:: - This variable must be defined as a null string in ``config_defaults.yaml`` so that if it is specified by the user in the experiment configuration file (``config.yaml``), it remains set to those values, and if not, it gets set to machine-dependent values. - ``USE_USER_STAGED_EXTRN_FILES``: (Default: false) Analogous to ``USE_USER_STAGED_EXTRN_FILES`` in :term:`ICs` but for :term:`LBCs`. Flag that determines whether the workflow will look for the external model files needed for generating :term:`LBCs` in user-specified directories (rather than fetching them from mass storage like NOAA :term:`HPSS`). Valid values: ``True`` | ``False`` @@ -829,6 +821,12 @@ File and Directory Parameters Analogous to ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` but for :term:`LBCs` instead of :term:`ICs`. Directory containing external model files for generating LBCs. If ``USE_USER_STAGED_EXTRN_FILES`` is set to true, the workflow looks within this directory for a subdirectory named "YYYYMMDDHH", which contains the external model files specified by the array ``EXTRN_MDL_FILES_LBCS``. This "YYYYMMDDHH" subdirectory corresponds to the start date and cycle hour of the forecast (see :ref:`above `). These files will be used to generate the :term:`LBCs` on the native FV3-LAM grid. This variable is not used if ``USE_USER_STAGED_EXTRN_FILES`` is set to false. +``EXTRN_MDL_SYSBASEDIR_LBCS``: (Default: '') + Same as ``EXTRN_MDL_SYSBASEDIR_ICS`` but for :term:`LBCs`. A known location of a real data stream on a given platform. This is typically a real-time data stream as on Hera, Jet, or WCOSS. External model files for generating :term:`LBICs` on the native grid should be accessible via this data stream. The way the full path containing these files is constructed depends on the user-specified external model for LBCs (defined above in :numref:`Section %s ` ``EXTRN_MDL_NAME_LBCS`` above). + + .. note:: + This variable must be defined as a null string in ``config_defaults.yaml`` so that if it is specified by the user in the experiment configuration file (``config.yaml``), it remains set to those values, and if not, it gets set to machine-dependent values. + ``EXTRN_MDL_FILES_LBCS``: (Default: "") Analogous to ``EXTRN_MDL_FILES_ICS`` but for :term:`LBCs` instead of :term:`ICs`. Array containing templates of the file names to search for in the ``EXTRN_MDL_SOURCE_BASEDIR_LBCS`` directory. This variable is not used if ``USE_USER_STAGED_EXTRN_FILES`` is set to false. A single template should be used for each model file type that is used. Users may use any of the Python-style templates allowed in the ``ush/retrieve_data.py`` script. To see the full list of supported templates, run that script with the ``-h`` option. For examples, see the ``EXTRN_MDL_FILES_ICS`` variable above. @@ -963,9 +961,7 @@ For each workflow task, certain parameter values must be passed to the job sched For more information, see the `Intel Development Reference Guide `__. ``OMP_NUM_THREADS_RUN_FCST``: (Default: 2) - The number of OpenMP threads to use for parallel regions. - - ..COMMENT: Note says: # atmos_nthreads in model_configure --> What does this mean? Can it be removed? + The number of OpenMP threads to use for parallel regions. Corresponds to the ``atmos_nthreads`` value in ``model_configure``. ``OMP_STACKSIZE_RUN_FCST``: (Default: "1024m") Controls the size of the stack for threads created by the OpenMP implementation. @@ -1041,8 +1037,6 @@ Write-Component (Quilting) Parameters ``WRTCMP_lat_lwr_left``: (Default: "") Latitude (in degrees) of the center of the lower-left (southwest) cell on the write component grid. If using the "rotated_latlon" coordinate system, this is expressed in terms of the rotated latitude. Must be set manually when running an experiment with a user-defined grid. -.. COMMENT: The descriptions for the five tasks above have been deleted from config_defaults... why? The variables are still there... - **The following parameters must be set when** ``WRTCMP_output_grid`` **is set to "rotated_latlon":** ``WRTCMP_lon_upr_rght``: (Default: "") @@ -1057,8 +1051,6 @@ Write-Component (Quilting) Parameters ``WRTCMP_dlat``: (Default: "") Size (in degrees) of a grid cell on the write component grid (expressed in terms of the rotated latitude). -.. COMMENT: Descriptions for all variables in this section were removed from config_defaults... why? - **The following parameters must be set when** ``WRTCMP_output_grid`` **is set to "lambert_conformal":** ``WRTCMP_stdlat1``: (Default: "") @@ -1079,9 +1071,6 @@ Write-Component (Quilting) Parameters ``WRTCMP_dy``: (Default: "") Grid cell size (in meters) along the y-axis of the Lambert conformal projection. - .. COMMENT: Descriptions for all variables in this section were removed from config_defaults... why? - - .. _PredefGrid: Predefined Grid Parameters @@ -2050,9 +2039,6 @@ Land surface perturbations can be applied to land model parameters and land mode The parameters below turn on SPP in Noah or RUC LSM (support for Noah MP is in progress). Please be aware of the :term:`SDF` that you choose if you wish to turn on Land Surface Model (LSM) SPP. SPP in LSM schemes is handled in the ``&nam_sfcperts`` namelist block instead of in ``&nam_sppperts``, where all other SPP is implemented. - .. COMMENT: No longer appears: - "The default perturbation frequency is determined by the ``fhcyc`` namelist entry. Since that parameter is set to zero in the SRW App, use ``LSM_SPP_EACH_STEP`` to perturb every time step."" - ``DO_LSM_SPP``: (Default: false) Turns on Land Surface Model (LSM) Stochastic Physics Parameterizations (SPP). When true, sets ``lndp_type=2``, which applies land perturbations to the selected paramaters using a newer scheme designed for data assimilation (DA) ensemble spread. LSM SPP perturbs uncertain land surface fields ("smc" "vgf" "alb" "sal" "emi" "zol" "stc") based on recommendations from physics experts. Valid values: ``True`` | ``False`` From bec8dd7e17e3b3322eec1df16eb30c23a6ba9bc5 Mon Sep 17 00:00:00 2001 From: gspetro Date: Mon, 24 Oct 2022 13:31:18 -0400 Subject: [PATCH 36/58] fix typo --- docs/UsersGuide/source/ConfigWorkflow.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UsersGuide/source/ConfigWorkflow.rst b/docs/UsersGuide/source/ConfigWorkflow.rst index 45e897b564..ada2623a3d 100644 --- a/docs/UsersGuide/source/ConfigWorkflow.rst +++ b/docs/UsersGuide/source/ConfigWorkflow.rst @@ -822,7 +822,7 @@ File and Directory Parameters Directory containing external model files for generating LBCs. If ``USE_USER_STAGED_EXTRN_FILES`` is set to true, the workflow looks within this directory for a subdirectory named "YYYYMMDDHH", which contains the external model files specified by the array ``EXTRN_MDL_FILES_LBCS``. This "YYYYMMDDHH" subdirectory corresponds to the start date and cycle hour of the forecast (see :ref:`above `). These files will be used to generate the :term:`LBCs` on the native FV3-LAM grid. This variable is not used if ``USE_USER_STAGED_EXTRN_FILES`` is set to false. ``EXTRN_MDL_SYSBASEDIR_LBCS``: (Default: '') - Same as ``EXTRN_MDL_SYSBASEDIR_ICS`` but for :term:`LBCs`. A known location of a real data stream on a given platform. This is typically a real-time data stream as on Hera, Jet, or WCOSS. External model files for generating :term:`LBICs` on the native grid should be accessible via this data stream. The way the full path containing these files is constructed depends on the user-specified external model for LBCs (defined above in :numref:`Section %s ` ``EXTRN_MDL_NAME_LBCS`` above). + Same as ``EXTRN_MDL_SYSBASEDIR_ICS`` but for :term:`LBCs`. A known location of a real data stream on a given platform. This is typically a real-time data stream as on Hera, Jet, or WCOSS. External model files for generating :term:`LBCs` on the native grid should be accessible via this data stream. The way the full path containing these files is constructed depends on the user-specified external model for LBCs (defined above in :numref:`Section %s ` ``EXTRN_MDL_NAME_LBCS`` above). .. note:: This variable must be defined as a null string in ``config_defaults.yaml`` so that if it is specified by the user in the experiment configuration file (``config.yaml``), it remains set to those values, and if not, it gets set to machine-dependent values. From b1aa2150bd1f5fa2561a4c8d6f39a80b92437441 Mon Sep 17 00:00:00 2001 From: gspetro Date: Mon, 24 Oct 2022 13:52:43 -0400 Subject: [PATCH 37/58] fix link --- docs/UsersGuide/source/ConfigWorkflow.rst | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/UsersGuide/source/ConfigWorkflow.rst b/docs/UsersGuide/source/ConfigWorkflow.rst index ada2623a3d..e0d6d18cf7 100644 --- a/docs/UsersGuide/source/ConfigWorkflow.rst +++ b/docs/UsersGuide/source/ConfigWorkflow.rst @@ -488,8 +488,6 @@ Verification Tasks ``RUN_TASK_VX_ENSGRID``: (Default: false) Flag that determines whether to run the ensemble-stat verification for gridded data task. The :ref:`MET Ensemble-Stat tool ` provides verification statistics for ensemble forecasts and can be used in conjunction with the :ref:`MET Grid-Stat tool `. See :numref:`Section %s ` for additional parameters related to this task. Valid values: ``True`` | ``False`` - https://met.readthedocs.io/en/latest/Users_Guide/ensemble-stat.html - ``RUN_TASK_VX_ENSPOINT``: (Default: false) Flag that determines whether to run the ensemble point verification task. If this flag is set, both ensemble-stat point verification and point verification of ensemble-stat output is computed. The :ref:`MET Ensemble-Stat tool ` provides verification statistics for ensemble forecasts and can be used in conjunction with the :ref:`MET Point-Stat tool `. See :numref:`Section %s ` for additional parameters related to this task. Valid values: ``True`` | ``False`` From 0229865c3c3cab216b9f40e40d40c072d019485c Mon Sep 17 00:00:00 2001 From: gspetro Date: Mon, 24 Oct 2022 16:46:21 -0400 Subject: [PATCH 38/58] add info from Mike L. --- docs/UsersGuide/source/BuildSRW.rst | 8 ++++++-- docs/UsersGuide/source/Glossary.rst | 2 -- docs/UsersGuide/source/RunSRW.rst | 4 +--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/UsersGuide/source/BuildSRW.rst b/docs/UsersGuide/source/BuildSRW.rst index ef0c5e6a62..53fa27fd64 100644 --- a/docs/UsersGuide/source/BuildSRW.rst +++ b/docs/UsersGuide/source/BuildSRW.rst @@ -298,7 +298,10 @@ After running ``devbuild.sh``, the executables listed in :numref:`Table %s `__ (GSI) is a variational data assimilation system, designed to be flexible, state-of-art, and run efficiently on various parallel computing platforms. It supports :term:`RRFS` features. GSI code is publicly available `on GitHub `__, but some features are only accessible to NOAA affiliates. - .. COMMENT: What does GSI do... just data assimilation stuff? How is it different from JEDI and other options? What is available to the public? What is needed for running RRFS? - GSL NOAA `Global Systems Laboratory `__ is one of ten NOAA Research laboratories and is located in Boulder, Colorado. Its research improves environmental prediction models, develops state-of-the-science decision support tools and visualization systems, and uses high-performance computing technology to support a Weather-Ready Nation. diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index 4705ba95ce..8b5a3863f0 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -751,9 +751,7 @@ Run the following command from the ``ufs-srweather-app/ush`` directory to genera The last line of output from this script, starting with ``*/1 * * * *`` or ``*/3 * * * *``, can be saved and :ref:`used later ` to automatically run portions of the workflow if users have the Rocoto workflow manager installed on their system. -This workflow generation script creates an experiment directory and populates it with all the data needed to run through the workflow. The flowchart in :numref:`Figure %s ` describes the experiment generation process. First, ``generate_FV3LAM_wflow.py`` runs the ``setup.py`` script to set the configuration parameters. Second, it copies the time-independent (fix) files and other necessary data input files from their location in the ufs-weather-model directory to the experiment directory (``$EXPTDIR``). Third, it copies the Weather Model executable (``ufs_model``) from the ``exec`` directory to ``$EXPTDIR`` and creates the input namelist file ``input.nml`` based on the ``input.nml.FV3`` file in the ``parm`` directory. Lastly, it creates the workflow XML file ``FV3LAM_wflow.xml`` that is executed when running the experiment with the Rocoto workflow manager. - -.. COMMENT: ufs-weather-model directory doesn't exist... What was intended here? +This workflow generation script creates an experiment directory and populates it with all the data needed to run through the workflow. The flowchart in :numref:`Figure %s ` describes the experiment generation process. First, ``generate_FV3LAM_wflow.py`` runs the ``setup.py`` script to set the configuration parameters. Second, it copies the time-independent (fix) files and other necessary data input files from their location in the ``sorc/ufs-weather-model`` directory to the experiment directory (``$EXPTDIR``). Third, it copies the Weather Model executable (``ufs_model``) from the ``exec`` directory to ``$EXPTDIR`` and creates the input namelist file ``input.nml`` based on the ``input.nml.FV3`` file in the ``parm`` directory. Lastly, it creates the workflow XML file ``FV3LAM_wflow.xml`` that is executed when running the experiment with the Rocoto workflow manager. The ``setup.py`` script reads three other configuration scripts in order: (1) ``config_defaults.yaml`` (:numref:`Section %s `), (2) ``config.yaml`` (:numref:`Section %s `), and (3) ``set_predef_grid_params.py``. If a parameter is specified differently in these scripts, the file containing the last defined value will be used. From 63c46e21ce206534a2413b3e28066c75ed22d310 Mon Sep 17 00:00:00 2001 From: gspetro Date: Mon, 24 Oct 2022 21:56:57 -0400 Subject: [PATCH 39/58] update build & workflow images --- docs/UsersGuide/source/BuildSRW.rst | 9 ++++++++- docs/UsersGuide/source/RunSRW.rst | 4 ++-- .../source/_static/SRW_build_process.png | Bin 0 -> 60156 bytes .../source/_static/SRW_overall_workflow_run.png | Bin 0 -> 84193 bytes 4 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 docs/UsersGuide/source/_static/SRW_build_process.png create mode 100644 docs/UsersGuide/source/_static/SRW_overall_workflow_run.png diff --git a/docs/UsersGuide/source/BuildSRW.rst b/docs/UsersGuide/source/BuildSRW.rst index 53fa27fd64..280bd0cc60 100644 --- a/docs/UsersGuide/source/BuildSRW.rst +++ b/docs/UsersGuide/source/BuildSRW.rst @@ -20,6 +20,13 @@ To build the SRW App, users will complete the following steps: #. :ref:`Check out the external repositories ` #. :ref:`Set up the build environment and build the executables ` +.. _AppBuildProc: + +.. figure:: _static/SRW_build_process.png + :alt: Flowchart describing the SRW App build process. + + *Overview of the SRW App Build Process* + .. _HPCstackInfo: @@ -346,7 +353,7 @@ After running ``devbuild.sh``, the executables listed in :numref:`Table %s 3}Qf9NerO^<3$!9Z3H)@~@o_ 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

ID^3Q1X32~c-JReHN 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

8)r(GYo>8 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 Wls5}&IdX{xd^FXNs>Lc+kN*Q+gs%nw literal 0 HcmV?d00001 diff --git a/docs/UsersGuide/source/_static/SRW_overall_workflow_run.png b/docs/UsersGuide/source/_static/SRW_overall_workflow_run.png new file mode 100644 index 0000000000000000000000000000000000000000..2f2859e7e943462812574d08887c605f3be6b846 GIT binary patch literal 84193 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 literal 0 HcmV?d00001 From 2c20202c93bdfcc6b919fb31dcbd07c61a7de7da Mon Sep 17 00:00:00 2001 From: gspetro Date: Mon, 24 Oct 2022 22:24:37 -0400 Subject: [PATCH 40/58] update workflow generation image --- docs/UsersGuide/source/RunSRW.rst | 2 +- .../_static/SRW_regional_workflow_gen.png | Bin 0 -> 162911 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 docs/UsersGuide/source/_static/SRW_regional_workflow_gen.png diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index 711c3116a0..3c6298e3f2 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -759,7 +759,7 @@ The generated workflow will appear in ``$EXPTDIR``, where ``EXPTDIR=${EXPT_BASED .. _WorkflowGeneration: -.. figure:: _static/FV3regional_workflow_gen_v2.png +.. figure:: _static/SRW_regional_workflow_gen.png :alt: Flowchart of the workflow generation process. Scripts are called in the following order: source_util_funcs.sh (which calls bash_utils), then set_FV3nml_sfc_climo_filenames.sh, set_FV3nml_stock_params.sh, create_diag_table_files.sh, and setup.py. setup.py calls several scripts: set_cycle_dates.sh, set_grid_params_GFDLgrid.sh, set_grid_params_ESGgrid.sh, link_fix.sh, set_ozone_param.sh, set_Thompson_mp_fix_files.sh, config_defaults.sh, config.sh, and valid_param_vals.sh. Then, it sets a number of variables, including FIXgsm, TOPO_DIR, and SFC_CLIMO_INPUT_DIR variables. Next, set_predef_grid_params.sh is called, and the FIXam and FIXLAM directories are set, along with the forecast input files. The setup script also calls set_extrn_mdl_params.sh, sets the GRID_GEN_METHOD with HALO, checks various parameters, and generates shell scripts. Then, the workflow generation script sets up YAML-compliant strings and generates the actual Rocoto workflow XML file from the template file (fill_jinja_template.py). The workflow generation script checks the crontab file and, if applicable, copies certain fix files to the experiment directory. Then, it copies templates of various input files to the experiment directory and sets parameters for the input.nml file. Finally, it generates the workflow. Additional information on each step appears in comments within each script. *Experiment generation description* diff --git a/docs/UsersGuide/source/_static/SRW_regional_workflow_gen.png b/docs/UsersGuide/source/_static/SRW_regional_workflow_gen.png new file mode 100644 index 0000000000000000000000000000000000000000..1db6c5790c2c25cf739707db951ebeafb3f5d76f GIT binary patch literal 162911 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

-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

EK@pC5`$O+YF?ue%73F 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 Date: Mon, 24 Oct 2022 22:34:21 -0400 Subject: [PATCH 41/58] update image --- .../source/SRW_overall_workflow_run.png | Bin 0 -> 82594 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/UsersGuide/source/SRW_overall_workflow_run.png diff --git a/docs/UsersGuide/source/SRW_overall_workflow_run.png b/docs/UsersGuide/source/SRW_overall_workflow_run.png new file mode 100644 index 0000000000000000000000000000000000000000..f9f1aa7b87ef906c41619611ccb3320241dc4c6f GIT binary patch literal 82594 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 z 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 Date: Mon, 24 Oct 2022 22:37:20 -0400 Subject: [PATCH 42/58] update image --- .../source/_static/SRW_build_process.png | Bin 60156 -> 59669 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/UsersGuide/source/_static/SRW_build_process.png b/docs/UsersGuide/source/_static/SRW_build_process.png index 565d779a6e443cb49aabc7640714156682a50058..ceb0cbad05203020a6f8b155107eb01f0e949888 100644 GIT binary patch literal 59669 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 z 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 literal 60156 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

ID^3Q1X32~c-JReHN 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

8)r(GYo>8 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 Wls5}&IdX{xd^FXNs>Lc+kN*Q+gs%nw From a6031e8f15faa85d546ac424345385efd1f435e4 Mon Sep 17 00:00:00 2001 From: gspetro Date: Mon, 24 Oct 2022 23:06:45 -0400 Subject: [PATCH 43/58] fix reviewer comments --- docs/UsersGuide/source/BuildSRW.rst | 17 +++++++---------- docs/UsersGuide/source/ConfigWorkflow.rst | 10 +++++----- docs/UsersGuide/source/Glossary.rst | 6 ++++++ docs/UsersGuide/source/RunSRW.rst | 2 +- 4 files changed, 19 insertions(+), 16 deletions(-) diff --git a/docs/UsersGuide/source/BuildSRW.rst b/docs/UsersGuide/source/BuildSRW.rst index 280bd0cc60..6962d66a41 100644 --- a/docs/UsersGuide/source/BuildSRW.rst +++ b/docs/UsersGuide/source/BuildSRW.rst @@ -115,7 +115,13 @@ The cloned repository contains the configuration files and sub-directories shown +--------------------------------+-----------------------------------------------------------+ | README.md | Getting Started Guide | +--------------------------------+-----------------------------------------------------------+ - | rename_model.sh | | + | rename_model.sh | Used to rename the model before it becomes NCO | + | | operational. The SRW App is a generic app that is the base| + | | for models such as :term:`AQM` and :term:`RRFS`. When | + | | these models become operational, variables like | + | | ``HOMEdir`` and ``PARMdir`` will be renamed to | + | | ``HOMEaqm``/``HOMErrfs``, ``PARMaqm``/``PARMrrfs``, etc. | + | | using this script. | +--------------------------------+-----------------------------------------------------------+ | scripts | Contains the *ex-script* for each workflow task. | | | These scripts are where the script logic and executables | @@ -418,15 +424,6 @@ From the build directory, run the following commands to build the pre-processing ``-DCMAKE_INSTALL_PREFIX`` specifies the location in which the ``exec``, ``include``, ``lib``, and ``share`` directories will be created. These directories will contain various components of the SRW App. Its recommended value ``..`` denotes one directory up from the build directory. In the next line, the ``make`` argument ``-j 4`` indicates that the build will run in parallel with 4 threads. Although users can specify a larger or smaller number of threads (e.g., ``-j 8``, ``-j 2``), it is highly recommended to use at least 4 parallel threads to prevent overly long installation times. -If users want to build the optional ``GSI`` and ``rrfs_utl`` components for RRFS, they can add ``ENABLE_RRFS=on`` to the original cmake command. (NOTE: These components are not currently available for use at runtime.) For example: - -.. COMMENT: What does this comment mean??? - -.. code-block:: console - - cmake .. -DCMAKE_INSTALL_PREFIX=.. ENABLE_RRFS=on - make -j 4 >& build.out & - The build will take a few minutes to complete. When it starts, a random number is printed to the console, and when it is done, a ``[1]+ Done`` message is printed to the console. ``[1]+ Exit`` indicates an error. Output from the build will be in the ``ufs-srweather-app/build/build.out`` file. When the build completes, users should see the forecast model executable ``ufs_model`` and several pre- and post-processing executables in the ``ufs-srweather-app/exec`` directory. These executables are described in :numref:`Table %s `. .. hint:: diff --git a/docs/UsersGuide/source/ConfigWorkflow.rst b/docs/UsersGuide/source/ConfigWorkflow.rst index e0d6d18cf7..1f927895f2 100644 --- a/docs/UsersGuide/source/ConfigWorkflow.rst +++ b/docs/UsersGuide/source/ConfigWorkflow.rst @@ -74,8 +74,8 @@ If non-default parameters are selected for the variables in this section, they s ``SCHED``: (Default: "") The job scheduler to use (e.g., Slurm) on the specified ``MACHINE``. Leaving this an empty string allows the experiment generation script to set it automatically depending on the machine the workflow is running on. Valid values: ``"slurm"`` | ``"pbspro"`` | ``"lsf"`` | ``"lsfcray"`` | ``"none"`` -``SLURM_NATIVE_CMD``: (Default: "") - Allows an extra parameter to be passed to slurm via XML Native command. +``SCHED_NATIVE_CMD``: (Default: "") + Allows an extra parameter to be passed to the job scheduler (Slurm or PBSPRO) via XML Native command. ``DOMAIN_PREGEN_BASEDIR``: (Default: "") For use in NCO mode only (``RUN_ENVIR: "nco"``). The base directory containing pregenerated grid, orography, and surface climatology files. This is an alternative for setting ``GRID_DIR``, ``OROG_DIR``, and ``SFC_CLIMO_DIR`` individually. For the pregenerated grid specified by ``PREDEF_GRID_NAME``, these "fixed" files are located in: @@ -245,7 +245,7 @@ Set File Name Parameters ``EXPT_CONFIG_FN``: (Default: "config.yaml") Name of the user-specified configuration file for the forecast experiment. -``CONSTANTS_FN``: (Default: "constants.sh") +``CONSTANTS_FN``: (Default: "constants.yaml") Name of the file containing definitions of various mathematical, physical, and SRW App contants. ``RGNL_GRID_NML_FN``: (Default: "regional_grid.nml") @@ -970,7 +970,7 @@ Model Configuration Parameters These parameters set values in the Weather Model's ``model_configure`` file. ``DT_ATMOS``: (Default: "") - Time step for the outermost atmospheric model loop in seconds. This corresponds to the frequency at which the physics routines and the top level dynamics routine are called. (Note that one call to the top-level dynamics routine results in multiple calls to the horizontal dynamics, :term:`tracer` transport, and vertical dynamics routines; see the `FV3 dycore scientific documentation `__ for details.) Must be set. Takes an integer value. In the SRW App, a default value for ``DT_ATMOS`` appears in the ``set_predef_grid_params.py`` script, but a different value can be set in ``config.yaml``. + Time step for the outermost atmospheric model loop in seconds. This corresponds to the frequency at which the physics routines and the top level dynamics routine are called. (Note that one call to the top-level dynamics routine results in multiple calls to the horizontal dynamics, :term:`tracer` transport, and vertical dynamics routines; see the `FV3 dycore scientific documentation `__ for details.) Must be set. Takes an integer value. In the SRW App, a default value for ``DT_ATMOS`` appears in the ``set_predef_grid_params.yaml`` script, but a different value can be set in ``config.yaml``. ``RESTART_INTERVAL``: (Default: 0) Frequency of the output restart files in hours. Using the default interval (0), restart files are produced at the end of a forecast run. When ``RESTART_INTERVAL: 1``, restart files are produced every hour with the prefix "YYYYMMDD.HHmmSS." in the ``RESTART`` directory. @@ -1075,7 +1075,7 @@ Predefined Grid Parameters ------------------------------ ``PREDEF_GRID_NAME``: (Default: "") - This parameter indicates which (if any) predefined regional grid to use for the experiment. Setting ``PREDEF_GRID_NAME`` provides a convenient method of specifying a commonly used set of grid-dependent parameters. The predefined grid settings can be viewed in the script ``ush/set_predef_grid_params.py``. + This parameter indicates which (if any) predefined regional grid to use for the experiment. Setting ``PREDEF_GRID_NAME`` provides a convenient method of specifying a commonly used set of grid-dependent parameters. The predefined grid settings can be viewed in the script ``ush/set_predef_grid_params.yaml``. **Currently supported options:** diff --git a/docs/UsersGuide/source/Glossary.rst b/docs/UsersGuide/source/Glossary.rst index 9e80e0172c..873102b8d8 100644 --- a/docs/UsersGuide/source/Glossary.rst +++ b/docs/UsersGuide/source/Glossary.rst @@ -12,6 +12,9 @@ Glossary advection According to the American Meteorological Society (AMS) `definition `__, advection is "The process of transport of an atmospheric property solely by the mass motion (velocity field) of the atmosphere." In common parlance, advection is movement of atmospheric substances that are carried around by the wind. + AQM + The `Air Quality Model `__ (AQM) is a UFS Application that dynamically couples the Community Multiscale Air Quality (:term:`CMAQ`) model with the UFS Weather Model through the :term:`NUOPC` Layer to simulate temporal and spatial variations of atmospheric compositions (e.g., ozone and aerosol compositions). The CMAQ, treated as a column chemistry model, updates concentrations of chemical species (e.g., ozone and aerosol compositions) at each integration time step. The transport terms (e.g., :term:`advection` and diffusion) of all chemical species are handled by the UFS Weather Model as :term:`tracers`. + CAPE Convective Available Potential Energy. @@ -28,6 +31,9 @@ Glossary CIN Convective Inhibition. + CMAQ + The `Community Multiscale Air Quality Model `__ (CMAQ, pronounced "cee-mak") is a numerical air quality model that predicts the concentration of airborne gases and particles and the deposition of these pollutants back to Earth's surface. The purpose of CMAQ is to provide fast, technically sound estimates of ozone, particulates, toxics, and acid deposition. CMAQ is an active open-source development project of the U.S. Environmental Protection Agency (EPA). Code is publicly availably at https://github.com/USEPA/CMAQ. + cron crontab cron table diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index 3c6298e3f2..8c0b32eaa1 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -751,7 +751,7 @@ Run the following command from the ``ufs-srweather-app/ush`` directory to genera The last line of output from this script, starting with ``*/1 * * * *`` or ``*/3 * * * *``, can be saved and :ref:`used later ` to automatically run portions of the workflow if users have the Rocoto workflow manager installed on their system. -This workflow generation script creates an experiment directory and populates it with all the data needed to run through the workflow. The flowchart in :numref:`Figure %s ` describes the experiment generation process. First, ``generate_FV3LAM_wflow.py`` runs the ``setup.py`` script to set the configuration parameters. Second, it copies the time-independent (fix) files and other necessary data input files from their location in the ``sorc/ufs-weather-model`` directory to the experiment directory (``$EXPTDIR``). Third, it copies the Weather Model executable (``ufs_model``) from the ``exec`` directory to ``$EXPTDIR`` and creates the input namelist file ``input.nml`` based on the ``input.nml.FV3`` file in the ``parm`` directory. Lastly, it creates the workflow XML file ``FV3LAM_wflow.xml`` that is executed when running the experiment with the Rocoto workflow manager. +This workflow generation script creates an experiment directory and populates it with all the data needed to run through the workflow. The flowchart in :numref:`Figure %s ` describes the experiment generation process. First, ``generate_FV3LAM_wflow.py`` runs the ``setup.py`` script to set the configuration parameters. Second, it copies the time-independent (fix) files and other necessary data input files from their location to the experiment directory (``$EXPTDIR``). Third, it copies the Weather Model executable (``ufs_model``) from the ``exec`` directory to ``$EXPTDIR`` and creates the input namelist file ``input.nml`` based on the ``input.nml.FV3`` file in the ``parm`` directory. Lastly, it creates the workflow XML file ``FV3LAM_wflow.xml`` that is executed when running the experiment with the Rocoto workflow manager. The ``setup.py`` script reads three other configuration scripts in order: (1) ``config_defaults.yaml`` (:numref:`Section %s `), (2) ``config.yaml`` (:numref:`Section %s `), and (3) ``set_predef_grid_params.py``. If a parameter is specified differently in these scripts, the file containing the last defined value will be used. From 63a6b1b027ff5fb131bab8ff158b2f4d7d7c98fc Mon Sep 17 00:00:00 2001 From: gspetro Date: Mon, 24 Oct 2022 23:31:05 -0400 Subject: [PATCH 44/58] update expt gen image --- docs/UsersGuide/source/RunSRW.rst | 2 +- .../_static/SRW_regional_workflow_gen.png | Bin 162911 -> 163046 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index 8c0b32eaa1..e338b096c9 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -760,7 +760,7 @@ The generated workflow will appear in ``$EXPTDIR``, where ``EXPTDIR=${EXPT_BASED .. _WorkflowGeneration: .. figure:: _static/SRW_regional_workflow_gen.png - :alt: Flowchart of the workflow generation process. Scripts are called in the following order: source_util_funcs.sh (which calls bash_utils), then set_FV3nml_sfc_climo_filenames.sh, set_FV3nml_stock_params.sh, create_diag_table_files.sh, and setup.py. setup.py calls several scripts: set_cycle_dates.sh, set_grid_params_GFDLgrid.sh, set_grid_params_ESGgrid.sh, link_fix.sh, set_ozone_param.sh, set_Thompson_mp_fix_files.sh, config_defaults.sh, config.sh, and valid_param_vals.sh. Then, it sets a number of variables, including FIXgsm, TOPO_DIR, and SFC_CLIMO_INPUT_DIR variables. Next, set_predef_grid_params.sh is called, and the FIXam and FIXLAM directories are set, along with the forecast input files. The setup script also calls set_extrn_mdl_params.sh, sets the GRID_GEN_METHOD with HALO, checks various parameters, and generates shell scripts. Then, the workflow generation script sets up YAML-compliant strings and generates the actual Rocoto workflow XML file from the template file (fill_jinja_template.py). The workflow generation script checks the crontab file and, if applicable, copies certain fix files to the experiment directory. Then, it copies templates of various input files to the experiment directory and sets parameters for the input.nml file. Finally, it generates the workflow. Additional information on each step appears in comments within each script. + :alt: Flowchart of the workflow generation process. Scripts are called in the following order: source_util_funcs.sh (which calls bash_utils), then set_FV3nml_sfc_climo_filenames.py, set_FV3nml_ens_stoch_seeds.py, create_diag_table_file.py, and setup.py. setup.py calls several scripts: set_cycle_dates.sh, set_grid_params_GFDLgrid.sh, set_grid_params_ESGgrid.sh, link_fix.sh, set_ozone_param.sh, set_Thompson_mp_fix_files.sh, config_defaults.sh, config.sh, and valid_param_vals.sh. Then, it sets a number of variables, including FIXgsm, TOPO_DIR, and SFC_CLIMO_INPUT_DIR variables. Next, set_predef_grid_params.sh is called, and the FIXam and FIXLAM directories are set, along with the forecast input files. The setup script also calls set_extrn_mdl_params.sh, sets the GRID_GEN_METHOD with HALO, checks various parameters, and generates shell scripts. Then, the workflow generation script sets up YAML-compliant strings and generates the actual Rocoto workflow XML file from the template file (fill_jinja_template.py). The workflow generation script checks the crontab file and, if applicable, copies certain fix files to the experiment directory. Then, it copies templates of various input files to the experiment directory and sets parameters for the input.nml file. Finally, it generates the workflow. Additional information on each step appears in comments within each script. *Experiment generation description* diff --git a/docs/UsersGuide/source/_static/SRW_regional_workflow_gen.png b/docs/UsersGuide/source/_static/SRW_regional_workflow_gen.png index 1db6c5790c2c25cf739707db951ebeafb3f5d76f..0454e68b1c757671fe961f4b0b83cda2819ffae4 100644 GIT binary patch literal 163046 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 b&V&Dq0bO~1GkxRdG5~?6tDnm{r-UW|_D(`P literal 162911 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

-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

EK@pC5`$O+YF?ue%73F z+H!U_et4|rRWK~KC+RWouKBB2kM`ZKmxb~Fy?%lEmNdlcgxt8rT2L^u^bw|$;lpOd zIC#Q|Qjj;#yNdTbF!6h;KY(9^h#%5m$6GzSS{fjL4lFU42wE9{Z^D0!_;o=mM%)A@ z%DjomeD{yKMMa8~q1Ofe4w(y0*AFsFrvK!6?5w0;zta953!hMuGfh@hL}AE^jf%r) zm?#ZE)EnaPhosnOasm-_d9+^^F1o3*ZH=5J(L!p;p>O9gh!bcVN*+Igk-hKmpBQZ# zKQdZ;d(f+rBCc~BAO|<0C-gzOW8DBQUoNNE0#CbfBm5lxK(T}NRjzXw&USz=2D+b~ zED&GroSZhMjY%5rx?k8f#K2LuNIo2I-kyEC1NvbYoQUQfeq&l+!`N>>D5EcPL&yNn z=}Lz-fg=ID{Fx=8UR=#hO%xFL#BD$VPrDl#WoxU+q9KABJJqB+)~Mspe;P3U)x33J za$<#)CF-vy2>O*0^FWtCW5Te($CB zhOZ0Tv=oR7PiZ_;4VeQk3DNj8owS(IOo1S ze0tVPN(0I$xWM=4oe8^Jr%dY^qMzCr0AvoP>h+isBUT-{3Dve$TDgewHlIBXmtWZC z#*o>ScG*ku3W5LJikPskHwoj-vR~R$%c*!@B)i1kWw@KhK)L8D08L|}#%$}P8r6OB zrBL)Z#jeo{ZJN`YZJNoVA}k{iu?5l;&i4O)n%gFRyc8DrG%VGhGxiifJ_2R;H2Zsg zGmSJOw6Z~015#lxhC;;OQIF-QMK?0PX)P3XJ=D7aT?_eOiZ=m3rx`DL59VqL0Q|jr zm}{uN+5K$esO>QYlU#^yGuh$A1Y5JqpZVvRqgR2CU<6t@3@9D?zhu%ljY7K0fBbm6 zHJnBpNyuL5H~Qj_11m_|f!Q|S{y8hK25>-DmYR=5aqeFVcK(>r&rMc)d-vOy5CA7$ zwT@Nj%D+hGC%oCAjdxwf(f%q9YNn;nU3cWoG;)$tLhM0ED@yJ*-G;e(T62@rw&|tu z)smDgAH_PJDu}y9-d*Z`BCOyx`N=B-rn&jr8;O5=2*Gm;t>goyP%%`bEtLOiTu!F- zMmFEs3e=6vOlJ#4-rbf#^i2;gW@HMLaftcK$pViR_a1HASOdBPJzaKjLx_cVl&?Za zJDn(e1kS0lJxcpk#lpR=zW}W`wdm@wiKeQBzWVMo&G0RSy72^E{K>k^_a(k=P`M%# zf{sHB{Q-R@f~X3m?&P)0Uu3Bw(=RID$i8-6dakC1yS3U!DU;=;X1q1b@g9YY>ele- zy4O`^zgc$ptC6N7f_wAugQlu}600z;WB>jk_RzQJl==@|1Z>ZUd6{4M7O5Cgr0B9K zv)@vBxmAI#>=#(0rt8sNcQ}W?bY+k+aCeuQpagCYzaPVomp^YlN7w?vfj(qnk&QSh zW5Ab>v(cH8lCEELP;zE0miv+w-7J0x+Bp)=uR!FcDdV6(>=GcWI{t{|B|j*#RM0(; zFc4Y>*R)zLjfg#Z5f*aZrwiEUUMgDF8$V6Yr$mysC98jb4Joz;Vu}NpDmUGOG5WhU z-^_yA+9~ogtPd@PK6n5-@y98$pxrmk?TlQc?SVr`QZZXv0a_{-+!{61DWUUBs zw?J{E)ANg&Tvm^GP9w=`ypYm6F}m#xM`>hq2x`hN_!vL?_qJwP#0m9E?D)hYLUdj` z0W;ci#s{+;Q@#(h)%%r(`T|l9{IgWUDEXL~9QmUQ69tCL;DkLMF3OHL-^EJ_L`F2m zpgl~tjlgbY4($F@jh5{62~!%UTF_dD2+y0>7)YC))s~3AH*3n59sC*Vf0=n%BnM&A_$=zju`wmr`xy-rmm-p6)U~u~Upt;&F8Vuv?BHUKZ{7T+1S- zh}s}Xjh#yFg57Y^%W)pb9+BbW;h=oDIh5+v6Lb2+KPTjJ+`A=Ud`7;VPkrBcZdP1{ z1n(=WlWw)K0*Bl2N=|-0o!g(f8H5XIHjV2b(2fLtz^cVb_~A3iRP@7DT;w|3@w>V(1f;*XHTU~C z6<25Za*|_+zRbn>S?kZIzLyLPG}xPpm;)Iqs#(|Hr)O<y2$P)F^4Z>C}ev^|_s7kdS+6z6rWr*TV>Eqm46d1!cg z-y(GY1uc|>hY`ZoQhP_F$G`9bQtP8Qi@}f7@!2XQ)C*C_`DwtUs;VC5;Sbv3P@g6) zt}KbkLW$#Uyv>eK4730Wkxrxg!kxanJCeUIKO@0k8;nBnmXFpVyNn*#b)F$j7Nt`D zb={~L?R4D0Ie72E1kK{4h3I@o4~XV_8ZcMW<#@aFRLF@@HBY0A%I$LQblu5QRRn)4 z*1=u)@CP=-AjlZ6w)o!jHVe5s5cw<$PzqIj7gYECFN@Fa^Cnt{ZTXFtn(m#gW#lF8 zAH{>;ZEY-t3Fg-4R%K!z#4NR@@aEMDg?$k(-W=pq=+NO2Ess1-YM#-je+0SiW51Qn zMFkO7@4uJMGe?s)KY#KqD0|i^E^}dLYyLzeAX~g-@UpKdBposN+%0sZ- zqA1+*n^)M_SyVUGXF_9?jVGf;zh0_Xt{73#jx9F@0aI{Rj`RD@ICrX};z|j@x)Bwk zYJBMRYvKL!SG~9*+gB$CG%{hog5_y2#TG;RKQ4STVzfT~(t#JtO<}{aw$RZM_uhb2 zH)JCHm@z3W!~46~(@p$-+17hLGChTcuf-^o4Np!nmG?caFkfRHhOTb*p2hI%@0&4@ zcW{^g#$@P%1Kp6hGSx}Jr(=#`A4BKl`$@ALJuE5RrHw1iNyydr-EvBV7v! zYMKufOVN7;zm`j`Hh@cHO#kbBZK!R|U8P3{MqQ-!`|0#A`}AUX^vZVjAo(c|x@0H3 zjQ$`8MkQ`n)ivQepr*BKBq(JlBdL+s18>QEygG!zrNkvK0QKg)Z>N?zYeTo?p4qoa z_qi>lz(9}F^y`T@3n1iQ?pbfx1?c_l4O7ZTel))p_fnl0Y_OWC)KSH9!GO=+c(@%e zkl>NOuvdRGbH)A#bHja70A#`sIOGa_uUAoCAJwst&hN|BDd9lll8+bXPDfzE7y>*= zijyNPrNKNO1k2+$z83lbK8X$_m%q?ly-1>hM4IFbDcZa0ncf+e440L#Z2NbrRPATkK<K)m-Dho68{j>X4Mo4g3$>KUqr5>nIT`kDz?$9Q^InrLGL zI&t!9j**K?(A#m$ppoWz-`J<{PF4c3N~NvYUGK0e4A{pMajUlMrtQDQy8Z~(l+G?@ zLsLU0RyDg?_N*G*S+-9-iF2@p4ws-KpcyvFwXhh~=3Zslb?Q4$Yv?@Q&46Bto+M`$ z^0$a{O|P8|$|@U66(?+52lT_~IX_^_HuqwSHIJH=rLF?CB9(hYK|kZU6ZkWS5nhll4BYUt32~=e&e2a$erjCKl9@y z@(O7w@Oe-FT&x^QA5eCGPqpN7cd`F-4r<_5NvK7iZY+CV+zWERQD$Ks`TJtJtreAA zA=z>pdr~$#f)SCC1f1#%k_j|+^t$p}VO*Z>j8Nr1-hy!l&kxT;w5CP7F>=vRJI55) zpRoST3}v8wytvwFE<`6X$}wOL;?&|w2qH;hDoH})jo)eIl|;hd09!v z6lsO3Ssal1quo6JxC;O0n-_HC&|P8!4nf4zv1i;nBUo&qwVI}Gj~0+I^R6mC*Mr44Ve)EX_k&M58BK^!H%pM&~%wA6wRBz_@W9YjA!Ark<2~aeFGPr zS;@>z{G?J=fejJzch?WKxqn$x+awvuVv9@-B2TruzG_m4*4#pr00&LWPaN@?W@}KZ zpt=cMl=7G)MsjTRcuF-Kw^Y1(51jiWQmq!~21%==am zpiW~iS8iU=M~)GtaQ_75UEW7<5htkFhoD2>Ir{kF;kIvnCd7*CXHrS+s_?UfQxyJm zZ>>VV>z3Tcc&9T>v#DZUkH~`5q~=lSE47=7z?VrYCHb@|j_hJ81dIFFVBZr5e7 za$R!ykKMFb8woKM@404kPBpo!HGEMP@_r;GWv!2_Zajh8CVGo$R)t*?M33)iArzu- za?G?ehAbIANi;)cKI8&jBpf}xpEE#s+AB;-w^};UQ6B9EZ5OUPDU12@5!748MSd(6 zdL`1lW%qsMTGZgB*ia3WfDi>C^f^hM-YZ(%k2`Xfav}&qIaKmdBt3)^nFEw<2`U5L z<#F_~lLndMTTBHi@myXLhPtg+ysd5I{H^=jF`GfMr1D7KB5E%+MA#iY%RC{}6(LgQ zfPt-w=rB^KKSvM(G2VXpD|SoReIy8!YHouC$i?H)n`yI@9QXUBZSS?Jtio_{$tyqL z=IZw`*RWL*{5j{)`t`W&qb-=~@iy#ooshke-)D98yK}k${z&l3A>wrx9%g@62??cz zRUuVjjI?nvlJ8se`_syzr%}!%>`4A)`rgJxd>WkO*F{$LAubO|C z_0Pz?Dy>^p$(>{ZB#8Xmx>J}RRlKcxj`lj9-*eVLVvtakL5*Y=)5*~Um&SXQSGg3c zr0$wm`mbMi)#=E|tcF%Ctd*V4XztZ9mIVw zCED^wBeSS5?#pf-9_H=87>>q|r%#{SD`)c3!o4lCc%H*Dx1gC6`}~@!Y^8r+++5wl zi+jA!r@NMvmlg@TeOlAWW-Da7CQv@`%!`WZYrRR~WwvrR{B>B#Vv(zDKEp=5xOX2~ zg4uGt%uEbIFwj7V)ErVu0GyH zr?cGz_uTtop?e&&EF_#a4LMHu}oqTrl>ig0>Li`A5TB_UtgF^+SfOZd1ofhsfKSov1qMRq>#Na?renH zg#7(E^;GjyDi~=G#G)N|VUkj=I8P5nYIr|=L zS6(-gXiw~saPciQB~(3*i^=@1hHR4n&fL*7z`U9BFaEpGk#t>>*5V9ZPQtCQ4T3MM zhSqV%FaG!J;b^(Mq+r!138+S38!ij`x2{7A&-)T+PZI5KTbahSsmS^P!i_;0*lBEqJ9z; z94RI5`i!tOQ$Ie5Byizpn3seVRn_(b^-D`Op-@)ktR`$aV>aV;io&>7@ITjUT4V@W zUuSi5o6PmZCpB*Iw#Q3R8VCxg%uTi2>^sfbY-EyiQqvX(G~~Mdjr_QoAtIi|`O%S> zCG{`WqU6rYeG}&XN2vWAFppBBF|)k5!M(CGCxO+#!ga_i)Ng87|&(ekXzOY~SrLhHMD z71bv>AxeXxDQBXEF!S)Kr}@Kncy~p$Ws$aLLK+*K+(@++Uf_fsf}LoWa0mjZX?Z5R za(}cR#Sys6f=%%Ci$EFBq2PB4PNlC zb*0`!PC;jwJ%`FONTBBZJ5$cq%f#H}lppz>9h%;$-))&_=K8ax#l8pg*6b)U=is5? zPL)i#<7G-q0*TnX7>ZLENy#SP*en5DsuaTO?BptzPLF6yr=%<9r*h2)SScBZW&W5` zB)cj_f6AmfU-TsHfF2rVvTE|JeN;hxy$1e7d`{@H{%uE?h&Q}xs_2zu?UaMDBXi_64O(tbw<>wytAiY7vU5I$6?t#>X)J?yV`z8qiC6Sys%05G z$-Q}FtZ9bZ*C0%n{I=5G(0lje$k(U-Pg9zo{FvYYtWXSgU*=5#@wv78Hya_Gn zotlEJ593>_O47LEG&n| z+L}nqxsliBBKF8Rwf9Q@p9Lf&lG11`IW%21eNTrsc4F0e_WAr2D<}ZfQ z>GBu54;v2xvRB+NQtmy>cMuts!wG}qL6qN^)@B4d5of+y+AwM=8JvNeD`tpoTX2km z36(;_aOEUiFZD%VOmvn7u&Q?LM7~i9( z`6BO2@rerCUmE$uHQ?AT+mRKIaTls)@uqHyy^?+16aQxu)iw3@Qq>Y~Pvn8}Y)$r~nbu1pO$aV0j3jxKy@^@ebXJ^ZDAo zL4#(VUD&C2V)_jZSz-Wq6*l*VVOf-?W``gRySeM2Pa>>iz#iNSZz#viG8@$Ycrxgo z+|tVCny<7<#Yn%3N!8`wql*r>l6wz4V{%U_{fv{u~Bn5v*qP`Yo>MD5qxDB0um=BHWW-DD`$Acp+=t#{e-eI;6p=>k<6Gy*qPfHvAz-P;I$Ca~{?hmN6g2Zp& zTf4O%FRIg^TjQAcJHw(+!@eAE58N>)e_ThS*t89)vUC3VraVE=bEs)gTBQaFwt*Mf z@aE&|&Rn;Pre@nq+<%-wKEH$QBe>JWaO4{CJ&QNXYacwn4E7?qOk@PvQ_ZIv1rQxU zQikY_Rf9>k-urd};Dg|7cZPk8E;j^7!+#oRt3Rvw+Di;&(>>VytRiwyzkfD2@J+PpuYRpc4pV48n|5=$L%UM^Yt~Mz94vdR}ddAo7eNZs9Zr3 zxw)c2L6#0FN?_eU-XL$CUG;labo<0>mZp2)L*o7YF8W0<(7iL@Z~VwQ{QScyIJqJOm)6`IF2v;2IS~29oN7Ug1}7X?5)|A1v%}( zQxUjxf72Uu))BQ?gfJVXrcSa~H>v#8oRrHNp3~`_6>zPgj2EMn(sg ziEJqj4l)rhr#uX%bOHmMiI;e(;omrFEk`{rwI#@o*b)dXzC%OUl*n6;dr1yb*u2)d ztZ0UinfmO3G1}A@v6HaUVKxi&iiCGm+$uwga~cB%+S?x*{qra?Ne920f6l`x`Hx@( z)AUq;<<^R^yL@0-fUYizRUhQmkCeav=>g&!gOSyuKA#rX2pNNj{J%db0^P_pMFy-4 zVFmJ1ej;C959t$%B)uMyMkzV9Q_13ySAKb}*#xQr@K$C!cfkd;6m~oZA12G|j-0gg zyOpO}N#IWNHdoIs!#vUld$EFlGLqrwyhBT+L>(a4=v&w4#GJ}WYBVoFuK_J+)~I0A zb#p$_S$p|%IS8J)a7AT#_5tKgW;go6vgpZYy0KpUDY~B0P(gwJ+kxy0;wphG+`)O# z2n4j3)gLb(47#87%rPc{nExS@j-9qe zSJKw26>$|x4(G8yh*K(7!;Ic1f&-GJrl(8rJdFt-N~}FwtY!kwQsysxbW)XR4QN;q zMoFZ2ZJ2B2uQ~6{^i6=q^S_V`fn?&X2$WA6IW%Su5XX^*_veS#(!}jQ%%zKmX zc2u5fs|IiR-@H^)S4XDst3G|kop%h(ENQU9@NFL@%%h&0r=g-`ujmXvE9c;boOt1H zAJJjZ(gC+pn+o-QS~Yry*%QhM5=W6&KA2^uWt;fFbXs~5xw03(`=U*bN!tVd8G~!n zjR&g%rq^nU7mF61?{7{2l2+vEE=Gw-Rv8cUB)6l(E;^48+7^c0#|K3JpX4un1Sa+_15xfTR{;!DWMp8)qqD(4OoMcsn% zR`>~@WhnA{OwttK=@Id1lDYMYO8j;um`Js6Tn^8LILb}??C=73omLOJ_b85CsFA%- z`Wf(OKLmMY-z(COqhpc^j1>|12MlFFk^IvQJfe_>Z77s-7ByVI4m^7#@v#p}Yr zJ!J+WqudwG;V5G}3I@fR!BM9@xS~jcS~oineVq*Jg-#VPf(2t{UKertzTTKAIaacx=Kt02EkWIXd#e!oTi z=*#U`;~?sZ*b>enDvYFW1VY5U|FLTyL8>WVCv(}?_Vb7^gQ+SB$EwSXr2lh`FtKo1 z<4_Ktnx5wt-F<{oAEV3vuO@6#2Y%&+3~`4Y`XXh%93JJ^Q2x`>({L?(M|MM{)-j=l z?Dln$25iPxH1ja%r;EJ_hi$tBNVCMAun`-P(q*CbN3p*bQ@UjC-FvLR|z^!n|zYzCv^Xjrp<6|e~n|4%T+)! zJ5e*ivG4ngo~t9igZM<}_s%}sB7frX7uWfUe?C+Lc2z~cS8`~N3>|XTEAo3i%Bg4N z0o(p$H+EL*Xj&t!WL&^_(UxZ{%uY~kDQ2?h{igCW>&nAGn8Z>dz(VUHT+;Ypl3*}6 z{v)= zl!PqlkepQJi`+8j6!s=;5Sb#= zdfPN&07c}l5Sto{>_iJ+iX@tZ$p9evSwBiyNPb=ppULT{J8N#tWJwRFuo1Oa(a?_f zIkLhbPxNZKjpi-SlzoL;MdQ0v8;J)doyM$Y&Y`kjh=+%64uT!6pI=h}G{Hci>5w*P4S{uNk@5m6ckWDh>kRH#{pkS;Q= znjom(9mPDC$6LS7Tw+V5;s0V?D9H5s;{OcIui?ScSp>~5Qrm&-{mBdG(PcRCF+93g zzqT_JpCnhwnkiv8F>T<`4k%iLq~-mukgW&o+k!}#EhVfFV`pcpf=Ie?R9&^n3@5esy{+VILCO<(um;!KNlR1dO?Vo@R zyw7_xhXEXbzla=lz*mt0f9OjJ+6~CpcHrkVxRE7u*Bq*CZ58nb$8d8nTDrQI7=F*o zJqDQp381Y>*#jI`x511P{Rr9}2EeBGfNpE;IhT5HzhH{KA!(Mc}D=JS^qza;}6?>*DU04PBT#wO3Xs9d)RdF2n;tZ-(# zU=nbbdKMfba}IpM&*fIP#tRAp0elIV&s1Qmp3edA?Iy18`_*dnK~|s@gZvksD1RR3 zm*SJHe%CJBzrUJZc@zm)I*oslM7I7_mdY{;^AdN5V?@7$*@+FDHv^$ZMb07O@N-i&uiL+wOVPv>-{*y3zL#I! zs~wG7h2$Evc*J^-AQG>G*=*SQlrvKtj1HK(^){*cz*v1CloM!GNi}Shz65eLG8o$o zumIN&%Hm|-FX4a}qsf-PLvCAFiwKB8F+Pqhpw74frxRmUk zb0WOP7(_nt`EM4$)8ak?Hhn@RtV#~z*X$W^ZikBoS-iINKr8qC4{(Pc;8;8X?E+Cr z>?7dzm!x>%(^I(I0gsgeg2QDGpZ_&m?tq?v4n0AGkQv`Za zZ#SzBo2>~okRi7)fBz6N#1*{e0q`3y9NVsoL0&oAM6x%sO{QHFiRK|QGZ>r?W4Z|=s0!Ik^jH(SSiq)|3T1+8k!f>#_ zkGvm0=u?@_KzRZeYJV^yS|Lc@h?^2e9cQHg7H#Da6kT&0iec8x--wbGYhkx{&$X*F z=_q&#NbKtpxv%^B`=jV1hW7yOwboT_6;~rR0wRUE2$0?y4GCB4_VPU47g`~r`~%RO zxX8=hnbB07;9HO_AUmn-4!3;|lDTs>@Q08vh}Ww-r#>m?2*n{3$lJpl?7yw_M}Z=8 z*7|b}X|B~6RT5Zk5*c#6Bzj{>7+_ey1S|h8Agr+YC~2r`yOdVc4s0>BQmXfI!p)vgj@|Y-!vCrem|Eyq4Zp2?Mjy8sS%M}n|(|0!9;sd zLR5|yt(h_~n}MrQ4v9z4il_3f-gbsfm&5a;w0$3t{4PlFd49d1Fz@!@($e29jWOu4q(v^4sq(K1^a3#P(VcVB7+%XglPyyVRrz2#AP4;rj_VL zbz>sJuYpR;Q{FUAt;NG0Wj;6JRAj$yl2rcU5GRBr^3~M`GYYt3=aDwP(LUk=_Xm$o zJ=qaGc<#x*K8reFsreiH1g-gKBZvq|3il8hmW=~yb3ALjj#mj=bn$UuBMTkd3^3L* z4u9bH+!pK7K)DzT?W}lGxec?-VYI#bfojPBWWz>~O)m(vFXG2$_xBeKzq_o5_-D=V z2oO&C1n184QPEZj^{XjIeNj5kexT*PqKq*l=CxTrTK5@9VVWqE$Lmb_p`ep|aQNJ# z2Od?=gMFp>#`hso8!uAiies75P-xwIXR6e}7;24LiwRkLNjZtGw~83-KQ2vxV!`~o z#Pp_1IIV9|#!tVc$_EC$``GKz+4isn^DFBDMm*D6>QglymIFn$}Ii8QBEmu=OfBKY^&G3{xBBqk1irinvvKf-1yEsmO^ z8~Yn#ky~)db4n2ra83q-o6LxHK57Y2*rm->=&n&bzwJ|eGWXzyur~%oW(ay!Y$yKI_SdAyT6_Mty!1rBrhl!4KX`~h&x-+Y$RBm2OQ|%f;JYkm8 zw`*fToVl2#6(E^shaL3ogm%aR8sv_P!=#LQaHL0s+J?a*1W`vuS(%4`4 ziIW}{Z%&usvlmS@Y#e!wcCekHCP&wbbrmf$INJ2sJ!~9;gn?>6+ZPlb7XQ2KgBb(t zh8po0{ie4j^PtK*<7IV&3T~)x)3tEmh6;JY*KOrbRY=M?Zk$Mx)elx`p$}SiR?bx6 zv21$kc2G|Cj&!cz-sB(l8S=)LAFQCp&bE? zi<8`lW6=w;PKR8$D%*dFgkX2*!*g=SqTBGWl!25sh_Op296yA+&GRc>Z+b0*I*G%#Pp*F(erdfG z)IgErF(Xl5N4zzK(4Zk5qv>ZP&`0+qy`cRAgn9XV0}1l@>=Inxmw$x#dJR$<_0bpJ z!*V&Z9Q!C+D14~c{$9e3$MXvYkxGQFA=YAbG2q(yQWap^D&jgN&VVE$tM43Ylnd3W zY^^qwzwHWMAS3(9nl1)y;vOCfk+RPUihgkZoGwS$5kv>)ZLSKhdjTg{TzQNcj8CLO z%X-(tOXV?i_mv41jp?{GiIIYXk{lilUuUAq#Miy`ld*7oxdi)f?ew0(_bNZ*GDF08 z{X2t`o_XFK@g-dznw2&>SJmwbGF290dR+-;3VB-VnY>5<#xuy&gPq49skMlEbGx~$ zB&9uqo_$SRtEbiqUx_t?PD&7-o3r+!S)xx9bxZM#3O?PnTlWZ|=l3B(VKJAv-KB$> zB9h^*H%}2L6EZZ6lWUkrAODCSQBEJibMKvD#`J9Mp#qV`thd$t zN2Ik{4LS5p`(O;>#evzquPXYJonLW^u>>?_(wqof1=l`IFspV#G$GCx z?o|c_S$1meaqV>lR0&9MJ4p@&&DNo{l;L6s&{?#!!S}!DvUIo^F`zNB9rI3>e$o}d z_Jc^H`l+YsFa7R7;h;yQF@)6@h9eC?>WFy6=|}s^2j0{*!{h>BL`lJeYY?c;4r;Lb zckcN2fr|u;ADIgQT0Z{|;|O(;092>oQ~TNf;U+WRcVzu|9LTz^<*vWda*)iM!Y)xI z*;FqNqci&tgPFhwcWN1zMr0k)5cCEIx`Vb6ec(oIYxDW5n9=v?s?!Dj8aL$g*$M}7 zr5b{#H*t0ZAmS5Lci)5AhI02m)!h}g7a6G9={8BV)nP;Wj^Pz$x$WZ$-&1${eQp}R zO~31(d}UTk7i;FND)~Tq>7z*OVFEFu0mrl2ufHlsz*|j7h45IlHqPJCvamR&vIU6^ zTWb`Z@AcNy`Ts20Xd0RNSU57OQ7E1~UDNuDPhHZJq~h}LX41^3So-9^kS<^?QSIJ#BAo>epXxy(HVVoDB z4f--TP1k{b&PCebyHC9xz_br8-w+Ktn8V@*C&csSn$L?alq33f+CTSqQCYrDxHMv1 z5j!z#Q`dQ>BivY?xPi^(k+lFZBX!<@ZwJN5^2*9_u(7UYT!y3{j8Uv$xM6)v(+6Ii z>rH956{)b-xef{Fv=JBIwdf1mdkmMOiRFg3+lu3|Ddi zKTG!(Jtj(E@J|2CI_7!e?avVM>~I}05G=6n+kg6&{jQv5kYG)~uw!{u35ZWigf)fX zztGbxlV*51&|veX?WK9Cg>e+j=9Y+4GQWaA_v2T=x~>+hyLCmjsG8P;&|=Qa$ikPt zZ9N3ZyfW$pwI1)Jr0)RLGy>s546p>Zb>r2ZDCONdK*gm7lK9`(_Z|O?X4O@H@J^@w zN#cMFn$?mDRrkID`qw!GhBbp|pgrmj_6@pUCtvfgf&(Bc|B|0;bEm?KKQP2~-5~d* zzAgFZu5c6W4`CvQ5ChMJH+&0j8bqK_fo9xXSBqypCAKp;3ViW2F%fKdh7$E&Tsnn` zpSJFOX#8_swnX1-dVUjIXpzj9T2QTpDw&5%nV`luV$}nZkk|m-SvXaq*4^0%3WNv1 z@{Avbt27S=UM3)oPSC5jkq7BzX27fwBO16}lx_x6f3S-S1i!p(tjY$XB&@Ei?`(S# zP|Svj0rxlZ!&%p3e?Tgl%hgImOKSm&$-AS2mc&8JT%6JZHh<-@#Fh;vtDrZ@47Csao*Qcl>^y<_D5ws&c$#h1_@6Df-daTPfe#*QeHj zh9{qR7x5cnZ~!~_{>AoBpgyO1E-yBiFve`eXwO9XDa~neTwOflLe`6>uxG zW&7-u)~w7S@+a7JQGhs`laz*G*o+2ni$=b%h97!S?8qh%Sl2viXht*j=$5a#>{378 z*}|&lGNRv=KV_Xbppr=!0Z!9oSKWy;x1O_5dliW7TsO&WIpRjVV|b&?znr7bQiswm zI3WNg+d|;ydq@;kZ-ANh4oLkyF>z#+c3arVl92*o$77F) z<#WIe7uv~&G?#&JA~?bQokU7g*q~H>squc`>;Syf&B!2z;bZd%9ttoRyMPIAu*Q6F z9fpN~TS?miFt=7?vgF=UY~PmQ1OdB=@PZcso~zsYeCO9+Fo@#GB@*nFus3f}2WAFp z!ci>+kThw*(NP4l3L(FM`>GlHje8{sL@uUuG~I@VlY%1h&UE2OWC{F3PlYoxKQ9?S!ca6a?_-8IUA=IGIr`p`JSW()tRY!;WGL%zaXZs_S>Vj%}Y$s z;w^iVkrlxsA%G)CK&*z4Oi~?7fW&q@x6-Ef(ee3ismABm5twA8;J8vf8FuteFG$P` z8J%#sj~>B|=UfA7C((wpm{?Hn;D2-GeAvfI_Gj;N$a_!>Hu7>4%+U)BupX4NEP-@= zmnar^ehO{-m!UbGPY#EH4XePUn*p61L@73GRU(snb$tJ@{`k3pyO^}~V_|#@3I9l@ zf^o3aELD<$dk`Y0%<5q0O9=SJ8k}Tv+I&zaqm)qM zSX|5Q^7|!JT2hyh_JhP<0D9 zrY{&@z{DZ&xhCD=&*i!uU?%HXO4V|2;nMMvH(fo$iZoQL9^4;r#^Rl$)(1_RI%PxX zmNTl>F-a-p+Q*;%bd!E{RUIw%>Oj8WNU`1yYIBoslER35^A$^zd-H%v4aH4dGcWX~ zLAjDuo?gvzIEjPPOxXgOrUF6iQhVT|*sHzq-HhaT(clw=&eb2+jbB>WAPq~R5Unq9 zf8N$JL$W}HUuOu-j9zY@$37(?FSE=2QXmvx2qNS$q_WvCA8b6SL^FCFIKU)6R-%S| zcjvmkIFKq13j45uETf5Bm`^><`;>a-@eWV$=5cCsO!EE>_FkhAw!V}2gS(+2_S6>& zgzkvVC9sRR#J7sx^FYe9v4V>fPCqgTXv8|^nQ@IhRX!_CqMdO7`s%2bpNSsXuL1*j z6tAS@%khf>^57{v-}a{|B=fz=e?Detm}1sc*GJ$DnA<<~xJnc~WUj8RAz)*l%mIOo z<*0%CVgv`$-6F?5c+e3Jgx3}eFXwJS1%0Hb_Pc|LH?gHHGXTdFL$(~>>{oUxrv42C zLN2_&O>Dt1}QHz>J$(COW!4h>Ey|&+K4i=OD)-pYtB}RaSBt+>vb7xTnDle_{ z`jvZkd|x*|G|CB(xowp%FmCvdb=v0DqKw}q6{R2Cub%O57w33)=a;sny4f6vD+4Wl1RVWlTIg z+}?e&$xO(?d3XccUX@{-p|&T06tZ*ypR3?{0`xJc%PI zCxJNL!%jJl{bg6!_)kRTqvD`q{d@OjE)9osz10KfLJ`(gjX&$r?5I+g{2de`UnMUm zzM9I`Yt2e=Aj-*RY{;T*D`93#fA+W1sLLsgZ+hzesa_`KiA-{D4;*)}nM7;O)Ra`e z6%XVPlBLVjwhh@pmwXcv2;6O`X#4M}!6vOU)dS7ML~uo8XZ0|j?onuTSokCH-HGhJ z_C$!8$g^Q9!zS-uhNL2d#J`B=RaE>gy(yOb~xBVn_jTwv(u)5=u3Hk6^qDM)a=zWzI z9&eV?^Mb9>)u>k&!_H{c`uQo+2GJN8*#7i7ZpNAk>dhX}xs+!3xJAt~f zYBYSa*+zcOimLdxoMTUn@cpT>O=U@YU(u@vqeXJ@^;ro;?V=DPJfAn-^U=Ku_rOc{ zkj7cW!T%aY_duqmfyuwN+)aC;DxP^IIr*N2A3p=&!Ofztzs3*6<=tOIYkYOJcuIXp z$@dGLJQL$Msl-l1LAuxfk6S!zc9DaL@X^(`p{XN&G32-3nod3TSDaEPP|{;Pkv{I3 ze0q81UyJ=47PCHp1#RAM9;_LUm#_8-%ixba>0WRdU`0?b-(=P`n3|qQq_5|Ej*r9n zV;GKA1WSyAl1p*z6`*Pk)?)Z}fltfxV7IIMOjmP*K>yP$?Tfw|f;$QBu$T?t(vbh* z``q~JbF?kW%EIp8b`CY^x8-Qh6=<#E9NS;MYvc5(+d}P?GmOFwd!|7yRUcX=>iKy* zaM3N)$?C(gaUMyM00#G*OX!u?m6%S?=CA|@gLrvM8lfzl)WcdQTvx$Gr*cSqTFQ?! zE9`OAViv_;k~NgZUOF9qPdoJ^GM_%^V0&RjKZ|CpQSXZv68wc^d(JwUJJA6;f7#v##ZkupkJz;+^p`k-NP9i1VLLvmNn#>->ZCoQspl z(U9w$+MtPu%VWSh6T+EC2hC#_*%yA{O zaMw*FsQzj$jfVF5^E6>A)z7Db&92`zH_q#3NI*iWn;uCNU6wrs3yX}`J?Y7A&$Qpe$e#}J6onZ-R>=b;u?QfoP|3*AH z9`9AmcuV^^sU0G3;`?|$f)8eUUE_ZWn9QHRF`Y~v<_6uE^0;h;HiQU_kC^zH%TX7T zX29o__SmA%seZ)Y-yW6hZ}PafJjU$oK%EI+hZpP?MzA0-q(M!z2#4p6A^nkX87AUS z?B%(#uu5KqCXaPO%6|Mes-0fM`o^tErgq48*cf^zI1?5t;?m_?9=)eO>-;t%6Jd3- zx%72_l(tKDFZ#v@`0uKLnpmq*acENy$!h=$it0fn{c~a zd#qQ#j6x4RvXb<&U~o$RiH_TD3gNd7@^&6JT0O0^g`Js+;oOCDOO_IMn&0MC6>tKr z925?ssS%q}CLhhd7SWj48pxpVJ=V3zU{v0kZpvZ|Ayb4w#f9WovV8h}mR9zam=#>+ z^hJPs_vpA>ep4{vwRF&fAX=hMN*LOUJ>Kh}2m<>0`;S95e*3!bs%izTc*med zbC)u}Kc)K;hVuKJRzitCYV_ORt`Khfw^sBGMzQL-BbHDd!W^ zBWW#Yil|uIG}zgc2QiqWO+P|j)wLuj=R%#SpVA<)L@n-1txPs;o|>z6QZljr{#dXQ zeuZD`4~kp!m@CwJ*F%?h%rCgnSI!h%42kcRQ zxXUasf2fGZ6Z!f!Tuc;>W$Lr*ep;E+xOiO@RRZL{0t^Np&5O%_;k9x(IGI#dtG~?@ zDv{kqlD84lWgPPO;jxS|<$|G0!QZOgvbAHb#4@-F)xxi=!VD!tCvoWL2b7Z{6fg9n zj3vZ{4MJ~dyZKD!q+6rt8w%l86yM13RF&p(FRy;7p#7z_Ze^j78q1Z6By;Spkjf4p z=L_;TMb?vwNIA~HBB^1uv!g(QcLB(+pvR7XFOTZq%We%%EU^Ux=X^`Hy z7k6{DYvuE`#t%z1VvotYH>jN=68vtQrE`!x>lXvm17)$GUX>L`OheOTF2ANCqX;JS zHh=$LIYtG|2x|qi;>Z};-Bmdc?%Z|tL`pxZ`VPeSaquHJSxx_=vuLlXsQr2dz_Pse zR2-7K@ZKX9rMbhYjm`h`fBYLo2Yc8CDs(}ELe}j6)h58s@>)PEE?E9yi5aGy`v(>L z=OF>cZca)Mbo~nz{`)gCUN|C^?Di>xYY+)?$Gi}Ebv8UWIQUH{0L+38u4qO_-pwfJ zZ2?OE7f|ezf~{t?PrI`PUEeu9fH6EQmZq$x+GMb4PeupYwed`v?hvF^;5U4}sF^YJ z-R^z={ocHkVm2kTvh4qPCPp*_t^u+I5G+pDxadjXIK9 z^oxeb1NBC|#x{ELw-S$lnmOr0WB<1Q1LddI+T-ogC^-jp)*q(3Ky`P^}kw z=W{%?hH(p7=>|n*`hVinVG-fW;r3bg2QDceeXed`3hHrM>op)H(9ZSVAj%Z=_c?2O zrCTu{7Q#;W$y}xbb#L~47S~CY7u9!IGPB9Ug6Gop{6S=R);GJ(;g(Kc>0IOI_!C#) z1sQmEU+(__hk|!F%ly5L39}s&&l>VRJ9fHN*7O(3C;tOAc~pJ}=_&dY*FbqMeR~OG z5ZRiy@==*CK%Ff$3;^Moj;-6GnM`z8XqFf9B`-|IH`y}sJ=>yk-m z7On?ETr}>(?LL^60%(Pm7)rvJnBiUwu(k-n%Xwrby#OoUU41kl0{04I`;Dv}0 zjQozJ&%Cds0+%}zWyy)G81S-zM;3a(Lukc->txjLn>UY%jP>#?Avzy{>$h^M20}|z5U*032V@H3psoRq*9dYJ zv7D=s{^!r1Jb*qzlN8h0vA}H`zno=TwEe_XsCVXy1Kp({w%(qBFeNLm`20ah5gmnPe5;&<1e^Z!gM0@(tYZWCT zDxejfEVQZm2FKI-cl$uBnDfmC^)KUI`xLUfUg@TY17~01^#g~$)=49O75^DWw&0i+ z5Zu=BxH#FbfZPa83Mmx7eldCZ9cc6AyHkFIfbtTAGE(`>y2pmCym^1$0{~p)0b~@4 z`-UJs;G^ibR_W(NnA~qx5wat0d5rMi5Poy~(7w^7Li}sDa@N~~Iy9|+2U+hi{WQ7v z8X2nreUug0Yt=^~h1|c?+FCHaLLt|fzMa8{aXs5xg2a_Z?E!JdGLE6j2knmmvZU@* zA6m+Z`||+6(mD1?a-lx!y#Q#=8D0jW7Z2JY*$6_3fj0{K4q!2HgvM1Dkd1+bX1}j} z&bnpOhI?-ZUQN=^z->lC)?-2GK0Q)E(q$Wg>P&dQPD2$ShK$h5SJglW(n}{kTMBP3 z)0Yl?>Ml(=VhrmbXt9Ox7LvOhfWR(~DACKyE?Fe%LUH8SyNBCD2TDm%LtGq7h_KWY zTIj1gs5h8e{~-U4P^*k10l`4cPdHVF(^^CxuGUOfUGVJUKvE53u3J!orIDwQ^uTaX zusEEAq2Jk?4~JFPKZBw@#3>=@>Q{MLngIy!=a*7!hTo5mr`tT(;;{_IF9Ju_?#=VZ zw_!Y7c`Dk3cj33$Qpez_BujOr7B|d(S$<7$)F`?QAjX2|(I>r{zI=k74BL7A2%_dtq_uv;! z=R2j9Ru0YE^!)qMv?pWZt&EAD)+N2#DRRQ-eer&&Vgmr#UVebApZ;JYRNMEO3ec?| z%+H!(3}+LgdgKVpYkM7MAV;96CcZ1>gmkUc?E8gb>QfTYIwe1KtZLZ zRBL6)rU<|LgjtXHmy`79nhM9^cxT9#Ec<(g^J%O)SZB-Xu3@>>i*))7suWpd`Vq}_ zunf5uzXArBPu!Qwf`@NgnUF7)fQL}#i3S^8=J-#i<(sUjY^5{d-7AAy8G}~`-DB-Qk=#=RFVp6DIeL#%D}K@$6XO`p z42H+0gX6wLn!iBc@oea#L(>vdIu%W{Oo8MNXSXjP45XvlNI_Xi{_7+wLMLCqjYwI_ z=Ug(k;Te|Hj`Z}WFlk6Vr_8UdR7;ki2ro$TocU5){n2I2QiI{moxmi?jYpf2G4{bI zg%@bL;3piP_FH56S)p6|$2W)xduaz8Q-1xp^j0T-gWq(qYM}Zfs#_*iFu(Ts!H3}% zZxEFgIr96)YNRg7GubhY*)e+?!#-MY86bgcaT(QnU~wH6$Tk)_17CucL$W3MHsQLb z?uBIDy`BcC-c@&^HO%Mw_neM@+$NO_1h18SKP_m^(tCZ*&t0jx;mCNduD#RiE1$y= z!O8R%LA|!NX1HZaeTM04Mjd6q?-AZ6OIaaYi)0@s+ymt1C6H6iF#;Y>RGw!f{Ja7gglYyIv|o?|Jr z`m!3EpS9;FZ!W=+x+_88cAVGa^2<+#egc{-H0W|LJd2VO?sl&>UIX`NK5V@gEyU^> zT7vB}B5Yy^dsj0`$Aq;krh-c-qP?{GB zoH;Mw&yhIHG$fp_`22@e|vtkM$lW z^cTC03{`gr)bVMkrsYrE)zUc*Sg=0Atu?Q^>k@sAV6=~M@R9fqBaQjzKn#U%0cWnE zD89>Vq4j(hGoHQrmOPMgR^%OE8gx(h)iEn0zcLBR@Fo-vlP!b9&1S?$sSqnU?m}` z$v_&N8F&wy-Yukn6c)94`Z5ZgExYJjWzK}Pmq8?BZ0MNRXBVIOj06GnJ=`%Dba1{*Y?|qN$^f2$RnEnZ#dlrxAN1L1)!&BlyE9l?H-fyUjQNXORA(POXbdRUSEKeoOy zuBxruTPZhPN=bu+bfx;vynI;24weCIyrJm=o${@zb~ zU;~S_=9+Vi@h@q@^;_}2yfSo$K>P!NK%BVH3x0h~*3ce;Naj2=1rNSjVjjh7po%x5wM&5tDo?G5~$fd(+F%rMON7kSMFe5<#xH-C)#x5o!PIg(L%sB`FY zId$m5m)mGb;qzIpmkZfeH>7LI!546Dv`%)zYrNX__C}a74=g30D zh}CJ(fvP$F!xt$@(0xXhL-5yH=R)NX1pb74SdAK^dsRfOEiL)C!SR(1ru6k|29mBE<_7-DtH`DiKT`_;ap}oac~xNH^G++J)tJW z#r_lfk%fvxAlIYg_B@53O0lX~>771*HH=}J>M<7V{j_CFb`5Vlec|fX6~rVGK1NEy zqLlC0abgt)M_)b4^{N}Z;qPi$Iue4eq`W`5EEjo%u(T;J>4c7hN6F~UD)@qX87*oXhMd^GtnSw%8+uC{9fWD#J0VS;8_FTfDHY`$WhhXpTEVK<8H%PM5^+cvCfeqV z{kp?qv5>$3m{zAY`MKNFI@mX-5|S(<6yYvS*f) ztAKlj{#Fa6;DrU{l(Ce2tD%Nh&}Q^k%8Q_>Ffyy=>=wiGL2_uUz$dA1@Zp$Q`!_Il z2^ng^WE%t>hvo&=J0b4IP)X-EnUk*eS%Mz4Sp0ZW3pE^d`m-1qY6`g8xbukn^ul%S zT@3PL;s$ga&6HC;qD5-QVz#r> zC7O+GB~zu9!&G3WZp}ep^v>EGY`fe7^b@B`Cr8JOaQRmBb0`)gXWmHwH#ez3D6XZ~ zWY86FcgqDlX1Tw?7T01@o?MnriWo>bE83rZOa*wD-agF|*EySrRP#^s)0BF9Pb_hQ zg%dRBT$}l5N3UJ8mD}Zm>)H}^WT{(yUa6CQ@7Pm%Wg$n#(#n`XvZ-|EPK z{Ku`_KR+UQ^48Q)v>N`66oHE|Rgn6J$0FXXF?xNbnicJ+ZmkBdwNf2F5YXZj6todA z;gATC5O7E8S8$xybrBP?^s%Z;T!i z3S@M;DJ-2vB3zs#<>gt&PsCCjP$l&Hamj{kr>`u~t z36gutu$WBash{DsafIllbHmz4FSY^+I|=AX_NCN+U9D>%y7DoOCiCjXdz{jkCfinK zsUG9|@06#3K}V<@VL$i2vzT#f&PTVM1$7h@xKAWA^XcagT0r{!#w)z05O zhf|iOtFw$ptJS;kjafJ93Qudl_uD(T-YYGOR>ZrLNU1l09btDdIcvCCes?ZaHypnP z{E?aX;28&gT|d6~qfb5*Xp9tOS1WrBqx}$CxUV)NCBOGYu;A$oKv!=T;hhA@_V`s> z$W=<=mVd6g{S6iJFngnUnmy-ME~O!3Z8)HLPNd?-LW*w1f?z{{6vZ72xv?L&m+~!7Mpv!LglI8r_(CgJ}NJsD!4B=0QXZdy# zqGAnKxr#5a&9-IWO%b?D(C)_ljc&T91PcP_!swoVBn_?5$Ot?`d@paD^0;d`vGrr4 z7~}f)uvPbyZG#W8kk=SU=yc&IxI?pjxa^o^bYGOs#(LjgbOZ_|o>sHQ*O1@MQW;kd zHO0y|UlVsF*`aD{aCT$Kv^EV2)h zI8FOCVe5CAM~bCCAlFJ)d;GJ#4d(^+N3vF((#vrlw8h))gF>HFS$GbKJrwDmOI`XT zh#49**A=dedSKwEn(JJme^V@q)M8e1{Tly^F;Qz-iCAt*~HRKVn<&>)H!D;gxjl*bt?tb?4gyMuN_2j7=1;SH~WX)T8zpS5-lSh!n<1SOV&O z*qR3VJ(NNSYf^+V@uwA<80=431V6Y}#gLf7qaey~TgKDijPMAxeh+S|w9mL1mx7$E z{le`bwPE~#wx8V}e#d4fV+M!&4g*Om#&?2TPZ*W>;tTdWq=6tW;XW>tPu}z#TSCkG z0ZtVr$0AVx%kRio@SzoV?>FRFA!~+e|(1@~IM;5J^WxN`mN1c*w+0w;%?c za*}8kcnA5{PoP%(!?-8WDnsWzn08bie-x8EpKrfz%8VuRHI%LWn?D-ADD~T9!ZcQ` zJE*&I`>#pr(;#` zS;SA%3wbxrFdhb+U+-So3(60*J%-avVU;mteT2;tmHidrRwC^{b@z>{y=22959Ti- z!bRq9*2Tw)Inqq#dG*~x=ydMnzr4fBD$1N9W8&oa7PDB9pmxhK*8Yr&W7lx);4B#7 zEsY)f+EGaKUD8+{tsE6`9p}hkE+&0VM)!_Vc&A!?BGtM)SDaec;XiYARYABQh2Mpg zSuxoYl*5M9VP2#>ZpExvM24CIo>gOU}79j8TP!PlC zWz=4*Nrr8A=Fl@Kde<}*uYLAWpbmpnWA-*BGY(f-`Sm$g3DV;q*}R;PCm70B$rmMv zpO7SX)l_S=)Uo={^jai{VoVF49bamLq0~MJW;|d*4db@=nN`EmMqmWrr@@c(X<=;? zK&uoGkDS73FD=z0h12G&jw%PgGpRBgkMg_mKW5I}(1nb5s=AYT zI7d9Vm;6Bu2CoyNUcu~)h9v!?vwR+L)ZY(OZTwa*qy4qJvZfvWLg~+6EhZkclzJpa zr_R7EUG7e~>bIrlEYihByb_)(ZpXD?)c9On{8Chu;HeBDn^7QY6z1!?MrsmQx<(*} z%UF@TNa-!7Y*NjyzNa&^4~VKjecFT&OSVwx7>VmfoKY=@FJvhTH)tt4xr*`T>;wQ$^+L`CfNPRLRx~%!)|`1(B4{ioEWau7?^5s1RTnOV(fi_4)@%cX zda~#Tq=uVp*%d%dC7v@+SA9CO6K@kyqSC^PddgdF4kgj<8L;H>e>w`#4R;83qLl;3zf(WN3T>* z0pP)ZhQT?KfX=S3nW4ISf~MhUk>jHW94@rUhmX07eZ$rF2v}hHDyr$J$v=ATt3irq zq+~zJz$*X~EPnwws2>rNoUo?^wakOh2Tm4Z$AYQZJdf!oT~-#5JSgm%E)Et@!x!(! zsCo26pGO#kWXQ7)wjrzmH-CJ{2^b~EBf4Bttif_X1$rlY0Q(mfEKI-t^x_y8HYJzo zHKDlN11oR6w1$QT`rK>8aEqjML>(K>Nm35K3{FcGZ)MnOgk4Y{9KzndV*=yzvjj%Z zFXg3LcXm)BuL)wtcZ^)=HT1`efEPFy3cIE_&Zn950Q=zZ0OlyU{a`XjEfpVrz>d0K z@m5MefNDe@{?oNB4)Y`iu~&Y#qoYuJ%gGlK>8ajJl->;RX6cY4>|C ze+3TIM--(n4!bwVWC#4&9K_bU)4?UmSD{xR>6jc~3Qg7NW{;PF3Kubwt$=hF#ZrY? z&HbDlIf(-IO+UA$&_ZN@@in z=uc8ak$j`e?(674=d8my2t18m0}a9wSKjlc_Z=cB6iXmA-O+@fs9o_N)VB%+N`&r| zr#|?~WOGVMvQXc2IwGv>A(K<1e5G%QvuZE0VgN5#gsavC9R)RE@A_)hhWcowU&U@+ z*K&sAmDe2i2b#VOK99JCqD=Wl>lxMl1&+Voiq|lWjUCO-BLStBrKw356qrCKsb~Uk z4vP*BF2#b8$kU8ks+OoxlXd0Q`=zK?rc1W>;W255TnGaMP^0t0?$s~-RRf?BM)^mAhJ(( z_+_Btu;eoHVi-}t3bxDrCEL%Y1UiHhiGDAx3msE4qGxlINp7Z+KrcgBFAso=d;t2H zW`w`^7iE7+2IXIHiwB&(M6U4DrHNFY$hCD#wi0GIt?j6?J?{MJzl{9;I=X4#xU6J9 zEg4;s0o}imk>&UoPMG%C`AmEBpF55Q1;d<$vL@9Mtp!9tB06WSR-Ow1#u5APol0P( z!C&~j@}tM~6t5RL7kxM;=^jNdu_6$|X~|`rot|!hfNX4UK76$#X1$j{jO{RF`{Be= zK2vb+T0QFfJM9_kArM28RVZ%@#$|C9_3a6<`=9@L^?p#c1=Fc~ZS z)xe9jHfTm$qEVg%2j{&>y_1X~LG>6%cebe1^`MVXaI{>DuSj7z9 z9Polr^d)A{4FCNE2jD<@Qp98U0ZL1`>H&&l(ZrHiwW4#ZzH#5KP^aBht=+e20&Zm@ zDX%OG+E~BsmAYN+hM=m_j?+^^R8xC0IxH>MK*w9)jfcUzyv5x z=XCIfCh8KY(|2^=55}9HI4|&H$-sJ**Kx>; z!{^2suzbHSF`NT+=m3B)7{Iu_1ZD~V{Oo9ez&Qz+GBB<(TmS^U51?hM5BgpQT-V2) zm?V4(1iXh^z#x$UCUxPonv(H6-&q}S?xP6dHTnbWxCX^BUs1ypA22C}BQPA`!^O?& z0{R2pYrBR`JeX+!albG?3+~rbsJb#l;ouRhs|f{lJ$Lijjk-cp?13umuh-z8w;_fA z3Me)fw)Jyn&x_Scl5~FddNd1ye;)30P>fi`LcQG)=lG%$wM81m2FywVrh_{D{^x$w zG88u`@_PtU)7wHt=I=n3^o<=BfdkV>@!>21esD70{1y-hL(=S7xZb0c_on^F3*bir zsQCr}xXJ=ca@X~}-i(5j>o!b02_uCe;sD{S)j?=j_WacVZGR(8@}ht5X`}`1e;4c+ z&IIguUq!xwEZd<5O~uf>@WfNvuk>+h$A*<)9h1xN%Fc`MlTO=Qh%C>hT)J)9hc6{*?JGa z*cP4)t#xrarzIuuZ1~S^`FD-=G1#B22*JIwvJYlX2eVuN(EeNU zTC6GJ+GsPVelyk_gcj$X=H4r4^r7-NgAJtW%oWPSzD1YEr|m<7LBJ|vPy3`;idQV= z`|R4qa=&wkUGW>G9of!e*(;e2b;^HF$Dr&%0W9?*V)cO|S%#Kml{FE!b;^G163^d- zE1ev|luKbzxi?4|!~PV@;50s5J0+zk;pY8JPt_K-u2W&hB)ct#bwqjfSDQfsQ@Ou$ zMkPgF5f%R;kF}ac>0tA!3$qyuCMQew_IbHA8wUQI?>N^4SXLfh6zenzH7U?rfi&TQ8hi(#Y29f zcv}9Q^7rI#9^@eIj_EHib92Pf<1)*{U(-z)_v7F(ZwezlDZ}+hPUDiB;!>l|x+CZx zRhg#sVDySxg{Y1mpX!|ab8D+epl-`yF-Caq;{3o*oh-I6D=LOU@8u4aa+5IOLI@2<$mmoj1wSIZb+DW!(7CKylmY$l|iCk!a_eT}oh8*_dw~ zICW;S{fX*YA%h@Hqp7ZsV>Gl;4aX1Yd_wxkTFeMQJmxBT}^R+ea7wci6a z#S%6ZCBUP?Y)*$#DYrA9Q;g?%-2bjbUUWA`5Fe;KYRwU_>K0-dnC>N$wl|v5vtPwr z^u1#fex~>IXb;WM6l6viDO>;C|{YUK#EtUS+fhx(|s%f$;7+d_7$^=Py zN+7O?LGkx*`T$ozZkIf4e!DTPA?f4s(fh^{f&X{<5$7n@P6vXR=d58V1b>zI_8s2X zD#}wE`qoP=O+`NPC@dp9tMx?LS5$mZiQHY=1#U5f=~qRE&Mz9F{viKNvZig(_)%Nt zBZ~=&KwVrK5~z1vPkyr0o*aLS!SCI20oSnXRkdjODBibtfsY~ZsQYQ-Q>6AH`{dL( zFYo^(h`JTIq(qZ4?HO~4xqDrXD2Xq%3P$51Z8 zc^c!nL_O4P_{e$mRV=4B@g9eB5kw-{?dR8e2}dVMem6YP^$64-tv*z{QQ?d zH{Shw=yT!AoFK z1{Ha!%o$_G0^^=L(Sf=-8Y4x2LS!+*e$0uT%^x~crohJJJMpYuE?Wql*iA+6!=V5f zRm*yAv=ryCLb?=0*i<<=Z^RmYm}!ehAO3DFJhqC=&pR(F;g$Y}H2t#c&lc(RD|nB+ zhF%hov-+Q;StAh}K(kXfGwRL*f>S>QEYwF^?6s3JHP{K%T&L&B{Y|iDQAHgUFAFdJwqw{ zCqt=}%I&}}m^Dj3s4OmBR$|QMkHe^ z^f)CjClUMDJAOXCwXPY2%sa``ci_}vVyv(Xc+A!jo#A!GtJnN~q&z z^O~*D!_J?JSBbqHlQK~k--)q`v@kqW8yO#_@V!4qVJ+-&YTb`TTZTPcEsqy}fyD?N zOw@}BbO73Hv&i*H)}n|XuQmT^Z4}*{uE}#w6l9YmX6`F3=?q33G`pZ-BnI4RW|VRw zYuA94osThc%ncGSv!(;-k_M)x_F$%lXuhqKk93M1f-@E&?h7{c#S<37T;mHb3<;WG zMXFYW|HbE#^T$oogDlY&*C5Q%i2w6_!{mGto*SCRUCUrk{EN&CG6RU zM`y2_j#+l5)+Ot>JY<@vErFn-kNnSv%JvNExcD??!N+d?Xs0xIt|Q=D{N zN~3OA_^P8acjY%f*Tx@TU4gIN7|`3jHDp)fjQ)UdUgRmWl9C61;J?FSodAdIEq72x z{&lz(_W`r1#1XG%$U5#cnAusgAY6O?SHcg#F;X+2N^)dQYJ{|OqjP(=4ytu_ymD3K z{M)4rZ-Y8wF)rskZ;@;B!`%cf zTbX%NOHh%?^Mt<2^2eFZh@Jv&cD39A!+{_uLGfQVcq{tN(6bG6yROxyR=xEARzQQa zXHOe|0c2aP(qQeR(^ZH5j`VN(wK*zSzb1x|aw`2kjEVVv=l(K0!&Mt06cp4J>2tpi zi*hLuASzu2ZyB*V>j=G!_Y*0)W?%HCBX)^<0=}5e=*OKcwUMqzI3d9}IK7<07u8s- znZ^v^KVlKxzEC>^Vyhs&>C#U{3{JEp`cqmhF*arVM3F=*G-b#~SCF~5tQ}v#9Em4o z+F&5Sm2imSlZE9trSOGjm*Oim?HaDFmy9+{u^+WpziGX#pN8qrkx3_>9C)~}JSz(Q` z&Ntke+!lF(3bhDsIr74iCW_EAE2%;X59Nab#UEtKOJmVD@1%}jK3~N!|GHl~DWCZb zW?)qJTYXwT`?HX)#+KN5i-9_{7*YE~yoSS1#cwgjgGFO^;GMke;S46S_7QHa@fD&% z7)sX??menYJHjq`v}NzJWkuoxPrHMuzTCq3&y|C#Fi+Ty9JcRan36Jw>iDl&N?p#X zRcaqu%oOhCM8+%f%i`yd6?}|HY#h7R`5o+BCKvC;a%%YITD*`;mW=oaw9sx*Kgf0q z=Yv>wyMCa+$1ymgL^zU^maLPFj|^feLL5K1S_f_m&61Rd>-hqaJK0hcIE|Fmu-YOC zCD5WF=XSHt#Z9m{(;3Iae)S$@J!stK6eWKk;-bu?wl@ypPB{)jb~x@36%H+oBIKal zKtZRY&b0L0FU7XDq{vz(W6wi@+f_g%KZuc)!Mm6CSxY$A%{q z)fhu~{!jG5FW{Wu{v^;exFcM1T!YVnyg_Cc)t-&^xkdg9DctLt|1WP|JrKtFZU>I! zPvx_OUKN2>_85#N8;pv!c*gKBrUKjb{D48(q4qE<4&K{-y$WDKjsz2nXLs=^t2{@S zp0{EkF1nV^-Xd-X28!F6o12?pbX==e0qFZrUhC%qgrC@D>J9TgpxYBKf{!o@bNzw< zL3w$$Y&?x9khunY77szPLcxK#89;Gppi+o`9Y;MEn1eb|sz_Kh=_a4#%Q6+hDp#1Xsh zmTd9vOqXZ?YVIGACvc)ot_N^0>YzABK-`Q9W!k_RK^}mUA}GKy}fnOaGSpd9X6)wucNgca(bd3#VUB{ z$3r{ff%RHH;;-x4QP1c&&M&#NZ+W9=f<;oP00XwjF~FevBm3wVU3S2tS0TIKDol7n z3JE~xK?^V)R6!c-3Q5etq?hv3CN4`W^|4ZK`7Gker6MBHpG@~T@iG6Y#Pf9dgls9Y zgL0~iOU*&@>p=JlYI!a^u zE4sGE5PeLw^UFxiv74Oy9-#)jI<1$#ekI_i&Al&c==tPi=cadljOI(NHeVE8fWd!% zQPQ|Hr+=^d(!rI;?8OK&KJ8vxyQKp?S@;tz1li`6%GH+v{)F0gEQZ5u^J~d26vKsI zTxP{<(Jb2S)U!Ul@;tW>=k&=qe)EK1(dl0JchDDjvdd7(q{7{EMw{JwwiVG@y7HnG zrGYY&rMa9x*{GgHAO3Fi5U~uXP>;;Y+QeH#S3(M^auAvLZI|MZ=dC#NP3b|>{PR!p ztQu`3y4)xXXI8cFmUYS9pS}|jRUS5Dz)}M|N%bbN#OyU?RE=oj1O}tF#*B{s4AG^i9jwG%%90CPUC+UNz%d4#=gq=q(Ib1uoyk$eE}-hG0o?TiAJ+rt*cn7ZJ?*} z8G41cBq~-P>1IHN`|=*O_LHj#>16226rf6fVVgM)s7J-y^$=aZEo9d0GL~f*)hWFg zVs0sTUwAU*D?r1mnWtUR-xkQ(A+|&@iYE5&{Qs|!J1Roej}j>YdB`DfFmuBDk2m_L?9t8@*Q|*cm3}*y|QvGkAZ9Xyfdy zb;t2vl!X`!xM}~`ZELXBwvJ0Ui{5AAZILWlnC#tPh5qv%8 z*yp<5K;QU~M1l@|9r+goRfPOz*<>l3O2cI4{HDL^(Qh6S>yfd?X7Fl|WAndTx;I!U zyL+r$dUiGh5d(!~Kb4l{U^W9_iY2N(oI=Otcl1kzJEpHg66B|H{X_equn*vv zY+LpipEO719_g#HTXxJ#J)3X1bzp_PF94{kZbABYZjnT(oNE|0Wz`^^ck%wmw;-r4 zg2&ln%iizjsi{&3B)4`D318f~D0qRTN+%K>9ojfx5M5tQCNLFb8tKZqZ`Dg?JCB1b zuzr&99TXt6C@M6UAVi81U?RS$c{XAH%zjmwfaww%%cE$net_$Jnf{@k4*cG0iMH8{ zd-`CpP_8MUv0XCBjpU94%2BOZCQO)F@%hop$^k~7qRUt9TE~Y7pzhPV%&;j)=X$^O zFxwENcQD&OazqPHXznIVX74=_nL0X#!TAVb_UTC)o1`KFX5rn;E^;;U94;Qsydd|R6R0&P5b>N_f)5n`;%{i+-+i(PY7EY3@ z0K5Xrw?M4Mfgx+`jvF#=7~_Ayqa08>*i>4P&@$fjM4Hp2GeKZgY9fvu+E_?xAB8zTL!)jV%XRE?t7o1$5lX?lIh;=+vIk%>Zw{DodK-fkcxt25&QJJuxidQZG(Fr3M0YX~TFJ*c&3nDrX_09^R2MbRZL z$}QZvBc>OSEp~=@dCeUt3P^yN4ngvp_H%gA4@*FlYK}_cld=|gv*^Aa=?H?#1|{+J zs9_z-$1zE-K%`p$pd^2CotI@@Iqncy1+)&1HPE>Iz1M05`mbP_USB2KOvW=>xs_Or z!^*9p4guX}k5pm5R$->|Z@?~{A4dQ=7xtaO3b;{Ek3cCH+c2RU4$ z8{1;c-Oh3>&*@pY>DrztwS%HA*qhdh;aKniAIy!E0YISCj5)?oVj6PyUS41&z5xJB zr^77_{vGn|O1K$k#sV*p5H&eknnD3K6Bo;s)|N?in3+BEv+~N3;o(FeiEZfiwytsn zV!6B_#GHsFZd3${vERRDl5?Z@2U3%qfBhJ~PB&YnJUk`e;d*bj`92m$+{*%@`V4`5 zn4<@y=;d^!XTmeMbs@Tv1g52z{vwLEj{$W;M4&(~2-xm-Hkg9zv)#esW^LCaHp7Pb zRsOOLrx?{|SOD#5kpTY?J5H+Ex4xTE;WKGJ;iYwuX0VxJ9OaOQXGaKg9ICNhnwK;` zd)6n2@C{rp@R7Uh1437jwT0tB4Y!`tiX`?0IZ+Kjm*nNmqq(VElPy9?`UHnK4eV zxt}?Us;sqXvkT5K5i=@f`kUx~s5ROze{FAQ)g-?LE?J7tgvYD%<&r7!A z`SCYn^{+2aVbzdiK#4OP5MM%VEA@Bt%!>c}BMDF7rU$8T2Rr{RA^wd4>2n4w9&=Ar z?d$)kNnqa`Km@;X6Rz6y|DfHwz>$089Ixi|e;hS{>F5;*6=n-F? zExwr8?{UytdZd0mA#R|6zLa3*^6+CVKe;MDp&v2?qF&;|-)#;GxgF|y0Ig}DLe?=G zU;r)*g8glm+dAje@9rc7CS^TX8{kS;C9!XNJo5e34CG|)+b&>8xXrjT-(0Qt)vbLy zH;FFHi8V0%A02ST!a;zg8ir;Lnl&ZOC}5vKZA?H4g)unIuv>L>gh7=7uz3c(~hCqeRL*T!cx2AUwI_n`kaRO-<2N|H8;kM0Fkti_+wFPxwIPfen6WLI z15yaEyd6SU>9YgNV4}s#4HmKz)Od3W^2?M@Pfv-*1O4Oi4kTL0n_oOzrs774pwQz%n(H8|YQ$JHCTbWhJameoK?H4BsO78(<+Zx$GfD^-vk zWz4viRMmfcWvWg38q+g~C!NJOUj${GE&a@S?U2?d<&t}O(1it|68Ubd;(;add$wmbs|kr?k|-j4D6&(BKi^lr z@Q>j}^V52hdzf3qKQeF&T+mBO4%65u`oCq9f6S#Me?4;Yu>Cc2uVKk~)LH3L-fcAF zOmLD%ZTjntt;Le!Yhw$6gwm3Lv01AulauUnC!%QlDHz`J|PWMW~sdZqXgRQ@B z`~BY4aJA~oeqolcBk!>zSiL+_@f@cC(&@?BfX_?mx$J612F<|Q<{8=1xMivpz(a!* z@ckw;Fn=CrUT;YuP*;3Bf9~TJE3f-a+q2$|1~+PXq;~r=nMPj>OY(r$tMJVzD#~q? zg3s!2#Is4M?0-*dGyz#6%Xe?4r=Sh_Q#*2v3u@U!So$AMv@;sqhnh#_B>K}|&@dUr z&)h{j^HRP0gpWlEjSDk9zsP^$SA*p>f;H*JuVp+zY2GF$yVTJ|h{?R{-nLgFW zW&g->1*D@chKqi?`dYs{KkWu4$~ZJ5tDJq-?#x)1z-4(()~;iw5cF^%q@G1o-(dw# zGWjkbbtZ!3i!l=MR+!?n0mP#$CgIaU7`9K4jGK8^O}9y>P{nbe2u6T5so2;-2j>_e ze*la80ZjEKY@|${2{d6!6|K4EeTw0qf2gc$Zb69@50gCCf|sq+()znARz*Lw_Cxj3 z3v`6wB<@(kLAbg5bxB9RxsQ2#uPpU*zeG_raVn;bFoV-i#FxT9;ZZbs;0ryfcP?k7 z&SRpdz_^IN#X;@TG?Zi_(Tb!{DT{ey6;p}I5n8coBjJQPo-XL&c%?Fb>mCiupGgJ0 zZ%!78NDA+ojIoMdDr8xCsIP0Hd#VGCcyQV-LL~ey40h;5s;Mii1hVglXd;(MdbUo58>x< zal;l!mM=Lro{_?TSD0cRSVu%Z;>krIE;ItQvrCt7tQ!$=1HNY3CI(chp{aIh4ofDY zEmrUOAR_MbzS2!-#^>dYlQZ?frTesQYK-_TW`%H*LhcK-sKBE^sg8bTd_2kd@bty=2lxVWY!4JuXd#KFc z+7wby=VdMv+qCS!e|@sd>Oeuy9f~H>7vAfHElbyPu_{<@wWj z+vaJ*HIf$1)(tN2uWYL)p~!Y#<8-!sp49b<*4UMl}c)_UqgcuNj;)mthaktsP(&k z%^mE;BMdvE*Gwk(0piX`f`t+!GMsrwle7zzcC)~O<1LC;um-+T$qefH?$*OpCDyx|nL*h=5JhsDmsQ9&1~5gGg<)Z&2Ds z!G7pzcw^d1sFR*g722Uale^h1TrW*D#@g#dZEG_6sut+<3o5?G|a;)#p5v%Tk z?z@T=RD1A^nuqBhSJ@=qzBWPc2s52Leh|Am$xxpO^^*_f5}a+8AxG@X$M$+ICU@0X zv5G7m4&1S5LzK#El>{xNp2oc*lX^6Uf(uU+@XG$Dh;#wPu>8e`3>-}U*y}O>u$sQG z33Eq``&aB_IaYzMCTpTSak+BY;iaVz+zSjl7b1p2@C%%!P&-U#eO<9+6n-Xr^3tLY z7SV=a(XS__GB6Aqvq!#Otqg}POOZZy8Zi=|^KsjDT)_sk&fI%RB9Ze56DfTf7i=vm zEejr+PHgC-&h`E-_L|bJNX2P#Z!FH{)t&gc92XiIHdOt%gdnf^TvD6%9kQp;*%3tE!VsK`{U-=D@@xl_Bw?!eKH^0EE&}J!vMrPj% zmCnLvZdki<3%-uaEJuUQmQ?w93y&_785U#S5d+KlC{^qi{c_7s?bPtS1kVyI&9 z#8x9$t#dRh4kq%$e?}T(KihalFt743Hgx*rO*aRsR(`1}IurfI)3xp~fsK?KER3if zGCq?GBDa;0y+@;M&_z2I3m2Vy4eC7#R&-}#$A$57&h=&U$v5(uPEj#4;}p z;S$_8OhxjDWme8YM8*3?hZA^T^09A{6c4zB+%!4~>sJM1kPvb3VONDw7ue|N5z9p$ zO~Zny@WNIFNxk%`Q#N+j)z8q1F+U$QC(oNQ{~@n>vKd&pg|i~5k3qifo){*5@cp}x z@PYLAq08u4w8Nk$f_L)nb4GAf`sN!11~Sb~g0nTL$uTZJw0iMV<8AcM$)gL06JDCU(-QQ`sj*m)uH!QlL*Zitq6B`pdY|vQBU#F9;`|x7sXe1!^;Ka| zLuG4WVQhjG4U|dWU2LE1~>t@p0 zQ7ztTV^d@Dk-Z&TYtyu%(_~zXDunEyg=qyaykr(g?C;I9|Oy_mVU2;?&RYrZ| zEn53}kb;Rjy_O&Xa(F8E&<5V)Tb3cF2iMD&SQbm)pu`JIu5sC;M&q1h|8P2f`9IxgLv;MolO7Ac6)7_wz{vp*SIP%`u$ov!y$~0p`Cs1Qa@Rs49jp*MlUKtgZ zb%hvnfR{?eT2mt{PeC&o3hl)BU+@(k7VDZWD)|BvyY$b#vdDb#co_ovcuSM0!o+`g z!LTp8R0c%b=WNx)d?MLlt!tkOu(`|9t90cHVm~}Fs4sPbU=22uj?@kiC2+$@at1g{os64-ch~cHB^nr5V`^I)kvxv}>vxT& zvNKDIYqZyD3?&L>SehJvG_=^R;VrAWp%dBPQcLd)n@eBbsuCsIGDUh_BpYZ(m1rkg{?qNg+l(H(wlO6QlBwi?+Uj68z&trZhKHPHIS0>`91wNe+N zo%t)jPF$^W$y-F^1;N>an?L83!~inJc0tk!3!tHO`~hvkc}e&;0#~bLj+uY8dgx{puo8n9uG)fN78s#?$MX!ZshGBEy0RNtstl(b%17JdL zK8obp`sCi2Dka_56`2aGHo_LO1XvZ;D+plm{Vlx`qWZZ(6xK4(eSZN?Z=VNS&4n2d zRdl8uGmHH1hkPkws-|HBrP*{zcY{cSbazOJNQbnPq??xRZlnaHMFm6&0qO3L zmhSF8vwh$H|G)3tpS$A?7m9oBS+my6JPDjznok#?<^htTAX~C3uJRoe@Rr4ftpw_# zv>*&nS;+ST6RhFY(0$^C7Qw=zMYqo;A{khr@Q#7@#adh5o#$km|u2n%mThI3f7DxIqq*DB;W$z;xZesx&+hJG@xG=y~d}6zwykqn)e)gW};llrc z8TZpn6^N+p1xc0Q;ELfv{ zxKubLlXdEjr#%LTc#+SSU%RMwM87CvaMZ2h|MfPb`2f;A-}A62(HdwQ0|m|i?w1A( zRf|SleLYd|qhV;y7!#7QoB#xZ)vK(6wAB>g0GnI`6~58syr}+nJ0@%6&(%}FL3!Q? zP=cv2`x6I_@y*{77*Xn76Xy=Xzh}bRcv(~MtF`64dm)mYMI`$*bLK<3cHmwKbl|u$-&B+us`3RFvQ(@2s??az)~iE z(nvn$gq6Rn#>?dYzQQz>ou~3W)w~ex8M2nZr z_NxzzG~|&P%(UEqQW_dB6?+s21D^-U(F3Hh0}GLGSlf?F3StuhFgTR(3i5a_F9-0S z+4TLZ0SpCe^Wcy`xz$;44_sP8E@*n>z?<7(0-!rf0L4`So~Rqx<#r&<#%{fV=~~1! zog_IX;mn+5xUQqHXjcv#7gW*qnv{A!@Ro1^q;K6hwR1aO?4dsZNGgq>LJgavySSo? zexTRa=*s62AtBmt7o2_MT7Uq$29v8onQ9(D+p*h4vC$l{lOQL=RL%fY7*Vi~9cZYf zue#iW7F`eBcLY;3$?9Tf$uRy=lN4u&lqXgU6e{m80N~Y?Q>2^2W7?89zzqhh?%z}U zo+f1Z-(PWvQRB`42kEpJ^TSU)@Io<~#rJjUZsW~Uoq_)q3OxYxyfXHWmX6N4vFQEP zkbiyJ2g|-xp{o81RIPz?fDb1Fdwu-@xn<}cpmnjRXZ+ylxtwMcGcNjWkmnG}y<+I{ zVsq9VX1Z%kjBzvWU&So+0+0$xxqhFCaUSK7BO*^p9eC5Uhyd>g@@L+5k{DhjGIb6M zOVG}_PtjfjxZg_cZoqgf?uzAjpgbMx)5&M)Cq%B25TeU!Q6|aTaikV>!_#xB{)_D*KOu@}G1kl9& z?X`n|DN?$A?u9pvh0w4ekpoeMa~1+D9@$59Xw!^1oJjFgpn5olLGAh&um{5G!dcEXHH9 zI?Ic^OX%odx*wT7DFV%ficA#b>Px zR=FI04HiB4%+KGsg~mMfB8`;Dg|PXvr?8&^2;vmj(h~vW)?s0}3O5?<4mkd&b8p&8 z=IEKsLQ$b7zi`{yu&zRo!q{)KO1pqC^+1u=*6VzCEAcohMlejX{QV6yYP-Cv#8F(+ zE`?U(1o8uqjq+RBkQLR&Yf)dfL1^NL_p+X>O7E~hj{$o#8Q;k6>oRdB$Yqavqh>iuyQfh+6zLI{ZmgVJC` zIrmm8YP_oGCG^KpC_Qn@b2Xt9QcmPQAz>o+P>YC1nn@@+_j-&C>JH;U-dz&kFR$B8 zE>@e$uDjCAyFwzs{c~$D3(@l|{|4LjBL(pMWLvEhe~-6;nIk@9i0Oh(%h1Vd)(1Me zbH8YZquG{Mz2QS&#V5&8Wr`33o@h1VC^cdXbvRe%W${C`0{@QcC}vWbgZB|5I^C=} z7qaVUx<5Wac@y3<^d*&03rskuq`xzHWdMQFVn7(tfj*=UD ztWv1PwnMLAMdHo7t|JMr-vLh5|CR5Vyj(4;pRO!rlNP;o95Xp>J z2@D+TK8{UEV@DiHYNK}J5Dd}OFC1zYXoj|5vpl-jhxW;`LqLrmfzc{@@1oDiKz1>q z6IT_gXz`|1Il2>SKrmF3INuT0nWMIi*JM(EQ=ILQ*$7m~jy$A$7R#i2vgm=dM}Kl` zTt{AV>eqC8u9qS%m>Xk;-~N*25BKFMP_^KSf2PQ3A(o=y3e`$5#mzwUDWOi{h>&dM zEq9P17`g~0rmoq6-i_#(ceBMWadF3OJkusv4gs_3=MkRF{c&3JkDiPrxBvXM{86xN z(IKP7G}vP-Gd&}7n=}7O ze5{%8=ZsKE?k#NTZcnCkJoG{DAEl_P+1*47>FM&?=n(o1+WFv4yMpQ>?%rQP6si0g zIdRcTeZOXR81Zf5e!tYB!rh5^I@6s1-H+3J z>NWcXj}VC>KID)`ih&^i83RvFh!eq-?THd|_Udr}8tsDayHGs%==xDd6YIA;AvoKc z1*IC+2OSrBzv!t%ES@wn+RF6vml9+xLUbv?C++44Ii-yy8mX`y|6gWTgBsT+&#N;W zTATTa^8a=2e*G~opksm?nJMd)8%#W!8X9~o-v2pufZQb?u-Due z;bkC0ib~28<1Z(Nd|^=)^l+KCN%_`_+bxD5yJwc@p}UhippW<252S=oa3soo4PSAx z0^iyl18~yrJD&P>e~&~Z&mmkJZR&5DfY@nn`x9UM3qwy<#$L^5By9Hh0!{VukY~-0 zU%U5}^!Uh<(V-{9hOQ9iZ#_M%8vmC*{}v2ap5*wogXkFWslo>bF#Xi4nKaw*9v>c^ zWX9JTw4`RzyhkO(S_XFcm1D)~Z#6SpoiFW{#dWOiX-zTmRu_4{l7ameuvHx3LBW32 zP&N}puXlsJIc`VLm)zj5{aiHKHI4SWJ|MfHQf->0ytbF7s8R0>?;RHbRdO26`!sD| z3JmUI&n%3iQoZcIG2UpY^0+>$ zlwi+f!iN^61{6w`gDPs_BOn%m)+;6(oXvjsJS&;iF>qL0{@KOABJl%suvr4(7jCg;?;{7MVQxza)%;y}qAU`CTz1)L&JJcqKl(Eg#`_Q$lHVAB?0%-JN#)u2)v*Pf z0=9AH&jAxlxV;_&y%Lw;6j_=u_sv}NxBj)T4+kf-t0XI>{V>md+m2qQ8d^LE!?xdj z6_`}`Bjg(M!ZqRNJH}ejOg=?rtfMO#N$8`;32*-^S2W994C%ooqyiOFH@F{5x#n}@?fPcD+Lez>rQ|K-{AwT=GB z0g6F&1^t_0DOBWoMdisp_TLD^oY;Z$Z*gGeK|ZsQe3~EUGc?fCkw%+D>39k{z>H;|45SED2c*_*pCUI-m+!WEvFLG;Gt66KmV1qQG~&VT%YKWSH6V; z3-Heime6q79X&KWm1EFwq1=4@t(rE|aufFrv@;_r}5LK>1Y(lKxO!pT5GYyhiOaV3d z3qTO38!MVGi(DlA z+@}1uu3}5J%W_6`mM9gID&x!Uv&EH^s?~AeUpRe|a5D(6X0FZB7;@6k)?N*#>Dr#h z9v|y<9H()vmv%V)eIVJZjs0h)OX%ziN`0Vhe8qk}x@}&)UD`Z>HAL@sYr9^7KT>^} z&0#0GlWdaY0?qe&mr{|JgwCNz(qwI`;`+KaT?8A4t}7j(8~F<}8oiN5MgdO+K~};% zntGNy!v{L4K(VuPl=_*9hUJKAugC&ckOpI;kR?_ZhWQ-zVHqi5G9lW=%VWHnV)J$F zewLcP`xfi$`%3&BV}x671IjhXxX7NGR2J=NypxlUgo?5<1?k1cvFH1LkmJ|R6AU=5 ze1q4yT4~W{w4n#OfkNhEjBS>;&=K36d~-cg;xqx|&BL77n26I&P4^UzX2aFG4OwG< zBiXdBO4jF`8RWGMApc43ry9RIIolL23j}GHt6Ef);CC5MYU)Liv7+XyHEcBG;#J-8 zzQ?lhkoSoUZxvY@U^yZ_tX2=8*(9OPbt5vdGktB_9RGz&%W#7LV|~8yY00Bt8`|vw z_qJPcEEnW6@$0rtou8@s3q}I%aapoIzvLtJD^V)SiolYHu3)+(s!bu?+q;tEQq^l<6nQ#dVCxSqRp5F^6BA6>=enk7(Y}l zh+cqWyL7T?{mCDEwV|HN^E@HH-LGA9y$yyh5vWt%zKK4AoL$|@59Wv&v=EIYV0=F# zV4B$3UnTD5YNYJ}!B_7k4DB#t|JqJ?*GTCTjym6xPlpMt%4|<~xZte{{z*+)bn-`> zwW0(owq6+DcjRq@Mhei9`!z+w0W<-5tj@IrO zYR&gYgaZ-xqv19i&8bUHu@Vo{)^wmt>6)!nh0d-x)bH6>H?DN|-2H{N$j~>P}NP^g)@Xiy3-o%gPgPz+8KZohV z9ALIPYWa&7nIGnt;fTrg8PQt%YP~wL*WUtN@0(z?pH=xZJf#cXr=TN$x}VSwEou}rjBR7I*vv>G<$Qj6Q?c}B?3qAB zZ)_G(LseR=h2`|sj1)k3_x>2Nz5Q_VhaIMAD*HiwBdpY#pccOQ^CEIE9Cy!|oj`hoL>9;n|yJ`S-aY9)126%NXi(f{2=^G4W>`s}*aZb}U`E60`K zlB7q4=z`>67f8vMoiw+&+Y@`eul}w87xd0 zgeiRuq;8ClIi2+~-dtn|KT78cm+H>2P!M6wT_oS{Q&Ie#UQ(J!u;HMy_rs%Y28WqT zk)OmA*Kxo3YW+P%5{l=#;YH47S&je$sT2RuC?`$oRyU>l3Npj=$&z=-k?)Z_l{{iN zr<%7G|0oq8MjaE`a-5j_%B;jEc2g@;@mR{%Zl?EMV8~E>cp}4M_t5p<5OsjjwLi` zqHhUu`}-^1SW!d?s)7+*zL*}v_d&_Ds;X~Fu0QNWDW*&~^Vz5|+bKrD_+0sZzp1=;ml|g&RtQ77!#?sUzM`2HR(jsB*^q@v zm!sVf*efvzHe_j3bJNVPPV;)E1;<@#vfmd1RuU9uijoPyOY`&=<2d z3cYo2NRb(lS|&^_#i4Y<_6c7A&l>Lp`Q`{^A-E6r%y;^AOf}H zaX03tLD2CL>XUw&l0Wqzb+2v*ny5sLt)xh{jiPt1MPZy8uWwotAPP+6U<-I?4<&_= zyO78~=4$LB+iLYpMk7Z3RqVLg#NEq)MCChY4^or z`$jIV$W~s)b}FhJ3zzIS;5i&renZY zsDVrUg8rVWoS%=7x5nUmY;wU;pqtm*)qAp>-jq+Y35hcsxeBAf(jvCeAG_<=zeiip zOQX4uA1aUuJg)Lz@Z^@G0?Y~bhniO$Gg4=G-C_4dWYsO@i+_4u*E=dMd&_NJ?r7Po<@9x~YLVeDMl;YkH`tVJMfN&kyEz_6gJh<7|F z)%AgJ!knRNB$Lr(3CwOR{UOORz3;dUKbG?ded3)O7A}~5r9~4= zgn>||I{K-QW2ejNtIXWZ_=J?hz`T0FDWdZgof&2Q#{>)`biB^$VY69Rv|RfQYr;tQU{qhvKYc7?pI8qo5w|u_alQd%|{~#wWn;y@UVDC z=pp>U9BCSEn+XxYOJW1EKJVi3Y3XaC?LWp}HTtQ%>gMUPM@tF2NcrMyA7K-~JV~&9 z$$sUlcTd*UBwCr4Do^Lhb)>=U_M=u(>*v(ehDz;=fvm_Ix+^}4_!BLeMDA_@GKa<~ zTzj{f!mi=4Foz&4Ix6eaWt;kp%Z(nMEo}+nfj0g{j-Ty3zj#kA10xiz{(hD57f8dE z1!C3+c^R}C;gIA88jP>oIvcVOu90`958ow^xfD4ynbM;bx<4K=NGuDje6kFrT3Uj1 ztXtx&PH@?Bh*DtWaVc>U(yvkw?DjHG{CKjeumFd)5tp&0Nc4j_V2PNc0 zEfkm8iR9i+6d1ikC{MH$!LRhw zp=!in9XuCA$zA*lN1cz81e&Tu{*=y|i#|6Er}3=43ELnHJD*pbZU}Lif`^Hdo0ZXz zN0TLD4`>no)uKqof>iUY71a2>SzfmEc**v~Q{G5^$uB>eWd(w|@v-PKq#oVnQ?}DG z73%Y}B@F~pnT@LIb6!CZc}d(I9iIfI9LBJn4dODU zvO1WS!0~A4dR~M@Dp=6JlqZD6d2rGw{9^=@aK@5Zh~SifOz#J?@HrDphc5B~47l>g zq0x+idXfPXJ^lY+hU`d_{qHMjrQa)R_SL>va2d#-7Uub37^z&ZoiT|IFh)`s#(20@ zrD`8Ta+Gt`_xyd0O^p4VmizcO2So|p)56Cxt*s_mcyUjs^HH6Z_J(o0$q-J8Vv?&W zQml{(84!f=8mC{HbdUONA3_G|bj#UGiwxKbvP<>e|$BaXL zS_)aHib>)M-GSb*Bk@_3A8*9Jzu?#?$=%c|-=RgQqa6&ErGJ!>L5mwEX)U&3eQZO@ zbLxR-Q{1}w zH=^e5rj(Vxsr)4-IC3kIbJI zwV03QNhnoJxTN{*mmjEKj1pL@qKF>&iGSH-c{|7ML(vo66~VX;z3ZWTsJ5_)9Uz}btk2dw}v!FbjXNw zYuI1EUf${n+riw~HSP8XnCt|0MJ3`0J*y-=gD*k3#uzS(J=km#pP!Uhe_Jekk+A!_ zNZJqHGpFgv@+;#q9&4wa5^t{ykGh2I8{yxR;F>W5q!nnMOdUF~>K6y~@QIQD>0U2* zb=jMQG|K%MkDn6KW4ze=tr)pykcCMl@|R$fd<_X+BU=-SyxDi)i5VZR);@#47f_sS zni1iFv=nHJQ}O(>yp&Q$aZ4ItOIO2C?H_|lWu=n@ zqr{yw@}2K*{m%s7|GOev#7gQ`YSuV117#j|X^I9axFkbV>eoiEM@x4YnFkwcY#Bb0 zzuZr#RMFKn_-7n6k)&O)h~)78Q;=h(;2GL7=s?~h&raa~3}-7VOM63)w?g>u40(iv zV4Sn`9a+=1ypUES3i4abDhrfd*|oEAfslTuX?UmqoTl*v@}s$azYd%$E>G#<;m z-w(WvXw4b~ARL#@a~(seGU@6(KFDAzc+2JF`UriN8_Y#Gbxq$hqK{aqmau!tg5Wr= ztWddKozYb%E^&wOS|kant$kVt<4Ina^@{-!U}60@i`CcQr56ImjHVfnWo%n2XQz5v z_pPtrHS+j5BEPX~7gGZ1!h9xSj}9YYIXaOBZ$;U^4;1*J(E{!r$Dgp5xn+aGEH>F+ zgWR<8kd?~R)fZ=8|IaG3iV8&WCo4j_>{^oVHp$X^__W~q690Dz0(skb-4UIhxi?LT zPW}d&XPvqM?$iNRVhw%qs7xw|SQ!>pkisCzgY$va7~boTNgbpAyRdRYR)Yl}c>F_> z2lPZZoKy#PfnGGYWtr#7*;CFfMpkJz3)b*X)KL_r9vqeZ?=zxE3H(FWCO?-$u?qX@ zpWOm&S-?21jTsUPf8G;9h-z-Lp-x3D9{SDGe=icuKeY(g&*uY{t#Ws~P9gtjLqU@8 z^#YeM)1YD2YT5tMcUlT9OsGY%DIfnj&%qPf2C2~hrrg`xy9$I>X@qP#<4dVJ^EEKL z{q^}Co84qZsjze6Bk$d>VKC-+e;dX(d#a>O?%oznS6lZ1IwiSK-eU&0n*uDP8Rj;O z|6bN3E`<0x49-Rka2940^FB|;5}4D_|L(}noag4$gS}?qbmd*81%UM2E<)P&2$>k~`qVLAdI(h6PFhbY7x=gAN0I0Q5*A=mx2U18u5%p!OBvM+hE-z_=~elN zn79w9>em}*v%(5x=HfuRiYFknEC9BDydm+R2h@>FFtL{^2%i8I&TGBxY_VxqK#b_Y z@BltXWK_HyH?&i`I2hSIB1VlcMfdRFyf#~4~sPL5Tucw-Yl~5dhfb5P}iISbP zS-AJG7zGf_@NLsQTs-}ai6V;yvEeAcqQu@cNcKmX?yuX(+378y*bbh&26OYRt`>DS zmj@80iu9LAw3AhdSoM=!tx!K~R-QP6QExa0bJXJ)Sdi<|2;MvZw;Yn#X*eFe;S9{{ zXeQ{ouFA|g4Vv9o!5Fy@twr+=z8QL=U$QrD2L{nlfl9(@$E^a&Fuavvi3;!M1C!QX z&?lG3HWC8MY{*INFuXU;FenuvVEpcSMig)?w;Z&sUQ_mcc;Zdl(W>-#qZlwaYgQR( zYcl{&IhOpq8HC?uy(NC;3p z-iXdWfl4>zm|OJxkF=g?T3HO0*o^1zBl{J+Ch)xr^y&m;FAw}58bnZ)m}3M)mvCQk z4*Zd$U4YuYgPw?9W*dTb_BBx5{f3j}PhScA&|5%%y6OEwa}XFJ`pXMXiXS5d*huIf ziIogw0;T-38oNKnjWH%}BXZmeNTQG25H@R%CrES(5O;u9ph;(BB8qwfcr%$R=w(W9 zcYxu%o?6^kmqe@Ig6CN)`E*aKLY`TaBKhPK*4x_guSAmaZL*j{tO@*^xiE`0DVOQH z_x7R0b->K7$%Bk}J4AnUI9Z^8qmU^SIy_3e@~iz2U1k{6qH*$FKsJ~ujcwJz->~q0 z#pa2*Ckxb_wvgP8;DZl5C{Us43U9`-G=~m&UUhB3f?$*jR`w~V7J-g=z%x&5`YmzUWlICbh&V`_HM{}Ot$CU`a6hY=$9Bz=yCiIut*~R^***^mJ8-KVo98h6U*>S!^zX1omT_1&ggcA9ngL^**hRZK>aUR=W4J z{2BX|&UTAZXx~j@KO=23cjI!4bsKHGTS@4)Zu5TU_c`#pw-@G$<|I{IoFyT^-7$C#}GwEAIQAeG}cc{vEHyF4Vb{77qI_bmg+=NXS7>xsa9qx@Ch4Xb15D2 zi+aJ*2`H`~@!1{8tEz<-Ld(0#zkuchxg;)%4x!NMLnf{{4^T$cj`{5aa@$QHg9R)^ zK2!4G+I zJP9|VPxe>XUQZkG{djPUV_`a~LGvYl=poA=JSl=OZs!eHO2EeO7;C3T1}6FqL;AD zOVU1QCjEgXqraIg$x^JyWUjKR8|1LndKXjj{>A#kIS?JYJv=P=aW{QC{S?2uZ3AVE zx;;$*$z7&3ixJHVx7>H<&jjXIYids$NPKNUCc~iT{urp@n2PHtR&i6+FC-&2@%cK2 zA(I!OteN6Wjp_6)Em%9HxM~O2>e^lY$^+QfH>SbPAjpX5wA=7=AV+ieHbN$3ME(QpgvFHY!FZ00zaQ@G|2Gr>CgmWlybS$X9Ew{lLcfvAL4!t zG&Y_zt5b(DAmFg9QzG3SIG-jlOh&O?mO%Nb^W> zD3;TcGa9U|t+x@`m{J#^=Cp=R{yFzJRm#SVqk!^%l^FS9tkdjW(@d9Dr;ucBN+tJ) zI6u+?>~Z8``J3~-?BrFTDt(KM)6Kqj?2@2;5X6fT29Y+g0(h= zk|Sn8+4eQ)<*bO_oYGAByp>3+JyxvO6n16b-{cgDUFYoUvEl*$UxZeGc zyyxRFwbKzpO6Ehk?xY^5SQwX#usu~r%Wo*k_R4!W4M-fb(VrMb7FH4Rs>t@t%T~;j zAlc9I*bVUL4Dg`a*A@F5fWKzrm5oIeuke$0KMQ|SQlwt;XYmN1awOtjazWSlvoQFA zu4{9`O`I2}>6FQ+momdAN}$8S)Ljx=71I~+F>cKFbfi(mH6uj7Gp zds96x2@a7lHQ;rI(L;IW#=8fD-O7gj$gLH@VuBrnY?iJ{Udn9rWK0xcuSdzLsVHTh z9(NeT{IA0rJ}1^HzPcMn3;hM8@>HAQIcx?Btq7D-QR}oHydsUnCsh|M zQSS5eA~hzru9~Q08|y|}U7;!J=P!Fl)1u$in+d-nE-79-`)K%lLphIteV*SB5mp)V z{Xk+oVQFSRZekj56X^hMceAau4Q!dH?tJO9)v#k;mC&aJ#J0-sAXW+slb(35_f^Kt zW?j(oDrld6Y}UE0)j4}o2CKKU)xx^td@LK4I~-UH@5IxoYPSjxedk%d&YpRh?1zAA zmhvMut!1Yz{oC#ZDSA6WYdaxR^`S@H%bAT0DrMp9M{QkW?R|K$2N6?nE8> zY{0#c>VGcEscLh2VWv~>=bU}d<)@34ft;jsh{+W#FOoqT$FK|pG;XxfhwU^MElDx$ z?cQE>{8|`y@NX7SKXc2X2c!uvv=Dqo=ZS$wL}@os^HR0f6jfbNc_z)3&khxfj~~X~ zj_#sz5=kLp~}jUwzm~H$)HW@E*4=sMCoL6OZP4_XH=tBsR~y8UE}_-T323{^rn>H?Z>n zfj$aq%6-i&kK9IOBQNM1j5Uhu71tO%DU;acn>^>zL#jnkXiaj*{(E!~YA&0I<})tW zXQQ#Pj4Q-2}`dr+ZL_zIJIwa`(cN{x^r;q@5k?Xd`N0%2Mt*T9Y&hsSy7yT|2dzGiD!rT3ttEx@tZ*#QCXBiH5b=+D z|I)3SRXa|Iu9k_gdN{9F3lQmyWHUcybCAUk=&%dk8urE1seG<>sSxW*A`x#$Z=of~ z;=lU(SiO)t{sNknk-mJOve7?GzZWJbliDNGaQQ*XM1iatK_Sml;x2G2AK&I=-Cy@l zOliYJSbJ!MUViHF1BO|&Ksf8jlU5?8gnLn6Gz+c-MtYl^{sd;cqhOLwat7WPMqilc zmUuQXej>K#qEf4$-U-$Aa78hfbW0N9iCn9ydkX#yBz2N zz5~8>{AMF@d((bok#2T`lZA-6W?P&DEArJs4*4us1n+f$wY{v^1j(!T4hwnIz_DW%?ssx21 zSWYMP@2~=Vq~N;34*X9(f`HN2bYC=X1}!ZU`Wd}nRLA#M+d4VwghM2I(pMW943+35HsL>M%6+T?Iyv;6m2afaoXxeC25s)S&BiU@skdhAYNE54TYHFDll0G z#|U$`hY`Q8X`JU33Zvx>#pDimZ!8uyM9I+=ttxYll3)81f}k3oiA#qqqlTc#DE@fC zHTs$>8bYepp^NlR4*NIHTzceJQFcy&c6em(85vXm?&`RffV4;@nSRwSyY^wuAxs<) zMY8UohP;KKG`4?u9J&3lwDoozaFbq)VAZ2Fr>lVit8g@y!xG6f>UU&i-8cK@SNG4;S>6rsh>C4A=gh2 z#0wvZ9(1UKf5n@?W!MF#G=I`PHX5d9?15{)-Ert?u0H>Mlj9Kkl$@85I?sq7>;M6 zJEe+2*FQ_MA6oj!(yaFX+c-ZkmpTUk@@)|Wp&c2&dim9`KDxt;@w+pQXFHnFlwV7q zWSqnRlm5$Ep(TIYwHWoRubp*fD-d{tYONrx_n=1+qGQQ`QH2ul%;JdPX}oTGlGU-4 zS{u?t8X;4}J%zy_!BMM$DC=5%T<_A@7rClb8# z%ziGa>3m7z_iF*Js#z8GTIjZi7GYRbj`fXPbnX_-4e}00?N?ppcG-ecc#l4j!eH85 zTwNgpiy4OmB7xDx+e+)=d9NW&G3#dy?=(XDBV3(>1wZS5<KM6!=P*k%@8!BtAfOwJ! z>75mClwkD<*-Z!~7I&u$3OJ5-rZjnVAm~+lWjx}q2=~sot@VI8`2iLc*@7YvtCLYb}_Hu0%l`Bcvz!=7B_(S@A4J_6R53SQ+@ z7a1wC$aJ>X>FpR-3L32_rVic=ZYfBw%~t+n>yRV~AbP)5-|GJ;!_SGKW;EGV_Nkv} zR(|KXO8x%&=>We6BHM4+okd1CW#o5cvkF%o^`!NS*uy#)MVs6bv0f^AquuYS^HyUZ z4h)sj!RDv5{tSzDp~%p^zc_3>QoxxLZpKL{{zj?r^INn8{5!mDx7Ug7(;`Nr4(|@F zVFV;dT%iAA6~Q6q6WrPOz^^q>xov7w?ewh-Q{Zg!NxR-%o!fU(f{oNYHl5`Ri4}9( zMHTYQ{AX7V5vPr>RU=E;VX_-o5CNC({qZU9gj;OrC)uZ@w8tU%>!vB)-|K&9BvF<5 zFH{#D*suM~5sY7i3^V)rCUX$+Kh_%3xs!|k@nY;x(L!t1M6Sx)_d?E&Q|e>_4s2{` z1F4=8&1sW&FDtMM?bR%#B5Qc`U;PCN!2;mUx2(!Z=@ra}$~MuE&)sm-l)tbs*TKy0 zrugX|Hnsjh{s5EykRSVKe32Oa-K(JG*8=^n&wspDS*ysv<#N-|Tx4_~iPI zO|SNl*>>jjPvxBn_xV?Pjdb|}rF|4g7Xk~7Kay`Mh*+1-uh7bbz9Gw=rW+!?69do&bZ>3gj2cEjpTE<@4 z-#dyN33rsij6-zw`T%`2y2w*yf>B^6#jGIEMXd}^BBh}9MYWk8?I0HU_jv4|v2JI2 zJa4PKa!q>W=PNM(-lJ_C1Tl`6?2CPLF}-P(CV2$K5);(%tTJ+`>g5uGx+<`Tbf5mq z>n34HB_Zke1TRDC$@5eZ!-yPs+d;{krC&i&txDX2j}7_BCuubL zYPP?8v-jNvr0SKr{aktZnrrg?m+&ZzfRlJ)xgBDxL-hWu(o4o6 zZ`;lKc{yFxj~QO}WL8~C_}=s)Jbwd!5s`E_Cwqn#%U134yBia(FDlQiw@Dxd1&Q4} zGZhfsn2u+yav>Mies}4rUOSK8MsoG|op7Sx zY*0+&m8;MB$a%lRp#Cz3tvq!o<*T~=6Sma;#Qe~X(T7XUkDfa*<(gW{Prygdz1l8O zSu1v)0(oSMhg@5(Ef^68_SS!=B1m6XF#TmixiBvGe0^KhRr+_vUtUH-5yH3kp}?}f z`+3)jdpW%oKf^}$<;;@s)V^F8rsl%rqUN`8y_yPwjfwKq?qYQ(LPCoRvNvIF^M)M@ z|A=saMN$gxsumFCVUde3T7UNiio^jZSnh<{XH4cXBH?^5 zjhr#=>`Do;-#g$6nFQrF`*;?sl6qD)$ec`)_e^&AGGUSP4{cLct7VnW=Px!V59Q1o zGm`feN@>z>dH-oHbQnUc(syS2-x}h7oo{df(-MtL1jb_8f&As#`6Jr3!d5kvkA8Sg z{_0T{tiROP95HTKTvHo+2T~=J*VP|b#4{-WFFN%f#SJMfTvxDNs}Q%K&9iu`-b%b> z)nC~+SxkWMG=CZI(WdTo=NO-}~=RER2E6Tt5&Ol-Rc2ufLiewQI??O-oV>C1W1c zF0wy;!%FTdS7R(Y``hMo*b{A|M|gm){l8BIq$M)E^x!i;?>Bs2D4vIWX^s-2DZ8W} zO9_`%v8+{nbc-6_*1qTJc3!dCvkc01s*%%zYy0nk%Tq?uom;($<48_X@prY&fP@#- zF|Cm8p!r|OKuo01&cKkBo8iT{5CQD8qbkPxo! zZv1=V%s)?B)<{IrjW)VFO}jm8ytbz^J(d5Etq*1?@zJ@u`R9aOiH7M)Gt5Z%?anAKsbfy=d?&)?MZoXG^*;bY@d^W4xwya~9{hi?d{&Uzzg+#S%6Jh{#Xj+MU z_=_{f*6Hi+uJSy7ZAGYMI zTeS`E5vSA&zFK;3?QTnF2($||!K*SDR&ZQ*Y$tTOA1ulaHz57mzFhUN|L-p;3E{ID z<`VvlWeGnzN3^Z!_#tsVQ~!$dIrKPH(0Yce?>{Whe=pyHAb`xkMdW=-P1S!+H`u<* z5Y}QarQWjt-@l`Q3#0VIyDU=v<*)yJEW7yu73_M4v Date: Tue, 25 Oct 2022 13:39:32 -0400 Subject: [PATCH 45/58] rm reg_wflow refs, switch config.sh to .yaml, update directory structure in intro --- docs/UsersGuide/source/Components.rst | 2 +- docs/UsersGuide/source/ContributorsGuide.rst | 34 ++++++++--------- docs/UsersGuide/source/Graphics.rst | 16 ++++---- docs/UsersGuide/source/InputOutputFiles.rst | 34 +++++++++-------- docs/UsersGuide/source/Introduction.rst | 39 +++++++++++--------- docs/UsersGuide/source/RunSRW.rst | 2 +- 6 files changed, 66 insertions(+), 61 deletions(-) diff --git a/docs/UsersGuide/source/Components.rst b/docs/UsersGuide/source/Components.rst index bafb4ead29..b187db6680 100644 --- a/docs/UsersGuide/source/Components.rst +++ b/docs/UsersGuide/source/Components.rst @@ -72,7 +72,7 @@ A Python script is provided to create basic visualizations of the model output. is designed to output graphics in PNG format for 14 standard meteorological variables when using the pre-defined :term:`CONUS` domain. A difference plotting script is also included to visually compare two runs for the same domain and resolution. These scripts are provided only as an example for users familiar with Python. They may be used to perform a visual check to verify that the application is producing reasonable results. -After running ``manage_externals/checkout_externals``, the visualization scripts will be available in the ``ufs-srweather-app/regional_workflow/ush/Python`` directory. Usage information and instructions are described in :numref:`Chapter %s ` and are also included at the top of the script. +After running ``manage_externals/checkout_externals``, the visualization scripts will be available in the ``ufs-srweather-app/ush/Python`` directory. Usage information and instructions are described in :numref:`Chapter %s ` and are also included at the top of the script. Build System and Workflow ========================= diff --git a/docs/UsersGuide/source/ContributorsGuide.rst b/docs/UsersGuide/source/ContributorsGuide.rst index f63bf3d447..efb90ca4cc 100644 --- a/docs/UsersGuide/source/ContributorsGuide.rst +++ b/docs/UsersGuide/source/ContributorsGuide.rst @@ -13,7 +13,7 @@ Background Authoritative branch ----------------------- -The ``ufs-srweather-app`` and ``regional_workflow`` repositories each maintain a main branch for development called ``develop``. The HEAD of ``develop`` reflects the latest development changes. It points to regularly updated hashes for individual sub-components. Pull requests (PRs) will be merged to ``develop``. +The ``ufs-srweather-app`` repository maintains a main branch for development called ``develop``. The HEAD of ``develop`` reflects the latest development changes. It points to regularly updated hashes for individual sub-components. Pull requests (PRs) will be merged to ``develop``. The ``develop`` branch is protected by the code management team: #. Pull requests for this branch require approval by at least two code reviewers. @@ -52,7 +52,7 @@ Scientists from across multiple labs and organizations have volunteered to revie +------------------+------------------------------------------------+---------------------------------------------------------------------------------------------+ | GSL | Jeff Beck (@JeffBeck-NOAA) | SRW App configuration/workflow, code management, meteorological evaluation | | +------------------------------------------------+---------------------------------------------------------------------------------------------+ - | | Gerard Ketefian (@gsketefian) | ``regional_workflow`` scripts, jinja templates, and verification tasks | + | | Gerard Ketefian (@gsketefian) | regional workflow scripts, jinja templates, and verification tasks | | +------------------------------------------------+---------------------------------------------------------------------------------------------+ | | Linlin Pan (@panll) | Workflow, CCPP/physics, verification | | +------------------------------------------------+---------------------------------------------------------------------------------------------+ @@ -64,7 +64,7 @@ Scientists from across multiple labs and organizations have volunteered to revie +------------------+------------------------------------------------+---------------------------------------------------------------------------------------------+ | NCAR | Mike Kavulich (@mkavulich) | CCPP/physics | | +------------------------------------------------+---------------------------------------------------------------------------------------------+ - | | Will Mayfield (@willmayfield) | Verification/METplus tasks, regional_workflow (esp. on Cheyenne) | + | | Will Mayfield (@willmayfield) | Verification/METplus tasks, regional workflow (esp. on Cheyenne) | +------------------+------------------------------------------------+---------------------------------------------------------------------------------------------+ | NSSL | Yunheng Wang (@ywangwof) | HPC systems, code management and regional workflow especially on Stampede, Jet | | | | and NSSL computers | @@ -75,7 +75,7 @@ Scientists from across multiple labs and organizations have volunteered to revie Contribution Process ======================== -The steps below should be followed in order to make changes to the ``develop`` branch of the ``ufs-srweather-app`` or ``regional_workflow`` repositories. Communication with code managers and the code management team throughout the process is encouraged. +The steps below should be followed in order to make changes to the ``develop`` branch of the ``ufs-srweather-app`` repository. Communication with code managers and the code management team throughout the process is encouraged. #. **Issue** - Open an issue to document changes. Click `here `__ to open a new ``ufs-srweather-app`` issue or see :numref:`Step %s ` for detailed instructions. #. **GitFlow** - Follow `GitFlow `__ procedures for development. @@ -99,9 +99,9 @@ The steps below should be followed in order to make changes to the ``develop`` b Opening an Issue ------------------- -All changes should be associated with a GitHub Issue. If developers are working on a change, they should search the existing issues in the appropriate repository (``ufs-srweather-app`` and/or ``regional_workflow``). If an issue does not exist for the work they are doing, they should create one prior to opening a new pull request. +All changes should be associated with a GitHub Issue. If developers are working on a change, they should search the existing issues in the ``ufs-srweather-app`` repository. If an issue does not exist for the work they are doing, they should create one prior to opening a new pull request. -To open an issue, click on `New Issue `__ within the ``ufs-srweather-app`` GitHub repository and/or within the ``regional_workflow`` repository (depending on where the changes will be made). +To open an issue, click on `New Issue `__ within the ``ufs-srweather-app`` GitHub repository. Choose from three options: #. `Bug Report `__: Report specific problems ("bugs") in the code using the following template: @@ -217,9 +217,9 @@ Pull requests will be reviewed and approved by at least two code reviewers, at l .. note:: - * If a developer wants to make use of automated testing, any ``ufs-srweather-app`` + ``regional_workflow`` dependencies must be opened in PRs from dependent branches of forks belonging to the same user. - * The ``Externals.cfg`` file should point to any dependent branches in ``regional_workflow`` (and other components, if necessary) while those branches are under review. Once the corresponding ``regional_workflow`` PR has been merged, the developer should update the references in their ``Externals.cfg`` file to reflect the appropriate hashes in the authoritative repositories. - * Developers should mention in their ``ufs-srweather-app`` PR description that they are temporarily pointing to a branch/hash in their fork of ``regional_workflow`` and that it will be updated once the corresponding ``regional_workflow`` PR is merged. + * If a developer wants to make use of automated testing, any ``ufs-srweather-app`` dependencies must be opened in PRs from dependent branches of forks belonging to the same user. + * The ``Externals.cfg`` file should point to any dependent branches in component repositories while those branches are under review. Once the PR has been merged in the dependent repository, the developer should update the references in their ``Externals.cfg`` file to reflect the appropriate hashes in the authoritative repositories. + * Developers should mention in their ``ufs-srweather-app`` PR description that they are temporarily pointing to a branch/hash in their fork of a component repository and that it will be updated once the corresponding PR is merged. .. _Template: @@ -369,32 +369,30 @@ General * For changes to the ``scripts``, ``ush``, or ``jobs`` directories, developers should follow the `NCO Guidelines `__ for what is incorporated into each layer. * Developers should ensure that their contributions work with the most recent version of the ``ufs-srweather-app``, including all the specific up-to-date hashes of each subcomponent. * Modifications should not break any existing supported capabilities on any supported platforms. -* Update the ``.rst`` documentation files where appropriate as part of the PR. The documentation files reside in ``ufs-srweather-app``, so changes to ``regional_workflow`` that require documentation need a corresponding PR to ``ufs-srweather-app``. If necessary, contributors may update the documentation in a subsequent PR. In these cases, the contributor should open an issue reflecting the need for documentation (see :numref:`Step %s `) and include the issue number and explanation in the Documentation section of their initial PR. +* Update the ``.rst`` documentation files where appropriate as part of the PR. The documentation files reside in ``ufs-srweather-app/docs``. If necessary, contributors may update the documentation in a subsequent PR. In these cases, the contributor should open an issue reflecting the need for documentation (see :numref:`Step %s `) and include the issue number and explanation in the Documentation section of their initial PR. SRW Application ------------------ -Externals.cfg +**Externals.cfg** * All externals live in a single ``Externals.cfg`` file. * Only a single hash will be maintained for any given external code base. All externals should point to this static hash (not to the top of a branch). * All new entries in ``Externals.cfg`` must point only to authoritative repositories. In other words, entries must point to either a `UFS Community GitHub organization `__ repository or another NOAA project organization repository. - * Temporary exceptions are made for a PR into the ``develop`` branch of ``ufs-srweather-app`` that is dependent on another PR (e.g., a ``regional_workflow`` PR from the same contributor). When the component PR is merged, the contributor must update the corresponding ``ufs-srweather-app`` PR with the hash of the component's authoritative repository. + * Temporary exceptions are made for a PR into the ``develop`` branch of ``ufs-srweather-app`` that is dependent on another PR (e.g., a ``ufs-weather-model`` PR from the same contributor). When the component PR is merged, the contributor must update the corresponding ``ufs-srweather-app`` PR with the hash of the component's authoritative repository. -Build system +**Build System** * Each component must build with CMake * Each component must build with Intel compilers on official `Level 1 `__ platforms and with GNU or Intel compilers on other platforms. * Each component must have a mechanism for platform independence (i.e., no hard-coded machine-specific settings outside of established environment, configuration, and modulefiles). * Each component must build using the standard supported NCEPLIBS environment (currently `HPC-Stack `__). -Modulefiles +**Modulefiles** * Each component must build using the common modules located in the ``modulefiles/srw_common`` file. - Regional Workflow ----------------------- -If changes are made to ``regional_workflow``, a corresponding PR to ``ufs-srweather-app`` should be opened to update the ``regional_workflow`` hash. +-------------------- **General Coding Standards:** * The ``regional_workflow`` repository must not contain source code for compiled programs. Only scripts and configuration files should reside in this repository. @@ -414,7 +412,7 @@ If changes are made to ``regional_workflow``, a corresponding PR to ``ufs-srweat **Management of Template Files:** If a new configurable option is required in an existing template, it must be handled similarly to its counterparts in the scripts that fill in the template. For example, if a new type of namelist is introduced for a new application component, it should make use of the existing ``jinja`` framework for populating namelist settings. -**Namelist Management:** Namelists in ``ufs-srweather-app`` and ``regional_workflow`` are generated using a Python tool and managed by setting YAML configuration parameters. This allows for the management of multiple configuration settings with maximum flexibility and minimum duplication of information. +**Namelist Management:** Namelists in ``ufs-srweather-app`` are generated using a Python tool and managed by setting YAML configuration parameters. This allows for the management of multiple configuration settings with maximum flexibility and minimum duplication of information. .. _Testing: diff --git a/docs/UsersGuide/source/Graphics.rst b/docs/UsersGuide/source/Graphics.rst index 259892e73c..945ee13569 100644 --- a/docs/UsersGuide/source/Graphics.rst +++ b/docs/UsersGuide/source/Graphics.rst @@ -17,7 +17,7 @@ output over the :term:`CONUS` for a number of variables, including: * Max/Min 2-5 km updraft helicity * Sea level pressure (SLP) -The Python scripts are located under ``ufs-srweather-app/regional_workflow/ush/Python``. +The Python scripts are located under ``ufs-srweather-app/ush/Python``. The script ``plot_allvars.py`` plots the output from a single cycle within an experiment, while the script ``plot_allvars_diff.py`` plots the difference between the same cycle from two different experiments (e.g., the experiments may differ in some aspect such as the physics suite used). If @@ -126,7 +126,7 @@ scripts: .. code-block:: console - cd ufs-srweather-app/regional_workflow/ush/Python + cd ufs-srweather-app/ush/Python Plotting Output from One Experiment -------------------------------------- @@ -146,7 +146,7 @@ following command line arguments: If a forecast starts at 18h, this is considered the 0th forecast hour, so "starting forecast hour" should be 0, not 18. An example of plotting output from a cycle generated using the sample experiment/workflow -configuration in the ``config.community.sh`` script (which uses the GFSv16 suite definition file) +configuration in the ``config.community.yaml`` script (which uses the GFSv16 suite definition file) is as follows: .. code-block:: console @@ -185,7 +185,7 @@ In this case, the output ``.png`` files will be located in the directory ``$EXPT Submitting Plotting Scripts Through a Batch System ====================================================== -If users plan to create plots of multiple forecast lead times and forecast variables, then they may need to submit the Python scripts to the batch system. Sample scripts are provided for use on a platform such as Hera that uses the Slurm job scheduler: ``sq_job.sh`` and ``sq_job_diff.sh``. Equivalent sample scripts are provided for use on a platform such as Cheyenne that uses PBS as the job scheduler: ``qsub_job.sh`` and ``qsub_job_diff.sh``. Examples of these scripts are located under ``ufs-srweather-app/regional_workflow/ush/Python`` and can be used as a starting point to create a batch script for the user's specific platform/job scheduler. +If users plan to create plots of multiple forecast lead times and forecast variables, then they may need to submit the Python scripts to the batch system. Sample scripts are provided for use on a platform such as Hera that uses the Slurm job scheduler: ``sq_job.sh`` and ``sq_job_diff.sh``. Equivalent sample scripts are provided for use on a platform such as Cheyenne that uses PBS as the job scheduler: ``qsub_job.sh`` and ``qsub_job_diff.sh``. Examples of these scripts are located under ``ufs-srweather-app/ush/Python`` and can be used as a starting point to create a batch script for the user's specific platform/job scheduler. At a minimum, the account should be set appropriately prior to job submission: @@ -201,14 +201,14 @@ If the user's login shell is bash, these variables can be set as follows: .. code-block:: console - export HOMEdir=/path-to/ufs-srweather-app/regional_workflow + export HOMEdir=/path-to/ufs-srweather-app export EXPTDIR=/path-to/experiment/directory If the user's login shell is csh/tcsh, they can be set as follows: .. code-block:: console - setenv HOMEdir /path-to/ufs-srweather-app/regional_workflow + setenv HOMEdir /path-to/ufs-srweather-app setenv EXPTDIR /path-to/experiment/directory If plotting the difference between the same cycle from two different experiments, the variables @@ -217,7 +217,7 @@ is bash, these variables can be set as follows: .. code-block:: console - export HOMEdir=/path-to/ufs-srweather-app/regional_workflow + export HOMEdir=/path-to/ufs-srweather-app export EXPTDIR1=/path-to/experiment/directory1 export EXPTDIR2=/path-to/experiment/directory2 @@ -225,7 +225,7 @@ If the user's login shell is csh/tcsh, they can be set as follows: .. code-block:: console - setenv HOMEdir /path-to/ufs-srweather-app/regional_workflow + setenv HOMEdir /path-to/ufs-srweather-app setenv EXPTDIR1 /path-to/experiment/directory1 setenv EXPTDIR2 /path-to/experiment/directory2 diff --git a/docs/UsersGuide/source/InputOutputFiles.rst b/docs/UsersGuide/source/InputOutputFiles.rst index fe93f17458..d285a36823 100644 --- a/docs/UsersGuide/source/InputOutputFiles.rst +++ b/docs/UsersGuide/source/InputOutputFiles.rst @@ -44,13 +44,15 @@ Documentation for the UPP input files can be found in the `UPP User's Guide Workflow --------- The SRW Application uses a series of template files, combined with user-selected settings, -to create the required namelists and parameter files needed by the Application workflow. (See :numref:`Figure %s ` for a visual summary of the workflow generation process, including template use.) These templates can be reviewed to see which defaults are used and where configuration parameters from the ``config.sh`` file are assigned. +to create the required namelists and parameter files needed by the Application workflow. (See :numref:`Figure %s ` for a visual summary of the workflow generation process, including template use.) These templates can be reviewed to see which defaults are used and where configuration parameters from the ``config.yaml`` file are assigned. List of Template Files ^^^^^^^^^^^^^^^^^^^^^^^^ -The template files for the SRW Application are located in ``regional_workflow/ush/templates`` +The template files for the SRW Application are located in ``ush/templates`` and are shown in :numref:`Table %s `. +.. COMMENT: Where have templates been moved to? + .. _TemplateFiles: .. table:: Template Files for the Regional Workflow @@ -101,7 +103,9 @@ Additional information related to ``diag_table_[CCPP]``, ``field_table_[CCPP]``, Migratory Route of the Input Files in the Workflow ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -:numref:`Figure %s ` shows how the input files in the template directory (``ufs-srweather-app/regional_workflow/ush/templates/``) flow to the experiment directory. First, the CCPP physics suite is specified in the configuration file. The template input files corresponding to the selected physics suite, such as ``field_table_[CCPP]`` and ``nems.configure_[CCPP]``, are copied to the experiment directory (``$EXPTDIR``). Additionally, the namelist file of the Weather Model (``input.nml``) is created from the ``input.nml.FV3`` and ``FV3.input.yml`` files by running the workflow generation script. While running the ``RUN_FCST`` task in the regional workflow as shown in :numref:`Figure %s `, the ``field_table``, ``nems.configure``, and ``input.nml`` files, located in ``$EXPTDIR``, are linked to the cycle directory (``$CYCLE_DIR``). Additionally, ``diag_table`` and ``model_configure`` are copied from the ``templates`` directory. Finally, these files are updated with the variables specified in ``var_defn.sh``. +:numref:`Figure %s ` shows how the input files in the template directory (``ufs-srweather-app/ush/templates/``) flow to the experiment directory. First, the CCPP physics suite is specified in the configuration file. The template input files corresponding to the selected physics suite, such as ``field_table_[CCPP]`` and ``nems.configure_[CCPP]``, are copied to the experiment directory (``$EXPTDIR``). Additionally, the namelist file of the Weather Model (``input.nml``) is created from the ``input.nml.FV3`` and ``FV3.input.yml`` files by running the workflow generation script. While running the ``RUN_FCST`` task in the regional workflow as shown in :numref:`Figure %s `, the ``field_table``, ``nems.configure``, and ``input.nml`` files, located in ``$EXPTDIR``, are linked to the cycle directory (``$CYCLE_DIR``). Additionally, ``diag_table`` and ``model_configure`` are copied from the ``templates`` directory. Finally, these files are updated with the variables specified in ``var_defn.sh``. + +.. COMMENT: Where have templates been moved to? .. _MigratoryRoute: @@ -115,7 +119,7 @@ Migratory Route of the Input Files in the Workflow Output Files ============== -Output files from each workflow task are written to a subdirectory within the experiment directory (``$EXPTDIR/YYYYMMDDHH``), named based on the settings in ``config.sh``. +Output files from each workflow task are written to a subdirectory within the experiment directory (``$EXPTDIR/YYYYMMDDHH``), named based on the settings in ``config.yaml``. Initial and boundary condition files ------------------------------------ @@ -168,7 +172,7 @@ For the SRW Application, the weather model netCDF output files are written to `` * ``NATLEV_{YY}{JJJ}{hh}{mm}f{fhr}00 -> {domain}.t{cyc}z.natlevf{fhr}.tmXX.grib2`` * ``PRSLEV_{YY}{JJJ}{hh}{mm}f{fhr}00 -> {domain}.t{cyc}z.prslevf{fhr}.tmXX.grib2`` -The default setting for the output file names uses ``rrfs`` for ``{domain}``. This may be overridden by the user in the ``config.sh`` settings. +The default setting for the output file names uses ``rrfs`` for ``{domain}``. This may be overridden by the user in the ``config.yaml`` settings. Modifying the UPP Output ^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -184,7 +188,7 @@ UPP Product Output Tables for the UFS SRW LAM Grid: Use the instructions in the `UPP User's Guide `__ to make modifications to the ``fv3lam.xml`` file and to remake the flat text file, called ``postxconfig-NT-fv3lam.txt`` (default), that the UPP reads. -After creating the new flat text file to reflect the changes, users will need to modify their ``config.sh`` to point the workflow to the new text file. In ``config.sh``, set the following: +After creating the new flat text file to reflect the changes, users will need to modify their ``config.yaml`` to point the workflow to the new text file. In ``config.yaml``, set the following: .. code-block:: console @@ -210,7 +214,7 @@ Download and unpack the external files: wget https://github.com/NOAA-EMC/EMC_post/releases/download/upp_v10.1.0/fix.tar.gz tar -xzf fix.tar.gz -Modify the ``config.sh`` file to include the following lines: +Modify the ``config.yaml`` file to include the following lines: .. code-block:: console @@ -227,7 +231,7 @@ By setting ``USE_CRTM`` to "TRUE", the workflow will use the path defined in ``C Downloading and Staging Input Data ================================== -A set of input files, including static (fix) data and raw initial and lateral boundary conditions (:term:`IC/LBCs`), is required to run the SRW Application. The data required for the "out-of-the-box" SRW App case described in Chapters :numref:`%s ` and :numref:`%s ` is already preinstalled on `Level 1 & 2 `__ systems, along with data required to run the :ref:`WE2E ` test cases. Therefore, users on these systems do not need to stage the fixed files manually because they have been prestaged, and the paths are set in ``regional_workflow/ush/setup.sh``. Users on Level 3 & 4 systems can find the most recent SRW App release data in the `UFS SRW Application Data Bucket `__ by clicking on `Browse Bucket `__. +A set of input files, including static (fix) data and raw initial and lateral boundary conditions (:term:`IC/LBCs`), is required to run the SRW Application. The data required for the "out-of-the-box" SRW App case described in Chapters :numref:`%s ` and :numref:`%s ` is already preinstalled on `Level 1 & 2 `__ systems, along with data required to run the :ref:`WE2E ` test cases. Therefore, users on these systems do not need to stage the fixed files manually because they have been prestaged, and the paths are set in ``ush/setup.sh``. Users on Level 3 & 4 systems can find the most recent SRW App release data in the `UFS SRW Application Data Bucket `__ by clicking on `Browse Bucket `__. .. _StaticFixFiles: @@ -243,7 +247,7 @@ Static files are available in the `"fix" directory `__ of the SRW Data Bucket using the ``wget`` command for each required file. A list of ``wget`` commands with links is provided :ref:`here ` for the release v2.0.0 fix file data. Users will need to create an appropriate directory structure for the files when downloading them individually. The best solution is to download the files into directories that mirror the structure of the `Data Bucket `__. -The environment variables ``FIXgsm``, ``TOPO_DIR``, and ``SFC_CLIMO_INPUT_DIR`` indicate the path to the directories where the static files are located. After downloading the experiment data, users must set the paths to the files in ``config.sh``. Add the following code to the ``config.sh`` file, and alter the variable paths accordingly: +The environment variables ``FIXgsm``, ``TOPO_DIR``, and ``SFC_CLIMO_INPUT_DIR`` indicate the path to the directories where the static files are located. After downloading the experiment data, users must set the paths to the files in ``config.yaml``. Add the following code to the ``config.yaml`` file, and alter the variable paths accordingly: .. code-block:: console @@ -257,7 +261,7 @@ Initial Condition/Lateral Boundary Condition File Formats and Source ----------------------------------------------------------------------- The SRW Application currently supports raw initial and lateral boundary conditions from numerous models (i.e., FV3GFS, NAM, RAP, HRRR). The data can be provided in three formats: :term:`NEMSIO`, :term:`netCDF`, or :term:`GRIB2`. -To download the model input data for the 12-hour "out-of-the-box" experiment configuration in ``config.community.sh`` file, run: +To download the model input data for the 12-hour "out-of-the-box" experiment configuration in ``config.community.yaml`` file, run: .. code-block:: console @@ -269,7 +273,7 @@ To download data for different dates, model types, and formats, users can explor Initial and Lateral Boundary Condition Organization --------------------------------------------------- -The paths to ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` and ``EXTRN_MDL_SOURCE_BASEDIR_LBCS`` must be set in the ``config.sh`` file as follows: +The paths to ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` and ``EXTRN_MDL_SOURCE_BASEDIR_LBCS`` must be set in the ``config.yaml`` file as follows: .. code-block:: console @@ -277,7 +281,7 @@ The paths to ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` and ``EXTRN_MDL_SOURCE_BASEDIR_LBC EXTRN_MDL_SOURCE_BASEDIR_ICS="" EXTRN_MDL_SOURCE_BASEDIR_LBCS="" -These last two variables describe where the :term:`IC ` and :term:`LBC ` file directories are located, respectively. For ease of reusing ``config.sh`` across experiments, it is recommended that users set up the raw :term:`IC/LBC ` file paths to include the model name (e.g., FV3GFS, NAM, RAP, HRRR), data format (e.g., grib2, nemsio), and date (in ``YYYYMMDDHH`` format). For example: ``/path-to/input_model_data/FV3GFS/grib2/2019061518/``. While there is flexibility to modify these settings, this structure will provide the most reusability for multiple dates when using the SRW Application workflow. +These last two variables describe where the :term:`IC ` and :term:`LBC ` file directories are located, respectively. For ease of reusing ``config.yaml`` across experiments, it is recommended that users set up the raw :term:`IC/LBC ` file paths to include the model name (e.g., FV3GFS, NAM, RAP, HRRR), data format (e.g., grib2, nemsio), and date (in ``YYYYMMDDHH`` format). For example: ``/path-to/input_model_data/FV3GFS/grib2/2019061518/``. While there is flexibility to modify these settings, this structure will provide the most reusability for multiple dates when using the SRW Application workflow. When files are pulled from NOAA :term:`HPSS` (rather than downloaded from the data bucket), the naming convention looks something like: @@ -295,7 +299,7 @@ where: * ``{cycle}`` corresponds to the 2-digit hour of the day when the forecast cycle starts, and * ``{fhr}`` corresponds to the 2- or 3-digit nth hour of the forecast (3-digits for FV3GFS data and 2 digits for RAP/HRRR data). -For example, a forecast using FV3GFS GRIB2 data that starts at 18h00 UTC would have a {cycle} value of 18, which is the 000th forecast hour. The LBCS file for 21h00 UTC would be named ``gfs.t18z.pgrb2.0p25.f003``. An example ``config.sh`` setting using HRRR and RAP data appears below: +For example, a forecast using FV3GFS GRIB2 data that starts at 18h00 UTC would have a {cycle} value of 18, which is the 000th forecast hour. The LBCS file for 21h00 UTC would be named ``gfs.t18z.pgrb2.0p25.f003``. An example ``config.yaml`` setting using HRRR and RAP data appears below: .. code-block:: console @@ -313,7 +317,7 @@ from 20190615 at 18 UTC. FV3GFS GRIB2 files are the default model and file forma Running the App for Different Dates ----------------------------------- -If users want to run the SRW Application for dates other than June 15-16, 2019, they will need to modify the ``config.sh`` settings, including the ``DATE_FIRST_CYCL`` and ``DATE_LAST_CYCL`` variables. The forecast length can be modified by changing the ``FCST_LEN_HRS``. In addition, the lateral boundary interval can be specified using the ``LBC_SPEC_INTVL_HRS`` variable. +If users want to run the SRW Application for dates other than June 15-16, 2019, they will need to modify the ``config.yaml`` settings, including the ``DATE_FIRST_CYCL`` and ``DATE_LAST_CYCL`` variables. The forecast length can be modified by changing the ``FCST_LEN_HRS``. In addition, the lateral boundary interval can be specified using the ``LBC_SPEC_INTVL_HRS`` variable. Users will need to ensure that the initial and lateral boundary condition files are available in the specified path for their new date, cycle, and forecast length. @@ -322,7 +326,7 @@ Staging Initial Conditions Manually ----------------------------------- If users want to run the SRW Application with raw model files for dates other than those that are currently available on the preconfigured platforms, they need to stage the data manually. -The data should be placed in ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` and ``EXTRN_MDL_SOURCE_BASEDIR_LBCS`` (which may be the same directory). The path to these variables can be set in the ``config.sh`` file. Raw model files are available from a number of sources. A few examples are provided here for convenience. +The data should be placed in ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` and ``EXTRN_MDL_SOURCE_BASEDIR_LBCS`` (which may be the same directory). The path to these variables can be set in the ``config.yaml`` file. Raw model files are available from a number of sources. A few examples are provided here for convenience. NOMADS: https://nomads.ncep.noaa.gov/pub/data/nccf/com/{model}/prod, where model may be: diff --git a/docs/UsersGuide/source/Introduction.rst b/docs/UsersGuide/source/Introduction.rst index 0ec688125f..9d1bb0cd9b 100644 --- a/docs/UsersGuide/source/Introduction.rst +++ b/docs/UsersGuide/source/Introduction.rst @@ -234,28 +234,23 @@ The ``ufs-srweather-app`` :term:`umbrella repository` structure is determined by .. code-block:: console ufs-srweather-app - ├── (bin) ├── (build) ├── docs │ └── UsersGuide ├── etc + ├── (exec) ├── (include) + ├── jobs ├── (lib) ├── manage_externals ├── modulefiles - ├── regional_workflow - │ ├── (fix) - │ ├── jobs - │ ├── modulefiles - │ ├── scripts - │ ├── tests - │ └── ush - │ ├── machine - │ ├── Python - │ ├── templates - │ └── wrappers + ├── parm ├── (share) - ├── src + ├── scripts + ├── sorc + │ ├── CMakeLists.txt + │ ├── gsi + │ ├── rrfs_utl │ ├── UPP │ │ ├── parm │ │ └── sorc @@ -272,7 +267,15 @@ The ``ufs-srweather-app`` :term:`umbrella repository` structure is determined by │ └── FV3 │ ├── atmos_cubed_sphere │ └── ccpp - └── test + ├── tests/WE2E + ├── ush + │ ├── bash_utils + │ ├── machine + │ ├── Python + │ ├── python_utils + │ ├── test_data + │ └── wrappers + └── versions Regional Workflow Sub-Directories ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -301,7 +304,7 @@ A number of sub-directories are created under the ``regional_workflow`` director Experiment Directory Structure -------------------------------- -When the user generates an experiment using the ``generate_FV3LAM_wflow.sh`` script (:numref:`Step %s `), a user-defined experimental directory (``$EXPTDIR``) is created based on information specified in the ``config.sh`` file. :numref:`Table %s ` shows the contents of the experiment directory before running the experiment workflow. +When the user generates an experiment using the ``generate_FV3LAM_wflow.sh`` script (:numref:`Step %s `), a user-defined experimental directory (``$EXPTDIR``) is created based on information specified in the ``config.yaml`` file. :numref:`Table %s ` shows the contents of the experiment directory before running the experiment workflow. .. _ExptDirStructure: @@ -311,7 +314,7 @@ When the user generates an experiment using the ``generate_FV3LAM_wflow.sh`` scr +---------------------------+--------------------------------------------------------------------------------------------------------------+ | **File Name** | **Description** | +===========================+==============================================================================================================+ - | config.sh | User-specified configuration file, see :numref:`Section %s ` | + | config.yaml | User-specified configuration file, see :numref:`Section %s ` | +---------------------------+--------------------------------------------------------------------------------------------------------------+ | data_table | :term:`Cycle-independent` input file (empty) | +---------------------------+--------------------------------------------------------------------------------------------------------------+ @@ -383,7 +386,7 @@ Once the Rocoto workflow is launched, several files and directories are generate | | simultaneously for each cycle in the experiment. Cycle directories | | | are created to contain cycle-specific files for each cycle that | | | the experiment runs. If ``DATE_FIRST_CYCL`` and ``DATE_LAST_CYCL`` | - | | are different in the ``config.sh`` file, more than one cycle | + | | are different in the ``config.yaml`` file, more than one cycle | | | directory will be created under the experiment directory. | +---------------------------+--------------------------------------------------------------------+ | grid | Directory generated by the ``make_grid`` task to store grid files | @@ -461,7 +464,7 @@ A list of available documentation is shown in :numref:`Table %s `. Contributions to the `ufs-srweather-app `__ repository or the `regional_workflow `__ repository should follow the guidelines contained in the :ref:`SRW App Contributor's Guide `. +utilities, model code, and infrastructure. Users can post issues in the related GitHub repositories to report bugs or to announce upcoming contributions to the code base. For code to be accepted in the authoritative repositories, users must follow the code management rules of each UFS component repository, which are outlined in the respective User's Guides listed in :numref:`Table %s `. Contributions to the `ufs-srweather-app `__ repository should follow the guidelines contained in the :ref:`SRW App Contributor's Guide `. Future Direction ================= diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index e338b096c9..a7de359123 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -760,7 +760,7 @@ The generated workflow will appear in ``$EXPTDIR``, where ``EXPTDIR=${EXPT_BASED .. _WorkflowGeneration: .. figure:: _static/SRW_regional_workflow_gen.png - :alt: Flowchart of the workflow generation process. Scripts are called in the following order: source_util_funcs.sh (which calls bash_utils), then set_FV3nml_sfc_climo_filenames.py, set_FV3nml_ens_stoch_seeds.py, create_diag_table_file.py, and setup.py. setup.py calls several scripts: set_cycle_dates.sh, set_grid_params_GFDLgrid.sh, set_grid_params_ESGgrid.sh, link_fix.sh, set_ozone_param.sh, set_Thompson_mp_fix_files.sh, config_defaults.sh, config.sh, and valid_param_vals.sh. Then, it sets a number of variables, including FIXgsm, TOPO_DIR, and SFC_CLIMO_INPUT_DIR variables. Next, set_predef_grid_params.sh is called, and the FIXam and FIXLAM directories are set, along with the forecast input files. The setup script also calls set_extrn_mdl_params.sh, sets the GRID_GEN_METHOD with HALO, checks various parameters, and generates shell scripts. Then, the workflow generation script sets up YAML-compliant strings and generates the actual Rocoto workflow XML file from the template file (fill_jinja_template.py). The workflow generation script checks the crontab file and, if applicable, copies certain fix files to the experiment directory. Then, it copies templates of various input files to the experiment directory and sets parameters for the input.nml file. Finally, it generates the workflow. Additional information on each step appears in comments within each script. + :alt: Flowchart of the workflow generation process. Scripts are called in the following order: source_util_funcs.sh (which calls bash_utils), then set_FV3nml_sfc_climo_filenames.py, set_FV3nml_ens_stoch_seeds.py, create_diag_table_file.py, and setup.py. setup.py calls several scripts: set_cycle_dates.py, set_grid_params_GFDLgrid.py, set_grid_params_ESGgrid.py, link_fix.py, set_ozone_param.py, set_thompson_mp_fix_files.py, config_defaults.yaml, config.yaml, and valid_param_vals.yaml. Then, it sets a number of variables, including FIXgsm, TOPO_DIR, and SFC_CLIMO_INPUT_DIR variables. Next, set_predef_grid_params.py is called, and the FIXam and FIXLAM directories are set, along with the forecast input files. The setup script also calls set_extrn_mdl_params.py, sets the GRID_GEN_METHOD with HALO, checks various parameters, and generates shell scripts. Then, the workflow generation script sets up YAML-compliant strings and generates the actual Rocoto workflow XML file from the template file (fill_jinja_template.py). The workflow generation script checks the crontab file and, if applicable, copies certain fix files to the experiment directory. Then, it copies templates of various input files to the experiment directory and sets parameters for the input.nml file. Finally, it generates the workflow. Additional information on each step appears in comments within each script. *Experiment generation description* From 247cc52856116c14b7b991d6b4df3be6495bcae7 Mon Sep 17 00:00:00 2001 From: gspetro Date: Tue, 25 Oct 2022 14:17:56 -0400 Subject: [PATCH 46/58] rm reg_wflow refs, switch config.sh to .yaml --- docs/UsersGuide/source/BuildSRW.rst | 4 +-- docs/UsersGuide/source/FAQ.rst | 4 +-- docs/UsersGuide/source/InputOutputFiles.rst | 2 +- docs/UsersGuide/source/Introduction.rst | 23 ++++++++---------- docs/UsersGuide/source/LAMGrids.rst | 18 +++++++------- docs/UsersGuide/source/Quickstart.rst | 2 +- docs/UsersGuide/source/RocotoInfo.rst | 6 +++-- .../source/SRW_overall_workflow_run.png | Bin 82594 -> 0 bytes docs/UsersGuide/source/WE2Etests.rst | 18 +++++++------- 9 files changed, 38 insertions(+), 39 deletions(-) delete mode 100644 docs/UsersGuide/source/SRW_overall_workflow_run.png diff --git a/docs/UsersGuide/source/BuildSRW.rst b/docs/UsersGuide/source/BuildSRW.rst index 6962d66a41..ee17bc2471 100644 --- a/docs/UsersGuide/source/BuildSRW.rst +++ b/docs/UsersGuide/source/BuildSRW.rst @@ -90,7 +90,8 @@ The cloned repository contains the configuration files and sub-directories shown +--------------------------------+-----------------------------------------------------------+ | docs | Contains release notes, documentation, and User's Guide | +--------------------------------+-----------------------------------------------------------+ - | environment.yml | | + | environment.yml | Contains information on the package versions required for | + | | the regional workflow environment. | +--------------------------------+-----------------------------------------------------------+ | etc | Contains Lmod startup scripts | +--------------------------------+-----------------------------------------------------------+ @@ -147,7 +148,6 @@ The cloned repository contains the configuration files and sub-directories shown +--------------------------------+-----------------------------------------------------------+ .. COMMENT: Is environment.yml deprecated? Remove? - Add rename_model.sh details. .. _CheckoutExternals: diff --git a/docs/UsersGuide/source/FAQ.rst b/docs/UsersGuide/source/FAQ.rst index 7d2a212dd8..69e171d69c 100644 --- a/docs/UsersGuide/source/FAQ.rst +++ b/docs/UsersGuide/source/FAQ.rst @@ -22,7 +22,7 @@ grid, orography, and surface climatology files that these tasks generate are alr available (e.g., from a previous experiment that used the same grid as the current experiment), then these tasks can be skipped, and the workflow can use those pre-generated files. This can be done by adding the following lines to the ``config.sh`` script before running -the ``generate_FV3LAM_wflow.sh`` script: +the ``generate_FV3LAM_wflow.py`` script: .. code-block:: console @@ -57,7 +57,7 @@ How do I change the Physics Suite Definition File (SDF)? ========================================================= The SDF is set in the ``config.sh`` file using the variable ``CCPP_PHYS_SUITE``. When users run the -``generate_FV3LAM_wflow.sh`` script, the SDF file is copied from its location in the forecast +``generate_FV3LAM_wflow.py`` script, the SDF file is copied from its location in the forecast model directory to the experiment directory ``EXPTDIR``. For more information on the :term:`CCPP` physics suite parameters, see :numref:`Section %s ` .. _RestartTask: diff --git a/docs/UsersGuide/source/InputOutputFiles.rst b/docs/UsersGuide/source/InputOutputFiles.rst index d285a36823..e7e428331d 100644 --- a/docs/UsersGuide/source/InputOutputFiles.rst +++ b/docs/UsersGuide/source/InputOutputFiles.rst @@ -82,7 +82,7 @@ and are shown in :numref:`Table %s `. +-----------------------------+--------------------------------------------------------------+ | FV3LAM_wflow.xml | Rocoto XML file to run the workflow. It is filled in using | | | the ``fill_template.py`` python script that is called in | - | | ``generate_FV3LAM_wflow.sh``. | + | | ``generate_FV3LAM_wflow.py``. | +-----------------------------+--------------------------------------------------------------+ | input.nml.FV3 | Namelist file for the Weather Model. | +-----------------------------+--------------------------------------------------------------+ diff --git a/docs/UsersGuide/source/Introduction.rst b/docs/UsersGuide/source/Introduction.rst index 9d1bb0cd9b..bb15a1a436 100644 --- a/docs/UsersGuide/source/Introduction.rst +++ b/docs/UsersGuide/source/Introduction.rst @@ -208,9 +208,6 @@ The :term:`umbrella repository` for the SRW Application is named ``ufs-srweather | Repository for | https://github.com/ufs-community/ufs-weather-model | | the UFS Weather Model | | +---------------------------------+---------------------------------------------------------+ - | Repository for the regional | https://github.com/ufs-community/regional_workflow | - | workflow | | - +---------------------------------+---------------------------------------------------------+ | Repository for UFS utilities, | https://github.com/ufs-community/UFS_UTILS | | including pre-processing, | | | chgres_cube, and more | | @@ -249,13 +246,13 @@ The ``ufs-srweather-app`` :term:`umbrella repository` structure is determined by ├── scripts ├── sorc │ ├── CMakeLists.txt - │ ├── gsi - │ ├── rrfs_utl - │ ├── UPP + │ ├── (gsi) + │ ├── (rrfs_utl) + │ ├── (UPP) │ │ ├── parm │ │ └── sorc │ │ └── ncep_post.fd - │ ├── UFS_UTILS + │ ├── (UFS_UTILS) │ │ ├── sorc │ │ │ ├── chgres_cube.fd │ │ │ ├── fre-nctools.fd @@ -263,7 +260,7 @@ The ``ufs-srweather-app`` :term:`umbrella repository` structure is determined by │ │ │ ├── orog_mask_tools.fd │ │ │ └── sfc_climo_gen.fd │ │ └── ush - │ └── ufs-weather-model + │ └── (ufs-weather-model) │ └── FV3 │ ├── atmos_cubed_sphere │ └── ccpp @@ -277,9 +274,9 @@ The ``ufs-srweather-app`` :term:`umbrella repository` structure is determined by │ └── wrappers └── versions -Regional Workflow Sub-Directories +SRW App Sub-Directories ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -A number of sub-directories are created under the ``regional_workflow`` directory when the regional workflow is cloned (see directory diagram :ref:`above `). :numref:`Table %s ` describes the contents of these sub-directories. +:numref:`Table %s ` describes the contents of the most important sub-directories. :numref:`Table %s ` provides and in-depth explanation of the ``ufs-srweather-app`` directories. .. _Subdirectories: @@ -304,7 +301,7 @@ A number of sub-directories are created under the ``regional_workflow`` director Experiment Directory Structure -------------------------------- -When the user generates an experiment using the ``generate_FV3LAM_wflow.sh`` script (:numref:`Step %s `), a user-defined experimental directory (``$EXPTDIR``) is created based on information specified in the ``config.yaml`` file. :numref:`Table %s ` shows the contents of the experiment directory before running the experiment workflow. +When the user generates an experiment using the ``generate_FV3LAM_wflow.py`` script (:numref:`Step %s `), a user-defined experimental directory (``$EXPTDIR``) is created based on information specified in the ``config.yaml`` file. :numref:`Table %s ` shows the contents of the experiment directory before running the experiment workflow. .. _ExptDirStructure: @@ -327,13 +324,13 @@ When the user generates an experiment using the ``generate_FV3LAM_wflow.sh`` scr | | `__ | +---------------------------+--------------------------------------------------------------------------------------------------------------+ | launch_FV3LAM_wflow.sh | Symlink to the shell script of | - | | ``ufs-srweather-app/regional_workflow/ush/launch_FV3LAM_wflow.sh``, | + | | ``ufs-srweather-app/ush/launch_FV3LAM_wflow.sh``, | | | which can be used to (re)launch the Rocoto workflow. | | | Each time this script is called, it appends to a log | | | file named ``log.launch_FV3LAM_wflow``. | +---------------------------+--------------------------------------------------------------------------------------------------------------+ | log.generate_FV3LAM_wflow | Log of the output from the experiment generation script | - | | (``generate_FV3LAM_wflow.sh``) | + | | (``generate_FV3LAM_wflow.py``) | +---------------------------+--------------------------------------------------------------------------------------------------------------+ | nems.configure | See `NEMS configuration file | | | `__ | diff --git a/docs/UsersGuide/source/LAMGrids.rst b/docs/UsersGuide/source/LAMGrids.rst index 92d561ded7..0706556234 100644 --- a/docs/UsersGuide/source/LAMGrids.rst +++ b/docs/UsersGuide/source/LAMGrids.rst @@ -10,7 +10,7 @@ grids supported in the v2.0.0 release, but other predefined grids are available Predefined Grids ================= -The SRW App v2.0.0 release includes four predefined limited area model (:term:`LAM`) grids. To select a supported predefined grid, the ``PREDEF_GRID_NAME`` variable within the ``config.sh`` script must be set to one of the following four options: +The SRW App v2.0.0 release includes four predefined limited area model (:term:`LAM`) grids. To select a supported predefined grid, the ``PREDEF_GRID_NAME`` variable within the ``config.yaml`` script must be set to one of the following four options: * ``RRFS_CONUS_3km`` * ``RRFS_CONUS_13km`` @@ -124,24 +124,24 @@ The steps to add such a grid to the workflow are as follows: #. Choose the name of the grid. For the purposes of this documentation, the grid will be called "NEW_GRID". -#. Add NEW_GRID to the array ``valid_vals_PREDEF_GRID_NAME`` in the ``ufs-srweather-app/regional_workflow/ush/valid_param_vals.sh`` file. +#. Add NEW_GRID to the array ``valid_vals_PREDEF_GRID_NAME`` in the ``ufs-srweather-app/ush/valid_param_vals.yaml`` file. -#. In ``ufs-srweather-app/regional_workflow/ush/set_predef_grid_params.sh``, add a stanza to +#. In ``ufs-srweather-app/ush/set_predef_grid_params.py``, add a stanza to the case statement ``case ${PREDEF_GRID_NAME} in`` for NEW_GRID. An example of such a stanza is given :ref:`below ` along with comments describing the variables that need to be set. -To run a forecast experiment on NEW_GRID, start with a workflow configuration file for a successful experiment (e.g., ``config.sh``, located in the ``ufs-srweather-app/regional_workflow/ush`` subdirectory), and change the line for ``PREDEF_GRID_NAME`` to the following: +To run a forecast experiment on NEW_GRID, start with a workflow configuration file for a successful experiment (e.g., ``config.yaml``, located in the ``ufs-srweather-app/ush`` subdirectory), and change the line for ``PREDEF_GRID_NAME`` to the following: .. code-block:: console PREDEF_GRID_NAME="NEW_GRID" -Then, generate a new experiment/workflow using the ``generate_FV3LAM_wflow.sh`` script in the :ref:`usual way `. +Then, generate a new experiment/workflow using the ``generate_FV3LAM_wflow.py`` script in the :ref:`usual way `. Code Example --------------- -The following is an example of a code stanza for "NEW_GRID" to be added to ``set_predef_grid_params.sh``: +The following is an example of a code stanza for "NEW_GRID" to be added to ``set_predef_grid_params.py``: .. _NewGridExample: @@ -200,7 +200,7 @@ The following is an example of a code stanza for "NEW_GRID" to be added to ``set # needs to be in order to avoid numerical instabilities during the # forecast. The values specified below are used only if DT_ATMOS is # not explicitly set in the user-specified experiment configuration - # file config.sh. Note that this parameter may be suite dependent. + # file config.yaml. Note that this parameter may be suite dependent. if [ "${CCPP_PHYS_SUITE}" = "FV3_GFS_v16" ]; then DT_ATMOS=${DT_ATMOS:-"300"} @@ -212,7 +212,7 @@ The following is an example of a code stanza for "NEW_GRID" to be added to ``set # Default MPI task layout (decomposition) along the x and y directions and # blocksize. The values specified below are used only if they are not explicitly - # set in the user-specified experiment configuration file config.sh. + # set in the user-specified experiment configuration file config.yaml. LAYOUT_X=${LAYOUT_X:-"5"} LAYOUT_Y=${LAYOUT_Y:-"2"} @@ -250,7 +250,7 @@ The following is an example of a code stanza for "NEW_GRID" to be added to ``set # The coordinate system for the write-component grid # See the array valid_vals_WRTCMP_output_grid (defined in - # the script valid_param_vals.sh) for the values this can take on. + # the script valid_param_vals.yaml) for the values this can take on. # The following example is specifically for the Lambert conformal # coordinate system. diff --git a/docs/UsersGuide/source/Quickstart.rst b/docs/UsersGuide/source/Quickstart.rst index 6c983044a7..1046345d22 100644 --- a/docs/UsersGuide/source/Quickstart.rst +++ b/docs/UsersGuide/source/Quickstart.rst @@ -72,7 +72,7 @@ For a detailed explanation of how to build and run the SRW App on any supported .. code-block:: console - source + source module use module load wflow_ diff --git a/docs/UsersGuide/source/RocotoInfo.rst b/docs/UsersGuide/source/RocotoInfo.rst index da5af70fa2..f7e048efd2 100644 --- a/docs/UsersGuide/source/RocotoInfo.rst +++ b/docs/UsersGuide/source/RocotoInfo.rst @@ -10,12 +10,14 @@ system as the task dependencies allow and runs one instance of the workflow for :term:`cycles `. More information about Rocoto can be found on the `Rocoto Wiki `__. The SRW App workflow is defined in a Jinja-enabled Rocoto XML template called ``FV3LAM_wflow.xml``, -which resides in the ``regional_workflow/ush/templates`` directory. When the ``generate_FV3LAM_wflow.sh`` +which resides in the ``ush/templates`` directory. When the ``generate_FV3LAM_wflow.py`` script is run, the ``fill_jinja_template.py`` script is called, and the parameters in the template file are filled in. The completed file contains the workflow task names, parameters needed by the job scheduler, and task interdependencies. The generated XML file is then copied to the experiment directory: ``$EXPTDIR/FV3LAM_wflow.xml``. +.. COMMENT: Where is the templates dir now? + There are a number of Rocoto commands available to run and monitor the workflow; users can find more information in the complete `Rocoto documentation `__. Descriptions and examples of commonly used commands are discussed below. @@ -160,7 +162,7 @@ Running ``rocotocheck`` will result in output similar to the following: Task: run_fcst account: gsd-fv3 - command: /scratch2/BMC/det/$USER/ufs-srweather-app/regional_workflow/ush/load_modules_run_task.sh "run_fcst" "/scratch2/BMC/det/$USER/ufs-srweather-app/regional_workflow/jobs/JREGIONAL_RUN_FCST" + command: /scratch2/BMC/det/$USER/ufs-srweather-app/ush/load_modules_run_task.sh "run_fcst" "/scratch2/BMC/det/$USER/ufs-srweather-app/jobs/JREGIONAL_RUN_FCST" cores: 24 final: false jobname: run_FV3 diff --git a/docs/UsersGuide/source/SRW_overall_workflow_run.png b/docs/UsersGuide/source/SRW_overall_workflow_run.png deleted file mode 100644 index f9f1aa7b87ef906c41619611ccb3320241dc4c6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 82594 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 z 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 for all configurable options and :numref:`Section %s ` for information on configuring ``config.sh``.) For each test, the ``run_WE2E_tests.sh`` script reads in the test configuration file and generates from it a complete ``config.sh`` file. It then calls ``generate_FV3LAM_wflow.sh``, which in turn reads in ``config.sh`` and generates a new experiment for the test. The name of each experiment directory is set to that of the corresponding test, and a copy of ``config.sh`` for each test is placed in its experiment directory. +The script to run the WE2E tests is named ``run_WE2E_tests.sh`` and is located in the directory ``ufs-srweather-app/regional_workflow/tests/WE2E``. Each WE2E test has an associated configuration file named ``config.${test_name}.yaml``, where ``${test_name}`` is the name of the corresponding test. These configuration files are subsets of the full range of ``config.yaml`` experiment configuration options. (See :numref:`Section %s ` for all configurable options and :numref:`Section %s ` for information on configuring ``config.yaml``.) For each test, the ``run_WE2E_tests.sh`` script reads in the test configuration file and generates from it a complete ``config.yaml`` file. It then calls ``generate_FV3LAM_wflow.py``, which in turn reads in ``config.yaml`` and generates a new experiment for the test. The name of each experiment directory is set to that of the corresponding test, and a copy of ``config.yaml`` for each test is placed in its experiment directory. -Since ``run_WE2E_tests.sh`` calls ``generate_FV3LAM_wflow.sh`` for each test, the +Since ``run_WE2E_tests.sh`` calls ``generate_FV3LAM_wflow.py`` for each test, the Python modules required for experiment generation must be loaded before ``run_WE2E_tests.sh`` can be called. See :numref:`Section %s ` for information on loading the Python environment on supported platforms. Note also that ``run_WE2E_tests.sh`` assumes that all of @@ -252,7 +252,7 @@ Checking Test Status If :term:`cron` jobs are used to periodically relaunch the tests, the status of each test can be checked by viewing the end of the log file (``log.launch_FV3LAM_wflow``). Otherwise (or alternatively), the ``rocotorun``/``rocotostat`` combination of commands can be used. (See :numref:`Section %s ` for details.) The SRW App also provides the script ``get_expts_status.sh`` in the directory -``ufs-srweather-app/regional_workflow/tests/WE2E``, which can be used to generate +``ufs-srweather-app/tests/WE2E``, which can be used to generate a status summary for all tests in a given base directory. This script updates the workflow status of each test by internally calling ``launch_FV3LAM_wflow.sh``. Then, it prints out the status of the various tests in the command prompt. It also creates a status report file named ``expts_status_${create_date}.txt`` (where ``create_date`` @@ -329,11 +329,11 @@ Adding a New Test --------------------- To add a new test named, e.g., ``new_test01``, to one of the existing test categories, such as ``wflow_features``: -#. Choose an existing test configuration file in any one of the category directories that matches most closely the new test to be added. Copy that file to ``config.new_test01.sh`` and, if necessary, move it to the ``wflow_features`` category directory. +#. Choose an existing test configuration file in any one of the category directories that matches most closely the new test to be added. Copy that file to ``config.new_test01.yaml`` and, if necessary, move it to the ``wflow_features`` category directory. -#. Edit the header comments in ``config.new_test01.sh`` so that they properly describe the new test. +#. Edit the header comments in ``config.new_test01.yaml`` so that they properly describe the new test. -#. Edit the contents of ``config.new_test01.sh`` by modifying existing experiment variable values and/or adding new variables such that the test runs with the intended configuration. +#. Edit the contents of ``config.new_test01.yaml`` by modifying existing experiment variable values and/or adding new variables such that the test runs with the intended configuration. .. _AddNewCategory: @@ -371,14 +371,14 @@ To prevent proliferation of WE2E tests, users might want to use the same test fo in the ``grids_extrn_mdls_suites_community`` category. This checks for the successful completion of the Rocoto workflow running a combination of the ``RRFS_CONUScompact_25km`` grid, the ``FV3GFS`` model data for :term:`ICs` and :term:`LBCs`, and the ``FV3_GFS_v16`` physics suite. If this test also happens to use the inline post capability of the UFS :term:`Weather Model` (it currently doesn't; this is only a hypothetical example), then this test can also be used to ensure that the inline post feature of the App/Weather Model (which is activated in the App by setting ``WRITE_DOPOST`` to ``"TRUE"``) is working properly. Since this test will serve two purposes, it should have two names --- one per purpose. -To set the second (alternate) name to ``activate_inline_post``, the user needs to create a symlink named ``config.activate_inline_post.sh`` in the ``wflow_features`` category directory that points to the original configuration file (``config.grid_RRFS_CONUScompact_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v16.sh``) in the ``grids_extrn_mdls_suites_community`` category directory: +To set the second (alternate) name to ``activate_inline_post``, the user needs to create a symlink named ``config.activate_inline_post.yaml`` in the ``wflow_features`` category directory that points to the original configuration file (``config.grid_RRFS_CONUScompact_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v16.yaml``) in the ``grids_extrn_mdls_suites_community`` category directory: .. code-block:: console - ln -fs --relative + ln -fs --relative In this situation, the primary name for the test is ``grid_RRFS_CONUScompact_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v16`` -(because ``config.grid_RRFS_CONUScompact_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v16.sh`` is an actual file, not a symlink), and ``activate_inline_post`` is an alternate name. This approach of allowing multiple names for the same test makes it easier to identify the multiple purposes that a test may serve. +(because ``config.grid_RRFS_CONUScompact_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v16.yaml`` is an actual file, not a symlink), and ``activate_inline_post`` is an alternate name. This approach of allowing multiple names for the same test makes it easier to identify the multiple purposes that a test may serve. .. note:: From 97d7afbebafeb028ffc21135ad20faf7c988a55b Mon Sep 17 00:00:00 2001 From: gspetro Date: Tue, 25 Oct 2022 14:27:31 -0400 Subject: [PATCH 47/58] change templates dir to parm --- docs/UsersGuide/source/InputOutputFiles.rst | 8 +++----- docs/UsersGuide/source/RocotoInfo.rst | 4 +--- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/docs/UsersGuide/source/InputOutputFiles.rst b/docs/UsersGuide/source/InputOutputFiles.rst index e7e428331d..640a2a598a 100644 --- a/docs/UsersGuide/source/InputOutputFiles.rst +++ b/docs/UsersGuide/source/InputOutputFiles.rst @@ -48,11 +48,9 @@ to create the required namelists and parameter files needed by the Application w List of Template Files ^^^^^^^^^^^^^^^^^^^^^^^^ -The template files for the SRW Application are located in ``ush/templates`` +The template files for the SRW Application are located in ``parm`` and are shown in :numref:`Table %s `. -.. COMMENT: Where have templates been moved to? - .. _TemplateFiles: .. table:: Template Files for the Regional Workflow @@ -103,9 +101,9 @@ Additional information related to ``diag_table_[CCPP]``, ``field_table_[CCPP]``, Migratory Route of the Input Files in the Workflow ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -:numref:`Figure %s ` shows how the input files in the template directory (``ufs-srweather-app/ush/templates/``) flow to the experiment directory. First, the CCPP physics suite is specified in the configuration file. The template input files corresponding to the selected physics suite, such as ``field_table_[CCPP]`` and ``nems.configure_[CCPP]``, are copied to the experiment directory (``$EXPTDIR``). Additionally, the namelist file of the Weather Model (``input.nml``) is created from the ``input.nml.FV3`` and ``FV3.input.yml`` files by running the workflow generation script. While running the ``RUN_FCST`` task in the regional workflow as shown in :numref:`Figure %s `, the ``field_table``, ``nems.configure``, and ``input.nml`` files, located in ``$EXPTDIR``, are linked to the cycle directory (``$CYCLE_DIR``). Additionally, ``diag_table`` and ``model_configure`` are copied from the ``templates`` directory. Finally, these files are updated with the variables specified in ``var_defn.sh``. +:numref:`Figure %s ` shows how the input files in the template directory (``ufs-srweather-app/parm``) flow to the experiment directory. First, the CCPP physics suite is specified in the configuration file. The template input files corresponding to the selected physics suite, such as ``field_table_[CCPP]`` and ``nems.configure_[CCPP]``, are copied to the experiment directory (``$EXPTDIR``). Additionally, the namelist file of the Weather Model (``input.nml``) is created from the ``input.nml.FV3`` and ``FV3.input.yml`` files by running the workflow generation script. While running the ``RUN_FCST`` task in the regional workflow as shown in :numref:`Figure %s `, the ``field_table``, ``nems.configure``, and ``input.nml`` files, located in ``$EXPTDIR``, are linked to the cycle directory (``$CYCLE_DIR``). Additionally, ``diag_table`` and ``model_configure`` are copied from the ``parm`` directory. Finally, these files are updated with the variables specified in ``var_defn.sh``. -.. COMMENT: Where have templates been moved to? +.. COMMENT: Update image! .. _MigratoryRoute: diff --git a/docs/UsersGuide/source/RocotoInfo.rst b/docs/UsersGuide/source/RocotoInfo.rst index f7e048efd2..a56ea7ad28 100644 --- a/docs/UsersGuide/source/RocotoInfo.rst +++ b/docs/UsersGuide/source/RocotoInfo.rst @@ -10,14 +10,12 @@ system as the task dependencies allow and runs one instance of the workflow for :term:`cycles `. More information about Rocoto can be found on the `Rocoto Wiki `__. The SRW App workflow is defined in a Jinja-enabled Rocoto XML template called ``FV3LAM_wflow.xml``, -which resides in the ``ush/templates`` directory. When the ``generate_FV3LAM_wflow.py`` +which resides in the ``parm`` directory. When the ``generate_FV3LAM_wflow.py`` script is run, the ``fill_jinja_template.py`` script is called, and the parameters in the template file are filled in. The completed file contains the workflow task names, parameters needed by the job scheduler, and task interdependencies. The generated XML file is then copied to the experiment directory: ``$EXPTDIR/FV3LAM_wflow.xml``. -.. COMMENT: Where is the templates dir now? - There are a number of Rocoto commands available to run and monitor the workflow; users can find more information in the complete `Rocoto documentation `__. Descriptions and examples of commonly used commands are discussed below. From ed72fd92b7b97bfa6e7bd2acef3e931c26a7f6ec Mon Sep 17 00:00:00 2001 From: gspetro Date: Tue, 25 Oct 2022 14:44:31 -0400 Subject: [PATCH 48/58] update GSI glossary entry --- docs/UsersGuide/source/Glossary.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UsersGuide/source/Glossary.rst b/docs/UsersGuide/source/Glossary.rst index 873102b8d8..f7de1fe3f9 100644 --- a/docs/UsersGuide/source/Glossary.rst +++ b/docs/UsersGuide/source/Glossary.rst @@ -100,7 +100,7 @@ Glossary The second version of the World Meterological Organization's (WMO) standard for distributing gridded data. GSI - `Gridpoint Statistical Interpolation `__ (GSI) is a variational data assimilation system, designed to be flexible, state-of-art, and run efficiently on various parallel computing platforms. It supports :term:`RRFS` features. GSI code is publicly available `on GitHub `__, but some features are only accessible to NOAA affiliates. + `Gridpoint Statistical Interpolation `__ (GSI) is a variational data assimilation system, designed to be flexible, state-of-art, and run efficiently on various parallel computing platforms. It supports :term:`RRFS` features. GSI code is publicly available `on GitHub `__, and fix file data is publicly available `here `__. GSL NOAA `Global Systems Laboratory `__ is one of ten NOAA Research laboratories and is located in Boulder, Colorado. Its research improves environmental prediction models, develops state-of-the-science decision support tools and visualization systems, and uses high-performance computing technology to support a Weather-Ready Nation. From afdec4d751b5e6baa12212e77e9e7f35540cb0c9 Mon Sep 17 00:00:00 2001 From: gspetro Date: Thu, 27 Oct 2022 16:26:55 -0400 Subject: [PATCH 49/58] fixes based on PR review --- docs/UsersGuide/source/BuildSRW.rst | 28 +++++++++++++++------------- docs/UsersGuide/source/RunSRW.rst | 10 +++++----- 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/docs/UsersGuide/source/BuildSRW.rst b/docs/UsersGuide/source/BuildSRW.rst index ee17bc2471..9ae919c924 100644 --- a/docs/UsersGuide/source/BuildSRW.rst +++ b/docs/UsersGuide/source/BuildSRW.rst @@ -192,7 +192,7 @@ On Level 1 systems for which a modulefile is provided under the ``modulefiles`` where ```` is replaced with the name of the platform the user is working on. Valid values are: ``cheyenne`` | ``gaea`` | ``hera`` | ``jet`` | ``linux`` | ``macos`` | ``noaacloud`` | ``odin`` | ``orion`` | ``singularity`` | ``wcoss2`` .. note:: - Although build modulefiles exist for generic Linux and MacOS machines, users will need to alter these according to the instructions in Sections :numref:`%s ` & :numref:`%s `. It is recommended that users on these systems build the SRW App with the :ref:`CMake Approach ` instead. + Although build modulefiles exist for generic Linux and MacOS machines, users will need to alter these according to the instructions in Sections :numref:`%s ` & :numref:`%s `. Users on these systems may have more success building the SRW App with the :ref:`CMake Approach ` instead. If compiler auto-detection fails for some reason, specify it using the ``--compiler`` argument. For example: @@ -373,7 +373,7 @@ Set Up the Build Environment ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. attention:: - * If users successfully built the executables in :numref:`Table %s `, they should skip to step :numref:`Step %s `. + * If users successfully built the executables in :numref:`Table %s `, they should skip to step :numref:`Chapter %s `. * Users who want to build the SRW App on a generic MacOS should skip to :numref:`Section %s ` and follow the approach there. If the ``devbuild.sh`` approach failed, users need to set up their environment to run a workflow on their specific platform. First, users should make sure ``Lmod`` is the app used for loading modulefiles. This is the case on most Level 1 systems; however, on systems such as Gaea/Odin, the default modulefile loader is from Cray and must be switched to Lmod. For example, on Gaea, users can run one of the following two commands depending on whether they have a bash or csh shell, respectively: @@ -436,7 +436,7 @@ Additional Details for Building on MacOS ------------------------------------------ .. note:: - Users who are **not** building the SRW App on a MacOS machine may skip to the :ref:`next section `. + Users who are **not** building the SRW App on a MacOS machine may skip to the :numref:`Section %s ` to finish building the SRW App or continue to :numref:`Chapter %s ` to configure and run an experiment. The SRW App can be built on MacOS machines, presuming HPC-Stack has already been installed successfully. The following two options have been tested: @@ -454,19 +454,21 @@ The ``build_macos_gnu`` modulefile initializes the module environment, lists the # This path should point to your SRW Application directory setenv SRW "/Users/username/ufs-srweather-app" -An excerpt of the ``build_macos_gnu`` contents appears below for Option 1. To use Option 2, the user will need to comment out the lines specific to Option 1 and uncomment the lines specific to Option 2 in the ``build_macos_gnu`` modulefile. Additionally, users need to verify that all file paths reflect their system's configuration and that the correct version numbers for software libraries appear in the modulefile. +An excerpt of the ``build_macos_gnu`` contents appears below for Option 1. To use Option 2, the user will need to comment out the lines specific to Option 1 (using a double hyphen) and uncomment the lines specific to Option 2 in the ``build_macos_gnu`` modulefile. Additionally, users need to verify that all file paths reflect their system's configuration and that the correct version numbers for software libraries appear in the modulefile. .. code-block:: console - # Option 1 compiler paths: - setenv CC "/opt/homebrew/bin/gcc" - setenv FC "/opt/homebrew/bin/gfortran" - setenv CXX "/opt/homebrew/bin/g++" - - # Option 2 compiler paths: - #setenv CC "/usr/local/bin/gcc" - #setenv FC "/usr/local/bin/gfortran" - #setenv CXX "/usr/local/bin/g++" + -- Option 1 compiler paths: + setenv("CC", "/opt/homebrew/bin/gcc") + setenv("FC", "/opt/homebrew/bin/gfortran") + setenv("CXX", "/opt/homebrew/bin/g++") + + -- Option 2 compiler paths: + --[[ + setenv("CC", "/usr/local/bin/gcc") + setenv("FC", "/usr/local/bin/gfortran") + setenv("CXX", "/usr/local/bin/g++") + --]] Then, users must source the Lmod setup file, just as they would on other systems, and load the modulefiles needed for building and running the SRW App: diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index a7de359123..131ba18c15 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -632,8 +632,8 @@ For :ref:`Option 1 `, add the following information to ``config.yaml .. code-block:: console task_run_fcst: - LAYOUT_X: ${LAYOUT_X:-3} - LAYOUT_Y: ${LAYOUT_Y:-2} + LAYOUT_X: 3 + LAYOUT_Y: 2 WRTCMP_write_groups: 1 WRTCMP_write_tasks_per_group: 2 @@ -642,8 +642,8 @@ For :ref:`Option 2 `, add the following information to ``config.yaml .. code-block:: console task_run_fcst: - LAYOUT_X: ${LAYOUT_X:-3} - LAYOUT_Y: ${LAYOUT_Y:-1} + LAYOUT_X: 3 + LAYOUT_Y: 1 WRTCMP_write_groups: 1 WRTCMP_write_tasks_per_group: 1 @@ -751,7 +751,7 @@ Run the following command from the ``ufs-srweather-app/ush`` directory to genera The last line of output from this script, starting with ``*/1 * * * *`` or ``*/3 * * * *``, can be saved and :ref:`used later ` to automatically run portions of the workflow if users have the Rocoto workflow manager installed on their system. -This workflow generation script creates an experiment directory and populates it with all the data needed to run through the workflow. The flowchart in :numref:`Figure %s ` describes the experiment generation process. First, ``generate_FV3LAM_wflow.py`` runs the ``setup.py`` script to set the configuration parameters. Second, it copies the time-independent (fix) files and other necessary data input files from their location to the experiment directory (``$EXPTDIR``). Third, it copies the Weather Model executable (``ufs_model``) from the ``exec`` directory to ``$EXPTDIR`` and creates the input namelist file ``input.nml`` based on the ``input.nml.FV3`` file in the ``parm`` directory. Lastly, it creates the workflow XML file ``FV3LAM_wflow.xml`` that is executed when running the experiment with the Rocoto workflow manager. +This workflow generation script creates an experiment directory and populates it with all the data needed to run through the workflow. The flowchart in :numref:`Figure %s ` describes the experiment generation process. First, ``generate_FV3LAM_wflow.py`` runs the ``setup.py`` script to set the configuration parameters. Second, it symlinks the time-independent (fix) files and other necessary data input files from their location to the experiment directory (``$EXPTDIR``). Third, it creates the input namelist file ``input.nml`` based on the ``input.nml.FV3`` file in the ``parm`` directory. Lastly, it creates the workflow XML file ``FV3LAM_wflow.xml`` that is executed when running the experiment with the Rocoto workflow manager. The ``setup.py`` script reads three other configuration scripts in order: (1) ``config_defaults.yaml`` (:numref:`Section %s `), (2) ``config.yaml`` (:numref:`Section %s `), and (3) ``set_predef_grid_params.py``. If a parameter is specified differently in these scripts, the file containing the last defined value will be used. From 0a3a7a534205762ffec0139040c104f1b8171bc4 Mon Sep 17 00:00:00 2001 From: gspetro Date: Thu, 27 Oct 2022 17:02:42 -0400 Subject: [PATCH 50/58] remove fixed file mapping params --- docs/UsersGuide/source/ConfigWorkflow.rst | 123 ---------------------- 1 file changed, 123 deletions(-) diff --git a/docs/UsersGuide/source/ConfigWorkflow.rst b/docs/UsersGuide/source/ConfigWorkflow.rst index 1f927895f2..bc1febdbcd 100644 --- a/docs/UsersGuide/source/ConfigWorkflow.rst +++ b/docs/UsersGuide/source/ConfigWorkflow.rst @@ -54,9 +54,6 @@ If non-default parameters are selected for the variables in this section, they s ``NCORES_PER_NODE``: (Default: "") The number of cores available per node on the compute platform. Set for supported platforms in ``setup.py``, but it is now also configurable for all platforms. -``LMOD_PATH``: (Default: "") - Path to the LMOD shell file on the user's Linux system. It is set automatically for supported machines. - ``BUILD_MOD_FN``: (Default: "") Name of an alternative build module file to use if running on an unsupported platform. It is set automatically for supported machines. @@ -1163,126 +1160,6 @@ These parameters are associated with the fixed (i.e., static) files. On `Level 1 ``SYMLINK_FIX_FILES``: (Default: true) Flag that indicates whether to symlink or copy fix files to the experiment directory. -``FNGLAC, ..., FNMSKH``: (Default: see below) - - | ``FNGLAC:`` &FNGLAC "global_glacier.2x2.grb" - | ``FNMXIC:`` &FNMXIC "global_maxice.2x2.grb" - | ``FNTSFC:`` &FNTSFC "RTGSST.1982.2012.monthly.clim.grb" - | ``FNSNOC:`` &FNSNOC "global_snoclim.1.875.grb" - | ``FNZORC:`` &FNZORC "igbp" - | ``FNAISC:`` &FNAISC "CFSR.SEAICE.1982.2012.monthly.clim.grb" - | ``FNSMCC:`` &FNSMCC "global_soilmgldas.t126.384.190.grb" - | ``FNMSKH:`` &FNMSKH "seaice_newland.grb" - - Names and default locations of (some of the) global data files that are assumed to exist in a system directory. (This directory is machine-dependent; the experiment generation scripts will set it and store it in the variable ``FIXgsm``.) These file names also appear directly in the forecast model's input :term:`namelist` file. - -``FIXgsm_FILES_TO_COPY_TO_FIXam``: (Default: see below) - - .. code-block:: console - - [*FNGLAC, - *FNMXIC, - *FNTSFC, - *FNSNOC, - *FNAISC, - *FNSMCC, - *FNMSKH, - "global_climaeropac_global.txt", - "fix_co2_proj/global_co2historicaldata_2010.txt", - "fix_co2_proj/global_co2historicaldata_2011.txt", - "fix_co2_proj/global_co2historicaldata_2012.txt", - "fix_co2_proj/global_co2historicaldata_2013.txt", - "fix_co2_proj/global_co2historicaldata_2014.txt", - "fix_co2_proj/global_co2historicaldata_2015.txt", - "fix_co2_proj/global_co2historicaldata_2016.txt", - "fix_co2_proj/global_co2historicaldata_2017.txt", - "fix_co2_proj/global_co2historicaldata_2018.txt", - "fix_co2_proj/global_co2historicaldata_2019.txt", - "fix_co2_proj/global_co2historicaldata_2020.txt", - "fix_co2_proj/global_co2historicaldata_2021.txt", - "global_co2historicaldata_glob.txt", - "co2monthlycyc.txt", - "global_h2o_pltc.f77", - "global_hyblev.l65.txt", - "global_zorclim.1x1.grb", - "global_sfc_emissivity_idx.txt", - "global_tg3clim.2.6x1.5.grb", - "global_solarconstant_noaa_an.txt", - "global_albedo4.1x1.grb", - "geo_em.d01.lat-lon.2.5m.HGT_M.nc", - "HGT.Beljaars_filtered.lat-lon.30s_res.nc", - "replace_with_FIXgsm_ozone_prodloss_filename" - ] - - If not running in NCO mode, this array contains the names of the files to copy from the ``FIXgsm`` system directory to the ``FIXam`` directory under the experiment directory. - - .. note:: - The last element in the list above contains a dummy value. This value will be reset by the workflow generation scripts to the name of the ozone production/loss file that needs to be copied from ``FIXgsm``. The name of this file depends on the ozone parameterization scheme, and that, in turn, depends on the :term:`CCPP` physics suite specified for the experiment. - -``FV3_NML_VARNAME_TO_FIXam_FILES_MAPPING``: (Default: see below) - - .. code-block:: console - - [!join_str ["FNGLAC | ",*FNGLAC], - !join_str ["FNMXIC | ",*FNMXIC], - !join_str ["FNTSFC | ",*FNTSFC], - !join_str ["FNSNOC | ",*FNSNOC], - !join_str ["FNAISC | ",*FNAISC], - !join_str ["FNSMCC | ",*FNSMCC], - !join_str ["FNMSKH | ",*FNMSKH] - ] - - This array is used to set some of the :term:`namelist` variables in the forecast model's namelist file. It maps file symlinks to the actual fixed file locations in the ``FIXam`` directory. The symlink names appear in the first column (to the left of the "|" symbol), and the paths to these files (in the ``FIXam`` directory) are held in workflow variables, which appear to the right of the "|" symbol. It is possible to remove ``FV3_NML_VARNAME_TO_FIXam_FILES_MAPPING`` as a workflow variable and make it only a local one since it is used in only one script. - -``FV3_NML_VARNAME_TO_SFC_CLIMO_FIELD_MAPPING``: (Default: see below) - .. code-block:: console - - [ - "FNALBC | snowfree_albedo", - "FNALBC2 | facsf", - "FNTG3C | substrate_temperature", - "FNVEGC | vegetation_greenness", - "FNVETC | vegetation_type", - "FNSOTC | soil_type", - "FNVMNC | vegetation_greenness", - "FNVMXC | vegetation_greenness", - "FNSLPC | slope_type", - "FNABSC | maximum_snow_albedo" - ] - - This array is used to set some of the :term:`namelist` variables in the forecast model's namelist file. The variable names appear in the first column (to the left of the "|" symbol), and the paths to these surface climatology files on the native FV3-LAM grid (in the ``FIXLAM`` directory) are derived from the corresponding surface climatology fields (the second column of the array). - -``CYCLEDIR_LINKS_TO_FIXam_FILES_MAPPING``: (Default: see below) - .. code-block:: console - - [ - "aerosol.dat | global_climaeropac_global.txt", - "co2historicaldata_2010.txt | fix_co2_proj/global_co2historicaldata_2010.txt", - "co2historicaldata_2011.txt | fix_co2_proj/global_co2historicaldata_2011.txt", - "co2historicaldata_2012.txt | fix_co2_proj/global_co2historicaldata_2012.txt", - "co2historicaldata_2013.txt | fix_co2_proj/global_co2historicaldata_2013.txt", - "co2historicaldata_2014.txt | fix_co2_proj/global_co2historicaldata_2014.txt", - "co2historicaldata_2015.txt | fix_co2_proj/global_co2historicaldata_2015.txt", - "co2historicaldata_2016.txt | fix_co2_proj/global_co2historicaldata_2016.txt", - "co2historicaldata_2017.txt | fix_co2_proj/global_co2historicaldata_2017.txt", - "co2historicaldata_2018.txt | fix_co2_proj/global_co2historicaldata_2018.txt", - "co2historicaldata_2019.txt | fix_co2_proj/global_co2historicaldata_2019.txt", - "co2historicaldata_2020.txt | fix_co2_proj/global_co2historicaldata_2020.txt", - "co2historicaldata_2021.txt | fix_co2_proj/global_co2historicaldata_2021.txt", - "co2historicaldata_glob.txt | global_co2historicaldata_glob.txt", - "co2monthlycyc.txt | co2monthlycyc.txt", - "global_h2oprdlos.f77 | global_h2o_pltc.f77", - "global_albedo4.1x1.grb | global_albedo4.1x1.grb", - "global_zorclim.1x1.grb | global_zorclim.1x1.grb", - "global_tg3clim.2.6x1.5.grb | global_tg3clim.2.6x1.5.grb", - "sfc_emissivity_idx.txt | global_sfc_emissivity_idx.txt", - "solarconstant_noaa_an.txt | global_solarconstant_noaa_an.txt", - "global_o3prdlos.f77 | " - ] - - This array specifies the mapping to use between the symlinks that need to be created in each cycle directory (these are the "files" that :term:`FV3` looks for) and their targets in the ``FIXam`` directory. The first column of the array specifies the symlink to be created, and the second column specifies its target file in ``FIXam`` (where columns are delineated by the pipe symbol "|"). - - RUN_POST Configuration Parameters ===================================== From 956f586519861cecc7041b789268fc5b70c24e3f Mon Sep 17 00:00:00 2001 From: gspetro Date: Fri, 28 Oct 2022 07:47:43 -0400 Subject: [PATCH 51/58] remove SFC_CLIMO_FIELDS from config_defaults.yaml/ConfigWorkflow.rst --- docs/UsersGuide/source/ConfigWorkflow.rst | 20 -------------------- ush/config_defaults.yaml | 20 +------------------- 2 files changed, 1 insertion(+), 39 deletions(-) diff --git a/docs/UsersGuide/source/ConfigWorkflow.rst b/docs/UsersGuide/source/ConfigWorkflow.rst index bc1febdbcd..eb0407e954 100644 --- a/docs/UsersGuide/source/ConfigWorkflow.rst +++ b/docs/UsersGuide/source/ConfigWorkflow.rst @@ -1117,26 +1117,6 @@ Aerosol Climatology Parameter .. COMMENT: When would it be appropriate to obtain these files? -Surface Climatology Parameter ---------------------------------- - -``SFC_CLIMO_FIELDS``: (Default: see below) - - .. code-block:: console - - [ - "facsf", - "maximum_snow_albedo", - "slope_type", - "snowfree_albedo", - "soil_type", - "substrate_temperature", - "vegetation_greenness", - "vegetation_type" - ] - - Array containing the names of all the fields that the ``MAKE_SFC_CLIMO_TN`` task generates on the native FV3-LAM grid. - Fixed File Parameters ------------------------- diff --git a/ush/config_defaults.yaml b/ush/config_defaults.yaml index 37d142cbcd..56806fdb06 100644 --- a/ush/config_defaults.yaml +++ b/ush/config_defaults.yaml @@ -864,7 +864,7 @@ task_make_grid: # in generating the files with 0-cell-, 3-cell-, and 4-cell-wide halos; # they are not needed by the forecast model. # NOTE: Probably don't need to make ESGgrid_WIDE_HALO_WIDTH a user-specified - # variable. Just set it in the function set_gridparams_ESGgrid.sh. + # variable. Just set it in the function set_gridparams_ESGgrid.py. # # Note that: # @@ -1668,24 +1668,6 @@ task_run_fcst: # #----------------------------------------------------------------------- # - # Set the array parameter containing the names of all the fields that the - # MAKE_SFC_CLIMO_TN task generates on the native FV3-LAM grid. - # - #----------------------------------------------------------------------- - # - SFC_CLIMO_FIELDS: [ - "facsf", - "maximum_snow_albedo", - "slope_type", - "snowfree_albedo", - "soil_type", - "substrate_temperature", - "vegetation_greenness", - "vegetation_type" - ] - # - #----------------------------------------------------------------------- - # # Set parameters associated with the fixed (i.e. static) files. Definitions: # # SYMLINK_FIX_FILES: From 8ee1442ab63f84bd69fd5fd1709e43d2d4907aa6 Mon Sep 17 00:00:00 2001 From: gspetro Date: Fri, 28 Oct 2022 08:14:51 -0400 Subject: [PATCH 52/58] update info on data: section of machine file --- docs/UsersGuide/source/RunSRW.rst | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index 131ba18c15..057713ecf1 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -652,15 +652,15 @@ For :ref:`Option 2 `, add the following information to ``config.yaml **Configure the Machine File** -Configure a ``macos.yaml`` or ``linux.yaml`` machine file in ``$SRW/ush/machine/`` based on the number of CPUs (````) in the system (usually 8 or 4 in MacOS; varies on Linux systems). Job scheduler (````) options can be viewed :ref:`here `. Users must also set the path to the fix file directories. +Configure a ``macos.yaml`` or ``linux.yaml`` machine file in ``$SRW/ush/machine/`` based on the number of CPUs (``NCORES_PER_NODE``) in the system (usually 8 or 4 in MacOS; varies on Linux systems). Job scheduler (``SCHED``) options can be viewed :ref:`here `. Users must also set the path to the fix file directories. .. code-block:: console platform: # Architecture information WORKFLOW_MANAGER: none - NCORES_PER_NODE: ${NCORES_PER_NODE:-} - SCHED: ${SCHED:-""} + NCORES_PER_NODE: 8 + SCHED: none # Run commands for executables RUN_CMD_FCST: 'mpirun -np ${PE_MEMBER01}' RUN_CMD_POST: 'mpirun -np 4' @@ -677,9 +677,21 @@ Configure a ``macos.yaml`` or ``linux.yaml`` machine file in ``$SRW/ush/machine/ FIXgsm: /path/to/FIXgsm/files FIXlut: /path/to/FIXlut/files data: - FV3GFS: /Users/username/DATA/UFS/FV3GFS + FV3GFS: /Users/username/DATA/UFS/FV3GFS # (used to set the values of EXTRN_MDL_SOURCE_BASEDIR_ICS and EXTRN_MDL_SOURCE_BASEDIR_LBCS) -.. COMMENT: what is this "data:" section used for?! +The ``data:`` section can point to various data sources that the user has pre-staged on disk. For example: + +.. code-block:: console + + data: + FV3GFS: + nemsio: /Users/username/DATA/UFS/FV3GFS/nemsio + grib2: /Users/username/DATA/UFS/FV3GFS/grib2 + netcdf: /Users/username/DATA/UFS/FV3GFS/netcdf + RAP: /Users/username/DATA/UFS/RAP/grib2 + HRRR: /Users/username/DATA/UFS/HRRR/grib2 + +This can be helpful when conducting a multiple experiments with different types of data. .. _VXConfig: From 2b849f00d67256eda4e5cea50cffac373f5ebf13 Mon Sep 17 00:00:00 2001 From: gspetro Date: Fri, 28 Oct 2022 08:17:11 -0400 Subject: [PATCH 53/58] minor wording fix --- docs/UsersGuide/source/RunSRW.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index 057713ecf1..0026c874e7 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -677,7 +677,7 @@ Configure a ``macos.yaml`` or ``linux.yaml`` machine file in ``$SRW/ush/machine/ FIXgsm: /path/to/FIXgsm/files FIXlut: /path/to/FIXlut/files data: - FV3GFS: /Users/username/DATA/UFS/FV3GFS # (used to set the values of EXTRN_MDL_SOURCE_BASEDIR_ICS and EXTRN_MDL_SOURCE_BASEDIR_LBCS) + FV3GFS: /Users/username/DATA/UFS/FV3GFS # (used by setup.py to set the values of EXTRN_MDL_SOURCE_BASEDIR_ICS and EXTRN_MDL_SOURCE_BASEDIR_LBCS) The ``data:`` section can point to various data sources that the user has pre-staged on disk. For example: From de8dd4e833c7ea3e44e3d677e4325384d57e62ac Mon Sep 17 00:00:00 2001 From: gspetro Date: Fri, 28 Oct 2022 08:17:58 -0400 Subject: [PATCH 54/58] minor wording fix --- docs/UsersGuide/source/RunSRW.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index 0026c874e7..4abf857ff0 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -679,7 +679,7 @@ Configure a ``macos.yaml`` or ``linux.yaml`` machine file in ``$SRW/ush/machine/ data: FV3GFS: /Users/username/DATA/UFS/FV3GFS # (used by setup.py to set the values of EXTRN_MDL_SOURCE_BASEDIR_ICS and EXTRN_MDL_SOURCE_BASEDIR_LBCS) -The ``data:`` section can point to various data sources that the user has pre-staged on disk. For example: +The ``data:`` section of the machine file can point to various data sources that the user has pre-staged on disk. For example: .. code-block:: console From ea75eabc5756167a57f256b66cf54ec3a3620f22 Mon Sep 17 00:00:00 2001 From: gspetro Date: Fri, 28 Oct 2022 09:49:03 -0400 Subject: [PATCH 55/58] add note about converting ols .sh file to .yaml --- docs/UsersGuide/source/RunSRW.rst | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index 4abf857ff0..c48194ffd2 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -458,6 +458,14 @@ To get started, make a copy of ``config.community.yaml``. From the ``ufs-srweath The default settings in this file include a predefined 25-km :term:`CONUS` grid (RRFS_CONUS_25km), the :term:`GFS` v16 physics suite (FV3_GFS_v16 :term:`CCPP`), and :term:`FV3`-based GFS raw external model data for initialization. +.. note:: + + Users who are accustomed to the former shell script workflow can reuse and old ``config.sh`` file by setting ``EXPT_CONFIG_FN: "config.sh"`` in ``config_defaults.yaml``. Alternatively, users can convert their ``config.sh`` file to a ``config.yaml`` file by running: + + .. code-block:: console + + ./config_utils.py -c $PWD/config.sh -t $PWD/config_defaults.yaml -o yaml >config.yaml + Next, users should edit the new ``config.yaml`` file to customize it for their machine. At a minimum, users must change the ``MACHINE`` and ``ACCOUNT`` variables. Then, they can choose a name for the experiment directory by setting ``EXPT_SUBDIR``. If users have pre-staged initialization data for the experiment, they can set ``USE_USER_STAGED_EXTRN_FILES: true``, and set the paths to the data for ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` and ``EXTRN_MDL_SOURCE_BASEDIR_LBCS``. If the modulefile used to set up the build environment in :numref:`Section %s ` uses a GNU compiler, check that the line ``COMPILER: "gnu"`` appears in the ``config.yaml`` file. On platforms where Rocoto and :term:`cron` are available, users can automate resubmission of their experiment workflow by adding the following lines to the ``workflow:`` section of the ``config.yaml`` file: .. code-block:: console From d686285f1acf9ef92c3ad965a82472be7973c5de Mon Sep 17 00:00:00 2001 From: gspetro Date: Fri, 28 Oct 2022 10:31:45 -0400 Subject: [PATCH 56/58] update intro forum link, minor wording/details --- docs/UsersGuide/source/Introduction.rst | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/UsersGuide/source/Introduction.rst b/docs/UsersGuide/source/Introduction.rst index bb15a1a436..8922f812c5 100644 --- a/docs/UsersGuide/source/Introduction.rst +++ b/docs/UsersGuide/source/Introduction.rst @@ -8,7 +8,7 @@ The Unified Forecast System (:term:`UFS`) is a community-based, coupled, compreh The UFS includes `multiple applications `__ that support different forecast durations and spatial domains. This documentation describes the UFS Short-Range Weather (SRW) Application, which targets predictions of atmospheric behavior on a limited spatial domain and on time scales from minutes to several days. The SRW Application v2.0.0 release includes a prognostic atmospheric model, pre- and post-processing, and a community workflow for running the system end-to-end. These components are documented within this User's Guide and supported through a `community forum `__. New and improved capabilities for this release include the addition of a verification package (METplus) for both deterministic and ensemble simulations and support for four stochastically perturbed physics schemes. Future work will expand the capabilities of the application to include data assimilation (DA) and a forecast restart/cycling capability. -This documentation provides a :ref:`Quick Start Guide ` designed for use on `Level 1 systems `__ or as an overview of the workflow. It also provides a :ref:`Container-Based Quick Start Guide ` for running the SRW Application in a container and a :ref:`detailed guide ` for running the SRW App on any supported platform. Additionally, this User's Guide provides an overview of the :ref:`release components ` and details on how to customize or modify different portions of the workflow. +This documentation provides a :ref:`Quick Start Guide ` designed for use on `Level 1 systems `__ or as an overview of the workflow. It also provides a :ref:`Container-Based Quick Start Guide ` for running the SRW Application in a container and detailed chapters on :ref:`building ` and :ref:`running ` the SRW App on any supported platform. Additionally, this User's Guide provides an overview of the :ref:`release components ` and details on how to customize or modify different portions of the workflow. The SRW App v2.0.0 citation is as follows and should be used when presenting results based on research conducted with the App: @@ -18,14 +18,14 @@ UFS Development Team. (2022, June 23). Unified Forecast System (UFS) Short-Range How to Use This Document ======================== -This guide instructs both novice and experienced users on downloading, building, and running the SRW Application. Please post questions in the `UFS Forum `__. +This guide instructs both novice and experienced users on downloading, building, and running the SRW Application. Please post questions in the `GitHub Discussions `__ forum. .. code-block:: console Throughout the guide, this presentation style indicates shell commands and options, code examples, etc. -Variables presented as ``AaBbCc123`` in this User's Guide typically refer to variables in scripts, names of files, and directories. +Variables presented as ``AaBbCc123`` in this User's Guide typically refer to variables in scripts, names of files, or directories. File paths or code that include angle brackets (e.g., ``build__``) indicate that users should insert options appropriate to their SRW App configuration (e.g., ``build_orion_intel``). @@ -34,7 +34,7 @@ File paths or code that include angle brackets (e.g., ``build__` for a quick overview of the workflow steps. #. To build the application in a container, which provides a more uniform work environment, users can refer to the :ref:`Container-Based Quick Start Guide `. - #. For detailed instructions on building and running the SRW App, users can refer to :numref:`Chapter %s: Building the SRW App ` and :numref:`Chapter %s Running the SRW App `. + #. For detailed instructions on building and running the SRW App, users can refer to :numref:`Chapter %s: Building the SRW App ` and :numref:`Chapter %s: Running the SRW App `. * For background information on the SRW App code repositories and directory structure, see :numref:`Section %s ` below. * For an outline of SRW App components, see section :numref:`Section %s ` below or refer to :numref:`Chapter %s ` for a more in-depth treatment. @@ -75,11 +75,11 @@ The UFS SRW Application has been designed so that any sufficiently up-to-date ma * >82 GB disk space - * 53 GB input data for a standard collection of global database, or "fix" data (topography, climatology, observational database) for a short 12-hour test forecast on CONUS 25km domain. See data download instructions in :numref:`Section %s `. + * 53 GB input data for a standard collection of global data, or "fix" file data (topography, climatology, observational data) for a short 12-hour test forecast on the :term:`CONUS`` 25km domain. See data download instructions in :numref:`Section %s `. * 8 GB for :term:`HPC-Stack` full installation * 3 GB for ``ufs-srweather-app`` installation - * 1 GB for boundary conditions for a short 12-h test forecast on the CONUS 25km domain. See data download instructions in :numref:`Section %s ` - * 17 GB for a 12-h test forecast on the CONUS 25km domain, with model output saved hourly, see :numref:`Section %s ` + * 1 GB for boundary conditions for a short 12-hour test forecast on the CONUS 25km domain. See data download instructions in :numref:`Section %s `. + * 17 GB for a 12-hour test forecast on the CONUS 25km domain, with model output saved hourly. * Fortran compiler released since 2018 @@ -112,10 +112,10 @@ The following software is also required to run the SRW Application, but the :ter * Only **MPICH** or **OpenMPI** can be built with HPC-Stack. Other implementations must be installed separately by the user (if desired). -For MacOS systems, some additional software packages are needed. When possible, it is recommended that users install and/or upgrade this software (along with software listed above) using the `Homebrew `__ package manager for MacOS. See :ref:`Chapter %s ` and :numref:`Chapter %s ` for further guidance on installing these prerequisites on MacOS. +For MacOS systems, some additional software packages are needed. When possible, it is recommended that users install and/or upgrade this software (along with software listed above) using the `Homebrew `__ package manager for MacOS. See :numref:`Chapter %s ` and :numref:`Chapter %s ` for further guidance on installing these prerequisites on MacOS. * bash v4.x -* GNU compiler suite v.11 or higher with gfortran +* GNU compiler suite v11 or higher with gfortran * cmake * make * coreutils From 4e0edbc88c87bcd2c0aa397f97e315a5fa35e2e1 Mon Sep 17 00:00:00 2001 From: gspetro Date: Fri, 28 Oct 2022 13:34:46 -0400 Subject: [PATCH 57/58] update pngs, RRFS note, minor intro fixes --- docs/UsersGuide/source/BuildSRW.rst | 7 ++++--- docs/UsersGuide/source/Introduction.rst | 4 ++-- docs/UsersGuide/source/RunSRW.rst | 2 +- .../_static/SRW_regional_workflow_gen.png | Bin 163046 -> 163300 bytes .../source/_static/SRW_wflow_flowchart.png | Bin 0 -> 145622 bytes 5 files changed, 7 insertions(+), 6 deletions(-) create mode 100644 docs/UsersGuide/source/_static/SRW_wflow_flowchart.png diff --git a/docs/UsersGuide/source/BuildSRW.rst b/docs/UsersGuide/source/BuildSRW.rst index 9ae919c924..85790b482c 100644 --- a/docs/UsersGuide/source/BuildSRW.rst +++ b/docs/UsersGuide/source/BuildSRW.rst @@ -204,14 +204,15 @@ where valid values are ``intel`` or ``gnu``. The last line of the console output should be ``[100%] Built target ufs-weather-model``, indicating that the UFS Weather Model executable has been built successfully. -If users want to build the optional ``GSI`` and ``rrfs_utl`` components for :term:`RRFS`, they can pass the ``gsi`` and ``rrfs_utils`` arguments to ``devbuild.sh`` (NOTE: These components are not currently available for use at runtime). For example: - -.. COMMENT: What does the runtime note mean? +If users want to build the optional ``GSI`` and ``rrfs_utl`` components for :term:`RRFS`, they can pass the ``gsi`` and ``rrfs_utils`` arguments to ``devbuild.sh``. For example: .. code-block:: console ./devbuild.sh -p=hera gsi rrfs_utils +.. note:: + RRFS capabilities are currently build-only features. They are not yet available for use at runtime. + The last few lines of the RRFS console output should be: .. code-block:: console diff --git a/docs/UsersGuide/source/Introduction.rst b/docs/UsersGuide/source/Introduction.rst index 8922f812c5..7e39ba7769 100644 --- a/docs/UsersGuide/source/Introduction.rst +++ b/docs/UsersGuide/source/Introduction.rst @@ -75,7 +75,7 @@ The UFS SRW Application has been designed so that any sufficiently up-to-date ma * >82 GB disk space - * 53 GB input data for a standard collection of global data, or "fix" file data (topography, climatology, observational data) for a short 12-hour test forecast on the :term:`CONUS`` 25km domain. See data download instructions in :numref:`Section %s `. + * 53 GB input data for a standard collection of global data, or "fix" file data (topography, climatology, observational data) for a short 12-hour test forecast on the :term:`CONUS` 25km domain. See data download instructions in :numref:`Section %s `. * 8 GB for :term:`HPC-Stack` full installation * 3 GB for ``ufs-srweather-app`` installation * 1 GB for boundary conditions for a short 12-hour test forecast on the CONUS 25km domain. See data download instructions in :numref:`Section %s `. @@ -112,7 +112,7 @@ The following software is also required to run the SRW Application, but the :ter * Only **MPICH** or **OpenMPI** can be built with HPC-Stack. Other implementations must be installed separately by the user (if desired). -For MacOS systems, some additional software packages are needed. When possible, it is recommended that users install and/or upgrade this software (along with software listed above) using the `Homebrew `__ package manager for MacOS. See :numref:`Chapter %s ` and :numref:`Chapter %s ` for further guidance on installing these prerequisites on MacOS. +For MacOS systems, some additional software packages are needed. When possible, it is recommended that users install and/or upgrade this software (along with software listed above) using the `Homebrew `__ package manager for MacOS. See :ref:`Chapter 3 ` and :numref:`Chapter %s ` for further guidance on installing these prerequisites on MacOS. * bash v4.x * GNU compiler suite v11 or higher with gfortran diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index c48194ffd2..630a1f9862 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -806,7 +806,7 @@ Description of Workflow Tasks .. _WorkflowTasksFig: -.. figure:: _static/FV3LAM_wflow_flowchart_v2.png +.. figure:: _static/SRW_wflow_flowchart.png :alt: Flowchart of the workflow tasks. If the make_grid, make_orog, and make_sfc_climo tasks are toggled off, they will not be run. If toggled on, make_grid, make_orog, and make_sfc_climo will run consecutively by calling the corresponding exregional script in the scripts directory. The get_ics, get_lbcs, make_ics, make_lbcs, and run_fcst tasks call their respective exregional scripts. The run_post task will run, and if METplus verification tasks have been configured, those will run during post-processing by calling their exregional scripts. *Flowchart of the workflow tasks* diff --git a/docs/UsersGuide/source/_static/SRW_regional_workflow_gen.png b/docs/UsersGuide/source/_static/SRW_regional_workflow_gen.png index 0454e68b1c757671fe961f4b0b83cda2819ffae4..60b3952e3e574951aaa74b261565a4b983f60deb 100644 GIT binary patch literal 163300 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%0D%k%D5-A~2Z!sV{VMGAUQw^Iuyj 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 q5ef3-=19`l1RF)Kh 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 b&V&Dq0bO~1GkxRdG5~?6tDnm{r-UW|_D(`P diff --git a/docs/UsersGuide/source/_static/SRW_wflow_flowchart.png b/docs/UsersGuide/source/_static/SRW_wflow_flowchart.png new file mode 100644 index 0000000000000000000000000000000000000000..0cee4f5e65df1e0a87cef48ccc241655a357e3f6 GIT binary patch literal 145622 zcmZs@Wk6iZ?=XxNcZwIcQe<(r;x46y;_kAz7Wd-rR;(0vcXxMKio3f%+uqy%z4!ON zyC2TkIXRh3Cdp)y%!Vk+OQ0YUAVNSuph!uIet>|08ijy>)`y1$x7dm)pnxxs_8%mK zAxcNz?16tM8hw^BmXm{c2fl}gfP%z?fc^yn{z3$qLBRaJhk&34U%_ayApd!q1@-4C z)Mys;pL=NiUx0~5Jjq}rYGxllJA9UtLI9TwLf0k1u6#?2Ak#aCHF*1=0Ad-@j^4S?0^L!8$ z|NC|DFMe`U2L~G-0KnPVnbDb*5ol)uVCLrL1~9PzSXdaq5DfON)((0u4A%A(eil2C{58_wt>B>wAo2nJk8J{o_}Xi5 z5D-ETQljraxObgF$$ zh;Tc1EfZ1w!LEVAYnzXvq&3@ft-N{I5vNLgdgZ;Mru(iRr zeE7FeU%kn*{<#>DqibxdtbG5ckW`~?Wd93}EhH3T|4L|*^1oQVdSjZjz`lkQ z6T(o0`E&6>B+cq>fFd=+{7*9&D5Odo`hO4zy+T)9*My8>3;8#7zks^c%KnQNQY;G! z{;h2(gk*~7zq-pW%TKC_=)-aj8O3%6q4hu;;Jl*FG)* zS+-<~mG(u4%dHi*MAgJ4e>kA%2Tw^|mpEVFO+f#?Dgp;Q4vC@U?`v+B0~z$8G@1a{ zBATQar#Tz5l$Jm5jJu!*hlIpmjs{8HK$FC8COi?0`EYhpgfCbXV-P#%@NA~#kqiu@ zDa7H~Pd7Oyvi&fa^ZWE?u;xgR@D7oF8BwTyW#3E4Ytq!k!Sl@kt-aKPjZ+-0qdgp> z)e}&oRh>}qhnZ~BFm6QW)zu^}W;uMb;EKKH~Y+7dZY@O;0)z{}x`MF|B(f(Fe-{xHTTFj&YkjQ(LS66LI);E9>m*1A1W zXrlH?_%#aqKce)VAI2&1FfLr?nXXCtBek0Q_c?hf=`;(t9UfY-uF)BUL-p@}xI)_G zj6D=FGK3uh8wj2TSSR5tn?Kz_ijnf5&$n2ZID8bfz+nExWMt_P$^S@J78wOtl*ux+ z_&NR|06fD!!DLz8-1>^<;=cuAnjgv*VPLZMANYicluwbKbho#cr)0qz=e(!qsOD6(BZKNX_XbH5yLyJz>Bl!7Q`@_{dDQV8+JDt@bpYSMd zZSq1Q)EIwihP-;yDogE~s^XOMV6b>%mU~4)zZjnr@9U_3XqK}}^kTFy7O)z8cV2el z*-k;d3WD6Ct}VH0tWCGwR75-z4K;oLH}O>lK8)KH|BTH#0A1m}i@7Yh7x+ zk(rvN$3nW2f8iOGvg?I-0oIk<4!~8K?;9laR}b<`$TEBR;*YdWTh&t9ol5DX*t1FD zgtyI3v%iOZ^H55~%Q$iUNLA^1>_rK@a%uYUG66(%38*5{Q0Z?5Fh*6Q!b#709HUB# zYo{i7Q4`{}G|jQyh{zKGT z$xXQ>?|mVuyJMj)_ez1y zf%(h5BGOZY+X#pPskL!BvWb&uPE5V8qLRV6mHu(t&TotH#Q4R|xQz9P-l|9Jj%7)+ zYHjk)Ik;W8&f}!!b8+%rSVvuQ1E;c_7Fy+8R}6`Dh!Da=teALRPD6*$)@G1pUP`W0 zY(jcuRP(1*>CwqZ*~{ScN~0%Hky2m+%65vXG7JF=)V{5Czlmz(2zj}|1I+_sXK8`Ms;x-ojG&%2fhO0t=pDU zg>`@u!1j=EePyOqlhj}nVGrNsv5$HT&#QH0(v5(;G6-3CpR`nN#7%n;59a%)8!QIM zO{1-+xI_AKvzQd;IAex~KuRe}$%! z?VHsBWfyvu?t0RqwV)ZuJgSF!K4*d4-oLv4jkV+#mrDPjcgzhX#i|Ce6}+U7WzqAU1~{y_LZpqZU zyoA&wp$C3lj)I~>EnjZu*+*xpn)tYYGS4C5Qa&g}e5H4?QI>i0fK)jVA!gyi!HY-o zU3Y+mj{&j~+u?`B2o@CY#KUd8je#AmhJ4MI6;6}}tNiTAZzJ&TazTS-E8a4cvxh_c zq7<;0qcs(meY}P<)qM=cm&8H@=~OjLb9!zhezr(;?>0Fd15P>Qju?;Nv~XDDhDs$C zEWQ?oYNR{>;wJD8Y{w0*1p=$#bP}_#L%JKotox)!DQo1t0bUy0jwB)H-)JMj zs~UqEsNQ7^Mq_zO(|vi&{Hu_NxDfv+%H839g&K@qxN{`w;$(|iK& z7AxMvuz!Vw+^3JTiF{QFyuP3Nm^={$*lC^$PBpyiez5EsnxXX? zxv7Oig7d9|>$I8!g4Z%q^d&`9(MS;t_#lWX8gf_oYpw!(g|qACfLSbwx}3R5WWD8< zrfx~PFNTeBs~5#=(15B$wkouYP9wops}QFmJ2ua|JVX3s(YJm=4tQSz=$Td~qgo}^ z8p)bRG*D_Wzv{9?SQ?)B3x58vQoH)9R&r3h5ficM>Owm~t7pl|pi4tg@;c!v78!r= zx)k+uzE6zKy8s))uSge%uJaZNLwL>S?tJ5n9@{dd#{3Tf1z}ttL8BSpZfKY27pox$H_H zVglGk*eKPGb@$OnP0=0juOz1Ym_V1e!!gf&%|tdj6BOPFBzuWfx48~Y5%xdX4Ov=H zudak$=j!(CBlZUF`=y7L-Q3{0BBq@l7C#XMXx!!Z{jfIL_Cn|txP@quic$)!)-n@*lq zOdzx7rsGB7!S{1cph2Os?*M0J?ODJPx!tQWGFgfoco&d$-9asw~&k>x{@wP6@u#LqR^Ee zh#qB`FF&e}U4P89F@ZF=R#Oa%1Hvds^5p zI1?&My%6r#sxN3vCXRM`0q^Fv z?p@-XA-C7#M4uKX84~DaoFO>n+~HcQ8(kB+E#Ab;H@6h0J~g-Wsb6tP!De0t3_m?W zsR0R4*kYo5l(z3(%jW4_<;x=iNv1e>57-`IABOGPz{`nNsbeohJu^Q4NR_`kY9xQc zWN-glmLPns>zY~n$RNB0oJz7>zRUZ~q{`hIJcsq2^Px8P`^=!yH?0%L7YIiEal1+s zfDC(ceK*v;Sr{Iq4y-r7`VC*T7C;h?c#HAd8helB z8)ZtB?)7d_eVdY$xY&B#; zH|#O(Xt`p5*zbYpIQ8BD1Zm%4hBTsE2NOw*J3MZ`;gi#0K2Ya+dlq9IGuiX=uAHfn zcwJPLUz_d(qU+~lYW_`i(Kte)iOUsf#c|$=+!zNrJ{KMBqCPA%tlKuJdK6USjmLR- zpVoQ#DjVYBCI9N1RhNSb)YNiJLeph~Y`(mX1yXLI9AY3}WIrDlNoZ>e52;!R{v&K* z5R)4Mb_gjSGN#c_z4AOfyS*0cueByaDfkKthN%f2`U4uqW2}em@+#ld@}1k=(aJOK z9XTp-Ywh{RchjCDqEGOE4o1i^!;VpHu$7HVZZ*7-^*z!oT!FeG1{ntX2)5eKL;Rj_ z2pOOw*U&J--Jy3FCYw~3^x2tC-N`!;Am!jq^J zt|o_$RTtNZb_Gu>|29bBF1#b&@T>G988uBd^Tyb{%_$DtC?7o zh1s&b*re>fT&y_09$XP-K#G!gm#U$*SQo>(`UEm~D9ro)T)qvN=>`LgNlg89@e?*> z$ydc*t6%BI=Y{lpF7k^_goN2CIgT=NO?rdu~U0}ReLKFySt7Q-CFha*TZQjsB?Fr z5m3?g>$`EB6tVn}L*g)Oms*;Z=~I(Cq7X*ZHOd6Kt*&VbQZ1as+C9^9?u<#*%S1A2 ziT4&V(~RrvTh_S)c42hXF=V_NyFfRZXyBdYRw(ggW#&wY23obNr~gH3&|s>g zBtsOy^=5;3n4=q;R;hBp>!253g(M<^IFfLQ3{^DaeTvT;7#0~K(=3~l02a1uHc32h zSqi74L)`1HAB9EwqK(gO_;rT7TINp3obC-_T~%h&!Wgop8Zmc1oMOiECS7C`n>aI^ zH6vhOh3udj_}`8fO?SH#xXLrt<_7H1hERvTTMxsv4%maGMpm{lWfIz0i`0(7`C{j$ zgVp-uMw__R6soTDp!4lZ2mtN-fw`#Mor?&5&)5*{h^E9(KOCGPc4%k~C;ndgo+OK5 ze|uJ9L!b+HqcXk}@u+F@du`t>h-UwM{Kz-rEuB@zGX#61MmZE9VSOp5uBm`%`xaEOdCnU z(H!TU!K2>s@qtGIuI+605vVn88@eslYJSiQBqBxO4*rm`=qx&%4}PuT884>nWNT6J zd4f+9ns7Sz2>vu`@wi%ZhV|pNps+;3biNG1(TQ?aPnNZFP~8n6L!xYg&O4`lNelJ8 zpJbyc0qByxjNN}RfE^js3k;?MY4#Hiv1xOZrJA-hfG%CaPHTBAEch-xB5v!BJd$48 zRvTuFJU7&8+_a~Xbid)4TxJM8c4Co z=dDV}M_R^K7yRaLh+YA`)s1u$b~|^!d>}Bi8+UT7$yWU z9XEbONH^GP@CfRO?Ux>{K$SbyvTIZZzTC@}zmv4By2|hE=cQ;Xgi&iIv zVpFf%Vc^)H#*y+d6D}aQayUQiOC(!%ok@Aw%9=88eb?YRI;5#Ln2ytWE zV^h#o2KUc#EoK{EQ-}wx7%LI8i4^140z$CPp>skrY(udA5Z(B8?^OlKHkR1q5m+-KqzhHr&uEV@VGBl0^@6-%U#AY>3L}3X|U7gN97*;Q&wDsw^ z^P}rsR}^Yh1J2OUjU~}QWr~;~=Mngr1i%jV28AJLiS4A^l3ldX_>XuOUT$1f0)ym1 zOI3qEpVde*-nKm#02^+E)QrTz>|0`Lnrh0zjU(aS?@ zO|-E=Tm_Z_-IRAhs1m3gWe+nk{K7oUwlcY4rWkQ!LhJ;&9kW)$I`n3mz~(+}XgC7G z>T5Ge7X;GShVl8+9)1wfWa#n8kZU6re+=Y_(+LYmqWQ)J^v*(7+*e}Ctmmw{x0kab z*6t%m*?z9cxXj#ySGCrerh7cIaP@mbUS!m;+4dS(YV9M=G4XW`5&a@_7sL>$hJV=S}JI2@wYgrO0@(DI$F$F9EVh+yA?HRDGwXg;( z*~`RzAuuTj*8HuA3~n=lPSS3^9^wXevl2851M$08#dJlig|KL0U^TFSQ?K{y>*|ES zAWqBHK4wh!q=WkO9s(tvNXlA7q6fxbEN97d=zgGA#y);6C=iAKEoyFev;Zm9#li>2Q9HtPRa$BsYs!F<=X1%$MX0CWT1eWK2VsHZLgYL9OuL9hN?V-0oLB?s+rXN= zXT~DcEb=SFL|6}=7JNM0_N7bi)%}2-FLr@y%G@Z7eG$$z7yTLxceVs-upWA?#|}-V zTN09C^#Vl(raERYM#=buA;eh4BDsuFLYt(bdV0EVLHgQG!-4pgKi5Y55{X$+$;}2c z+GsfHmm)1958&k}loZ=Z=SdroL7R^ksB4}P{$z8zOtl>>Q7)vHlxA1gJlkgIn;DqljR`ZaJF7JZ9-9bz=RGcy~)hUmWU2Ur2 z8rOS59ksBp5??#m7F?p61380ADVq69k!G4aj&XMgF*#OawAr#oU9#o8PENfcEi5;B zNS3e0AjJ68MVUUI&KTvg?0xl{JgSAB4$Nd1yC-%i$ZTcg{#pwB`&k`#VwFYvKAmXbQBao3#6@lCkcE%0m* zEpwxzR)mM8-DB4T-Nb5WbE$I%$8sV9{b%C^B47O~$QhtX$woV-YL}|>`VK~_$cMUH zkNJF~0+4O40)Qfn9eA(Yf`sKL!rzeJrY$%gt24i%@JW8SyPI4=&Y~1&>HX;}dGS@s z=cW+2zpsCRDq9`?VRBMPxYvg!88U5De;7i>BF{hjV7IBb+xX1?;LyCZqX(;$(|=`d zekc8)i{|uxYq5O0khRS(GJF-YYA5C5==E);g>OhI2aH@RR+6+AEmXXO_xtK@nF3s+ zZ2S#B2S1Y(pyuF9SlW#doo(@#(N9Yhz0FZWt%N@kfc-6ao5C_F9ipRnVUrezvDk=n zo7WR3U&*rkpy>jYKYbvh@$E(@BTw>HrD|IQ!6|TO2(MGZp_vvBH2zFCCY?naGggOE zQc=qp%>?p!oGc~{8|7KZF6|OlxNjcB}r?4mLYY@f#W z5M#{DG6xi9u*{9)ge(cBO=(EP9l#e+W{J?>T(_;e62r-W2M=DeAVo^(Re=K z7e9HVX@d4cd?2|>*vT&2{6`Qz%f2>vlr^n-YGQb-7$P*fNX&@e(I=(pf&eaOUkdNl#~m z>@3eY;=!zo>g#L<71SU~XvoxDhnlu4og;Fgu(_mpb$n>`Cb;}O+CQ}jN+CjFuT!(& zTk%zMDt%FEKdhj+boZw2K-5{M>1`6Kiavg(kWWLXVZEuce~e9KTJshk3%+$NvI$Hd z4pWxplpR+1H)T>V`bQ55g^L$)_K>wR@7pQ}H2Z_KAJK znT$d3HYf(1O1d{$EPPNmL-~_`_6hWXz~W_>+9L<2f~VviBP!QYv;J z)io>+`^ZSei)6Si^K=xJAjy@4+3I?bJu@nx-|gC$fPH?@=8jmAnwocm>FYV=nEk&6 zBGVjDgo%%;#vU%d3^)iQ-Wvknov_KNXFhY^k;$YKD(zs@y)!GlE}TIAGn~K58h(6* zFyziV5^%Z+ml3!e)7P4LoClD1H`FuD0VZ@8M>sr23+2-tbpDe~2N!lM!aERN>`d}G z4Y9EDJ3BIvcXPXUq&|~Q!DOn0h&w8T9+&+oJouejSJZ-;asf`-#03-*p{-$~z<}+7Ab;?r*u?DgCT1&iuGV{zD;6)k9g`B`nvGr~3czl@y_@PYD2e zB3GdLvs!%UcWPS@gKJT1O#n?D0cpqxOOYnViqb!G{hRaO5nw*>zA-hfk*`&o!?y)x z)b$Sw*LA3nmvqgiaLJD-|1UfaRE4cn%&cwkh`~^!PC#;8k^am%7jP*31W@H#^#0jM z>;Hu5@2UNU;1gGyW91lJsuaaqApI#6&(_*Je?dk0kI?;r!|>S*gM2o}-W)y$s2XRh zce}bDLwTu@)th+P_GHLS1N4frse=4BU>uxA@0im(Y?Qm zdW7UC#wpo{USk-9(k?ePO80yUM*2#>|W{kYDLIclp0$2Vk7q&wkhe1~}8peGjXv3^sH752Zfh zA>gtUao5GGtpCc-yHIfZAbI}Yf13%Yz-3B=TV`{9D*s{rcY3I^_?7olbWqVkS)^@> z+RbZAQEKVVFFq{pkJ8EK3m=;J^FAr#I|`%iwJ5khxIZgc7*6Cm+6{l|dVJUc&Qk+d z9%3Jl&qR(IZ@~NBq8;El5I9F6C*QijDbeDU$M{?8{w{=4MEF%%1w}7Mzzvg9D;Z~- zh+2#Pe0vQ=%lIxDdhFQ3i>82j;Ohcmp3%cL%X$5ArP+vz>+xdQR%Jm%RB?84OkJyx z%E%DHcUip-c{MKEbgz|8ow>pCoXXsxc9mzoC&K@Ti_g1X1!ag?dyF#@q#PXLZegYt ztSJvq=Cq4Shc8EVL0nC2E}4lV{k7c-R)CWxk1~gs=dHY%qkm6FTo9O}=jcDOkD8>N zh6cI0D-HME)T&5T7q4VvkGmEn`&#iaamyy{0fz@TI|Dx&xINKooHf*jH0)|Mfb3>b z?%g!K@$t=_OV16}lGNMrAGunnKf?U@+TLHy)zGY=|H*mo>2Ikb4+HlF4^6K{gD& zamU(^^`^6^7<)q}g91xX(=zsrbUFVrP0xbnc z!uS1is&!$n`~HRGML14Y5)@_R=q z8otXO^<<6IsdomSs$%LckK5;WA38;+Zep_0SgVHZ@d9tT9lzg+?h=vOK?RbC81dW+0dR`8WQrZt6Ue7bE)VimzDFD~| zLVCL;6l5#f$huVdIptejoC2F|#}qoxi0@M&S@v&|&iuDr57rpft3_C5DdG&Ahkb~J{;*$KZHUvZ8gWz zVNfn*PV4*IZ&pmH8L3KTxh{z)OTD)A?CNH%j_rDFWSovGS*PC9 zPtXFG{YHa*F)Ssa8j&rJZr(Z*O)t6u{iei*fWiD%TNJpr=6TSlIa`OO{QoQ+S*;Y~ zZ-ZIS1B_TX`Y|`;0_g#n4eyCMxMV{Wp z#l{{;VYkTDYI2H+d(Aa5I$NTVmzCANeRR5Yvpte(~6*q-?{v#`=} zA{hy7-;4a^R%A_(D+0hyStHacsenkr*;^C9MGq&cKxhe1&FK&$>7YMl5ek^(6u#%% z4Hn1!kE|Cu#mK~bpG#Y=)gR>UI9D8EWz)DOR041x&iY6IJDFasZRTxHN5HLN*0DH> z2rgkeJG;%psxchx$ImJ%32(lfb~y3ol26X!!M+jBAgQlzqZ(sPw8RlmXe9vzp^X*a zXz!Y2dZ;kATz)WHsx6`aTrQ+uJ^zrh(|Es~3f!F40LDKYHvxWPy8ZNl+Z^RRi90B5 zl7GIgYkOtsz8NjCc{Qh#*kHf2c%@Nm89k9BA+y@*v6b!&syKMKLJA8M7QW`*2xEmh zN4znZ%9pFPy!NRV2_~B;NOwx%yIHn(S}Dl%d?!KTQ7wpc41JvK^>m;UlW`oXC;v28 zqCu0}W8Hiv?z$dA^Y|c?fyR5t)NliGH~QJ`^L*9#e-+Ph0YaO}s%m+kYze!Q@UKV* zOylh5tWlDc!SQ*|Z(;J>HI7+{?>6NzwD0zd$_7t7Z+IKF!5h#C2@>r5pupVn(dezR z)_dveC7>Yp-Dd2o7>}7xs%mIIt?E{cEiN`91qYuWPJoG=*2`~ozMKU#zdS!&-*g5b zZAI`NM}cPn6yvK~rt6O;L9p*F0&oR2wtVKmeXW7!;Bg}iTy51lZD0T7xfQRvSvkar zR8L7QmqOY0cphri9nCSX?RjT}FYu+l`Fhdfd|U)gN;3@zmHgA8NiK2p6|SZ(VW4Jc z(gmAH@x$dFRwigmPwV99?U?&m7I@GmK zNLF@Tt`q3h$d_uZswn5Fi+>7M=e|7d2+}1rI>o+1<1(~MJ_C$J7wXW*u7Bg#gD@jy z&}kK`G?0US>wLnsSfg=JDPym_o7iglj*6lwr8}Dn*=Xm3yN3JKzL61{OFEIQ=UM=6 zu|E{hqWoyNVJgPlO{TnRlxN61JX(Pb2wKie^YPxva4(%fCb4OUe7*v`s_wEbCpHq9 z9b(NTF|CYd;O-h~cG&yy5bM4V7LCNsO@8Hh5x3}=aW35_KQw_|r;=0W6Hv<$sW9IP z8{W4efv6X&N5u?Hw`k3Yqwl*vQf9?}8EGH!uR`hIlxyREDItOv^GVN8#cbbsRx; z9IxaBR7=T3ZC+AO^6^XQZ4yT=awXZNg%=u%SF)}`PT1Wu(d%)eVLkx|RA zD-fm9bb_4sH1aK3JUebO1y`e_(M5>E{kqmRLF|d)+%aZ@U2oO-RKDx^VboBbnx<}U ztYl)*-QUr)xbR=xRb}8C6m9;wVcB&);?x;q#9H}ExW!nnbR`b#PRl;nB|nw>dhjMo zNheL9?ZNsJu&Ag8_U#|lt=7W$<1$A>Fg0eKeRV}CBkA@lwYkm-O*uaMN&t=0Liz36 zgBZ_BZ@k7~gF5q&ER%uc`QodFz{f*5p^4nOgLrG2q&>c@8h#T|{z8k?HoKzb+v(z{ zTyClcPl-kEM{SR*8KDa|xmn^x3+dAY`QQE?XzDXD6#8k9{Q}HF*D!E(~lYVZ}NtfIv0+yB50svq9 zl6LH>|FXXKs+RLgjcQVv&DQxhn#SH$u%sYj?Qq*~&v$%q=$gy_G@EMa4m;eSi)dr4 zCu>Qdl}MO-M=g?42RA~#cf~ljgAYsQ@6WQy(?N)2c0I_rToap_2>?rU_7&63$?9rJ zEwo|-W5~$i3{foL90{I9-Q-)dXea5tf0!S-syOdc>guETal;PrU7z5y9>v1PYDUpH zh}4Y;Uh6WKS?rM<-H(q|tT$kqD6)PaS)RdCY?b5$u zWDrmjJ%*iWvDC)sx|tqJOOZ0ZxNZv$nGysnEqXo1O(8%5EJ1ZkuPPvJaP`wIC2?^P zg26a3F;71tSsR{d&rmX6owk*+&4TDUDT5Msa2w$u-mVz2gUpmiL>&RZQBK|ChB`3- zB{x}0u{J(t`~Fx9)wx(x!*mUwua73q*5eyC^*K`R`~q!3ntlkCy2oXYwx2Fm(HmO$ zY^=TrqJ!08n0KH7)$tqmiz^yrb=~&$rju5S3-UlVb+cRr9j~VvxxHRgm?Pr@`9ph2 zPEi3(HD0H~@=3Jof-@;~SXn!uSW%B;@$%{kAAUMWhB58lAD_NnPX77oeM7^JlpS!@ zo|2Jze2Ju_FZ=4luayg2R;&mJwtriGMtQMtGYxWL5ZUy^hOTfC}sWU{~Oq6d_a$^z$WxE?oVL8-hJ-wGu<`O5k%9-T6;dVVVAZe5B^#u7;ImL%p zb5(O0uG{#8EuBq_(=7LUCv7j<)~$EO?qf_$7zX?(5WTN--{d^ZV{emmClAP;reRqF z>Pt7@*YocTY!fEG?$gG$s-~-}Z9QXBkahhm&zy@tb^(pF8lPRLX6F|4WL|`*9`Sdy z^gU@WdS%P2LTrEI^&#k7Qj=Orlgq^DozWjZwQFLF!Mic^5y%iYe}Wb^f;~lXylQI^ zvI&7mwo0hWDU=0*O3sGj3s|$(le{~Ye6OK*W0)@YqFAqtM&!9mJbatEE3au5Xb)}) z2038c)*AvLoR60qvfro#L{coX*OufeGA3Uu&@QydXcJ=0BPp&8vuFRND;&>f-)_$B zz?ShO4a*7|YIvu;>S1xy)%b@s;a-PJ9@&(|un-44hZ3K$N7JOIWPj_?h!6)`BQj4n zUHYt(0$%a?U_|Xv_&};A&UFBMs4vC>{uN`!}=ALq9(xQ_yblE4+j10A(W_9bH1oReaU)FFk? zWmkCZeSUIWz?i@4&SLcy+3O76?cRMkr#_NnURp90@vD-Sj&E!G6L@p1ydG>)bmS%!-KbMePl zW}=%hH~~|U*_KLk-!Cn;`N$+*EzRub)C+yG-~JqeRpkE_y+mt^a#y8(4O+~FQA<&# zl*7cL6ho9-Uc@sq5neM&R&+^+yEW#soGBFRw{tLBAuqRFVsy0?Q(95^mJtUs7HOpf z(#822OI5bkxCvUES2sjC8mM10r|j$;>UKc4waF0^+5Gl@Qs~t$eg|u_I)0rcOpv#& zS9FQ=sMb{3Jc$!1M6m0bNVi(v>&|ymH{YxNSeR5%vQEVdn|-PR-Wh5WQe;xr+A$5 z*AZA0B=GrKl!Gt(6MyA;Xkk2guShrySH>Dz(UapB)v$gE9{G6xuj7^d^7X`}ziC1B zF}su5@^fsv6`AF4xKyr_YWq8SE(|7`8|H1J^lv}3*BfGOkNVInlj-2+s1}uQf1^E( z;JYPhVTImlJf;bQkH4)yJA&>p1l~ntmU)Vl6?JsJSrdfsSjB{;SE9c5F1ln&w3cw89~G;u+|a%Rrz`;M z$bm&yF6v5~!4`jK(|CjTU!?44)?XxOdY$S&l-DSf1m# zA(;~%4wpdaCgEZSaG!pube1;7PvO}W<{NBRn>BZqDfFG_4PX>*kTwHNEumIbU+tYq z^r5O4hlerzMP~|wj6K+{`0R?43TWkSMU$5(u&?$7cTrJeL^_lgmL^m`+J`kb&shuGiK ze1!-Jrsmf=ZbdEEV6%@E(`KKVW^PQB=CvC;$Z;KkVnHz~av~Y6>=n0@=*^8yJTW0U-qN+Ji*5G8PbT6cuuc%VTxoPXo*r*^z_O`1f-l3LNB6mT5l&;olKKErH` zo`3!eATY9>k+oF+;B|B}P>iFMuF@z*a)Kv1uP(Isxk+*sn%s&p81c(MHh(Kqw zoF`(qTVMK|8%k4_NCS9Yem>@)RE}uX|L&FgSKN1e99?MXamdFjp4wL23y+p=6j#lr zus@LVdNav7*sg$3Y!Z$0pi?mO<}gd|Z|$TNiD6}Q!?^J?saoDG z!WokxCUAPESd2B49pJUiyfwOzytY3`vn z;yLzxe2n=-t3ZxU-B%f}IHcsGqWc_gpo2MF2Tf$G48x@Yg$#Pc1RBKEx|1D5H@Hp@ zTVwPM2~YS=Lo>NV5{S5Iv_4thuYXa?)Oafq)?a*jtRp*^z_BOAQs3mHp@PRI_si6= zM+nJJ;P`yz3}w~+b{qqZk#Pz;p9g$X^?M%M!L( zO_|K^nHQd-WV$Z6YCp_tU6uB<^RyK&=m{A4fJN2el5Vd8j7K6Nu&B!k&9GP(aG%n- zoF|)XO?yl9Jj{;--N=y`q;rE3Y`e)_mNlRMxvfyKb-tSOy~^Yvq#`cZO(bm)GCIImv&By0@ZZ^}gD2jQPLPehqq zxF_L@CXN44L3?XlSMei(>ud}1Llmn<4D0<+zkPUAQ$jeTw@aw9`q3FGaA1K^PJ{BE z=DqDFa;-1I#gzDF5}cK&(%5LM6SF~M zvoRanwr$&1`CI>eQ#a_mvGJJq;LNQ5q;vTCLQ5g! zo+@k6KD|WwjrORo1^fHXpMFzmIk~VETN6~eW$xqj&sCE%474m?QSet}F4)I4suo*f z#3k=#6ThhH0?<(w=|r=t1CLkxg&{KjkR9jEHpu&w={3rU#YAa+R6sGt{VAOypr*P{ zxMQ%}BgKS&RE!#T>IZx1f4=nv$5(3_F2l8C;OsZ`T=n53{@=>M$}RuU;$iLM+Wur3 ze4VM0M$$3|n(plr`ciqedfbcE{N*)GgQ3E*wnglz0tZBM>zk?X;r&ngk@Wtj3@KCt z8^lFdySc~-?6GHSp<#7W|6mkf8nF(7s)#`qV)ege&neAHIs|sD%*nsP(>sNQ*+&Q1 z;@G7Y@n((y6X5#ZP{@IrU?o1hb;_j~)r=Jr;~avlN{N(;+%xBfEN`HRm}$BVd@@L` zv>K-OANC0Ff{wv#5Ag-`5Z>tkaVm&_lBb6b*xj@U*ri7n?fZ+%`Qh>5x7Lq4gplBB z(}eN+igbB!GnP=iIv-<{dFgJdgnnU_mDF}CZ)sU7Js~u042-=JLl0bkz%<3*UXC_# zBmBX;&iJVNFIy-S_bJ3@LTy)gWjVn392_32w(PJIe0VN%W=+9Du|qh?_PC+2{Js>U*-Qo4rDi8^HSH_n zr}`a@(XC|-?O!JV;T1Y&*bnw|okWy#;&X7uC8o{)F=Mv~zN78ZLw8dLGIBZEpWRJI z72l6CRQFRm@3FoRJ(vTWY=X~_Kt4&oYi72B)~-z7N6eVShTO@~hJ?2Y_IR=EA5tXT zDoXlJmjn#kc#Y!8CMCP3*|+&%VxaerucR z^e)&k0||9@O5m+R`qm(a(>%jRltQT|6!COoHRUPjaVG^-@dU@6=uO9i8vS zlt~ScmBKX1leJ%dl^8L^u7c7o0>WOjqz^HLAUYQg6LDkTTv0r6npW~7&=N<|L|1TM zYZwFXNnQ`{&G)X=dgn-5QMhsp5gWI=V|OdBg%WnzxMb`tVrot%v{2g3qLBD|g2q$t zpDB~IRgF(v-A%rx{hc&OzCD$B80|L98yFe+ThP50)n(QD`rNP0s~!PB1#k85IfgJ4 z`hwtkqK3hD^!x=B{r~?!qnNrkSS`kgvn68qqUjj(@ckR&a(<-eNM9gIbi6jSd0X{8 z-X`bqJ5Lj=0%Z}v&2?xI@gXGXu$PIsrzJ+&^Alt|fY4-OZ`Q2QHY6LQ0#kw^S&|_B z?dB`6A~pV`jw1LjpwLqMc2U2JGl>1hr2v2>bZqT9WN&T8Ezg(Rs+6@(Z0}6V)^FdO zbB+4yiTbjIkuErMuZw;M%E^sC?=H>}))6tK(VSuwuYq_9};sp7^@U}v9du@1fH-{ zIY+{LFAL39)w20q$sGTw2^`iX0T(mh<~r~+oCra{3y`iswx8vEmOlxl5fi>`ud&fn3P;tJSOFrpjHT!h` z4g*s6=)XPO&8~kZH82Qpc%7XaUb;))_NT~`lW-0$Q4+t-(?QIN=ox9IX|0WdRI*o{ zaULvi=UYTM!b3yipPqhy%n65m>?%?m*oI_^=~)1gRRva;_VNu8(Hu-2)&EQMW7P5E zOF**Wepx+@lAEisK=ThmgVWHT{&zZqY=QA`3Us523chlVQ+)#K>#+pu8f9d7c(ijM zsR{C6+!&;$?7T>6o?1a4#pZ&4(!e*Sk*cb&(p2XGpt}9hEIryyYwJJA=?vDfZDTH7~0&N;@P``D&fC#4!fO3+C# zKlV0zB2WK9!MedIM|=;9AoO6nxVeKg%Ly%74t4SEVf>gnw^wQn&Q&yHu^50)N@%%V z7KP~CsP|;UFt)Oe!P>zdD${N@zHO1eqhK9Bi%miQ|gHxhFN=G=QU#%p<2#Bu^XXqXiK}VZILc^S zIgrLiy^_a>Q9cGUH}n!?o3>7T5zS=oCmSUmfW~YSBrB+Mz-?Y7x7m~KhfmTWQ-fB# zAM~OL@0NX8AA8cTUI?zC6&=ebPmO0+2$S!-EgH{u4IwjMt{U;YieUCL?~_zsRE0mi zWC2^d))%a4FJ}p--5gr$l%c|5EzVci^wn>{hbJdVbU`UFzZ5SNrJD%WxyLZfVZLmc zw_S#B=eZ73bGpXv!M~$_xjg}S4uShR?>SpGr0?FP{7%;Bm9cO<0oir**HVQjGnm!nqY0sxgrTYxTB8 zx9CZ#ZRNgZ!Xb>9t=!lUAK#DFsbqs7@k#Re8V>RD8^Jz*!XHl=lOOf4m#hWHqJC_6 zq8LkSbXg(B>&(B`NLI-vD$N6t<)uJPv?iL?a5t9JZP!ht0yP9Q>Mk6m8B_)N`9p6n z>u-Y#m4?Ur;4{~nA1Nu-pQR#+wZ|jHi_hPSp^HBQu0Jz|NxJ@t7Trlb#1~W7Of~sx ztq*&M7x@n0&=KvDiPz2Q%&NCc&BDmAy*D=trS#M-5-wZ|-=N8ECy=oCYg=uiY-dQq ziZ)IbtD%#{fhI;CFiPD}Dwj>dZ1J~un&Ty?;>RMZ`DFG_BO{}M7%JJ4AkcPSxU(zJ zEr`yg%uqEMOXG?8{hNV^*D)$x0Fnp=1S*hAHt6fx|_OxW|?Q5dH z+T_G)v&Nr#U!mXqY#e2Bxz)=V2~arjI`T%ukT6IWXN=$Lt>ew7^FQ0!RmL0FShx09 zqDNJvkx-eC9stZmo??a|1d2x>3ehJtuWy1FLD3XaFgrD#PtM=H^!2lDj*Q(H!oP8) z*`XBL)LXCqz^F*!cdd#qLn0B>0*Idv*7H%vfZ6Ge=gV;-0O3ZB6i%y8R!cR}&(9u< zRmP#c$BDXL(Pyj8%ML;&BT21C`(wLNWMZNT=q>hhB^q5EolZTsSU)g7D#T@HljE@% zh<7w1DHOC9M+)bVj~N425&gWtW&k4=^B$%YEK^V9F=mI6C+Uc0eJpo@%#Ji0E-o+V zm8ag(?L0UEcX5Q&0RT0cgiYM;&#d6rfHv(%MgGfx*(zek36ZNs(~LoMDMGT)4-7HB zkg!W-k7B3-Ule$Dv3M>zAa@)0)2rj%_J6zVZ1|(rRrzOlJq}{X-BcX7ygiJ2FR{l` z%g0be@=wKl8XyS3wZ8>8p#cDUu^OBSWok3KHVOJ})2c=c_&XlESyYK;?GVNQ0N5x> zhT|Jw^W7~N?iS`m#Bi;9OkjB z1)Ak&HeT1Mt-tbFz`eNEKshUR{X|#5#$9v}>xRs3bUxL5_`4nXvrkOoWW`~;)>Zh1 zhh*m72NESpQSd>0;;Z+|?R?!>lx3MOz~bnj@a&*90+iBDb|_<~^@#RC@AXmUIx zcXf4DA$AqqPje`t^oQwsZ`IdAiu7@>-%w9%h$e__ZvgX%+Z**HBeo)c!BK|7r?)Hn zA>9D9fd=*rTL$Gs{jhSflHBq}kJr8dRa$Y+~ z+z!ZOsmT;U3S|9A348!k#4zY9tZmne?T2%D-~QH`=5|yBVeTAQ1M!*z$_+q@sH#()&3l&8`pc3czC!h_$3=f8ywveXbs!_G||LB+hnVPmN(1 zPgOGoMERPGO#N!T>?5c{0i_Jyr&yL%2Ji{2a>pa_HTSnfRkZUz;Lr&+=5kr)AN z3GsEOKkV|h--#GLK+|Z;rk%Im>kJMJRjoPTBZ3@R;O+osf~K0bCt9Q%0edSP#;AG|DRq)Rufk zKjzz55tH^l(UNwm>eT?qUQx$)Qb-q5kS)j$9hhjd||#E|Ygd(*fDl3(ox(VqCpr|G<<2?1+gt2sVqv;8+IjcX*Nk<&X@tbab(aU zeb<2fyNRV_hSJgMa;1hK&HG5#caRkPyOY3aFAonb#pDkBSva#PCLA6tEE(Nh8oZNm$h`{N~1;)dMz=iAz! z_Vc0Fl#|l-Fiwimp0Gv(2W^Kj$>~@KDTTWC07|mNDAnY*+P(bU{KmuaY060oN55jy zc(@LTAKZGF^YrO#{5WIP;_6g7tSu7_XP|{?qEikyh}A-DjxysGZbzYMr(dQKj0!qR zWAA|2dsr$d_=y91kH*xyvEA!_2QUfqZ9S7QqKpH>tp{3O9;zR5-Y$3SN@kuKwj&Ue z=bAGZ=^%E=d=fA65_PKP6S=J3ffdDpeX2w)a)2R>yj3?bF>#C4us_n?Y>5!pxkwpC zoeDz=c=EePy3d4|nT?gOaZE$-TbWn39B$P6cO& zlb?j_VQn96c+Jr6smX@hkI%+hTjOvr(jjC%&Cu6q+tr0~Jrwi7u588C{^8ig2pw*8 zjr_Z0twZr}lr44c+*T{}b)-~gw2%#yi^QzE) z|4!%u)Sap90$C5JzTqsy`>4fWCiE#Hk=OO=Di1OC=_jLFli2U95OG-<;seynqvvDY zw<;#XrZ9g2O>3c-uTY=-z>I?WD4OP!_V6>cVwqYl{ASlh-MaA}CVh6-;EY#b(RkKq zSHwVtKni-H^!aDt$6fbu7mN>od=KUK6POw{AUb)VSd8@uRU(wei4z5<)}`qh)-Qb= z_@yzu?wi-4vHVvc8;8`sX&Yxy@aJ@(cMmJJ(pk0~^SPY;5E$WCy}Vmfj(7H_gXRjHMzczcdS! zH|j2-Ak^TGbdW&q?dsZQwEsw6M6dCk)I;aNJ}7}w)->~$eRTBl{>p320P5uMUzNechKK>`S+qcb$*4}_LDw=`Wxp-XIi)~ z|Ae>V5LR*$jI= zAo8VeJdT$nxrceM%MgxhoV(QFEw?LtHlvw>`{~H5%`gs^#;w3cXd!gYdq#DpoX)Y* z-x6stO+!-TAIlIB8?rIcMK|UUDB|~YTA$I2_%UHVMA&d;S8dL&VILit7=MkOc;$h{ zQs|sB8#Eys{3W;euvSdPKXz20T6)+CybP(%$d+;*`F2}l_|+B(xU85t7UJNE3LhjD z8WcXQWcTS%AqzU<4B<3|>jZ7tbwSuj3lYx~>+tR6-23S>+hIdxqc4p=!JhZqQwC9q zFUqLEg>*mUxNF&icIsE{a>uQxx|sQ@WXb}r=sn3#=ma>LDJrV{GwqhYT!pO?kWDll z%6F|7X*1qZtb{saP;8paH1>Lh>#5Qcug8Vfbs6{-`5p17NaWJU;!DK%g6QEeh$6VB z3%Bumt9Nf@o)G_ZK`^oNGexOMr3?l>ZMQw0RpXBXz*VOOlYjNTF*J{Gf3OHdl$kC6 z8V*_yL?j=vX)x@9thQiu z*~HCX%-NTt4f?jgLH7%aClnTLzT`)vMDKWFDY&UmK7UG$xH_cmJ`TIdr8kF|VqNQH z|74a)Auo2;!REWBO{fTZ@;7GAItsWBb?6kQ<}Wy4+1Buz?pn^lw$QCdiM&)*6fkx_ zj0#4pin`}h=iPqXd_b}byqKPr!Y72}=W6xnKFwLL4FcG~eFmOo<7YaD-TwOhVc>R< zeq_?Yha80iGT7hKib=^#OJSk7;i?tr4jALusQr3da>pMOakwBPU3iGui2-4QwKBvo zSOQ4NmRufgPwh99-FO`V@7OSJ*9f^6gJi7KgAZdTK4ZJzDf#9cPxtXomsHkAe5~DT zJaDkjuVi^uVz%>)eDFS}V`=Mrh9gBa;+N9dLi(KR`{AfJ@Y(km#glR#i{idf$KM#? z=GR4bCM+dZ<&ImQ`&L+@QsLE#^F6Y@Bsn@^M*Jxn{MAMt%q1Kr90ZArO=fkU80L{q zz=4Cu&delU zUbj$+dK-=u)^e!f1kUNCz+z|d2bQUdP6E8W|*mc zW$mq{`C)WJgnts7C4xYa4+Y+o-v;jl-fj<%@Do#T?R5OKL*GMCVa{lNfsYO(KIvFT z#y(!(!}eoGu_DER1Vz7H3MkFeTB&gP-WQhmLRNg0_a%ZJ!bvhM`Qdb-IB0P48&Z6{ zgT2w<%xx8D$W6mQP=`ER>M@9Gf0*fpn->u_#gNWvH{_Sy7At@g}VNNG$&)RjP+Zy$? z4+3F>h(IcEop4QCQ#$nqYST?xK|UsFAxTpx;Mvb0*`Q{OPuBS-1HtGu{8Mc#B#iL@ z!0IN&ZW82TI0x}AbRdGsGutB=AtAYK8~<`agjcHINrqukxucMzIra--yCRo1;f_Q| zXVsY)`y1X?!N1*9P>d;WQX!J!8tr~gA}tu;_i~UQsMi1JO^8baQJhi=tnn9UH_baoJ0Eh#;`Rv&K`bnI8!4%b%CtmhY#e z8}rMtZn({ABa7*Dy{1Rt9B7?ykZQdzs-Gl$Mlu|-6C49YKyfLo)K#^an+f+sci0J% z-h)oG{rv*v3W*!_3UK?8U@!1vN4Omf`BrT3HOjJf=PrqkxLcAy(?|9@XoYNBCn$gn zcAs3{%8(a|;QBm-Znd5&ZOB;NI;i0C3u7`6Ti@KR^AERvMWc9XK885nZ(8MP$mk`; z(dAILH-?yT1hPukUXxc4jgv5_-pD&jOs~T5bhr!GBN=ss>o`BSUi-9wYULd(RXKa$ zP@T0G^EtjVDC@BPysidxHb+r4uuXJF@R#y$Vrfs^zS>|p4~Twhw0|8cwI61y7K_>2 z8{INm3FfpPNvfNot-gZ%{7EC;;-l14AEN&;qDn|TUPxelp8`AjL0J*lW-q zhw1^!MOF+&3o(X~R1(gi+I~BGd<%1Ic&}8EGI5@9q;?-NX5^zyD-(pYEuK|V-lOzY zh1}C>m8YY;;Fk3D+-Vz{Y}qShwaShrqJ@_MB7MVd=uMuVu0~~l_fg>Y>e)xmr&)hF57S(s(3Y>K zCvmebq_{M_9OL%u@X{H_x!v%}>O5>wVrRx>5;ly7@f(f}v~<*Hxv}!{dv>`Yv!4xn zi;bLDObBreHM$8%-MR0(_9(v;E}))yW@Bt(o?L>W=+^paU$Efb>k|E`0JF~k)g%+@chLBXgF-ar?i=A z>mluLq)}#cu*~admOoCj`JY6Vd|7NqKl4So7&(TuFk*+Jqr$==K)x~$fZ@}V69pWj z_<1mI;Rs+XF}8Rjjrb`|mxgVw8rqWX;2HXWL9*h)^>Kbg&q8d@55vR#Hp<~I9~NLz zbouxCG=8eV-rpVUg8pLxRpY4gJ&|0>BqNC+fAtzDu^aqX-`V@+8Ma?`o*?)N7ZQUJ zjC;J(-}6!Gr1NlVsK{jLrrF?`Le6fV&)ed)`&7GuqC4(E@ozF!JzFIIHyXOQ$y>QZ zt|bL>DesU7GlY20FQvzGCE*@5<3v|$OBuT<$>W1V zrv$qsvO>`|4km+P{v@%u*9G}-nUMMDxbk~@c)|I+KZ|9JFS<3*W*B`;8V+m+P#T$U-l@65Mj5-7<^U8|*`0o*%&}rX^I^QZ+nlD5kBNzj;?6 zH+_;koYI!(LgB*9(VO&w9yc&7pE|T`XCk9Jy8Y~VuSf_9|11bvtu2fTUYKVp1bb;cM z%lHR-q{~qEs77xWn+Xvt@wM4ENCVl2JhWeZX)oJYnS*ICJ7F%Vzy6?sht648jD(js zP_|nmcatG)8oMCgeqbCwILZx;ee$V@I3SFcWp1UvN1Jymd~Ei(OxV^Aa-5F!=SnjS z`ZC?nlPY%uhMyCb>EfSp(5Zicfs6!mXuEznWmJI{*w2W6n(O>Duvr>3uzI~7)t~4= z<9*=O60>K47CEc&bE}I?n1ViY2Um_fw0jMuyZE}e&T-ZDJ4JRko zxhGH8_Vpk-a)^-!4~Qh%+j61#3*e%U#-%t8>jz{PTO8N3LOz^ij$|d*T~1co1oq6b z;X$g4q@25(w}laCytNJ!qRwMM2DU(|ykC@DKHdyh9dg=+`GEch!Aig4Tk7Rf&idMD(8;S7AYscuR0m=kg;!pSyOewzAYiszT zf-tBk*_DsLeY9nFU-zHH#FBGjnU^VsVRu10n0JGgavOg12!pU>&&pceWUVWXJd1VfZ90J!^GZh?CdwyJ9HuTYDKt+t6;Dok7{AL` z==(n}Mj*Mw(S?nB>G$io!E@+8#19AX4Q?7F=fDBUm-hG`suQy2&coyF^GE)u@+J_@ z*$UM(&hGF;deQ6@V}_tzYKw8UMcSO8$Qof0{`65g&Z@T!)X^#j=e}b!az6OfBReMN z)@Um#ji2R31JLPr!h3o<(S`+mk-%xCq$Go&}k$q_f5=ox6FFeZVcXa0KuY;hK?&& z9tY~^B+IO5UgB?atb4hNz388nh-U}iicU1KCVT%1IoF^InQ!K})Kmyp`JvCYi6I_$ zKFf+oeiitn-(M+w25_RZ)L8?D*^v8ci0WpjObqBT2{dQBibuY&SLfB)bWss11+|qfz8MVq;Ny1<4pS-12gqb*O(Z zOJkBM7g9^JQ@5*OF0GME5RpKP*9aZ0Xn(vadc9n8LK7B8;_Ro0N{LpWxF65%zT7vv zofViWX3Mu=`lNNB021l1A8O-pM$_fqEHyBM!Udm~0Bi3rvmpMQCQtIgag?-Yp+c1G z6P77n$GPJ@q%IV8b1`5+Is$?T7M5;`sZ@K?BFAr}#g@o8#ZP>A3DYfpq<$cbK1Aaj--!NTgpV$KVw}zy zJ+9MW#}npLKnga_nr(H%G#}VU{2Z8|^PG6M&M$Ap)h^jh=aN;~K~qKDn6hHC^`(eTXMMlw;MF z>B~ugFa5hYi1|?B6BNq~5#|F8m1*_Lvqh!pWXu&Vc){^ou0eD??IATm`%zJH7x!yX z=+88dWMC{@a7j`=s3dOFAO+6*ick8nXPfq7RXwTXP-|twFs}VS2afHX#7gWN9H{Cr zt706J!q^YN9v7&hssY0oE*kIuRY#aF&xfOlm~VtecI zI#9&_3ih=1_$6CDkf^A{YgJi*$!2!8h*e;f!NyT?Q_GDYCzl@pCe(!SVM|W_I;n1k zUNgeW{IaV5CXsIl4p?kqFVc=49w8+TRTF((8y<5sO;dHrCdqx2{t2mJg~`PQtUp9s zVunuv!vn-+4dfZgjLoNc5mbn(div;XKBE>;24gGPxolhm?e;96lxatfJkryd$!F~J zcdT>QvKMBc5Ksr6g@&dp_g~o{-ktG%W_wC@9UM&Oq6T*HF<&ecktF&ghd=wP|M)rj zfR2lI#$Va|o1}E)1E7(R%K4iN0^K7gq`jDZIcMqNDvQMI^&y-+%R~rYx0UO`?J@&4 z(ha%lmdsjl3ujUPfsexO8J1-0<}8r=-&i`ym2+W-L6~gxZ z-_R2j6GcXlOY7$Nt=jwOSNC`Em@rbOZz(XRkLnp=|NXs-_i@~J4EGiOTRS{(IixhD zYck#$SKixCt8&yHEh^uJ@&2Oxn=P>)m}2T(6zu4#(fiKm_zH!VVl6Q|f7njYe^6$? zVKq8-_-|-iJ}9je?hGE=aPoQ`c7CjOFp?wg+%o=lr)^Fv9oqnWr_vuaB^(AHbp?o| zM%})0>~xFVG=d&&7VVnwep7b$tj;#WkfmSw-kKh6RT2c&w7vc;n$EdJ+V}XkBtFd) z9l49E8O-;QfG?LwbmZmXlaBVgXk~Bh{u*Mak@Lw~Z+_+eocck0s_7gRuWWN;Wz%e_ zdaq`(cG2@5hAxHhWeF>W2vIk5ENz=7l-x$-+4;9$oKi@AHwO z;-Kq;8ymI1b?o*B%S)q{#&f_TN)>PoHT`%KKh+TOgP;Bwi`dN%#m?OCez>`AUZ&w; z34ey5ce&k~JdTS_5D}2%OxR^V_%c}7B6Hh4GN&IGtOzV0u;-bfwp1|9Pke0-?Cp79 z4px)f;3f)#g7iC9je!Lo7wyOs7)v0YjaRjEq~lCZx&I?+T#S?Ra@-SRyr_QoCo3*m zq~_{+H7+40U0$ZG_djpRM4OP#(J@ZJ{E#V>Oe`(Hls_rPmp}E8iyI$s|IfJ^uptsw zD;TFnyHm%f6BWx6N_#Qp?jy`4`F^%!f4=|pMf%xhtwxHw^NG;T=4*M)k%3+ziGV;3 z9Yb18d>#C6he*>DrQ@J8xqydV|2H^-lg@8v*>#W>#U(AK{~W^*9qtxBmnU3m@*)iR zW~BGHMo1v(J+jYft;)t)pysluxhrpq^2l-vcOZU#{LK~zJkh86a1G&g#u~Yy0cYdJ zgdmcc$%&vk=2ML=u?`)^+(&Sd!KFTij=%WWa}dC3 z!&wT_>X*_kjQ-73%v0X0>)`U6%+%^pr`*-b{cdyNsxb9%e$pk+KW7%sbczh33T`7{pxJa=R`M~1kv(h4~3QMsG|1pwAMy{2PolXJobPRN^s>nd)fnqd{ z){kk7604aM-qH#f3_x4`*6WxIJaTz~{;IwV*jpd-Q7Y&h>FGb=9eBN1=2 zU*!c0Dq-8B)AwJv6sNC-`Rpmjf(Zl+&XH2qPXOhzE)wl;FWr_-A9=_qHca3)LeV+D zaVFk#r~08LONKrbe;y2Mx<6;?Kgj5nLhj+=pban6ZK1Nkxx3Am?YDtbtd*?&o>6WCCP)^>JT1(z8uE&FmAUJ-n{C7Za&t0^tRZwH1PUguu#f` z`*Oh~A|%x!UR-vPADNvnNl^Q^zmRT{HCs4eS6>u=As2~IZ|z1Vechu8X-}Vu`M#qZ z$U1r&!7_rpqnPr3Ev~rnxljfYr%y?Ghu}LE$sM=xNpmrNRMM*?$MO_h%M3+9y3Fy7 zT^=|fsLs%q6(m=1V9N?UV`W!$_rGu;*dvM|K!Bd~x}9H>-2LvLqTUlA=t?FsQ|m8C zFzqvxKw}U$IzAuD%l?VBoN85};552&XJ0i~bB@kBE&|wu-y}1?_GXu@cvv?h!`;xV z##Lw-0>KtOzBwOvL%6y<;u`UyGK}+Mx>>^QS82T5vAp&D|M7el}N$h-w z{yQctz=Jp)9po{N^TlPg`sO&#s)~MqLl4fF%WS_tuB_;daM$?t{a3?$RDtL9VrOKQ zY&El3_;Tb*=J6%%6`^|?-E@KKJZSviclbyvn9kTs+nR#Ls3cU^Pe~?PMc0vv0;`-R zVa>XtNoHx!|9cSN1J4(}zsgAG8XAF3sl+Tsb;P~)I+3IZ-%tH~fU1>SRG5biS|HelH#%BbZ znWYqQP`l0*b|}2ycn<_0p<>un4hybR3%e8Mi^i5F*^h55x;Tjkrx>jP31NIesiep%BwI^fCYt1mjYRYc<7&(;wcu^L3_5MR|@_ zi|sGrjyZj}Z>YPHL=Jal>M75rhfUS@LCgK`RuEQz6Ng{y<*vkXd6)G>fdp-J6t3dgyMLh^fjz{FyZ(+K;}7abbvS6ZI4mjYvCje zhaDW(TF%=iFFRF(JLpB4b|k#PRYY;Vv2cEeq<$-1aMLJJ2kmnzBDDBJlK^Yx^F*d3 zP(d$%3CP9KDF@y4{my>rN=1si3JDnIasJ8>5o0K-K#G1aU4Z%mw5h(dd+izMARz)q zSbznRl)KK!J(U^C&TRt@5o3N@rT@}o+iy@7a93faii-(>jC}=Elbxxi<}NFrc?rEE zoO{zV#V$<`zb;vcrNo7?H*ybUUY#P(r(JHWG& zWix6w4VVDL+4ub8$sE|9fq_$sLNDR~6qX5G3QxB^2Vkez!?6q@rs>}Pepyu3p)dLH z~FbmC0-g;O!$Y$T7E45)$Y;h-+(WtcXK@f%E$z0Jwdr`=Q}>kQG!2 zx*VA`S96C!C6=T6R+hWk?4l|z4t0C7sH!GKOG{g0GK#-cYl#C51vSxnzb5N+WTYKD z5=E8@S#vs5q&ib&ESth*0~A3!d?Aap8trRL$B8v74WQM^b+ip2R`d=J4{HEuX{pVV z51UadsmbYBQa&|B_cw-lBE5#F)A3w9D~!NbDw#Oa8R!u}P3{d?a^uy5C!ou&SZlGW zv57(a3TOmPw0S=5+yU^9in=;36*aZY$mIM~o~-Q1?QLIgFEG{61K{JAA{DBK=TBb> z^+1Yp%dlELLbgZqU+{16&L=Oo`>8lfHEUJsK{irQ>VNd5n5`Iw95FHv8%uZX z-2Nq^TIjx+U9a}Zr^=fGMseX*r$U*3br28K=kac2LlX~2HD8Kc7MpjVx-ytvw`;Vu z+PzvSW1^6JxcwJefL?G_D-NSp6eT+=t4ex1pcZulh$X24a#+26eNz)zV#bev72^O6 z6xbs9KuNqFtc=arm>9}M_tV;Wq!$t%drE<)lj@iWz_1zVZb!75_13>Bvw$j5UO%yW znDuHC)wF*Dz#>MrJp&y$&qwyrG#=H2a7Sio!l*VtT`8dMbhY_gOgDfG4nF+_k9h;c zPS6L|0+9&{fo^w94<5#Xt&g*TE!Y;)3edVHu$U`Jrf>Itdv*L

FK5!0ZMnGa=>q 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 D3a}}fQrkcMm}@-ryr50v#gbA zozj0St`EWg2JAjdfh&Zy*?~1iw=$1r`Y+kK_fipp+P^zhpP$Qvk_9}Je`AUN-0^Cf zZ|e8PIX!86mOx;gagp#yd+E@aYpkNw_)}*ySQp3Q-(#lEdG=NwN92E!^8Uuq3`qRy zKV^#6In{k-+bpao^4*T`rtLCabdPPmse5aGt{5=1!`Okoy^cK}#YWh>hL_}seMvZ# z_rZG!t}Y%*+J)|y(*O0A`?%0{{i=Bc#E-k-6VzG<)2nzBPE zBHhR=#;%~I0fp~`|FqlwLv8I-L)$55swU^uKfdSpdVXZ^z%BN!mw+Q)n0qF1)G|$b zY>#IfVageQZj+Xt8!>v>+N|3wj*&0+Sxc_m?Dk`xHSad1=I~AbH|`cLk|hp4*5(9q z&p)9HmNyC7DQXnWp+_ljZ{l)CNxq+!mHL#f;ObU!ILI8IIC(mC#QQVq@hoe?X#62! zQ@Eflp)gUxj)@RYm_u~w*fTauk+f~lyE}as zG<;ijHOQR2AOo__TFIR47gs)Fq94S2-u7zalgWG<-{k1v=j582ythqHPjD}jV(Ic{P^0>i|Y%Hyl$H7&V zP1DlUdoNK_F4@yogN3 z7@hOCBl>?J5+?+|dg|dG9l_kmZ*mGsu?vwo_9dd;Ha;(oO$6@--&k-ryNd17HF-Yk zqFrh0jwP|<+9X|RI`@wS)Q~SbJtm@#SDXLUJ98$K4rvFx}`_FUV#VKUDb=d|P zX_4YhT?P|3@5jrv8$YHG;dM}r1$Gm1mIN)7IY{Py0*}^sxtEuOd=mS6vw=AWVEOuY zo<^V8w>C&;5*x!|E;~Bc#lL>4{IAbf*+AG`{Y{(W z9}#l|epk7f8@qEvEkV+qX>4iIq^MS1`10Qa&j6C^rz(V)7L`EtT{eI%rr&w|U$K~f z5w~d2`=zQdJL|Inz`eWjr$9lrg}<{uOXLw0{zmlPr<9gCL0C_8XbQH6UH}&sv^2OV z253_r<{jeYPdd+zMTgE6plr6uN;T!#ioal65p6L*6yUyG-}u3}93ql+#rPYnBN4bP zhWG32ydVFiSjwQ4wWF?io^WOLH{F}dMDDx(2EFvXwg9(=sbnr6Ms8i$TO9=)fNXtl z8fivx)24CWj%|ba`ER6GL|gLJxTo5P!@kAUuVr9PkN{_g*2raWI);(hi6m2o&<-%v z==>v|{s+vVLDb^Lo_0BBtx#sYl3{9ozH zme@_|!d1kKomV{ndzJyv9U34=QR7{_cB}l8)m3evRLhW2rFyMA%Q&%;$xQt4D;CWw zUB23GK_x;FHe0Jv9>BzVOxAvW_=V(0riitfKHT@KR7nH$*F>~V3}tMl$``^o%hZ2JhDSKV$2_;+#^(S+&xC2gbh#8L_3=C#MX3S+h1zBkucGn4dm}JLAY3*!w%~uZTrAx#x12r&%OCJ;ldt9SWl+e9}&@ zU)nrkO(>!wL$6H^F%Ivne(!SVDV|H$t;d{>&iX!7enS*0R`LW z&L?QS`)(OWlx!o%3DcC4e1znvVbORW??dGu`r1ve60`0k*|y7Ew$LlHC{f1~j($?O zq!?8$QrES)G#)ac_1^jn$Ku)C$yE?~WR{___XrqiUFgBqsab z48x+qq>*@hlnZu{r^N;MV-3P-S5icH$;Xl6X;sp6e~Vv(zM>!ToR8l z5iztLxNIK916TgJFQ`%ROSNk3D~^rtAZ#a|pZhyyG;e4UCkZvkUkYs~TaxT+J1gp%Ch1E~a_IH!GANlkWFKL)wCOKf8 zWfroBHq(7bHcIiwJRi1++3udYxET9ufCaYRghaT=FYxG~D`s=bb$~#kYw%*LTLHtc zCe2CN6RT?(z=e$$tHSf<%Bsy(s(OGD$GR}~(Z*?6ojtyI-|x{tkUPhdWo#Dg@v(2B5<~_Y^S#?+7@|^d^)txD-E?Yfu4w z^$CFP7yf1ko^EgQ+j~Wu^=uKf0C@CdfUffJMEE(A%&f}ob6RJ2XO6P_68}qG&Hu8joB6e-SlspmSw#2`bZ;$`g-7bL1%jOB zM&jRL6#{g!U;5%)tdVEznPi3acg9jjL3V`mVf2yMqYR|YwF{wGx0Q-yA&Pm;+gV%| z?N*%*<09`r+35vHCTA=2EqY(S|Dm3_eS~vw zj3(~v+xqdx-Sla?5~Yz5?Tw`mhHV!Y7k`PQAu?|W`+6q;m@BqOUv5JfwCYu)qKV!@ z&_yDrN!4T`@qCEILf%A%+hURy5*$j!%d5WZd7%jL2}9yzq5TMWY;!#UoXox(WZDa{ zI3FOi^PY8LGeQNY0v?f(wxmCB_6G+fYLj zI2CDv*h}in_mV?w#RnmTs2jin9bKE|czv>N+@qF1oyDtGeunf*FX_bj=t+8U+bmo4 zkq1@+t={&)cN+lcQR{=q0ck+YQl7(Q6tw|>JahH{Z`%v#UiGy(nOZL2X^sFtS1opk z-~Udq7k4jK&aoy$f>^5sqX$;kLP&8JmCSg2pCC`T8@AIe4^3G7c_w`Ip8+HF0$kt% z_hP0%3WGX1hZajk9PoL|*=-p%t#e#Pv%&tuSAM|%J>>|VFt;WpJE;67}q&A zTQyNt78~mzggWBhzWMt&aNpM7i~P`w$2^RPW%@&>#%%p(N8fV4egSiGkaP{;z;*5vRszU5itu#e+U}DC?sp54$cG_pHH)iVyZ`ItH~z$hnB$S!fYHM_ zHqVk$1ez=&_Ofo-ePBKGdpCdyn@vccqu-$Qf?;u2%w+ic4*^=53CM6$U_m~AZMpwg zEc_(v{qnG~(3t<&`gFZe4WazPCtP3M$e{Y8%@v)A2fW4_u>tifjNu=Ws9Xi0O>LiFqz%-+Wwu2L~1Un1mMo>2Uw z$e(~(_wCmV0XO?u%MNB??K*B~r*NJWJgnh%7&2=^u|J~mstKw|89(J5G7P;*Y)UU< z6B_$NUT*v1H$G`+^y=?iCD)OpQg#KI{Eh<&@LqLL#ZQ7ofo>tfPVa|p|J?6z^d3Z$ z8vWsARTG<>hGU;VK(}7JL2f&CS?Dv+i%15&5Pt3@%l^@+aPDK1n!Bc3{!7yN)z=0# zj|HT<#_nwlzBhWkAnbk8V?5f9k~YKc$T(o1jL-$gW&;YO$`9&f-zp-qDjd%P5R6St z7Z6kY0R_$cBX}6)RVOhlh2YYT(ilThmAdbnIJ`|fig7qfk|{j$y+urX{GIbcrnaXe zn{rKP)K_X;*F8spjiQ@$hKVfztC`GEBg}-P=f4IAB^&Ug$*Ddv7k{IB-N~hjU*Z-W z1^mZagp3IlBJZXuUS@#Eb>!34L-rp4Jb$iq;*wnCE2;Y~*+NPCQV}`abgW6FgP*90 zwm2+RYI~SYf!`Ln`Y85VBpk9ep+dcdt&n#1B^Rs$OoAnp*szo6$Sa8~J{22b3gRe^ zUcr8Ev&QNQ)V4>*rRD!mmqq%ABJ70yfzkI(DfcDv9a4SvvFbZ0cq!Q4>@v01gLt7A zxf_kCfRxs#+jPJPXo?zdb@`glE}P=V7!Ux{2k&zZbee|0m6mdk*Wxls zM>&{KP{N;Rf=Lv}PCYXEMI5~aY!EXug}+~IBw-;Iv1KVIMbY38gpR?9Bq+g>Tc zeyN_M`jtdErTl}kfoJjr;5%;xSLQaX8mbQZxEMQmaZz65bm5Ngpu9%+4-=J8fd+I* z-giqU-lk1E+I-uJ>4#y$BW!mqFV7GDF*WRe3VGv^tGobxzts#cC1PESrcKKf6(eWJ z?)t($=S~g^tBaevmoBlYcviP9^X-t0x8cA9&>V5#u>d51+azPYd_8noa!UE4Fp7UW zp!-Y?v`M5d<+vNt9_x@=X}u9+twyA{4LLam+C3P;E~(*RJd0YkyMEt&oWNM0rCprS zcFA%|6M>SRa%$aO7I^gbxNv%K6@UG;uuw){U;mqS$J9&)9zLdiC+JR(iTQ))pTo8I z0D3qi4%9rA4((79Gy-`oX|3WihiyTV-Ct|tyUkXx7N~X=rLnfg9UnbvrR0;StrmG* zP?=v7b>1EF2PbK8pZ|H1W4s|)?xr35B3JH!Tr!$;W^+6zqz&}A7BAip61h376YR|t zRb`qXT;@HPmLeVfo@yZ1!}v{lhwh*gd)M&YxMR3npLMR8UM-y}B{1od+Mh#NV6)PG z(xu?_%eD%C@e$d%?TUQimw@qrWwD8=PBzM&^$6x#?HBK!5R7#!-}8`4RwKA1X23-w z)P|uTOepN#{1Jj{JIODDooE-lgZq(0uL-QF@L@*DtB{$SN9lkILMXQN>zC&`ADEKn zM_PV4x(X!PbBOVY%Ia{Zm%O!W_@%M=v3~(g)%d*QHz)Y<{5KV}LjVJaCB%mPn87s5 zDH&DsrbqaB%w{H4J%la#0q*P@*#kt)^fCDfDO3}w6C_E94j z_K^_PFj4lH@;PNx>@<$^q~v2luv;x1yKD>iR+vfbZ#mX7RnaFLP>Fw32;_kbpqiiUSC zE2dAwgTKjTe6Zhk1w6pKpl=^8kdmc9uFh&Pr`aO%u z?ol@DUH`8L=w8mice0eP;hsei)Vql(fJ1J+N3N{Mc&CE>T)x>A81WirSL>$jebm!A z1@mKQ0}a2^zLA$hj{E*w58Wim^$tE(Ccg%hC!+Q4ynsf6*vS|_#>3=3?;&u{tnRBT9qlf-VLMR++n%Q@5g1`uk9-O zfDt7+L~CsA`N4Ozg0pd97VVqwXNM{v(PKsoIqMTIv(p;{Ygaf_J>cs4atMR_PC_l> z0M6bx*CPrFym%Q4YmM=k|5^Elm?9aJGzim1$DmQ__%ZPpxf{>9=fy+~m5+3l)c}1p zk|RUOC`Ka?VlsloB||-f2OC`>QbD>CBQrzD40U5r{M=j!ZUmsk%%A`~BxW-yTSKjY zI4o1C<^rqBgPD>0<2ahdYe%$CqUmpgOj^}QkvPnm65J+^j3q2gNdnk%?!>&v`_}jaE;?L}|^&aSSX>IQ8m-ORe_I zSNK>&(L6VDHZ*F^eBD@^ByAYRZi55QOGw**0QDYs2oB2TyeO)E0PU>2ZLw1n?xm# z91F@HjxI_R?_&UzWgLMKQVJ5m_ALRw?wZWa%~wMea*1RQ907dFP*#yx(dbF!c%@w~ zg7noMhcMpmr>OOz8kBK7*$=26KAchtMxpGBIHCkHRGwu!N+hWGlGjIPe|@TqXVq=NjYrPgJ|02)pd6Gfun2i8cyutNF<{oFZtULgWIhs_iN zYLdjlwRWF_cs_Ny&au7EB{faz%;}o0WW4ChR+r~f0nl^63<={6mS@-vSzx0V&0-ZUE`f` z$Tzt$8TjU6sLgkh-6t{Y}vc(r*F} z(I#Q2yPtz;E>W-|K;p8JRZg4O>v;QYBFv~QQ4;gHqEaW6cXmD->%ImkZVpvhWMTp^ z^;~4~T0O%lNx^J)B9SsZPNAXeUqmj-POtNAJ+JKoUL#6&djvumElxChnEl`{fM*}q zk%y&N_Nq`FXc1cq&2JZ!V8(GOM619Y@!E>qA$Ap8H;+tXPmN=Ih~zrj1ksq|xA%2>42S&!^Tar<44 zw0;Zc(az&QC>p?#v)VmlLXK!q|CqeDc{&5@oZ+F3sg4opok zYvka#PkkID@+c%*)d@KDSfXj(qBamOl9D;{F^JIcoDsJ9#oKz<-@t%G4`{{wYe*8rs$lEjcXY+;lh^(2L zYqt9cYZUvfR7pEXWi`u=#O%kdI^|68ig#lL2Q;TtCU^O85_9)37g-lB;${QGfsceV zNFOc+lYnVDk`Vu0$G{AxDYtEB<s}b&a z!t0dw^EOG;w%#24=5RwJkEzmZ$byTq-q@+ zh+#pyd-*uJb)=<{*;ZP&_S>7Gz+JpV#i{g0=ix)Q&7;Pu_ARlTLD)Bb zb$J9DXkyJ{zF!~f?d@{TD+~ll&A&z3G4stx0*|8#N(YX79|*R%GV|VrV2#+CJ9!;R z<#vZUm@GK*9ynh}7OkMi;W$(WXe`MxJOFl4*;h)2n$!qGu&irgGR#<6y98q=$_UrSzlGUfal z^Y*jbbG%RmiN`)gvN-02J1o%B4{JvGTqs{S6#n4xeDz3jG`Y_Le%B>;D zdundSsf3d$m?muv{m?6R0(?=5Rne6C6GJ1h)Qj^COXRVIa6z1Oz_4Y#9FI7TXqt1k zG@@<9@2mhO^TuEhqTyv}{pVkUs+oIZ?JJWbyZ&8@0oG&oGM~-du$|Oe`=SE4JCRAsbn)mA+FCEbRfF2Q&OyYVxIr zd;jw&gcvG~?L03vG8yv=1352=1=$P>_Kh&9%$f6wbiA}vk!UL7QPCMmgbVQvzcnd> zSUt<(L5oNXZh%L}Ta!-wyF-pkOe@*{pgW9|J1hPI$JS$d-w?EWW4+uFMe%+NQ;9aPu zp?PV}#`Ldlt0r*y7*|A9tVyR&5K#A4iEBu4j>8o!f_%48)01urAL{?HWiijG;ei;>iM{+{H`kI3Rf4*As)W@@{|4bkUN7=+wo;7Hw(i z5;jPR@NA*Z;NTu#EyUo?FlN|fdALzsLQ}Bfvzz?8oH!j_N;vVsk6)R_mT9I#K_k%1 zYH|2plf zk?3iTY!$?w_!Idc(l5RbR(`|1+A=d>3E)IF6=@nfeB>L@XTHsFIylZVgps} zPpX`A-r0+uPF03&@xcD;#-!htai~!3ZTXZ?m8Hshw&f(1LW#YUgRx_VAC4wRe@x&l zlpWix;v?a%w1}K61QQy9AoyCLGuofES+qxgpO7OlV z&8oTl1vdd@aVA)UkiJCK4mfk!YeW2Hbc4W%jb^(pF8%aJ(LP%J>m##X!ki&zT{t7{ zkA!Qbx8ZN-*qK*lP}&rw_SQ$b2No=wGtZoYLvv??oCyo_IquOl<#r%0qw@VgNHp7sI0D9>a3Ioc&J@ zlcq3oIdWj8`|VPO_rt+I6oucdG?*#0hIEj&PoZPv(40Hu!5(aJ^>{Kf+qc!>{V8r6 zdm&h*z*?;vKXC`{Ixjm9e1YX8M?hf;x?IaQ!ElH#ff>gCjDVTT59%dH3;>B{MB z4rXEAOvHgg`6z=0KKHB^%dBrSHaB0)7gBp1;M_0Br(3?$Mq|VqKoJTk8xJKnsUggi z`pm#E$(-8GuY(7*h)`-Eg8AGVYl=XF$`AKsOT5knYkn2I`c+FJQD22D_&%H;KI+wD z5h9FaCDQXv;Ceo0@2aRLFTDlr!tHyk9U^W-7gC9M^nh1(bGD@}yF!U62!yL4>xZUR z(s9KonGrzq`{43H9F}XFfYU#kClOCFjJi(VHzsiDSHyG6N>=nt^NinjY-$70K)JP6 z+i>mD1mfi;_s4C>hxQs$;f^E-VO$AzXS<`t4Ocm}gafxdGkwk5aCi+)7-oOQc{`TK zC%2%_4QTx{_dz-+_2)FvwLjmv6F`;7IW%v*1Y?(7F+XYb{5>jvvdSD6Rh zoQ^>p^0@C(N6~ zGR#Dz(88l!2s$zVgR8#SRjqpG+J)pePzJLpZX($@5>)sYyxsV-8R_mpq4h%{^TV}^ zlroC7LShsg6c48JFvutsfB*8_b;|bKE(&|SY+R+tF5o_r5EYfEZfUE?;cw!`Z$3gq z5Zl({Bu)!++U0z}i^^t#NOs_mLY(Q8bdE&-ld5cT4O1oMct<2EbefJKT(#&AaYnML z)}O2}bEjieuq36937?AKC4!Ez2L_xZ6`2l*4jC31*>S%l`7NUH^g-&~ zQXznI{6g?UoT~{kcdT^Ss>t^EllG}T98(B_#7+}*@nZRswZWuD9~&ivJlrA~xo<5h zI;Y=S$nKVZMh)6gJ83MTepp-8PBHkiNIc8W2P4_i6ZLE5_5_Q5dPK!c)uctPT(`0G zbBIU0gXq~n3<7~p9d#Q=V}&#Ms!sl|8fOi9U|)s0!0x}XLlad0MfN7Uv@g%}W6FS- zFO;{Au)B?h)*A$4{HS(oPdh7r#60|A+XA4{g_bqn;2pTvAYu0o61vbB_G-k}^#@?g zc~Vj-3;FY&bMB;UuTchbm4dEHFE8gYDu~S-WPuCiG*+Vic(n@@v@k#bQ!&u~jaq!| zTe{Y8-`LQ$Ao^{{+AdGrZ>y;iInP%<|!O9O7Y#*6P>Z; zH06r4%}ms9bV6FGbOo%ITU9v|-_4Ja5RyN)TH9IJUrp$YZD0f&BMmczg_Al|D)J*e`)+_I1r^t#pqMKS@gB{9v9^F zZT~O(7C=DxX$1SS{UqSaV|t@AeMpqXO`%!MXDn0KUT#ss;XW&aiT@W!dE*(!H2$=2 z->5j?P^5QA);6!Dp2cV^{2o3Z||K*xwIa7L1ag%_w}JdnxKA>Q7wHKU%T4NaI0Zz zd0(LmUSGz|3z%kw=d+Yf{SJGyaBH26{q%Mp@LU&t8bAJNmWmXyvq|<->0ex9M+A*b z@SULbWnFxmQ%WJXrQU>i{m9)!wpT#fF8Y5Xc^Xk7TG%@xBAdP&O}&V1#6N-Tne#OR z-p$Nqwyh4TqR@}I@PefLC$NOJv`anH!T?u6RRiD49>3pZ;}y6 zJi-XI>`Idpai(c&o1LZsc)TlRsV`DwO4hNo52RzFU%h{RR%$+erMAfkXz zvEu`V&z@9_ZuRsbJFc#=(aE6^_Gy}DLKAFhay-u2;@bPS-w!ASMuRbK!X5nVs%D$1 zXO!GD<%QG*r|L~n_`cQ%1_eYPF}xSnq4Qhn-pNPd-wTG>>`qaN{gQ!XG&pzCcVFZI zM~tQG)+?)hG?_2H!Dc_E`0w!xOlvrP^=g@S9GpVE!^y+5;JNR$1ITrr07;V?R#;`$ z&$s8TXPGkSq9hSLKmz!XTGx>8uCMOw?-}9e9m^Xz#$pm~$-mP7btaY&z)~BHBv*0` zeM=wYz=O!TYJ2Q%cY1!2KM1v^m@ zE&k?V0C@zaLx?MEh;nxwb?2P+!x3Oj^FKVt zF^G68H#|vaa9{yGOm6^rJU`Y&52y4{EcojzDi?Xx^_JvAu?AEvKn;dM!R~%B2*-=C z>~fo=@{*Tq17me>#gM)wzUN{N67Ixj(-zKajpS*I0eT!QZTaaOHnvfX+r;M)N%>{v zWD~Ew*aGf!?oZdMzvt4X3XxTvTd)0xo@^#^(=ilU_aEYp6Cok08-3PkF%KEku2y7Y zkM}<~gnKGR=p=*ITCfNgDMS!S2a@5G3i~)A%aKV){*3euT&3irw*SC5L(K zL6ilGTla0ao}5MF)6r8;k5Z}_W6QU@Q`w2pUrCy+r>SUc=F5ZcHhF0(0~0G(n%{TZ zEUVCM9F_;MdE4(f6=CiA|2>xeGo&UVBZJq1_T!kJyOSB^9x67~4DBrXQ$ABu+57kd z`8wylPv+Fm(gtFJpnsrC@G<7@oc9SF;3bix{|~ZP3^C|$O?d4-r=6e090W0AiDgf` zPq0FaPrx!d9zR<5-~JDFNt>dC{%@5VaP30#>*qfV9#EZ03H#mELi;AH7kNee}N=FrMFgC0@zYd}9az1h|H1=tAh}=;D*;)jr)-fro(D zjPK{3^a*Q#{A?4DZ9oFT)l6=XPHOBnq(J=6Wt%%YYOcCVWCGCrqkjzFmun8=k9Bju z*dBOcAN-}5fqI-%6hdk-Rv zQ|=V%Ym5pw{$V@)Tt#wiU8;ZzX=q6P@p}-2<$y$Va9B<&NJSA)y?y((+OP-h4j@4` zePPgIf!F39)hcxu0aCB#0KlJ&W%U4So#*A4wEd_kyzEQ`l`g>ZI(~x~=OC%_8M*;* z9&nL(fRPT8F$|z@@myczV3Ps=*n(Hzcb(9T6`{mHkV)f)F* z06dDA-#HQRxD6)n)Ne#5Oil_4W>=65q%fxdDJ6XXUPiRo#wNTym`3sbt3s8rvYcG} z=B5$E`o%(TtMx+Ov7V#kj}~%6Lj#-R?&vD#dTkB!)dt_eLS3b1%S>}K-(V`Mc&bz+zJ6s$ z3)?6TCdH4P{xDZO#m^rRP&XhaG|ElezFgKT51%1Z=N11>i=LV zHm=xlf`_VlNGxTC+g_e*xiP9Bu8#l5|~Y36I-*e63OI@TUQ?h|96P3zrPEdVI_O9-cO=LOib=N&0s&--W? z$%0bF^vquwnV4u8EY#Z>dU(n(cBWrp)MG0PsOorKP03}EM=Q3NYk2}yu;fRVy>UtK z1P6kW(4CPwU@4?3u3PbLqPnkaxlZ>4@~X~%!=TR^>Nrh(Or8XioT-G^y~iftZ^Q1YNo4zRNw#%sG$r zQA z@(+D+J)l>!{b>cz2l}f1gz1K#sVGo-dbmNiWR}*ecF-f0~a4=XsMa~l`JTI&~bBzLMn6G)+tdrCp zI)0JRXXOHv1uq4|9&1t{I7!fj2}Vt*j>y_Nw1km)C;Fo6mp+2SDv&$&t0^^DEZ6B^ z+Rw700oc+lVLgPZrI3SH>`1o1F)SW3e6%2lX6?Xg$CV)gv2)s!cGe-%NSm$GDjyg< zTHftPK{Owo9)U}Ci{&%Tjc3y0gTpWqEOn}~0Sj{nO)<#|YmCSnh`Nx7Nvj zv;U#ou=CW@33lHSwl18vd6RX#KjZ@XFeC3{i?molO*a)GvW2U*40jS39GWe4Em0LSr~u-X*zA!XNqo za5Ri8(>Vv2euJWZi*!b0@w@Z`8D4~gq(N9N(GUScyA$m!1XR%Gl28H&HJW;3y;AvUoxsFE3uuO5+1GK7r!{N z7$IKhqgCCBnDL z8~~)PA<o9~`!S`7)+`Nk8#x$#U_X?`2}@C>cQCdO z{oU5!7asXL4|B@MIj4B5&p2nmE22lv{{GmrX@Z)@(eJfx$UU@7^^V@~T z08wJ;Te|UB(d*Y(!DLI2w&Z$-g)U zpc!GNp2=v69fWe2V{`xv*?E-;T%HljD(8Jn-jj3iWtU~FyR?cfU>u{L648OG@&O|H zJSi76sb@`@TlF&H;`D3mb69OrO#q#0wM5P?)%KSlVin#)3UczpR|w`9Bgt+HdQ@-y zLcP4b5T?8Jj>a#Wfm`%UZXqgX=aXy{bxvm0d28ig^tN?N+2r!YHnE?U45$`ebEf)f zpqUwz6U=4jeDDWMk$-(mdhG{wW!YQ8wT4r{j~uTykUiKk&QuyUINwS>a!pFGATG4) z6VN$TY8vK{oi?yaN%EQ62?P=y{a!F7i5JODK+L#2q$lO&iW4v;y~_cF99mJ>#R6$y zOZyoxQ$3wx&CO;ZOGaEWct-J-fdyDEMpI`SM;fYPX62IL8TN_heZ+&)P>ZOWgd zk%Nh^D>mq-6=;8Fd{FReMfTt3QuWtJk?^7(EiI7N}+fvl)-SOEaj@X>sQ?pRe-!c|=T8 z-pCz)n;k`2YuuG=OKG#jXtN@Aa{bGJlz`#Iv+bS9OX}1959h4(>J?eyqJ>plt_y$N z8JRzWifoUit*w6+P?B>5cs??DyQeBX%z7@T#@5h^Ok7`WZEC{Zo#X9<^o8xQSuZWG zm%Tf92MbLe8?RF%hP4wnK~lpODU!uzQ-d0Yxxr9EUFXOndwgP_JXw;wK!{(WrCxNV zkukF<^ETAgmo*Go_H|%LpN53PZwDSAnXuugc7dV&?8d+G`ht#h{Q@{Hclm0od7Tfk zUKo7&^!P)iR6nFTtiq}itn1xp(FwT*-MMu=&m{TVBRS^9%k-$%f(&965J*Tqqr`vu z9Po(Q9&mrUNUm-dn9bL2e>hv^%<^ij%Zz?muen5N9U4x-8KvttcJ+XSn7{(YdpH;= zc}A&>qwmmSeD<3%2bj|FP?%20O&I3>%|A1^;ks~+W4Ks8i@^P1hvkASVk#9q^~l~V zbNOPAKw)xZ+S&XL-hqaW>g;qIi(*=0+P9xjmaPT5?KR!uK%K#2+h@i7>F44(g`j6AJ~maWs<4wCks=$&tULmE8X-j3OJ4 z-JKRB_{dY~SZMyDnsSrOFj2SC%@{uz$-sMiIm|Vw@*!Xz_dBjOLBAgb-#}?Y#ul-7 z^~=Sh{& z_x?4_tVzPL65ArY(l`uHJoy@3SG}rvG>->?gClZCPkbCKmxDu!s zTcm~k+BC^zuRg8J*RVXj+lnjP{yc&h4ZR$^#HeBJBu|D`2M&&C2#`mh^-(~2wvlQ?8$+-*e5cV9*YW!S zmc_>o6uE7W4QI5In1Oiyk=&rla|?=gk#Nl3bSE?LS<5M zkv_)n)mNyuAk$3!8?78skPX^t>V;H5Sb<)^nA9foqGmSZxgS|Dk=gEO-k()OX`x z4);$C%AA3zRfh0Zrn`cCx6zifrOrhG`rI_PJTa$zJBh9-*|+*8d+zMGSJ z6)t)egP25E%C!2M(Ah7WFa7&IwC)kntyP};_2LqK#kYGK}U+ry$z5Xul6YU|&cj)qql@`UX2^B+k#6o;268d?09FDS8}aUhcGkhVAO56meh2Zs`<#{356DiCaN`JsR2% zNWw=$uIo&XljLJnlNft=I@nfL={?;2O!Itj$nAX0I`+48h?-K7r#wF9oV)~kzZMds z2K?|(Iy&lE3UwUsid%7rI67K&fmGr{s6IYE;-Us$x4S*)p;Xz;VU&HJ@*&g$TLf75 zA)5r>5cQQrz6ocL#LBGD;GxitNs&ZH3tDccxHS8G7q?UFl(h>m?IQ4lY;Fk)?8dH1GQkU#~zvg_s ze)nwDM$-nFs%&&bVw05`7ymkBDyp%j#aSRbl}lO>*7!h%-dg!bu1%vkuJ}o){`GX% zomt(?PT<5vCh~<*PS~$M{Ylp=B7^%=*(T-1X$Qg|LIE{OVECZqlvSL6gYoSV8E?7k4_|+Y-o)6RD}{1;Tls^4TaiIFFhRfq$$Sm`yCGCU?DJh;t>>h z+6GT%Zw{N)IHq1zD>d*B)fT^y37L8k@7rCKC@7#siM|;XFhEJ(p4Pqa5VGedBRLaW zCriyIApfGVFyt~RmFuYv6+NF9X+RWIJQ^7sMZA#lg`R zE%m;$ygnY}R_{{ok6AG(JD_Vqi>}?gE(2QHD+}EIdiyVkvKhyQm)07JUGn;L!`>D0 zQN*U^y6M;iHc0_o&zie-5yZ0t(WQp_${}G$yAKIMp6mG1NTX%Gjm9lJJX`6rpEdW+ zt%LsRpa}?Yw5X1Zr7`c!fSDY!J7Kc z9+mj?yysyJu3=a$miq%=G+$o5v%@XLTy1U|dpPu7FC6qeM_>ssW-lvW$(;(6_V~_3D9?_#)q2<8BWHY|h>VfO>^4z7aleNUJ zew}uDt6$dhcY*0bLLaN>t8Y(~fc(5NqvuVMDrVj`b`vAddZOjr*$ z1g6FLR;u7XWpyZ4s(n5M=2Og0g*3G`lAR@a!Y~M)JDMv$!O=4O$`_dW^EViyHq;O_ zd5l>5=+ScO+hBUpDx{s^=T@)^5u$nJtn52=KnO*OLg%_?@YwYK!wTT zWUsZ!(A6TwW|C&HHx21jabaiMOZ07^@F268Yf!E&3q01b5I9t;_!vk9wu84d`^p6graZdx83#C&Wn

{-d6*21bqKd< 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 Date: Fri, 28 Oct 2022 13:47:43 -0400 Subject: [PATCH 58/58] update wflow gen img --- .../_static/SRW_regional_workflow_gen.png | Bin 163300 -> 163031 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/UsersGuide/source/_static/SRW_regional_workflow_gen.png b/docs/UsersGuide/source/_static/SRW_regional_workflow_gen.png index 60b3952e3e574951aaa74b261565a4b983f60deb..6f085589ed64cdfb47b1ccf70f772f64eeaf5631 100644 GIT binary patch literal 163031 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

&i(%^Uz~3pBph;jR*i#KgIbZHBHD=k)515sJSs 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�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 DO~F@m literal 163300 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%0D%k%D5-A~2Z!sV{VMGAUQw^Iuyj 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 q