From 51fffd1b9ac69998ebccf77522bd69573aa2a7fa Mon Sep 17 00:00:00 2001 From: gsketefian <31046882+gsketefian@users.noreply.github.com> Date: Wed, 3 Feb 2021 15:17:16 -0700 Subject: [PATCH 01/24] Update hash of regional_workflow to latest (#99) ## DESCRIPTION OF CHANGES: Update hash of regional_workflow to the latest PR (#[421](https://github.com/NOAA-EMC/regional_workflow/pull/421)) in the regional_workflow repo. ## TESTS CONDUCTED: See PR #[421](https://github.com/NOAA-EMC/regional_workflow/pull/421) into regional_workflow. --- Externals.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Externals.cfg b/Externals.cfg index 4d106d9df7..a57e1750b8 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -3,7 +3,7 @@ protocol = git repo_url = https://github.com/NOAA-EMC/regional_workflow # Specify either a branch name or a hash but not both. #branch = develop -hash = 42fd627 +hash = 7acfe74 local_path = regional_workflow required = True From b5f393b9ac31c15bc44f56c0e9592e9cd272dd27 Mon Sep 17 00:00:00 2001 From: gsketefian <31046882+gsketefian@users.noreply.github.com> Date: Tue, 9 Mar 2021 15:26:21 -0700 Subject: [PATCH 02/24] Update hash of regional_workflow (#129) ## DESCRIPTION OF CHANGES: Update hash of regional_workflow to the latest PR (#[450](https://github.com/NOAA-EMC/regional_workflow/pull/450)) in the regional_workflow repo. ## TESTS CONDUCTED: See PR #[450](https://github.com/NOAA-EMC/regional_workflow/pull/450) into regional_workflow. --- Externals.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Externals.cfg b/Externals.cfg index a57e1750b8..6c48ce1bef 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -3,7 +3,7 @@ protocol = git repo_url = https://github.com/NOAA-EMC/regional_workflow # Specify either a branch name or a hash but not both. #branch = develop -hash = 7acfe74 +hash = 3586e11 local_path = regional_workflow required = True From a900134f69a1c7f563e4537e10676c8fbb927a5f Mon Sep 17 00:00:00 2001 From: Jamie Wolff Date: Fri, 19 Mar 2021 13:44:06 +0000 Subject: [PATCH 03/24] Pulling over license and readme from release branch. Updated readme to be less v1.0.0 specific. --- LICENSE.md | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++- README.md | 11 ++++++++--- 2 files changed, 58 insertions(+), 4 deletions(-) diff --git a/LICENSE.md b/LICENSE.md index cc3e074850..f1708cb644 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1 +1,50 @@ -# License +## Overview + +This project includes a mix of the following: + +- Open source works that are not in the public domain + +- Open source works by the U.S. Government that is in the public domain + +## Parts of this project that are not in the public domain + +This project utilizes the following unmodified works under various licenses, as shown below. + +- Atmos cube sphere dycore: [GNU Lesser General Public License 3.0](https://www.gnu.org/licenses/lgpl-3.0.en.html) (LGPL) + +- FV3 Atm: [GNU Lesser General Public License 3.0](https://www.gnu.org/licenses/lgpl-3.0.en.html) (LGPL) + +- NEMS: [GNU Lesser General Public License 3.0](https://www.gnu.org/licenses/lgpl-3.0.en.html) (LGPL) + +- FMS: [GNU Lesser General Public License 3.0](https://www.gnu.org/licenses/lgpl-3.0.en.html) (LGPL) + +- Stochastic Physics: [GNU Lesser General Public License 3.0](https://www.gnu.org/licenses/lgpl-3.0.en.html) (LGPL) + +- CCPP Physics: [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) + +- CCPP Framework: [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) + +- UPP: [GNU Lesser General Public License 3.0](https://www.gnu.org/licenses/lgpl-3.0.en.html) (LGPL) + +- UFS Utils: [GNU Lesser General Public License 3.0](https://www.gnu.org/licenses/lgpl-3.0.en.html) (LGPL) + +- Regional Workflow: [CC0 1.0 Universal public domain dedication (CC0)](https://creativecommons.org/publicdomain/zero/1.0) + +## The rest of this project is in the worldwide public domain + +As a work of the United States Government, this project is in the public domain within the United States. Additionally, NOAA waives copyright and related rights in the work worldwide through the [CC0 1.0 Universal public domain dedication](https://creativecommons.org/publicdomain/zero/1.0/). + +## CC0 1.0 Universal Summary + +This is a human-readable summary of the [Legal Code (read the full text)](https://creativecommons.org/publicdomain/zero/1.0/legalcode). + +## No copyright + +The person who associated a work with this deed has dedicated the work to the public domain by waiving all of his or her rights to the work worldwide under copyright law, including all related and neighboring rights, to the extent allowed by law. You can copy, modify, distribute and perform the work, even for commercial purposes, all without asking permission. + +## Other information +In no way are the patent or trademark rights of any person affected by CC0, nor are the rights that other persons may have in the work or in how the work is used, such as publicity or privacy rights. Unless expressly stated otherwise, the person who associated a work with this deed makes no warranties about the work, and disclaims liability for all uses of the work, to the fullest extent permitted by applicable law. When using or citing the work, you should not imply endorsement by the author or the affirmer. + +## Contributions to this project +All contributions to this project will be released under the CC0 dedication. By submitting a pull request, you are agreeing to comply with this waiver of copyright interest. + diff --git a/README.md b/README.md index 3758acafff..7eb717cd9f 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,13 @@ # UFS Short-Range Weather Application -The UFS Short-Range Weather Application (UFS SR Wx App) provides an end-to-end system to run -pre-processing tasks, the regional UFS Weather Model, and the Unified Post Processor (UPP). +The Unified Forecast System (UFS) is a community-based, coupled, comprehensive Earth modeling system. It is designed to be the source system for NOAA’s operational numerical weather prediction applications while enabling research, development, and contribution opportunities for the broader weather enterprise. For more information about the UFS, visit the UFS Portal at https://ufscommunity.org/. -For the most up-to-date instructions on how to clone the repository, build the code, and run the workflow, see: +The UFS can be configured for multiple applications (see a complete list at https://ufscommunity.org/#/science/aboutapps). The configuration described here is the UFS Short-Range Weather (SRW) Application, which targets predictions of atmospheric behavior on a limited spatial domain and on time scales from less than an hour out to several days. The development branch of the application is continually evolving as the system undergoes open development. The SRW App v1.0.0 represents a snapshot of this continuously evolving system. The SRW App includes a prognostic atmospheric model, pre- and post-processing, and a community workflow for running the system end-to-end. +The UFS SRW App User's Guide associated with the development branch is at: https://ufs-srweather-app.readthedocs.io/en/latest/, while that specific to the SRW App v1.0.0 release can be found at: https://ufs-srweather-app.readthedocs.io/en/ufs-v1.0.0/. The repository is at: https://github.com/ufs-community/ufs-srweather-app. + +For instructions on how to clone the repository, build the code, and run the workflow, see: https://github.com/ufs-community/ufs-srweather-app/wiki/Getting-Started + +UFS Development Team. (2021, March 4). Unified Forecast System (UFS) Short-Range Weather (SRW) Application (Version v1.0.0). Zenodo. https://doi.org/10.5281/zenodo.4534994 + From 6e179b61ee37544b934f4bfa0537f449cbf32b68 Mon Sep 17 00:00:00 2001 From: Michael Kavulich Date: Wed, 7 Apr 2021 15:36:30 -0600 Subject: [PATCH 04/24] [master] Updating documentation from release branch with some minor fixes, add Cheyenne workflow file (#130) * Bring over documentation from release branch * Bring over cheyenne workflow file from release branch * Users guide spelling fixes from Jamie * A few more spelling fixes, capitalization consistency in Users Guide * Fix some merge weirdness in docs/INSTALL * Remove SystemRequirements.rst which is no longer needed (incorporated into another chapter) --- docs/UsersGuide/requirements.txt | 3 +- docs/UsersGuide/source/CodeReposAndDirs.rst | 261 +++++++ docs/UsersGuide/source/ConfigNewPlatform.rst | 388 ++++++++++ docs/UsersGuide/source/ConfigParameters.inc | 338 +++++++++ docs/UsersGuide/source/ConfigWorkflow.rst | 244 ++++++ docs/UsersGuide/source/FAQ.rst | 90 ++- docs/UsersGuide/source/Glossary.rst | 60 +- docs/UsersGuide/source/Graphics.rst | 255 +++++++ docs/UsersGuide/source/InputOutputFiles.rst | 416 ++++++++++ docs/UsersGuide/source/Introduction.rst | 246 +++++- docs/UsersGuide/source/LAMGrids.rst | 248 ++++++ docs/UsersGuide/source/Quickstart.rst | 346 +++++++-- docs/UsersGuide/source/RocotoInfo.rst | 233 ++++++ docs/UsersGuide/source/SRWAppOverview.rst | 710 ++++++++++++++++++ docs/UsersGuide/source/SystemRequirements.rst | 41 - docs/UsersGuide/source/WE2Etests.rst | 122 +++ .../source/_static/FV3LAM_wflow_flowchart.png | Bin 0 -> 56074 bytes .../_static/FV3LAM_wflow_input_path.png | Bin 0 -> 64507 bytes .../source/_static/FV3LAM_wflow_overall.png | Bin 0 -> 52544 bytes .../_static/FV3regional_workflow_gen.png | Bin 0 -> 81430 bytes .../RRFS_CONUS_13km.sphr.native_wrtcmp.png | Bin 0 -> 104826 bytes .../RRFS_CONUS_25km.sphr.native_wrtcmp.png | Bin 0 -> 103357 bytes .../RRFS_CONUS_3km.sphr.native_wrtcmp.png | Bin 0 -> 104950 bytes .../source/_static/theme_overrides.css | 13 + docs/UsersGuide/source/conf.py | 14 +- docs/UsersGuide/source/index.rst | 10 +- docs/UsersGuide/source/references.bib | 6 + env/wflow_cheyenne.env | 6 + 28 files changed, 3920 insertions(+), 130 deletions(-) create mode 100644 docs/UsersGuide/source/CodeReposAndDirs.rst create mode 100644 docs/UsersGuide/source/ConfigNewPlatform.rst create mode 100644 docs/UsersGuide/source/ConfigParameters.inc create mode 100644 docs/UsersGuide/source/ConfigWorkflow.rst create mode 100644 docs/UsersGuide/source/Graphics.rst create mode 100644 docs/UsersGuide/source/InputOutputFiles.rst create mode 100644 docs/UsersGuide/source/LAMGrids.rst create mode 100644 docs/UsersGuide/source/RocotoInfo.rst create mode 100644 docs/UsersGuide/source/SRWAppOverview.rst delete mode 100644 docs/UsersGuide/source/SystemRequirements.rst create mode 100644 docs/UsersGuide/source/WE2Etests.rst create mode 100644 docs/UsersGuide/source/_static/FV3LAM_wflow_flowchart.png create mode 100644 docs/UsersGuide/source/_static/FV3LAM_wflow_input_path.png create mode 100644 docs/UsersGuide/source/_static/FV3LAM_wflow_overall.png create mode 100644 docs/UsersGuide/source/_static/FV3regional_workflow_gen.png create mode 100644 docs/UsersGuide/source/_static/RRFS_CONUS_13km.sphr.native_wrtcmp.png create mode 100644 docs/UsersGuide/source/_static/RRFS_CONUS_25km.sphr.native_wrtcmp.png create mode 100644 docs/UsersGuide/source/_static/RRFS_CONUS_3km.sphr.native_wrtcmp.png create mode 100644 docs/UsersGuide/source/_static/theme_overrides.css create mode 100644 docs/UsersGuide/source/references.bib create mode 100644 env/wflow_cheyenne.env diff --git a/docs/UsersGuide/requirements.txt b/docs/UsersGuide/requirements.txt index a18fe44524..9c7258463b 100644 --- a/docs/UsersGuide/requirements.txt +++ b/docs/UsersGuide/requirements.txt @@ -1 +1,2 @@ -sphinxcontrib-bibtex<2.0.0 +sphinxcontrib-bibtex +sphinx_rtd_theme diff --git a/docs/UsersGuide/source/CodeReposAndDirs.rst b/docs/UsersGuide/source/CodeReposAndDirs.rst new file mode 100644 index 0000000000..c5f429b0c5 --- /dev/null +++ b/docs/UsersGuide/source/CodeReposAndDirs.rst @@ -0,0 +1,261 @@ +.. _CodeReposAndDirs: + +========================================= +Code Repositories and Directory Structure +========================================= +This chapter describes the code repositories that comprise the UFS SRW Application, +without describing any of the components in detail. + +.. _HierarchicalRepoStr: + +Hierarchical Repository Structure +================================= +The umbrella repository for the UFS SRW Application is named ufs-srweather-app and is +available on GitHub at https://github.com/ufs-community/ufs-srweather-app. An umbrella +repository is defined as a repository that houses external code, called "externals," from +additional repositories. The UFS SRW Application includes the ``manage_externals`` tools +along with a configuration file called ``Externals.cfg``, which describes the external +repositories associated with this umbrella repo (see :numref:`Table %s `). + +.. _top_level_repos: + +.. table:: List of top-level repositories that comprise the UFS SRW Application. + + +---------------------------------+---------------------------------------------------------+ + | **Repository Description** | **Authoritative repository URL** | + +=================================+=========================================================+ + | Umbrella repository for the UFS | https://github.com/ufs-community/ufs-srweather-app | + | Short-Range Weather Application | | + +---------------------------------+---------------------------------------------------------+ + | Repository for | https://github.com/ufs-community/ufs-weather-model | + | the UFS Weather Model | | + +---------------------------------+---------------------------------------------------------+ + | Repository for the regional | https://github.com/NOAA-EMC/regional_workflow | + | workflow | | + +---------------------------------+---------------------------------------------------------+ + | Repository for UFS utilities, | https://github.com/NOAA-EMC/UFS_UTILS | + | including pre-processing, | | + | chgres_cube, and more | | + +---------------------------------+---------------------------------------------------------+ + | Repository for the Unified Post | https://github.com/NOAA-EMC/EMC_post | + | Processor (UPP) | | + +---------------------------------+---------------------------------------------------------+ + +The UFS Weather Model contains a number of sub-repositories used by the model as +documented `here `_. + +Note that the prerequisite libraries (including NCEP Libraries and external libraries) are not +included in the UFS SRW Application repository. The source code for these components resides in +the repositories `NCEPLIBS `_ and `NCEPLIBS-external +`_. + +These external components are already built on the preconfigured platforms listed `here +`_. +However, they must be cloned and built on other platforms according to the instructions provided +in the wiki pages of those repositories: https://github.com/NOAA-EMC/NCEPLIBS/wiki and +https://github.com/NOAA-EMC/NCEPLIBS-external/wiki. + +.. _TopLevelDirStructure: + +Directory Structure +=================== +The directory structure for the SRW Application is determined by the ``local_path`` settings in +the ``Externals.cfg`` file, which is in the directory where the umbrella repository has +been cloned. After ``manage_externals/checkout_externals`` is run, the specific GitHub repositories +that are described in :numref:`Table %s ` are cloned into the target +subdirectories shown below. The directories that will be created later by running the +scripts are presented in parentheses. Some directories have been removed for brevity. + +.. code-block:: console + + ufs-srweather-app + ├── (bin) + ├── (build) + ├── docs + │ └── UsersGuide + ├── (include) + ├── (lib) + ├── manage_externals + ├── regional_workflow + │ ├── docs + │ │ └── UsersGuide + │ ├── (fix) + │ ├── jobs + │ ├── modulefiles + │ ├── scripts + │ ├── tests + │ │ └── baseline_configs + │ └── ush + │ ├── Python + │ ├── rocoto + │ ├── templates + │ └── wrappers + ├── (share) + └── src + ├── EMC_post + │ ├── parm + │ └── sorc + │ └── ncep_post.fd + ├── UFS_UTILS + │ ├── sorc + │ │ ├── chgres_cube.fd + │ │ ├── fre-nctools.fd + | │ ├── grid_tools.fd + │ │ ├── orog_mask_tools.fd + │ │ └── sfc_climo_gen.fd + │ └── ush + └── ufs_weather_model + └── FV3 + ├── atmos_cubed_sphere + └── ccpp + +Regional Workflow Sub-Directories +--------------------------------- +Under the ``regional_workflow`` directory shown in :numref:`TopLevelDirStructure` there are +a number of sub-directories that are created when the regional workflow is cloned. The +contents of these sub-directories are described in :numref:`Table %s `. + +.. _Subdirectories: + +.. table:: Sub-directories of the regional workflow. + + +-------------------------+---------------------------------------------------------+ + | **Directory Name** | **Description** | + +=========================+=========================================================+ + | docs | Users' Guide Documentation | + +-------------------------+---------------------------------------------------------+ + | jobs | J-job scripts launched by Rocoto | + +-------------------------+---------------------------------------------------------+ + | modulefiles | Files used to load modules needed for building and | + | | running the workflow | + +-------------------------+---------------------------------------------------------+ + | scripts | Run scripts launched by the J-jobs | + +-------------------------+---------------------------------------------------------+ + | tests | Baseline experiment configuration | + +-------------------------+---------------------------------------------------------+ + | ush | Utility scripts used by the workflow | + +-------------------------+---------------------------------------------------------+ + +.. _ExperimentDirSection: + +Experiment Directory Structure +============================== +When the ``generate_FV3LAM_wflow.sh`` script is run, the user-defined experimental directory +``EXPTDIR=/path-to/ufs-srweather-app/../expt_dirs/${EXPT_SUBDIR}`` is created, where ``EXPT_SUBDIR`` +is specified in the ``config.sh`` file. The contents of the ``EXPTDIR`` directory, before the +workflow is run, is shown in :numref:`Table %s `. + +.. _ExptDirStructure: + +.. table:: Files and sub-directory initially created in the experimental directory. + :widths: 33 67 + + +---------------------------+-------------------------------------------------------------------------------------------------------+ + | **File Name** | **Description** | + +===========================+=======================================================================================================+ + | config.sh | User-specified configuration file, see :numref:`Section %s ` | + +---------------------------+-------------------------------------------------------------------------------------------------------+ + | data_table | Cycle-independent input file (empty) | + +---------------------------+-------------------------------------------------------------------------------------------------------+ + | field_table | Tracers in the `forecast model | + | | `_ | + +---------------------------+-------------------------------------------------------------------------------------------------------+ + | FV3LAM_wflow.xml | Rocoto XML file to run the workflow | + +---------------------------+-------------------------------------------------------------------------------------------------------+ + | input.nml | Namelist for the `UFS Weather model | + | | `_ | + +---------------------------+-------------------------------------------------------------------------------------------------------+ + | launch_FV3LAM_wflow.sh | Symlink to the shell script of | + | | ``ufs-srweather-app/regional_workflow/ush/launch_FV3LAM_wflow.sh`` | + | | that 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`` | + +---------------------------+-------------------------------------------------------------------------------------------------------+ + | nems.configure | See `NEMS configuration file | + | | `_ | + +---------------------------+-------------------------------------------------------------------------------------------------------+ + | suite_{CCPP}.xml | CCPP suite definition file used by the forecast model | + +---------------------------+-------------------------------------------------------------------------------------------------------+ + | var_defns.sh | Shell script defining the experiment parameters. It contains all | + | | of the primary parameters specified in the default and | + | | user-specified configuration files plus many secondary parameters | + | | that are derived from the primary ones by the experiment | + | | generation script. This file is sourced by various other scripts | + | | in order to make all the experiment variables available to these | + | | scripts. | + +---------------------------+-------------------------------------------------------------------------------------------------------+ + | YYYYMMDDHH | Cycle directory (empty) | + +---------------------------+-------------------------------------------------------------------------------------------------------+ + +In addition, the *community* mode creates the ``fix_am`` and ``fix_lam`` directories in ``EXPTDIR``. +The ``fix_lam`` directory is initially empty but will contain some *fix* (time-independent) files +after the grid, orography, and/or surface climatology generation tasks are run. + +.. _FixDirectories: + +.. table:: Description of the fix directories + + +-------------------------+----------------------------------------------------------+ + | **Directory Name** | **Description** | + +=========================+==========================================================+ + | fix_am | Directory containing the global `fix` (time-independent) | + | | data files. The experiment generation script copies | + | | these files from a machine-dependent system directory. | + +-------------------------+----------------------------------------------------------+ + | fix_lam | Directory containing the regional fix (time-independent) | + | | data files that describe the regional grid, orography, | + | | and various surface climatology fields as well as | + | | symlinks to pre-generated files. | + +-------------------------+----------------------------------------------------------+ + +Once the workflow is launched with the ``launch_FV3LAM_wflow.sh`` script, a log file named +``log.launch_FV3LAM_wflow`` will be created (or appended to it if it already exists) in ``EXPTDIR``. +Once the ``make_grid``, ``make_orog``, and ``make_sfc_climo`` tasks and the ``get_extrn_ics`` +and ``get_extrn_lbc`` tasks for the YYYYMMDDHH cycle have completed successfully, new files and +sub-directories are created, as described in :numref:`Table %s `. + +.. _CreatedByWorkflow: + +.. table:: New directories and files created when the workflow is launched. + :widths: 30 70 + + +---------------------------+--------------------------------------------------------------------+ + | **Directory/file Name** | **Description** | + +===========================+====================================================================+ + | YYYYMMDDHH | This is updated when the first cycle-specific workflow tasks are | + | | run, which are ``get_extrn_ics`` and ``get_extrn_lbcs`` (they are | + | | launched simultaneously for each cycle in the experiment). We | + | | refer to this as a “cycle directory”. Cycle directories are | + | | created to contain cycle-specific files for each cycle that the | + | | experiment runs. If ``DATE_FIRST_CYCL`` and ``DATE_LAST_CYCL`` | + | | were different, and/or ``CYCL_HRS`` contained more than one | + | | element in the ``config.sh`` file, then more than one cycle | + | | directory would be created under the experiment directory. | + +---------------------------+--------------------------------------------------------------------+ + | grid | Directory generated by the ``make_grid`` task containing grid | + | | files for the experiment | + +---------------------------+--------------------------------------------------------------------+ + | log | Contains log files generated by the overall workflow and its | + | | various tasks. Look in these files to trace why a task may have | + | | failed. | + +---------------------------+--------------------------------------------------------------------+ + | orog | Directory generated by the ``make_orog`` task containing the | + | | orography files for the experiment | + +---------------------------+--------------------------------------------------------------------+ + | sfc_climo | Directory generated by the ``make_sfc_climo`` task containing the | + | | surface climatology files for the experiment | + +---------------------------+--------------------------------------------------------------------+ + | FV3LAM_wflow.db | Database files that are generated when Rocoto is called (by the | + | FV3LAM_wflow_lock.db | launch script) to launch the workflow. | + +---------------------------+--------------------------------------------------------------------+ + | log.launch_FV3LAM_wflow | This is the log file to which the launch script | + | | ``launch_FV3LAM_wflow.sh`` appends its output each time it is | + | | called. Take a look at the last 30–50 lines of this file to check | + | | the status of the workflow. | + +---------------------------+--------------------------------------------------------------------+ + +The output files for an experiment are described in :numref:`Section %s `. +The workflow tasks are described in :numref:`Section %s `). diff --git a/docs/UsersGuide/source/ConfigNewPlatform.rst b/docs/UsersGuide/source/ConfigNewPlatform.rst new file mode 100644 index 0000000000..d4dc5d4149 --- /dev/null +++ b/docs/UsersGuide/source/ConfigNewPlatform.rst @@ -0,0 +1,388 @@ +.. _ConfigNewPlatform: + +========================== +Configuring a New Platform +========================== + +The UFS SRW Application has been designed to work primarily on a number of Level 1 and 2 support platforms, as specified `here `_. However, it is also designed with flexibility in mind, so that any sufficiently up-to-date machine with a UNIX-based operating system should be capable of running the application. A full list of prerequisites for installing the UFS SRW App and running the Graduate Student Test can be found in :numref:`Section %s `. + +The first step to installing on a new machine is to install :term:`NCEPLIBS` (https://github.com/NOAA-EMC/NCEPLIBS), the NCEP libraries package, which is a set of libraries created and maintained by NCEP and EMC that are used in many parts of the UFS. NCEPLIBS comes with a large number of prerequisites (see :numref:`Section %s ` for more info), but the only required software prior to starting the installation process are as follows: + +* Fortran compiler with support for Fortran 2003 + + * gfortran v9+ or ifort v18+ are the only ones tested, but others may work. + +* C and C++ compilers compatible with the Fortran compiler + + * gcc v9+, ifort v18+, and clang v9+ (macOS, native Apple clang or LLVM clang) have been tested + +* Python v3.6+ + + * Prerequisite packages must be downloaded: jinja2, yaml and f90nml, as well as a number of additional Python modules (see :numref:`Section %s `) if the user would like to use the provided graphics scripts + +* Perl 5 + +* git v1.8+ + +* CMake v3.12+ + + * CMake v3.15+ is needed for building NCEPLIBS, but versions as old as 3.12 can be used to build NCEPLIBS-external, which contains a newer CMake that can be used for the rest of the build. + +For both Linux and macOS, you will need to set the stack size to "unlimited" (if allowed) or the largest possible value. + +.. code-block:: console + + # Linux, if allowed + ulimit -s unlimited + + # macOS, this corresponds to 65MB + ulimit -S -s unlimited + +For Linux systems, as long as the above software is available, you can move on to the next step: installing the :term:`NCEPLIBS-external` package. + +For macOS systems, some extra software is needed: ``wget``, ``coreutils``, ``pkg-config``, and ``gnu-sed``. +It is recommended that you install this software using the Homebrew package manager for macOS (https://brew.sh/): + +* brew install wget + +* brew install cmake + +* brew install coreutils + +* brew install pkg-config + +* brew install gnu-sed + +However, it is also possible to install these utilities via Macports (https://www.macports.org/), or installing each utility individually (not recommended). + +Installing NCEPLIBS-external +============================ +In order to facilitate the installation of NCEPLIBS (and therefore, the SRW and other UFS applications) on new platforms, EMC maintains a one-stop package containing most of the prerequisite libraries and software necessary for installing NCEPLIBS. This package is known as NCEPLIBS-external, and is maintained in a git repository at https://github.com/NOAA-EMC/NCEPLIBS-external. Instructions for installing these will depend on your platform, but generally so long as all the above-mentioned prerequisites have been installed you can follow the proceeding instructions verbatim (in bash; a csh-based shell will require different commands). Some examples for installing on specific platforms can be found in the `NCEPLIBS-external/doc directory `. + + +These instructions will install the NCEPLIBS-external in the current directory tree, so be sure you are in the desired location before starting. + +.. code-block:: console + + export WORKDIR=`pwd` + export INSTALL_PREFIX=${WORKDIR}/NCEPLIBS-ufs-v2.0.0/ + export CC=gcc + export FC=gfortran + export CXX=g++ + +The CC, CXX, and FC variables should specify the C, C++, and Fortran compilers you will be using, respectively. They can be the full path to the compiler if necessary (for example, on a machine with multiple versions of the same compiler). It will be important that all libraries and utilities are built with the same set of compilers, so it is best to set these variables once at the beginning of the process and not modify them again. + +.. code-block:: console + + mkdir -p ${INSTALL_PREFIX}/src && cd ${INSTALL_PREFIX}/src + git clone -b release/public-v2 --recursive https://github.com/NOAA-EMC/NCEPLIBS-external + cd NCEPLIBS-external + mkdir build && cd build + cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} .. 2>&1 | tee log.cmake + make -j4 2>&1 | tee log.make + +The previous commands go through the process of cloning the git repository for NCEPLIBS-external, creating and entering a build directory, and invoking cmake and make to build the code/libraries. The ``make`` step will take a while; as many as a few hours depending on your machine and various settings. It is highly recommended you use at least 4 parallel make processes to prevent overly long installation times. The ``-j4`` option in the make command specifies 4 parallel make processes, ``-j8`` would specify 8 parallel processes, while omitting the flag all together will run make serially (not recommended). + +If you would rather use a different version of one or more of the software packages included in NCEPLIBS-external, you can skip building individual parts of the package by including the proper flags in your call to cmake. For example: + +.. code-block:: console + + cmake -DBUILD_MPI=OFF -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} .. 2>&1 | tee log.cmake + +will skip the building of MPICH that comes with NCEPLIBS-external. See the readme file ``NCEPLIBS-external/README.md`` for more information on these flags, or for general troubleshooting. + +Once NCEPLIBS-external is installed, you can move on to installing NCEPLIBS. + +Installing NCEPLIBS +=================== +Prior to building the UFS SRW Application on a new machine, you will need to install NCEPLIBS. Installation instructions will again depend on your platform, but so long as NCEPLIBS-external has been installed successfully you should be able to build NCEPLIBS. The following instructions will install the NCEPLIBS in the same directory tree as was used for NCEPLIBS-external above, so if you did not install NCEPLIBS-external in the same way, you will need to modify these commands. + +.. code-block:: console + + cd ${INSTALL_PREFIX}/src + git clone -b release/public-v2 --recursive https://github.com/NOAA-EMC/NCEPLIBS + cd NCEPLIBS + mkdir build && cd build + export ESMFMKFILE=${INSTALL_PREFIX}/lib/esmf.mk + cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} -DCMAKE_PREFIX_PATH=${INSTALL_PREFIX} -DOPENMP=ON .. 2>&1 | tee log.cmake + make -j4 2>&1 | tee log.make + make deploy 2>&1 | tee log.deploy + +As with NCEPLIBS-external, the above commands go through the process of cloning the git repository for NCEPLIBS, creating and entering a build directory, and invoking cmake and make to build the code. The ``make deploy`` step created a number of modulefiles and scripts that will be used for setting up the build environment for the UFS SRW App. The ``ESMFMKFILE`` variable allows NCEPLIBS to find the location where ESMF has been built; if you receive a ``ESMF not found, abort`` error, you may need to specify a slightly different location: + +.. code-block:: console + + export ESMFMKFILE=${INSTALL_PREFIX}/lib64/esmf.mk + +Then delete and re-create the build directory and continue the build process as described above. + +If you skipped the building of any of the software provided by NCEPLIBS-external, you may need to add the appropriate locations to your ``CMAKE_PREFIX_PATH`` variable. Multiple directories may be added, separated by semicolons (;) like in the following example: + +.. code-block:: console + + cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} -DCMAKE_PREFIX_PATH=”${INSTALL_PREFIX};/location/of/other/software” -DOPENMP=ON .. 2>&1 | tee log.cmake + +Further information on including prerequisite libraries, as well as other helpful tips, can be found in the ``NCEPLIBS/README.md`` file. + +Once the NCEPLIBS package has been successfully installed, you can move on to building the UFS SRW Application. + +Building the UFS Short-Range Weather Application (UFS SRW App) +============================================================== +Building the UFS SRW App is similar to building NCEPLIBS, in that the code is stored in a git repository and is built using CMake software. The first step is to retrieve the code from GitHub, using the variables defined earlier: + +.. code-block:: console + + cd ${WORKDIR} + git clone -b release/public-v1 https://github.com/ufs-community/ufs-srweather-app.git + cd ufs-srweather-app/ + ./manage_externals/checkout_externals + +Here the procedure differs a bit from NCEPLIBS and NCEPLIBS-external. The UFS SRW App is maintained using an umbrella git repository that collects the individual components of the application from their individual, independent git repositories. This is handled using "Manage Externals" software, which is included in the application; this is the final step listed above, which should output a bunch of dialogue indicating that it is retrieving different code repositories as described in :numref:`Table %s `. It may take several minutes to download these repositories. + +Once the Manage Externals step has completed, you will need to make sure your environment is set up so that the UFS SRW App can find all of the prerequisite software and libraries. There are a few ways to do this, the simplest of which is to load a modulefile if your machine supports Lua Modules: + +.. code-block:: console + + module use ${INSTALL_PREFIX}/modules + module load NCEPLIBS/2.0.0 + +If your machine does not support Lua but rather TCL modules, see instructions in the ``NCEPLIBS/README.md`` file for converting to TCL modulefiles. + +If your machine does not support modulefiles, you can instead source the provided bash script for setting up the environment: + +.. code-block:: console + + source ${INSTALL_PREFIX}/bin/setenv_nceplibs.sh + +This script, just like the modulefiles, will set a number of environment variables that will allow CMake to easily find all the libraries that were just built. There is also a csh version of the script in the same directory if your shell is csh-based. If you are using your machine’s pre-built version of any of the NCEP libraries (not recommended), reference that file to see which variables should be set to point CMake in the right direction. + +At this point there are just a few more variables that need to be set prior to building: + +.. code-block:: console + + export CMAKE_C_COMPILER=mpicc + export CMAKE_CXX_COMPILER=mpicxx + export CMAKE_Fortran_COMPILER=mpifort + +If you are using your machine’s built-in MPI compilers, it is recommended you set the ``CMAKE_*_COMPILER`` flags to full paths to ensure that the correct MPI aliases are used. Finally, one last environment variable, ``CMAKE_Platform``, must be set. This will depend on your machine; for example, on a macOS operating system with GNU compilers: + +.. code-block:: console + + export CMAKE_Platform=macosx.gnu + +This is the variable used by the weather model to set a few additional flags based on your machine. The available options can be found `here `_. + +Now all the prerequisites have been installed and variables set, so you should be ready to build the model! + +.. code-block:: console + + mkdir build && cd build + cmake .. -DCMAKE_INSTALL_PREFIX=.. | tee log.cmake + make -j4 | tee log.make + +On many platforms this build step will take less than 30 minutes, but for some machines it may take up to a few hours, depending on the system architecture, compiler and compiler flags, and number of parallel make processes used. + +Setting Up Your Python Environment +================================== +The regional_workflow repository contains scripts for generating and running experiments, and these require some specific python packages to function correctly. First, as mentioned before, your platform will need Python 3.6 or newer installed. Once this is done, you will need to install several python packages that are used by the workflow: ``jinja2`` (https://jinja2docs.readthedocs.io/), ``pyyaml`` (https://pyyaml.org/wiki/PyYAML), and ``f90nml`` (https://pypi.org/project/f90nml/). These packages can be installed individually, but it is recommended you use a package manager (https://www.datacamp.com/community/tutorials/pip-python-package-manager). + +If you have conda on your machine: + +.. code-block:: console + + conda install jinja2 pyyaml f90nml + +Otherwise you may be able to use pip3 (the Python3 package manager; may need to be installed separately depending on your platform): + +.. code-block:: console + + pip3 install jinja2 pyyaml f90nml + +Running the graphics scripts in ``${WORKDIR}/ufs-srweather-app/regional_workflow/ush/Python`` will require the additional packages ``pygrib``, ``cartopy``, ``matplotlib``, ``scipy``, and ``pillow``. These can be installed in the same way as described above. + +For the final step of creating and running an experiment, the exact methods will depend on if you are running with or without a workflow manager (Rocoto). + +Running Without a Workflow Manager: Generic Linux and macOS Platforms +===================================================================== +Now that the code has been built, you can stage your data as described in :numref:`Section %s `. + +Once the data has been staged, setting up your experiment on a platform without a workflow manager is similar to the procedure for other platforms described in earlier chapters. Enter the ``${WORKDIR}/ufs-srweather-app/regional_workflow/ush`` directory and configure the workflow by creating a ``config.sh`` file as described in :numref:`Chapter %s `. There will be a few specific settings that you may need change prior to generating the experiment compared to the instructions for pre-configured platforms: + +``MACHINE="MACOS" or MACHINE="LINUX"`` + These are the two ``MACHINE`` settings for generic, non-Rocoto-based platforms; you should choose the one most appropriate for your machine. ``MACOS`` has its own setting due to some differences in how command-line utilities function on Darwin-based operating systems. + +``LAYOUT_X=2`` +``LAYOUT_Y=2`` + These are the settings that control the MPI decomposition when running the weather model. There are default values, but for your machine it is recommended that you specify your own layout to achieve the correct number of MPI processes for your application. In total, your machine should be able to handle ``LAYOUT_X×LAYOUT_Y+WRTCMP_write_tasks_per_group`` tasks. ``WRTCMP_write_tasks_per_group`` is the number of MPI tasks that will be set aside for writing model output, and it is a setting dependent on the domain you have selected. You can find and edit the value of this variable in the file ``regional_workflow/ush/set_predef_grid_params.sh``. + +``RUN_CMD_UTILS="mpirun -np 4"`` + This is the run command for MPI-enabled pre-processing utilities. Depending on your machine and your MPI installation, you may need to use a different command for launching an MPI-enabled executable. + +``RUN_CMD_POST="mpirun -np 1"`` + This is the same as RUN_CMD_UTILS but for UPP. + +``RUN_CMD_FCST='mpirun -np ${PE_MEMBER01}'`` + This is the run command for the weather model. It is **strongly** recommended that you use the variable ``${PE_MEMBER01}`` here, which is calculated within the workflow generation script (based on the layout and write tasks described above) and is 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 use single quotes here (or escape the “$” character) so that ``PE_MEMBER01`` is not referenced until runtime, since it is not defined at the beginning of the workflow generation script. + +``FIXgsm=${WORKDIR}/data/fix_am`` + The location of the ``fix_am`` static files. This and the following two static data sets will need to be downloaded to your machine, as described in :numref:`Section %s `. + +``TOPO_DIR=${WORKDIR}/data/fix_orog`` + Location of ``fix_orog`` static files + +``SFC_CLIMO_INPUT_DIR=${WORKDIR}/data/fix_sfc_climo`` + Location of ``climo_fields_netcdf`` static files + +Once you are happy with your settings in ``config.sh``, it is time to run the workflow and move to the experiment directory (that is printed at the end of the script’s execution): + +.. code-block:: console + + ./generate_FV3LAM_wflow.sh + export EXPTDIR="your experiment directory" + cd $EXPTDIR + +From here, you can run each individual task of the UFS SRW App using the provided run scripts: + +.. code-block:: console + + cp ${WORKDIR}/ufs-srweather-app/regional_workflow/ush/wrappers/*sh . + cp ${WORKDIR}/ufs-srweather-app/regional_workflow/ush/wrappers/README.md . + +The ``README.md`` file will contain instructions on the order that each script should be run in. An example of wallclock times for each task for an example run (2017 Macbook Pro, macOS Catalina, 25km CONUS domain, 48hr forecast) is listed in :numref:`Table %s `. + +.. _WallClockTimes: + +.. table:: Example wallclock times for each workflow task. + + + +--------------------+----------------------------+------------+-----------+ + | **UFS Component** | **Script Name** | **Num.** | **Wall** | + | | | **Cores** | **time** | + +====================+============================+============+===========+ + | UFS_UTILS | ./run_get_ics.sh | n/a | 3 s | + +--------------------+----------------------------+------------+-----------+ + | UFS_UTILS | ./run_get_lbcs.sh | n/a | 3 s | + +--------------------+----------------------------+------------+-----------+ + | UFS_UTILS | ./run_make_grid.sh | n/a | 9 s | + +--------------------+----------------------------+------------+-----------+ + | UFS_UTILS | ./run_make_orog.sh | 4 | 1 m | + +--------------------+----------------------------+------------+-----------+ + | UFS_UTILS | ./run_make_sfc_climo.sh | 4 | 27 m | + +--------------------+----------------------------+------------+-----------+ + | UFS_UTILS | ./run_make_ics.sh | 4 | 5 m | + +--------------------+----------------------------+------------+-----------+ + | UFS_UTILS | ./run_make_lbcs.sh | 4 | 5 m | + +--------------------+----------------------------+------------+-----------+ + | ufs-weather-model | ./run_fcst.sh | 6 | 1h 40 m | + +--------------------+----------------------------+------------+-----------+ + | EMC_post | ./run_post.sh | 1 | 7 m | + +--------------------+----------------------------+------------+-----------+ + +Running on a New Platform with Rocoto Workflow Manager +====================================================== +All official HPC platforms for the UFS SRW App release make use of the Rocoto workflow management software for running experiments. If you would like to use the Rocoto workflow manager on a new machine, you will have to make modifications to the scripts in the ``regional_workflow`` repository. The easiest way to do this is to search the files in the ``regional_workflow/scripts`` and ``regional_workflow/ush`` directories for an existing platform name (e.g. ``CHEYENNE``) and add a stanza for your own unique machine (e.g. ``MYMACHINE``). As an example, here is a segment of code from ``regional_workflow/ush/setup.sh``, where the highlighted text is an example of the kind of change you will need to make: + +.. code-block:: console + :emphasize-lines: 11-18 + + ... + "CHEYENNE") + WORKFLOW_MANAGER="rocoto" + NCORES_PER_NODE=36 + SCHED="${SCHED:-pbspro}" + QUEUE_DEFAULT=${QUEUE_DEFAULT:-"regular"} + QUEUE_HPSS=${QUEUE_HPSS:-"regular"} + QUEUE_FCST=${QUEUE_FCST:-"regular"} + ;; + + "MYMACHINE") + WORKFLOW_MANAGER="rocoto" + NCORES_PER_NODE=your_machine_cores_per_node + SCHED="${SCHED:-your_machine_scheduler}" + QUEUE_DEFAULT=${QUEUE_DEFAULT:-"your_machine_queue_name"} + QUEUE_HPSS=${QUEUE_HPSS:-"your_machine_queue_name"} + QUEUE_FCST=${QUEUE_FCST:-"your_machine_queue_name"} + ;; + + "STAMPEDE") + WORKFLOW_MANAGER="rocoto" + ... + +You will also need to add ``MYMACHINE`` to the list of valid machine names in ``regional_workflow/ush/valid_param_vals.sh``. The minimum list of files that will need to be modified in this way are as follows (all in the ``regional_workflow`` repository): + +* ``scripts/exregional_run_post.sh``, line 131 +* ``scripts/exregional_make_sfc_climo.sh``, line 162 +* ``scripts/exregional_make_lbcs.sh``, line 114 +* ``scripts/exregional_make_orog.sh``, line 147 +* ``scripts/exregional_make_grid.sh``, line 145 +* ``scripts/exregional_run_fcst.sh``, line 140 +* ``scripts/exregional_make_ics.sh``, line 114 +* ``ush/setup.sh``, lines 431 and 742 +* ``ush/launch_FV3LAM_wflow.sh``, line 104 +* ``ush/get_extrn_mdl_file_dir_info.sh``, many lines, starting around line 589 +* ``ush/valid_param_vals.sh``, line 3 +* ``ush/load_modules_run_task.sh``, line 126 +* ``ush/set_extrn_mdl_params.sh``, many lines, starting around line 61 + +The line numbers may differ slightly given future bug fixes. Additionally, you may need to make further changes depending on the exact setup of your machine and Rocoto installation. Information about installing and configuring Rocoto on your machine can be found in the Rocoto GitHub repository: https://github.com/christopherwharrop/rocoto + +.. _SW-OS-Requirements: + +Software/Operating System Requirements +====================================== +Those requirements highlighted in **bold** are included in the NCEPLIBS-external (https://github.com/NOAA-EMC/NCEPLIBS-external) package. + +**Minimum platform requirements for the UFS SRW Application and NCEPLIBS:** + +* POSIX-compliant UNIX-style operating system + +* >40 GB disk space + + * 18 GB input data from GFS, RAP, and HRRR for Graduate Student Test + * 6 GB for NCEPLIBS-external and NCEPLIBS full installation + * 1 GB for ufs-srweather-app installation + * 11 GB for 48hr forecast on CONUS 25km domain + +* 4GB memory (CONUS 25km domain) + +* Fortran compiler with full Fortran 2008 standard support + +* C and C++ compiler + +* Python v3.6+, including prerequisite packages ``jinja2``, ``pyyaml`` and ``f90nml`` + +* Perl 5 + +* git v1.8+ + +* MPI (**MPICH**, OpenMPI, or other implementation) + +* wgrib2 + +* CMake v3.12+ + +* Software libraries + + * **netCDF (C and Fortran libraries)** + * **HDF5** + * **ESMF** 8.0.0 + * **Jasper** + * **libJPG** + * **libPNG** + * **zlib** + +macOS-specific prerequisites: + +* brew install wget +* brew install cmake +* brew install coreutils +* brew install pkg-config +* brew install gnu-sed + +Optional but recommended prerequisites: + +* Conda for installing/managing Python packages +* Bash v4+ +* Rocoto Workflow Management System (1.3.1) +* **CMake v3.15+** +* Python packages scipy, matplotlib, pygrib, cartopy, and pillow for graphics diff --git a/docs/UsersGuide/source/ConfigParameters.inc b/docs/UsersGuide/source/ConfigParameters.inc new file mode 100644 index 0000000000..b67ed0c0cc --- /dev/null +++ b/docs/UsersGuide/source/ConfigParameters.inc @@ -0,0 +1,338 @@ +.. This is a continuation of the ConfigWorkflow.rst chapter + +.. _ConfigParameters: + +Grid Generation Parameters +========================== +``GRID_GEN_METHOD``: (Default: “”) + This variable specifies the method to use to generate a regional grid in the horizontal. The only supported value of this parameter is “ESGgrid”, in which case the Extended Schmidt Gnomonic grid generation method developed by Jim Purser(1) of EMC will be used. + +(1)Purser, R. J., D. Jovic, G. Ketefian, T. Black, J. Beck, J. Dong, and J. Carley, 2020: The Extended Schmidt Gnomonic Grid for Regional Applications. Unified Forecast System (UFS) Users’ Workshop. July 27-29, 2020. + +.. note:: + + #. 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. + + #. 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. + +The following parameters must be set if using the "ESGgrid" method of generating a regional grid (i.e. for ``GRID_GEN_METHOD`` set to "ESGgrid"). + +``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_WIDE_HALO_WIDTH``: (Default: “”) + 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. + +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. + +Computational Forecast Parameters +================================= +``DT_ATMOS``: (Default: “”) + The main forecast model integration time step. As described in the forecast model documentation, "It corresponds to the frequency with which the top level routine in the dynamics is called as well as the frequency with which the physics is called." + +``LAYOUT_X, LAYOUT_Y``: (Default: “”) + The number of 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. + +Here, we set these parameters to null strings. This is so that, for any one of these parameters: + +#. If the experiment is using a predefined grid and the user sets the parameter in the user-specified experiment configuration file (``EXPT_CONFIG_FN``), that value will be used in the forecast(s). Otherwise, the default value of the parameter 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. + +Write-Component (Quilting) Parameters +===================================== +``QUILTING``: (Default: “TRUE”) + Flag that determines whether or not 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-hour output forecast hour) containing dynamics and physics fields, respectively, on the write-component grid (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 contain fields on the native grid. Note that if ``QUILTING`` is set to “FALSE”, then the ``RUN_POST_TN`` (meta)task cannot be run because the Unified Post Processor (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. + +``PRINT_ESMF``: (Default: “FALSE”) + Flag for whether or not to output extra (debugging) information from 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 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. + +Predefined Grid Parameters +========================== +``PREDEF_GRID_NAME``: (Default: “”) + This parameter specifies the name of a predefined regional grid. + +.. note:: + + * If ``PREDEF_GRID_NAME`` is set to a valid predefined grid name, the grid generation method ``GRID_GEN_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 an empty string, it implies the user is providing the native grid parameters in the user-specified experiment configuration file (``EXPT_CONFIG_FN``). In this case, the grid generation method ``GRID_GEN_METHOD``, the native grid parameters, and the write-component grid parameters as well as the main time step (``DT_ATMOS``) and the computational parameters ``LAYOUT_X``, ``LAYOUT_Y``, and ``BLOCKSIZE`` must be set in that configuration file. + +Setting ``PREDEF_GRID_NAME`` provides a convenient method of specifying a commonly used set of grid-dependent parameters. The predefined grid parameters are specified in the script + +.. code-block:: console + + ush/set_predef_grid_params.sh + +Currently supported ``PREDEF_GRID_NAME`` options are "RRFS_CONUS_25km," "RRFS_CONUS_13km," and "RRFS_CONUS_3km." + +Pre-existing Directory Parameter +================================ +``PREEXISTING_DIR_METHOD``: (Default: “delete”) + This variable determines the method to deal with pre-existing 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 pre-existing 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. + +Verbose Parameter +================= +``VERBOSE``: (Default: “TRUE”) + This is a flag that determines whether or not the experiment generation and workflow task scripts print out extra informational messages. + +Pre-Processing Parameters +========================= +These parameters set flags (and related directories) that determine whether the grid, orography, and/or surface climatology file generation tasks should be run. Note that these are all 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. + +``RUN_TASK_MAKE_GRID``: (Default: “TRUE”) + Flag that determines whether the grid file generation task (``MAKE_GRID_TN``) is to be run. 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 in which to look for pre-generated grid files if ``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``). + +``OROG_DIR``: (Default: "/path/to/pregenerated/orog/files") + Same as ``GRID_DIR`` but for the orography generation task. + +``RUN_TASK_MAKE_SFC_CLIMO``: (Default: “TRUE”) + Same as ``RUN_TASK_MAKE_GRID`` but for the surface climatology generation task (``MAKE_SFC_CLIMO_TN``). + +``SFC_CLIMO_DIR``: (Default: "/path/to/pregenerated/surface/climo/files") + Same as ``GRID_DIR`` but for the surface climatology generation task. + +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 the ``MAKE_SFC_CLIMO_TN`` task generates files on the native FV3-LAM grid. + +Fixed File Parameters +===================== +Set parameters associated with the fixed (i.e. static) files. For the main NOAA HPC platforms, as well as Cheyenne, Odin, and Stampede, fixed files are prestaged with paths defined in the ``setup.sh`` script. + +``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. + +``TOPO_DIR``: (Default: “”) + The location on disk of the static input files used by the ``make_orog task`` (``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``. + +``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") + + Names of (some of the) global data files that are assumed to exist in a system directory specified (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 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" \ + "global_co2historicaldata_glob.txt" \ + "co2monthlycyc.txt" \ + "global_h2o_pltc.f77" \ + "global_hyblev.l65.txt" \ + "global_zorclim.1x1.grb" \ + "global_sfc_emissivity_idx.txt" \ + "global_solarconstant_noaa_an.txt" \ + "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 that the last element has a dummy value. This last element will get reset by the workflow generation scripts to the name of the ozone production/loss file to copy from ``FIXgsm``. The name of this file depends on the ozone parameterization being used, and that in turn depends on the CCPP physics suite specified for the experiment. Thus, the CCPP physics suite XML must first be read in to determine the ozone parameterization and then the name of the ozone production/loss file. These steps are carried out elsewhere (in one of the workflow generation scripts/functions). + +``FV3_NML_VARNAME_TO_FIXam_FILES_MAPPING``: (Default: see below) + .. code-block:: console + + ("FNGLAC | $FNGLAC" \ + "FNMXIC | $FNMXIC" \ + "FNTSFC | $FNTSFC" \ + "FNSNOC | $FNSNOC" \ + "FNAISC | $FNAISC" \ + "FNSMCC | $FNSMCC" \ + "FNMSKH | $FNMSKH" ) + + This array is used to set some of the namelist variables in the forecast model's namelist file that represent the relative or absolute paths of various fixed files (the first column of the array, where columns are delineated by the pipe symbol "|") to the full paths to these files in the FIXam directory derived from the corresponding workflow variables containing file names (the second column of the array). + +``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 namelist variables in the forecast model's namelist file that represent the relative or absolute paths of various fixed files (the first column of the array, where columns are delineated by the pipe symbol "|") to the full paths to surface climatology files (on the native FV3-LAM grid) in the ``FIXLAM`` directory 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_glob.txt | global_co2historicaldata_glob.txt" \ + "co2monthlycyc.txt | co2monthlycyc.txt" \ + "global_h2oprdlos.f77 | global_h2o_pltc.f77" \ + "global_zorclim.1x1.grb | global_zorclim.1x1.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 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 "|"). + +Workflow Task Parameters +======================== +These parameters set the names of the various workflow tasks and usually do not need to be changed. For each task, additional values set the parameters to pass to the job scheduler (e.g. slurm) that will submit a job for each task to be run. Parameters include the number of nodes to use to run the job, the number of MPI processes per node, the maximum walltime to allow for the job to complete, and the maximum number of times to attempt to run each task. + +Task names: + +| ``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") + +Number of nodes: + +| ``NODES_MAKE_GRID``: (Default: "1") +| ``NODES_MAKE_OROG``: (Default: "1") +| ``NODES_MAKE_SFC_CLIMO``: (Default: "2") +| ``NODES_GET_EXTRN_ICS``: (Default: "1") +| ``NODES_GET_EXTRN_LBCS``: (Default: "1") +| ``NODES_MAKE_ICS``: (Default: "4") +| ``NODES_MAKE_LBCS``: (Default: "4”) +| ``NODES_RUN_FCST``: (Default: "") # Calculated in the workflow generation scripts. +| ``NODES_RUN_POST``: (Default: "2") + +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: "24") # Can be changed depending on the number of threads used. +| ``PPN_RUN_POST``: (Default: "24") + +Wall times: + +| ``TIME_MAKE_GRID``: (Default: "00:20:00") +| ``TIME_MAKE_OROG``: (Default: "00:20:00”) +| ``TIME_MAKE_SFC_CLIMO``: (Default: "00:20:00") +| ``TIME_GET_EXTRN_ICS``: (Default: "00:45:00") +| ``TIME_GET_EXTRN_LBCS``: (Default: "00:45:00") +| ``TIME_MAKE_ICS``: (Default: "00:30:00") +| ``TIME_MAKE_LBCS``: (Default: "00:30:00") +| ``TIME_RUN_FCST``: (Default: "04:30:00") +| ``TIME_RUN_POST``: (Default: "00:15:00") + +Maximum number of attempts. + +| ``MAXTRIES_MAKE_GRID``: (Default: "1") +| ``MAXTRIES_MAKE_OROG``: (Default: "1") +| ``MAXTRIES_MAKE_SFC_CLIMO``: (Default: "1") +| ``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: "1") + +Customized Post Configuration Parameters +======================================== +``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 (UPP) configuration file specified in ``CUSTOM_POST_CONFIG_FP``. Otherwise, a default configuration file provided in the EMC_post 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". + +Halo Blend Parameter +==================== +``HALO_BLEND``: (Default: “10”) + Number of rows into the computational domain that should be blended with the LBCs. To shut halo blending off, set this to zero. + +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 (FVCOM). If set to “TRUE”, lake/sea surface temperatures, ice surface temperatures, and ice placement will be overwritten by data provided by FVCOM. This is done by running the executable ``process_FVCOM.exe`` in the ``MAKE_ICS_TN`` task to modify 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_DIR``: (Default: “/user/defined/dir/to/fvcom/data") + User defined directory in which the file ``fvcom.nc`` containing 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 FVCOM data interpolated to FV3-LAM grid. This file will be copied later to a new location and the name changed to ``fvcom.nc``. + +Compiler Parameter +================== +``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). + diff --git a/docs/UsersGuide/source/ConfigWorkflow.rst b/docs/UsersGuide/source/ConfigWorkflow.rst new file mode 100644 index 0000000000..9c85d7be1d --- /dev/null +++ b/docs/UsersGuide/source/ConfigWorkflow.rst @@ -0,0 +1,244 @@ +.. _ConfigWorkflow: + +================================================================== +Configuring the Workflow: ``config.sh`` and ``config_defaults.sh`` +================================================================== +To create the experiment directory and workflow when running the SRW App, the user must create an experiment configuration file named ``config.sh``. This file contains experiment-specific information, such as dates, external model 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”; see below), 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 in which to run the SRW App. + +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``. In the case that 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, e.g. 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``). + +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. In addition, any relevant information on features and settings supported or unsupported in this release is specified. + +Platform Environment +==================== +``RUN_ENVIR``: (Default: “nco”) + This variable determines the mode that the workflow will run in. The user can choose between two modes: “nco” and “community.” The “nco” mode uses a directory structure that mimics what is used in operations at NOAA/NCEP Central Operations (NCO) and by those in the NOAA/NCEP/Environmental Modeling Center (EMC) working with NCO on pre-implementation testing. Specifics of the conventions used in “nco” mode can be found in the following WCOSS Implementation Standards document: + + | NCEP Central Operations + | WCOSS Implementation Standards + | April 17, 2019 + | Version 10.2.0 + + Setting ``RUN_ENVIR`` to “community” will use the standard directory structure and variable naming convention and is recommended in most cases for users who are not planning to implement their code into operations at NCO. + +``MACHINE``: (Default: “BIG_COMPUTER”) + The machine (a.k.a. platform) on which the workflow will run. Currently supported platforms include "WCOSS_CRAY," "WCOSS_DELL_P3," "HERA," "ORION," "JET," "ODIN," "CHEYENNE," "STAMPEDE,” “GAEA,” “MACOS,” and “LINUX." + +``ACCOUNT``: (Default: “project_name”) + The account under which to submit jobs to the queue on the specified ``MACHINE``. + +``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." + +``SCHED``: (Default: “”) + The job scheduler to use (e.g. slurm) on the specified ``MACHINE``. Set this to an empty string in order for the experiment generation script to set it automatically depending on the machine the workflow is running on. Currently, supported schedulers include "slurm," "pbspro," "lsf," "lsfcray," and "none". + +``PARTITION_DEFAULT``: (Default: “”) + If using the slurm job scheduler (i.e. if ``SCHED`` is set to "slurm"), the default partition to which to submit workflow tasks. If a task does not have a specific variable that specifies the partition to which it will be submitted (e.g. ``PARTITION_HPSS``, ``PARTITION_FCST``; see below), it will be submitted to the partition specified by this variable. If this is not set or is set to an empty string, it will be (re)set to a machine-dependent value. This is not used if ``SCHED`` is not set to "slurm." + +``CLUSTERS_DEFAULT``: (Default: “”) + If using the slurm job scheduler (i.e. if ``SCHED`` is set to "slurm"), the default clusters to which to submit workflow tasks. If a task does not have a specific variable that specifies the partition to which it will be submitted (e.g. ``CLUSTERS_HPSS``, ``CLUSTERS_FCST``; see below), it will be submitted to the clusters specified by this variable. If this is not set or is set to an empty string, it will be (re)set to a machine-dependent value. This is not used if ``SCHED`` is not set to "slurm." + +``QUEUE_DEFAULT``: (Default: “”) + The default queue or QOS (if using the slurm job scheduler, where QOS is Quality of Service) to which workflow tasks are submitted. If a task does not have a specific variable that specifies the queue to which it will be submitted (e.g. ``QUEUE_HPSS``, ``QUEUE_FCST``; see below), it will be submitted to the queue specified by this variable. If this is not set or is set to an empty string, it will be (re)set to a machine-dependent value. + +``PARTITION_HPSS``: (Default: “”) + If using the slurm job scheduler (i.e. if ``SCHED`` is set to "slurm"), the partition to which the tasks that get or create links to external model files [which are needed to generate initial conditions (ICs) and lateral boundary conditions (LBCs)] are submitted. If this is not set or is set to an empty string, it will be (re)set to a machine-dependent value. This is not used if ``SCHED`` is not set to "slurm." + +``CLUSTERS_HPSS``: (Default: “”) + If using the slurm job scheduler (i.e. if ``SCHED`` is set to "slurm"), the clusters to which the tasks that get or create links to external model files [which are needed to generate initial conditions (ICs) and lateral boundary conditions (LBCs)] are submitted. If this is not set or is set to an empty string, it will be (re)set to a machine-dependent value. This is not used if ``SCHED`` is not set to "slurm." + +``QUEUE_HPSS``: (Default: “”) + The queue or QOS to which the tasks that get or create links to external model files are submitted. If this is not set or is set to an empty string, it will be (re)set to a machine-dependent value. + +``PARTITION_FCST``: (Default: “”) + If using the slurm job scheduler (i.e. if ``SCHED`` is set to "slurm"), the partition to which the task that runs forecasts is submitted. If this is not set or set to an empty string, it will be (re)set to a machine-dependent value. This is not used if ``SCHED`` is not set to "slurm." + +``CLUSTERS_FCST``: (Default: “”) + If using the slurm job scheduler (i.e. if ``SCHED`` is set to "slurm"), the clusters to which the task that runs forecasts is submitted. If this is not set or set to an empty string, it will be (re)set to a machine-dependent value. This is not used if ``SCHED`` is not set to "slurm." + +``QUEUE_FCST``: (Default: “”) + The queue or QOS to which the task that runs a forecast is submitted. If this is not set or set to an empty string, it will be (re)set to a machine-dependent value. + +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"``. + +``RUN_CMD_UTILS``: (Default: "mpirun -np 1") + The run command for pre-processing utilities (shave, orog, sfc_climo_gen, etc.). This can be left blank for smaller domains, in which case the executables will run without MPI. + +``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"). + +``RUN_CMD_POST``: (Default: "mpirun -np 1") + The run command for post-processing (UPP). Can be left blank for smaller domains, in which case UPP will run without MPI. + +Cron-Associated Parameters +========================== +``USE_CRON_TO_RELAUNCH``: (Default: “FALSE”) + Flag that determines whether or not a line is added to the user's cron table that calls the experiment launch script every ``CRON_RELAUNCH_INTVL_MNTS`` minutes. + +``CRON_RELAUNCH_INTVL_MNTS``: (Default: “03”) + 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”. + +Directory Parameters +==================== +``EXPT_BASEDIR``: (Default: “”) + The base directory in which the experiment directory will be created. If this is not specified or if it is set to an empty string, it will default to ``${HOMErrfs}/../../expt_dirs``, where ``${HOMErrfs}`` contains the full path to the ``regional_workflow`` directory. + +``EXPT_SUBDIR``: (Default: “”) + The name that the experiment directory (without the full path) will have. 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. + + +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") + The beginning portion of the directory which contains files generated by the external model that the initial and lateral boundary condition generation tasks need 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 followed by the 2-digit month followed by the 2-digit day of the month) and hour specified by the variable HH (consisting of the 2-digit hour-of-day), the directory in which the workflow will look for the external model files is: + + .. code-block:: console + + $COMINgfs/gfs.$yyyymmdd/$hh + +``STMP``: (Default: "/base/path/of/directory/containing/model/input/and/raw/output/files") + The beginning portion of the directory that will contain cycle-dependent model input files, symlinks to cycle-independent input files, and raw (i.e. before post-processing) forecast output files 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) [so that the cycle date (cdate) is given by ``cdate="${YYYYMMDD}${HH}"``], the directory in which the aforementioned files will be located is: + + .. code-block:: console + + $STMP/tmpnwprd/$RUN/$cdate + +``NET, envir, RUN``: + Variables used in forming the path to the directory that will contain the output files from the post-processor (UPP) for a given cycle (see definition of ``PTMP`` below). These are defined in the WCOSS Implementation Standards document as follows: + + ``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. + + ``RUN``: (Default: “experiment_name”) + Name of model run (third level of com directory structure). + +``PTMP``: (Default: "/base/path/of/directory/containing/postprocessed/output/files") + The beginning portion of the directory that will contain the output files from the post-processor (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 directory in which the UPP output files will be placed will be: + + .. code-block:: console + + $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 the surface climatology fixed files. + +File Name Parameters +==================== +``EXPT_CONFIG_FN``: (Default: "config.sh") + Name of the user-specified configuration file for the forecast experiment. + +``RGNL_GRID_NML_FN``: (Default: "regional_grid.nml") + Name of the file containing Fortran namelist settings for the code that generates an "ESGgrid" type of regional grid. + +``FV3_NML_BASE_SUITE_FN``: (Default: "input.nml.FV3") + Name of the 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``: (Default: "FV3.input.yml") + Name of YAML configuration file containing the forecast model's namelist settings for various physics suites. + +``DIAG_TABLE_FN``: (Default: “diag_table”) + Name of the file that specifies the fields that the forecast model will output. + +``FIELD_TABLE_FN``: (Default: “field_table”) + Name of the file that specifies the tracers that the forecast model will read in from the IC/LBC files. + +``DATA_TABLE_FN``: (Default: “data_table”) + The name of the file containing the data table read in by the forecast model. + +``MODEL_CONFIG_FN``: (Default: “model_configure”) + The name of the file containing settings and configurations for the NUOPC/ESMF component. + +``NEMS_CONFIG_FN``: (Default: “nems.configure”) + The name of the file containing information about the various NEMS components and their run sequence. + +``FV3_EXEC_FN``: (Default: “NEMS.exe”) + Name of the forecast model executable in the executables directory (``EXECDIR``; set during experiment generation). + +``WFLOW_XML_FN``: (Default: “FV3LAM_wflow.xml”) + 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``: (Default: “var_defns.sh”) + Name of the file (a shell script) containing the definitions of the primary experiment variables (parameters) defined in this default configuration script and in config.sh 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_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 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. + +``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 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. + +``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``). + +Foreast 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-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-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". + +``FCST_LEN_HRS``: (Default: “24”) + The length of each forecast, in integer hours. + +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. + +``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. + +``LBC_SPEC_INTVL_HRS``: (Default: “6”) + The interval (in integer hours) at which LBC files will be generated, referred to as the boundary specification interval. Note that the model specified 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. + +``FV3GFS_FILE_FMT_ICS``: (Default: “nemsio”) + If using the FV3GFS model as the source of the ICs (i.e. if ``EXTRN_MDL_NAME_ICS`` is set to "FV3GFS"), this variable specifies the format of the model files to use when generating the ICs. + +``FV3GFS_FILE_FMT_LBCS``: (Default: “nemsio”) + If using the FV3GFS model as the source of the LBCs (i.e. if ``EXTRN_MDL_NAME_LBCS`` is set to "FV3GFS"), this variable specifies the format of the model files to use when generating the LBCs. + +User-Staged External Model Directory and File Parameters +======================================================== +``USE_USER_STAGED_EXTRN_FILES``: (Default: “False”) + Flag that determines whether or not the workflow will look for the external model files needed for generating ICs and LBCs in user-specified directories (as opposed to fetching them from mass storage like NOAA HPSS). + +``EXTRN_MDL_SOURCE_BASEDIR_ICS``: (Default: “/base/dir/containing/user/staged/extrn/mdl/files/for/ICs") + Directory in which to look for external model files for generating ICs. If ``USE_USER_STAGED_EXTRN_FILES`` is set to "TRUE", the workflow looks in this directory (specifically, in a subdirectory under this directory named "YYYYMMDDHH" consisting of the starting date and cycle hour of the forecast, where YYYY is the 4-digit year, MM the 2-digit month, DD the 2-digit day of the month, and HH the 2-digit hour of the day) for the external model files specified by the array ``EXTRN_MDL_FILES_ICS`` (these files will be used to generate the 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 names of the files to search for in the directory specified by ``EXTRN_MDL_SOURCE_BASEDIR_ICS``. 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") + Analogous to ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` but for LBCs instead of ICs. + +``EXTRN_MDL_FILES_LBCS``: (Default: " “LBCS_file1” “LBCS_file2” “...”) + Analogous to ``EXTRN_MDL_FILES_ICS`` but for LBCs instead of ICs. + +CCPP Parameter +============== +``CCPP_PHYS_SUITE``: (Default: "FV3_GFS_v15p2") + The 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 that are staged in the experiment directory or the cycle directories under it. Current supported settings for this parameter are “FV3_GFS_v15p2” and “FV3_RRFS_v1alpha”. + +.. include:: ConfigParameters.inc diff --git a/docs/UsersGuide/source/FAQ.rst b/docs/UsersGuide/source/FAQ.rst index 299e6bbdd1..05313a998c 100644 --- a/docs/UsersGuide/source/FAQ.rst +++ b/docs/UsersGuide/source/FAQ.rst @@ -4,10 +4,88 @@ FAQ *** -======================================================= -How to turn On/Off the Cycle-Independent Workflow Tasks -======================================================= +========================================================= +How do I turn On/Off the Cycle-Independent Workflow Tasks +========================================================= +The first three pre-processing tasks ``make_grid``, ``make_orog``, and ``make_sfc_climo`` +are cycle-independent, meaning that they only need to be run once per experiment. If the +grid, orography, and surface climatology files that these tasks generate are already +available (e.g. from a previous experiment that used the same grid as the current), then +these tasks can be skipped by having the workflow 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: + +.. code-block:: console + + RUN_TASK_MAKE_GRID=”FALSE” + GRID_DIR=”/path/to/directory/containing/grid/files” + RUN_TASK_MAKE_OROG=”FALSE” + OROG_DIR=”/path/to/directory/containing/orography/files” + RUN_TASK_MAKE_SFC_CLIMO=”FALSE” + SFC_CLIMO_DIR=”/path/to/directory/containing/surface/climatology/files” + +The ``RUN_TASK_MAKE_GRID``, ``RUN_TASK_MAKE_OROG``, and ``RUN_TASK_MAKE_SFC_CLIMO`` flags +disable their respective tasks, and ``GRID_DIR``, ``OROG_DIR``, and ``SFC_CLIMO_DIR`` +specify the directories in which the workflow can find the pre-generated grid, orography, +and surface climatology files, respectively (these directories may be the same, i.e. all +three sets of files may be placed in the same location). By default, the ``RUN_TASK_MAKE_...`` +flags are set to ``TRUE`` in ``config_defaults.sh``, i.e. the workflow will by default +run the ``make_grid``, ``make_orog``, and ``make_sfc_climo`` tasks. + +=================================== +How do I define an experiment name? +=================================== +The name of the experiment is set in the ``config.sh`` file using the variable ``EXPT_SUBDIR``. +See :numref:`Section %s ` for more details. + +================================================ +How do I change the Suite Definition File (SDF)? +================================================ +The SDF is set in the ``config.sh`` file using the variable ``CCPP_PHYS_SUITE``. When the +``generate_FV3LAM_wflow.sh`` script is run, the SDF file is copied from its location in the forecast +model directory to the experiment directory ``EXPTDIR``. + +============================= +How do I restart a DEAD task? +============================= +On platforms that utilize Rocoto workflow software (such as NCAR’s Cheyenne machine), sometimes if +something goes wrong with the workflow a task may end up in the DEAD state: + +.. code-block:: console + + rocotostat -w FV3SAR_wflow.xml -d FV3SAR_wflow.db -v 10 + CYCLE TASK JOBID STATE EXIT STATUS TRIES DURATION + ================================================================================= + 201905200000 make_grid 9443237 QUEUED - 0 0.0 + 201905200000 make_orog - - - - - + 201905200000 make_sfc_climo - - - - - + 201905200000 get_extrn_ics 9443293 DEAD 256 3 5.0 + +This means that the dead task has not completed successfully, so the workflow has stopped. Once the issue +has been identified and fixed (by referencing the log files), the failed task can re-run using the ``rocotorewind`` +command: + +.. code-block:: console + + rocotorewind -w FV3SAR_wflow.xml -d FV3SAR_wflow.db -v 10 -c 201905200000 -t get_extrn_ics + +where ``-c`` specifies the cycle date (first column of rocotostat output) and ``-t`` represents the task name +(second column of rocotostat output). After using ``rocotorewind``, the next time ``rocotorun`` is used to +advance the workflow, the job will be resubmitted. + +=========================== +How do I change the grid? +=========================== +To change the predefined grid, you need to modify the ``PREDEF_GRID_NAME`` variable in the +``config.sh`` script which the user has created to generate an experiment configuration and workflow. +Users can choose from one of three predefined grids for the SRW Application: + +.. code-block:: console + + RRFS_CONUS_3km + RRFS_CONUS_13km + RRFS_CONUS_25km + +An option also exists to create a user-defined grid, with information available in +:numref:`Chapter %s `. -================================ -How to define an experiment name -================================ diff --git a/docs/UsersGuide/source/Glossary.rst b/docs/UsersGuide/source/Glossary.rst index 73e2b45e19..622814368a 100644 --- a/docs/UsersGuide/source/Glossary.rst +++ b/docs/UsersGuide/source/Glossary.rst @@ -7,50 +7,64 @@ Glossary .. glossary:: CCPP - Model agnostic, vetted, collection of codes containing atmospheric physical parameterizations - and suites for use in NWP along with a framework that connects the physics to host models + A forecast-model agnostic, vetted collection of codes containing atmospheric physical + parameterizations and suites of parameterizations for use in Numerical Weather Prediction + (NWP) along with a framework that connects the physics to the host forecast model. chgres_cube - The preprocessing software used to create initial condition files to “coldstart” the forecast - model. The initial conditions are created from either GFS GRIB2 or NEMSIO data. + The preprocessing software used to create initial and boundary condition files to + “coldstart” the forecast model. FV3 - The GFDL Finite-Volume Cubed-Sphere Dynamical Core (FV3) is a scalable and flexible dynamical - core capable of both hydrostatic and non-hydrostatic atmospheric simulations. + The Finite-Volume Cubed-Sphere dynamical core (dycore). Developed at NOAA's Geophysical + Fluid Dynamics Laboratory (GFDL), it is a scalable and flexible dycore capable of both + hydrostatic and non-hydrostatic atmospheric simulations. It is the dycore used in the + UFS Weather Model. + + GRIB2 + The second version of the World Meterological Organization's (WMO) standard for distributing gridded data. NCEP - National Centers for Environmental Prediction, an arm of the National Weather Service. + National Centers for Environmental Prediction, an arm of the National Weather Service, + consisting of nine centers. More information can be found at https://www.ncep.noaa.gov. NCEPLIBS - The NCEP library source code and utilities required for chgres_cube, the UFS Weather Model, and UPP. + The software libraries created and maintained by :term:`NCEP` that are required for running + :term:`chgres_cube`, the UFS Weather Model, and :term:`UPP`. NCEPLIBS-external - A collection of third-party libraries required to build NCEPLIBS, chgres_cube, the UFS Weather Model, and UPP. + A collection of third-party libraries required to build :term:`NCEPLIBS`, :term:`chgres_cube`, + the UFS Weather Model, and :term:`UPP`. NCL - An interpreted language designed specifically for scientific data analysis and visualization. - More information can be found at https://www.ncl.ucar.edu. + An interpreted programming language designed specifically for scientific data analysis and + visualization. More information can be found at https://www.ncl.ucar.edu. NEMS - The NOAA Environmental Modeling System - a software infrastructure that supports - NCEP/EMC’s forecast products. + The NOAA Environmental Modeling System is a common modeling framework whose purpose is + to streamline components of operational modeling suites at :term:`NCEP`. NEMSIO - A binary format for atmospheric model output on the native gaussian grid. + A binary format for atmospheric model output from :term:`NCEP`'s Global Forecast System (GFS). UFS - A Unified Forecast System (UFS) is a community-based, coupled comprehensive Earth - system modeling system. The UFS numerical applications span local to global domains - and predictive time scales from sub-hourly analyses to seasonal predictions. It is - designed to support the Weather Enterprise and to be the source system for NOAA's - operational numerical weather prediction applications + The Unified Forecast System is a community-based, coupled comprehensive Earth modeling + system consisting of several applications (apps). These apps span regional to global + domains and sub-hourly to seasonal time scales. The UFS is designed to support the Weather + Enterprise and to be the source system for NOAA's operational numerical weather prediction + applications. More information can be found at http://ufs-dev.rap.ucar.edu/index.html. + + UFS_UTILS + A collection of codes used by multiple :term:`UFS` apps (e.g. the UFS Short-Range Weather App, + the UFS Medium-Range Weather App). The grid, orography, surface climatology, and initial + and boundary condition generation codes used by the UFS Short-Range Weather App are all + part of this collection. UPP - The Unified Post Processing System, developed at NCEP and used operationally for models - maintained by NCEP. The UPP has the capability to post-process output from a variety of NWP - models, including FV3. + The Unified Post Processor is software developed at :term:`NCEP` and used operationally to + post-process raw output from a variety of :term:`NCEP`'s NWP models, including the FV3. Weather Model A prognostic model that can be used for short- and medium-range research and - operational forecasts. It can be an atmosphere-only model or be an atmospheric + operational forecasts. It can be an atmosphere-only model or an atmospheric model coupled with one or more additional components, such as a wave or ocean model. diff --git a/docs/UsersGuide/source/Graphics.rst b/docs/UsersGuide/source/Graphics.rst new file mode 100644 index 0000000000..51f03f8a6d --- /dev/null +++ b/docs/UsersGuide/source/Graphics.rst @@ -0,0 +1,255 @@ +.. _Graphics: + +=================== +Graphics Generation +=================== +Two Python plotting scripts are provided to generate plots from the FV3-LAM post-processed GRIB2 +output over the CONUS for a number of variables, including: + +* 2-m temperature +* 2-m dew point temperature +* 10-m winds +* 500 hPa heights, winds, and vorticity +* 250 hPa winds +* Accumulated precipitation +* Composite reflectivity +* Surface-based CAPE/CIN +* 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 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 +plotting the difference, the two experiments must be on the same domain and available for +the same cycle starting date/time and forecast hours. + +The Python scripts require a cycle starting date/time in YYYYMMDDHH format, a starting forecast +hour, an ending forecast hour, a forecast hour increment, the paths to one or two experiment directories, +and a path to the directory where the Cartopy Natural Earth shape files are located. +The full set of Cartopy shape files can be downloaded at https://www.naturalearthdata.com/downloads/. +For convenience, the small subset of files required for these Python scripts can be obtained from the +`EMC ftp data repository `_ +or from `AWS cloud storage `_. +In addition, the Cartopy shape files are available on a number of Level 1 platforms in the following +locations: + +On Cheyenne: + +.. code-block:: console + + /glade/p/ral/jntp/UFS_SRW_app/tools/NaturalEarth + +On Hera: + +.. code-block:: console + + /scratch2/BMC/det/UFS_SRW_app/v1p0/fix_files/NaturalEarth + +On Jet: + +.. code-block:: console + + /lfs4/BMC/wrfruc/FV3-LAM/NaturalEarth + +On Orion: + +.. code-block:: console + + /work/noaa/gsd-fv3-dev/UFS_SRW_App/v1p0/fix_files/NaturalEarth + +On Gaea: + +.. code-block:: console + + /lustre/f2/pdata/esrl/gsd/ufs/NaturalEarth + +The medium scale (1:50m) cultural and physical shapefiles are used to create coastlines and other +geopolitical borders on the map. Cartopy provides the ‘background_img()’ method to add background +images in a convenient way. The default scale (resolution) of background attributes in the Python +scripts is 1:50m Natural Earth I with Shaded Relief and Water, which should be sufficient for most +regional applications. + +The appropriate environment must be loaded to run the scripts, which require Python 3 with +the ``scipy``, ``matplotlib``, ``pygrib``, ``cartopy``, and ``pillow`` packages. This Python environment has already +been set up on Level 1 platforms and can be activated as follows: + +On Cheyenne: + +.. code-block:: console + + module load ncarenv + ncar_pylib /glade/p/ral/jntp/UFS_SRW_app/ncar_pylib/python_graphics + +On Hera and Jet: + +.. code-block:: console + + module use -a /contrib/miniconda3/modulefiles + module load miniconda3 + conda activate pygraf + +On Orion: + +.. code-block:: console + + module use -a /apps/contrib/miniconda3-noaa-gsl/modulefiles + module load miniconda3 + conda activate pygraf + +On Gaea: + +.. code-block:: console + + module use /lustre/f2/pdata/esrl/gsd/contrib/modulefiles + module load miniconda3/4.8.3-regional-workflow + +.. note:: + + If using one of the batch submission scripts described below, the user does not need to + manually load an environment because the scripts perform this task. + +Plotting output from one experiment +=================================== + +Before generating plots, it is convenient to change location to the directory containing the plotting +scripts: + +.. code-block:: console + + cd ufs-srweather-app/regional_workflow/ush/Python + +To generate plots for a single cycle, the ``plot_allvars.py`` script must be called with the +following six command line arguments: + +#. Cycle date/time (``CDATE``) in YYYYMMDDHH format +#. Starting forecast hour +#. Ending forecast hour +#. Forecast hour increment +#. The top level of the experiment directory ``EXPTDIR`` containing the post-processed data. The script will look for the data files in the directory ``EXPTDIR/CDATE/postprd``. +#. The base directory ``CARTOPY_DIR`` of the cartopy shapefiles. The script will look for the shape files (``*.shp``) in the directory ``CARTOPY_DIR/shapefiles/natural_earth/cultural``. + +An example of plotting output from a cycle generated using the sample experiment/workflow +configuration in the ``config.community.sh`` script (which uses the GFSv15p2 suite definition file) +is as follows: + +.. code-block:: console + + python plot_allvars.py 2019061500 6 48 6 /path-to/expt_dirs/test_CONUS_25km_GFSv15p2 /path-to/NaturalEarth + +The output files (in .png format) will be located in the directory ``EXPTDIR/CDATE/postprd``, +where in this case ``EXPTDIR`` is ``/path-to/expt_dirs/test_CONUS_25km_GFSv15p2`` and ``CDATE`` +is ``2019061500``. + +Plotting differences from two experiments +========================================= + +To generate difference plots, the ``plot_allvars_diff.py`` script must be called with the following +seven command line arguments: + +#. Cycle date/time (``CDATE``) in YYYYMMDDHH format +#. Starting forecast hour +#. Ending forecast hour +#. Forecast hour increment +#. The top level of the first experiment directory ``EXPTDIR1`` containing the first set of post-processed data. The script will look for the data files in the directory ``EXPTDIR1/CDATE/postprd``. +#. The top level of the first experiment directory ``EXPTDIR2`` containing the second set of post-processed data. The script will look for the data files in the directory ``EXPTDIR2/CDATE/postprd``. +#. The base directory ``CARTOPY_DIR`` of the cartopy shapefiles. The script will look for the shape files (``*.shp``) in the directory ``CARTOPY_DIR/shapefiles/natural_earth/cultural``. + +An example of plotting differences from two experiments for the same date and predefined domain where one uses +the "FV3_GFS_v15p2" suite definition file (SDF) and one using the "FV3_RRFS_v1alpha" SDF is as follows: + +.. code-block:: console + + python plot_allvars_diff.py 2019061518 6 18 3 /path-to/expt_dirs1/test_CONUS_3km_GFSv15p2 /path-to/expt_dirs2/test_CONUS_3km_RRFSv1alpha /path-to/NaturalEarth + +In this case, the output png files will be located in the directory ``EXPTDIR1/CDATE/postprd``. + +Submitting plotting scripts through a batch system +================================================== + +If the Python scripts are being used to create plots of multiple forecast lead times and forecast +variables, then you may need to submit them to the batch system. Example scripts are provided called +``sq_job.sh`` and ``sq_job_diff.sh`` for use on a platform such as Hera that uses the Slurm +job scheduler or ``qsub_job.sh`` and ``qsub_job_diff.sh`` for use on a platform such as +Cheyenne that uses PBS as the job scheduler. 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 your platform/job scheduler of use. + +At a minimum, the account should be set appropriately prior to job submission: + +.. code-block:: console + + #SBATCH --account=an_account + +Depending on the platform you are running on, you may also need to adjust the settings to use +the correct Python environment and path to the shape files. + +When using these batch scripts, several environment variables must be set prior to submission. +If plotting output from a single cycle, the variables to set are ``HOMErrfs`` and ``EXPTDIR``. +In this case, if the user's login shell is csh/tcsh, these variables can be set as follows: + +.. code-block:: console + + setenv HOMErrfs /path-to/ufs-srweather-app/regional_workflow + setenv EXPTDIR /path-to/experiment/directory + +If the user's login shell is bash, they can be set as follows: + +.. code-block:: console + + export HOMErrfs=/path-to/ufs-srweather-app/regional_workflow + export EXPTDIR=/path-to/experiment/directory + +If plotting the difference between the same cycle from two different experiments, the variables +to set are ``HOMErrfs``, ``EXPTDIR1``, and ``EXPTDIR2``. In this case, if the user's login shell +is csh/tcsh, these variables can be set as follows: + +.. code-block:: console + + setenv HOMErrfs /path-to/ufs-srweather-app/regional_workflow + setenv EXPTDIR1 /path-to/experiment/directory1 + setenv EXPTDIR2 /path-to/experiment/directory2 + +If the user's login shell is bash, they can be set as follows: + +.. code-block:: console + + export HOMErrfs=/path-to/ufs-srweather-app/regional_workflow + export EXPTDIR1=/path-to/experiment/directory1 + export EXPTDIR2=/path-to/experiment/directory2 + +In addition, the variables ``CDATE``, ``FCST_START``, ``FCST_END``, and ``FCST_INC`` in the batch +scripts can be modified depending on the user's needs. By default, ``CDATE`` is set as follows +in the batch scripts: + +.. code-block:: console + + export CDATE=${DATE_FIRST_CYCL}${CYCL_HRS} + +This sets ``CDATE`` to the first cycle in the set of cycles that the experiment has run. If the +experiment contains multiple cycles and the user wants to plot output from a cycle other than +the very first one, ``CDATE`` in the batch scripts will have to be set to the specific YYYYMMDDHH +value for that cycle. Also, to plot hourly forecast output, ``FCST_INC`` should be set to 1; to +plot only a subset of the output hours, ``FCST_START``, ``FCST_END``, and ``FCST_INC`` must be +set accordingly, e.g. to generate plots for every 6th forecast hour starting with forecast hour 6 +and ending with the last forecast hour, use + +.. code-block:: console + + export FCST_START=6 + export FCST_END=${FCST_LEN_HRS} + export FCST_INC=6 + +The scripts must be submitted using the command appropriate +for the job scheduler used on your platform. For example, on Hera, +``sq_job.sh`` can be submitted as follows: + +.. code-block:: console + + sbatch sq_job.sh + +On Cheyenne, ``qsub_job.sh`` can be submitted as follows: + +.. code-block:: console + + qsub qsub_job.sh diff --git a/docs/UsersGuide/source/InputOutputFiles.rst b/docs/UsersGuide/source/InputOutputFiles.rst new file mode 100644 index 0000000000..6bd1239a61 --- /dev/null +++ b/docs/UsersGuide/source/InputOutputFiles.rst @@ -0,0 +1,416 @@ +.. _InputOutputFiles: + +====================== +Input and Output Files +====================== +This chapter provides an overview of the input and output files needed by the components +of the UFS SRW Application (:term:`UFS_UTILS`, the UFS :term:`Weather Model`, and :term:`UPP`). +Links to more detailed documentation for each of the components are provided. + +Input Files +=========== +The SRW Application requires numerous input files to run: static datasets (fix files +containing climatological information, terrain and land use data), initial and boundary +conditions files, and model configuration files (such as namelists). + +Initial and Boundary Condition Files +------------------------------------ +The external model files needed for initializing the runs can be obtained in a number of +ways, including: pulled directly from `NOMADS `_; +limited data availability), pulled from the NOAA HPSS during the workflow execution (requires +user access), or obtained and staged by the user from a different source. The data format for +these files can be :term:`GRIB2` or :term:`NEMSIO`. More information on downloading and staging +the external model data can be found in :numref:`Section %s `. Once staged, +the end-to-end application will run the system and write output files to disk. + +Pre-processing (UFS_UTILS) +-------------------------- +When a user runs the SRW Application as described in the quickstart guide +:numref:`Section %s `, input data for the pre-processing utilities is linked +from a location on disk to your experiment directory by the workflow generation step. The +pre-processing utilities use many different datasets to create grids, and to generate model +input datasets from the external model files. A detailed description of the input files +for the pre-processing utilities can be found `here +`_. + +UFS Weather Model +----------------- +The input files for the weather model include both static (fixed) files and grid and date +specific files (terrain, initial conditions, boundary conditions, etc). The static fix files +must be staged by the user unless you are running on a pre-configured platform, in which case +you can link to the existing copy on that machine. See :numref:`Section %s ` +for more information. The static, grid, and date specific files are linked in the experiment +directory by the workflow scripts. An extensive description of the input files for the weather +model can be found in the `UFS Weather Model User's Guide `_. +The namelists and configuration files for the SRW Application are created from templates by the +workflow, as described in :numref:`Section %s `. + +Unified Post Processor (UPP) +---------------------------- +Documentation for the UPP input files can be found in the `UPP User's Guide +`_. + +.. _WorkflowTemplates: + +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. These +templates can be reviewed to see what defaults are being used, and where configuration parameters +are assigned from the ``config.sh`` file. + +List of Template Files +^^^^^^^^^^^^^^^^^^^^^^ +The template files for the SRW Application are located in ``regional_workflow/ush/templates`` +and are shown in :numref:`Table %s `. + +.. _TemplateFiles: + +.. table:: Template files for a regional workflow. + + +-----------------------------+-------------------------------------------------------------+ + | **File Name** | **Description** | + +=============================+=============================================================+ + | data_table | Cycle-independent file that the forecast model reads in at | + | | the start of each forecast. It is an empty file. No need to | + | | change. | + +-----------------------------+-------------------------------------------------------------+ + | diag_table_[CCPP] | File specifying the output fields of the forecast model. | + | | A different diag_table may be configured for different | + | | CCPP suites. | + +-----------------------------+-------------------------------------------------------------+ + | field_table_[CCPP] | Cycle-independent file that the forecast model reads in at | + | | the start of each forecast. It specifies the tracers that | + | | the forecast model will 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 | + | | specified in this file update the corresponding values in | + | | the ``input.nml`` file. This file may be modified for the | + | | specific namelist options of your experiment. | + +-----------------------------+-------------------------------------------------------------+ + | 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 | + | | the ``generate_FV3LAM_wflow.sh``. | + +-----------------------------+-------------------------------------------------------------+ + | input.nml.FV3 | Namelist file of the weather model. | + +-----------------------------+-------------------------------------------------------------+ + | model_configure | Settings and configurations for the NUOPC/ESMF main | + | | component. | + +-----------------------------+-------------------------------------------------------------+ + | nems.configure | NEMS (NOAA Environmental Modeling System) configuration | + | | file, no need to change because it is an atmosphere-only | + | | model in the SRW Application. | + +-----------------------------+-------------------------------------------------------------+ + | regional_grid.nml | Namelist settings for the code that generates an ESG grid. | + +-----------------------------+-------------------------------------------------------------+ + | README.xml_templating.md | Instruction of Rocoto XML templating with Jinja. | + +-----------------------------+-------------------------------------------------------------+ + +Additional information related to the ``diag_table_[CCPP]``, ``field_table_[CCPP]``, ``input.nml.FV3``, +``model_conigure``, and ``nems.configure`` can be found in the `UFS Weather Model User's Guide +`_, +while information on the ``regional_grid.nml`` can be found in the `UFS_UTILS User’s Guide +`_. + +Migratory Route of the Input Files in the Workflow +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +:numref:`Figure %s ` shows how the case-specific input files in the +``ufs-srweather-app/regional_workflow/ush/templates/`` directory flow to the experiment directory. +The value of ``CCPP_PHYS_SUITE`` is specified in the configuration file ``config.sh``. The template +input files corresponding to ``CCPP_PHYS_SUITE``, such as ``field_table`` and ``nems_configure``, are +copied to the experiment directory ``EXPTDIR`` and the namelist file of the weather model ``input.nml`` +is created from the ``input.nml.FV3`` and ``FV3.input.yml`` files by running the script ``generate_FV3LAM_wflow.sh``. +While running the task ``RUN_FCST`` 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/``, and ``diag_table`` and ``model_configure`` are copied from the ``templates`` +directory. Finally, these files are updated with the variables specified in ``var_defn.sh``. + +.. _MigratoryRoute: + +.. figure:: _static/FV3LAM_wflow_input_path.png + + *Migratory route of input files* + +.. _OutputFiles: + +Output Files +============ + +The location of the output files written to disk is defined by the experiment directory, +``EXPTDIR/YYYYMMDDHH``, as set in ``config.sh``. + +Initial and boundary condition files +------------------------------------ +The external model data used by ``chgres_cube`` (as part of the pre-processing utilities) are located +in the experiment run directory under ``EXPTDIR/YYYYMMDDHH/{EXTRN_MDL_NAME_ICS/LBCS}``. + +Pre-processing (UFS_UTILS) +-------------------------- +The files output by the pre-processing utilities reside in the ``INPUT`` directory under the +experiment run directory ``EXPTDIR/YYYYMMDDHH/INPUT`` and consist of the following: + +* ``C403_grid.tile7.halo3.nc`` +* ``gfs_bndy.tile7.000.nc`` +* ``gfs_bndy.tile7.006.nc`` +* ``gfs_ctrl.nc`` +* ``gfs_data.nc -> gfs_data.tile7.halo0.nc`` +* ``grid_spec.nc -> ../../grid/C403_mosaic.halo3.nc`` +* ``grid.tile7.halo4.nc -> ../../grid/C403_grid.tile7.halo4.nc`` +* ``oro_data.nc -> ../../orog/C403_oro_data.tile7.halo0.nc`` +* ``sfc_data.nc -> sfc_data.tile7.halo0.nc`` + +These output files are used as inputs for the UFS weather model, and are described in the `Users Guide +`_. + +UFS Weather Model +----------------- +As mentioned previously, the workflow can be run in ‘community’ or ‘nco’ mode, which determines +the location and names of the output files. In addition to this option, output can also be in +netCDF or NEMSIO format. The output file format is set in the ``model_configure`` files using the +``output_file`` variable. At this time, due to limitations in the post-processing component, only netCDF +format output is recommended for the SRW application. + +.. note:: + In summary, the fully supported options for this release include running in ‘community’ mode with netCDF format output files. + +In this case, the netCDF output files are written to the ``EXPTDIR/YYYYMMDDHH`` directory. The bases of +the file names are specified in the input file ``model_configure`` and are set to the following in the SRW Application: + +* ``dynfHHH.nc`` +* ``phyfHHH.nc`` + +Additional details may be found in the UFS Weather Model `Users Guide +`_. + +Unified Post Processor (UPP) +---------------------------- +Documentation for the UPP output files can be found `here `_. + +For the SRW Application, the weather model netCDF output files are written to the ``EXPTDIR/YYYYMMDDHH/postprd`` +directory and have the naming convention (file->linked to): + +* ``BGRD3D_{YY}{JJJ}{hh}{mm}f{fhr}00 -> {domain}.t{cyc}z.bgrd3df{fhr}.tmXX.grib2`` +* ``BGDAWP_{YY}{JJJ}{hh}{mm}f{fhr}00 -> {domain}.t{cyc}z.bgdawpf{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. + +If you wish to modify the fields or levels that are output from the UPP, you will need to make +modifications to file ``fv3lam.xml``, which resides in the UPP repository distributed with the UFS SRW +Application. Specifically, if the code was cloned in the directory ``ufs-srweather-app``, the file will be +located in ``ufs-srweather-app/src/EMC_post/parm``. + +.. note:: + This process requires advanced knowledge of which fields can be output for the UFS Weather Model. + +Use the directions in the `UPP User's Guide `_ +for details on how to make modifications to the ``fv3lam.xml`` file and for remaking the flat text file that +the UPP reads, which is called ``postxconfig-NT-fv3lam.txt`` (default). + +Once you have created the new flat text file reflecting your changes, you will need to modify your +``config.sh`` to point the workflow to the new text file. In your ``config.sh``, set the following: + +.. code-block:: console + + USE_CUSTOM_POST_CONFIG_FILE=”TRUE” + CUSTOM_POST_CONFIG_PATH=”/path/to/custom/postxconfig-NT-fv3lam.txt” + +which tells the workflow to use the custom file located in the user-defined path. The path should +include the filename. If this is set to true and the file path is not found, then an error will occur +when trying to generate the SRW Application workflow. + +You may then start your case workflow as usual and the UPP will use the new flat ``*.txt`` file. + +.. _DownloadingStagingInput: + +Downloading and Staging Input Data +================================== +A set of input files, including static (fix) data and raw initial and lateral boundary conditions +(IC/LBCs), are needed to run the SRW Application. + +.. _StaticFixFiles: + +Static Files +------------ +A set of fix files are necessary to run the SRW Application. Environment variables describe the +location of the static files: ``FIXgsm``, ``TOPO_DIR``, and ``SFC_CLIMO_INPUT_DIR`` are the directories +where the static files are located. If you are on a pre-configured or configurable platform, there is no +need to stage the fixed files manually because they have been prestaged and the paths +are set in ``regional_workflow/ush/setup.sh``. If the user's platform is not defined +in that file, the static files can be pulled individually or as a full tar file from the `FTP data repository +`_ or from `Amazon Web Services (AWS) cloud storage +`_ +and staged on your machine. The paths to the staged files must then be set in ``config.sh`` +as follows: + +* ``FIXgsm=/path-to/fix/fix_am`` +* ``TOPO_DIR=/path-to/fix/fix_am/fix_orog`` +* ``SFC_CLIMO_INPUT_DIR=/path-to/fix_am/fix/sfc_climo/`` + +Initial Condition 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`, netCDF, +or :term:`GRIB2`. The SRW Application currently only supports the use of NEMSIO and netCDF input files +from the GFS. + +Environment variables describe what IC/LBC files to use (pre-staged files or files to be automatically +pulled from the NOAA HPSS) and the location of the and IC/LBC files: ``USE_USER_STAGED_EXTRN_FILES`` +is the ``T/F`` flag defining what raw data files to use, ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` is the +directory where the initial conditions are located, and ``EXTRN_MDL_SOURCE_BASEDIR_LBCS`` is the +directory where the lateral boundary conditions are located. + +If you have access to the NOAA HPSS and want to automatically download the IC/LBC files using the +workflow, these environment variables can be left out of the ``config.sh`` file. However, if you do +not have access to the NOAA HPSS and you need to pull and stage the data manually, you will need to +set ``USE_USER_STAGED_EXTRN_FILES`` to ``TRUE`` and then set the paths to the where the IC/LBC files are located. + +A small sample of IC/LBCs is available at the `FTP data repository +`_ or from `AWS cloud storage +`_. + +Initial and Lateral Boundary Condition Organization +--------------------------------------------------- +The suggested directory structure and naming convention for the raw input files is described +below. While there is flexibility to modify these settings, this will provide the most reusability +for multiple dates when using the SRW Application workflow. + +For ease of reusing the ``config.sh`` for multiple dates and cycles, it is recommended to set up +your raw IC/LBC files such that it includes the model name (e.g., FV3GFS, NAM, RAP, HRRR) and +``YYYYMMDDHH``, for example: ``/path-to/model_data/FV3GFS/2019061518``. Since both initial +and lateral boundary condition files are necessary, you can also include an ICS and LBCS directory. +The sample IC/LBCs available at the FTP data repository are structured as follows: + +* ``/path-to/model_data/MODEL/YYYYMMDDHH/ICS`` +* ``/path-to/model_data/MODEL/YYYYMMDDHH/LBCS`` + +When files are pulled from the NOAA HPSS, the naming convention looks something like: + +* FV3GFS (GRIB2): ``gfs.t{cycle}z.pgrb2.0p25.f{fhr}`` +* FV3GFS (NEMSIO): ICs: ``gfs.t{cycle}z.atmanl.nemsio`` and ``gfs.t{cycle}z.sfcanl.nemsio``; + LBCs: ``gfs.t{cycle}z.atmf{fhr}.nemsio`` +* RAP (GRIB2): ``rap.t{cycle}z.wrfprsf{fhr}.grib2`` +* HRRR (GRIB2): ``hrrr.t{cycle}z.wrfprsf{fhr}.grib2`` + +In order to preserve the original file name, the ``f00`` files are placed in the ``ICS`` directory +and all other forecast files are placed in the ``LBCS`` directory. Then, a symbolic link of the +original files in the ``ICS/LBCS`` directory to the ``YYYYMMDDHH`` directory is suggested with +the cycle removed. For example: + +.. code-block:: console + + ln -sf /path-to/model_data/RAP/2020041212/ICS/rap.t12z.wrfprsf00.grib2 /path-to/model_data/RAP/2020041212/rap.wrfprsf00.grib2 + +Doing this allows for the following to be set in the ``config.sh`` regardless of what cycle you are running: + +.. code-block:: console + + USE_USER_STAGED_EXTRN_FILES="TRUE" + EXTRN_MDL_SOURCE_BASEDIR_ICS="/path-to/model_data/HRRR" + EXTRN_MDL_FILES_ICS=( "hrrr.wrfprsf00.grib2" ) + EXTRN_MDL_SOURCE_BASEDIR_LBCS="/path-to/model_data/RAP" + EXTRN_MDL_FILES_LBCS=( "rap.wrfprsf03.grib2" "rap.wrfprsf06.grib2" ) + +If you choose to forgo the extra ``ICS`` and ``LBCS`` directory, you may also simply either +rename the original files to remove the cycle or modify the ``config.sh`` to set: + +.. code-block:: console + + EXTRN_MDL_FILES_ICS=( "hrrr.t{cycle}z.wrfprsf00.grib2" ) + EXTRN_MDL_FILES_LBCS=( "rap.t{cycle}z.wrfprsf03.grib2" "rap.t{cycle}z.wrfprsf06.grib2" ) + +Default Initial and Lateral Boundary Conditions +----------------------------------------------- +The default initial and lateral boundary condition files are set to be a severe weather case +from 20190615 at 00 UTC. FV3GFS GRIB2 files are the default model and file format. A tar file +(``gst_model_data.tar.gz``) containing the model data for this case is available on EMC's FTP +data repository at https://ftp.emc.ncep.noaa.gov/EIB/UFS/SRW/v1p0/simple_test_case/. It is +also available on Amazon Web Services (AWS) at +https://ufs-data.s3.amazonaws.com/public_release/ufs-srweather-app-v1.0.0/ic/gst_model_data.tar.gz. + +Running the App for Different Dates +----------------------------------- +If users want to run the SRW Application for dates other than 06-15-2019, you will need to +make a change in the case to specify the desired data. This is done by modifying the +``config.sh`` ``DATE_FIRST_CYCL``, ``DATE_LAST_CYCL``, and ``CYCL_HRS`` settings. The +forecast length can be modified by changed 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. + +Staging Initial Conditions Manually +----------------------------------- +If users want to run the SRW Application with raw model files for dates other than what +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``. +Raw model files may be 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: + +* GFS (GRIB2 or NEMSIO) - available for the last 10 days + https://nomads.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/ +* NAM - available for the last 8 days + https://nomads.ncep.noaa.gov/pub/data/nccf/com/nam/prod/ +* RAP - available for the last 2 days + https://nomads.ncep.noaa.gov/pub/data/nccf/com/rap/prod/ +* HRRR - available for the last 2 days + https://nomads.ncep.noaa.gov/pub/data/nccf/com/hrrr/prod/ + +NCDC archive: + +* GFS: https://www.ncdc.noaa.gov/data-access/model-data/model-datasets/global-forcast-system-gfs +* NAM: https://www.ncdc.noaa.gov/data-access/model-data/model-datasets/north-american-mesoscale-forecast-system-nam +* RAP: https://www.ncdc.noaa.gov/data-access/model-data/model-datasets/rapid-refresh-rap + +AWS S3: + +* GFS: https://registry.opendata.aws/noaa-gfs-bdp-pds/ +* HRRR: https://registry.opendata.aws/noaa-hrrr-pds/ (necessary fields for initializing available for dates 2015 and newer) + +Google Cloud: + +* HRRR: https://console.cloud.google.com/marketplace/product/noaa-public/hrrr + +Others: + +* Univ. of Utah HRRR archive: http://home.chpc.utah.edu/~u0553130/Brian_Blaylock/cgi-bin/hrrr_download.cgi +* NAM nest archive: https://www.ready.noaa.gov/archives.php +* NAM data older than 6 months can be requested through the Archive Information Request System: https://www.ncei.noaa.gov/has/HAS.FileAppRouter?datasetname=NAM218&subqueryby=STATION&applname=&outdest=FILE +* RAP isobaric data older than 6 months can be requested through the Archive Information Request System: https://www.ncei.noaa.gov/has/HAS.FileAppRouter?datasetname=RAP130&subqueryby=STATION&applname=&outdest=FILE + +Coexistence of Multiple Files for the Same Date +----------------------------------------------- +If you would like to have multiple file formats (e.g., GRIB2, NEMSIO, netCDF) for the same date +it is recommended to have a separate directory for each file format. For example, if you have GFS +GRIB2 and NEMSIO files your directory structure might look like: + +.. code-block:: console + + /path-to/model_data/FV3GFS/YYYYMMDDHH/ICS and LBCS + /path-to/model_data/FV3GFS_nemsio/YYYYMMDDHH/ICS and LBCS + +If you want to use GRIB2 format files for FV3GFS you must also set two additional environment +variables, including: + +.. code-block:: console + + FV3GFS_FILE_FMT_ICS="grib2" + FV3GFS_FILE_FMT_LBCS="grib2" + +This is ONLY necessary if you are using FV3GFS GRIB2 files. These settings may be removed if you +are initializing from NEMSIO format FV3GFS files. + +Best Practices for Conserving Disk Space and Keeping Files Safe +--------------------------------------------------------------- +Initial and lateral boundary condition files are large and can occupy a significant amount of +disk space. If various users will employ a common file system to conduct runs, it is recommended +that the users share the same ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` and ``EXTRN_MDL_SOURCE_BASEDIR_LBCS`` +directories. That way, if raw model input files are already on disk for a given date they do not +need to be replicated. + +The files in the subdirectories of the ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` and ``EXTRN_MDL_SOURCE_BASEDIR_LBCS`` +directories should be write-protected. This prevents these files from being accidentally modified or deleted. +The directories should generally be group writable so the directory can be shared among multiple users. diff --git a/docs/UsersGuide/source/Introduction.rst b/docs/UsersGuide/source/Introduction.rst index 965bc9aa7d..579feac409 100644 --- a/docs/UsersGuide/source/Introduction.rst +++ b/docs/UsersGuide/source/Introduction.rst @@ -4,20 +4,250 @@ Introduction ============ -The UFS Short-Range Weather Application (UFS-SR-Weather-App) provides an -end-to-end system to run the pre-processing tasks, the regional `UFS Weather Model -`_, and -the Unified Post Processor (:term:`UPP`). +The Unified Forecast System (:term:`UFS`) is a community-based, coupled, comprehensive Earth modeling system. +It is designed to be the source system for NOAA’s operational numerical weather prediction applications +while enabling research, development, and contribution opportunities for the broader weather enterprise. +For more information about the UFS, visit the UFS Portal at https://ufscommunity.org/. -How To Use This Document +The UFS can be configured for multiple applications (see a complete list at +https://ufscommunity.org/science/aboutapps/). The configuration described here is the UFS Short-Range +Weather (SRW) Application, which targets predictions of atmospheric behavior on a limited spatial domain +and on time scales from less than an hour out to several days. The SRW Application v1.0 release includes a +prognostic atmospheric model, pre- and post-processing, and a community workflow for running the system +end-to-end, which are documented within the User's Guide and supported through a community forum. +Future work will include expanding the capabilities of the application to include data assimilation +(DA) and a verification package (e.g. METplus) as part of the workflow. This documentation provides an +overview of the release components, a description of the supported capabilities, a quick start guide +for running the application, and information on where to find more information and obtain support. + +The SRW App v1.0.0 citation is as follows and should be used when presenting results based on research +conducted with the App. + +UFS Development Team. (2021, March 4). Unified Forecast System (UFS) Short-Range Weather (SRW) Application +(Version v1.0.0). Zenodo. https://doi.org/10.5281/zenodo.4534994 + +Pre-processor Utilities and Initial Conditions +============================================== + +The SRW Application includes a number of pre-processing utilities to initialize and prepare the +model for integration. For the limited area model (LAM), it is necessary to first generate a +regional grid ``regional_esg_grid/make_hgrid`` along with orography ``orog`` and surface climatology ``sfc_climo_gen`` +files on that grid. There are additional utilities included to handle the correct number of halo ``shave`` +points and topography filtering ``filter_topo``. The pre-processing software ``chgres_cube`` +is used to convert the raw external model data into initial and lateral boundary condition files in netCDF +format, needed as input to the FV3-LAM. Additional information about the UFS pre-processor utilities can +be found in the `UFS_UTILS User’s Guide `_. + +The SRW Application can be initialized from a range of operational initial condition files. It is +possible to initialize the model from GFS, NAM, RAP, and HRRR files in Gridded Binary v2 (GRIB2) +format and GFS in NEMSIO format for past dates. Please note, for GFS data, dates prior to 1 January 2018 may work but are +not guaranteed. Public archives of model data can be accessed through the `National Centers for +Environmental Information `_ +(NCEI) or through the `NOAA Operational Model Archive and Distribution System `_ +(NOMADS). Raw external model data may be pre-staged on disk by the user. + + +Forecast Model +============== + +The prognostic atmospheric model in the UFS SRW Application is the Finite-Volume Cubed-Sphere +(:term:`FV3`) dynamical core configured with a Limited Area Model (LAM) capability :cite:`BlackEtAl2020`. +The dynamical core is the computational part of a model that solves the equations of fluid motion. A User’s +Guide for the UFS :term:`Weather Model` is `here `_. + +Supported model resolutions in this release include a 3-, 13-, and 25-km predefined Contiguous +U.S. (CONUS) domain, all with 64 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 `here +`_ and on the `NOAA Geophysical +Fluid Dynamics Laboratory website `_. + +Interoperable atmospheric physics, along with the Noah Multi-parameterization (Noah MP) +Land Surface Model options, are supported through the Common Community Physics Package +(:term:`CCPP`; described `here `_). +Atmospheric physics are a set of numerical methods describing small-scale processes such +as clouds, turbulence, radiation, and their interactions. There are two physics options +supported for the release. The first is an experimental physics suite 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) v15. 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. + +The SRW App supports the use of both GRIB2 and :term:`NEMSIO` input data. The UFS Weather Model +ingests initial and lateral boundary condition files produced by :term:`chgres_cube` and outputs files in +netCDF format on a specific projection (e.g., Lambert Conformal) in the horizontal and model +levels in the vertical. + +Post-processor +============== + +The SRW Application is distributed with the Unified Post Processor (:term:`UPP`) included in the +workflow as a way to convert the netCDF output on the native model grid to GRIB2 format on +standard isobaric vertical coordinates. UPP can also be used to compute a variety of useful +diagnostic fields, as described in the `UPP user’s guide `_. + +Output from UPP can be used with visualization, plotting, and verification packages, or for +further downstream post-processing, e.g. statistical post-processing techniques. + +Visualization Example +===================== +A Python script is provided to create basic visualization of the model output. The script +is designed to output graphics in PNG format for 14 standard meteorological variables +when using the pre-defined CONUS domain. In addition, a difference plotting script is 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, and may be used to do a visual check to verify +that the application is producing reasonable results. + +The scripts are available in the `regional_workflow repository +`_ +under ush/Python. Usage information and instructions are described in +:numref:`Chapter %s ` and are also included at the top of the script. + +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: the UFS Weather Model and the pre- and +post-processing software. Additional libraries (:term:`NCEPLIBS-external` and :term:`NCEPLIBS`) necessary +for the application are not included in the SRW Application build system, but are available +pre-built on pre-configured platforms. 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 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 (see `Rocoto documentation +`_) in the proper sequence. +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 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, whether to run some or all of the pre-processing, +forecast model, and post-processing steps. + +This SRW Application release has been tested on a variety of platforms widely used by +researchers, such as the NOAA Research and Development High-Performance Computing Systems +(RDHPCS), including Hera, Orion, and Jet; NOAA’s Weather and Climate Operational +Supercomputing System (WCOSS); the National Center for Atmospheric Research (NCAR) Cheyenne +system; NSSL’s HPC machine, Odin; the National Science Foundation Stampede2 system; and +generic Linux and macOS systems using Intel and GNU compilers. Four `levels of support +`_ +have been defined for the SRW Application, including pre-configured (level 1), configurable +(level 2), limited test platforms (level 3), and build only platforms (level 4). Each +level is further described below. + +For the selected computational platforms that have been pre-configured (level 1), all the +required libraries for building the SRW Application are available in a central place. That +means bundled libraries (NCEPLIBS) and third-party libraries (NCEPLIBS-external) have both +been built. The SRW Application is expected to build and run out of the box on these +pre-configured platforms and users can proceed directly to the using the workflow, as +described in the Quick Start (:numref:`Chapter %s `). + +A few additional computational platforms are considered configurable for the SRW +Application release. Configurable platforms (level 2) are platforms where all of +the required libraries for building the SRW Application are expected to install successfully, +but are not available in a central place. Applications and models are expected to build +and run once the required bundled libraries (NCEPLIBS) and third-party libraries (NCEPLIBS-external) +are built. + +Limited-Test (level 3) and Build-Only (level 4) computational platforms are those in which +the developers have built the code but little or no pre-release testing has been conducted, +respectively. A complete description of the levels of support, along with a list of preconfigured +and configurable platforms can be found in the `SRW Application wiki page +`_. + +User Support, Documentation, and Contributing Development +========================================================= + +A forum-based, online `support system `_ with topical sections +provides a centralized location for UFS users and developers to post questions and exchange +information. The forum complements the formal, written documentation, summarized here for ease of +use. + +A list of available documentation is shown in :numref:`Table %s `. + +.. _list_of_documentation: + +.. table:: Centralized list of documentation + + +----------------------------+---------------------------------------------------------------------------------+ + | **Documentation** | **Location** | + +============================+=================================================================================+ + | UFS SRW Application v1.0 | https://ufs-srweather-app.readthedocs.io/en/ufs-v1.0.0 | + | User's Guide | | + +----------------------------+---------------------------------------------------------------------------------+ + | UFS_UTILS v2.0 User's | https://noaa-emcufs-utils.readthedocs.io/en/ufs-v2.0.0/ | + | Guide | | + +----------------------------+---------------------------------------------------------------------------------+ + | UFS Weather Model v2.0 | https://ufs-weather-model.readthedocs.io/en/ufs-v2.0.0 | + | User's Guide | | + +----------------------------+---------------------------------------------------------------------------------+ + | NCEPLIBS Documentation | https://github.com/NOAA-EMC/NCEPLIBS/wiki | + +----------------------------+---------------------------------------------------------------------------------+ + | NCEPLIBS-external | https://github.com/NOAA-EMC/NCEPLIBS-external/wiki | + | Documentation | | + +----------------------------+---------------------------------------------------------------------------------+ + | FV3 Documentation | https://noaa-emc.github.io/FV3_Dycore_ufs-v2.0.0/html/index.html | + +----------------------------+---------------------------------------------------------------------------------+ + | CCPP Scientific | https://dtcenter.ucar.edu/GMTB/v5.0.0/sci_doc/index.html | + | Documentation | | + +----------------------------+---------------------------------------------------------------------------------+ + | CCPP Technical | https://ccpp-techdoc.readthedocs.io/en/v5.0.0/ | + | Documentation | | + +----------------------------+---------------------------------------------------------------------------------+ + | ESMF manual | http://earthsystemmodeling.org/docs/release/ESMF_8_0_0/ESMF_usrdoc/ | + +----------------------------+---------------------------------------------------------------------------------+ + | Unified Post Processor | https://upp.readthedocs.io/en/upp-v9.0.0/ | + +----------------------------+---------------------------------------------------------------------------------+ + +The UFS community is encouraged to contribute to the development effort of all related +utilities, model code, and infrastructure. Issues can be posted in the GitHub repository +for the SRW Application or the relevant subcomponent to report bugs or to announce upcoming +contributions to the code base. For code to be accepted in the authoritative repositories, +the code management rules of each component (described in the User’s Guides listed in +:numref:`Table %s ` need to be followed. + +Future Direction +================ + +Users can expect to see incremental improvements and additional capabilities in upcoming +releases of the SRW Application to enhance research opportunities and support operational +forecast implementations. Planned advancements include: + +* A more extensive set of supported developmental physics suites. +* A larger number of pre-defined domains/resolutions and a fully supported capability to create a user-defined domain. +* Inclusion of data assimilation, cycling, and ensemble capabilities. +* A verification package (i.e., METplus) integrated into the workflow. +* Inclusion of stochastic perturbation techniques. + +In addition to the above list, other improvements will be addressed in future releases. + + +How to Use This Document ======================== This guide instructs both novice and experienced users on downloading, -building and running the SR Weather Application. +building and running the SRW Application. Please post questions in the +UFS forum at https://forums.ufscommunity.org/. .. code-block:: console - Throughout the guide, this presentation style indicates shell - commands and options, fragments of code, namelist variables, etc. + Throughout the guide, this presentation style indicates shell + commands and options, code examples, etc. + + +.. note:: + Variables presented as ``AaBbCc123`` in this document typically refer to variables + in scripts, names of files and directories. +.. bibliography:: references.bib diff --git a/docs/UsersGuide/source/LAMGrids.rst b/docs/UsersGuide/source/LAMGrids.rst new file mode 100644 index 0000000000..f76f3565d8 --- /dev/null +++ b/docs/UsersGuide/source/LAMGrids.rst @@ -0,0 +1,248 @@ +.. _LAMGrids: + +======================================================================== +Limited Area Model (LAM) Grids: Predefined and User-Generated Options +======================================================================== +In order to set up the workflow and experiment generation of the UFS SRW App, the user +must choose between three predefined FV3-LAM grids, or generate a user-defined grid. +At this time, full support will only be provided to those using one of the three predefined +grids supported in this release. However, preliminary information is provided at the end of +this chapter that describes how users can leverage the SRW App workflow scripts to generate +their own user-defined grid. This feature is not fully supported at this time and is +‘use at your own risk’. + +Predefined Grids +================ +The UFS SRW App release includes three predefined LAM grids that users can choose from +prior to generating a workflow/experiment configuration. To select a predefined grid, +the ``PREDEF_GRID_NAME`` variable within the ``config.sh`` script needs to be set to one +of the following three options: + +* ``RRFS_CONUS_3km`` +* ``RRFS_CONUS_13km`` +* ``RRFS_CONUS_25km`` + +.. _RRFS_CONUS_3km: + +.. figure:: _static/RRFS_CONUS_3km.sphr.native_wrtcmp.png + + *The boundary of the RRFS_CONUS_3km computational grid (red) and corresponding write-component grid (blue).* + +The predefined grids are named after the prototype 3-km continental United States (CONUS) grid being +tested for the Rapid Refresh Forecast System (RRFS), which will be a convection-allowing, +hourly-cycled, FV3-LAM-based ensemble planned for operational implementation in 2024. To allow +for use of High Resolution Rapid Refresh (`HRRR `_) data to +initialize the SRW App, all three supported grids were created to fit completely within the HRRR domain. +Three resolution options were provided for flexibility related to compute resources +and physics options. For example, a user may wish to use the 13-km or 25-km domain when running +with the ``FV3_GFS_v15p2`` suite definition file (SDF), since that SDF uses cumulus physics that are +not configured to run at 3-km. In addition, users will have much fewer computational +constraints when running with the 13-km and 25-km domains. + +The boundary of the ``RRFS_CONUS_3km`` domain is shown in :numref:`Figure %s ` (in red). +Note that while it is possible to initialize the FV3-LAM with coarser external model data when using the +``RRFS_CONUS_3km`` domain, it is generally advised to use external model data that has a resolution +similar to that of the native FV3-LAM (predefined) grid. In addition, this grid is ideal for running the +``FV3_RRFS_v1alpha`` suite definition file (SDF), since this SDF was specifically created for convection-allowing scales, and is the +precursor to the operational physics suite that will be used in the RRFS. + +As can be seen in :numref:`Figure %s `, the boundary of the write-component grid (in blue) sits +just inside the computational domain (in red). This extra grid is required because the post-processing +utility (UPP) is currently unable to process data on the native FV3 gnomonic grid (in red). Therefore, +model data are interpolated to a Lambert conformal grid (the write component grid) in order for UPP to +read in and correctly process the data. + +The ``RRFS_CONUS_13km`` grid (:numref:`Fig. %s `) also covers the full CONUS, +but due to its coarser resolution, and the need to remain within the HRRR domain, areas of the +contiguous United States, such as Northern Washington, Southern Texas, and the Florida Keys, are +closer to the boundaries of the grid than in the ``RRFS_CONUS_3km`` grid. This grid is meant to +be run with the ``FV3_GFS_v15p2`` SDF. + +.. _RRFS_CONUS_13km: + +.. figure:: _static/RRFS_CONUS_13km.sphr.native_wrtcmp.png + + *The boundary of the RRFS_CONUS_13km computational grid (red) and corresponding write-component grid (blue).* + +The final predefined CONUS grid (:numref:`Fig. %s `) uses a 25-km resolution and +is meant mostly for quick testing to ensure functionality prior to using a higher-resolution domain. +However, for users who would like to use this domain for research, the ``FV3_GFS_v15p2`` SDF is recommended. + +.. _RRFS_CONUS_25km: + +.. figure:: _static/RRFS_CONUS_25km.sphr.native_wrtcmp.png + + *The boundary of the RRFS_CONUS_25km computational grid (red) and corresponding write-component grid (blue).* + +Creating User-Generated Grids +============================= +While the three predefined grids available in this release are ideal for users just starting +out with the SRW App, more advanced users may wish to create their own grid for testing over +a different region and/or with a different resolution. Creating a user-defined grid requires +knowledge of how the SRW App workflow functions, in particular, understanding the set of +scripts that handle the workflow and experiment generation. It is also important to note that +user-defined grids are not a supported feature of the current release, however information is +being provided for the benefit of the FV3-LAM community. + +With those caveats in mind, this section provides instructions for adding a new grid to the FV3-LAM +workflow that will be generated using the "ESGgrid" method (i.e. using the regional_esg_grid code +in the UFS_UTILS repository, where ESG stands for "Extended Schmidt Gnomonic"). We assume here +that the grid to be generated covers a domain that (1) does not contain either of the poles and +(2) does not cross the -180 deg --> +180 deg discontinuity in longitude near the international +date line. Instructions for domains that do not have these restrictions will be provided in a future release. + +The steps to add such a grid to the workflow are as follows: + +#. Decide on 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. + +#. In the file ``ufs-srweather-app/regional_workflow/ush/set_predef_grid_params.sh``, add a stanza to + the case statement ``case ${PREDEF_GRID_NAME} in`` for NEW_GRID. An example of such a stanza + is given 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 (this file is named ``config.sh`` and is located in the directory +``ufs-srweather-app/regional_workflow/ush``) 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 ``generate_FV3LAM_wflow.sh`` in the usual way. + +The following is an example of a stanza for "NEW_GRID" to be added to ``set_predef_grid_params.sh``: + +.. code-block:: console + + # + #--------------------------------------------------------------------- + # + # Stanza for NEW_GRID. This grid covers [provide a description of the + # domain that NEW_GRID covers, its grid cell size, etc]. + # + #--------------------------------------------------------------------- + # + "NEW_GRID") + + # The method used to generate the grid. This example is specifically + # for the "ESGgrid" method. + GRID_GEN_METHOD= "ESGgrid" + + # The longitude and latitude of the center of the grid, in degrees. + ESGgrid_LON_CTR=-97.5 + ESGgrid_LAT_CTR=38.5 + + # The grid cell sizes in the x and y directions, where x and y are the + # native coordinates of any ESG grid. The units of x and y are in + # meters. These should be set to the nominal resolution we want the + # grid to have. The cells will have exactly these sizes in xy-space + # (computational space) but will have varying size in physical space. + # The advantage of the ESGgrid generation method over the GFDLgrid + # method is that an ESGgrid will have a much smaller variation in grid + # size in physical space than a GFDLgrid. + ESGgrid_DELX="25000.0" + ESGgrid_DELY="25000.0" + + # The number of cells along the x and y axes. + ESGgrid_NX=200 + ESGgrid_NY=112 + + # The width of the halo (in units of grid cells) that the temporary + # wide-halo grid created during the grid generation task (make_grid) + # will have. This wide-halo grid gets "shaved" down to obtain the + # 4-cell-wide halo and 3-cell-wide halo grids that the forecast model + # (as well as other codes) will actually use. Recall that the halo is + # needed to provide lateral boundary conditions to the forecast model. + # Usually, there is no need to modify this parameter. + ESGgrid_WIDE_HALO_WIDTH=6 + + # The default physics time step that the forecast model will use. This + # is the (inverse) frequency with which (most of) the physics suite is + # called. The smaller the grid cell size is, the smaller this value + # 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. + if [ "${CCPP_PHYS_SUITE}" = "FV3_GFS_v15p2" ]; then + DT_ATMOS=${DT_ATMOS:-"300"} + elif [ "${CCPP_PHYS_SUITE}" = "FV3_RRFS_v1alpha" ]; then + DT_ATMOS=${DT_ATMOS:-"40"} + else + DT_ATMOS=${DT_ATMOS:-"40"} + fi + + # 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. + LAYOUT_X=${LAYOUT_X:-"5"} + LAYOUT_Y=${LAYOUT_Y:-"2"} + BLOCKSIZE=${BLOCKSIZE:-"40"} + + # The parameters for the write-component (aka "quilting") grid. This + # is the grid to which the output fields from the forecast are + # interpolated. The output fields are not specified on the native grid + # but are instead remapped to this write-component grid because the + # post-processing software (UPP; called during the run_post tasks) is + # not able to process fields on the native grid. The variable + # "QUILTING", which specifies whether or not to use the + # write-component grid, is by default set to "TRUE". + if [ "$QUILTING" = "TRUE" ]; then + + # The number of "groups" of MPI tasks that may be running at any given + # time to write out the output. Each write group will be writing to + # one set of output files (a dynf${fhr}.nc and a phyf${fhr}.nc file, + # where $fhr is the forecast hour). Each write group contains + # WRTCMP_write_tasks_per_group tasks. Usually, it is sufficient to + # have just one write group. This may need to be increased if the + # forecast is proceeding so quickly that a single write group cannot + # complete writing to its set of files before there is a need/request + # to start writing the next set of files at the next output time (this + # can happen, for instance, if the forecast model is trying to write + # output at every time step). + WRTCMP_write_groups="1" + + # The number of MPI tasks to allocate to each write group. + WRTCMP_write_tasks_per_group="2" + + # The coordinate system in which the write-component grid is + # specified. See the array valid_vals_WRTCMP_output_grid (defined in + # the script valid_param_vals.sh) for the values this can take on. + # The following example is specifically for the Lambert conformal + # coordinate system. + WRTCMP_output_grid="lambert_conformal" + + # The longitude and latitude of the center of the write-component + # grid. + WRTCMP_cen_lon="${ESGgrid_LON_CTR}" + WRTCMP_cen_lat="${ESGgrid_LAT_CTR}" + + # The first and second standard latitudes needed for the Lambert + # conformal coordinate mapping. + WRTCMP_stdlat1="${ESGgrid_LAT_CTR}" + WRTCMP_stdlat2="${ESGgrid_LAT_CTR}" + + # The number of grid points in the x and y directions of the + # write-component grid. Note that this xy coordinate system is that of + # the write-component grid (which in this case is Lambert conformal). + # Thus, it is in general different than the xy coordinate system of + # the native ESG grid. + WRTCMP_nx="197" + WRTCMP_ny="107" + + # The longitude and latitude of the lower-left corner of the + # write-component grid, in degrees. + WRTCMP_lon_lwr_left="-121.12455072" + WRTCMP_lat_lwr_left="23.89394570" + + # The grid cell sizes along the x and y directions of the + # write-component grid. Units depend on the coordinate system used by + # the grid (i.e. the value of WRTCMP_output_grid). For a Lambert + # conformal write-component grid, the units are in meters. + WRTCMP_dx="${ESGgrid_DELX}" + WRTCMP_dy="${ESGgrid_DELY}" + + fi + ;; + diff --git a/docs/UsersGuide/source/Quickstart.rst b/docs/UsersGuide/source/Quickstart.rst index af6edf08a4..27163d9046 100644 --- a/docs/UsersGuide/source/Quickstart.rst +++ b/docs/UsersGuide/source/Quickstart.rst @@ -1,71 +1,321 @@ .. _Quickstart: -========== -Quickstart -========== -To build and run the UFS Short-Range Weather Application, the user must get the workflow scripts, -and source code for the UFS_UTILS pre-processor, the UFS Weather Model, and the Unified -Post Processor (:term:`UPP`). Obtaining the source code is simplified by the use of *manage_externals*, -which allows the user to clone an umbrella repository and all of the necessary sub-repositories. -The steps described in this chapter assume that the necessary software/operating system -requirements and libraries described in :numref:`Section %s ` are built -and available as modules on your machine. +==================== +Workflow Quick Start +==================== +To build and run the out-of-the-box case of the UFS Short-Range Weather (SRW) Application the user +must get the source code for multiple components, including: the regional workflow, the UFS_UTILS +pre-processor utilities, the UFS Weather Model, and the Unified Post Processor (UPP). Once the UFS +SRW Application umbrella repository is cloned, obtaining the necessary external repositories is +simplified by the use of ``manage_externals``. The out-of-the-box case uses a predefined 25-km +CONUS grid (RRFS_CONUS_25km), the GFS version 15.2 physics suite (FV3_GFS_v15p2 CCPP), and +FV3-based GFS raw external model data for initialization. -.. _ObtainingCode: +.. note:: + + The steps described in this chapter are applicable to preconfigured (Level 1) machines where + all of the required libraries for building community releases of UFS models and applications + are available in a central place (i.e. the bundled libraries (NCEPLIBS) and third-party + libraries (NCEPLIBS-external) have both been built). The Level 1 platforms are listed `here + `_. + For more information on compiling NCEPLIBS-external and NCEPLIBS, please refer to the + NCEPLIBS-external `wiki `_. -Obtaining the Source Code -========================= -The necessary source code is publicly available on github. To clone the latest version of the code: + +Download the UFS SRW Application Code +===================================== +The necessary source code is publicly available on GitHub. To clone the release branch of the repository: .. code-block:: console - git clone https://github.com/ufs-community/ufs-srweather-app.git + git clone -b ufs-v1.0.0 https://github.com/ufs-community/ufs-srweather-app.git cd ufs-srweather-app - git checkout master + +Then, check out the submodules for the SRW application: + +.. code-block:: console + ./manage_externals/checkout_externals -This steps will create a directory called ``ufs-srweather-app`` and check out the ``master`` branch. -``manage_externals/checkout_externals`` command will clone the additional repositories needed by the workflow. The ``checkout_externals`` script uses the configuration file ``Externals.cfg`` in the top level directory -and will clone the pre-processor source code, the :term:`UFS` :term:`Weather Model`, and :term:`UPP` source -code into the appropriate directories under your regional_workflow directory. +and will clone the regional workflow, pre-processing utilities, UFS Weather Model, and UPP source code +into the appropriate directories under your ``regional_workflow`` and ``src`` directories. + + +Set up the Build Environment +============================ +Instructions for loading the proper modules and/or setting the correct environment variables can be +found in the ``env/`` directory in files named ``build__.env``. +The commands in these files can be directly copy-pasted to the command line or the file can be sourced. +You may need to modify certain variables such as the path to NCEP libraries for your individual platform, +or use ``setenv`` rather than ``export`` depending on your environment: + +.. code-block:: console + + $ ls -l env/ + -rw-rw-r-- 1 user ral 466 Jan 21 10:09 build_cheyenne_intel.env + -rw-rw-r-- 1 user ral 461 Jan 21 10:09 build_hera_intel.env + -rw-rw-r-- 1 user ral 543 Jan 21 10:09 build_jet_intel.env + +Build the Executables +===================== +Build the executables as follows: + +.. code-block:: console + + mkdir build + cd build + +Run ``cmake`` to set up the ``Makefile``, then run ``make``: + +.. code-block:: console + + cmake .. -DCMAKE_INSTALL_PREFIX=.. + make -j 4 >& build.out & + +Output from the build will be in the ``ufs-srweather-app/build/build.out`` file. +When the build completes, you should see the forecast model executable ``NEMS.exe`` and eleven +pre- and post-processing executables in the ``ufs-srweather-app/bin`` directory which are +described in :numref:`Table %s `. + +Generate the Workflow Experiment +================================ +Generating the workflow experiment requires three steps: + +* Set experiment parameters in config.sh +* Set Python and other environment parameters +* Run the ``generate_FV3LAM_wflow.sh`` script + +The first two steps depend on the platform being used and are described here for each Level 1 platform. + +.. _SetUpConfigFile: + +Set up ``config.sh`` file +------------------------- +The workflow requires a file called ``config.sh`` to specify the values of your experiment parameters. +Two example templates are provided: ``config.community.sh`` and ``config.nco.sh`` and can be found in +the ``ufs-srweather-app/regional_workflow/ush directory``. The first file is a minimal example for +creating and running an experiment in the *community* mode (with ``RUN_ENVIR`` set to ``community``), +while the second is an example of 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 will be +fully supported for this release while the operational mode will be more exclusively used by NOAA/NCEP +Central Operations (NCO) and those in the NOAA/NCEP/Environmental Modeling Center (EMC) working with +NCO on pre-implementation testing. Sample config.sh files are discussed in this section for Level 1 platforms. + +Make a copy of ``config.community.sh`` to get started (under /path-to-ufs-srweather-app/regional_workflow/ush): + +.. code-block:: console + + cd ../regional_workflow/ush + cp config.community.sh config.sh + +Edit the ``config.sh`` file to set the machine you are running on to ``MACHINE``, use an account you can charge for +``ACCOUNT``, and set the name of the experiment with ``EXPT_SUBDIR``. If you have access to the NOAA HPSS from the +machine you are running on, those changes should be sufficient; however, if that is not the case (for example, +on Cheyenne), or if you have pre-staged the initialization data you would like to use, you will also want to 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``. + +At a minimum, the following parameters should be set for the machine you are using: + +For Cheyenne: + +.. code-block:: console + + MACHINE="cheyenne" + ACCOUNT="my_account" + EXPT_SUBDIR="my_expt_name" + USE_USER_STAGED_EXTRN_FILES="TRUE" + EXTRN_MDL_SOURCE_BASEDIR_ICS="/glade/p/ral/jntp/UFS_SRW_app/model_data/FV3GFS" + EXTRN_MDL_SOURCE_BASEDIR_LBCS="/glade/p/ral/jntp/UFS_SRW_app/model_data/FV3GFS" + +For Hera: + +.. code-block:: console + + MACHINE="hera" + ACCOUNT="my_account" + EXPT_SUBDIR="my_expt_name" + +For Jet: + +.. code-block:: console + + MACHINE="jet" + ACCOUNT="my_account" + EXPT_SUBDIR="my_expt_name" + +For Orion: + +.. code-block:: console + + MACHINE="orion" + ACCOUNT="my_account" + EXPT_SUBDIR="my_expt_name" + +For Gaea: + +.. code-block:: console + + MACHINE="gaea" + ACCOUNT="my_account" + EXPT_SUBDIR="my_expt_name" + +For WCOSS, edit ``config.sh`` with these WCOSS-specific parameters, and use a valid WCOSS +project code for the account parameter: + +.. code-block:: console -Building the Source Code -======================== -Build the preprocessing utilities, forecast model, and post-processor as follows: + MACHINE=”wcoss_cray” or MACHINE=”wcoss_dell_p3” + ACCOUNT="my_account" + EXPT_SUBDIR="my_expt_name" + +.. _SetUpPythonEnv: + +Set up the Python and other Environment Parameters +-------------------------------------------------- +Next, it is necessary to load the appropriate Python environment for the 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 can be activated in +the following way (when in /path-to-ufs-srweather-app/regional_workflow/ush): + +.. code-block:: console + + source ../../env/wflow_.env + +Run the ``generate_FV3LAM_wflow.sh`` script +------------------------------------------- +For all platforms, the workflow can then be generated with the command: + +.. code-block:: console + + ./generate_FV3LAM_wflow.sh + +The generated workflow will be in ``$EXPTDIR``, where ``EXPTDIR=${EXPT_BASEDIR}/${EXPT_SUBDIR}``. A +log file called ``log.generate_FV3LAM_wflow`` is generated by this step and can also be found in +``$EXPTDIR``. The settings for these paths can be found in the output from the +``./generate_FV3LAM_wflow.sh`` script. + +Run the Workflow Using Rocoto +============================= +The information in this section assumes that Rocoto is available on the desired platform. +If Rocoto is not available, it is still possible to run the workflow using stand-alone scripts +described in :numref:`Section %s `. There are two ways you can run +the workflow with Rocoto using either the ``./launch_FV3LAM_wflow.sh`` or by hand. + +An environment variable may be set to navigate to the ``$EXPTDIR`` more easily. If the login +shell is bash, it can be set as follows: + +.. code-block:: console + + export EXPTDIR=/path-to-experiment/directory + +Or if the login shell is csh/tcsh, it can be set using: + +.. code-block:: console + + setenv EXPTDIR /path-to-experiment/directory + +To run Rocoto using the script: + +.. code-block:: console + + cd $EXPTDIR + ./launch_FV3LAM_wflow.sh + +Once the workflow is launched with the ``launch_FV3LAM_wflow.sh`` script, a log file named +``log.launch_FV3LAM_wflow`` will be created (or appended to it if it already exists) in ``EXPTDIR``. + +Or to manually call Rocoto: + +First load the Rocoto module, depending on the platform used. + +For Cheyenne: .. code-block:: console - cd ufs-srweather-app/src - ./build_all.sh >& build.out & + module use -a /glade/p/ral/jntp/UFS_SRW_app/modules/ + module load rocoto -This will likely take ~30 minutes. Log files will be written in the ``ufs-srweather-app/src/logs`` directory. -When the build completes, you should see the following executables in the ``ufs-srweather-app/exec`` directory: +For Hera or Jet: .. code-block:: console - chgres_cube.exe - filter_topo - fregrid - fregrid_parallel - global_equiv_resol - make_hgrid - make_hgrid_parallel - make_solo_mosaic - mosaic_file - ncep_post - orog.x - regional_grid - sfc_climo_gen - shave.x + module purge + module load rocoto -These are the pre- and post-processing executables. The forecast executable ``fv3.exe`` resides in -``ufs-srweather-app/src/ufs_weather_model/tests`` and is built, by default, with the Common Community -Physics Package (:term:`CCPP`). For more information on the CCPP, see -`here `_ enabled. -For more information on the UFS Weather Model build options, see -https://ufs-weather-model.readthedocs.io/en/latest/CompilingCodeWithoutApp.html. +For Orion: + +.. code-block:: console + + module purge + module load contrib rocoto + +For Gaea: + +.. code-block:: console + + module use /lustre/f2/pdata/esrl/gsd/contrib/modulefiles + module load rocoto/1.3.3 + +For WCOSS_DELL_P3: + +.. code-block:: console + + module purge + module load lsf/10.1 + module use /gpfs/dell3/usrx/local/dev/emc_rocoto/modulefiles/ + module load ruby/2.5.1 rocoto/1.2.4 + +For WCOSS_CRAY: + +.. code-block:: console + + module purge + module load xt-lsfhpc/9.1.3 + module use -a /usrx/local/emc_rocoto/modulefiles + module load rocoto/1.2.4 + +Then manually call ``rocotorun`` to launch the tasks that have all dependencies satisfied +and ``rocotostat`` to monitor the progress: + +.. code-block:: console + + cd $EXPTDIR + rocotorun -w FV3LAM_wflow.xml -d FV3LAM_wflow.db -v 10 + rocotostat -w FV3LAM_wflow.xml -d FV3LAM_wflow.db -v 10 + +For automatic resubmission of the workflow (e.g., every 3 minutes), the following line can be added +to the user's crontab (use ``crontab -e`` to edit the cron table). + +.. code-block:: console + + */3 * * * * cd /glade/p/ral/jntp/$USER/expt_dirs/test_CONUS_25km_GFSv15p2 && ./launch_FV3LAM_wflow.sh .. note:: - You must first complete the build steps before proceeding to the workflow generation and run steps below. + Currently cron is only available on the orion-login-1 node, so please use that node. + +The workflow run is completed when all tasks have “SUCCEEDED”, and the rocotostat command will output the following: + +.. code-block:: console + + CYCLE TASK JOBID STATE EXIT STATUS TRIES DURATION + ========================================================================================================== + 201906150000 make_grid 4953154 SUCCEEDED 0 1 5.0 + 201906150000 make_orog 4953176 SUCCEEDED 0 1 26.0 + 201906150000 make_sfc_climo 4953179 SUCCEEDED 0 1 33.0 + 201906150000 get_extrn_ics 4953155 SUCCEEDED 0 1 2.0 + 201906150000 get_extrn_lbcs 4953156 SUCCEEDED 0 1 2.0 + 201906150000 make_ics 4953184 SUCCEEDED 0 1 16.0 + 201906150000 make_lbcs 4953185 SUCCEEDED 0 1 71.0 + 201906150000 run_fcst 4953196 SUCCEEDED 0 1 1035.0 + 201906150000 run_post_f000 4953244 SUCCEEDED 0 1 5.0 + 201906150000 run_post_f001 4953245 SUCCEEDED 0 1 4.0 + ... + 201906150000 run_post_f048 4953381 SUCCEEDED 0 1 7.0 + +Plot the Output +=============== +Two python scripts are provided to generate plots from the FV3-LAM post-processed GRIB2 output. Information +on how to generate the graphics can be found in :numref:`Chapter %s `. diff --git a/docs/UsersGuide/source/RocotoInfo.rst b/docs/UsersGuide/source/RocotoInfo.rst new file mode 100644 index 0000000000..03d13571cb --- /dev/null +++ b/docs/UsersGuide/source/RocotoInfo.rst @@ -0,0 +1,233 @@ +.. _RocotoInfo: + +============================= +Additional Rocoto Information +============================= +The tasks in the SRW Application (:numref:`Table %s `) are typically run using +the Rocoto Workflow Manager. Rocoto is a Ruby program that interfaces with the batch system on an +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 +cycles. More information on Rocoto can be found at https://github.com/christopherwharrop/rocoto/wiki/documentation. + +The SRW App workflow is defined in a Jinja-enabled Rocoto XML template called ``FV3LAM_wflow.xml``, +which resides in the ``regional_workflow/ufs/templates`` directory. When the ``generate_FV3LAM_wflow.sh`` +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``. + +There are a number of Rocoto commands available to run and monitor the workflow and can be found in the +complete `Rocoto documentation `_. +Descriptions and examples of commonly used commands are discussed below. + +rocotorun +========= +The ``rocotorun`` command is used to run the workflow by submitting tasks to the batch system. It will +automatically resubmit failed tasks and can recover from system outages without user intervention. +An example is: + +.. code-block:: console + + rocotorun -w /path/to/workflow/xml/file -d /path/to/workflow/database/file -v 10 + +where + +* ``-w`` specifies the name of the workflow definition file. This must be an XML file. +* ``-d`` specifies the name of the database file that is to be used to store the state of the workflow. + The database file is a binary file created and used only by Rocoto and need not exist prior to the first + time the command is run. +* ``-v`` (optional) specified level of verbosity. If no level is specified, a level of 1 is used. + +From the ``$EXPTDIR`` directory, the ``rocotorun`` command for the workflow would be: + +.. code-block:: console + + rocotorun -w FV3LAM_wflow.xml -d FV3LAM_wflow.db + +It is important to note that the ``rocotorun`` process is iterative; the command must be executed +many times before the entire workflow is completed, usually every 2-10 minutes. This command can be +placed in the user’s crontab and cron will call it with a specified frequency. More information on +this command can be found at https://github.com/christopherwharrop/rocoto/wiki/documentation. + +The first time the ``rocotorun`` command is executed for a workflow, the files ``FV3LAM_wflow.db`` and +``FV3LAM_wflow_lock.db`` are created. There is usually no need for the user to modify these files. +Each time this command is executed, the last known state of the workflow is read from the ``FV3LAM_wflow.db`` +file, the batch system is queried, jobs are submitted for tasks whose dependencies have been satisfied, +and the current state of the workflow is saved in ``FV3LAM_wflow.db``. If there is a need to relaunch +the workflow from scratch, both database files can be deleted, and the workflow can be run using ``rocotorun`` +or the launch script ``launch_FV3LAM_wflow.sh`` (executed multiple times as described above). + +rocotostat +========== +``rocotostat`` is a tool for querying the status of tasks in an active Rocoto workflow. Once the +workflow has been started with the ``rocotorun`` command, Rocoto can also check the status of the +workflow using the ``rocotostat`` command: + +.. code-block:: console + + rocotostat -w /path/to/workflow/xml/file -d /path/to/workflow/database/file + +Executing this command will generate a workflow status table similar to the following: + +.. code-block:: console + + CYCLE TASK JOBID STATE EXIT STATUS TRIES DURATION + ============================================================================================================================= + 201907010000 make_grid 175805 QUEUED - 0 0.0 + 201907010000 make_orog - - - - - + 201907010000 make_sfc_climo - - - - - + 201907010000 get_extrn_ics druby://hfe01:36261 SUBMITTING - 0 0.0 + 201907010000 get_extrn_lbcs druby://hfe01:36261 SUBMITTING - 0 0.0 + 201907010000 make_ics - - - - - + 201907010000 make_lbcs - - - - - + 201907010000 run_fcst - - - - - + 201907010000 run_post_f000 - - - - - + 201907010000 run_post_f001 - - - - - + 201907010000 run_post_f002 - - - - - + 201907010000 run_post_f003 - - - - - + 201907010000 run_post_f004 - - - - - + 201907010000 run_post_f005 - - - - - + 201907010000 run_post_f006 - - - - - + +This table indicates that the ``make_grid`` task was sent to the batch system and is now queued, while +the ``get_extrn_ics`` and ``get_extrn_lbcs`` tasks for the ``201907010000`` cycle are in the process of being +submitted to the batch system. + +Note that issuing a ``rocotostat`` command without an intervening ``rocotorun`` command will not result in an +updated workflow status table; it will print out the same table. It is the ``rocotorun`` command that updates +the workflow database file (in this case ``FV3LAM_wflow.db``, located in ``$EXPTDIR``); the ``rocotostat`` command +reads the database file and prints the table to the screen. To see an updated table, the ``rocotorun`` command +must be executed followed by the ``rocotostat`` command. + +After issuing the ``rocotorun`` command several times (over the course of several minutes or longer, depending +on your grid size and computational resources), the output of the ``rocotostat`` command should look like this: + +.. code-block:: console + + CYCLE TASK JOBID STATE EXIT STATUS TRIES DURATION + ============================================================================================================================ + 201907010000 make_grid 175805 SUCCEEDED 0 1 10.0 + 201907010000 make_orog 175810 SUCCEEDED 0 1 27.0 + 201907010000 make_sfc_climo 175822 SUCCEEDED 0 1 38.0 + 201907010000 get_extrn_ics 175806 SUCCEEDED 0 1 37.0 + 201907010000 get_extrn_lbcs 175807 SUCCEEDED 0 1 53.0 + 201907010000 make_ics 175825 SUCCEEDED 0 1 99.0 + 201907010000 make_lbcs 175826 SUCCEEDED 0 1 90.0 + 201907010000 run_fcst 175937 RUNNING - 0 0.0 + 201907010000 run_post_f000 - - - - - + 201907010000 run_post_f001 - - - - - + 201907010000 run_post_f002 - - - - - + 201907010000 run_post_f003 - - - - - + 201907010000 run_post_f004 - - - - - + 201907010000 run_post_f005 - - - - - + 201907010000 run_post_f006 - - - - - + +When the workflow runs to completion, all tasks will be marked as SUCCEEDED. The log files from the tasks +are located in ``$EXPTDIR/log``. If any tasks fail, the corresponding log file can be checked for error +messages. Optional arguments for the ``rocotostat`` command can be found at https://github.com/christopherwharrop/rocoto/wiki/documentation. + +.. _rocotocheck: + +rocotocheck +=========== +Sometimes, issuing a ``rocotorun`` command will not cause the next task to launch. ``rocotocheck`` is a +tool that can be used to query detailed information about a task or cycle in the Rocoto workflow. To +determine the cause of a particular task not being submitted, the ``rocotocheck`` command can be used +from the ``$EXPTDIR`` directory as follows: + +.. code-block:: console + + rocotocheck -w /path/to/workflow/xml/file -d /path/to/workflow/database/ file -c YYYYMMDDHHMM -t taskname + +where + +* ``-c`` is the cycle to query +* ``-t`` is the task name + +A specific example is: + +.. code-block:: console + + rocotocheck -w FV3LAM_wflow.xml -d FV3LAM_wflow.db -v 10 -c 201907010000 -t run_fcst + +This will result in output similar to the following: + +.. code-block:: console + :emphasize-lines: 8,19,34 + + 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" + cores: 24 + final: false + jobname: run_FV3 + join: /scratch2/BMC/det/$USER/expt_dirs/test_community/log/run_fcst_2019070100.log + maxtries: 3 + name: run_fcst + nodes: 1:ppn=24 + queue: batch + throttle: 9999999 + walltime: 04:30:00 + environment + CDATE ==> 2019070100 + CYCLE_DIR ==> /scratch2/BMC/det/$USER/UFS_CAM/expt_dirs/test_community/2019070100 + PDY ==> 20190701 + SCRIPT_VAR_DEFNS_FP ==> /scratch2/BMC/det/$USER/expt_dirs/test_community/var_defns.sh + dependencies + AND is satisfied + make_ICS_surf_LBC0 of cycle 201907010000 is SUCCEEDED + make_LBC1_to_LBCN of cycle 201907010000 is SUCCEEDED + + Cycle: 201907010000 + Valid for this task: YES + State: active + Activated: 2019-10-29 18:13:10 UTC + Completed: - + Expired: - + + Job: 513615 + State: DEAD (FAILED) + Exit Status: 1 + Tries: 3 + Unknown count: 0 + Duration: 58.0 + +This shows that although all dependencies for this task are satisfied (see the dependencies section, highlighted above), +it cannot run because its ``maxtries`` value (highlighted) is 3. Rocoto will attempt to launch it at most 3 times, +and it has already been tried 3 times (the ``Tries`` value, also highlighted). + +The output of the ``rocotocheck`` command is often useful in determining whether the dependencies for a given task +have been met. If not, the dependencies section in the output of ``rocotocheck`` will indicate this by stating that a +dependency "is NOT satisfied". + +rocotorewind +============ +``rocotorewind`` is a tool that attempts to undo the effects of running a task and is commonly used to rerun part +of a workflow that has failed. If a task fails to run (the STATE is DEAD), and needs to be restarted, the ``rocotorewind`` +command will rerun tasks in the workflow. The command line options are the same as those described in the ``rocotocheck`` +:numref:`section %s `, and the general usage statement looks like: + +.. code-block:: console + + rocotorewind -w /path/to/workflow/xml/file -d /path/to/workflow/database/ file -c YYYYMMDDHHMM -t taskname + +Running this command will edit the Rocoto database file ``FV3LAM_wflow.db`` to remove evidence that the job has been run. +``rocotorewind`` is recommended over ``rocotoboot`` for restarting a task, since ``rocotoboot`` will force a specific +task to run, ignoring all dependencies and throttle limits. The throttle limit, denoted by the variable cyclethrottle +in the ``FV3LAM_wflow.xml`` file, limits how many cycles can be active at one time. An example of how to use this +command to rerun the forecast task from ``$EXPTDIR`` is: + +.. code-block:: console + + rocotorewind -w FV3LAM_wflow.xml -d FV3LAM_wflow.db -v 10 -c 201907010000 -t run_fcst + +rocotoboot +========== +``rocotoboot`` will force a specific task of a cycle in a Rocoto workflow to run. All dependencies and throttle +limits are ignored, and it is generally recommended to use ``rocotorewind`` instead. An example of how to +use this command to rerun the ``make_ics`` task from ``$EXPTDIR`` is: + +.. code-block:: console + + rocotoboot -w FV3LAM_wflow.xml -d FV3LAM_wflow.db -v 10 -c 201907010000 -t make_ics + diff --git a/docs/UsersGuide/source/SRWAppOverview.rst b/docs/UsersGuide/source/SRWAppOverview.rst new file mode 100644 index 0000000000..5f8cf98780 --- /dev/null +++ b/docs/UsersGuide/source/SRWAppOverview.rst @@ -0,0 +1,710 @@ +.. _SRWAppOverview: + +======================================== +Short-Range Weather Application Overview +======================================== +The UFS Short-Range Weather Application (SRW App) is an umbrella repository that contains the tool +``manage_externals`` to check out all of the components required for the application. Once the +build process is complete, all the files and executables necessary for a regional experiment are +located in the ``regional_workflow`` and ``bin`` directories, respectively, under the ``ufs-srweather-app`` directory. +Users can utilize the pre-defined domains or build their own domain (details provided in :numref:`Chapter %s `). +In either case, users must create/modify the case-specific (``config.sh``) and/or grid-specific configuration +files (``set_predef_grid_params.sh``). The overall procedure is shown in :numref:`Figure %s `, +with the scripts to generate and run the workflow shown in red. The steps are as follows: + +#. Clone the UFS Short Range Weather Application from GitHub. +#. Check out the external repositories. +#. Set up the build environment and build the regional workflow system using ``cmake/make``. +#. Optional: Add new grid information to the ``set_predef_grid_param.sh`` configuration file and update ``valid_param_vals.sh``. +#. Modify the case-specific ``config.sh`` configuration file. +#. Load the python environment for the regional workflow +#. Generate a regional workflow experiment. +#. Run the regional workflow as needed. + +Each step will be described in detail in the following sections. + +.. _AppOverallProc: + +.. figure:: _static/FV3LAM_wflow_overall.png + + *Overall layout of the SRW App.* + +.. _DownloadSRWApp: + +Download from GitHub +==================== +Retrieve the UFS Short Range Weather Application (SRW App) repository from GitHub and checkout the ``ufs-v1.0.0`` tag: + +.. code-block:: console + + git clone -b ufs-v1.0.0 https://github.com/ufs-community/ufs-srweather-app.git + cd ufs-srweather-app + +The cloned repository contains the configuration files and sub-directories shown in +:numref:`Table %s `. + +.. _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 | Tags of the GitHub repositories/branches for the | + | | external repositories | + +--------------------------------+--------------------------------------------------------+ + | LICENSE.md | CC0 license information | + +--------------------------------+--------------------------------------------------------+ + | README.md | Quick start 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 | + +--------------------------------+--------------------------------------------------------+ + | env | Contains build and workflow environment files | + +--------------------------------+--------------------------------------------------------+ + | docs | Contains release notes, documentation, and Users' Guide| + +--------------------------------+--------------------------------------------------------+ + | manage_externals | Utility for checking out external repositories | + +--------------------------------+--------------------------------------------------------+ + | src | Contains CMakeLists.txt; external repositories | + | | will be cloned in this directory. | + +--------------------------------+--------------------------------------------------------+ + +.. _CheckoutExternals: + +External Components +=================== +Check out the external repositories, including regional_workflow, ufs-weather-model, ufs_utils, and emc_post for the SRW App. + +.. code-block:: console + + ./manage_externals/checkout_externals + +This step will use the configuration ``Externals.cfg`` file in the ``ufs-srweather-app`` directory to +clone the specific tags (version of codes) of the external repositories as listed in +:numref:`Section %s `. + +.. _BuildExecutables: + +Building the Executables for the Application +============================================ +Before building the executables, the build environment must be set up for your specific platform. +Instructions for loading the proper modules and/or setting the correct environment variables +can be found in the ``env/`` directory in files named ``build__.env.`` For the +most part, the commands in those files can be directly copied and pasted, but you may need to modify +certain variables such as the path to NCEP libraries for your specific platform. Here is a directory +listing example of these kinds of files: + +.. code-block:: console + + $ ls -l env/ + -rw-rw-r-- 1 user ral 1228 Oct 9 10:09 build_cheyenne_intel.env + -rw-rw-r-- 1 user ral 1134 Oct 9 10:09 build_hera_intel.env + -rw-rw-r-- 1 user ral 1228 Oct 9 10:09 build_jet_intel.env + ... + +The following steps will build the pre-processing utilities, forecast model, and post-processor: + +.. code-block:: console + + make dir + cd build + cmake .. -DCMAKE_INSTALL_PREFIX=.. + make -j 4 >& build.out & + +where ``-DCMAKE_INSTALL_PREFIX`` specifies the location in which the ``bin``, ``include``, ``lib``, +and ``share`` directories containing various components of the SRW App will be created, and its +recommended value ``..`` denotes one directory up from the build directory. In the next line for +the ``make`` call, ``-j 4`` indicates the build will run in parallel with 4 threads. If this step is successful, the +executables listed in :numref:`Table %s ` will be located in the +``ufs-srweather-app/bin`` directory. + +.. _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 | + +------------------------+---------------------------------------------------------------------------------+ + | filter_topo | Filters topography based on resolution | + +------------------------+---------------------------------------------------------------------------------+ + | global_equiv_resol | Calculates a global, uniform, cubed-sphere equivalent resolution for the | + | | regional Extended Schmidt Gnomonic (ESG) grid | + +------------------------+---------------------------------------------------------------------------------+ + | make_solo_mosaic | Creates mosaic files with halos | + +------------------------+---------------------------------------------------------------------------------+ + | ncep_post | Post-processor for the model output | + +------------------------+---------------------------------------------------------------------------------+ + | NEMS.exe | UFS Weather Model executable | + +------------------------+---------------------------------------------------------------------------------+ + | orog | Generates orography, land mask, and gravity wave drag files from fixed files | + +------------------------+---------------------------------------------------------------------------------+ + | 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 LBCs in the | + | | orography and grid files | + +------------------------+---------------------------------------------------------------------------------+ + | vcoord_gen | Generates hybrid coordinate interface profiles | + +------------------------+---------------------------------------------------------------------------------+ + +.. _GridSpecificConfig: + +Grid-specific Configuration +=========================== + +Some SRW App parameters depend on the characteristics of the grid such as resolution and domain size. +These include ``ESG grid`` and ``Input configuration`` as well as the variables +related to the write component (quilting). The SRW App officially supports three different predefined +grids as shown in :numref:`Table %s `. Their names can be found under +``valid_vals_PREDEF_GRID_NAME`` in the ``valid_param_vals`` script, and their grid-specific configuration +variables are specified in the ``set_predef_grid_params`` script. If users want to create a new domain, +they should put its name in the ``valid_param_vals`` script and the corresponding grid-specific +parameters in the ``set_predef_grid_params`` script. More information on the predefined and user-generated options +can be found in :numref:`Chapter %s `. + +.. _PredefinedGrids: + +.. table:: Predefined grids in the SRW App. + + +----------------------+-------------------+--------------------------------+ + | **Grid Name** | **Grid Type** | **Quilting (write component)** | + +======================+===================+================================+ + | RRFS_CONUS_25km | ESG grid | lambert_conformal | + +----------------------+-------------------+--------------------------------+ + | RRFS_CONUS_13km | ESG grid | lambert_conformal | + +----------------------+-------------------+--------------------------------+ + | RRFS_CONUS_3km | ESG grid | lambert_conformal | + +----------------------+-------------------+--------------------------------+ + +Case-specific Configuration +=========================== + +.. _DefaultConfigSection: + +Default configuration: ``config_defaults.sh`` +-------------------------------------------- +When generating a new experiment (described in detail in :numref:`Section %s `), +the ``config_defaults.sh`` file is read first and assigns default values to the experiment +parameters. Important configuration variables in the ``config_defaults.sh`` file are shown in +:numref:`Table %s `, with more documentation found in the file itself, and +in :numref:`Chapter %s `. Some of these default values are intentionally invalid in order +to ensure that the user assigns valid values in the user-specified configuration ``config.sh`` file. +Therefore, any settings provided in ``config.sh`` will override the default ``config_defaults.sh`` +settings. Note that there is usually no need for a user to modify the default configuration file. + +.. _ConfigVarsDefault: + +.. table:: Configuration variables specified in the config_defaults.sh script. + + +----------------------+------------------------------------------------------------+ + | **Group Name** | **Configuration variables** | + +======================+============================================================+ + | Experiment mode | RUN_ENVIR | + +----------------------+------------------------------------------------------------+ + | Machine and queue | MACHINE, ACCOUNT, SCHED, PARTITION_DEFAULT, QUEUE_DEFAULT, | + | | PARTITION_HPSS, QUEUE_HPSS, PARTITION_FCST, QUEUE_FCST | + +----------------------+------------------------------------------------------------+ + | Cron | USE_CRON_TO_RELAUNCH, CRON_RELAUNCH_INTVL_MNTS | + +----------------------+------------------------------------------------------------+ + | Experiment Dir. | EXPT_BASEDIR, EXPT_SUBDIR | + +----------------------+------------------------------------------------------------+ + | NCO mode | COMINgfs, 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_YALM_CONFIG_FN, FV3_NML_BASE_ENS_FN, | + | | MODEL_CONFIG_FN, NEMS_CONFIG_FN, FV3_EXEC_FN, | + | | 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, FCST_LEN_HRS | + +----------------------+------------------------------------------------------------+ + | IC/LBC | EXTRN_MDL_NAME_ICS, EXTRN_MDL_NAME_LBCS, | + | | LBC_SPEC_INTVL_HRS, FV3GFS_FILE_FMT_ICS, | + | | FV3GFS_FILE_FMT_LBCS | + +----------------------+------------------------------------------------------------+ + | NOMADS | NOMADS, NOMADS_file_type | + +----------------------+------------------------------------------------------------+ + | External model | USE_USER_STAGED_EXTRN_FILES, EXTRN_MDL_SOURCE_BASEDRI_ICS, | + | | EXTRN_MDL_FILES_ICS, EXTRN_MDL_SOURCE_BASEDIR_LBCS, | + | | EXTRN_MDL_FILES_LBCS | + +----------------------+------------------------------------------------------------+ + | CCPP | CCPP_PHYS_SUITE | + +----------------------+------------------------------------------------------------+ + | GRID | GRID_GEN_METHOD | + +----------------------+------------------------------------------------------------+ + | ESG grid | ESGgrid_LON_CTR, ESGgrid_LAT_CTR, ESGgrid_DELX, | + | | ESGgrid_DELY, ESGgrid_NX, ESGgrid_NY, | + | | ESGgrid_WIDE_HALO_WIDTH | + +----------------------+------------------------------------------------------------+ + | Input configuration | DT_ATMOS, 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 | + +----------------------+------------------------------------------------------------+ + | Pre-existing grid | PREDEF_GRID_NAME, PREEXISTING_DIR_METHOD, VERBOSE | + +----------------------+------------------------------------------------------------+ + | Cycle-independent | RUN_TASK_MAKE_GRID, GRID_DIR, RUN_TASK_MAKE_OROG, | + | | OROG_DIR, RUN_TASK_MAKE_SFC_CLIMO, SFC_CLIMO_DIR | + +----------------------+------------------------------------------------------------+ + | Surface climatology | SFC_CLIMO_FIELDS, FIXgsm, 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 task | 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 | + +----------------------+------------------------------------------------------------+ + | 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 | + +----------------------+------------------------------------------------------------+ + | 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 | + +----------------------+------------------------------------------------------------+ + | 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 | + +----------------------+------------------------------------------------------------+ + | 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 | + +----------------------+------------------------------------------------------------+ + | Post configuration | USE_CUSTOM_POST_CONFIG_FILE, CUSTOM_POST_CONFIG_FP | + +----------------------+------------------------------------------------------------+ + | Running ensembles | DO_ENSEMBLE, NUM_ENS_MEMBERS | + +----------------------+------------------------------------------------------------+ + | Stochastic physics | DO_SHUM, DO_SPPT, DO_SKEB, SHUM_MAG, SHUM_LSCALE, | + | | SHUM_TSCALE, SHUM_INT, SPPT_MAG, SPPT_LSCALE, SPPT_TSCALE, | + | | SPPT_INT, SKEB_MAG, SKEB_LSCALE, SKEP_TSCALE, SKEB_INT, | + | | SKEB_VDOF, USE_ZMTNBLCK | + +----------------------+------------------------------------------------------------+ + | Boundary blending | HALO_BLEND | + +----------------------+------------------------------------------------------------+ + | FVCOM | USE_FVCOM, FVCOM_DIR, FVCOM_FILE | + +----------------------+------------------------------------------------------------+ + | Compiler | COMPILER | + +----------------------+------------------------------------------------------------+ + +.. _UserSpecificConfig: + +User-specific configuration: ``config.sh`` +------------------------------------------ +Before generating an experiment, the user must create a ``config.sh`` file in the +``ufs-srweather-app/regional_workflow/ush`` directory by copying either of the example +configuration files, ``config.community.sh`` for the community mode or ``config.nco.sh`` for +the NCO mode, or creating their own ``config.sh`` file. Note that the *community mode* is +recommended in most cases and will be fully supported for this release while the operational/NCO +mode will be more exclusively used by those at the NOAA/NCEP/Environmental Modeling Center (EMC) +and the NOAA/Global Systems Laboratory (GSL) working on pre-implementation testing. +:numref:`Table %s ` shows the configuration variables, along with their default +values in ``config_default.sh`` and the values defined in ``config.community.sh``. + +.. note:: + + The values of the configuration variables should be consistent with those in the + ``valid_param_vals script``. In addition, various example configuration files can be + found in the ``regional_workflow/tests/baseline_configs`` directory. + +.. _ConfigCommunity: + +.. table:: Configuration variables specified in the config.community.sh script. + + +--------------------------------+-------------------+--------------------------------------------------------+ + | **Parameter** | **Default Value** | **``config.community.sh`` Value** | + +================================+===================+========================================================+ + | MACHINE | "BIG_COMPUTER" | "hera" | + +--------------------------------+-------------------+--------------------------------------------------------+ + | ACCOUNT | "project_name" | "an_account" | + +--------------------------------+-------------------+--------------------------------------------------------+ + | EXPT_SUBDIR | "" | "test_CONUS_25km_GFSv15p2" | + +--------------------------------+-------------------+--------------------------------------------------------+ + | VERBOSE | "TRUE" | "TRUE" | + +--------------------------------+-------------------+--------------------------------------------------------+ + | RUN_ENVIR | "nco" | "community" | + +--------------------------------+-------------------+--------------------------------------------------------+ + | PREEXISTING_DIR_METHOD | "delete" | "rename" | + +--------------------------------+-------------------+--------------------------------------------------------+ + | PREDEF_GRID_NAME | "" | "RRFS_CONUS_25km" | + +--------------------------------+-------------------+--------------------------------------------------------+ + | GRID_GEN_METHOD | "ESGgrid" | "ESGgrid" | + +--------------------------------+-------------------+--------------------------------------------------------+ + | QUILTING | "TRUE" | "TRUE" | + +--------------------------------+-------------------+--------------------------------------------------------+ + | CCPP_PHYS_SUITE | "FV3_GSD_V0" | "FV3_GFS_v15p2" | + +--------------------------------+-------------------+--------------------------------------------------------+ + | FCST_LEN_HRS | "24" | "48" | + +--------------------------------+-------------------+--------------------------------------------------------+ + | LBC_SPEC_INTVL_HRS | "6" | "6" | + +--------------------------------+-------------------+--------------------------------------------------------+ + | DATE_FIRST_CYCL | "YYYYMMDD" | "20190615" | + +--------------------------------+-------------------+--------------------------------------------------------+ + | DATE_LAST_CYCL | "YYYYMMDD" | "20190615" | + +--------------------------------+-------------------+--------------------------------------------------------+ + | CYCL_HRS | ("HH1" "HH2") | "00" | + +--------------------------------+-------------------+--------------------------------------------------------+ + | 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" | "01:00:00" | + +--------------------------------+-------------------+--------------------------------------------------------+ + | USE_USER_STAGED_EXTRN_FILES | "FALSE" | "TRUE" | + +--------------------------------+-------------------+--------------------------------------------------------+ + | EXTRN_MDL_SOURCE_BASE_DIR_ICS | "" | "/scratch2/BMC/det/UFS_SRW_app/v1p0/model_data/FV3GFS" | + +--------------------------------+-------------------+--------------------------------------------------------+ + | EXTRN_MDL_FILES_ICS | "" | "gfs.pgrb2.0p25.f000" | + +--------------------------------+-------------------+--------------------------------------------------------+ + | EXTRN_MDL_SOURCE_BASEDIR_LBCS | "" | "/scratch2/BMC/det/UFS_SRW_app/v1p0/model_data/FV3GFS" | + +--------------------------------+-------------------+--------------------------------------------------------+ + | EXTRN_MDL_FILES_LBCS | "" | "gfs.pgrb2.0p25.f006" | + +--------------------------------+-------------------+--------------------------------------------------------+ + + +.. _LoadPythonEnv: + +Python Environment for Workflow +=============================== +It is necessary to load the appropriate Python environment for the 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 can be activated in +the following way: + +.. code-block:: console + + source ../../env/wflow_.env + +when in the ``ufs-srweather-app/regional_workflow/ush`` directory. + +.. _GeneratingWflowExpt: + +Generating a Regional Workflow Experiment +========================================= + +Steps to a Generate a New Experiment +---------------------------------- +Generating an experiment requires running + +.. code-block:: console + + generate_FV3LAM_wflow.sh + +in the ``ufs-srweather-app/regional_workflow/ush`` directory. This is the all-in-one script for users +to set up their experiment with ease. :numref:`Figure %s ` shows the flowchart +for generating an experiment. First, it sets up the configuration parameters by running +the ``setup.sh`` script. Second, it copies the time-independent (fix) files and other necessary +input files such as ``data_table``, ``field_table``, ``nems.configure``, ``model_configure``, +and the CCPP suite file from its location in the ufs-weather-model directory to the experiment directory (``EXPTDIR``). +Third, it copies the weather model executable (``NEMS.exe``) 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. + +.. _WorkflowGeneration: + +.. figure:: _static/FV3regional_workflow_gen.png + + *Experiment generation description* + +The ``setup.sh`` script reads three other configuration scripts: (1) ``config_default.sh`` +(:numref:`Section %s `), (2) ``config.sh`` (:numref:`Section %s `), +and (3) ``set_predef_grid_params.sh`` (:numref:`Section %s `). Note that these three +scripts are read in order: ``config_default.sh``, ``config.sh``, then ``set_predef_grid_params.sh``. +If a parameter is specified differently in these scripts, the file containing the last defined value will be used. + +.. _WorkflowTaskDescription: + +Description of Workflow Tasks +----------------------------- +The flowchart of the workflow tasks that are specified in the ``FV3LAM_wflow.xml`` file are +illustrated in :numref:`Figure %s `, and each task is described in +:numref:`Table %s `. 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 setting ``RUN_TASK_MAKE_GRID=”FALSE”``, +``RUN_TASK_MAKE_OROG=”FALSE”``, and ``RUN_TASK_MAKE_SFC_CLIMO=”FALSE”`` in the ``regional_workflow/ush/config.sh`` +file before running the ``generate_FV3LAM_wflow.sh`` script. As shown in the figure, the ``FV3LAM_wflow.xml`` +file runs the specific j-job scripts in the prescribed order (``regional_workflow/jobs/JREGIONAL_[task name]``) +when the ``launch_FV3LAM_wflow.sh`` is submitted. Each j-job task has its own source script named +``exregional_[task name].sh`` in the ``regional_workflow/scripts`` directory. Two database files +``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. + +.. _WorkflowTasksFig: + +.. figure:: _static/FV3LAM_wflow_flowchart.png + + *Flowchart of the workflow tasks* + +.. _WorkflowTasksTable: + +.. table:: Workflow tasks in SRW App + + +----------------------+------------------------------------------------------------+ + | **Workflow Task** | **Task Description** | + +======================+============================================================+ + | make_grid | Pre-processing task to generate regional grid files. Can | + | | be run, at most, once per experiment. | + +----------------------+------------------------------------------------------------+ + | make_orog | Pre-processing task to generate orography files. Can be | + | | run, at most, once per experiment. | + +----------------------+------------------------------------------------------------+ + | make_sfc_climo | Pre-processing task to generate surface climatology files. | + | | Can be run, at most, once per experiment. | + +----------------------+------------------------------------------------------------+ + | get_extrn_ics | Cycle-specific task to obtain external data for the | + | | initial conditions | + +----------------------+------------------------------------------------------------+ + | get_extrn_lbcs | Cycle-specific task to obtain external data for the | + | | lateral boundary (LB) conditions | + +----------------------+------------------------------------------------------------+ + | make_ics | Generate initial conditions from the external data | + +----------------------+------------------------------------------------------------+ + | make_lbcs | Generate lateral boundary conditions from the external data| + +----------------------+------------------------------------------------------------+ + | run_fcst | Run the forecast model (UFS weather model) | + +----------------------+------------------------------------------------------------+ + | run_post | Run the post-processing tool (UPP) | + +----------------------+------------------------------------------------------------+ + +Launch of Workflow +================== +There are two ways to launch the workflow using Rocoto: (1) with the ``launch_FV3LAM_wflow.sh`` +script, and (2) manually calling the ``rocotorun`` command. Moreover, you can run the workflow +separately using stand-alone scripts. + +An environment variable may be set to navigate to the ``$EXPTDIR`` more easily. If the login +shell is bash, it can be set as follows: + +.. code-block:: console + + export EXPTDIR=/path-to-experiment/directory + +Or if the login shell is csh/tcsh, it can be set using: + +.. code-block:: console + + setenv EXPTDIR /path-to-experiment/directory + +Launch with the ``launch_FV3LAM_wflow.sh`` script +------------------------------------------------- +To launch the ``launch_FV3LAM_wflow.sh`` script, simply call it without any arguments as follows: + +.. code-block:: console + + cd ${EXPTDIR} + ./launch_FV3LAM_wflow.sh + +This script creates a log file named ``log.launch_FV3LAM_wflow`` in the EXPTDIR directory +(described in :numref:`Section %s `) or appends to it if it already exists. +You can check the contents of the end of the log file (e.g. last 30 lines) using the command: + +.. code-block:: console + + tail -n 30 log.launch_FV3LAM_wflow + +This command will print out the status of the workflow tasks as follows: + +.. code-block:: console + + CYCLE TASK JOBID STATE EXIT STATUS TRIES DURATION + ====================================================================================================== + 202006170000 make_grid druby://hfe01:33728 SUBMITTING - 0 0.0 + 202006170000 make_orog - - - - - + 202006170000 make_sfc_climo - - - - - + 202006170000 get_extrn_ics druby://hfe01:33728 SUBMITTING - 0 0.0 + 202006170000 get_extrn_lbcs druby://hfe01:33728 SUBMITTING - 0 0.0 + 202006170000 make_ics - - - - - + 202006170000 make_lbcs - - - - - + 202006170000 run_fcst - - - - - + 202006170000 run_post_00 - - - - - + 202006170000 run_post_01 - - - - - + 202006170000 run_post_02 - - - - - + 202006170000 run_post_03 - - - - - + 202006170000 run_post_04 - - - - - + 202006170000 run_post_05 - - - - - + 202006170000 run_post_06 - - - - - + + Summary of workflow status: + ~~~~~~~~~~~~~~~~~~~~~~~~~~ + + 0 out of 1 cycles completed. + Workflow status: IN PROGRESS + +Error messages for each task can be found in the task log files located in the ``EXPTDIR/log`` directory. In order to launch +more tasks in the workflow, you just need to call the launch script again as follows: + +.. code-block:: console + + ./launch_FV3LAM_wflow + +If everything goes smoothly, you will eventually get the following workflow status table as follows: + +.. code-block:: console + + CYCLE TASK JOBID STATE EXIT STATUS TRIES DURATION + ====================================================================================================== + 202006170000 make_grid 8854765 SUCCEEDED 0 1 6.0 + 202006170000 make_orog 8854809 SUCCEEDED 0 1 27.0 + 202006170000 make_sfc_climo 8854849 SUCCEEDED 0 1 36.0 + 202006170000 get_extrn_ics 8854763 SUCCEEDED 0 1 54.0 + 202006170000 get_extrn_lbcs 8854764 SUCCEEDED 0 1 61.0 + 202006170000 make_ics 8854914 SUCCEEDED 0 1 119.0 + 202006170000 make_lbcs 8854913 SUCCEEDED 0 1 98.0 + 202006170000 run_fcst 8854992 SUCCEEDED 0 1 655.0 + 202006170000 run_post_00 8855459 SUCCEEDED 0 1 6.0 + 202006170000 run_post_01 8855460 SUCCEEDED 0 1 6.0 + 202006170000 run_post_02 8855461 SUCCEEDED 0 1 6.0 + 202006170000 run_post_03 8855462 SUCCEEDED 0 1 6.0 + 202006170000 run_post_04 8855463 SUCCEEDED 0 1 6.0 + 202006170000 run_post_05 8855464 SUCCEEDED 0 1 6.0 + 202006170000 run_post_06 8855465 SUCCEEDED 0 1 6.0 + +If all the tasks complete successfully, the workflow status in the log file will include the word “SUCCESS." +Otherwise, the workflow status will include the word “FAILURE." + +Manually launch by calling the ``rocotorun`` command +---------------------------------------------------- +To launch the workflow manually, the ``rocoto`` module should be loaded: + +.. code-block:: console + + module load rocoto + +Then, launch the workflow as follows: + +.. code-block:: console + + cd ${EXPTDIR} + rocotorun -w FV3LAM_wflow.xml -d FV3LAM_wflow.db -v 10 + +To check the status of the workflow, issue a ``rocotostat`` command as follows: + +.. code-block:: console + + rocotostat -w FV3LAM_wflow.xml -d FV3LAM_wflow.db -v 10 + +Wait a few seconds and issue a second set of ``rocotorun`` and ``rocotostat`` commands: + +.. code-block:: console + + rocotorun -w FV3LAM_wflow.xml -d FV3LAM_wflow.db -v 10 + rocotostat -w FV3LAM_wflow.xml -d FV3LAM_wflow.db -v 10 + + +.. _RunUsingStandaloneScripts: + +Run the Workflow Using the Stand-alone Scripts +---------------------------------------------- +The regional workflow has the capability to be run using standalone shell scripts if the +Rocoto software is not available on a given platform. These scripts are located in the +``ufs-srweather-app/regional_workflow/ush/wrappers`` directory. Each workflow task has +a wrapper script to set environment variables and run the job script. + +Example batch-submit scripts for Hera (Slurm) and Cheyenne (PBS) are included: ``sq_job.sh`` +and ``qsub_job.sh``, respectively. These examples set the build and run environment for Hera or Cheyenne +so that run-time libraries match the compiled libraries (i.e. netCDF, MPI). Users may either +modify the submit batch script as each task is submitted, or duplicate this batch wrapper +for their system settings for each task. Alternatively, some batch systems allow users to +specify most of the settings on the command line (with the ``sbatch`` or ``qsub`` command, +for example). This piece will be unique to your platform. The tasks run by the regional workflow +are shown in :numref:`Table %s `. Tasks with the same stage level may +be run concurrently (no dependency). + +.. _RegionalWflowTasks: + +.. table:: List of tasks in the regional workflow in the order that they are executed. + Scripts with the same stage number may be run simultaneously. The number of + processors and wall clock time is a good starting point for Cheyenne or Hera + when running a 48-h forecast on the 25-km CONUS domain. + + +------------+------------------------+----------------+----------------------------+ + | **Stage/** | **Task Run Script** | **Number of** | **Wall clock time (H:MM)** | + | **step** | | **Processors** | | + +============+========================+================+============================+ + | 1 | run_get_ics.sh | 1 | 0:20 (depends on HPSS vs | + | | | | FTP vs staged-on-disk) | + +------------+------------------------+----------------+----------------------------+ + | 1 | run_get_lbcs.sh | 1 | 0:20 (depends on HPSS vs | + | | | | FTP vs staged-on-disk) | + +------------+------------------------+----------------+----------------------------+ + | 1 | run_make_grid.sh | 24 | 0:20 | + +------------+------------------------+----------------+----------------------------+ + | 2 | run_make_orog.sh | 24 | 0:20 | + +------------+------------------------+----------------+----------------------------+ + | 3 | run_make_sfc_climo.sh | 48 | 0:20 | + +------------+------------------------+----------------+----------------------------+ + | 4 | run_make_ics.sh | 48 | 0:30 | + +------------+------------------------+----------------+----------------------------+ + | 4 | run_make_lbcs.sh | 48 | 0:30 | + +------------+------------------------+----------------+----------------------------+ + | 5 | run_fcst.sh | 48 | 0:30 | + +------------+------------------------+----------------+----------------------------+ + | 6 | run_post.sh | 48 | 0:25 (2 min per output | + | | | | forecast hour) | + +------------+------------------------+----------------+----------------------------+ + +The steps to run the standalone scripts are as follows: + +#. Clone and build the ufs-srweather-app following the steps + `here `_, or in + :numref:`Sections %s ` to :numref:`Section %s ` above. + +#. Generate an experiment configuration following the steps + `here `_, or in + :numref:`Section %s ` above. + +#. ``cd`` into the experiment directory + +#. Set the environment variable ``EXPTDIR`` for either csh and bash, respectively: + + .. code-block:: console + + setenv EXPTDIR `pwd` + export EXPTDIR=`pwd` + +#. COPY the wrapper scripts from the regional_workflow directory into your experiment directory: + + .. code-block:: console + + cp ufs-srweather-app/regional_workflow/ush/wrappers/* . + +#. RUN each of the listed scripts in order. Scripts with the same stage number + may be run simultaneously. + + #. On most HPC systems, you will need to submit a batch job to run multi-processor jobs. + + #. On some HPC systems, you may be able to run the first two jobs (serial) on a login node/command-line + + #. Example scripts for Slurm (Hera) and PBS (Cheyenne) are provided. These will need to be adapted to your system. + + #. This submit batch script is hard-coded per task, so will need to be modified or copied to run each task. + +Check the batch script output file in your experiment directory for a “SUCCESS” message near the end of the file. + diff --git a/docs/UsersGuide/source/SystemRequirements.rst b/docs/UsersGuide/source/SystemRequirements.rst deleted file mode 100644 index 0ae126afdf..0000000000 --- a/docs/UsersGuide/source/SystemRequirements.rst +++ /dev/null @@ -1,41 +0,0 @@ -.. _SystemRequirements: - -=================== -System Requirements -=================== -The UFS Short-Range Weather Application is supported on the NOAA HPC Hera and NCAR -Supercomputer Cheyenne. Intel and GNU are the currently supported -compilers for building the pre-processing utilities, the UFS Weather Model, -and the Unified Post Processor (:term:`UPP`). - -Software/Operating System Requirements -====================================== -The following are the external system and software requirements for installing and -running all tasks in the UFS Short-Range Weather Application. - -* UNIX style operating system -* Fortran compiler with support for Fortran 2003 (Intel or GNU compiler) -* python = 2.7 -* perl 5 -* git client (1.8 or greater) -* C compiler -* MPI -* netCDF -* HDF5 -* pnetCDF -* `NCEPLIBS `_ -* `NCEPLIBS-external `_ (includes ESMF) -* CMake 3.15 or newer -* Rocoto Workflow Management System (1.3.1) - -NCEP Libraries -============== -A number of the :term:`NCEP` (National Center for Environmental Prediction) production -libraries are necessary for building and running the pre-processing utilities, -the :term:`UFS` :term:`Weather Model` and :term:`UPP`. These libraries are not part of the -UFS Short-Range Weather Application source code distribution. If they are not already installed on -your computer platform, you may have to clone the source code from the -`github repository `_ and follow the build instructions -in the `wiki page `_. -Note that these libraries must be built with the same compiler used to build the pre-processing utilities, -the UFS Weather Model and the UPP. diff --git a/docs/UsersGuide/source/WE2Etests.rst b/docs/UsersGuide/source/WE2Etests.rst new file mode 100644 index 0000000000..7332bc4b5f --- /dev/null +++ b/docs/UsersGuide/source/WE2Etests.rst @@ -0,0 +1,122 @@ +.. _WE2E_tests: + +================================ +Workflow End-to-End (WE2E) Tests +================================ +The SRW Application's experiment generation system contains a set of end-to-end tests that +exercise various configurations of that system as well as those of the pre-processing, +UFS Weather Model, and UPP post-processing codes. The script to run these tests is named +``run_experiments.sh`` and is located in the directory ``ufs-srweather-app/regional_workflow/tests``. +A complete list of the available tests can be found in ``baselines_list.txt`` in that directory. +This list is extensive; it is not recommended to run all of the tests as some are computationally +expensive. A subset of the tests supported for this release of the SRW Application can be found +in the file ``testlist.release_public_v1.txt``. + +The base experiment configuration file for each test is located in the ``baseline_configs`` +subdirectory. Each file is named ``config.${expt_name}.sh``, where ``${expt_name}`` is the +name of the corresponding test configuration. These base configuration files are subsets of +the full ``config.sh`` experiment configuration file used in :numref:`Section %s ` +and described in :numref:`Section %s `. For each test that the user wants +to run, the ``run_experiments.sh`` script reads in its base configuration file and generates from +it a full ``config.sh`` file (a copy of which is placed in the experiment directory for the test). + +Since ``run_experiments.sh`` calls ``generate_FV3LAM_wflow.sh`` for each test to be run, the +Python modules required for experiment generation must be loaded before ``run_experiments.sh`` +can be called. See :numref:`Section %s ` for information on loading the Python +environment on supported platforms. Note also that ``run_experiments.sh`` assumes that all of +the executables have been built. + +The user specifies the set of test configurations that the ``run_experiments.sh`` script will +run by creating a text file, say ``expts_list.txt``, that contains a list of tests (one per line) +and passing the name of that file to the script. For each test in the file, ``run_experiments.sh`` +will generate an experiment directory and, by default, will continuously (re)launch its workflow +by inserting a new cron job in the user's cron table. This cron job calls the workflow launch script +``launch_FV3LAM_wflow.sh`` located in the experiment directory 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 script ``run_experiments.sh`` accepts the command line arguments shown in +:numref:`Table %s `. + +.. _WE2ECommandLineArgs: + +.. list-table:: Command line arguments for the WE2E testing script ``run_experiments.sh``. + :widths: 20 40 40 + :header-rows: 1 + + * - Command Line Argument + - Description + - Optional + * - expts_file + - Name of the file containing the list of tests to run. If ``expts_file`` is the absolute path + to a file, it is used as is. If it is a relative path (including just a file name), it is assumed + to be given relative to the path from which this script is called. + - No + * - machine + - Machine name + - No + * - account + - HPC account to use + - No + * - use_cron_to_relaunch + - Flag that specifies whether or not to use a cron job to continuously relaunch the workflow + - Yes. Default value is ``TRUE`` (set in ``run_experiments.sh``). + * - cron_relaunch_intvl_mnts + - Frequency (in minutes) with which cron will relaunch the workflow + - Used only if ``use_cron_to_relaunch`` is set to ``TRUE``. Default value is "02" (set in ``run_experiments.sh``). + +For example, to run the tests named ``grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2`` +and ``grid_RRFS_CONUS_25km_ics_HRRR_lbcs_RAP_suite_RRFS_v1alpha`` on Cheyenne, first create the file +``expts_list.txt`` containing the following lines: + +.. code-block:: console + + + grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v15p2 + grid_RRFS_CONUS_25km_ics_HRRR_lbcs_RAP_suite_RRFS_v1alpha + +Then, from the ``ufs-srweather-app/regional_workflow/tests`` directory, issue the following command: + +.. code-block:: console + + ./run_experiments.sh expts_file="expts_list.txt" machine=cheyenne account="account_name" + +where ``account_name`` should be replaced by the account to which to charge the core-hours used +by the tests. Running this command will automatically insert an entry into the user's crontab +that regularly (re)launches the workflow. The experiment directories will be created under +``ufs-srweather-app/../expt_dirs``, and the name of each experiment directory will be identical +to the name of the corresponding test. + +To see if a test completed successfully, look at the end of the ``log.launch_FV3LAM_wflow`` file (which +is the log file that ``launch_FV3LAM_wflow.sh`` appends to every time it is called) located in the +experiment directory for that test: + +.. code-block:: console + + Summary of workflow status: + ~~~~~~~~~~~~~~~~~~~~~~~~~~ + + 1 out of 1 cycles completed. + Workflow status: SUCCESS + + ======================================================================== + End of output from script "launch_FV3LAM_wflow.sh". + ======================================================================== + + +Use of cron for all tests to be run by ``run_experiments.sh`` can be turned off by instead issuing +the following command: + +.. code-block:: console + + ./run_experiments.sh expts_file="expts_list.txt" machine=cheyenne account="account_name" use_cron_to_relaunch=FALSE + +In this case, the experiment directories for the tests will be created, but their workflows will +not be (re)launched. For each test, the user will have to go into the experiment directory and +either manually call the ``launch_FV3LAM_wflow.sh`` script or use the Rocoto commands described +in :numref:`Chapter %s ` to (re)launch the workflow. Note that if using the Rocoto +commands directly, the log file ``log.launch_FV3LAM_wflow`` will not be created; in this case, +the status of the workflow can be checked using the ``rocotostat`` command (see :numref:`Chapter %s `). + + diff --git a/docs/UsersGuide/source/_static/FV3LAM_wflow_flowchart.png b/docs/UsersGuide/source/_static/FV3LAM_wflow_flowchart.png new file mode 100644 index 0000000000000000000000000000000000000000..7a61ae402d0e7b1a11a751106f33d99d6b12b752 GIT binary patch literal 56074 zcmZ6z1y~eO_xQg7tTfUMf=D;gv6Q4rx1^LH-MMt9lt`>dN_WH3-AYKeNO!}3_4~f> z?|J?_&oINxowMhjJNMjkK4+E)l{a$O7~~iL003J-UPcW70HFc^z_KT3$TNU)*H+|j zptG8s6rgOBatHZ`hq;b|#p~Aq7Uc0001A*CfNT!{A~$g$#s7|90hs{cf9F8}K$tZE zWBw=+5KqwDQQs*_&T{BGvlKr!7;- zUGrk^jC?g0KR#j4vsejwWNZ@5Fb#Yr)2v34k2#KIg~kU?4>095CN*uJA)Hq(PaEGC z=l(W}`Wq_|7;UDf*oCMlz!B&U8RGs*B><1pg@W}#<7V=^ zA$sihna!$QZgv!=eW_BsB&vd@=OZu+D6a}RnumlN2KQdqv8jsnV9|HaS~ZnO-b4AP zxU}A0%#q`|FaL^!S-_*o;HJic-LpI#b&7-q$$@Ga7V++m%vHN3|E?oNy}=U1nkdPL zEc?;(ArDSiFvBO?s`h^7e-biC$1k@NpB5(vCLZTITmPT3NXe7j@Z>;6cSYB*!Ki>5 z^4GG8UcO4lv)hz-(t=ZeP<#gV9fJ3xOmf3{{VrjJQ#I;N?v={=_N_RBH7iaW!!vea zywV!Qz7|3=c~NhP(JBTM{1hs!E;Kx}bzED?hdO`YZ&CSS=k!_7 zZG|z|q!}kT$fR{^CVb&rJBED+ddHV1Q$Hlu^%j(QLIfTg`p3j*r%nnEtT|L$9~$Yt z*|BbjX>L&8V#}^Rd&Z38IQY3W7{LK=S#LI%FYQeY*NfpG?8CKvGB|Yi^G}V;EkDV? zI_I#qY4Al-P2BX!PCk#r9DIcC<+p&@)M}KLOnMHA7TFBZs&^Yy^9&q~rx3?2qDTB@ zfl;EDf9lcCvVCct;tug^C&tnXYEthtHX&C_kKc^-Kd0`f^O7qrVXfkwe=%b1($M{r zW_ar2xaRN%&$5WDApGtVBzR{;Q*%Wp=~RBZaOax7I|Qt?mSM!`_fBF_Efx=3Z-I8S z(JNiB>egmexrqA5+pJ>p^D(ftt3#f>RhQ4^-`q4xhV3i@2A-ZT;y8E=YPC^dZtRyz9 zo{)VyubwDQy>y;ei?Jhq-XhugS?}H6;@yiooQa!1WNMPXzzlF;QpQ>O>z+{a%W#6< zeLe0z>dzn38{eTq=3iMZ)3teTyH)P?Y0E0sqUHE5<8r~aqkQ$32uRMxa0cDij`)x7 zy}`20OZKQCthnnE{>KYB8DCpI8r{Fm!o`Vq8x@lOwN7X%E7$F2;!+CrY!G zIPMeHW)6)ACE(c?Zr?pzb9u(gF6SqkEezcqjpxHA_hC*>9V0_|x5!3Py6)fEPG+m7 z2&y>G-oNc+=Y+%27+C8Ht{MF0BtArrWZz-WNR{mo5N*j2h4H=|@BQ(i0Pzl-p-pgG z-xhYU9r0otn;7EmlTb&}bICU?UU=rU4 zS6;!{FpA%|Ia=$>5yBNocQ=d5LgRV4*Gu}fHeD1|oWqavape(jEi=dv9aOA6Tbll< zL4BXKMFYM#x=MyH)ar?0v4kvKd5Fl_UaxT~LV?3;Xc z8g}mcpr&8>P^!Pd)^y#2ix~Fzrxj14Ul1A$(loP=wLfybx$V6(pkBrDe@t-)Yf;}e z=13*r?5ZqIi9o)WIR8rKiN;6*Z%13V`D}vbIQ8_%>)WV8ztuo*9AbO77oLV!HJP|! z1PgR~R&g9x+{cVjk%n_B$$6DdeHHYltMj`iEsJuOCVrhKNqWrPfAWafRgCD;#nx*5 zFi7DddLQW6+5M*FV{u3MLb?wX4amcKIc~27`Fj`n=h;1KkDX2gZ?=7P5z{2jkBd8pCwS8=14L z5Jo*bCO#Ye5Zy6oqb zDH}x#7?lB+_cf1&+Q!$?szseF%H0=Bm+nJu~bn z2jnLzO-F=Uo_`wBnXX}s+l$|?HVktq$o<*f`0M>^^6C5L z`RON8=&2zb4_)qqtioqQ#3V~6MZX2#H}@kZ$sQRq4}`;a*At=S!sK=2u+4l*$Ibq( zweJaXj-_LtQoia8;j&;+bEq3|n`X<0NsR^=)$PXGZ}LoQUT$@sRDDTt|p3 z-EPW%yIel|;V+Znz0b<@>`E98Lf9OyTx?c-7yCl2G$e`5W^Y~e3oFU%+Ia3$Cn`pS zGCCwS-wLNb1;ujZsI0sKtr=5*KabGmDe5(2E@&Ly^E%D(XAsd>UJJ)JLe3ix;K8iy zZPfGVYRB~0#&)Pe4BGYpSvol-j_sqo?10%+UDt-=6eBJ%bDYhVfk^&_neKZ3LG9$n z$A~!sdaBzxQ*Qu(VZ_0IPi zJNbz+1fmed(I5O4aZ(N1y}JGl?XY7{#tWSwGbiV*ddqd6v>=EHo^`11{ZjljT_$}k z$JqUI#n}Voa@e!<8k4*C%A)ak*fVyRUI+W=fG> zfnlKQLs^bi7mf;#VQ5w|=7E}~rfjV1n`Vre88Xw`Ujy=~AUhg@f|@-Bw~roT@hP`L zc3TekI?sA*Le|sL6@$qMHw|tV6uL&*;ZMWXEqc z9Ch4I&XrILZN3Zzewb6~VK{wS{#D>poRpN$wvh;iaLJy9}&FaNxo3_~naspN_$X`$p1j^}iC#5-NhjDZw^Ge2=3FGA!Y?Z^dx zlXjI;k(xZ)S!6Uw$xd*?)^}d}vG!Hp9{=k{Wtv->PK8|O?v5y@gIdl=d*Vxc#!3>{ zTS|xZuM4&qyXZZBW#V5vQz#3^8h*dc;Yi6WWXhYd3hcOJ{%p7`A;#ET|c%(}n)AEk#c2PxGiRh#Y7I zL7zTS+lBkwz&cw23%+H+HX|9En`X-aiB!vPh(s!e$G1WSj4eJsb04Fbe{7BHeO24z zH0|m(v+YoQqn6&KxnVES7JGgP$x9Wualp6nj-2XKados%2!6})6#jIdzYQ8@O$fgz?Tcvvkx@aFCrlCq|SKi2wp7TEr{T)P~|6{ z3%kd!Nl|4so{uvrdcjbeQkd--bccInpe`Bve8C1PR3)d|pll0W48?BQkFVd@oVw{K zkYEyN^Q3MM;pJi(BRrSEO-=Lh%g!4JuPXnl0_1t$Hh3~+Uh;7OOJ&`lVy?6}l zOXQ-@Z>(4NBI(ro>GZSx_*zN06HDi%ogv%e-RkQ!0c#u!MZrRcY{Uy&`Hd+wpTO0E zJ#P)Z;Zh+kiZQ~E_8Ig76lH$*lTb=~TSlB4J14A-bU&tuTCtuTvqG;V2D;W4?mr+y z_N33RuNbmNx$e9%1J!kWaV7>s$aqu8uUsHAe%Hf~<;$KMFJ9$uOksabLbqX_STGp1 ziue2`8djqmyv{i(^c}rgoTh!@Xu5Q=$`Ls&*E2qLke|s({+u5pqA%j2Uc3x4xZF03 z3=)yR<|!`*d1N|Po4sShc3|`oJZ3ll`83Sf@t8OxX+YgW3Rqw zcbFseoYD<2SUs=N2)}e<7g<6-FT5^RAd6_KE4?)xEVO#3EW~a6*=Jkl`_WZ0DoJ#( zt`o>U-291tET3*A6J+&c)Pr8G6ig~l3c;l=x?mpNFSA-g+n23Olb8f7HTQ)6VEJTG{@74!jvaf$&hT z#eK67Gx|Ep2c;_6rs}1>y!-wOs?9ASJGe;cz120T5!*iV8yacNJ#R}e+w2+PvKXEz6juOg$6&OZK+LEJ1z0G?W94A!Qa?<{6i2V(%fE0i8(b$QP zgF5+}tl6ss`$k4Rp|7I}UQY>T(ywEI2g_IcVX3Mbt9yKEjVB38I#Pu?f;7M+4qiRO8jE<&+KSGGos67HX)hNZz%!cv`Ubt0>Hz zL7W}Y=XpIEHpNNGx<0rTHpAF+`4Cpcq?)R#isfK{CR(x5eB@5`e7*x+tmKY#Y;ocj zkt#D3ScAj%DJ0EQ=ry+nS`N|o^-oa&tz4VxICoW)pLF)h!uEP%;yYu)GrnGTM_pnY zgf+Myt>xHs>uSfOQZx&C8;BLtPxs@}kuAN4kr7*VsU0a_jUMJJsSAx1TwG;KG~x0N z)soVN_5+_Ym6xN;y-2ULF@taNZp)l1J%rBc{90#yej$FtT1(mB;zXH(EuKE0YovON zon&DD!r#`0iiyk8-IE3OVHV+f6LL9FKzwCI7ZS&ZOe1Ugste5daJEXV7>uX;m?6>( zA?NQxskYztrz%rjG3b~0efvf^?z3aN{rrzm&YM;BC$BTw)hj*YOnv_#{HT4;2_H@r zz>U}VTet5#=%mm~6%71@n}?=UjI%!7V(@d&Fk1fj&UtZaa2S2y;pb;Qo)x=bCbB6W z`)ju1clQ)3VGrhRO1^&!-X8#)5z8Ax{YjGRuo;X}O9Lse?vtyQnTiwX9rCDF)v>luNT%e_EFN9}eoKM&r&r-f6d<)Cteg#~Oi_>RP{dj;c! zG<6MZ^rwBS#KB5TmkSR3ZmMBEs}3KfFlt)k9U;aM%(!+cRsE=^Ztc0zTft{b`^{R5 z8J{J~!i7NKN9Vh956*0ZWigIVgfZ^4;@Ice@h`4cTE742?~~tG6^fddOOESH(SDE^ z?mqk!#BO=5wd#DdZOY$Zw;FR&+0*H#ukHwcEe$}kYF}e8tDGLPyfoYO=8Egcle?G` zs=u9RLI|xj=Df_8?F*|^YAyBQ9(QEhMh=rhL|82mJADK8hp9ZT#18T=kz%+$`rpQC z4rvf2=xlbnxB~ZcM#Aq`N8Nol=~54Gl3j-a@UC+O$Coq+SM~jlAfaNj^LCfK$k2HC z+!e(AT>^&*TJSZleKn){V~8o|*ny>@-gHBD&}IVI;CaAf&O#b`Pt1Mg48?$boS7Kg zZKO$ag}-T#&izdf)^|R&&zFRRm(Q;muf<1_KHWK1JP(df!ZTSw#G9)=X`*#@D|8Vq zIpJDiKf<1!rgns5FlrFKF+J5_V)k0^xf@XPoA3}F-7YV-GAJaE43+&5r}*)sw297@ z_;)_hgR3ne>#|J(RJXj9@z}ULSNOYfh7)tyKgS$4eogz}py)p6HapXi$Tw`A4$(nn z?uS{=+FPL`CO@l_d?{LiaIezNBI>x? z`dOgyYOwClDo^-_Olzc6l3weFYhl<1Ta_b0ESyZ97Oh4N@8#g+U@t6OX0tE{|AN#24M#LDqnDq3v+5|fO!aewco???;Ugrtlh29l%Gw9 z#7=zuFPKfh`hDxHaUsToO0Au=-Y($@Wrj&8g%)j--=m*B69v!uzXVoJxP^sqLi_$f zXCy=Z%nNfpmiEy3wr9AZvc+C<1>(LQ>v&j`tYYv83;2+rfdOY|sH_|Ryo)JM8m z#?1#_JRsmbl7Eou{?J3qCo8Oh?9@0`_m_ZA75F8G4|0#8*B&!j2IuBOzNknURm4n6 z0ZJEL6fJe}2EN5<({5CZcE?^li@!89x$k!M{()xz8REuq0z)ZX($F7S*sg5D1q-K(>qS#d+rq@w<3q{N5-+c}*-K)kN@j(ASq*-m?M zE|vdxnGdWP1pEy&c=a1=9ZJGM(_mijn=MgBj`iE{KOp@tAcvD4T~XQ97Qh}T{o&&O zvCcnoj!Fhsi{CkPk9{n}{g0*p_E&=n&FSvlNcZ+mjhc$)`g+>y7E;`a_Z5&`-E^yC;>E zP{}^x&}M^ioPL(RrqR-Q6FISOfhAVS;a*1I*!6|K==cuDF?#29!8hmc4p@#6B@{7) z>tbO$J_KK{qrYj8EU{76s6lyZ{?Ak_ok%Mr?#aB>6YyY37j;!`-buyiI$rCp4Z5ko z?CMGSQG+8zx$Nrn`&8sre}KQT$e2|ZS17#~$CON>@7967k>2I@w}i>xg8wmN;R2Qh zS)Q?N7};mRWDW$jjhCfy6yB2Ul{3sXZEoj{*MJ~H-dz99RGiT3>Nbv%I};^v zxK08z1a^1NJc|i#EBKP{o_N{6DiB&&VFUkX2iyMH^+yWii_t3hC}>V6@Hce8)p_FaIzG0g$|I%vCZIXGE8a+ zfOf~GM4g*DC~dhBltb%42=-M38Hn2iLSiW&^Tp6!lu*w5p5SxPL|aR&>qg(U-@f!+ zj+mokwJ%9?tZ*}IRUdb#l~I}D>o)wE(7LqPs#N0xw@iub+z|gT^wud`V$o{^O2!?Z zq!?fh9qWcZs9162;;%>=^ydK|0b?FgD5=b;WQCN_+?OV_@BD0}_%l$FQK$*jTI6u! zTz{0*HbtC9`@;ip)1^w@D!4A;T$*)_Wje9kxK^*8`=!Ol%*6b)-rv$1h6yb*GS!0Z zqe*jMSv++78r1$u1o-+a8DR5A#V#t5_S?OyMW=Lw?>VyWx2Fh7>~{;8Um{n zuTfqSyxI6&Hx)+q#%xDyKihw#e~jise(q=p>gt$|uzZg?<{=@a2#?{W-HKI%w{jR+ zz)AcTCjoN();hi^{LeH>&IX#zp)5B!rdH}$ya6x^n{m=Gz@NXXtr=ktrYBH37zr9m z7*xRNeDan~4}UzYsc(9N+Sf3;Uz$RRV{oA)6<2Z8gl_Z4HgCdcs9lr=?Ex0kJ9uX@ zXbAcRo!CH?4Oj#6i063LJ?Tb5oZ;th6_jq{e)>E%#al` z-Xm?86Ce$}pwmFiwKu2$Oc9`f=z|Kw2iMiG%k$6yi_`oW!A5!CZuM7~ zjT!MIiqcNW+8=h(|2`(+SV>W8#-EujbKJC(B)K5gqG`;hI(lEFDu`EN9?57)enWiF zT2QdSg5lAqWuON7N1qiDnBzk7;YqWQ-~y!PjK;sCQUq@{7~&q$)0r@@9sW*rtqmno zfI@;AHXTe!xz4fJ%hA5*AZXN^-%a4rdV(oADA|KW=L!WSH-T0#VB4u{DE#08kOs~c zFi9JL^FVF<9I9&07kEnv8(cj{2*b=TA%%EqZGc#L?cdqfPY%#TpWI;?fR38TF$%pr zsMI7$agToapr|<7g3C2E?O7I-$9DHkVT!MOa!p4qeQxq?CXllthezcFa^As)x_d?3 zCt}=f<};D+(?(e!CT_~67-^>suI zB6a~36F7p{@Den?PaMz4*ZOteTdoLJfWlui$HR6w0E4p3NBTffCZkAM1^Dv*y3mzs z|G{NxlJ)w1P#LIlwLM5UQ>pMjdm0B5GyP32QFh>OA<53&@W|c-_;?Prp|b`DGdsZ0ISxbsEH;3Q>A*hbqtX)( z$kAD{p$~D4I1!$+l$}KRIT8;+Uko~4vw<)0 z!Ae{UM)5>^xV4PzX8yl7gVy8h1&ensc*?#v^t_f0T}8|REbk~clKDb{22B`Op3+jm zP35Xv6Gc`%Xs+mwB#6S-)uC)dke01pKn=*jURnYc*+By+UcknMT*V-M0(PTc7^Giu z>*Z9%v_I)FUq6}m$#=*tBRsWhd3E;gBGKO`^7nFyxdU08uTzqt1#0rb@(bI}FD@~W`pA(q_!E@yXO;}@dA^8%PShBWm)ZvhI5ck)Y& z{X>!u5(p1iBG}(39-}r$MfH721NY75ulJy7l z{av&fwJDChMS-j6ZeV(==uRry!=ONN6Dq;jGX|rAyEOn z!cDNl$S^6g&IvD15RfH-(@&V?o@Hi39;%)edpv9t_g0#es3Q?$s1(;>PLdhO#;PWE zA(&q-SSjwy74?|ByBh_xKYV)XB^E{9%6h||VdNMy_0k5Z*X9V!>xT9~F`(5fCE!O$ z!!Q%L2x2XRPKav3>ReePMiA1RQdicF8;`2wvPgRl|02-%L$=%LUnQZ)Wkax^wHf0*f!6T^F`y8^FD z9+^CO9_mmtDGH7SlV_gIFNz?!98hFpfl zzMR#5EGKi!Qw)O9#jQap?v`0tC-xRgXRMX1Ce7;a0>%OaE0hw>UUP224vx3SIwnxx zo3^Jn{|=SwCe#BJ0^ak=L}dq91%k~VB z)e*eu>r=t_U>er}s${>^;=b7*tX}2O%5o7NfijrE)mTw4oHw=cN%uet%WfZke$J{> z@=uSD#!;!g0K>cTQdn{bU341_1zYoVyksd>T}^Wg<`~k|5D#PRJNTlD*ZhP*H#$%q zmJ^&ad~nsbR^p~A-h$f#GWic^-;>mgCDgCr@dlXp#y*T))CKqHKvwYLp?*NeXkn$z zpoivirPci?GsWzPgtJVMD$XKuetBLXJ##;7s8A6kB{>k|hS2 zDGie}dko9kxN{QXsL5PuKJY;I-^^;qcBk$G8h%1R`jQJDX1N!?-c@_WEdSFlMf17H zr%dK=qBkKl$^19slE+$TLy2Rg-is}GDxTzxh2>{bIg^)A^)I)g|T81S;+wSFDrA~!U!i&m<_eDLAY_8TAXx4B&V1*0M^*Ou$EW3qzj zV(*YCJnZA8pFas^uoIRuX`GgR-27CJUM_O^Bj~vwf4Mr%sjC|N`+S#x-^rSrNNuJ9KUusjN<%w zw(Gp)THVmNa7$_hce6tK&I9%_l3eP1Q0WMZT*5p|rNG_3XsKjT&$%rlljlbpTvS_O zd~Uh+OVW351ItdVlz94?w+Z=UbXNjD=-9uqpz?P64IOPuahI z%)A@wlLV4}AN@h%Wks-qlY2+~*deK7iB^*{V47BY<4faMp73OqT;|K2!%qUSIJa&! z>!^*(7P+|sq>FyNd|}UsX+)Bm_pV>lbEp}l(Q_Kjs3%b5>@Ad8OHi*^e^k?zMAY~s0sBtpHJV4Jq9z* zX>6z9{@-M9Z4jC*i@Pp{=H!Vx`1nZ$t7=WJy-XQ7E13Afj+KNfN_!G!*YK!X*UK!4 zb;>=hHiQGIKlg{}wJJ&M0_&xib=GMYEdhS^rV6=d{++)%F6r<5k{sKnn8m654w61A zhv7Cqz;H=WFIaU>L!I0y>P-y`9jNljo^TmQejpvMNlFT6!(@!`Y{h|f?Oe5QC)bc> zzD0g~I4;;x6+_Au)f?vkq1qvc@D= z;KTGw;xvI0{pQWui~X^ycdztrLMy36!;a&K&ore^mZDUEt=8omby)5~RzUn(>*RRyZn=c<1POd4(Q zH)hlpPeO!N<5!D@_q)myy3|O{20!7gkae3NoO>wqisk^iM|hXJ1T@(4u{pAKz0Y8` zAnE>&SMg*@-n(t6VY5Dj`3+aBb!X46!(aCnP5S$EYdZ(N!qPHi%$Wb|ovdEwWe?kG zbgc^$Sl5DI+}$pG1R>2-P%Tq}`r9QvV8aqF)HF^x^9YqlIhF``3@u=5B2L{5s19j^Br?9}w7MF@(Hq$NKTY6n?l}gQof2PDqM{p9ySFW+T`i4$d2nc?2%1 zDZrdo0<%+s*n*Sg6P>Q%&&Bq|?KWo`id+!QSXyR5t08RkEBrm_xLJEHk_v-AJ^%V% zd>*c1vry8CKZ4Yn8_los(H*O@f1h5AT}%#dlHUD1fjvvXEN|KI+}o)!;#JWkgXOFQ z2F9D;W;cAL+~^)uP~)WO{-t2kv~U;LF?$eRPk&1Y>YW(j>eZe4@Ym7cLC^~ERIpA> znD+KVJvW^~1!*s8N@ASojyvk9~50R&=EgMgo zU@Jk17KVws=)GAIrDg%rD_@?5n5K;eenY)Bg7`8_x=>1JsZ{v=y7_v0g*uS_My@zw z7tKH4DdyvCXCocM=GAITptR)m9s1b}1CjcT&H+{-CtFs+1^Fweo{idojrdX zMxX|y2=ymhRkH0XFZkap7_Kkd347^6xR)JvIoWzceBUWBn9&+@!+Bt0Xf@QdY^-_$ z#nEc8879j>tW=%Kf%~Z*OVUo04AIAGb~BDWE_%r79I0)!qp}nCq+DI*65G#V>Bo#8 zc=Mi>#q&?|v>9%iHUhyGNv5tYJUrvgWd?f175Nk%-54kR1Jjsa&v5!)$lQnYV2F@4 zt-ZITMHT@Z4VV2{S@p76O4R@ih?r4J5XXXn@H%PyRC_9?fU;aex~2qQUDq)CRg)AB z{?n}Y8u$(Z_Q_j(DNhpI$Y1S|cb>(5ZgJb4H~YnZ82XX0L%^Gj8=fuB9sQznV}`+Z zjSodaU?fh%dIGCE2H1%6XP&b5uKJ5Oc>peRDG3fYP@tNzC(!U*<}d`erYZMEC&bYtJpjZo(!SD1xZJI<+#TS zo+Gx0)&uAvky1FZ=&Z8>*X(VtJO}zuv&ufF>(Nt)FzcfyY@Q1j95|+ps@r0h@45=M z5u+L|IQN92+n7Bzy;l(;6064g5Pgx979dk`cU6kwfh(D^7j}*r6-vr#agKL#i&S781AOxoWyO#K(=UP^OdUqL*23GNilUf^&*slGl} z`TsH9H(9#=V+r2BB>eTiC)6R!24sf^yq7+ch>42hw9^8^m&aee(!|&a)UvZd-o*q4 zDxh{2COA-yV}EzTLMX;ZyisQ+NgH^7$|Q>nAp0a&UtTDM7#qfwnJ%uzoskd|Ng^?9 z_$c5}-DA6tIM+7zF`f0dgvC%6p<;kP!tL8W#{$n?P;D(^h!!9?R0C8}B;Cla7#Mvq z^BEm?_2Q?^T0W7Q0yOc8LuiFvnG0*>a{$-L*{@ZK-nuUj;SR$2g1A|ey(Q~Z!MxLGcPoNPRUMlx=5*ktP?j#Cy}k+hW%_y!@5PBK z$X2v_K{CQmHD!Dbt5L|67HMVY{KGPZ72>%PKL5v`Iug;1yl*+ zX>ZaFn~FXotMxNcrIkDA$O=3ZtQZV5)HXfrz#z*_2C?$~dZ$au^i>V!A5HOCNp=-C z((OO|u|T?YtD%z}H6?(bAjaj|V&h^9?H_mEt2{o@FF~)uPN{1i4^@Wq{(375lsiy5 zTEVjt5zEOTLS;f}p2J~J4+u7eJCyQ@*ft}*kdRmzK6C8lQTrb{wOtOP)24TvH+~J; zTc20Ihf*wwIou|JG*!^;b6A?ikqJd$z$9ytklrmml~M%7v+EKU-r-k2*RcKjf5Y^TxxmHo7Ov zoU}3EC=KIy5`#X>facvEBcPv52=7WG!UfhjC%n!Cfqh2IpItGi8NMijhyn~SG{9QG zIAAj@-c%Kz^zfJ!>e38wCu9IB;F}FRyZy`|*A%DM#zxP+uJ5CF^N)I$LpN!$TZYl< zfR`YxMj~nf#A!*J(FFQ|T!3Rr#UBSwv>QMetOH?=U^2#u$6zvPJ4|NmPM86eM->C= zVrF{i0Yk4L8lE0<)%RCQONeEZQAis&XEX0F zPluk8#$%p=%TNtLruglNh#G2%lD9$)PhSO`;8&zQAO03kvywcHq~$c5NLpT&lERHO z*nvruOZgr~kCTWBXw+V|cj&yQS~{TcWcuT)@;QSLh}eW_U;3 z@SZ_vySsa5Gr=Jz3}mbv>UY6fHz0bTWQx?k{>L{w1Cq981ysd;-U#pNe#j#iim}wCw)P2?yq}Q zlkYJb&$E>v8=73Ut`+M}>NJf_H%ySvT<{IeqQ(FJ!fDchf4 z{Hj(mbVm$T@`uc^hMbSwN*B|PA^}yLu&FgoU)(pqV|&7L?q9_hgh^{&{PcHYiY*g( zL1`3wz>5y0n9MEZ?rp%_rl^PG^cY2pW=hv7U;HYrZTNaA^dE_b%M1-k^y~see*Tx! zm+{;j>l2867mP|o(ALLoulS-Pxkgc9-+8z@g$A#&Q^DrSUW|y$o9a*}nOJrD{IArb zHP%ZKPZq$U5GDrTn+Xyfum{W^C;-3&GE}d4{68T7fc_82gV^O2pBXo0BHjYn)ip4f zS^+HJ8YmW+Y2svBHk}i|f}+8~0b*jy_Kgf;L#)ZgIm>g$P21(f*{$nwSiR%Tay*BTu;)Cv$grV)#^H zZEi_^KU^u}+eYm;$e094_EmCPLaIAI)hP**}A_k*Xqpt%Q*Nea!G!9flw31Fi7Uve6Lcq9va@SD}%8&D} zYaV4qR+Oqhli06i6fZ^~CFX{ZMh;oyy$;$@+`uO2I?$XLXo8c$qcmmi^A{p9POGfLsmVo zZO$`g4tj69VdstE@@&Vgf3DuD+#ZlHi;Y|Ly}qjHi@9>IW4A4IeDzi2fJ3j)gQFP8 z37Uen1FsPTFiZ#VBcKY9bsGg^1sZZ*w6q*@u_wP?n)kr<#+n7G1bhLjXc&&3R0sHj zVqjr_(Qt2I&8vI#LZB$f0F4q<1&c$LbQUat5@4|aa|AwYQ?=6KmP{KrTuV+Mw-I+` zBgW2q`6;0qonvAMW#rWSN}bagN+4(;LdGM2@g~>t1BI6WaFP;)kY z@vXH0#V`_p;>YE$F6|wZ$$La2c{Y-Jjg=EeZa%N94OR^U*F)YubCJOFmNZX2AtLPQ zXu)=Ce#Mto&oJfIenobL1NQOblWv7c)v+hTLK1BhyocylV@vdEqn+4(V)nri%vV2n zs9AI)dY|HkHwy5PjQ*eqv4$#eHN$a#vcOkMRkv*bhcBNeUl!QI>S3BteuOs$#CAy? z4XFGmI6iq;xBW5N!Eo6Zb_>kchwy=$KuOaGI%7eoxyE9>VTd;uV)xG@EHz*Z_7m_( z^C>_dW*Kk_(~+t5M#HxRIsH+eu4lA4f&QIde<00P55^_3BjpzZZ zf|X8+n{tjad5$a&j4Ct;SB}dkt9W=U*vfKcR$BcJnuKX z|5vP`@Shyj$+xF|g^V*z#S#T@cRUlfz&lWCL{yT1RwM~m-VliZfnAovgF?>cJ&Lu5 z;{${gSH%hT(}hs(Z>gqlbGKd09r<1Z_hu_@m!YSQ1hqm7RFLwMFa$g1cJ<(+5jj#j7h$dT>?ApaikiUvWULIIl@af1%jIdT&SQV&DfY~}m*p{!HgYdbXL zv19MnkvmV$b)tVx^-LGKgs*?oD!bIb%v-e>lPSjv@0j^EnhAgq4^qSFxt@Ap^rIC* z+fcZ$=LMe#qDP}jZHk2+wIVJ7<@Nc1@*WFVBDKR&lX)ZIQvEB?9WEtk0Z=}48IS^i z)N~>80A0Ekj=|+y2M2FECvrcwNdA3 z22QtVnO7yr<^)6W4Wr|3CIEfDfUYFvu%Mve#M@Pe8?lKKo;i@jhc)>u9Kh3_$$I7I zE_i$sl2KW(1(5D=^(MA3UW((dk$2TfleRj3U?{{#vU{EptOZagGCEe8e6wWZlbVFi6=UpDWtRM2%HTyLeJc>%ofmQNSH1+XJHVNFY==5&I& zvr{_vTJAN%g1^b&l2YmXB*&v-g(h4#855cFp)>?OuizLPmsi4(Y|QagsmHXw3%}C< zOitj($C&+$$MBnb{r^#NmSJr*ZL}sppt!qMa4#-};1n`8nc1^v&#Zf`=PxyXbn6dSVe@5hk&Hr+iP1@r*tllP!Y01M zqREQZki@Xfs=_Q7h*U6{tc%3v#US~9GOivIlH{+lzH_97!K#M@sf}27J^cCUv{|N0 z`yB7(N)X)AL-lQJY#Sw%0x3ajiVvrs#~q-EY7KYI&LbvhZn3D&Ahen1B zmD9#7Lo05E43d74UE#IfN!^!@Zkf zwk5Y$FV{$)k`R$RpDNOhm*3<#_uf;4Ct&f$=x`w< zW(5H3pCgXbmb=5Pi^7S@|GX^{O!_MRPNCe+ModWg9);c&OX*#h3rfH6S@AZL7avpA zZbnGOD?Ea~6x7iO2&&vINc69W;Ko3>NPpfZ^G4h}-0*&!B+t#%*!R%I^ny!s{%~R~wmo zTBntI_`^u4s5-Q^!p4(4>rLZ2mQ~C|v;Caaorlxq3fvX|lW1Ma-(rk9YXzdlJLhwM zNs%No^(JN*s-PA|S3}987FIieO%e4303%|8ny>9>1AasYk%@22@9Z%XyVzp)FU@sK zZ8S|lnDAl_S`^27!QV%+Li!mT&=TYa?d_U{5KrTVUSe>x&wk+8ekVMbCkX=*GPp=J zdDNd36YTQ8QLmE_$Bsxh+I0;@X>8<3D2eeCza{1V6@A-Y@+Y?L*1$+jrnO0B1cb{8 zVF7;jzHpv`A>{$kX~@_cdr>;$w62O-BaDP#-R_pmr~Dwoe@*Wop?8z(XgxNtFeZ-H z(4cH-+=)^06LCiClB)l;PzOCrQ!1xuGstVaeInU?^Zs>9^)S>{!}!2mv)P>0&60(aOQiS)&?$d&1@J7!;cAYtjFiW*geKv_a1#q?#7gxFUWSrI|U{l4Pkg^ z%h5)FYY{nRywv4=QwAfV*MZJC3j!s&nA{3qWppAcUH`Golu>XlrkM6vp@6rvIh7a5 z!arwrcU*w5{iXJ;pD{mxN*(4Eciy`$OL6h(;;RE`{&QF32mSl%yTvL~7}(7@IwoEA zO&j7u_vMoKA>4lN65keA{?T%ybmRJ7kdT{Lt4m$aiZ!bb9_>4Q5X}=GC;|awY z`8n0@KVmAzZnU9`@=ECBRfek=^b5N=vZm(VB2{e%FFT|O=N~fh54fWThRzdLKgnqo z&pL03z--x8O&IIs%<`u;%xqhvm>oormYy@P3E}q`jIev$ga99d^83-~Czeg~@-ftw z>IJTmsl;tiQe0NM%fqi@AeOw zMEQqrO0vu2D2&W_QsYtMD?PTL*CqGXC{T^5gjFas~{I z5-!=Zm(Nnmqpft%c6*p;+zJrPGwc6{z57Al%)opO`wbnp@e9#f9n1ExkKm8oe;Z@V ziMm04bBFR2n7ctCBWSKLo!Q4IQ zx<`xb`Og~Q2EaSk|>jUy|h zAi}LU6SCi3t&ui*V2@Q~&k`9MZuIp09hRZ{{Q9WLmnfw#f+FyR|DIf!qRA-1&`|Jv zxod2&>e;vQ9I4hvSGN4{GIuj_Ik}j3V?umGBE*&7^`jkWW7g)686`IrHa9t&p!M{M zU|s7j{RZaNE|FH23UQ>+dv!{2Vq{}}i=wBSoLR2Ng)SHf#EuAXp~Jk0w9y&-8Q?3& z6HZdbB(dCt_lr*ny`68{AG=!MTR$UGiGV?p`hL|v&PYt6#Uq*`@nZn*-TX*F%oy=M z8%8Bh{$dIisqU0(yM5kgt*#@>5{Lhs=m~5Hk4gDy-*`^MFTK1f#*9i+oK(k~6$a~F z^_#vytk|KiDNk7;du5ZrjoJxz2|QU!uE*rZXeC_{XTuVj6sd(v{a%)K7Cp~i4uuAH zin4#Sn+@Tb+{2`umw;9b?^j5a>${%&yp+Xazx$aYxmnoMJVO7Fr($#}!R6;0kh;yK zVsHQ>w&q8cB)xq3m3@}&|EQe^QX%p8)}5XTqP4>aDchD=Bc7GOyAR%@ceP@(xg>=P z|JLKRoPmt?&79{~Qyz{sF>hw2_UU zgb9Fsyx$o<6-7!#)3{&Hf6X4-xHYj`4qOp^3^f@oz=P@KsR52J59Wy#_-9X(xc+@3 zvkNd^UQHr&G~&h@3D+Ocwq*fDMwWcPyX;OrKofjv%SSn#Lqs*2fdmENDs`!F$K6qInCO4g(^uFtB;Q7jFggXw&$7D zs8;#Q7_WGu##afK!$mSa0To|mKTjz9vjai9g@dGH zk4TR==YWYXq+dqpA4~%+(ecY~&^@2{JSPM~U_)nQ29ec9opUf_fe6mu;5JBT4Bj9A zaxq&B>RHl{Wy2Iy{lQ6cLJv;qG^V_u6s!uh_a*mOnXXo8QT#f28|15UFIAu6dmsMQ z<8Z1tQZ<+}WVNOKyNA)m!tX3y_!?DC<#Tk{`RR9x%T&m_zZ_~;`d8_&H*b^-&a&ic zNc>ZjTtL+sUBg%3zaBkqvh}d{yB4|{f1dwL;K`=OU@LH-E*Uc7flEl&IllT2cg%nhG!__?@dCaoFq zzES)vI!Nz{{^!j%xc%EQ2#0S+U0~jnZacb$|2Gw+4Y^PL>S3yC$!ykL!h4g&Qg7ET-d4kea=JP zL{qR?!ad#$CgaMHRR^H8T9CAIfOxf;l{M@`Y{`*#%hH~x4S#xo!uMy%sH+<-okEm6 zNNC{>aTw(j3ySCOUxg$xd`OIWD*he9c=F9~uM>OdZlI6RTa(N9)jtAWpaEY6hnF^- zys90p#xu|(;1@}-#iuFfT|GIquvMnWH%z=kK5l;3^wynXD8tA_S%-%GQKXvk)hPg} z`M%7AA4=O`+||N5{~i5Gm(Osx-8X}MY6rxzhi#E9z7!b+bJ*V1z9&R#h^u~oX3QKe zmqJVFl2Bp!rJBZRF~@Z@4WdF1^o2p+=tlN&WCpm93~u(lA%F;SkWZ4N1BmjE(B0){ zNl`{LVabkUWXmc%{m)P@qK7>GC`I>cF*)y$3*MSWIzwa(CU_p(_uY)NYGGoH=tCGT z2rCKGnrpuNYcX3gNvUSJ!h3vge~w*z{qDiL(PgDbRDz(VLa&B;$0M;$5oFy|m8sok zz3t+k_2V|_3*DFmzg9F3ho5Rb;&pFMG%goYKJ&oRO^QGvE=`7t5y>#;1d65w4MZ6L zN{bERN4g{L_ISd6apYX5TWWJ0+2NA~0*tXjDrl8E`bG7`zVCCJ%j@y(vHj<8D(JeC zNV${w)Wda~B34t)U1gVSO{E(m*M607eBt32<0Q4dkJO(oaEN(IPQn z(sIkJ?wkRma33m5QIvc*_rfNQ&3`x$N0YeKdfn)KG4i(N>uFfuRkW;neZ+Fjn0W~` z$Y;0ODdpxBJT3|>4|;$dBO1`J4DU!tZ@uQBz}B>I_)B2^TRq zr0vUdrUbz`!-mpDdjbsMygvqgJCg>Sa0|eleHnx4vxqH&A9>g3@U&pqQw!-K<1X8r66j!)B z?^iNU`cwQz!s?@r*F17OJr{0CDD1c__|Hf;W_EkNw@jD_$Pq`!+%fi$a}n&}yt8*%j0h^o-2rR< z`eek2?9ZDZx%S1(dXCONPgj5wQq4N=62K`u`46E&G;Vzevkc|A}zqw$Ozi}I6jQk6S#72b9`NBLkH~$zF->1NqHj# zG)167U<1fI;jdA<;;yO46t>i0p0z)Gf&wxk9z^|R17MmYGlCYYnGgt=CEM{9iUGbj z6CTH1qpqV;4$^l>^h@GLG)gTF_)n39GvCIq!;0Z^y47uHZ0fKYnmh)-Yi; zS~phpeb{&U`7vkyNuTKpGZIUZ)s3l1wyfb#H|``1$d-jEoWZux);cM0?>dsZZyORl z47CI}_@fqM-kSLPX}x^rcWV59VXHneHNHkF9A-MIwWvoIYKn@aubr!C{lGcjoqc#d zxRq&IfIOb8Sl+I}^n&kB_02xwQ>CLCh9wnT8NAjk;~I{Ci$ypa0{0gRWcR>}SAVQL zx$lPHt;U7z+e_%-=RAz$Tlw7elC)Q%%vC`^^R$@%wYO@V^6fQz!{6G0rgV_BKke&2 z+$K7N&x9r32a+Ym`-+z!<3cVa^cw&F1WDXK?HY<*dGC`a_gEgIMSGAxjlOMEoF zA50i0%A4E=TjXHt7C{aHoE+ff=%ZEttFj`65jzx+!%zX>Bjdwpz=9Nt?EeA#0f!Oz ztn_qSIL^C=*JFQOC8zfpN33&S_3%QUrdna_QdpGLn^s>_< zvn2#L#s&!ABHrzKqCixn)<+IR;KmRVIrHGo$o1gS5v1VpF(32+m@As_{ZG z@`hJW;DuMrVeoMPl^TO`-4R&+0oU>>^*UKbDl^%gUBN@ z5QZnvKIyVF7G8YN}()z1s&o z?al1Jm3SV7u@$RC@W0)2xZfspFRX(13ll;%627iaK|ex}&)~r5cSv`rYpy;)lKh-BFC5>k(v^z~sm`aB8UTQRG0A#Ety= zWU{FDD>aG>oE=$MvGFE@L^4>O8KZ1xECCbQx1E1_m_c;698jmKA+b>Pw?^y)@DZQV zjbTvwx(Jc1sSADocZu61I zLVq#H()xjsP|t#}_3Bqk@tT(ht1}qgp}{Sfc?oXv(^|CNR{g8a5Z$AJ3VyX+KW!wN z9TAt*W;(lk`i>k#0UF2vw_rWt+-0G5pELMZ*Jzny;eKJzLia{oLM|lhrvU2? z%_I6*`*UI?B8^t4EM5IZjp&}xFg5Z@_iqw)xS7Q@TJFI=kk;I=Z+?d$!Uj7$(B7nV z^~6ffT&fIzbh%LZ$c}Mu2v3Ue=)XaqCu8vLx7dia2rQMO{zg{K{YUCxH3mV4<&R~> zAEvMYdE(Tm6CR4Ou--yQookO{MON%o9hHSg{-p^Rz2b}2vOhT^j3dGk%QF^+0yg9! z$n2E#PAD)FBHC;FXh$NwBvdc@%qBbi9<^-cv`eaM@!WCCLBovt3}5UP;q4{<`!j;v zZKD;WhPkBE+cQ7(hNtxwQ3pu#KlZ-a#A0tC2ZOqp^wC!mCOh+QrjhxA1QBxqzqcq5 zcMz1|{ou)=%W(D|y#UR@a$~8eAwm4V6?wXjaKm%l;!R$bfNYkg0pr$G#jGUHH9$o6umyOU1-R)U)`tn*^r{pIxT zPY#r?5b1K5JtASWVS?+H0w@gH3aDNxL1|UKGxbli#T=)CxC0EpuD{=%@%qDRGT?Ag ze1cC1m(YaQQt*!?cW0D9F=9$si<4-f8RZ}eR>(J_hM*TB(g-r1c;sq`N**yAVStSJ z#&D2dQ+;_cRSLH_^e~F#AK!v{Hn{xfsj5dm#F?7`uZVyE>swbzvkz# zQU}i}8+~Q%wwk>i+`Es+w~0n~js4s1VSO?fBc?QKm^Bd&i=3bgu7X=*eJC>BlA-H; zTZ@bjsNjxDVuSw+0*Cpc5FPO4;ZN?xlGfB+j;TN|XZfd0&Tp7yJp?ds)d)$Y3w3R> zJzMfD;i70BCt)~EYpr6jAi4C6r*&6XUH1Z|wLzBP(tY}BWEQQfxVkod^fm@=JzM2V zRz#9&CpPC|0Xj+9yKjfMN#AYEDmaR_5)aeU0zQ6&pqK5+ymG>{Hai%9$sC_SY$nNQ zgjHw7@*yymGH+e~z(Yel9!8!J50(Wrv`M04@qU*W#=q@vD&&|^P^Gcd^GG)Q$&<*e z)NsjPuSr!nQDJwc3%{d*|KepM_LOUy7(7O>|BXOcGlAFzFY2efv^CPthyWEK1-yMf zjdfYk!g%FjK$2v_Od56(2~O9z6fdqR%#%$oxJfJqFAG{)B+BO4#>2P6X2@EQ)nP2f z{x9)3^+an8LRsF{_eJ@o9%vIcy1PV{h9`0wT z9r2i)^>^tjHsqg#>%AE}fNr$@U+HP6E6`(uxYYYl{YR}PVDTJkG_sH8+q2NASoaUp z7Vpt_A5DD6{K8vcDJcR$t1gTF5&`9ZNXQ$B(I&^(Lj~^__gghIcv(0CIHf{-f#EU# zG;J#}Mk0htVFj^B(Z@``Fx(fnBW|!5&MVvy>a0Kd$t-=HL|O-aGkb<8>`HG2K)J8l zlRBtkH`9c~BWY*0vlqxU6|4DR=%=tziVsK{tqm!{mWx^ zD8<@k!v2qV%~321_C)*NItRhN`p3U&L6vxA&BY|& z$q;;2^_cGVvW=rduOS&SoNc(5p35Zl4=$4bI7%gnOj9xuL35Zu&_B7_0lhz&f}%w> zcgBaXT&4|yu~WVhqRH#9cPHbp>m~iwF6AX!bXaXaSUo*J#hWZ(xJQzqp?(>S1-)xx z(6i|O7wa{rzbpxz?{gj^Kg-@0)~V`j2%fR*v*KSuw`#>-MZ9(abm}fQ>rV9(K&BhY z%GqvQvNu-B0YLm_(WnP)QTb`&9Ic-g^7wK#m69djq40q~AV6F>+=!Pkq7|Zon0vHx zdOtR*&6=FLoN6|7H2V1BJGSDaB=RaKxZAp$qPS`XvL!vB5!Iuj=qBDx;la(~2SCy=&X%xu#^66EBF z8W;$vU3*IZH z>_7bYMpm7j*>~oc+hG0QV13XPxW?5Vr z7-yRogCAzikGM`)_@XISN9v&*Ud%@ul=jc4&55U?8#FR3`VQ8uk{3m^T#ScB4C7k_ z7JLQJ#%JvtL&FFHB)hl2GR^ILG`&XgJlS-=IH-Sis0eh!di8-Sy4e~mfAAe5D~Kkm z82Z#2)R`TRhPE^wg;sCl^I~_K2|g^D%2J?=@@Z6?cuTSa|M|Qtn5t-@9;8SQJq+^N zm5?sMiz)zF&Trb8-fHSAU(87p*!sTI=QSP6M2mJNo%wmcjp1BLcMqwGsV)6CYQ_IX zEx6EUSsbLlyN%{$PROevuAXErAm37^N9^C#uBi(I+-yPa}qJpm0fxd!-EDdmn} zY7htcSWk3um1k<=P-no{MTqBQ0_^qIA>;hupg5|HE7xoADzI2#Git^}WMS-KTtGiL z`#66nzWN-aN(FpbGF2AE6zfeV`l!B%tcjkw&7;(dVctBrjnuRH5b&5ZvfgLo`L(!q zq5SW`O1xNl`=sboNw2D3+r`sZTaX3RA2j!Rz3E9Dxz?hO2f zwIrIMq$BdEdN3tDM3agL*go&m0e|b+qq8K1{lwir7vD!XdOXOULbs` z)GEH-=~=j1Gpal-rOVJ?;b&R>>3kkS^CgVhR!XiP1!&N8T*1coN;bHeBi@XW?j3)c z&>5kcc5&yvxDyWlEY-g2tM~ElWTw2)uP$xiT|hI50UZD9XS9VoWds}E91I2dr;7Ng zR$1G1ICtEJvA30my{^^`$Tbn?jLsoyX5oq@NJ3*bG~=mfX4HoOGCHxu#m6^?8H_Oj zCrt@|qF&emy`8Sqg2)Dl+wF)|9Dh9og83m;>{lj>fj z+}EV9@MsrM7pT{c=Bcd}Y|E8l>EFdO(GzPW22^Y$Xb_kOJi&5^6sP)JV;L(Zm}Bpv zNZ;riBh)vTi2Fv|D`y&0PWuP`$Yl}u=`Q4nRi_z9j;J8e9#$+GKV>tXdJKd##89ix zn{049yinMM7le@NbWJPZEGo!TlIB{FO&_I6m+JQ%MQcgYP;>Q1hsKaOu z2WC=Wkls+Lz#N7v)#@i{B$5Sb=#x24Pxk@YNmQaT_7Z5#H!$x+V%tb>KPZdjLs_U5 z)OH<-;f{aPV4~3w@EKpt26rPGfStc0>}7LywHgtVqg#22jCbb_c)oi= z6sW$*N0GzxY^q8V>N$i|rP;Lk7ut@FW{v|112Z#q;B*6z^xQGIw5_w__J{AO=id1G zE3Db}Pmj`VBF>@g1YNNN|N8yj8})Ck1MmK8z?A5yIOFnnMa#(V&y=ii{QR#7^P1FQ z7PK;W*T!K|A6w@9`nwG_H1-$kwxp!xg5MM*PYE=^6yxN19?T`%W2yRYrjgH z4_RsEegndZIM3_jRs?YqNVC~4yWBUKA&grWale7Z#- zMGFT8w5`^UrOlKjvF$Vs~jGPr_q^{-j3!aL$-jUuplr3_n{D=0lJy*=&ebwNfib+n( zO|A=DL`V1kCU6}`CFi>S9^e%|6&7(UO)FdpTlZ=p&VDwnADrBdissbUa*;Z`_9;9` z(Gw-%N80a=D=RI++;ukEz$S`FKQX0nD_ey8`CYhaRocXizqS(iOOjBM*_u;>I=y=c zh58u#8V&4n#RRro)Jnz1UV@YT`9;8kQ9iVG;se{|;$Z7w`*~FX-m}$*AdLa8`=O0( zb=PHy!9kI8p$VUDbrOA*GeU)1hjUw4`wK{av8k$(eX-s6dh3$AP&7vI*3+cOSK?M( z(MMk?0G&CLS76k6J*~I=>LB`ak%PpdO8w>|33?u(_QyM_KPRulkMI*%sw|#yVUkiK za<4s!VUE+T{i;a^AKs90p9T*4KkI)5$_nnG4cm+mjK4M{own`|vsn#b*$?ub^bEDh zbPTQgjFXfmL7#s%l!p}t|2c9Ss95d3l(_X-ArR)&&GIE%Z+&+z?2ZxO;2T!Da5dXb za6H7sTwI2cCtVvJ)0!`Aq5i>Y!uQVo+T6~uAparTL;Zt5(!WLm>$H!uer*Ej-{A@uG*eS_O;8^>B6Se;0`=`|pz-HNPHM z_65L>mi3~lu7(<497eX@BDbqzNlVB4$UyRp8_0(U#@h!ZgW?C`v0GVQ#cs-j2(h^n z<#^9?iwls=7P_c@5?H=k?7{sxpps}gjiIbeMHdGdUpw&aITVwL<|j8=*z7;#3AHWJ z1&?V;bVt8mqVmP^?1;4YdTUG(DF|{?tPkZFCnE&85YCG6dSAo)ocK^My)!m6Y$4ai z71=HF)q}Uv-M;!h{S})#YSUd=r=`3|bGsP?_~Bo$W(Xnry?5eVt%jNqJ^32_uXC{7 z_71)TqOWhisNZ&ofKmcJep|THnfoU`b>bEmjq>o9xm%N8}4PUjPZ$ zivL49G-gCU9ORr-mRZ2Sjv&>=+(7Vxekxw{;Pc5x#vUc@skRk~Ykr`TA71TraU91N zrm0m}8;l+0nh{+sd&92;PDhxPApwY0)0Lx0MB0mO}H^e@G!R9%(1GOGMQM=Si( z!*SEiE=0VYp`MtKUZFP+0lih9x{vYSQ7TEv&RQ%x=GOVc$R;IROkl4rY8$yIrz#Ym z9Y|^ba6&an^AmJ)c*U5p?@IOo3ypSEy6ll#hzXLo24npkQIxaG`NeP~k!6;dB7Zcd zv7M=KGFuZqdno`sf#)X?5PZfw2|$g#4zqYZCJ0vmUKem4!F`$fP%xl}=gyNqaLSyL z$vhoYN_$)$|LD8fcSel!)tEgUZ9a|bhgF)T$7hKgi_ihyJX~S)gs z_lr!Ba5scGG*iRQVTrhtx#5Kzi;d6c@g7G~`AD$T|2de*E%clPD)gq#8JjL3 zbKyL2>KZD>uVOaLf5}j-2y|9xsI63`ufgBxjMP@co>h)s zC@9f%@6se?_;ax2olP*2^TudXT>y7aGhqnXN0&+FyC4CReBbw;YtH zQL|;hE5^8lrp=&sf|ZC6bq7-qVYvFY#% zM`>%T$Qk>+V=v)4BW>??jQNl^6g%KI$^sYHxcjHoR#!oCCuwI>+FrP_qL|&~?^3r4 z-zenYd05*_JWQ(3#0S@lK9nLfm4h~KZ%6`WDtMmO-pA`M$2P*-1+Iz#(lMG6su;X6 zYq<#8@o8SX*+!2zD(cbDT-}Big^ofgDt|Mv&ae73IhQmWwP?r z2fxB~Zuap$uXtBy@bKt{CRW^$VhL_#LXN8u%i&aDv3v~ANz0`9=}cRU!a4PH{xJQ`qr@BK(NWm+ z&jA~)0bXwXo-fzY)VAr&R)fS4L;E+bYq@-3tL$>Q$U34@UVU#arJ{;KOBy5AT+-rn zx{SCiv?{gZ8XAKp#;o3wMB>vc?BU6xNBQVIk90It->^Y1jlZO!G0iJxeT}+J_5F!| zgTN}=y8?SQtK#Z?1F*9_1(WjfYw9iVD#SDt-ZSU7?#)yb-pho7Ir!Q(?XGR03P;4D zNDG-5IZZi-HtaW=MOChr-ORVAd|RO>U#?|TKvilH{6g67OanFT#+;gn_SG4c$9a{s zsnvNiy0=dglx_K^bACrjUHY3tkjuc=&;{L-lY`1QU6H+G)T>;D@e!c0Jy8OdBbJNd zP_5-TohGI5Ry6CcOzobep@01df_J@#@RLiD!Hy?nz){lb6ca2u_lvVAJ>wzPveO3s zrC4`HYvtX>>@^`u`zNY;Mf7ds@G!m8FI2PnBurmnD~N(L?2VWBI(zM!w1+k60DmA`yHO=9&d$S&!r>N?lk-2T_H+#r9PWFc3Il8aN7cB z&icBB848crZ)Y8>byo&c;TwxUSq>$bXRIN{LLYUPa+s9Z(lt9^DRfC;Ta!Ckw@M zwiWxAEw)DFW4uB~vP14w9mD^|I}P3wfAHT=@&UsHdx9^Vw9khDW|?5kS+`-oWLQNoSs5CuF9aSNzOv*Yp zQYOJo_0SOMi+8zwjV;i_vLIHWjXR=xo){6#!})=zy?dsUFZA*SQV!TnBCPWrjmD4r z+^|EbKf|~TY^cU%I(4h_LDecCUb3X5D7hA4kBLbPeaW8vANK5SlnKonYw*7L-Yrb~ z*CfTre#ozj*u^sAm2igH4V&?)WvnGCbFTlk8jASr1rSBk8rgrp$OgpsvVnc1R>R`K znr3=;n8j~SD?KaT^3r1l&Mx(5&eBa@J)(U+)O_OC)^nS6n368iRX@AG1bb0`ojJ8j z`CH=e43oQARF@Olk@s$8vy&`gxe@u!Yjt~C+k%m=ilRD}%)eO)_IQjA0Nj6*KWC;L zR9um(L2maJ!Ps?f>k&Q;IB{8Xn7f^q;hA;@A0rck%&Bzh{w!7)F-+JYWp+%IHOzj> z?K9lW2nv#0%+r+NXSTIE#y!cOGpJ=stDE-Btx@`=(;WOz$hnyL^b`J7o^Vj2zHRI8 z>A({yPsrZ+P_B?hnC`Yd4dEV%Lq+LOftQFzvTD5b1X!FnU_{`*Lbb3;SxfFU?Ld z_}31V!CiNR%*iibF&_|xTea{($tG)=#_~%ydPvUtdkeiGqcdIP`SGWNoDMA2zZu>p{BXs59~79~(u|j%Of=5v!fW;{+;+Gy;{R z5cQa3ka=1=a%$3VUd3R>`db`dk}Hx|?T-ewS79jZgj*j5Mgxe9N%i38Q#9yQuIbcY zmENANgFhDfV1jhy)P)mWiN1)pj5Z|g_hytiY>QCP21bvSK{n|}Vu1FGc=SP^!T6?D zbg{7FCas{p&xD_R6FCz7RQDkXoNKFRLPu~8a>>4LNYrUPpEk|NoLAEWkrD;7$jJ0M zCeOG7(0u2!At1vV6jdz;+0C{ZR4V&LA!Sgxtby=Bj8G-}bxws#8UWdEt)3W6e$XwY zGDLnSGKW`&$p0oSmpj!EqiP<)*@p&l5O9)LuS;>~$M*}<6^;K*OOr}Fd@Y&`;)+Y` z(q_lv0_-(w+UjA>cH!PJ_45R;cJ{Cny9UdbG`-{=wA1EjQzLIFRlrYb7hU|RiJ!tN z=PWa8awxFYz27GP6LSbfcgL8XX;p@w^x*Tx^a~ZIR{bR*^_Q2x4v;G1o9M;#nm=i* z|ML{ir|c?qvNBr7Wxp@>9Hy1MTFfJ19R^u`L*@DoKal9}W;vWC`bR%xwN@Seb6i+{ z0iM|H7cbu$j#7e#>ZyFQOvu>0K?NLUXk!Icp|QeDnzLfiC3F!EK5g8C`JLH3Pj}?3 zG5p@+725ZOouea^AQ0Zzsgd9uuIX;4(;1u%LRC9d0P;*_gxB9ac}=%G#~t7c%!1Zf zk;-VoZsq>LmCoS$&pc8$GueaoT|AbkEPr#+=#67)`>L-$Gv)>xRhyhgr=5qp&DpEd z#P*%FBvMaB6}NcLM83oN^w821<5y!76jrRuYIQcM6*Qs`C?#}mMuItJ)upV85sUld zcm-pww8myWXe1vx4e+dgF_*Ael*)WUaQf+B zNLN2J#|l$a&i@H(uD2|E!&-Q`w2Y;Q5~UP^0#0hp9}`hJ{B9qr2lECRaO++}>P5{r z=F=PU4#$wD-^+2|3?>}B=99I{=1s90^8}5S3fqX<(j} zRVYyHEYNTH1hjCG?mIChMp-G6yM4auTTQmCDSb8K(LpX*e^LQ4!7n4ZJigCa5$1Q) zrRgt^fot!XtIn}jA736Jy@o92?GnQRJd3=H3v}vl?oF_2@P{?M`KDM5T~iKuUvznk zxKa%cqsaa5A)I19#zb8Y)XivifvxMFe0bSOWk;^2lfhirZOHt{4pXU>w1>WD#OZI+ zWJChh>bT=FjHt#xIOCXF?LWkqy%uT4AAN&3^lQtS{Y_NL)2DUGw=!4Q5YDS056m$l zPe*jIh25lIpV6=k-@dvU}<@C(J$$B7~3q4^eqFPNgs zDWlz^{(hav)VmMHLS`Kw){i=Rx>pbq{<+v;W(%O@=$};SguK@cqF8*j+PsPUor~cyWl3v>I8EcB*|2^1~b zMEz zj;J*&pWfg0W-Be(9k-hSAmS$9jW>qxJv0K!9X#c6(C8Y$R~H!i<&uvF#ZSO`u!EA@ zV0C2Chx2y0`knTl#LBx5>{!lH#dz;~_T?4xKN}29rBQP`?BX;Y{jU~)G>gHFGwxVu z79Hony7H%2VwsThn)2Dm&eH_RyGRX zD;&$Z^NanODMYeT&Xv=&o6QmF%VI1mUeA_nfqI$zq121*r=-Ff+KilN(HeQK64VU= zdc`av3QqpYmq%uuvV7+V^=r-bBbK07oad}R8<5L`%hp@qq(|tyTfb}yJPDIO9>fa` z_Zy~YZ`HPEZ&-}pVlBggBCpq3p|M+=>q0YRZ_Ms2SENGh41&hAaOT3lFoHqXP~E$S z?n%(>wV(8$LwUF}BG{WDuwS5#duS(Z7|}#B{Oc9|_R%-+T$ifcw&f_YTOac@h&+X7 z9L@Cnf|1PSjmma-(z!>gIQEDinV=WLyKk?ihIpz)FZ9+euMzS0U*pPFiU&9;H@2rN ziAq)1_ZlXTXQ%512d0rvu`NUl>PL54@44DXYA_OS%{GjW`&^XMqvJIKvk6Oc@|_bS zcVcFyAjVFpRf%5HLO#^PGs*!dP0q}M?kio1fXC)uRIc7J&zPgOC^R%)uurd|Q)%SM z8u`{-H=i>rK@%^3!J|;6p$-qE>D)(WVz3tLPVs4HN?7rf!-Dh%u)IXd15l6>kh6Ky zoFuj7->s00brQC4Q_$qOY5VuuSG;B!+jhE^6~n;rOHjQ9MjE^dwFg^j_(V58@i14p z7l5%m!;$6FTwH}+#bQQcK->~}1LX>oxL%0-_#x_^ernDv2x+;$r+of|&mxZ39u@b)o+Hc{O_-Bj5e zw#QU9SJ9Eo2XU&bO=OZaYXEMMz~(-&?t*%9yhnu!%RkR7XJy&U{}3lPh^$2cRU6Ey zJ(rtF!i~f^fEP-z1IEQ^%Hns0fN9hp%*)Fx2Euf4b5(12bs^zi3F7&Ft>E1>mvFYdDiPGtjvAUyg>xwWWr4y_x33eyzM4tIsaST%<*l-&M94g z$QLat`G9myXnNqoCkapXL#}bMF&^NjPG__hM9+a#f70jM{!t7#KRGrA0wNLb@3Q1%#oyk?!tp0SQGw8l@X)knWJ~9=c)ZhV$V2e*5fe zpL6X$f#I38*0bXN#eJ_LNxP}BflsV5o2t||^lM6!e)ty6qMk3UIj|5zxQ`j3!zPcE z#-4lgJNBinV?X+Z5i{O3KK9^G1H`UfkezmnYZH31aSL)2vI*8%C|Dt_t9m4D#nVqn5_ydY{gj|f4jz3U$-slR;D?{{8OxQ8k zzub{6g{hq1dft314d4Huu)sZn;R$gg#ZB%MZ1+`2D@aYnZ?ZOiEsLs2dq>0*Tw=iE z&N9J!E@pEFI@`ab%@mn5_Qguh&nckigEsGmmC=0;MyLOq7)gzJ?t^!R1ihLUUy!3+ zJvPq1Ih;Sf_FgQM*%82Ln0!!+?IW85l_Ko?+PbDjv{1rmwhbhkW8Y;Ia1@;0DsWrq zRcb0a%axFh5?W{R71Q`SbEKR*+>!Cj@b(D{=OR2!bw6q(s5wJNG+eAA$)eB3nKOwJ z>b*oyk90rlnCP}@28mOgv|T-Klso(bk?U55Q}#+1q~b9Rk7b?LGC+C26B$G0ND@$j zAM{R8*zAmvu?S`^17=^_6=Jj8;cXOk(8->)>k}b7he`PP|6qh6IEoWoE7VxewV@Z! z$ky|Fk7opuH03`1BZt>MysQ;4{pclBuis%B?gSv-=1&obZNL`mgU(6tvtN{?QWHzx zpZ<7GtI)GFlLLCE-hl|C1O-}@kT4!V;-<-d>lDft;e>UrTFo^jVkNJ$1z%@|KgjW6 zk0nvWF6YP;(>9auB>&CXi{xI9qVM6Rc)z;Ajs#G~``Z#sVe)2|84#!|4q0{){XT2o zU$1f>)JE~xFLKr*n|9OY5;t)5m-hkb$nq*1==_H%DB5t_fFxVeB7u7~4{mE!9?XB@ z4W4QyO@q;jfNCaEwZlz9dCAo+c^$E>TxaoJR=5noMhtV7CDBLKm{k=!1WP)CTcRYC zK>BxnQ@aB`9}UnJ5DGb!m31BElFfzO1yp7osa3$eF?vSi8HK8==gdXn; za1^OuZ586upeWF8>eiod3W);&SFUKItgmFjN3_F9<&;7gfYH?8<1P62QI2c@ztWJT z4HqOgEh2AXF=7q{B_0EOxm%sv=JQJQ?X-jlbv5C2I0^Rt}xn1oi z+@)Ktz2~?QuVzaBDOQ?{2Fzg1zIfHm(e)|Km7q*z{@I)O6qM^fuS$9uM_yh?&XC^# z1y_iYs8CoudTbE!)!P`4gP&ihW>A18JtVn3_&1<;&3`C9lha+V=YMXv`D?1AFF!ZW zGaKeI!-^EOJa2}q)iEdXq8_SVd($ks?ew!D9i`;+0)(pYJ(9KSkLYusHW+>m*Zq%>K^p$Nnvd5rq>awb)&Cq=q;V>zWPb9z;W&c~xd z1?^0EMv1n?j_D6y3k?z+8n8xRXntt;8xjpZB=@W2sr8LC+m6M`)=y^*Yd)ctsA(FLVE8k~9^qXe~AQ@U)0r995HM++4dw|-^ zF?x5*6+b#_%j2W`kT0ER&60BQ%O!8uk4sorW1~>ewf5TsVQNZgAl90Tcs?&bQbt>( zNPEq{*TfYJ9L8M1{Z>n%2?_FnDso~>VFrWRe;Y$X54FW>)#IL3_Lh4PW4xq$0yHueOQ4$EzmLiWbSnb~ zboaPOnYM^=zji4N*5WDZ{&qV^yS#r7SKJ5NSEb-k6cE>v6G1sytGubxJ6C@hd)0=< zaLzp;6$f(4gZlO>-!pXZs%A`A{j_}T_wb|ck>4xFkKWik9TAW;CIdOKw0?_tlVS+o z%hV!b{d;pWC$dOWGOHYjaE9h&p}blzVXs;Miq>_7%e*!2myQ3`ljMS@5gbQK+3Q$! z4eb0VHc;(X9v`S9sxc)Bw7-`eU@(X1GM&3e<90qLF|VHqxoga!82wsDz>*nnA%FW)y*xU>ZJD5_&puwUQbWf z<78IE1otPFx-SqB$!)u?sN7q_nOu8AlsyxXLzI~p9Pg_to~HGBD5zxT!?fq&NAW7f z6xwym7E8{A;(maZjn_%2ufdRQXc|!ei5cd|(AJ^LmU>c4;~_6LO7(sknbrMU)k+*t zey*!Vu6vJN)Kb zYg*U%XA)H++&~%K?S!y_g!_7?Az;7-z*M`<30Ase83jkewFZ4EPiSk*WU$hmA35=z z$V04}NKDg^=%&k#>XgS;arvvjIpKv7mOUo>bj$6Ge$!Y$gF704OJat(1G3G+V zMu!fm&dyx*LtE4?_hi(*M>Vhu7Tl`~_%ht`X4#&w+Ys0L1T zxDSYr0iUE))h<_c(8nR7zlCvdf-meT+y%e4YFzR5uGpemuIa^|W}ehS(2KEa+lt^I z3go2Z-9}ul+#P$$e9<__fgMtX?A%CBL>{E)?c_|joW=2PYH?Nzxy_(sB`Hy0ig4y-LnHdRe_06gdMU`hf9mevB4#Pj2tNsEUG~qVyAv1+P zE1)I`reex%R91Kq|cLb%O)i4zW zUubc%taAK;)ZOt2`MSpI<-Kw;pk$~V`|}~>wD(2Wvvl^)h0qe)#52S1TG+{LLyQo0 z7v*BZuYH&0H{0MZd-?gv0V%PDz)(EDG%6#mRE8+8BO%supN$}+e*#tXLKhu31XJwb z0GqsRh-UCiGkm^JBKxCylORN;C~PexW!_iJi99xnp_a&fr>3LXp7l&$33<_nz*Ynn zw{Tc}&bmcdXK<&auIIp;k%6mz!D8Mg%p6u12-6}VeDF2#&I)N5KS|6)-!fw-xd@tu zm~F-x;Fv#)+fn*V5u^xb2HsWNo*Nv;{GC4Nl-5#sCJC+3?fC*)Sb#O+8ETFw>b(E% zbCg{(G;(pCTmkv8W4L}D2ia6-Gk0&Hm66TZ#%t{0ud#Bx-z>RGVx^V^VPthEBB8nv zxd62ns~2za3&xZ!h}h=$F9sRSUBkF8Q9G4UrX6@{zo)Zm*HqmN*Do9G8D=rD7dvV5 z{_1JdVX8y^0NEI{6NAg7B0w$i*QzyG8|Thh_lUx+iw(4&>!I8fNA9gy#QLDHtdJkP z9Ne0;ZK%ljmRo6QgW9o7YkTl{BzV*2ZNRT}Ieu;E9mjbA9?b|4Izpmp0n(vonQ{>_VTTs?vk8-k{8G z-J(`%-qcjL)PlRra|=)V6H}ydf~f}9s&D@mQ#64l9+LMbqh0LqYE-}BRv`RZut0r#yU*f@iTodv zH`gS!KL*slHk-%g@@I7|l^*^0JuTFfHeX^Nuvc$C9bGzHIl8yM;F;J?tAH(be01&A zl%naHL!LT5yv3H2G5WTP!IvMo!o6{I)g%nx4e2Zh8}|MOsKVWYU&+CYDOoZumlwL= z+x}%!u@31A5@mV5#p)4gH;eZO!CZf5^nP~^zL8}k*^>^XR+$Fr8#>+^S?mANa|=<< zk-U92`SCghkbg$3aZ9lO5}GT3xeSACCCZrHCEy6{UYsG@`#(-Qe#PmujN+cw!BE4= zWji|0_jY7S#&uiXhQC@F(0*Y1I(dH0B;cXeopU3&4|m~fqule18Rc*inQg+lFr2}w zI)M!bqfez+fHz-CZ4gRO272xx5N*Aq-gWZkSFYs;^EoK=c)i3450&= zzYIdO3?k8rzHY{-+bZ6f@$L-s+i&c5-`RP~LmKq{dhF-x^0kztaF+TGd&@^%Z{oc) zUXK}i5WNt@E}tZO+($9bYoK@hi92~-Hkn{GK-@D?pRM+jaU__i z&Z_K_+tinhg~_s%=^Llo7FMKkl^CK>x@$p1cM#2fZ&%=s5Ty4bLZjXVvG&%@m(jGN ze{!kB6QvPO#kW`U6qRDl7jzQYHj&5NJD~f=Bj}=_wet)8c6lB5Fx5y6Qx7ld{h5A% zlSkl7KWb_*yJ7u)oZWBQb$q+ze2mas1qi6jRj!>H9E3|xk-agtx;#B8Ztqtv;m><< z{H<2r!5vD_V*-{k{{);@#QLmwk6`M)aQns3-z2WX6gi#MtP9f3L~us&!qmaCv;r@n z!~`U%!}{oIUBR*sVr}%LRr_|O=JTBPXxYjWXT7AjPO4a25B`@Pnbrb!s1s(bPcrlg zVR7DWr{&~n_ZB~&6cEIr?Z*M*@#@Ls7K$x+@iE|Av<8GY3y)) zx{;=5FEn9kfmFeM{$*|2+Mp%~Gs1Kb{mwRLb4o>-Dr$~=zy(bTmS-^&dE6Rp&nInz z0zpH%D`rV!Dp@39KOw4<&a=ZLc@4H557$)=|8z98paXYgdtDM%?NCk{)Gzh=!~JUr z+j{;yU9TE(+);iD(vR)O{KLAh4deoRuq>4z!|!9jy2L+lx7yR}pS$mg16P?M_yy8s zVl`sZ!Cx;N(S6fqxnx6Wia#hd)`6x7_ht@YEz!cSCGkgGY@yCUV$p$AM*T?It)!@@ z5J=lWd=NHTm?$u9mT^gW7o+wa-e5AZts#5sB-#1_PEx?ZR00v(HIL*57ZQ%VEaDwV zMF#X6ceG!*TqUo!m4YY`4kV#vnu{nuO4Q!+BRg{W>b$DCp=_FcGl{9auCb4?X85}E zR!YT*Te^Mn8#_h+EojJznaOvh`N5iHiSUa0**iTr=U$ixDE9V9NSbu+a@@!DMh;dED4m^|Mj?5tF@|OShDEq5qbX@?Wg5KJ^UPX=YF9N zT2wD*twMr!_W1K2Se?VPW`-rF9B;Wc)LNkkKvYst6c^ZBR-A}f(hFgOl z_-wvBc%LC|Pg%F<&u_x~E$W+!_`q&~a*rk3+CDo0L(?Y&3pi{9F=jrB)%5(T62CjV zvbHL}Q!*Ht=#M8J9~Z$rFZqXJ-7ZUfpB&LhCEl|i1ALbL2VesO{S)94FU0=g%75@O z;E5NQL2dgF)O`BYGhpltsDn`y4azuss!9uf%AQQ9ggxQ=e?IId6Ru@hTKwO40XQXs zclx!M`U|gg@pBmE8=NBnupEG*2pRI4_OvZvo%=k6k3B6pz4zzgX4|P`k1H>8YD}}u zn(#H7{@cIx?b2ab$-gpG^tzbVFc?%fHDC2Td0A+hKwjU@MDquZj!O!T!q1>n(jRrJ z@Jr~Pm&W0AGZh@&7!7hC+KR35*p+NWg5qosPBgdMdoXm^i|0d>OHbF-0M~&s6}6qV zGEENX^1^!SLjsO7ohQWx07cdMg{}#%5yhJbS6d8{MKNZi_H=*_?dm8Mv8RDHnAPsO zLROSWkP}rl6o1r7XsKocJ>tSh74iIuNg}!$*e;`!LcIJ(u_?D6zv&@3Yh-e9x!xpM z37gUf8CwL2t$nAj`?2+6_5XuBk3Q5t%WXT&%peuTJ9AoN@UIm|{}STYks;=pALS)B z6x6>AdX-sG+r|v1c!Hi~%0|gJjwh2D(wP^vh??{^+e%%^BcP}3h%d#lI_m!2P7GCu zNow>tNzw1+&9OiF5j}tbS4Qd0+Vk!Ko=6|S7}jNI{X8gNhegU;tYpk^>63F=$+O}Y z;Rh;tkPNdHhk@mz-9WgAuZ5SsI-X89uC2ViRc%IC96XSG_SCVarMNW0Q+7{cF{T|G zu3krWfdXAu?+}5@k4WUiM=KlJjC2V~?wrQG(gAwK7FV}I>Zo63#W|6!X!7}Mo+J_cos8B_jfoQB#Cg-U% z{F!-$Qu=$E9s@?KU=C5GXT*vn7}iL* z9k}J9y((r;z!P=yT0b@`OS(qb{8K_f%g$UZ-AhSnBdVl@+~>Cg*(RTMhm$fN7QpwA z)WBOH4Ts<>lW=_KamC=LmQ2kr?I@$hgrCcZ;ndbe$k5GgZY4>{ z1Xp`HFNy>WL{d$G?x_8o4bw%v%hPzAfFteR1I9xj)3rD;#sX%eJvWYgbS-EIP2gDM z%zAZiR~1)fVjZsz*b?%xcZ#*<+cE{#rlQfHI!o(PS8>gb?a6OUEQf1!Ksjl z|3RSY{|5rSwyP4A=`B633giF%Yq-2@@*5SLwHQ-TCXuSdj}e@0SjqMH(;^|LQfwm^ zq*?@a9zJ~4J7_dv-t_!Q@0&4IXGP!NzWFY^{o!oC!z6IU8?`L8s@)*zPmUL6?Tggb zNr$0}KxO7za#s6|mA+ED+3gQ|El!*kw>p`_huS0Arv%n0L1F}BL797x0-VuL_;b|{ zkqQKL>?h&vO2Z}(oD-(X6%*L|5U57!i`lPD4dlWxo5T4=lI{?scwN77aPT8Eym_&B z+qws*Pet4dhz?LgC*&og4?H_U=7deN6Y_+)drr*0sQ1uTJf+eT{xamt;Su#dO#(Y@ z>G6f)u$SokmGZR9((`ExqD+YLy+eVaqz#9`F~y}LKXd;pt5b0C07B|<%p1ysb`!gX z@?f?zIQP(f?w<&_Nov5(Vc@ZVwpWah;Re6$RjD>{LW6JCveo)Dn25Hf*0 zler(44uT^`6=;P;D=#L}Zq1`g|Lb2uXb}KO`yHjSXVU>bM++)tGU`g0K<7-ffSb{( z3EP`)PK~84C(^;tlJ-Da$FoL$^ba3FTHTp{mdDd*Q9SBHz5J%8t&=uBXpe(^ZzIc; z7BUqCgo9RnN<`+rojqQ7T12j@^bxC*gB=$cNk?6DNvf7oDj$4EskG7Bg%>I|26Uyv zn_J(qJfa>wbDw3=KSrIl+uyRa-+BRH^X3WlYKEAFIU?dF$%nj!UpaYofLT%FKQQ(B z38ua`D@!is3fKmsB0NO(8s32@Gt~t!w(%dBLyhSrwy*Z8XVsuL~Rp4{xjRe}JM&Ah6H_mHjh`*3Wvp z_9>cXLrZQ(0;97;TXye788A*`-7`ec7@ z^h*SSbwm%9FV1$u2U$1uK5!8Vv|qx8-2tRJn70{66R(Wtg0@?Nq>_s1lRtdCVY~?V z0M-qE%O!#Mi(5Z;@M+t$jkUC3wXXTG*7eudhO&p;eS;70_<-XsQmk{G#$mVNqu&z_ zw9T@1Pa8|iwt~cAug3e^^L+CVYqapCJT0+Dw055$YJu0(7bAee>qeapHN`0Y4eGeC z+Q67zj_dQKW(EHR*eu~b6Mxj1qvi_RG}+L!XSar3)b(bW?JOCWg?qe=lN|f~pNKht zGd}f6dPo&~IYq0S`4zBrv_HBEPdPArNgB|-Z!};MN=)BxPx9Nilpx)Gej3MG{G%5$ zP^*F%?zpPd%8`!3=j*(&_R^<&+q3p52IW$GLYTi$hZ=02S{0s$I7cZZ{N~Z>70n(0 zC8$yE3PS&IQH-_UmOTtrU6G{-O4OvxPlexpnS$E=viQ+r^~d6D%F_aatMExPD7@nz zud_uX$7$HvyVEF(Hfj;QqtZi~MYPAp0#Q#V!%4TX8|E*$M!45cVbb}HJ6{l7X|uf^ z`1E2<_KsQfdp@-<?HahMzA6XWBM}dVC}{nzG=p$3c9O8#kE?StAT0x zmGe$t@jB+11nG>Feh+_0j}Npbqd}XN*$*42Uu#+?x`cLNxlNH;*gnOh9+^Nm>0uws zN&1U^H9fQMly)SWnK`(n{X;pCJ1We&{kE0N9;cUUhZ^KLq+ym(>t8BZ8<>^Jc85^0 zYx^T&N;%2Pgi`o(EK+6zx1z;rV&BhMzyfgYfw0YL!_RULS(~Ri=?Ik$(o556si>{T zDkmYh_bEo$4@RP~;XB^ie{Ab`=*)CvRS;tJ4c<|x= ztMV@%mjXx)s=4DSPQa>h7R>Pn;yQoE@ujv31x%uj!#W~m_J??d9-z)18&;Yw zTrjtW9rNUF3dnGlLXCm<=aTPV+5(hz&_je~J_f~Q66_=4icNgawK`q!-&{v97q!Hk zokjVPr1rLJVD!o%erDfw9WP(6L=Q`r_@I?%azJO@dmGC`2rJ}@@3STARA|6<1k}Bn zxs0!$g;hU8617&E5Bd4(sLA*sZ7kjsj8upN(l-?1-d!j9;);t9)F7oDTX9_0ybUNV z7u7-X9B!bu@C*0P6a=RSMZ)Z02d*G1&ud5`b2DlQNH(O>fTuS=QGeB}-6?#0_LTGo zRznZW$~@FnKs3y0G=9+DfafKEq|6~;>zqu)F54GSVOh})yi_E&&Kqx`TQ)I44HD}$PSSXubIK~9zp=!vcyuU@X-Tw233yhhl(7^}1d4zvI z|4YIEQWj`9)7~WhqZWXvF|tntB=lAbcV=x~OTsO+gW~_&Zg#NaN1)}7yY}nyW(`nZ z&bKq@s5{c{03R$BA*rfmw3l$Nr7BMa==^RkW0TO>%UedU^XSKL4axu;7zJ8#*Ulq+ zaQZKm7%~LVN@7D45qG;%qz&w7&thKo_f>E<+zH%a3(k3pR9eooX;^s_{e#X?p&qyB zl>z@nzCS=k0R7Qc=sBZ@#MsIt=ICNjt{ZJZGgw0Q59nJe0VhZ@VTJSmz6)xH58zF?r6Wbz*Q$)kVZ_HTS(0iG0E9vMauH)7z)T z#SAXZoUo~8N@|Wxy+GWF+v7H2vGk*y2otX~F93UN$QoNl@psGKYLs37H;tvN^;BG7 zZ!2mmG-TyVX%M{&dfX+U^P+W7P((zeS-EvNJR}9UCjNAO3ZMq2qyjiTik5%iURPU5 z+a7v0^05smw!npcZ9K`e#(OA9*&rhjMcE((v#y9;gAENc!zjg@q6V%hP%aiyR9Dz0 z@Ch5pH~MhK*B`ZePJX%mRh##Bz&2+Y=apZ_>lva5!#Dew70fFtd}QA*J?e0PY==1; zEZh!ecB*dw=4rP8{lH>8))2K^yNI4 zmv9;h?qiEVU+s~7NpqyXWMKM5_g25Uc$ftVa!9i>`W6kAeyaPp7~2isd@^W~X~gUc zJrMnh9pBm-@AUAYUDkgUmUrxkE*!QRoOEUEkbt%>u3)*NI`g!E9x#C`C)p9YJ8Ebo zH3`z`8&ph?R?EV!?FFoHlku1#1bIWHCM`kAuxIWFTq_6Ymf{3O^rFy*%Xfk^I8^>? z1~PoO9M$eEf{ONGQY*H>lOGyt=roH0_3=GPxrRjB%-~+zV8>r)i$8fDaM;?=;r!l+ zG3{=dj+Hc)$9EzJXrMxd!f<)33vD0{yr&&1K~z(zYb!c`EsI~PMIXryeu42lLH8)I z9JTmB$G#8~Bedb$uVH(Y^ovY7Czyf;NIP&SncHyZulm43@;(=O zKiAJiV87Cxjn2Nub#A(+gPWkMY1+Nx^;dgM6%d{&(z{Nx5TBh|Qrcq0aYx~cBMPY* zQma}fl(#CFlZ*Et`)b$z!W}((am5~22&p!(>X!7TeHg}ng}xL@Ew;gxkni(Xj;lp} z{Aw-vs>-y5J1=vVdUfGBtTP2Sb;z>KeYt3)zKuFt zjsb%6M98(0FPvV@Bt)D4(!yA7*JLN*+VMeh#Hu>489|-NWxi#!@C%sr4_Z$TuB)c| zB=*wr?aHt9W;Le90{swsO7r$53@r%4tVY%HT_nS3-RpMv z8;Rgvq!?{~t-ZYUoKdiYh-jPBdCn3VYKy{*mP(15QJgSUhhJ&lOnQh6P0$8>f1HN8 zbqKbIX&c=@C6N2ReCaz%cidI84vAL@gE2;eAf5nLI4&Ql((G3WOA|4I{j~xPV|<3Z zEt=R$2T<>E0p@srz|e_gd-MoKcFvg>W}`BVWFDQA8}vf!{S0_r$OiZLPGX~$X#Emy za~Acp^_17mH>9jH?@BNArad-D-~5Y+MhXzX$A#H-zVa^(rxKa1%$skT7E)Ka%4L3C zm*_Ob>3|>Y*73u*pIHy))TwEhZ`C7>N$q^PNeTNn;Ea-HpL!8h*myav8P5(nR zgan?e*AcG8FXa$0x-nYi3Ikn(8o5R z05_$iy! zVOk*ofBPJ2cFVD>F}_HimFK|l5j@nP=k3&#+^fIB`Uxy%<{Q812cf_8#gmTqr>_V1 zr6-h6YL?0}SR!tFebCn3iqWdF_IkG2HU-D0z=#P@qx1&uk!)xz$Gbam7m69mO$?HK z{J~T-K-r&XFC?m1q**BRJnV+0r?nP;cxz3)i2d1Drs11D&-))$Wp4|Ym#RMg{5?Rc zs9%-A>SuHF-UZvh1@3{vpgMFZwiS$1>oYAcm72Eo z$AmqFo;ndDy)X3Z_8J5p6OH1TeEgV`npOMW9MQpvE8;U4RsA$FsxkB%`CX^(VGs{z zr*z&UjjKDY_^UMeFV=avK;eS5`3sw?25*P1X_Ydzy#ezgFV0`Y%j(HDY+;bxX5hbW zkM9a@a=bl^0CDj`fp-#c%12N4Z_g}){!jplYobw>nTZdp%8D)n2(W;v&dbX+p_@K2bEy$dhjW( zbDmrTE0LK}Mg7L;x#Orpu4?f1$9KBb+WO~Hs*fkXsDLk9WuK>k1_-Fq*waNXEP=ap zKqKqJCjRVKVSB<6aK4GSajO% z9KZItzU}d&C!hi~oYt~@4@f`PMXnIfBxFU1AN^K(2x`GM_G-7VPj?;DsDhe|&YG}k zpnUv;+~7||@*J_Yy=#Qr*=W)xQ}XvjEiqm-?o2`Hf%%d*rn(-AeTWx>9>(`8+Eh66 z^q+mH?4_je7X2KWm3OSTje!L0EWca4&rGtne>{OS2vB(>HPF-*vS+~OsRn;NqC3bU z7Wb!S+MnK>A92nz&%mg?1wqql8(p$>9M0p6%)+8>);ws`mrXvpPI%Q5vu?aCdyX-3 z+Jyx3B1KNFn%KOci93DK1MIP6SRvbVI{TZyk3|sFM?TsiFHD?M`Gk>=?oli~dmUz( z6B3|jPp58`&0Ki(O$Kp%F~w-f!4nV;e2atykCYv)QoMl71{R-U-dqR<5SB~PM!bJT z_@iHck!6X@)!$l{;96g7=sge5*T0tI^GnDL9X0F>WCihoPLQ~!A)V@Eb}C~gwmn=e zT6f};aexw9y=kicLJo4X7aNWL47?_TfnZX^qb2GZ0$y;!scGLkJ>t$+2*UUZLni+9 zD@EZ#_x)pWRa)}B52nzINU=nkx=7(; zIkzLc@|1GLyCw=}N-y?aMKoG@sQ4ECIewFzVc>F@i7)K_u!Co=Rh2Nf^z{e^R<{X4 zUhQKa`b>WOp74c9dwdM`v;V>w06Sx4E5q2Ian+lzPG+Y>`MletwMV*p8yT1v>&EyO z%nzn))z78TFww`GBVt9-eKC>~O#pnK?}W($3f^7ONB`JY58rqMkE>d_QbWe;sNfM^ z_XV{MKh^Y5^82m-V@hQLr0`Y|^c_OJL}cBLX^uOt;eu_vvxx>@>wMT{ z{{iKjSwRtf?rfYgUXwR_%Dr5s*Yj1j{I6>?c?MXrD2qmL?)9G~gFk9Fd%dq-USgJG z03%GD*t{#}Q8V^)SJ~B%D&mtkP>m%(>j|N-NDO4X(0@A>CN>RkQih|fM8dqyar4?= ze@>wYDT44;G!e`Hwb$omF7;1=)hZyEb!@e+C)#VQXKptKszjrYUVl=DzxjZwyZhf- zG*cMcG61&x%mgbNygd+pNd@?MWBbszLCL|~{4KbCNJ;(fRb?6U@#1)*1L}YQTN{9c z&e)A46lkX_f_w;5AxUr~Ap|pjwYQBH;X40eFbpt^e*z_xjA_-P+VJ~sbLG^ikgq>M0<#E zC-9y^@qc9INk(7O(j5M1tDy({%)n*1N|Eb}xUmDmULtiV-weoxx1r6ZcS&NJYae)CHNNQFN|R4#DSla34|(`8NdF1Hgm>bT!_pH6K%^gIg2TUB{h8|O;j8_Wt1aRhy0^7&R-qnoj@Tw6CaP*% zqZFWtd>P`V_CfP?8pvfwG1sbN6$DXL$Fq12!Th*Pewg3=`5}BtF@oJIv}kRUrL@JamW<CqL!JeUo_5M|0^?7| zzO`8jTT*ShXalsPe+HGS@9kgOapijs``;QMn15=apz>ESN)c~dN@3N#Kuw~c00AJsH1s-e0@0Iwzxj zBd+R@-o}~!lc`|lS#QAi=1^v2{gm?xX)UQM35LtgtZ(x<2D<^8pC_yW9b2LZEM57pz2kuImV7Jpa;EQziFD;b7_4_AUK$9>U0-D+kd%P%jhHBtK6 zWYjN|$9!?-a8M@6YF#A&mbc~yMA0!XwIri%QjK;W)sCT-i5$X1d{En8Fr<=Dc%X9a zt;5xlN`20}IFn8b?P)@7#N2!5lECU$1uc_zIp-?k0-*oo3g8GhE&|tl9N~&q54vBl_ z!Xa_Fq=er+?Wmc*x8JD8txv*VfAP;~J5azFJxX*oS*BYigHu}L2(}+)Ry2E)8BSi( zZe!iLC?uV?0kx>ymBendRzQ%gP7LIf;P-oHKv_tkVFqJ&iX{-GB=C{ZDQ$4Tc5_UO zt;>|}s|DQM6#BDa+Q}I?TD|D8Pwq&j{<2zM0vJ|s;kZB0glW?C{(|LnNU})ReW$Ga=OufW^6vAm{Rwx9k;-&Q2Rkyboz)43Sl06EYz{R z`}he{Ah%L4?Y-3)W9SB~B-nq*91vb(5+^GzG3|w4Kayll5_EM9?41O!5(n0rQU=P2?jx!W)HF9>MwJhk) zm0`6MH~Ks`w=abhCB1fLBoi;1BBG>;40;JZ=Q4Qz9!8-H5 zHS2S8Af*C@4I~EBbZ*Y4BtEe}W-zscGc>^VVzGD{er|i^DYwQuU)E}`rw+8wn#jxD zdwdpn^_w?`lJV2n)!ook#H3fcieE46B*Zl2qc@frFbYR63F1*^e4q=15XY$NG#0ap zEg)#UnnhU0l10>PY@~RDUu{m67Vb4JvBRJ&YQY4(=5C7#>Ng5Jmi&x>@ElcILQF-H z#=`M+gZ~X_t;aFi#hQ(}`cZw~i6i|gPQW*%sDmEkq^s^2z_<20r=R-BsIkw+ zGIn><#9#d}*7~|p^pv2KPfl4vtW48F2roh?wQtELfE%nn_fxQ^erK)1@51hb$_-qlwWp`>q4eUPQFt`O|dkde`i`73EtLUhrv zf?w*8%hJ5u|Mvc605Ynz6E*Ge3@L>X4UZvu-q$0Ugic0h4ZFvd+w;FE$6r1e4V*|R z=aemtmJRE3mK7EidcDNpHpunM<|@-m_ynF2Sjhdm@}>%p2oy%bg2}uHrB1cL*QlYK z>r*@0Js8PVo5cnd5;`MAizp!z1|T4IgT7zoaNHNTXgqUg1A+sOCL ztjORS8_c**h`FK{t}p)RF@ho>A}=yOiitd^SII}TMt^{b)*kN`jST%m5kb22Jg>ToJDrVSxm=Z}M2Ly}Eaz zCtSGxQOS2-e#Gy1Je}kv@IDCFTZH#A^&!zwFfF(kOy~1dpmwVYt0V37rsz++5EAgC zJKUW8_MH}>b>=2{$+L$DBPVIDLEi^+O{Zt$Y`L`#gD;UDjY|+vjSfVPZ(k%J>b-nL z6xM+aR~du(v`Cw#^QrJ$za?9xrcF^}i_%8?#<3gqA`^}9`O~-0`8ArY31iRliHlNt ziw#F~I_X9hQ{K?l|P+d@hT?3@i`-7qLXZJFj@B5=+L~o*&uz zor}T0e&LI+*-&R#;9|m0qB>VGzq&8u(7GGqtBf_qS+-odf#tR{x43P3K7_x%)+ll2 zO*15oUwAV=u*V1Xw54Kmb{h!SwSLC)!Ik^ICz-2(h=GMlSqhAwH8bd|O$lTGR|9#< z&=}XB4d;VY4$RI#ikdFJfFc!D4?*q~6UKDVu(Z#}pm01w9v=IAB`mE~(Vp?g_=;dF zwZA@c1_l)p{ckq3WSOE&xCbKM8H4Sc2|o+|KZnEd$q$0a2lX#T9`O}&G9Mpty_}GT z7>&^ym3oh+UD& z79o@%e{q9-3>I#cX|2+l2x3D}c5vtvGR}GM_h-NsJbTiy!;^AkOZ|yhIkqX`42DPPz#OWbXBbOqNs~?OxSP+7Twskdc9&nM&l!cV% zCBE`?*@rN)yAD?#gI7p{^l73#V&1+Bp;blXP!u^-SOv4_BdYiLOAdste)mrYkwOS_1aUC$Sc6~oP6 zhPNG9-NT9a)n!}#P1#Lunj$g^3dqHjRCm#@MTL=+^l{&t8mxoVZ39PgF4}qo0t;xM^(c>h9BAn={fpez z8-b#=X8Er7K%+guh~9a-3X0tB_1C2?%0*fj4TzG|PdhU83z!ZXe)zA+IT7pn`P?tx zR+E<3__F7}+$i9eqg6rLY{J&gKBB>H8WCQBa{QG!MZNqclwwI9-yQ@5vj`!8)SX{X zhv1}3%isq8E5j(8DjGtdQVd>xt63ce?UX34>9#OaRTD>&2u!f+=4ZAD8E4NxTvn@K;;uJ)BKE>yM;>J}Htw|g&QUcd%CgbOrTz`|nEr>}u-=+ojk{RX@LoVrxaBAZ|NQZ|i#T=QPsvuTP_ z-O%!`d=I@-rrY6@h`@7EpUO_Ju&BWdvtql+J2|no(j#ff38fK&@9iG+ z>c%%H!A?8XPwNB>3aHM+Vf+2Vfex0l3GL0e3M?U2a{QY1;nV+9+m*jV;eCJ0U~Czp zEMu%Oc2e)iHg;KRk_@tk34^jTjD6or5i(;<_AS|$WDJrmYhr}5WgXf1%)9sZU-;f% z?(^KA&VAkUoclVjd!KU-k`dLqzo4i6beQG>rjuvy+aubP=M9(2GGn7!&FD`@65{Ih zxc-n%1u??lZ;{^aAAPN-t`}Aa>;w^>O|b%KnO{wRZfn5-og#R9r?%t#6TlQ>{;F7++Cb(g;%jtV}!P+T6*M0GW>Q?4`V9q!Gn5|TCn&9)Q zQCbd4ZJZK-st0!^zKiaz9BkN>cdSKXQYQBy*n=b7PbLg*6NTkP^P(f>;%vB@lt<3a zHt|<%L8k`c<~Lr3g=Esx*kiRI9gG@>Iufz(m=fP0u@x6dgh#)GcXwQ{*)2}78Z?371xXc74982AJf4leY^0Bh{yBB(vtdlc=M@araVp*8VOayc4QE$ zm5x{Ze%yk~Rl4Qv3Te4i#$2b463sTQ9&&@X&#{^NZ8g+S$@E8aPzA-{9RK79stlDX zlJ^5+UEu*FQV|E{o(uvYqn@3d5$(>wN)5*KWfei)nxObvC@?zjT@zIMcS0k|+#Eb%$ zdcNYP7OT0{%B{k+Z1Nb^)>hq-N`!Y(C^!xrjgIy=>* zWgTl_Pp0Er5FbA3vODAEt0!Hm;9bBB)&a{GBL|L8VLVZVxTn|1bhXtetxd%;&o2Bd z$#OqYS{wcBMyIlQPqcuE*wVEHJa&5wbSV-+M1?+%mb!C?9JJWOPPIbgDXsl|R(M}V zl)R?AuNce4sKKD#+ zlu&bNeN%J#{M1mJ{`&A11rEH-J>V4}9t-xi1Cvmx@ORcR1*pNe$?DLU) z2b+@_wDw$6rz($ktV+ySrg2i>YJm;2UCXbIX=O*WW~wIeLsjhoRxqVCwVQ8Ws z4mz&I>bD*JTgJ;Ym+;v0+doB!ltXg)^o?@nH6KSSBuhk6~d&2v^ zst!S#kBP$sFr0n)`BdDg3-q%vZC=MjwH#mtSDiTTFD`;`Jw4dPyqdqQbhN4~BRan) zZIv~kjl~Qo*E4F{&(eW9Z_S9Bm~h_c<6yNsgB8V6VJoSPn?38(Q&p`|L&~=ksH9D<4*HU{vr6?2?c)PtF$Ov&hEq_4Y$QPvI?_ox}A|C7RhFIL?JBG>S2l8wemFhU& zB+^#@cd!9T6dVBWYE|2u2A2IbNe^m(0CE#;cg4WV?;b%6DDf_X3R&QF*aGkE@w=6CIzXSGxUC^ttnPpyMSH zh&nCU&2=$k$zx&v6^wWvK}H`3WMT)bM2Oy3=!w`y8P7c4^8%4B=;SZh(<1ol3~1>z zhe!Foa2;l~e2~;}RS!tLE1@MavrK-P##t)NL>_;5<$`hO{kq$lbQK3C$vu#X){giT zir+2332&q*O7GeSx59)=WdE%C;yZRtABlXcIkw=j?CaDJ2l8Cl z8o;OIH|SMx{A9<=z6Cd8Qy9);Ai*Sk6M8nk+?s9 z#vB93MV%#bzJq&ENU${|!BPL3U|67DUADWqKyd4*)tXc=YO>MSwO(Zycl!I zsN#jnC5#*>4FyC>s~3hk6kfQ$B|e^aza@}AgjEmTG53Z$bw>a#BPkqZZG+~?eR1mt z{b{rIW590H@9%~vA%q)!t(q?rWhF!}Z$;Es-m~LvWczr^Ae?s|?fMKqIVVx8eL4tt zu>H-iI7wMG_VO{ftCR~gXC?qE(-e(7Isq*?pRgwO?ML{qJrd_Ae02oZaIc^AE_m8q z80=A3c5C$gpz2kTaX|Maa|S`s0;v`c`psfn*2kcW_h^4bFJIBt4L9xQy;c!`@fyh-F<@ICbv|TPqj(5&M z{VJDpc5A7ck4lwLwhkwOg$1oK=KeJGUM^qW@>a3xa+vefto>f`pXuT&b0cT*f=tvfU3*$en^IO3+_iF_ z%q3~4+CO(~EKA?m*R#3t)(uLf1g5NeDeJUq<3H-IxAY;;pbPcQ=L?kn&8D=sj>R{9 z;4J&Ka79DmkP=7%f8=_n{FrG;vtfp%^lCbNhNzW=3r|kK2Pu~0@bG%3rysf|4$^3s zBN+f0)WyawiU&DoZjZt|!!$Zc-e-Cl6E$+?0#AKBd5~{Gna9S*8@n9C(*Q1wb1%Z> z4v89jFn1~eI7hEnM%~+~AK&>$m!C=rd(TIe)X-z^KjdeU+S*zeMwJ&OUnvjA)$O7>bceG!haXn|&}}ncY#3keL&{QF zHMqSbsjsH4hgOV`zbUD!sFL%2WN9zzOlryJRiwOwuUCcguyI_obj{J(x1zdr_|ggeX7DMmKpi*BOs%xheZX_p z&e2{@>kS)imypbzYkt;SzF?|c6!8~62;*xhQ`>-AQn8|&!gj7uLKh@yB*8R8QCaY- zmWzdCGuWuSEI?V3%R4it(poY_slRrX4Qkrp#U@khy46DZX{W63ir`Ge3ptq#hob^U zZ;;&NqKL(Qw#=DBKX5z7yE}qA15Juo2`y&vtf6x)p zQg(Uc4Pi*?x;9BM~2tim_#R@#{hb!ZY0N%L=lev$NX5FshRTL1I7G| zW>&EO{yZ;>nAjLPf?k*r1Dmb03(kL&#~`k|uvbj}Bl z(~-#cJ&`**^lx9gs*rQPP(ipY5Y|4q@aA(5O<{>5ZH#ac#f%2EbvE!TRacTN11;Bn zA+S)pb5FG=#+9>CuiwBU)qL=>Y{5n8;CfYZ6(G|xpxUq!%=Sy{<*#ew2fw?O`0H$# zM@9O|jYJ6%uD;zG%dTuktx<8VmI2pIoIJ9mN1A$mpfA`$eja%UoD-o?37I>EEA)qd zs{8IQ=S}H3U-;(&Et&NH-jeK`RH^Il{r%>U(aZsS4Q#Sfcf@Qph&sd+Ns~oq6AtS9 z{B+i^0-Y&tc-OXPxvBd9iiD z^^CUeIV16lM4%o%+3h3pr5xi*e21m!KVQ;~n5!0|-6QN)#x$?Lb* zQtT-t;3`bMnliEdBHG(KSX+9&%IHbJ%F5~O{!>arM32G}PZT$?cv~j@T{mlHNg4FRQ}aQx$^2RFOMNoS>EIIK_}3FYB3$}Z;_nRl@;}6fYIeR*%>Ki!W(;t|bzO5( z&Q6N@W5s09nMc@bHLO$+5ZkKy=aoTGV*2E~naD`oU3$HKwvK?OXFxG2=``nV)1I-9 zS4W;`U25_US%oQgzwVy=k@isfV*ttGFDR7p6b=DQwL#%rx$i+*^33la6@^AUuV*ZG z{8V0{`XV~*9jg%;OOStIfS}>=(4wY`)Wh~6UdE2JbX|}ClZP7UDG6J*TajA{i02~F z{O6L5gi>}{KJm(~cdC`nX3PBe8&IG!S?yENwKW|$$h$Oa&v1y5Xn;Uu#>7F?xW7<@ z3RX)20lUptwx*z{{PALG_gkS@xzJX3f~j9hIu#>(4)HdZ z5fnD>2Bz^+3pzb4dNDyr@HC})B_aM-SHuCA!eKayuee0V7RQ>00JF4*wE0bjb6&;_ zQ?&HF@4Dlh=+_Hu^Z(5jpG0U|9Oqd{uG zXc!&8p?<#qzt^?v-JbWH^PVT(^E~%`4u)%}Dc-tCdlL^2@0PNXf+ijw{yH8WfzWj# zoaDyA@mJghAEK%F6tB3Keiiq_)AF^lm8vQp7w-FYyleQhc!XC?a32|by8nHDj?aMy z_#-F4!wa*;yY{b*8t!`aPYL(A>ht#s$i)BG8Yjyn_^&nodM4n%?*u|u-E_?4gK(D{ z&Pw_aJUkMLs}DY2N*XmDo*bUC!V_&z{PlF=GzOjHi$1XTBf`5+ud}#?d{KTSp!AgD z<3kSSn|Bc+oF~N3n(zkiWxtnIzz4j)_X?q{ESDeXCiu4e%eOm9kEF-X17NifQEO}K z&6zqMkHeYuQ-7I0>2v8VujOA}=wH7Y;9Z|9KLy=Lt^;B6r|#?Y`jxeIy$ljGC8Y+m z$w8<;X`!duM|3u~veaGBqKZ#y;mz%zD&GdR^Lz9OKY1?n%DY-2rs^?KB))kQwT%Qo zyehQHeKRUu9by8mt==8f02wc9Cq1Spc2@jcQCw(lHA)L;Ys&8l6je7!W;b5#H5qws zM^J521jqw1fTfPlua{Q>w zr^aQ&;Rn}<-|PbuNCQ!%vkFzOvwM{aU1Sjg!jB3_2N|J^<)`9~wTzM(0n?HuCuN3Z z7JS$ov0OvWaDV$4s5FgJj6a=Vaq~b8X!=9>6oSWYH^5<6qUw3#y(dd)B-CLL5#v6}^@$@n?jt zO~9`$IEDndW%7Z2JJR7?x8QsEBGhy$OF|mcwd}of;Wl_fvxxEYt=KIw>R&`zeD3y6 zE^iXVcJh0R`%)$m*lO9n5k8X@85s6O2!dDDL10Y??tE}LRVh|tpO^pZ0D(8YJ4r#C zzz-51YJeVQZ0@OF3^6y3DcFz8I@Cdoa`+miPy5b(@ur-DA63Mi>w2s`JeO}!7|xAoC{GO?2nLjG(xjsalMzpb?x?RGrl&kZK1 zuhWzo&Oe}|bW$YJov~u583-zd!11xwZfl4XL&(qHSlegIzDG4a*y3rIe6eA)o{l@z z;C00}tz;R8VZ<<%o{oomdY!2Muc~D#GWT=TbP>{+I=01CXI1Qb+(`>me~0GsG{Wbi zEowR;z+@3|K)?9T(MLBc|M{&YRR`2C4?Jp?tgzBU7qJ}G8eayN0TnRJ*v zo&MGy?IO%JJ&!D%^c1sM2pR8jcj->{->k{moOzRsv^ijb_Z%88Rj-FldCxTUq+U23 zE(2y=A05=RVi|*S0sK>E{g%!K(ZH-<$b(#e*F%k{pg_7dX_BCwl= z8+XmAUCY=AzYA>itVQ(%EjY|DrW6o!L05MyZ0uGtod`Jz5taGrXLh)=8FhL9nFtLn zci71R52SU9ubb4EO{TXNT|8cks5n`l@nJa3-jdpy@jf~g@13N9cpQ!}{em(f_f^C! z_9!$rlI0CxhU3%TMN3J0)W2IU&r)RgbGNz`%TJ~bd`h0RXA{@QoHQF9ww<3sRL)#x zc@o6}x_!r>)^)d#2Xs(a!_+$Y3$oXCH)e+xQX>+L!^G;^l4 zDB!a{-S57NeCKm$a@p4){aXPl=QrgIG@@QD_Bx=~t9!%gc!`+_*fdHTq>!?n8Foap zn{br4#g4z}$xg-Uzy8WHV+*=Am0rKe*X!H=G~sh^KkfMES^2@c^Iq zoGT(_>@(=X;z1o*!JT*by)ACPFla>9pW0y%pPgpgc22|SN;iwa{cN)l;=DiEN?O8d z7sgw$bO;JbC#Otdt_9CS!&7_kNh+%Db3EAH4>d7!%eqkKnd|bY$~$jp5sAbTGE^Tw zi2m(EzKS;Z=y$~*=XzO+Bsk?3DfiUg;a-&M0M==oene6&XeI+SSvC1=P9?wiZ)ob7IPt@m*=F6fOfKc!e9kL4$q`HI-{S`Z z($ifwfr{f1%k`M=QUU(=m};8wKl`cqERZWd#;%H-qQ*~tDWM8Iwth(XHt`(_&ft$p zy3#^&E((y2NSW4jXqW4-|1a#V@NZa5?d4pn3F0tACVl~)H2M2e-qh;YM@7c-o8_GA zk0Ntc)5JDbbGs6#_?l@h5>qmu?L;>CZLVo+&70v%(Hf%PBc@IgH2hSP*cgPT{oCosVNhohYY6@;IhgIq z;I4>qICNxQ)5(*&un07o>CJgcdf#4=e_+Ex`7xDQ=)}FpO2#Ts&x`buMK$VNGI z<5%Epg6^|atu115bnp{Yl$Md>VvXT?Q|d;k%W#&UrO_jH5E{(V$aYPS=0%C?pp~9e z0X^iH_!}IF?mHvz6K|x_Ns~D4tv8uolXmXTof#z5@(RxhEBNiTP0SBU8SgYOy56DR zcz$$4>hgjF&Ug89qo+h9*QAHnieF`+gaW$`7o;NSivzV*%vE{m%Jk{k-X1M_{bOTn za%v*=GSF~?>RDf;tlt)r$ldp81Tw=9*}mb`aI4{flHFzUTp_tcy-|LzudV^IEqVXl z0e=L;k_z0hy#m_?U-GN-^*fPN4K-_w!W7qg^ACS-lZ=z#c0Y+Lt_Q@%+adYjNru%& z!p63*87=R3eMTjcVn>9gYj@(7N>gcPxdZ4nbm`9S!#j&n5}^0~fkVb+4oE$Fvv6u^ z2p79Ool?Dvj(UqZhm7cMjO((_rt@H!*4B+5E-VdKg9_mxl z0(i~j>egj|mnPqy0{eZx!b4dRMMdb!22X!+o2-!Wk(q>v!W4K5>qHOP^t=W92N|HF~l+bsZ|r4?X`dS?C*pxO`q;e^{|^5N^kie<_Yf}y!@L+YWW1Zo9SW+l9fDw z*sYQ07w{K4E*Ve>YjsZA`oU&0i{zO-8eQy-;B&xL2(R4)b4cVE6yv)rna2`FuVqm) zopui_E~R;F^6g*Sbz&)5VeoLztncJV?|9W{vQ>zg@JYFopu z8$C&ta>H})dH=oDeYVx4ON8O&C#pN-5btnxr#Y(b&!{RP2b-`y@{Jn{$8GR8#{^<- z-CCYJdoe4A*X%wSdfU%fjF`(s8zJvRT5**S_eMO=yX90BFVAH1D_1}7CdEB<3(zEI zeor(GR#1+*juctKf2#O6V3R6l`k`feLx@RS3k(?$;3v&{!OiMXr_CR{st>+DTSOKBQk_jN`r5dp zf-ZD;Dml^0?jPPWd1nn(e95g?Mqwq@cWx^#`2z{zD)6kRiMH8ebw(p z2-3Q+8on^BOYo2U;YdTxfQ#w;CNJe)!IAr&MHfCx){#n zQEPA5s~f;717>BM4KA~C{V!tnW$2h<+6>~(+1lePg~gC(qO6l5MMIB0f8H_RM1ELs zu*7_0K(bV_N20r0Ef;n=-?8pN+Iul&rRD;+fy-qBn+C{{vOC4D6ifE0t`lA!W3d&u z9}j73Z_16YaDbWaT$SlD;hEFxcu2b;du-3w$)X5!16sy!>*5|71wA-mtkKy|^E@#W zdt4)610<0&RzGpCe~`-5SJudWVqn~E-t;`pB9q=@>`Tiw z`wOfC1vTu5-00{dmpaFz2C~p=D+fp0mHwIxqKpA=DxZm2r?=_*F{-o87OKDg`48GU zQ0F#bz39nK!#iv-qFx_FT*t&QQ|E46lfsyLZNWSl>_%jiMEaEfVR37sNLS}Kuwmi4&QP_(bhQ+Yrb!?cRYasKfq1&|6G_1tj>)12LE(Gt$0#(nN#Y7R+4`!8oSbz)CT+Qlgi2KcQ_1*pt zMWKaHw@MYcgN7Ag2WD5i!{6H*Jxxa)cr(;`pCDs9jn2OZ+PR1RdEv^#6X`+Wv4lG? zCmjgP*C@@!{NBX>+=|lx2>9*j;)}HjP%(NpQd#G2^>5l&m$#&mF%;%YrD5&iDdLq^ zgZ<%6a8VP94;izB%Kf7M6GS*EvuP$!4ou^j0%x#1`6dV1{v zOW6U-U6$1qmZJ^-&xj&c%)YCIE_qA;)2L0ZPEe!q^Kto%AR34|S&504;(3);pS``v$Wnr4X->GBeB zy$NHGz}Ow)4X0KZS1p^^M}KFMy(#kEWcQR|&)UHrYJvD0nj}PAKg=ptW_sr*D|oMS zB4RQgr5PSNpe0L;-G+i`E2}SpBXj3oq==1d4&G!8`V9UMb^Nf>7T(uZ$C$Y2g zO)|q}V%M`U6SZG$Q4(SdZicAZm=afTry^GM>ogQp1aViOq>$8>c=BsEp_9ku!3T3P`4gQzS_RVd`#!()?MtM*)q_!k5` z7sOrV0G0LHgB)Wrs)S6+Gy>e6(9h2Z)5X^q@){ol7dA0VCzIRoUO#uJ+9esR93mr} zV?7O%IDAaMsWgMqY79PEffqmw)qahPZ*w`EengVFgZIK*shFijpImb9XH7266&PJ} zkPSgGDOgW-oW>iYrS$3eXx%VC};89TRH286}0nh}gaxXl?mP7~S zyxhqAcI}dJacX$B%)H1juNY00miqL#Tz?oiD-oa~nHNAE4ZTf;zjv`Qb!x5U6gAb_ zBzf6aTcz#_-qh+=7@vN+Zf2Zoj+RL+1s}ht^DC4v-*e;@`D;(o?orjM^!9qTa6{^rEn#zM z6eq;%iIY8zZO@)g3uOQ?t=7;!@86EAZs?iCgZf>xbkF7yYld=`$1~qasqrxSy-Hb0 z_~^hCLk$J`96i+WruL~P1L z-hf~s$h)H$|&su+B0ZO7aI%RQapIw(o(?Ss5!GhiMNhq_y`dILHN17s9hC8SvP?Dd? z03mb}Jk}=&<@t2|<<)xql7?fIES1&8O{8~XWs!gA0hQ^fDfm9-wDbJ1Lr3j9N{T0$ zX@<pLtfE@^D z0Pf+BiG>-COrzX4NyN&ynNmrz_lD|*M5vN-K**UBU5-Me$EH`U0edY6)FD*gv}z&{ z9~^?}?>Wll4%mEt!D<=nd^?u0 z@m7)E7e&^X6J+%!=?ZH#dQ{o@N!`~r%1FVrVVQ|k{PcpU<~Rj3_+AA$E?aV_5aqKO z#TwSOr%mh{zDqlbrOM^n*-$KjtI|Xw;lKDMBh4@A_6ukF*lk!q)2jbHA%)x8l%IAUk-uVgC zkvhp+t@_Jq(M+OjV`P?Y&V-}@QA%sz;ZXLBnOOIyatCcXaeJDTA#Y>>X!lp+x74DN zmtHp*5@yc8%n2=^Ru#&o!hN)+*9~WFb zNb)~DOh5io8gqoKrs@k-r;-#knSJ`Vpa}X(BM=7Sv1Gc4OYV`gSGLDEb%D==CrBP0 zcaAu@0)4N0kSx2{pUL|6otmgtRl5G`rfZR@NiTY6u~G8a(1lS%yJ+jJdLz=z*fK{X z;3~G8sB>+IxLV9mweem*Pw-+47Q%Ax_tetNCXs5_hE8putGwfVN!OuUT42-=#>Brv zZ=@@w6HnIp=t!2IsY*pS)lk@+dDi4vA~|rNL|_ErWEzW0)9BKKMphj#Tki?oz!_(N zea~Mtc7-%(fDZ3&^CME17^1GqOt}hbPq*1uy)$>6DBV>>Cys~Np~c0U`+aQO288CB zH;9gK0N}r(#FR7vh^ub8&#!;>`>z7R!xcc)wtouCs|rmU57&Tuj`?%=e+>d998&)) zbK2wx1#pE90a@HGiv=d0VbAcuqkmm0XmzrEn9>9(ayo4=`)v zAN~BVD!bPs$GTCfD2xchzf|~Ld`)#6NBk^u#JO_OD27z|;$OzQvwXsvAqv26(Rn_` z0joC&K{pA{v6a3u5_@c7Y5TNp_+;@CpMHMw_AI{CH8p|&)x}0RWAbg)ZKrLlfMVcd>qpLH%tw2K-)G50c=*7XGO=^nHfPhV%1C5{i=jGH3cyym)p z!qoRNO!ZVI!Foh*HYAA3<&1SMpk;azO6P?RZf{1o7_Hix(lPt{(=Kei9cpg<-xNQS zYIpIvY$Pn%WZ?7vWPWeKAj3~U7lLlqpTo;EELCZS23~$}>wW@g_UiP40eab8pBWw5 zr17_-m`#=vY>7|EuuLp`=nIxFY5Ct?$zWx=?`Qjq=EDpkUhcpA4l{h8@k~5bBjDlo zvwrf9Cyg%|qD(s2TSuL~MflIK?Dcp~kti!t$>u9%C@iFWjF`yz8((sq)VT=^)oD4< zk1_ZXV|LR!p~2H2GAKM^Uo;IZqxL-Ii}xFY?fLfyJ*GvO<%P4j@@_$L3k zTWO0#wd=q7-e9b`x;Xj?lWM5;kAD0YGohr~aV^D`g$vEgri9|R_le>NO>gw~8UWXx zF8OiI&pymys_yJMboYN|Ax`GTk=w}d(pVSiluTN&Ci`KAgphVB!)9M#m9}f<;P|Ir zAV$fFh%&_Kw7gP4-EXJnd4JpN8jA3hpir!gKSkEXro77`l_|P>f)ck~4At26|JD-z)nC1r~ee!{dJOGIx4M-&Dx_KB`qo z%x(WY9Z#0u=%esAZU&$~Yo(+JAhEn9DZLRevAQZ+1|19_oX}wcTwI^Qcby_8=mg9; z3y>_<2}s25qMG7O$;9b$V+wsG0?uAN>g;mT7VPcFhyBtsF$>_Ls$T(zWH@4~k>Jm= zH!ldvSxnAN23IV%DPLbl-b9kre;cQq`07p4^h|CelrHe!@+L<@(}C_V$VGhXS&|zC z0GfR>Cy~aBHC1%FpXrOC?RO;{8t(8~!)jY1Ji1Pd%c1B7C6%z`=f}g7iBBaOzF91> zV~*W)&xwx5_VE134x_HSN1QpysMhj{zI$bT`?v3)>(uAC5*f>RsH~f<$5fPCN2r@< zX;dW?8=x0NHLPB`LR)7h#ZeUh&jFrC z8EzVUpVcKtj&qjGhl^IG1`qGNUC8BcpHv#$|HwZ1@Ii6eXwHJe`1oA4yOtk2#z*=l zXZ(=U;!&rQ0CX^~`YmF^uqSall|&d#FY z^vdqF>qEwy$7UrBi3D--5wPn?9t9Fu~B9zw7#KAq`Ic z^iWa5ssCW`iZd=#Y&wTc5jp&Aq7jZ06#vY!68#5*-NbRA#G^(Y4ET3WAyr;n8*QmWd?yM|Ci5y9IPxdk|V6XJP8=nGi8dWDr?jp#KRQ`-0!ktK7(;PV@rNQcT-IRu>Js zUF51RFtu{v=|whKD1_6P`qPhN@2p<^-s$kR_c(JUhyk*v&4fogY=L5k`Y^}Q|4}1} zt#Zm9V~LO5Dn|cPJeMA)mR@g}kjg&-KvDpgBZ1q^@Gt)q*CxA4n&{V`v;VC`44-h6 z0mISUWdFY|TwyptBBbz_=D)gv>{p<~I+^dbUNeY?LN>JP#dJ<~zt$XnC@y0}u~ zsvwE>E}nlZ*-F!uQ=5oq-~FKpa6m`m%BgAQmP!9&+0FFIsdFJt@;JC0q-&O$FIN;g z%B_*EV>p5vy&<2;j1Go-ekCU$t6goSx;yVuGFDBPVRwZ|jap)PpZ&l=tEI5wgEemQ ztxQkpu8NEV3IIiWjDBRnCK6+-J`Kl|#T=+k;JT{&*Fkc614>Q{4|Xg*XGaD3;%3v^ z9-a8dKmDXc%RHYTs_Br)VeICGlirA}R$i{FdpcACn-`IvUvO!lw^STW?<4GH7$4n@ zvuCu=y5l0w!2K^s>-WR_C?)j{3%K;E1P@zFG{xMD*X(shHgk%L!4n_)k}kg_B1EeS zu6(QaJH%dI7^m)mIrD@is+LB_(^3DoJQS5Ywuv~8R$)DKAghau$r!&fnq_z3tfiPh zKNNLqrBuNMH(|bL{(`^9c$!I%K-EsBb@qL4Lwl~=2YFo~`p4n-n&d)2)f>emroZwR zujnKhXyLCbCk0Uo&3TMh*MT3zj!u1UsaF2W`Ed(nf<&Ft)4@*f;14?)6x`8dLTYqZ zbW^1eV5oQE%}dl;et{>0w*|L{PSBbUF=NNp_hfJIzI&A{&3=U5<*;2t z;nNR}VGTDKUebLK>^CM==tXE@&v7Ip=DM~;<9VsKMo#`(fptbh>z(@&!J?uQ^iVnq z@H7pe;2{76)R}Fo@lHA&LpUHJFx5TyMOIe0TKaLzq@Ig<+5zi^{Zq?*Fj<{YbiBUp zRk<0`H7$p#Ex=UG))r%yTQAXVcJ0&a-b}lgGkJ%gi?a_ZCIKOqCk814fLaN zFN!F|6>5|h=(k*80J+D=fLHCw?@Q0*7fXY5k{P`ws}urIv2}GBry1#b0h}ZxH0qqE z+;Yj_m{gHwoY&c|m%qWiGp`?0uT(G16oZd7;rmgFDU7#ePe3Cer|@hgxH0GF-p7Nm z>@0{FTJo{)EPM}PhyWXI!SdmGzw*H}(08{g9A2eI?!4{cHD)9gNqf9x7O($@Bb8I8 z$z2=ob04=MhOY;x*C1N=K(p~%ZroP&7@5X}U%9Xu;>$sI+8Si44;BuJnf6~nI9*EP zsOShoK@UW#M~_FAWO`UYCsrD3jIwRg&;xqBOAR=^gmBAvKjKnZQy+RYl2wB7Yw{`{ zny6PWf&bw3IrM_hIiYJ9>n{7j;JfUmAm?gn zP!2K#w1I{p2tA@8-E6Yc@8Keb+MKhVw47y;<)%&0F-sTfU)OOKvQZ^MfDf=8&AeXN zAR{pl0*DGtFQ(e?R@OT-?8c6{@bvCW93F32BbKy`f13bZyDjebG zIN?kNhm9W+;PJ^QkIY+=1q&vHv3B&X8)xcM!N9(Jeq+HsX|aGamtGgchCNBc8awEO z@ze7WztQ*Q@(d&A?`nGO9p{rq>KE;-M{2TRYA(~rO4v}*cIf3%qTx>HK=EE_(Nr87 zjO9ut#cb%8P3b_0znmV-x~Gr6jsX(K>s320d+KtPzLpT|w<7a7sNoGmjq1h}6%^3* zlw6R8y)|1>csqWTvI^J$Ble^o>0$l@y#5zZv|Tcq!GagwM5TI`h3Vz z@bBh)l{(=i{K&dUVH#awG!j^qb@uH-gdqY}FOxrMc{D11+LPr8+W4^Y**n3eP0@n9 z*PwiUi2Q45e!JbP71==tTRSPFqhS~;M9Gx_&O_ zaTe>Oim&UV9UjNl)@tojZMKeESN)}u?*OK&$GGiG0)R$&o_e(RoxAH0eQU3@nIh&V z2c`i)Fg? z8*4^F)Az#~-i#)kQ2kVRmvIg?4gjM3a3A5pQ^lhekxi0?^j>#;ahhvAzt`GM3zM`DWi-fSWpgKXhSBYF*`7OgqL22Nm z8WE>I{9VPJ|GZDqy4%IxXuIoZl=fMHgu_O@84Of)FtQo`n9tM8&HmPp{VN3DZkd?^ zFTpmvk+4_(G@9C+@z~H*KiR>vDAn(kSAK-MbW4v&>G)zoFLwlN4LlF23`E<##WlcZ6XeMUS3UXngqU z>?{ejO&ysh zsA#u}FMzJTx)>ZOfvJ?Y_rfJ*4I!e%PxX+vL1vJ&vozdckm70!_jlkUMRvu)=?c^n zBX|)ey$ZFOUN!hZOI9l&g{(?`jk2c)#Paq;I}q8yxK)_dMI)O3vfRN%-nyvX^z4P5 zLufR6z7tc=8#$y}v_X`6su8>=HJd{{D{l5Ks>m7J&bh5%*dUQ??W=2nTRa#(1s$WF zVXO-T`zKB+NKMZ6dy2uG!G&+So!E&ME4}a?MHo-FS43+e<|?)?aFr_J>s;HQnoxg+ ze)6usXFl`HUo^P|-RFyXpHpk|KfxDeJ#Y?}LFAK$G0fx(2kcji6I*>qt7arm-epc4 zHpBRg#=7X}pc4m`hAeTz=QS5+Udu9`z8tlz zUT3KJ6yVAG_4(S`(M0kOP32CQS+{^+A3~cbg%OvEa!HBipLtYtm5vsQ5E;baAImjp zbv&B?oxPr230yxyKi^P%^}_4@%jAEhF00_}qb9TL%DQ2)x`b++;{V%Bd{48oLY4|s zbgfG`cCg{4s}ltKcMmuwQwP{%lULYYR9l+Zo*QQT8RveB9IJ%G`Oq0;j&nPmfSOT_ z!9O}TmXy66U7~(g5@mNULohAhSnqeyhXVcFsMZPBM^k!B7U&ZhJo+<pfv-J}R@&EPB*BF)pe5N%zkvT#-R9T*l;oyOViRN?qq8Ha>W`E8s~$ zf8Y8dRs(KWLWut9b#rjHYBIheZnHp6k6C#rmAljL`|1n(3ce91JXt_rh)Pqm>BAZ( z2RxSiLtPyCJpW9EblmSQ4)9KD1J{H9^(T9sb+u7i17#hGQUJxX}X;9FGqTCBym zQDnO9*`dPeR#00W5Z_qsQF*NT>pzsAT-X~qS+321*Y()|6cb+MAPkSRxjJvoeVbQ< zkR>&+)>JPOT?PY4$4?Wic$|^}eiOicF)2$lex;QN6@1GSvK7SBaBoCKQ%{#}w*6M+ z6vawAtKIyO^jkPyc!`Jf4nts@w@X@IBff%Au==#Eh6y@YEa>l4C)3{Z1-b=gMLfW6 zoL*nhH~;F*qAyBim*d2rL%$n9Z!3NBn)q#utedafnd%>MmcyRt#VUCNtoVwUs!EH5 zqQpXE0pav>BAKBk(O#5ejP*B@La3T8=2&?H7(>m2kTsVaV|W&;*}2AXh~27JOs>)8 zm$GwcmowcT*dVGAAgvUjvW1cGsaM2Lh9;mSs6**P*)yyOpu0(B?$Jlq`gZ{tR} z>4RSm%%5}w+_Lq9c?4|ZZI_G2HXgqX{ZstAu@G^!nqfY5(7^DKWJr?HYYoksr7UgP zZ^?t+SP&*wbtfsQv-i_C98bLU>oCq{{Sem9TnPUp6u|z(ofSbHTcI;X%+lTYfd$5k zRC{3dzocJ<+z>`Nqc@HFr;Xe8(_F~X1%)UTf)eCPDd)Vs1E!1bk-N?{*D z(rX^U_JL5Ce|xSZVmg)HTvtX1!wQ=@d7$&V-g+?#8k zTPh9o%yW!AdD@m>1^EJHd#3@LdOH?xO5RV%!7D+(Qd|4)kP>%%!-FMZtP{FBEVr` zCl&iACpYCmFLJ7GoPLy^Q45_x#{R_4C!d%A-o`o1%JPx!CF;EAHFhd@#7!_CCd#&i zuFzlL`q^7r^6_%!i4T@Fmf>on5C?9h0onUuGwMFpuMR@maFTnP zJl%gO101y?hGPJdC+`UQ{CTCWFzP*=BEBfW{x)_B+c1uu&UsuaLZV=oNk5HV1^V{ox1Qsp>gRjst{L!0(e}hm1IB^oS z2d(8?@9=wO0Zs2el-1bEhiNSVnKxq8qS-E4KHiHmx!fGh7>w`rP!?q7md&>F8#Vq( zMsU6c;TfDDU5WAic}!U}9lPoz14!IQGxgA9Q#JsDF7CVtpx+^?p?wK3P})CCJq_`a z``QRTBNV??Pg=iXQWbseH2BLLgY$h)T8mEUdn{C-sy!00fytMK6D`u!%f}j0Ju{^; zIuBzvPNKF%I?GqxxGwMeUa$8j&iZP7Zp-(|Ge2eNHwojKAzq;_Cg&sgVpAx4Q+WR9^V|4l z`8jB*U`IP$>$6U0JA3fkfZjN5W}nAlL@YPUcPU0_SsuUJnd1~7wn5rPn#(<|Az3-2 z29())UZ#>`q)W#}1%aO2-#%8JzGwM?@(0PnpewDR)*i3KsBPr$G}8q3JL*(6{xU|z+l@aaE{H?u~+6!V4qnm2@TLkH1`8g3$B>;&r8dLUC_KzXI z*!8i*{YvH-CXvyUeTOtMNBcEjB|~8~xjxk(a71-rkmiZ}R*w6K{*A#~k4gv-H>DU> zzHvOy_*PB{1dYs)w*^r=;c#_3#g|YD*tKo1;1wrzxH*G=Hz0UXa}`E0zh3s%DMWF; zGPn@wo0t=BvokbbK$y$9vtXZZoTMr_z&ei>->$#=o{!!Nz$^OYEaL6a)Xf!wWsl6) z1EG;_EUbBkz;xsA7qIxzvRC6@YYNlamSYr=$7~hnuN5hnzC^wj5#>GkVng-<*2VII z3Gh8+q}d{KA(vzb7(|IB38X)l5+Li~1JS3G9N;0uK?Hn6<*cd~O5dSiRIp<62(v2x zcx=yLk=NecqdQ7n#ujM=h>+AKEHiB7p@(|ugHLz$&VXjRNLV+m`UJh|ayyrBh{d@t z1VnFZU1%;qdPXHhx_Eu5z6#7kNFMAflY-+_+@ zZx4yjX!j?XlQ?#!IOSI`_4|&7eqQs^m$N8UzrFTDp}n;)H1=l+z?IS9lOlenohh0l z$^MdYXDcXtj+S|xj-DX;8dI>$+~bd|uKlh;u2XRQ@x<@R>$#Wi*VXaMSFM>7RF$S~ z`V;!!D8A-ef2@FBGi(Cdn}~7G;_?Fe)q`WRbb*ZTXnHQAyDc$hf~zXc>P^a~^dF~g z{oGTL15R>%RR2%}Q`f`cnbAm|^Q76Eq}uS{-cb!sMFflPnJ)?Owc4o~rz9DxI?3Qo zXJQS5L2{lCZ+eRqJw=WP``-*1b*^<|hJF;pdy9&XSTEn8(iEk#L66@Z2>x1!U#=d3 zNp6Nc(ad;cF4-?w%c1|;)SCzE7Uc5!tH0)s8yLR+fw(BB*P5diz6Dp%Dn@gbq&iYjA+Xn;z7+j!sUK-UhPw^5OKGIdV&q z$&~m#={#PE1W~`A3DDpwFOG>$CY2-78p`$SPsihbiZG{&5>zxD;G*eli14Lm`L18X zqLdxiY%+TbkMz8wf28G;M^T0zQg%&``!kTG5p3#o*BSoh|v_V;Uf_%Pc*_`}Lz zesw}nFRxDj^NrarurHai{a**}jwiLn-@RG+X@lT-5Q&^vX2fUYT!0+#os1kwTJgsi zB4tH+-6wG+{3UaDAHss_nziP{KdM)f34UM zJl^OgW6Yazrma_%H&)0hL$Gm)Tix+{9eo29$P(CnHr$3$@<3DHtl1Ou@gtW0<2xVt z)Ozs_@e^TWR)IXq1+p<+^B#Dg7{rD{BX%PaHH&Fl4;-urLl3@~HU z!C(mtMbl$uRT*Z8*^4Kf4k~M-&${p2kW%u-?-w*AzsKb$QSH0OTj?QrW1JP)5XrJj z+Fyoxme2R%X&A4y02klTQG4LG^%re_O3qAY;(6CNS$xFNy)f1A08k&76nXo6|qtm>G$X=iSevrU!h3liKS^A6-R#TTcrdBCYquVx}n?lWPX1tXz7jr5U>op1_|K@SbGW z79IxuW5m$*a{^b3yV&ed?t}w+!w&gd&n`{>2bV1vdMyjVDU{!rs~dja`EM#$kc}YIBn{gGyeEp&##XF9dv9e zUPJv>R9eoUx)Cr#Itx z?R_a(7?RQU_XKkk2`zaI)VT54&O{Tp<2kVpJdZ26xHHTMSlo7>Q71~q4~KV#b*W^K zcXv<>SATjOvc|U28yEnpzxOU-_wj+|m{wpkp9=%iJJoz8mOWs+*!A2(jac~`7INpEYffqn-&6a&D26H#E}BUFF+wF z=sS&EYO<=H+8UJ4PviQh26lF-X1^FSh&3+kACt#>uzloEk9M+VO}V|Xd?uwdRIohA z4jk2ZczYJ!xAvUHi!pQ|Ii7Kzo7l{0-Yzx4!oOVBL>9LUv$qtUbo%y4^fkI!^gM}@ zD9l0Vf0fxCLAl(L*uw!X5)_jOKd)5KuhhYtJSCogapnQL>CR{&Ew5WP=Z+a);_0xC zolt;;mvG37i96>27WL~@41lD-#l6;VYWWI!ZMMf;+`1{|@h8_$$vudc6-dHSGVK7>scbnH!9_Kj%C!*&pa79XJbru z;LX=?r)4O&cWYx5mEr{MSTdCa@t zoGfZYDNJmZU2=*ZW4zKl1_I=Swj}A4*#{q8OY@2x`rjb+>Efp*%!i7snPKzW~Ox$wU*<#$Nx<7Z7boenoM+k}HyvTCI8DfZoIB03`54x2&F;W8dqAm%iiZ z|F8qY)uD2R^}tEz|8`;Hae_pzsb6+~AxIF}75X8AHaXV(Lo$h-I6;>b*sAI;9Filx z+M6Q=&WZm0>xRgnE(@H%l2NQ;;xCBF47q|nAq>uR|DDLN6v7FFVp8>|KjQZ+;4sU( z@%!nt(b!ph+s1T1kz;oJ@UBMuYOSw$tIFvhp|$Wvcj2xNoxN+1xMg9R4IIOLxobI6 zsuS;mV%;9~!fjGF3zMJHydDWyeHk&H-gL=~^at6TBn(bu64+b zJpf>Yt*3v!Na}o#17608R`xv8{$6J1zcwawqxk)T-*tCV6fsqhhR7&WD~;G)@U@Fu z`*j2Gkf?>2*$83mXI)uGBq+|N#hfoQ@Q}DW zXf$S0PDZ(4HkBv^bHc55USDWojSF-6+r1U3$~i?(QsilqYxcfMh*8tuunOJ+#0#0p zQF!Q3rfc{BB)LJFVW8o&MS|RobJ{k zs3z9AtxU0gL22rhGf9S(PuOcFc*iUS{(7{wjGV(0%mcD%j&%RW+gnD()hzMeGYkyw z?j%5P37)};0KwfIg1ZEQ%>)QekPw2qySsG#fKYcgh`YZXpp ziK0}iLT_HzaAVwSO2)i-$v83tL9%?04I0a>ux_JC3(Y5QGg%Q7lb5R?9!c88vO{pP zl8zG5W0glP^y{UOd6a@B4OFivIq=p2ER0f-{{X|aUN&y3@_yDw5Jiw?`rT3%&Teys zNdA?{5k_GQrFvE2(PEOnqWMvo@ zvLp*n7rG(xPyKU}^RY)4(y=+#YyT6wA=tHypbq(pj%6<)g^}Pw##ch!*$zn1bV#H`6t$0BRU0x>1}u zE%cW??EeIqa5%siy!>Yw<+BBM-+OWY5&6mI^gD3VvM|7&eWawABr0>#F5`_8V|dkZ zG2k;G`|W5(Ei$B$^+O#--lC*q3ic%(7iJHWJ>n;z zo@T(yZ4ulBtPLAp9$oJn>Tl0F=aY*F4)pxuJl2)g>xc}67S6skNe3gor#Ydc8!=lEFXXmeO|9A&NfywmXy`X-xT-An{Nwy^=utIf|E!n{M^}U+=we%@7#9L7keC^^^R+S`Nu;1h z(!Pu!uX#f`ts7hKN6>rM4s=yL0V3LYl^bB%{7E&<0^7&9q`G%lY^*B!KfRgz@ea25 zfr~J=GJQC@c{s7(cq9y5T~v0MdY5iMzfb;^cfDlV;#Pq!7Qn=?y8`^9-yVn%)nB-7?oR2@f8ytkG&M{cJPXbZm{QAW?(wsj;94*tZ8LUUs zZ7Z|$3;u^;d%qaX8B|?2c?a8&Fl^X#nTs$as`=s`=p&0FK$f%iP>u;WwceACNY^rl zifVc7bnlL%#dTf(Qe^m^7SO+~KwHu!#vt`e%xWMaRv zBi6gAjHO9K+em`HbJ+VRTVEC08PgVRwOfWLrJZC&4mx#<_Z19=16y(w?i6oUZ_=y! zer&&AAG^t_7o?&9H6_0zmu|V0RP@A%?3}I_CDjGfExn><=J1ebrBzVW8RQnfmF|WIg6(+_kQzcVb`;UDt18n6e>A3#N@w7<n81wpZv414rN+h@^6FZk%@8TEn=%NF(MT>3x%KS<-ve@VmTnKV9Dcykrk z^K*|fYDqS#1#cO==$8E~*kmDZQOk&Waa-p$mwxS)8uux6Tg-I{jNiuJuG7}PEfS3q z^E}22Q=b>>m$sdp`3!H4qAjb{5|4iojD6M=-8XO?_T_42nvcHlz9o3c07_PQW%gT4 z(qYC{yq2ixt$0G`)Yl0rWh}nxSWN96eruCx9Z#Ev16KE_bvty+14lx^Z^fauBLlYw zZw@c_1;a~NdI@CzNh-~LLo*lOq(P=eKMub<)(?}OmM7gpjdH#KQu2G%`iIT1W3Bme zcu-l`sae{HIpd}vLghb!c+aZE&U1FeApm*y+rQ}!iZ}3vl6w;i+J6*`|Nqa>!~sEw zu>iDa1$v~h-%PeXLmv%knIvNzmANVrEl+CgsDy=?=IIqYm_m6D?V$%B^Q%zwJe4$B zkxQ4+_$|r7AI8E3mNRS{tmpOBFH&Dkiq7m{es6*zGvCvj^eXkhj zdBKji0@rLKjwrUY@l0ClDtpqtvi-MdbzBM@<0@1A?c|*w&VT2|bnV-)LB4 zDhYXBct47*1@ttleu2vprsMcxw&>+Dp=UW_FXx}|yVU0#IR7rTm87B3**2y$kvTAq z^nO9B!`i?Pcm8}VP)8qOFS+B&!I1LZ*+9WW_*pptrW&Bwx7bZxM>i;?GHHjghspF? z+T3g<37k?~m&?;0CAm|e$s_cd+z_6M09TDAE9khW*hKp?E$PfsH<>uhMkN{NU#K&t zwCH`@MA}JENPZ#S>=_K7N4Q*~qG25;TGD$)8&B;rPLq&CEiJt2afz(0|Bql&9Aj1b zKfxr;^#c}Hs_7)P7;Sj5?}(=LaHZqiJnMV{gxJ+5FCxuV!wI2|DWrN`lIbD+YP>F_{S`nx!Qd%GAw5z?agb>XD>&rg! z;lxTpp=)7{>yvY#wrBp4Iga{|3h^jtlDW=3ma|sx1%RNMPiH5{{WL!v<-PLk=u~O7LpKDUyZ&`9n*GT z_8k;`WHPdF7p%ilLLD`<#7iY=l(-~W`G*sVUPhSJuQN@OI_Bxf1X?hsmGO_0PB$VU~z4!IW zs@B^)EnqQy=Tz2>z{Z%%+xdx&02$!8Qv9-nu%vaD6EK(EWxh?)VoP%PQGyszFd*JhS6(?ZDd~bH?MuhcH2N`u z?es$`I@9hf&dMP7mXm;nO~5m`)TOeah=#ArA;I0mBR@Bi(EB%vTY?<|yXGkE6i>Jkdoul`g+H``gDX==T*qJ6eS5+4s9>qysE7^>j5CH=kyTP%rre z2zGuyab0sCk0l08ADt1fBWuMdnHrC7RTrgW=YcvX-q@SOWQ%R$ZH0n&d#Q+;bVW|CcFtRzR?{ckD2=^ zt*9#oRc+2lct$(3v(Eed&KIkB5N3>wiS2A;9U3puAkJx!I)fvO(u(*o_3@biyT}xB zv^SLEbZ|xMn7mAIhE(=h!|4@-nksN&h9Q!}vt7Q=EU#i6E#DY^j9nB37VgtZV|4!7`=QzfB|usU`(8_4h&e2ID$NJb}h%5C1A zn*Pd`G)bj?>*Z1Zvu8IA4BuY=QF9WISIItBL=ot;Mtw!#(yllpN^5BrkW$!H9X#cVC~vVS~vJS3!ix51W%uQ0|> zOmGp;+mdxiJNm^-;%qZ3Kp2`7Pn02%Rs4r&E;`BCDE?3O%^g-`XUuwZ7(k{i;3EyB zq&Gm_xkWypM|ou!*i{%CY~j;W?m2ogcAFmBcl>g)R;^{O(7rc&#c||)@T+&uh95KJ z)t?H8=1L!bzZJQO?68G)l&svf$*9jeuxgo{LB=|YoP}7H_oRm4@xydy-Va5bTFZO& zVPGFy5+a@{$T{6eJ!u~+o;mam+NXfbE%q~Oa$0E2iyZK&8`E_aZ>UtDu{Vu=&n~8~ zzxb;tY5!mekEhE@;$Bhq5fP2KH$olQ|CAFoxo%yIe}vp3@J7U)%s(U8M?iqcB5w4D z1rX=d@d0PEza8$g8d=MVSzAt1Y~-082Cc5Wt&pydBZFAlAz1&ZM*d?Yn1rzAK)HYgn_(p}A0LDsaKsk7BgM@VozoOYKLE`Z1`bfhZbIlp29k1T9d-$v-i4E<^rXl6v;EH}FUXJVV zN(#L2(h2A~{+Uh7^2B}KPwF2@8?!@Vd4lpkGD|}LzsW2KPG%{{kRknvr9DM`c*N3` z;w6nc+y__!_Q5(thUAJM;)`J_HX=j&mVowt{Ot`i6VhC2kMf7kV)CDuXAn#;QYVOW zD%WC0YUyY2brG%F6w@BkgxJ1G-w-^+R6#{6{dt-`m048AJM5$M_km&r20ui9gjMujl%id0tc}g=^>I{*p*$B4jnw6vy2vMyC{is;^w}Jw1*PkhL!!wty>AFF zB^`4thV~*<7%d+HZ(Rnwo{U;tuFpGv537PRgx(A$#|FJ8795LGh%3kmXWP)1{}ROf zif)fWVawAKe{iomYGC*yaRCEGsSDG=_Sb1PJxEH5Nopz~pIWOZ=G&pBl&nF^n(Kz% zV?-{ykDqE>8-6^F-2L6?otZMR3Vn1T+@f#NR!wnJlkWW-%Ai&ItBMHb3*A6XE9`k~ zh#KjYf==fBX_hczm>;b>UcKat<;~jLMh1?6nf+9)TRyb6i|K64=x?z1@>%83%3l=g zy=drk`y5pV3PW0lW$AXmn(sIXaE!I=eld$off#`ZnPz~se$Dbf=v>dNC(W6Z|7?0s zNs-+=5Kg;VBBhluy_%$)a?7$&mos=%_4xL#(}Za2&WCVU;0Y~={7ouDTPrl~jR>B< zv>x+E^2BZZO?yAomBbac75e8H$-Q8r?7f$$JNFJWQda0m-lZS!Q%O8_CxU~Z0YqZd zPFOCXf~`3GR369xqFh&#hkWg1kMqkxI#7(G}C)R1E+%$C7nN34- z)oZM0si|Jd`n&M5KxytV5hsbo=Vn0FH=9MWk18%T3~>jupV0_M8znVz2#e4>;5B{@ z8LhTY^yghQqEq_Xx17q-=}dDNwPL$}axH+h4ustfCalRcRqKNL2qki=ZbaTGJ&n!?P`aoMK|e1Qy=7_3h4v-j{S`qL!g_`9 zpxNwWp!+1jgT-jjaK4RrTl-SFeBGVXZan5VwQWyHR1z3|K%dr%chB6zP(Xf~S?A95 zgVw%rPCD*Sp+{U*c#*6$6@zFC>tcKeqX333;P$H%dE$OOP7xB_3&|JA36)RS*S~u3dS&KwJlZGn(Xw>(0*8|_iLmMlE}AjvOFmN^|s|AL&P$x3I^M zBP|++l4JvssLUAdDPtk}lIzbBZ0|DLAZ_y}XpVXm7Ng$iQVC>%N$@lUUKEiUdLNRJ zfPO*8mVLXAuYME$!E3>!3LXz|BGCB$*rNC^2^lE9`^78rz-yeRBY32b+I+hwp?92T zqok`YZ*u0W=zRDOf<>=&LlVB?il_g{LGM#^Y06eG+xwd8*J~(xjBx#Wq-hcT-$*gB zi*DFw7`trOBxnVJhF#6TOt{^?jc-NHK|rbxW_k~>Xujcvhn{pOL%`7B6)#SdtXX$6 z-5lp@@G;3qSNIUJ-mesRa2k3$p2O>3Xf8%MU+}^&Xpb>Ska>`+RF-kwbvjOBY>hE~ z5Q8Q+&E#`@(S}!Z<)te>!zuIiZ*v@ZkhU&A)@cG+cge&gQoFo3IdyEz#7j2wV)%yf zXA_snVv3Mh6qf3VkT&{+d*Zc@?%MyR$HQOX<)Jxxhr+tMinvY$Th;prDQ9}QOInrf zwp!SKL(JTe5*nS_q9@y;3=sv;En51b>=5jbS`nOrG`=1{;nk@z+XRl^I&jw!6altD zy+(#~Gt@#T(HZr{ZWR|VX&xtYlP>?mLiNQW<2Fs-yxy#f0`)ixmWISC_yrL276Zk$ z*R9j2NidswK7_xwgkzc)-V4&hg z&@wm>fsM-m>k?^AEPwF9?d!rkema>FA z2;n!hI3euHB1rbYV$4wJ(56?0v!eW+9gRrkAB8A*J!cUN7j|luQ|(i%?6=~+X?o_) z8+c^B(v(SK*H))hb=keHrc~&BVC}puKgFuHWZ)r4;p?-S@#-k59v-MggiI(BbS8*v zb@lQuh!0?e|FOl9;$v5lVSKSo~`jAPe&D`)-dAh2QC0X%v;j zgQ%@U0p4H8y_>6!-*VLg(Hh}GIR}|Rg8%v;nXk5BKR0+T7U(-xU5Jb1#@;=nYhKJ= zC6s7nAr7%z0II;rt?fz;x2k%=#gI}wkhTUr!5rw>AwPPaw| zx<+ygWC|iVX^>Fma&HM?8z!+J1Q+PMx4vPVwCi}Qu7|D<4viIaNtC-L>6t|{fzC-0 z3<0$V^bsNT^nImB)}T$xD2nGS2(h07xrU-;v?I2H2k$<>;thS%k~4M(5Xb?OYN9?E zOC=iuUM<*`c)WuobMXcgQeS>sX5HnM45Kk3 z=7i$nf5Z_-q(hbZwiy4El#oB0u#{5PDBQ?hdF8VlUsB?*H#W)Kxb$w)D0>vsTk^Q7x?|{F5U|N3i67zq34Pbbh=xo&1K~?^yU)y2Z0*cia>D} z4mE-n6Xz;zyCqPjgnQ}1GNFPnBrzT6MKfBNa2KGSbJLv%ukhiOUPOo3EvKPA@m0r5 z4g-^`j+8Pic~g1mtq)!7-S?Mtsn$%UE$U)ikYeL6)k=nv{+&rp3v0HXvacKEYhAXS zLvtUhX1g(@(dLf^?Dyn*ln0 zfEI^}QsjxC8@-qZzpB4-@bY@~mvaQFplEm4Utg*N>onj{eL-zkP524L^nzMNHkN!{ zziFsmu5Bje@covTP)E~A7H0&@-jWb1y1m7~49@|tnH&|>;+%c1j3!AQ4oLs@?RxG( zXo7@WzF)_+hq`OO1(7XZK?h2NSmQ9Xt$@Zf|NGDw^K(H&hSDcZ>LvGn4{B(ANNZ zz4;IG`;WMFG!b z8Srh169a%oVk9_Vf0%YBRA66wd~!_j-v-%FViaz#u2N>$F;GAqP)jrHy z=KnNA_F@Ee4s9&q&;NT9D@@Q@nYEmT%-eq(xZ;71Gw}%83Rr{?&z{L#iyd_C6uFA{b`# zc_xYTCMJBnV?`A4L;*Dgc=qx&s}9Cq90-KHUi>%fDfkawiFLdG)ggCdG2Vt%U$ zebV0`kl(GcHGtx;(LsHqBc=A;%Dt=RZvw%KxEdIWwQTp9h>xCQ41m4dnOh5N++i5x zj9ed+n01&B8;BQP?i{tvm-f1iE62x~&c4@)r0}uNNyhUKP=m}^LzM`+YY${RyWMO>`K-R(h@_x1F|RROj}scxWaoyiZ_zAPyw{Z$t} z{=NOSZP;z-Vj68f{T#;#NRT6aYhp|WWp1$gG>3=vnZq+#rZkUF$wF0{=}F9)xY8;*_(s~t>K%|wvw#Q;06(ZF^aa3Pbq>J=nhLt-r(ZIh z;UZ+a7nN26HU}Y2u5?KL;oGmO9kYxv(=5KUpjx#e(S-STzVuy!#bNY>`N|Tz>k0& z75BGeIM-w=eUXLlbV|B=QK0-py+JV=jk0=4BU-~?c94(L3PO^~B~bmZ;@bBR2aD-c zP3L`m{#03fEBd3!u4bz+Bye<2#5-~M}zeS3$^Nk z1zPBu`@3*m!gQ!dNQ z@Zr*1{dv>V);mTd|KSPz1y~G}SO1{@9$JT#7ITMuEEFkq_yH_m@+sPB%NGqd4v-9( zYQ@S6DQjtkeugRl6Jb;&CFw%0re^?uWU51II#r~(kioE z!0w$+$O<$~TKB0~^}fej%p~&0Z+5e0PWBm`xh=+AbLd2E^vZWv(2{Q$F`W15Xzfg1 z5Ke1y)kskp(Xf#Az*7@W|5~7wZV)rBg_vR-ziR6Z9wSW4j0f$bOaOm^dQmhuX#tQH zdp)$Kpt?J#FaQGNUwtR*aEeuD=J4B5LKs66vkcQ5Ar&D25P*O01#LvJ>1Krv1wVzfaYpv5IW+BJKzsE(rp(HWg|X4IPvQJpP31xKzAs^J zdO(uEX5x-i;6Cw^1r_G;R$hh#`OIgE%mwD{Uz>7-ci)@J<(gsjfB^3~qF)ny-;@vV6du*HE@)M)9F|VL9NXpbBAzAseH* zl5-BPx79+msuLPKbU{r(FC<0&fD@O2`3}tx6Vx))AbL0btww+VdK#7dq3$fFtV8uV zUfVS#U`mF83tUHH=#gpvx+Cd0SYM2_eBN|Bm~dDRN==!DNl+6j-%VuF7!3cy$NI>S zdEcqUoQ9GeaoT=1fO3M~fEFwP-6C>La;Rzkswl!T-rwum89`h}Fpk$UWX_b7;@REom97 ztFUz{^fTLc|H-{@W^pcX)-~4eC4aI;=DhpE*@&i?^mvS#Ow`sOOrOW+#g8fj;U??A zoKAE0V~KQRNL@n+gN`m9s*=4w|1>F~c>m2HRD%aXDrchKm_j z(&no1-)B9=C-2tG9!_?@kO%+AVC)iliqPoR+YT{PY#kcjLgn?u3;A2!Pl6w1$LS+DBy!;+OhzzsoG@DAwV znCLuM-6hs91!D7yA1qRwYj6W@t1za~@sIHE;pNYHwOf^_Iesx;<4!sBqvnLlyL>vF z*c)ymMrwmQL=yy)fxtPQ+ZR9&#l$iqc_`?ZDS>VCJ@g~=35#$#U#!>aE%KV z`PaO4F){2K)I(oAOUc%Q8J1}<@1HFgjrS1M4pR6%K(}#hhQSV@Vkwrn8F%k;|Fu@- zxW%ZquWmx%wX8aHmP9HA2>Cqjf4av9586Mu0o13vbj_SYX%u%^^j*(dx`0j6DT#$d z?#;CZ>XrWgjON+Uo_O7cl=ry%bJ-y8Yr9d-tCAv>%_6P9;rl+V()5{jdDsp|WZd<) zw|6&8iX6=Uv(L%QpoP1tLX~{sTs{zbowXc1s`}_HtNB#?1=Qgh4#Q5I=8+*f%)V7LRmkN5sn6uw`0qTQd5VGPC-UIlpGw~L?Pm~tQcTf7 zOv`w~L>XC>9b$htq5Q&@g}(6mNnwAvU#pTxeTAF<(vfsp{xDhNwm^EmgNtpV9yGxi zh`bFU7>^Tf`UAzISusq>K*wXZ4eY2k&X1UuIlS-Tw!S|w6n-%gDINj1!Vl>2Et&Fx zu^0!OL5dSdIT)CP3L+f_EL1PyEmst)*8Jvf;m-zkh>^niqrWaPk~5ML<6Vl;G;Uxr zr7$!6G9LH=Ga3|-)*pcWn{k%?q~eN>p^B2&tqCXaZ=>l`AkE;g1h`|lbEp?TFgc)^ zMXsO=4mTxT$sBUS^56mPeL0=qM&{<&GKE$w&yZt1EYnyS2Rr88Piks7#SrxL)Y4W* zhj&g7T~IF}X%Pc4R>5HU23CA3yuW{FWvRzz0w*7~JqJs>OKvFt(7B8``I(GqK=Q*P z8(Y!)=V!f7W|J$X$GDadl}o6sZ-K+u*yh;4Tss`g=0=Cd`m}$G;drju*xA8~%B+=Y zWmK$z&pi=mkioYm28p2PBsD5gxE<_zSlZS+Q`Nku=A6bI2})_%G@(rl+sWMY-PjuI zGt?1%F5xM5<1+O5%lg?5e)l&BS(CGU@aNbZXjy6;n99lhO#}2iC1F)U&%;U% zNM@ER(8D+CgJ5~t8{&07*WlsW%G`7t2t@q4EV~b9iq=y0wpZ+)A z^gq!+uSprnT(5JFdt)MBEZ^%8N4Vl%xsLh?FNbR>;=wmAjR_omlV9u6e?tSEkfQtm zfB4yti-N^M%z*pc?WpH&_t@cQ2EccStWVkYgdwM2dy^WGc_&?1Vb)9CrY47H{}RN'xpndg;r`uJ;#yH5 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∾86Wt6fk1XFKVaT|@g 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 Dp56#H literal 0 HcmV?d00001 diff --git a/docs/UsersGuide/source/_static/RRFS_CONUS_13km.sphr.native_wrtcmp.png b/docs/UsersGuide/source/_static/RRFS_CONUS_13km.sphr.native_wrtcmp.png new file mode 100644 index 0000000000000000000000000000000000000000..2d1ed25b6859866af89144e9da6e76e9770fa16b GIT binary patch literal 104826 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

aU+^XLOf8+({CPFq&Y|Tl zO(-z^*({AKPhkoHjp~aC*%J;G_L%h2Tk+x!6+;HiLCznU70^1r}I(Q~_i9 zZYXlv#lcwZOe%;R2gh(r@>tZn_p2r&-317@kVCHmy<@Ln8iF?ME6O^^@;%HNxw7Kz z49W^V=nEYKCh0d9Y$kuIJEAk>>R>~Hxru{Kw!naTcGRaoQ?sM=eS{Ir^hNs}9=NT$ zEkUOuBnqWZI?D)%Ui>1gF0WN?+dd!1qT-;>;0g!fbs0CC(Q$u6VZsZm2uKeo@4R3T z{uD0x&fm@N&M{Y1%EN{T#j<2tXsB`)#hp95{{pNHcCcC^od{guVIaGnEG zt|<*%GJK)>M2e^V|5*TyJ-Q*C;O8iaZm2=X;^!N=MhDM(zwA?yE1kxgDIMF+L3y| zf3X)m@8laD!9rBysx9p(coYc5%ZUqrxf$3BB4H?-!WOBgkh*ic=Ihd8rwe~mY|_N6 z)`ip2_Sh~d9i+T8=YI>+kE8Cz{=w^n*S zK2#0<5ET>0{J+-&x5x3MHDAoiG%A$l^!MAbQjf-)N0oC3l zo9{f=MphfWt+a$D|x(g5-5W@3qqw(souxEx+M_ zda~S59M2V4uIiQTg3gP(5Lvw_mKm^14AoXBhTN&bctTG_(eN$4FuaM1W%p7h7ftHd zUQKlWHzE&`%t^2p+%9;=VrNa5@^%-@N1{ebWh^0nOJnNw8w9gS*Bq?E>A#hd2_5f zmYeQMW3i^xs) zj~Q@T|A+QTLQ*>R%-jcFdVQ{KLCZ% zJXhO#oBd+X>wgmpSnQ&eSMr#3IJ_i@aeMg!SYX81%897a*zaT*?ewwg2YaAjAx7%= zg?n0w2z+@f?arc{^D%h^oOle&7^OEXZFWptSf~Ohq!J+T zNBm2>U(?}ZikZ0G6WkQ>fN*PE-Sl|w3c6M$5}pZNf`P;rUT%W%#MS1%y|&^l-|?hh|{ZO-Wt9B-Z63x zf!G8lM%pqq=QJ7w2*x_12JEDLSIHuLT!9? z0O0*9oH~`g&Kwf#v2RI5W5&1vT8pWp&*(NL;y!N~u^cM|zMRgX8#Y9`=Q@ooXYID@ zAPVm2;Te+$BYq89C@*=*ApEkwq?scDx?LYh#u?jsRViU!Haw$S{mj9mG$kP9Qeks9 zqm-@&*opH2^I!3%2wSekj&%8&ofU>X1=Scc&DKTg1jP*DIbyx1LPxm{c%r^O+BFo+ zAfO{@S<0sVu$Q0XhFC#LH1!pIcQ`=y1#k@0B#svv&*e{H7kq7iRgZaR?vOv??H$SG zI_d{?27^9z&RhnVJ;Imy;X>0|t-85dut zXoHh#ET@O6-%1tl|w!@wz+gE^*-LzY<$x6ERMz!;xmGP!d$^7fbulWfP z7GetSjkxg;;<_yC9v)A9j|mxp7xA#-Lap`3&xfrmA7aFdKE6xI0R#+)G?^p$u7CDD zotn7+65N0)^5@5k=NU%LQ%08hJ z6H%+DD<`b`UfSRuS^>#{o6dlkgN+!0ShrdYuZPVIYkEpYFDV1uss|v{NpNVdDKj-y zwUOZt`|^{8IcLm_z=J5I6}|5d$~=-slmp5?36Dn(GNBr+oNH)*9tr1hZ$wS zemt#OKW62yq^Tc;iMd^^f3_2{DwCjKiAuWGIQ#Tm>y|Iu7R}9~Q*pNxNp)OOqXj+~ z^!X&)ImEaBcBZpewr!SZEX^!j#v_wC_K}(SePxwg=T4H{GeBMNt1oC?6glSB6HYwp z+~Iz9^J_}mv0QEnh>trAn6s`wKfhd>o)!-N!q)2&c_J(~u|rRnqK5qw>R(w9J@e=` z87;8VWJ1Q}6lwRkC-_|4|MU>s)Oe%3$XnUA&DI$w61FNg78Ial(Q&;%+wXRnWA61w zhDOr`nbA;@{qF#>VW} z7tU~3cC>C%!-Ppqem4WH;gijoOMkpOqvm2ZuFB&V=k067e_X|joSzHzFW4?tcKA#e z`U{Y%SnOQSZ$>tI6daqETN?N^PN{Y(JosE>RvYN;&U*!@w6X6s#gVq}>AL*}=lHB# zs2(&KU5HskDgdmQm40hVIcmPn753K4#+B0I(dwJ|{_75!_FT8oNAFChl?QJCmb$d` zJ$-a!*|}$FiTY&x!TYdUTmS%w{T+E)g^i3j0PRnQ`qwv|xtXm8Wz9kljqM1BS4lDP4wywCz3qmU@XZFnddmg55NzBU$?J3Hva8NH-EjB66<(Glm)s5UED{KVqPH@ z-S76u_p38?LHrSlmDXoK!a}hpwDq)gO7g*n`aZvPEc>y^tR#L;!hR^B`k{YsPY$tu ze`^2gr}KcUaf`q{Mu*ip9>PM#y{=;fLC1Wzr0Zt>uyrL?9)gI;{BaUBKm4s!VvZk) zj)|Nns_m>ZUlCPX#P9e_Ne_&Xj{d-SHKG_OAG*U@lIZdAEfs76XuQAoK54d7?px5; ze^Dw+=fbaW4P5x^r`>+H=!=%U4Rcy>nbnNT1#oMM?)y!9aiU?jA2?)mlD=nu!S?FL z3r(`u!^i7h2j;zgel97eLXQMq337e4p*VYg?h45sa}-|9*(TYUJ)FT~5R7b|@=ft< za@1=6?XN^Bshq1>**CCsua`kIXQjuH#E*=nRMg6qh%pRUt7)RkLW6O<+l=|uEtoXG zTo1h}J_p?wH)~Q3y^XV~vg$OZd25Ma!CcNO_--7b#N=_>JYeXj)-U4b`IS2SyN7wh zAlod4yt&wpNe50qKcRjuLd7FaAZI2GafL`u-W*K`zJJMbWnm7)oN-VRT|R_nAIf{_z77?JJBEn;g0 zbh+L(=ooludC^~?q0r*>J{lT+tb$0ciK-#o%L_~Xx}xvM&VK!_dQ!$Y1g-XvuDsm; zr6w0}ArnbOTD&=H#&;~_)@{IAj)6A7>4vRfEbru^D>~TR$2H^aK0J?JT0Ol>_O{-d?9-)Tvs60|1)vq2$U><5M6P=dXQq3J0>F)FWO#KE(gKMb2gN_W!x?m zhwp=8AzsE>n03^1e;Wy+My+sGe7|$Dhc-o%V?R&t*+~6_ zMuQ@}Qp{ZRxobk0E$(<2svlhyM#6wwI_GBEeBhF6vQ&ZNQOe`M#uod7z}MoLbvbh+ z-0VS@AvS_3>;3Y0f^9qZ^0Rg4LVougs-!}u`s}O|^+!XhQ}Wd=bFJx&S@aX*wnw#o ziFX;&nCH&z4Z3-qufy0y9dKJ&wZ8F67S^eFA53q<4dVd=0 zyLtH%VTn9m%K83H-mA7}lEB`{(h@myMD|fGxgE*EuC{~@UhGrhBdUgM49LRvRv6~= zBZh(D;r2|MiJ&M4Z9dudFH0ANw=U$OLKn3AF3e=>;n?!f1sHMDv}zYJ2%23jHnHL9K&`iY#iGnn_#A?W zdY^UDgO^92vRotWN>`1y=8d`DCG?SZmy!LgJIl%U4Tl4^RWCTMCH!dHa; zl<$2tviS3`bpZZ!@3rPd^_UFQ2oe_|;TwFhe9#bP(Xhyo<~Y6F;QlLpvw>AXrzFY< zf_+{U#OSH}xEhL%d6jplI-M2mJ|;w?N`-)<@4z~OTIudBc;1Ilg-5h~vHFFU0(KMQWFlbQ*`8;Hk%ksz5 zcBCPf_4_uZDT_9NQGmZ+@1gW9bst5(gGs(81G)K#jM(GDQh5hP^P~3EvoZAHN+tIF zw~3RAuKcp8{sWdMr3e8Br#?gzF3Jhps6X`_&!;|oOvq1Dt?T_Bf6%D*4ua2VUXG`W z8$T7TjlsCz+sD9GO_os}@g3*+HgNfB&i~xf7Gi6HaI>X+dK9AxsGQfZ!1Q6)=3_45biiQa!sxH1GtkBUV|cx%ShPkOVtBcRb~f<8BcCU9ev-Ai@3lDYKcIT?GE$1>a*je z-}^0N<5zoEYQa3FUlPFqBspf{?IgFzu60w#E%({J+sha9Fy1)+tOvWd=)E_A3}X+e zi!*O_RK)Ec#rGi#rx)9ao_v}!H)mS0A((@iO|Ks)S3}osY=hrOU4b7~lsAWv&NLek z&Y|DX&fh+K6IcvMy0JV8+Mb?`gsbu;<2VOY*}~{A&bV|wyDG-a-B_7kX^(=pp!`0! zY&l_GOhL?006#bqdR#5R=*ect9lPB#tv}g;?V$XLMv=fGYx{OMG=+>Rsck?~Ao*8+ zON*trRT{M{0NUBgwcMTkE;pKOoCBBKmn2;YS6?b2^4g+Bdc!ef?kU0;ZgU#5~8T`a&I3P7z%Q z%JWPs|AP1R^2$iFjBX2ov^(~NeJoUT<;=`fdA3V+D6wuN#50ltpM85w+Npkti&(_; z?~9(y3t2ey?7LpF-+qv>0q%&u*Tu{vE$z;@@z^#p)vJHiRISJLE!@F>@C7W z-}upI5}seUdQC-uy2;VxTLhBNw#Y4CKg595$>Zt_Xh}e;9oC6#$ANe<&^i&%{-dB_*9WTDB;W-7r^h%CI&*fnZH)#KS?(a@vj=1gc`KQ8Un9t)s z+m#X*+#7sY@KrO}yh^Lt;WL6+)9Z@5QH_s{M!&sobt02e73VDQPWDcpc(+s68B-FO zZ{P!t7NuIHr-drfg-=c58=ce$W5U9F(_fBxj(H8}f)ryN_BG!SZWp6m2L2gDYK z&IOc@{`JU`L;FMV_+)BygW7q$YArHwCl-1(9{S*-IV3RWeg*@COxNSSN_LNP z_!8Vrgug-O-t8Yolz_KB&6NX+7cCvk;Q>F00o;*NeMHrNRRZ!TiDnP2yM7#N@Ser9 ziPu*t(9*l;rz+mN1tpS4g@n@Pj8*slZ5p=Xk@uUphL?@& zfIfcnaHU-GZ4jZf2tgspRy)QW=Z0BUk?%^ugkZ+TgLwjcrAI7!3mSUrAdS4a%sm-q zih8G4_CF%#fa{FK+Bf(bBG#{Bb=3{M_cNm-okYa4NOvG__?w&C2G_aPnE3#hY@E6_ zmE4NXHz`On?;MvoeaFSG*BKYu!m=o9(2Ixo;1~hP59eQtrN(vUtBdw8AJ!x{Opn=i z!srvu5HNnTjotidJf=nuMQRymw#&~^4qLNpSrZf$kOzhO*E5vq=)hfpLLG1oDATNX z=Q}T)N6npu_v|`gZoyazb5U}cxDxEq9n)Kh@B%#^qw$%jSxDcss(-MFl$M4q_>wuI z>f*b(iH!yYQ+MA6y&wtfP=eGBAG$5^EliMt>y(KOU9EizE#DV{)Z zfwY%cE|KBdpWRB-G*1>xS(sb~gw=1SA(8OP2v^bv>VnqE?;p#5DG9>qi6k_uaoQ2P zCAmw-Y-)}7F>?2-8-7**zw>6S)I|HwvxBC<R_A2RDtkXdKvS!(1?O8$C;1s0sTo)@xN>|p+vktTk9q1;Z3rcsFC84?8a_WS& zV^c_P%A#~;L#`OskuUw>NK}Smyh*mE{m;&Uoau3uECC5^^)F70g+kC{HI^$h7B!`V zMecsdr>pteWlGzy*Rhc5qGa)OWI0sol*2%TiHQ*SZ~+rAAW--9$XAv3xMAZZWX3zN zhfq!VP3~O@!oLb1lPa5254u;iT}*OiU1x)w(mpLzz9??E@Rrrf`W5HfhEI1IycQo2 zctiP|uXA*Nt9U7O2=08Y?5VrAFNNULy4B~AQ}Wi9M>AtU22lNCz8aZS2RdBE764`at^`M0T8V>ZiEDS7yBHINuqnT8y7YZpRzL>Y$9w zaqQ={c*I3mv+(Hu01s4A_G9sgU7%fvC*=xP3|)r>v}te1{1f8L7iK5%p|-gRZWMvn zso!>pf0_>a`;@BE?@ddyvntrnOL8H&!Df1UqdsE{A*Ao}Kz&@6r;PR_ z-jc3G)GeMUb1ZI1X0O1FoHXB{8YzhK09O}XaDF-ZV+TXn^kou~x0}hDsb0n_)yEX$ zYU}$-RP&v$`t3JH7d^X1IDNjr(w67Kz2H~NK-FN5cy(#v_s&@ynHS8m07CUsiDhm5 zfIGWFjCHBYv~$A`9cr$QhNqHtp6M6u+*DwyJR~bRv5Oo1Y}J;Q)|Kn8QxoszJ?8g+ zU)`EA(Ydv6G(RQFd5lqBfIhz&$So);LzP;Rpc@G(3puYv9IN({PsEBrSMlBsFP_r5 zLojF~mXNwdy8ns{@&O>he~4?`fp* zt6nPA?+#(d!RUENArq2>Nct#koc}Bn^*3E6WReqyG#wpMvEh*E-19#T++6mQZGo~J zy7N4r!aY-{W^f)}ZnB)KsT#2}TT}k<--$5;A;t~OL`{VGUr~Xo{NMYb`{&jDliYJy zzYXQo2z^EjUy#*70ND7w(p$0HNQI^6kYe*4S$emQW2hPZ{R###sDF^XxffbSby;6{ z0D95pN4k&{^U(;ymu6Yb9L!O^qY=M0{i!jE3I-^SX&hGWNb#?9q| zu!67#5vxB-d`?}OJLNbj46Q?8;S6_F=`8l#0O>MOS@OsC0*`ZJs6crR6VTipo(L1tws-+tJ z*ixh+NLCjGLN3m(bibcW7~7{uN#7Y9zhK|?fB$3#uPumVbF%M8oQ-m&<+ zD!E_!g^s;)Y;J5fSP*7ciA1N6A4t6V6ywI;RK?P^3Nm1l(E5|VM_0Bzg?7NU_{R5QIK1F##L-WpeA6E zBU_`E=UJOF+z2)myc?L~o7N0i+21EAI520F1b>5c$YL&ewMcS;DA{ilZ9MS>PFcsx z38oGlOWkZTb3G*%-ne?sH?m%JH!vd94Gcs2ECLVHHAsXw>y!#|*NG+!L~yq)(=w4( zptHZTwhlKpmVCVWp|AbvwSdSG{`aO@qX}5;B;eN4QOLUhJ~Pxm6>h@fF8|VK3_R|3GPr53;xl)T5n^zjpXP zxFXK}cvCAixuh+#Yob7;pEcO~!Q8l3gVV)vq#NT~^9P!FDMk}PR>VA*g_UVRkmRg;SfY+!Ma3VL-JWFS5Vm@fi+%74Bh&L3z9Og-CIQo(rXlrA z#!MC^7{LSytH8acRQvUA)V}C?|4H9zJIg+X8tG`CHK(1(05I0n2?oKx-y$ZVL67te z?8f~HuM~BWQN!%}tq>be9Q^t$vJ$38D@>#O}#$)f!gH9z>#F?_HCAK40nGg~B{ISg; z?;_y0TQsILRq+g#XicfzlYgyGX^(ljnw( zMj9{!BETs+I}k&uzEypFm1WYx_6utWm9IJDw8l~Kh;k(@gFLD#{Tk0)TQ~u!OA2?` zUe`MWV;-ckptd;fmq5NG;ML0a>TuHgThjU#x;Z2i9RbOsLP&2MIiq9qHI&Bqf->|W ze}s2}L+9*(>iX~jbt&5XE`BXDLvAPUpo?P)u>vsD7qCV$?fAuOA)jYR{a|b+zQWvp zg+P>3jM8%_J(G^^VkN}N<1`$4qPd2#{hg2I+(S+l~TgZ$|X!;EXK z#H7WAOc77|noe)ynWxDWMIE|dv>(gKvHx8i4S<1pYyD&{{AB#GL|3tTQ;ksr8(FZD zXe?lk9y|O~WC1P{G4!z;^}a1JpIhjL3d9}u4fowyED|5>^9jLmMqwCLQF5EQo@Z1p zG{xvxo}AD7(g5Xqft#ZXSOg|)Rq@fhJ?A14Wb2Hx=0CK{QHD*CMZ11Hz_mv=|h7A`4@J3JUCOes=G-D=Ue@f zLjk_F?m3fcJUGU=VX=8{|MS=(uqqlFxR_@7)XCWNP@po9Xlx=079K`I_(_+XC0UEOIiR?!aDJ|9eq>`E4Amy4)1SwOW3ngVsX3Gi%J)6C`JFe z$;u*tYKmjsfQxTFha2ecpTI}2cr4oYpVF{brKPoiC~X3^;RuV!%~+0f7DRz-Kbu2| zluC^F=k(qhoVnv+$TKEi%8q>XJ`Gx>F^i`J3Q--dDN3uS{>+vUBDEvXyx2UPs2rV- znXv=tBFqh+7&LLzW7la@`?8>adVz5GMc9gq8*AgfWZ$~lguJdZ2FJx>d>Wt{mRLX0xI!)kX)f=eU|{zq~oWAIE|?*v5GNV-F0H^@r+LY5B27@9!~{w z9=BZoxy9!Gi0=N`|Jq+bJEXZJC1`_r(ot(zI=Rf}fT;N4eWk}VqhFt2qF-8zz#SH%!c1;?AKPBnUi4hG$9h-v2yMy!2B>ei|0K;?uc3%8 zzYwOSk1L!;BcL8Zw?fJ{}=S3*I3v+gPT3jaz0xA`|z6Bq6$l@)*N* z)z?@_@nh)y=p-Oq&0BUg?TF5SOUEu7fo`FfOQtoi^j&QB? zmK%`|3PABk))dm6N3io-#?$J~2#Ab+H$d@$D%CW1=C{nD#>-?!^G}{WvW%bY!`8AW z=$y1cK+@NA*nX(>Y07Lf1<@crGJoTpzjLsPL7_*lHPf}!_3#PPza?@L$gDieN<+eV z{T8|r(zafJ3e}UY1cBThp0j7C?Z`qMy;H2D8uHLF-=JVaP1)WI`g1atwM+B7YiUsNZWfdrihP;e;9Um!AR3@f!HxDN$<^{A)a#b26K@mX1&C- z<&uvQls+c&?qet6)M9#re@oeSZ$~o?LObik$gVbg+t0F<NlG|DOH0lgKGkl?$ZuGaNiT4H@E&Xw*j5Zn8ao z?wg=ydHfzXe9oC+J>v|!NK5^>zuaSn9F*)rOt7LOD?0 ziwQ`AE8bzi&0MYqm{YWfAD&?IPoWY3&`Xkc)w({!cW}GD*xW0PQ&~aDOtne8}92&g(*Ofwh;i4l)9U;7h4vh0}_qK z-V1gM%Z4LiA_ozK3VfB0AtTf)7%I$+(2?sKc{=zmRK3iFJ=xOM-XuFvg?E)DFGooM zjX~#SdYrOWR#c7(o1}hv*6f!lggJfALW@y{?Y;+6$k_NlvAin!ZP9I#sg9B}8kNcQ zUXcxpOD!MWEze%0qdDH(qPaY~^HzN2Z~NLOdv~V8+c_LE+_dDsB3wunk(W%jG{DoW zfx~`3h0#3ZxfzG_&oVMbl){?jRX`?UuH(SI!_!Z;Fi0Krd=b=vQ7$#nqs-@Jr;Nix=KE zO+Lpv(%l-5E=?(?4?Dt;XEw>h$Oi=n=g2Q6M2E|z_i<69*8w=iGF)=YCHXcRMR(Dk zuSIw(_$teWpKXPd0@-msjEX`5OFOyQ0jY{zG3mdYZox(#uA> z7wGl1@FOA2NDp#mHZ(@RDdbVYZ`KfW)-GGO4jN7{6&r)i2Yjn8PC;s_9p7iD&t9p_ zXJ}A6Hd}ykOTp3&ejCu4mU@TspDoq27-g@e!sy@k$lGd}YDG(Gy|LWUg|133b)WkD zLMSgwOYMQAQwZ^TOj@T~$9{`-pnSpg!Nu+i+^P}dW50!n{yDnZ+AO&VJuem-6=zmy z-e638u`?}_>fux#+}WBX)7afw)sg5{c`Wq9#+>zqikG*&Z`)L;CQizZt}eu~a_6A( z)5aeSziVUE>ReJAWa~prk8Ko>LUC~mA*k8srdSXTZvu5}%yK}NfAd>l>GJ7k{w*w` zWwN`aosQsROI7<7lrT%}n2=L!5cyoZCK1#7QD}uc9PRr)of;vMp|)R`AZe$M|COf& z1Oc2dDXYhLIMvCXfU^c#bEG3#2b%>}W z&b*>2m-~G?H&)NX6_4{OKvinHkVJ;8_UFtICH6iiS?8pig*)xk%_WV%H=)m~%8E#J z+S{TDjx_UMIW@p?COqpOrUeR~1*VSoy}uNks3+2Zg?Ya>Ifp=NB%*8;FuFe4&1IJQ zO=nfw#tVgIsf&bzUkK|7*GP-NQvYyDlvUxSt48Vu5{_bcVUa{|OCagKl^n$##avMi z|N6-{vLuN-+M$CNT3w1vKv-bhfg10OEFgiYt9ZJxHLKn!CLSj1YCRJEju)T+YAtJGA)0#8N<#vgruKZ1!j@6+^M-do(?c9Y{_UOS2q0-5*- zZB;f9u_%689K*}7Q`wk@E8%O3z;6A<*V{)KfSk7K6IZ$IU=rnVJ%;ZeSa<~p7~WxHm*z99yuillDUE}~L#QcO z+1N6hYkpuVpl~uETa5X}w@-UIgu2-;4gW&?2ynAMI{fvp*mQR;fsl}aGQ%?oQRHQm z%9(vIe)Akt(22fKwpN$#jCAdZgdD3dR)Ns)hXj9+6S4`{SC)#Arc4}bpw^sD&WhoD ztCBAB?8rOj@3fJQT}NNXcR{w-pvqhrG8}}7x-Cgxaj$o(xE+4?QeG|b=$HPnJJP2m z)jaWvHgWyLD-Sh)bv~i$qFFarQ64if1a-%_CZuyrg)+s|BVJcW;`GGkrn7fBaUota zNA6#h$ve0f6PPTJQiP3^Tj<x~roLvA(elDg&6GPiFDlhLtuZ`6D*V-&TVr=vX z`>Rxo>gi)}A%&q+@c|1SQv`;Q>Q3gT8A1j)@h0984~|K(qLhNE5*)mG64zlP0j~6m ztvPx=uLSC5#3nsv(=azEotM(w*0h;Z`&j4#ZwJsFH3z43wSOtQ9=aT@x-fntX{Zey zen&vIXwrj|cS%X(oRiSQx|b7qr$@Gnl4kyRPqE@4~(f&DY+GTAJ?Xb zJd`*l38UzJ(T&9I8-K8Jn+=SaEq%Piy%$NDnPMI_ zHowtlqe&BB*ChEUK8g-fTxlVxIkZY@CEu@-Fiq}+L1vB)H;C0 z$2gm0IuBUJ?MplHfb=I-+#U0xl73Ly%$>WJ`8@et7=;x7JMWj01@MQTPYS_Cv?esi%A_>IAa6#%#6f>(6>~kQq69AV zC6C^kiST8>j3m9$^3)n#M8^(}{^%DLcWpL4EgCo~L7G;@i`NEN`-Xc<{blO%mc#!# zy(REbP|!b{A*1^-VT$&>7-~>^|DnP=g}DK5j|1s1Jm7hLEOK9bx!+rOUpUJ)qDTj3+2!*DrzlEfA*hCiknRBF>y==HePgWv*pIsK6`>> zj*TANIWU7f?h^|QbaJFyqgxAH6ahPKbP)8ntxLJX2dB#(igf;W3V3@@9io3a&M?x7 z>iQPf3pd28tm3;dpH+T32D3S#bcnqn5hDZYP#h@2k=c&k06ghxsq~o^Op(Oh3jS?N z+uco2cRN*v_C9eoOW3M2?6Wd`pA}MXOc;GJsFwg66wDUSUd~7KtB&B|3O2+2vK$-K7#zLVji)f|h3qU+xMU{SPR?^!*?zC_i>w)bJsiW403 z;_{{P?UmFqDUB1`BUA|N1-`UhQv4A^r51d;WCJOp&&yTFJGA1?!&@kfuwn@Y&%A!xM5oZ}hvKsc%>@#sN+4XgL z&&ss@7PisBgB^j*Ys;-U?1f3y-8&u6pAb#oo7f75w7lQcphu07jNr_vyOu&fJpH5* z2_c}6M%8Q1e<^&5X&u(xMNNLtX*Mc9d}p~~FSuia)aR$LtZbhw{&!XpLvtDV6=7XA zsm!{69tJ^V0tRG7b~LIWEGkEOWW!4*T|Jx%>seLP3y%H>vD8rTbNLy5hu3dyTEJB>5=Z zlTm)AkmH{k*X=i{vAMq_qz2rJ=XM5@36f_y{hzgv{pxLvXjo~lUWy@%}9hF)y(T9M_JSy2vCBb z-Jb*ny~hJf`hlXeC^2vtjY4X5SLW@)38U`1B}X7cGPqzO@aGGXkesBzFwMlx(szoD zBx&5Z>P5Z#^?I{l`XBrrJwvm@#OZWG1Izvv74v$T@U4ieJS=pG*^um*f|Ey@tfS8Y z<-@Zv8f*q)=?Z8=V(RXhkOBtz4jsj_qJxs1bHtSw_w(b=KdttremrKlx?M;G2g~Fq zdDUgtSHfq1>AR34KMe_}$j!g?ov>_sRdns?E7rY+Cz9wQT=l2mI;wWLcfB@oFJc?e zqo~aYmXNtGn)knA^&i;H1-m2gRYc$YU6E-2xtFI^L}tTAEKPobVv>bP6dghkF$*_> z52F&0qiIs?D!#g?B}<{-SROBk4Fm_cNS+Uc1Y;tTq(KRb8)vx zqg9%(HjPbloDulWhu*I%^Y2SbuvyQkUP;m4C~Z)$YiR{C+qOw~XUwoE5hMQ}O!Zaz zU8?bmD4?N|A#Xrq&Yq>iKWXxMY>I0~VLhOga|z>cyV}0^!HPQ9;Ec!iz_v6fjG|lV zDK_tOvzc+{l%OT9_o7fNY}f&nfT(5|+4eQYCMq@(F;$N5$y#p?52~|u^lH|p z#(FJ9Q9L84^Z<(Q{m<;ZirXRga5GdkD7n)899!m8cW^jO4`*Y#=gbFF@E^O1_*f?0kP{d@_& zK}8g#O}+Z}A*v@6HU0T&j9N-zSz&R)i5!`a+o0v>F=ma zuJaF-6P!;}-Dgt;#kU6dj_8Nnh)Asb-HhSld9gMhx0hOu3#`%|qGnaYRX!O$*LSC` zl!4U|6C@J7L}xT1;v_aQla~3|F7gixG;_C}EL9cWhr$|(MeVH~Zz#U(m-+{^FK8v3 zmGd(-RpgJDMx=ZP14C4YrIX?nBhU$7VSc!yO6KXTKy4`)|LzY@U}wJ0Jx|Og;@-D~ zymk1=a74+c^g0T<)J7nzWj3O!_#NA5GARe?`fzRD$#4 z#Z=8ykNvnKLbg+u#}1`*HXq|gRYgKJxoWCAphRtG}N%C@7q%}ohu^$=0(4}XS z#G^VD4k$Kt*8M5_K#7Hx~cmaHyvWlSIXV_?;2VB1k zmR}8=ZI8J**LM2rJ#7=!JjE_KoK;&G{l@$#Bync~mf+dS(&u6nY7aJ!V zC0`EoZ#PnobYfu6a!g=VWBJR+WtKFAyM?ex{J5)mwFITD-Xe)YG_$}Xw6Gc`=R5Q4Mt zhdFf3t2_4h9%$D4I=;TBbrX@yy~GL=WCWV4Rzsx&DY7>K19=cLYs2Up=Jqec)EO25 zZyAVn*`v_>F&}LO6#WMr7eN zTutY}C|na?VuN6;y}L^dEWNSSACSV7U`OBEUOLsSpk~Sh^Id}aqv*>0h~Xm(W;0NU zqA!=DG#xNQH81{L1EDG}nR%7SArlR~v*}Mxugwkrvvmb1uX}}@8~$ubh@^6r8u=Mz z9;8x{b}q0*E$5HRG3t?rCG8zeJOjo)jR+9Q2L+Pr{UR$UphcGqxa0ob+mhd-^;LAF zvWu8atF#rJ%eBCEIppq;4*J}zqm;W#E!y`r3CUO-G5hWN1NY(8bz*}AG`e22a)AXZ ztk?UylO=(KMvGB>#FaB9nuB90Yr6JKMn{{E1j#m0CTSsQB@Uo|f9Yd$zr+hdJn? zdlf6VIEt*~xjpK=Nu7lkYKuP~c-+S2ieWZbVOsZ(3*_bx_;9Y|mC0t9M%Z>GP4&1n zhBQ+a*4QnON;&;-3t-) z4W&g>evJ(j2e_5N$fzME4_K&`=}Zl=7~Y*HR{pC|TPeY+G`3X*=`awaIs~teoN@n z{TwEbkmDGu<6m95#k4CRm21Nvavu#aav4&6_d*NK1phVRvFnY#8rUNgtOI`&*dr&a zR$(mL*_hoPak~z^53`i&@7v$6qe7auJ(oU_Y4mm9%BJHTouYn-=(}+`z<7hRF72V| z$IE)i%n*gZ8s0hgK+{Ag4$F)xG990_lFdG9rA4jz+^z4XI^wwfjZ>-_6FB*O9Htcm z+#F)aKv6g*dv4HslX^$}mN1Hy5_SuxQuIuukb~rZt>HeokdNr~0MynO)gZg*3e)Og z&Z)f8Af_#*{kUr2*Kl6mRm*Xiy|OFjQPb@eVOaYyuLi%EP1J34dpXsj9zKEIxGTQ= z3@gxZ2%ct0m`G1EK$tqvwL^Ew#=t5mjNqn$Z&PY zMR{59Jbw`ClR+-(Nh9H{dk*Xb^)Db_=xI8#0}d|yvPZh$^9ks+So=v5zyIk5ys@c` z=N_QboE`#5$J{mxiFRM97*(?}<~d0i zFpGB34V<5Jvhch-n45cF7*BcTB?m+`@{wFmx|rIu76&b zaR+cbH(l(2Th}?(jMtxB0Nf?z;TT)u+>?xNm;`no6eLj0NG)WanCrRN>P>nFbTr{* z*VL%^!`lg3)R`*tuWh%})m5d-Pv*cc96O}s(tvEXmK|`SStK{s+YWw;e-NGc{aq(J zYpzF5YAe&G_K88fl-v%y>{dVyaWlp>)E^K6K)LjOX49|tr;H7M&}%TKZjFI(tdqJh z1drXcd+omHxTbXYreF7OHHQA^Zlw7`8}O}<0a12!H=IQ3R5tC?;P248pY<&UI?^Y~ z%k98OUi|gp36gMs08mJ@NTmZY{9Mu2pkNKPe2JME1L$B%sg(&h=w&`wdw(nBQ_b%NBw~mKP zS%%4H!(Cg%odD~ZtE18Mp{>oGZr>ySN_+^H!Zd=%@fP~KXmN?s_BsEa*(GRM*Sq%{`sYI zcF^gdN2+Wf1mwaP+_dg{dyxU%V3jp;r`B5X1-eODEduD~54`$YKmp|Me~wlbuy_BO zJ?6}P7dH>X8ew<2*bgW!tCVAYs+WM>X!{p%(U9|7kU-p@ow?jHq2AI0SJ(#&rNW)Z z7tZf^a1c^UC&}-CqQW13){=o~)sE>UN_|whX4dwj-@YW#N{I^1w$TRy)-U@f1yl%K z;hrsfw$~?wYQCC+JYj5jam@bdpjGaW(JPnDg-MrNS!q-XN6OdhmcYM8BY(YOv;atd zWI8A=28y_!L4m^1t9zQa=37y@*YDw-7!D@K1waW0{h;10A&J=hrHb{itC!9Y#?pq@EY|tJsY*gpTPG}~{ z5_t`vi6J<^RY#sCB+!|)O#$X8ro|t@u_(glcywwNAKWWT?G?chc_ZrA@ckP`-ND9! zmIMymYh-?VVP!uj zVMJ?6SYEYZw*Oh#JOrqETCIjGn$Je1Q0x-R$Q{Y`0klR5`pXrijpeV53_<6G^cPo4 zY<`b7PekI(s{#CcJou;@V>^Zp;@8pzuUqK%jb8H*p1SksMV|$pFYTM>MdPZ((U6j?}%arNF0dPpA+{V?vZKMjSW z7wXmd&D8(;ttWK@Rl{owNmtZ~8Pti@^ohUe6YH|MlC{W&ht?yIqa@IKkyzbwgD*YM z2#WFJvgJ@BikdK|${aka?_k5Skw|o`ixu@@@~`TaelY>Mw_x55(=;IxNwy>~NE3(A@;$)e@C_@ykB-m&`}L7`2dF|L1gZA>yb>XkqjH2D*ZrZ*vY@!172jXiOFfg z#XI2|m}P}S;oD{+-A1;;N54zb3J=^Ju|=# z2q@YHT3Xa!GO*Iu_|&L-mfJt1sN9)<_J_jXp-|Ss(Sz?6mYz3%+qh>v zX(g_hUQEM+ftq?qj<^eh&X0kjSBT6rL57Y|`acwKE)pLSzj;c!j;V$I&U!RlT(SZB zM52wk)hV*~CKq<{z-&~Gfz$ll&K*dlukRUqeTeQbZsYB(gF>$e^gG5I_4W$7bbncgtA|2P2mGhevl!PR?Ri9%xZ6*j(f&j%*8!L{?pdW ziQAP*u0(L;?|8_z{NEA3xye8KT03fi3%2r8FJ`k|(3`Sw-o|B1o$5;1qP|@fW~+W= zz2V<>prieu!LD90_usSn-G`|kC*wA+KKkvF zSG_~+=f2BgGyXibZ2H!ILGMQU@&3P$-kUqe{RZ}ffwg0Vw(8#H-TM11E-Vzb_zpb6 z{~G%ZB@vw^uI=4lRk^|^Wpcyua8!>@0MrnV*kB>IWf>pa>5rm##b{v z#jmW>xMIw#?^Ji*rfapg z1h~zYebKk6)46hdYrwx?=a4GjT5+b@?grioLW&oHS#lKC&uqV+VI#TnYJ|kfAL(;^ z_PdLnO!}yEde6lFX%ltDo@Bb8IG?AVdUnsNCm++}XZ>40w|I5VYmNSto{q#e`kiCIPPCNyM4v032twftlD5! z!ow(bebK&1gVSo!b#a#xqYCP#tvi|^!goLIo}_*;aK$z7`0%7_pZ4Bhx%hg%*?~vC zD<_Gw z_ROcprrNPRD^po_N<#dJSN~QY{(BoIPmjM8%koO|Pt4S*0cQ_AV>aV{w!ve1W!Wcb zC3dr&no6DULH!eQ%_pBY~ z7iC%b=TGje6yR_8Ey0&=$m|j2cfY-#;cbJDRKccfPR6YPx+nUIpGmqwDO#vyav%Wtd;ty!KP`mG;injyVKkjXi?%YAck zR(-l)!#w9-slWbIG4W1_;4ykBaJlq^VtdF}$*+CAw->TF@vge6Zknb3v7(l%vCb7Z zcCr6j&pU6_F_01lM%K4w3@&rg#!S9w1IJ8$Z%r$SM;n}A29CYFXXvnMMIMD{5O@&| z8hgn;`(hu`Kn-xz#(^C)hQlaO%7r#ovmRv5^;s8dIgtlBI2!ptvl7e-uSC%7jTZ!( zv)*(uaC!hmMiw+E!|rfJ6V2ZJN}$<|Y`5>KEGRNo4Zy)2zJ?XSkg+G|;0gyYfFAsh XfBW_O>YJMd8Gyjk)z4*}Q$iB}iLZ@H literal 0 HcmV?d00001 diff --git a/docs/UsersGuide/source/_static/RRFS_CONUS_25km.sphr.native_wrtcmp.png b/docs/UsersGuide/source/_static/RRFS_CONUS_25km.sphr.native_wrtcmp.png new file mode 100644 index 0000000000000000000000000000000000000000..bc321d6d740cdd8f27c35d28a5d9c08aa975413f GIT binary patch literal 103357 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∓mdRA~wtp$^}`yU-_nGe|fsJ{5_ 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

B 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

yxXj={h4MpC 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

A`6BYnfba7$)scIC+I-ki=6* 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 z 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∋zw~hjcn?Ylp)6h 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

DGfq2Er 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%0A*q0}EHv-)x@mJHFH(ss#J|XhU&09F1@k7C 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 Date: Mon, 19 Apr 2021 08:53:36 -0600 Subject: [PATCH 05/24] Update PR template to mention including a branch name and including documentation (#132) --- .github/PULL_REQUEST_TEMPLATE | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/PULL_REQUEST_TEMPLATE b/.github/PULL_REQUEST_TEMPLATE index 11192bdac4..f8476c2141 100644 --- a/.github/PULL_REQUEST_TEMPLATE +++ b/.github/PULL_REQUEST_TEMPLATE @@ -4,7 +4,7 @@ - If you are unclear on what should be written here, see https://github.com/wrf-model/WRF/wiki/Making-a-good-pull-request-message for some guidance. -- The title of this pull request should be a brief summary (ideally less than 100 characters) of the changes included in this PR. +- The title of this pull request should be a brief summary (ideally less than 100 characters) of the changes included in this PR. Please also include the branch to which this PR is being issued. - Use the "Preview" tab to see what your PR will look like when you hit "Create pull request" @@ -16,6 +16,9 @@ One or more paragraphs describing the problem, solution, and required changes. ## TESTS CONDUCTED: Explicitly state what tests were run on these changes, or if any are still pending (for README or other text-only changes, just put "None required". Make note of the compilers used, the platform/machine, and other relevant details as necessary. For more complicated changes, or those resulting in scientific changes, please be explicit! +## DOCUMENTATION: +If this PR is contributing new capabilities that need to be documented, please also include updates to the RST files (docs/UsersGuide/source) as supporting material. + ## ISSUE (optional): If this PR is resolving or referencing one or more issues, in this repository or elewhere, list them here. For example, "Fixes issue mentioned in #123" or "Related to bug in https://github.com/NOAA-EMC/other_repository/pull/63" From bfa942a59da10c50841a0debcd5562b3282aef76 Mon Sep 17 00:00:00 2001 From: JulieSchramm Date: Thu, 29 Apr 2021 08:42:28 -0600 Subject: [PATCH 06/24] - Update build_cheyenne_gnu.env to use latest hpc stack (#135) - Update Externals.cfg to point to hash of UFS_UTILS with bug fix - Update Quickstart documentation accordingly Out-of-the-box case builds with GNU and workflow runs to completion on Cheyenne. --- Externals.cfg | 2 +- docs/UsersGuide/source/Quickstart.rst | 14 +++++++++++--- env/build_cheyenne_gnu.env | 8 ++++---- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/Externals.cfg b/Externals.cfg index 6c48ce1bef..93345db23d 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -12,7 +12,7 @@ protocol = git repo_url = https://github.com/NOAA-EMC/UFS_UTILS # Specify either a branch name or a hash but not both. #branch = develop -hash = 005f9a0a +hash = ea821358 local_path = src/UFS_UTILS required = True diff --git a/docs/UsersGuide/source/Quickstart.rst b/docs/UsersGuide/source/Quickstart.rst index 27163d9046..662d4c92b8 100644 --- a/docs/UsersGuide/source/Quickstart.rst +++ b/docs/UsersGuide/source/Quickstart.rst @@ -42,6 +42,8 @@ and will clone the regional workflow, pre-processing utilities, UFS Weather Mode into the appropriate directories under your ``regional_workflow`` and ``src`` directories. +.. _SetUpBuild: + Set up the Build Environment ============================ Instructions for loading the proper modules and/or setting the correct environment variables can be @@ -53,9 +55,10 @@ or use ``setenv`` rather than ``export`` depending on your environment: .. code-block:: console $ ls -l env/ - -rw-rw-r-- 1 user ral 466 Jan 21 10:09 build_cheyenne_intel.env - -rw-rw-r-- 1 user ral 461 Jan 21 10:09 build_hera_intel.env - -rw-rw-r-- 1 user ral 543 Jan 21 10:09 build_jet_intel.env + -rw-rw-r-- 1 user ral 1062 Apr 27 10:09 build_cheyenne_gnu.env + -rw-rw-r-- 1 user ral 1061 Apr 27 10:09 build_cheyenne_intel.env + -rw-rw-r-- 1 user ral 1023 Apr 27 10:09 build_hera_intel.env + -rw-rw-r-- 1 user ral 1017 Apr 27 10:09 build_jet_intel.env Build the Executables ===================== @@ -115,6 +118,11 @@ machine you are running on, those changes should be sufficient; however, if that on Cheyenne), or if you have pre-staged the initialization data you would like to use, you will also want to 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``. + +.. note:: + + If you set up the build environment with the GNU compiler in :numref:`Section %s `, you will + have to add the line ``COMPILER="gnu"`` to the ``config.sh`` file. At a minimum, the following parameters should be set for the machine you are using: diff --git a/env/build_cheyenne_gnu.env b/env/build_cheyenne_gnu.env index 8a0975232b..a5dbe55bf8 100644 --- a/env/build_cheyenne_gnu.env +++ b/env/build_cheyenne_gnu.env @@ -6,10 +6,10 @@ module load gnu/9.1.0 module load mpt/2.22 module load ncarcompilers/0.5.0 module load cmake/3.16.4 +module unload netcdf - -module use /glade/p/ral/jntp/GMTB/tools/hpc-stack-nco-20201113/modulefiles/stack -module load hpc/1.0.0-beta1 +module use /glade/p/ral/jntp/GMTB/tools/hpc-stack-v1.1.0/modulefiles/stack +module load hpc/1.1.0 module load hpc-gnu/9.1.0 module load hpc-mpt/2.22 module load jasper/2.0.22 @@ -17,7 +17,7 @@ module load zlib/1.2.11 module load png/1.6.35 module load hdf5/1.10.6 module load netcdf/4.7.4 -module load pio/2.5.1 +module load pio/2.5.2 module load esmf/8_1_0_beta_snapshot_27 module load bacio/2.4.1 module load crtm/2.3.0 From de9bd9f3043dbea4434d49ec364a597ba1c5ee81 Mon Sep 17 00:00:00 2001 From: "Chan-Hoo.Jeon-NOAA" <60152248+chan-hoo@users.noreply.github.com> Date: Thu, 13 May 2021 06:08:07 -0400 Subject: [PATCH 07/24] Update build environment files for Hera, Orion, WCOSS with latest hpc-stack (#138) * Update the build environment for wcoss dell * Update the build environment for wcoss cray * Update the build environment for Hera * Update build environment for Orion * Rearrange modules in alphabetical order * Remove unnecessary modules --- env/build_hera_intel.env | 38 ++++++++++++++++--------------- env/build_orion_intel.env | 37 ++++++++++++++++++------------ env/build_wcoss_cray_intel.env | 11 ++++----- env/build_wcoss_dell_p3_intel.env | 37 ++++++++++++++++-------------- 4 files changed, 67 insertions(+), 56 deletions(-) diff --git a/env/build_hera_intel.env b/env/build_hera_intel.env index 60353b1e49..876632bcb2 100644 --- a/env/build_hera_intel.env +++ b/env/build_hera_intel.env @@ -2,42 +2,44 @@ module purge +module load cmake/3.16.1 +module load hpss module use /contrib/sutils/modulefiles module load sutils -module load cmake/3.16.1 -module use /scratch2/NCEPDEV/nwprod/hpc-stack/test/modulefiles/stack - -module load hpc/1.0.0-beta1 +### hpc-stack ### +module use /scratch2/NCEPDEV/nwprod/hpc-stack/libs/hpc-stack/modulefiles/stack +module load hpc/1.1.0 module load hpc-intel/18.0.5.274 module load hpc-impi/2018.0.4 -module load jasper/2.0.22 -module load zlib/1.2.11 -module load png/1.6.35 -module load hdf5/1.10.6 -module load netcdf/4.7.4 -module load pio/2.5.1 -module load esmf/8_1_0_beta_snapshot_27 + module load bacio/2.4.1 module load crtm/2.3.0 +module load gfsio/1.4.1 module load g2/3.4.1 -module load g2tmpl/1.9.1 +module load g2tmpl/1.10.0 module load ip/3.3.3 +module load jasper/2.0.22 module load nemsio/2.5.2 +module load png/1.6.35 +module load sfcio/1.4.1 +module load sigio/2.3.2 module load sp/2.3.3 -module load w3emc/2.7.3 +module load wgrib2/2.0.8 module load w3nco/2.4.1 -module load upp/10.0.0 +module load zlib/1.2.11 -module load gfsio/1.4.1 -module load sfcio/1.4.1 +### Additional modules ### +module load esmf/8_1_0_beta_snapshot_27 +module load hdf5/1.10.6 module load landsfcutil/2.4.1 module load nemsiogfs/2.5.3 -module load wgrib2/2.0.8 +module load netcdf/4.7.4 +module load upp/10.0.0 +module load w3emc/2.7.3 export CMAKE_C_COMPILER=mpiicc export CMAKE_CXX_COMPILER=mpiicpc export CMAKE_Fortran_COMPILER=mpiifort export CMAKE_Platform=hera.intel - diff --git a/env/build_orion_intel.env b/env/build_orion_intel.env index d1f07a496e..33bacbcd12 100644 --- a/env/build_orion_intel.env +++ b/env/build_orion_intel.env @@ -1,40 +1,47 @@ #Setup instructions for MSU Orion using Intel-18.0.5 (bash shell) -module load contrib noaatools +module purge module load cmake/3.17.3 +module load contrib noaatools +module load python/3.7.5 -module use /apps/contrib/NCEP/test/hpc-stack-nco/modulefiles/stack - -module load hpc/1.0.0-beta1 +### hpc-stack ### +module use /apps/contrib/NCEP/libs/hpc-stack/modulefiles/stack +module load hpc/1.1.0 module load hpc-intel/2018.4 module load hpc-impi/2018.4 -module load jasper/2.0.22 -module load zlib/1.2.11 -module load png/1.6.35 -module load hdf5/1.10.6 -module load netcdf/4.7.4 -module load pio/2.5.1 -module load esmf/8_1_0_beta_snapshot_27 module load bacio/2.4.1 module load crtm/2.3.0 +module load gfsio/1.4.1 module load g2/3.4.1 module load g2tmpl/1.9.1 module load ip/3.3.3 +module load jasper/2.0.22 module load nemsio/2.5.2 +module load png/1.6.35 +module load sfcio/1.4.1 +module load sigio/2.3.2 module load sp/2.3.3 +module load wgrib2/2.0.8 +module load wrf_io/1.1.1 module load w3emc/2.7.3 module load w3nco/2.4.1 -module load upp/10.0.0 +module load zlib/1.2.11 -module load gfsio/1.4.1 -module load sfcio/1.4.1 +### Additional modules ### +module load esmf/8_1_0_beta_snapshot_27 +module load hdf5/1.10.6 module load landsfcutil/2.4.1 module load nemsiogfs/2.5.3 -module load wgrib2/2.0.8 +module load netcdf/4.7.4 +module load upp/10.0.0 +module load w3emc/2.7.3 + export CMAKE_C_COMPILER=mpiicc export CMAKE_CXX_COMPILER=mpiicpc export CMAKE_Fortran_COMPILER=mpiifort export CMAKE_Platform=orion.intel + diff --git a/env/build_wcoss_cray_intel.env b/env/build_wcoss_cray_intel.env index f15702e7a1..609c5150d4 100644 --- a/env/build_wcoss_cray_intel.env +++ b/env/build_wcoss_cray_intel.env @@ -26,24 +26,24 @@ export PNG_ROOT="/usrx/local/prod//png/1.2.49/intel/sandybridge" module use /usrx/local/nceplibs/NCEPLIBS/cmake/install/NCEPLIBS-v1.3.0/modules module load bacio/2.4.1 module load crtm/2.3.0 +module load gfsio/1.4.1 module load g2/3.4.1 module load g2tmpl/1.9.1 module load ip/3.3.3 module load nemsio/2.5.2 +module load sfcio/1.4.1 +module load sigio/2.3.2 module load sp/2.3.3 +module load upp/10.0.4 module load w3emc/2.7.3 module load w3nco/2.4.1 -module load upp/10.0.0 -module load gfsio/1.4.1 -module load sfcio/1.4.1 -module load sigio/2.3.2 module load landsfcutil/2.4.1 module load nemsiogfs/2.5.3 module load wgrib2/2.0.8 module use /gpfs/hps3/emc/nems/noscrub/emc.nemspara/soft/modulefiles module load esmf/8.1.0bs27 - +module swap pmi pmi/5.0.11 ## load cmake export CMAKE_C_COMPILER=cc @@ -51,4 +51,3 @@ export CMAKE_CXX_COMPILER=CC export CMAKE_Fortran_COMPILER=ftn export CMAKE_Platform=wcoss_cray - diff --git a/env/build_wcoss_dell_p3_intel.env b/env/build_wcoss_dell_p3_intel.env index 456c9aebd4..705d6263dc 100644 --- a/env/build_wcoss_dell_p3_intel.env +++ b/env/build_wcoss_dell_p3_intel.env @@ -2,40 +2,43 @@ module purge +module load cmake/3.16.2 +module load HPSS/5.0.2.5 module load ips/18.0.1.163 module load impi/18.0.1 module load lsf/10.1 module load python/3.6.3 -module load cmake/3.16.2 - -module use /usrx/local/nceplibs/dev/hpc-stack/test/hpc-stack/modulefiles/stack -module load hpc/1.0.0-beta1 +### hpc-stack ### +module use /usrx/local/nceplibs/dev/hpc-stack/libs/hpc-stack/modulefiles/stack +module load hpc/1.1.0 module load hpc-ips/18.0.1.163 module load hpc-impi/18.0.1 -module load jasper/2.0.22 -module load zlib/1.2.11 -module load png/1.6.35 -module load hdf5/1.10.6 -module load netcdf/4.7.4 -module load pio/2.5.1 -module load esmf/8_1_0_beta_snapshot_27 + module load bacio/2.4.1 module load crtm/2.3.0 +module load gfsio/1.4.1 module load g2/3.4.1 -module load g2tmpl/1.9.1 +module load g2tmpl/1.10.0 module load ip/3.3.3 -module load nemsio/2.5.2 +module load jasper/2.0.22 +module load png/1.6.35 +module load sfcio/1.4.1 +module load sigio/2.3.2 module load sp/2.3.3 -module load w3emc/2.7.3 module load w3nco/2.4.1 -module load upp/10.0.0 +module load zlib/1.2.11 -module load gfsio/1.4.1 -module load sfcio/1.4.1 +# Additional modules +module load esmf/8_1_0_beta_snapshot_27 +module load hdf5/1.10.6 module load landsfcutil/2.4.1 +module load nemsio/2.5.2 module load nemsiogfs/2.5.3 +module load netcdf/4.7.4 +module load upp/10.0.4 module load wgrib2/2.0.8 +module load w3emc/2.7.3 export CMAKE_C_COMPILER=mpiicc From be49e65567adf881f78851d814d9aae17beb016e Mon Sep 17 00:00:00 2001 From: JulieSchramm Date: Tue, 18 May 2021 09:14:03 -0600 Subject: [PATCH 08/24] Add dependencies to PR template (#139) Add templates for bug and feature issues. --- .github/ISSUE_TEMPLATE/bug_report.md | 32 +++++++++++++++++++++++ .github/ISSUE_TEMPLATE/feature_request.md | 20 ++++++++++++++ .github/PULL_REQUEST_TEMPLATE | 6 +++++ 3 files changed, 58 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000000..d1e3c52fc4 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,32 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: bug +assignees: '' + +--- + +# Description + +Provide a clear and concise description of the bug and what behavior you are expecting. + +## Steps to Reproduce + +Please provide detailed steps for reproducing the issue. + +1. step 1 +2. step 2 +3. see the bug... + +## Additional Context + +Please provide any relevant information about your setup. This is important in case the issue is not reproducible except for under certain conditions. + +* Machine +* Compiler +* Reference other issues or PRs in other repositories that this is related to, and how they are related. + +## Output + +Please include any relevant log files, screenshots or other output here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000000..c5f7619d81 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: enhancement +assignees: '' + +--- + +## Description +Provide a clear and concise description of the problem to be solved. + +## Solution +Add a clear and concise description of the proposed solution. + +## Alternatives (optional) +If applicable, add a description of any alternative solutions or features you've considered. + +## Related to (optional) +Directly reference any issues or PRs in this or other repositories that this is related to, and describe how they are related. diff --git a/.github/PULL_REQUEST_TEMPLATE b/.github/PULL_REQUEST_TEMPLATE index f8476c2141..d0deea8bbe 100644 --- a/.github/PULL_REQUEST_TEMPLATE +++ b/.github/PULL_REQUEST_TEMPLATE @@ -16,6 +16,12 @@ One or more paragraphs describing the problem, solution, and required changes. ## TESTS CONDUCTED: Explicitly state what tests were run on these changes, or if any are still pending (for README or other text-only changes, just put "None required". Make note of the compilers used, the platform/machine, and other relevant details as necessary. For more complicated changes, or those resulting in scientific changes, please be explicit! +## DEPENDENCIES: +Add any links to external PRs (e.g. regional_workflow and/or UFS PRs). For example: +- NOAA-EMC/regional_workflow/pull/ +- NOAA-EMC/UFS_UTILS/pull/ +- ufs-community/ufs-weather-model/pull/ + ## DOCUMENTATION: If this PR is contributing new capabilities that need to be documented, please also include updates to the RST files (docs/UsersGuide/source) as supporting material. From 339f189a652d1ec5e0e4a7ceb14b62c3252adfee Mon Sep 17 00:00:00 2001 From: Michael Kavulich Date: Wed, 2 Jun 2021 11:21:21 -0600 Subject: [PATCH 09/24] [develop] Update build environments for newer version of weather model (hash 2f1c8e1) (#140) ## DESCRIPTION OF CHANGES: This PR (along with https://github.com/NOAA-EMC/regional_workflow/pull/492) update the UFS SRW App to work with a more up-to-date hash of the ufs-weather-model (https://github.com/ufs-community/ufs-weather-model/commit/2f1c8e1883370b30828dea87d4250e10c35499f4) ## TESTS CONDUCTED: Ran full suite of tests on Hera (aside from nco tests) with updated environment files (/scratch2/BMC/det/kavulich/workdir/update_app_master/step-by-step/expt_dirs/). The only new failures are only for older versions of NAM input; this is due to a change in the weather model, and will need to be handled in a separate PR. Ran several end-to-end tests on Cheyenne (Intel 19.1.1) and Jet. Also ran the Graduate Student Test case on Orion. No failures outside of those outlined above and a few previously-known failures. **Tests have not been run on WCOSS platforms; these will likely fail without being updated to the latest ESMF modules but DTC does not have access to update and test** ## ISSUE: Fixes issue #134 --- Externals.cfg | 4 ++-- devbuild.sh | 4 ++-- env/build_cheyenne_gnu.env | 4 ++-- env/build_cheyenne_intel.env | 12 +++++++----- env/build_hera_intel.env | 33 +++++++++++++++------------------ env/build_jet_intel.env | 8 ++++---- env/build_orion_intel.env | 30 +++++++++++++----------------- env/wflow_orion.env | 2 ++ src/CMakeLists.txt | 4 +++- 9 files changed, 50 insertions(+), 51 deletions(-) diff --git a/Externals.cfg b/Externals.cfg index 93345db23d..eca858dbfa 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -3,7 +3,7 @@ protocol = git repo_url = https://github.com/NOAA-EMC/regional_workflow # Specify either a branch name or a hash but not both. #branch = develop -hash = 3586e11 +hash = 40cfeff local_path = regional_workflow required = True @@ -21,7 +21,7 @@ protocol = git repo_url = https://github.com/ufs-community/ufs-weather-model # Specify either a branch name or a hash but not both. #branch = develop -hash = ea8a7aa +hash = 2f1c8e1 local_path = src/ufs_weather_model required = True diff --git a/devbuild.sh b/devbuild.sh index 6edcc5495b..0a35409246 100755 --- a/devbuild.sh +++ b/devbuild.sh @@ -70,7 +70,7 @@ fi mkdir -p ${BUILD_DIR} cd ${BUILD_DIR} -cmake .. -DCMAKE_INSTALL_PREFIX=.. -make -j ${BUILD_JOBS:-4} +cmake .. -DCMAKE_INSTALL_PREFIX=.. 2>&1 | tee log.cmake +make -j ${BUILD_JOBS:-4} 2>&1 | tee log.make exit 0 diff --git a/env/build_cheyenne_gnu.env b/env/build_cheyenne_gnu.env index a5dbe55bf8..2888c3545d 100644 --- a/env/build_cheyenne_gnu.env +++ b/env/build_cheyenne_gnu.env @@ -18,7 +18,7 @@ module load png/1.6.35 module load hdf5/1.10.6 module load netcdf/4.7.4 module load pio/2.5.2 -module load esmf/8_1_0_beta_snapshot_27 +module load esmf/8_1_1 module load bacio/2.4.1 module load crtm/2.3.0 module load g2/3.4.1 @@ -28,7 +28,7 @@ module load nemsio/2.5.2 module load sp/2.3.3 module load w3emc/2.7.3 module load w3nco/2.4.1 -module load upp/10.0.0 +module load upp/10.0.6 module load gfsio/1.4.1 module load sfcio/1.4.1 diff --git a/env/build_cheyenne_intel.env b/env/build_cheyenne_intel.env index 9389b7f4a8..e35687ceb0 100644 --- a/env/build_cheyenne_intel.env +++ b/env/build_cheyenne_intel.env @@ -7,17 +7,19 @@ module load mpt/2.22 module load ncarcompilers/0.5.0 module load cmake/3.16.4 -module use /glade/p/ral/jntp/GMTB/tools/hpc-stack-nco-20201113/modulefiles/stack -module load hpc/1.0.0-beta1 +module use /glade/p/ral/jntp/GMTB/tools/hpc-stack-v1.1.0/modulefiles/stack +module load hpc/1.1.0 module load hpc-intel/19.1.1 module load hpc-mpt/2.22 + module load jasper/2.0.22 module load zlib/1.2.11 module load png/1.6.35 module load hdf5/1.10.6 module load netcdf/4.7.4 -module load pio/2.5.1 -module load esmf/8_1_0_beta_snapshot_27 +module load pio/2.5.2 +module load esmf/8_1_1 + module load bacio/2.4.1 module load crtm/2.3.0 module load g2/3.4.1 @@ -27,7 +29,7 @@ module load nemsio/2.5.2 module load sp/2.3.3 module load w3emc/2.7.3 module load w3nco/2.4.1 -module load upp/10.0.0 +module load upp/10.0.6 module load gfsio/1.4.1 module load sfcio/1.4.1 diff --git a/env/build_hera_intel.env b/env/build_hera_intel.env index 876632bcb2..04315cb15d 100644 --- a/env/build_hera_intel.env +++ b/env/build_hera_intel.env @@ -2,41 +2,38 @@ module purge -module load cmake/3.16.1 -module load hpss module use /contrib/sutils/modulefiles module load sutils +module load cmake/3.16.1 -### hpc-stack ### module use /scratch2/NCEPDEV/nwprod/hpc-stack/libs/hpc-stack/modulefiles/stack + module load hpc/1.1.0 module load hpc-intel/18.0.5.274 module load hpc-impi/2018.0.4 - +module load jasper/2.0.22 +module load zlib/1.2.11 +module load png/1.6.35 +module load hdf5/1.10.6 +module load netcdf/4.7.4 +module load pio/2.5.2 +module load esmf/8_1_1 module load bacio/2.4.1 module load crtm/2.3.0 -module load gfsio/1.4.1 module load g2/3.4.1 -module load g2tmpl/1.10.0 +module load g2tmpl/1.9.1 module load ip/3.3.3 -module load jasper/2.0.22 module load nemsio/2.5.2 -module load png/1.6.35 -module load sfcio/1.4.1 -module load sigio/2.3.2 module load sp/2.3.3 -module load wgrib2/2.0.8 +module load w3emc/2.7.3 module load w3nco/2.4.1 -module load zlib/1.2.11 +module load upp/10.0.6 -### Additional modules ### -module load esmf/8_1_0_beta_snapshot_27 -module load hdf5/1.10.6 +module load gfsio/1.4.1 +module load sfcio/1.4.1 module load landsfcutil/2.4.1 module load nemsiogfs/2.5.3 -module load netcdf/4.7.4 -module load upp/10.0.0 -module load w3emc/2.7.3 +module load wgrib2/2.0.8 export CMAKE_C_COMPILER=mpiicc diff --git a/env/build_jet_intel.env b/env/build_jet_intel.env index 3b69220b8c..1f2d789992 100644 --- a/env/build_jet_intel.env +++ b/env/build_jet_intel.env @@ -6,17 +6,17 @@ module load sutils module load cmake/3.16.1 module use /lfs4/HFIP/hfv3gfs/nwprod/hpc-stack/libs/modulefiles/stack + module load hpc/1.1.0 module load hpc-intel/18.0.5.274 module load hpc-impi/2018.4.274 - module load jasper/2.0.22 module load zlib/1.2.11 module load png/1.6.35 module load hdf5/1.10.6 module load netcdf/4.7.4 -module load pio/2.5.1 -module load esmf/8_1_0_beta_snapshot_27 +module load pio/2.5.2 +module load esmf/8_1_1 module load bacio/2.4.1 module load crtm/2.3.0 module load g2/3.4.1 @@ -26,7 +26,7 @@ module load nemsio/2.5.2 module load sp/2.3.3 module load w3emc/2.7.3 module load w3nco/2.4.1 -module load upp/10.0.0 +module load upp/10.0.6 module load gfsio/1.4.1 module load sfcio/1.4.1 diff --git a/env/build_orion_intel.env b/env/build_orion_intel.env index 33bacbcd12..f1fc3a1b77 100644 --- a/env/build_orion_intel.env +++ b/env/build_orion_intel.env @@ -1,43 +1,39 @@ #Setup instructions for MSU Orion using Intel-18.0.5 (bash shell) -module purge +module load contrib noaatools module load cmake/3.17.3 -module load contrib noaatools module load python/3.7.5 -### hpc-stack ### module use /apps/contrib/NCEP/libs/hpc-stack/modulefiles/stack + module load hpc/1.1.0 module load hpc-intel/2018.4 module load hpc-impi/2018.4 +module load jasper/2.0.22 +module load zlib/1.2.11 +module load png/1.6.35 +module load hdf5/1.10.6 +module load netcdf/4.7.4 +module load pio/2.5.2 +module load esmf/8_1_1 module load bacio/2.4.1 module load crtm/2.3.0 -module load gfsio/1.4.1 module load g2/3.4.1 module load g2tmpl/1.9.1 module load ip/3.3.3 -module load jasper/2.0.22 module load nemsio/2.5.2 -module load png/1.6.35 -module load sfcio/1.4.1 -module load sigio/2.3.2 module load sp/2.3.3 -module load wgrib2/2.0.8 -module load wrf_io/1.1.1 module load w3emc/2.7.3 module load w3nco/2.4.1 -module load zlib/1.2.11 +module load upp/10.0.6 -### Additional modules ### -module load esmf/8_1_0_beta_snapshot_27 -module load hdf5/1.10.6 +module load gfsio/1.4.1 +module load sfcio/1.4.1 module load landsfcutil/2.4.1 module load nemsiogfs/2.5.3 -module load netcdf/4.7.4 -module load upp/10.0.0 -module load w3emc/2.7.3 +module load wgrib2/2.0.8 export CMAKE_C_COMPILER=mpiicc diff --git a/env/wflow_orion.env b/env/wflow_orion.env index 5a05277744..dca666ef12 100644 --- a/env/wflow_orion.env +++ b/env/wflow_orion.env @@ -1,5 +1,7 @@ # Python environment for workflow on Orion +module load rocoto + module use -a /apps/contrib/miniconda3-noaa-gsl/modulefiles module load miniconda3 conda activate regional_workflow diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index dcb74f72f9..f906360436 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -8,7 +8,7 @@ ExternalProject_Add(UFS_UTILS ) if(NOT CCPP_SUITES) - set(CCPP_SUITES "FV3_CPT_v0,FV3_GFS_2017_gfdlmp,FV3_GFS_2017_gfdlmp_regional,FV3_GSD_SAR,FV3_GSD_v0,FV3_GFS_v15p2,FV3_GFS_v16beta,FV3_RRFS_v1beta,FV3_HRRR") + set(CCPP_SUITES "FV3_CPT_v0,FV3_GFS_2017_gfdlmp,FV3_GFS_2017_gfdlmp_regional,FV3_GSD_SAR,FV3_GSD_v0,FV3_GFS_v15p2,FV3_GFS_v16,FV3_RRFS_v1beta,FV3_HRRR,FV3_RRFS_v1alpha") endif() ExternalProject_Add(ufs_weather_model @@ -21,6 +21,8 @@ ExternalProject_Add(ufs_weather_model "-DCMAKE_CXX_COMPILER=${MPI_CXX_COMPILER}" "-DCMAKE_Fortran_COMPILER=${MPI_Fortran_COMPILER}" "-DNETCDF_DIR=$ENV{NETCDF}" + "-D32BIT=ON" + "-DAPP=ATM" INSTALL_COMMAND mkdir -p ${CMAKE_INSTALL_PREFIX}/bin && cp ${CMAKE_CURRENT_BINARY_DIR}/ufs_weather_model/src/ufs_weather_model-build/ufs_model ${CMAKE_INSTALL_PREFIX}/bin/ ) From 9de7886ff86238e38894f230b7a085d4d39ea761 Mon Sep 17 00:00:00 2001 From: "Chan-Hoo.Jeon-NOAA" <60152248+chan-hoo@users.noreply.github.com> Date: Tue, 8 Jun 2021 13:19:40 -0400 Subject: [PATCH 10/24] Update build environments for wcoss dell and cray (#144) --- env/build_wcoss_cray_intel.env | 12 ++++++------ env/build_wcoss_dell_p3_intel.env | 24 ++++++++++-------------- 2 files changed, 16 insertions(+), 20 deletions(-) diff --git a/env/build_wcoss_cray_intel.env b/env/build_wcoss_cray_intel.env index 609c5150d4..ff7ebee408 100644 --- a/env/build_wcoss_cray_intel.env +++ b/env/build_wcoss_cray_intel.env @@ -9,7 +9,6 @@ module rm NetCDF-intel-sandybridge/4.2 module load xt-lsfhpc/9.1.3 module load craype-haswell module load python/3.6.3 -module load cmake/3.16.2 module load gcc/5.3.0 # module use /usrx/local/dev/modulefiles @@ -26,26 +25,27 @@ export PNG_ROOT="/usrx/local/prod//png/1.2.49/intel/sandybridge" module use /usrx/local/nceplibs/NCEPLIBS/cmake/install/NCEPLIBS-v1.3.0/modules module load bacio/2.4.1 module load crtm/2.3.0 +module load esmf/811 +module load fms/2020.04.03 module load gfsio/1.4.1 module load g2/3.4.1 module load g2tmpl/1.9.1 module load ip/3.3.3 +module load landsfcutil/2.4.1 module load nemsio/2.5.2 +module load nemsiogfs/2.5.3 module load sfcio/1.4.1 module load sigio/2.3.2 module load sp/2.3.3 -module load upp/10.0.4 +module load upp/10.0.6 module load w3emc/2.7.3 module load w3nco/2.4.1 -module load landsfcutil/2.4.1 -module load nemsiogfs/2.5.3 module load wgrib2/2.0.8 -module use /gpfs/hps3/emc/nems/noscrub/emc.nemspara/soft/modulefiles -module load esmf/8.1.0bs27 module swap pmi pmi/5.0.11 ## load cmake +module load cmake/3.16.2 export CMAKE_C_COMPILER=cc export CMAKE_CXX_COMPILER=CC export CMAKE_Fortran_COMPILER=ftn diff --git a/env/build_wcoss_dell_p3_intel.env b/env/build_wcoss_dell_p3_intel.env index 705d6263dc..6abc7b8342 100644 --- a/env/build_wcoss_dell_p3_intel.env +++ b/env/build_wcoss_dell_p3_intel.env @@ -4,8 +4,6 @@ module purge module load cmake/3.16.2 module load HPSS/5.0.2.5 -module load ips/18.0.1.163 -module load impi/18.0.1 module load lsf/10.1 module load python/3.6.3 @@ -17,28 +15,26 @@ module load hpc-impi/18.0.1 module load bacio/2.4.1 module load crtm/2.3.0 +module load esmf/8_1_1 module load gfsio/1.4.1 -module load g2/3.4.1 +module load g2/3.4.2 module load g2tmpl/1.10.0 +module load hdf5/1.10.6 module load ip/3.3.3 module load jasper/2.0.22 +module load landsfcutil/2.4.1 +module load nemsio/2.5.2 +module load nemsiogfs/2.5.3 +module load netcdf/4.7.4 module load png/1.6.35 module load sfcio/1.4.1 module load sigio/2.3.2 module load sp/2.3.3 +module load upp/10.0.6 +module load w3emc/2.7.3 module load w3nco/2.4.1 -module load zlib/1.2.11 - -# Additional modules -module load esmf/8_1_0_beta_snapshot_27 -module load hdf5/1.10.6 -module load landsfcutil/2.4.1 -module load nemsio/2.5.2 -module load nemsiogfs/2.5.3 -module load netcdf/4.7.4 -module load upp/10.0.4 module load wgrib2/2.0.8 -module load w3emc/2.7.3 +module load zlib/1.2.11 export CMAKE_C_COMPILER=mpiicc From 0baa259fe8966fde8adb9136b0a15c03391adb45 Mon Sep 17 00:00:00 2001 From: "Chan-Hoo.Jeon-NOAA" <60152248+chan-hoo@users.noreply.github.com> Date: Thu, 10 Jun 2021 11:52:26 -0400 Subject: [PATCH 11/24] Make the name of the forecast model the same as its repository (#146) * Match the name of forecast model with repo * Match the name of forecast with repo * Match the name of forecast model with repo --- Externals.cfg | 4 ++-- src/CMakeLists.txt | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Externals.cfg b/Externals.cfg index eca858dbfa..4ca99cb10c 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -16,13 +16,13 @@ hash = ea821358 local_path = src/UFS_UTILS required = True -[ufs_weather_model] +[ufs-weather-model] protocol = git repo_url = https://github.com/ufs-community/ufs-weather-model # Specify either a branch name or a hash but not both. #branch = develop hash = 2f1c8e1 -local_path = src/ufs_weather_model +local_path = src/ufs-weather-model required = True [EMC_post] diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f906360436..e0e5a91125 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -11,9 +11,9 @@ if(NOT CCPP_SUITES) set(CCPP_SUITES "FV3_CPT_v0,FV3_GFS_2017_gfdlmp,FV3_GFS_2017_gfdlmp_regional,FV3_GSD_SAR,FV3_GSD_v0,FV3_GFS_v15p2,FV3_GFS_v16,FV3_RRFS_v1beta,FV3_HRRR,FV3_RRFS_v1alpha") endif() -ExternalProject_Add(ufs_weather_model - PREFIX ${CMAKE_CURRENT_BINARY_DIR}/ufs_weather_model - SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ufs_weather_model +ExternalProject_Add(ufs-weather-model + PREFIX ${CMAKE_CURRENT_BINARY_DIR}/ufs-weather-model + SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ufs-weather-model INSTALL_DIR ${CMAKE_INSTALL_PREFIX} CMAKE_ARGS "-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}" "-DCCPP_SUITES=${CCPP_SUITES}" @@ -23,7 +23,7 @@ ExternalProject_Add(ufs_weather_model "-DNETCDF_DIR=$ENV{NETCDF}" "-D32BIT=ON" "-DAPP=ATM" - INSTALL_COMMAND mkdir -p ${CMAKE_INSTALL_PREFIX}/bin && cp ${CMAKE_CURRENT_BINARY_DIR}/ufs_weather_model/src/ufs_weather_model-build/ufs_model ${CMAKE_INSTALL_PREFIX}/bin/ + INSTALL_COMMAND mkdir -p ${CMAKE_INSTALL_PREFIX}/bin && cp ${CMAKE_CURRENT_BINARY_DIR}/ufs-weather-model/src/ufs-weather-model-build/ufs_model ${CMAKE_INSTALL_PREFIX}/bin/ ) ExternalProject_Add(EMC_post From 59bf3dab7d335dab289f88458ee45f9dda3b13f3 Mon Sep 17 00:00:00 2001 From: "Chan-Hoo.Jeon-NOAA" <60152248+chan-hoo@users.noreply.github.com> Date: Thu, 10 Jun 2021 14:45:16 -0400 Subject: [PATCH 12/24] Update hash of regional_worklow with the latest (#147) --- Externals.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Externals.cfg b/Externals.cfg index 4ca99cb10c..285b470d63 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -3,7 +3,7 @@ protocol = git repo_url = https://github.com/NOAA-EMC/regional_workflow # Specify either a branch name or a hash but not both. #branch = develop -hash = 40cfeff +hash = 5bbbc53 local_path = regional_workflow required = True From fb48578108665f5ff767fcc14cb3f14580259e4d Mon Sep 17 00:00:00 2001 From: "Chan-Hoo.Jeon-NOAA" <60152248+chan-hoo@users.noreply.github.com> Date: Wed, 7 Jul 2021 12:43:13 -0400 Subject: [PATCH 13/24] Add inline post option to the SRW App (#150) * Add inline_post flag to build config * Update env for wcoss dell * Update to the latest versions * Update hash of regional workflow --- Externals.cfg | 2 +- env/build_hera_intel.env | 4 ++-- env/build_wcoss_dell_p3_intel.env | 2 +- src/CMakeLists.txt | 1 + 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Externals.cfg b/Externals.cfg index 285b470d63..28f59f705d 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -3,7 +3,7 @@ protocol = git repo_url = https://github.com/NOAA-EMC/regional_workflow # Specify either a branch name or a hash but not both. #branch = develop -hash = 5bbbc53 +hash = 47d5b4f local_path = regional_workflow required = True diff --git a/env/build_hera_intel.env b/env/build_hera_intel.env index 04315cb15d..26ed49c446 100644 --- a/env/build_hera_intel.env +++ b/env/build_hera_intel.env @@ -20,8 +20,8 @@ module load pio/2.5.2 module load esmf/8_1_1 module load bacio/2.4.1 module load crtm/2.3.0 -module load g2/3.4.1 -module load g2tmpl/1.9.1 +module load g2/3.4.3 +module load g2tmpl/1.10.0 module load ip/3.3.3 module load nemsio/2.5.2 module load sp/2.3.3 diff --git a/env/build_wcoss_dell_p3_intel.env b/env/build_wcoss_dell_p3_intel.env index 6abc7b8342..3602377a21 100644 --- a/env/build_wcoss_dell_p3_intel.env +++ b/env/build_wcoss_dell_p3_intel.env @@ -17,7 +17,7 @@ module load bacio/2.4.1 module load crtm/2.3.0 module load esmf/8_1_1 module load gfsio/1.4.1 -module load g2/3.4.2 +module load g2/3.4.3 module load g2tmpl/1.10.0 module load hdf5/1.10.6 module load ip/3.3.3 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e0e5a91125..d0384584b6 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -22,6 +22,7 @@ ExternalProject_Add(ufs-weather-model "-DCMAKE_Fortran_COMPILER=${MPI_Fortran_COMPILER}" "-DNETCDF_DIR=$ENV{NETCDF}" "-D32BIT=ON" + "-DINLINE_POST=ON" "-DAPP=ATM" INSTALL_COMMAND mkdir -p ${CMAKE_INSTALL_PREFIX}/bin && cp ${CMAKE_CURRENT_BINARY_DIR}/ufs-weather-model/src/ufs-weather-model-build/ufs_model ${CMAKE_INSTALL_PREFIX}/bin/ ) From 0c9a2214e09e1d2f11042253f8df05c07647c2de Mon Sep 17 00:00:00 2001 From: Dan Date: Fri, 16 Jul 2021 14:30:04 -0600 Subject: [PATCH 14/24] Update ufs-weather-model to 3b8bb78 (#152) Update ufs-weather-model to 3b8bb78: * Requires new revision of regional_workflow with fd_nems.yaml * Updated cmake revision to env files * Added fms module load to env files --- Externals.cfg | 4 ++-- env/build_cheyenne_gnu.env | 3 ++- env/build_cheyenne_intel.env | 3 ++- env/build_hera_intel.env | 3 ++- env/build_jet_intel.env | 3 ++- env/build_orion_intel.env | 3 ++- env/build_wcoss_cray_intel.env | 2 +- env/build_wcoss_dell_p3_intel.env | 3 ++- 8 files changed, 15 insertions(+), 9 deletions(-) diff --git a/Externals.cfg b/Externals.cfg index 28f59f705d..bba534cf21 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -3,7 +3,7 @@ protocol = git repo_url = https://github.com/NOAA-EMC/regional_workflow # Specify either a branch name or a hash but not both. #branch = develop -hash = 47d5b4f +hase = de1220b local_path = regional_workflow required = True @@ -21,7 +21,7 @@ protocol = git repo_url = https://github.com/ufs-community/ufs-weather-model # Specify either a branch name or a hash but not both. #branch = develop -hash = 2f1c8e1 +hash = 3b8bb78 local_path = src/ufs-weather-model required = True diff --git a/env/build_cheyenne_gnu.env b/env/build_cheyenne_gnu.env index 2888c3545d..02356fcedc 100644 --- a/env/build_cheyenne_gnu.env +++ b/env/build_cheyenne_gnu.env @@ -5,7 +5,7 @@ module load ncarenv/1.3 module load gnu/9.1.0 module load mpt/2.22 module load ncarcompilers/0.5.0 -module load cmake/3.16.4 +module load cmake/3.18.2 module unload netcdf module use /glade/p/ral/jntp/GMTB/tools/hpc-stack-v1.1.0/modulefiles/stack @@ -19,6 +19,7 @@ module load hdf5/1.10.6 module load netcdf/4.7.4 module load pio/2.5.2 module load esmf/8_1_1 +module load fms/2020.04.03 module load bacio/2.4.1 module load crtm/2.3.0 module load g2/3.4.1 diff --git a/env/build_cheyenne_intel.env b/env/build_cheyenne_intel.env index e35687ceb0..3e3a1b5914 100644 --- a/env/build_cheyenne_intel.env +++ b/env/build_cheyenne_intel.env @@ -5,7 +5,7 @@ module load ncarenv/1.3 module load intel/19.1.1 module load mpt/2.22 module load ncarcompilers/0.5.0 -module load cmake/3.16.4 +module load cmake/3.18.2 module use /glade/p/ral/jntp/GMTB/tools/hpc-stack-v1.1.0/modulefiles/stack module load hpc/1.1.0 @@ -19,6 +19,7 @@ module load hdf5/1.10.6 module load netcdf/4.7.4 module load pio/2.5.2 module load esmf/8_1_1 +module load fms/2020.04.03 module load bacio/2.4.1 module load crtm/2.3.0 diff --git a/env/build_hera_intel.env b/env/build_hera_intel.env index 26ed49c446..53cdf6cf02 100644 --- a/env/build_hera_intel.env +++ b/env/build_hera_intel.env @@ -4,7 +4,7 @@ module purge module use /contrib/sutils/modulefiles module load sutils -module load cmake/3.16.1 +module load cmake/3.20.1 module use /scratch2/NCEPDEV/nwprod/hpc-stack/libs/hpc-stack/modulefiles/stack @@ -18,6 +18,7 @@ module load hdf5/1.10.6 module load netcdf/4.7.4 module load pio/2.5.2 module load esmf/8_1_1 +module load fms/2020.04.03 module load bacio/2.4.1 module load crtm/2.3.0 module load g2/3.4.3 diff --git a/env/build_jet_intel.env b/env/build_jet_intel.env index 1f2d789992..30cb99dee2 100644 --- a/env/build_jet_intel.env +++ b/env/build_jet_intel.env @@ -3,7 +3,7 @@ module purge module use /contrib/sutils/modulefiles module load sutils -module load cmake/3.16.1 +module load cmake/3.20.1 module use /lfs4/HFIP/hfv3gfs/nwprod/hpc-stack/libs/modulefiles/stack @@ -17,6 +17,7 @@ module load hdf5/1.10.6 module load netcdf/4.7.4 module load pio/2.5.2 module load esmf/8_1_1 +module load fms/2020.04.03 module load bacio/2.4.1 module load crtm/2.3.0 module load g2/3.4.1 diff --git a/env/build_orion_intel.env b/env/build_orion_intel.env index f1fc3a1b77..c230ee4ebc 100644 --- a/env/build_orion_intel.env +++ b/env/build_orion_intel.env @@ -2,7 +2,7 @@ module load contrib noaatools -module load cmake/3.17.3 +module load cmake/3.18.1 module load python/3.7.5 module use /apps/contrib/NCEP/libs/hpc-stack/modulefiles/stack @@ -18,6 +18,7 @@ module load hdf5/1.10.6 module load netcdf/4.7.4 module load pio/2.5.2 module load esmf/8_1_1 +module load fms/2020.04.03 module load bacio/2.4.1 module load crtm/2.3.0 module load g2/3.4.1 diff --git a/env/build_wcoss_cray_intel.env b/env/build_wcoss_cray_intel.env index ff7ebee408..70ec9e9890 100644 --- a/env/build_wcoss_cray_intel.env +++ b/env/build_wcoss_cray_intel.env @@ -45,7 +45,7 @@ module load wgrib2/2.0.8 module swap pmi pmi/5.0.11 ## load cmake -module load cmake/3.16.2 +module load cmake/3.20.1 export CMAKE_C_COMPILER=cc export CMAKE_CXX_COMPILER=CC export CMAKE_Fortran_COMPILER=ftn diff --git a/env/build_wcoss_dell_p3_intel.env b/env/build_wcoss_dell_p3_intel.env index 3602377a21..c48d1a387e 100644 --- a/env/build_wcoss_dell_p3_intel.env +++ b/env/build_wcoss_dell_p3_intel.env @@ -2,7 +2,7 @@ module purge -module load cmake/3.16.2 +module load cmake/3.20.0 module load HPSS/5.0.2.5 module load lsf/10.1 module load python/3.6.3 @@ -16,6 +16,7 @@ module load hpc-impi/18.0.1 module load bacio/2.4.1 module load crtm/2.3.0 module load esmf/8_1_1 +module load fms/2020.04.03 module load gfsio/1.4.1 module load g2/3.4.3 module load g2tmpl/1.10.0 From 85d2f083e5e9c95ef4710187318ad06846a41df8 Mon Sep 17 00:00:00 2001 From: gsketefian <31046882+gsketefian@users.noreply.github.com> Date: Fri, 16 Jul 2021 14:58:49 -0600 Subject: [PATCH 15/24] Update hash of regional_workflow. (#153) ## DESCRIPTION OF CHANGES: Bug fix for PR #152: `hase` -> `hash` in Externals.cfg. ## TESTS CONDUCTED: None. --- Externals.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Externals.cfg b/Externals.cfg index bba534cf21..c8c5295039 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -3,7 +3,7 @@ protocol = git repo_url = https://github.com/NOAA-EMC/regional_workflow # Specify either a branch name or a hash but not both. #branch = develop -hase = de1220b +hash = de1220b local_path = regional_workflow required = True From 42c062765545db7d78b52e5c50d8ecf29ad75c54 Mon Sep 17 00:00:00 2001 From: JulieSchramm Date: Wed, 28 Jul 2021 11:35:52 -0600 Subject: [PATCH 16/24] Replace deprecated app.add_stylesheet with app.add_css_file. (#160) --- docs/UsersGuide/source/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UsersGuide/source/conf.py b/docs/UsersGuide/source/conf.py index b6df755443..5b5b02ea4c 100644 --- a/docs/UsersGuide/source/conf.py +++ b/docs/UsersGuide/source/conf.py @@ -110,7 +110,7 @@ } def setup(app): - app.add_stylesheet('custom.css') # may also be an URL + app.add_css_file('custom.css') # may also be an URL # Custom sidebar templates, must be a dictionary that maps document names # to template names. From 5ab9a0801e716eee93e17d97649e59d4e61d0b5f Mon Sep 17 00:00:00 2001 From: Dan Date: Mon, 2 Aug 2021 10:00:39 -0600 Subject: [PATCH 17/24] Add arguments to devbuild.sh script (#155) * Add arguments to devbuild.sh script * Documented with --help * Automatically determines machine name * Automatically determines compiler based on machine name * Added options for app, ccpp suite, and components * Added option for build type DEBUG, RELEASE, RELWITHDEBINFO * Added option for build jobs, default 4 * Added verbosity option for make * Require PLATFORM in devbuild.sh script * Modify devbuild.sh options * remove --components * add --enable-options * add --disable-options --- devbuild.sh | 267 ++++++++++++++++++++++++++++++++++++--------- src/CMakeLists.txt | 50 +++++++-- 2 files changed, 255 insertions(+), 62 deletions(-) diff --git a/devbuild.sh b/devbuild.sh index 0a35409246..5547b971f3 100755 --- a/devbuild.sh +++ b/devbuild.sh @@ -1,76 +1,237 @@ #!/bin/bash -set -eu - -#cd to location of script -MYDIR=$(cd "$(dirname "$(readlink -f -n "${BASH_SOURCE[0]}" )" )" && pwd -P) +# usage instructions usage () { - echo "Usage: " - echo " $0 PLATFORM COMPILER" - echo "" - echo "PLATFORM: Name of machine you are building on" - echo "COMPILER: (optional) compiler to use; valid options are 'intel', 'gnu'" - echo "" - echo "NOTE: This script is for internal developer use only;" - echo "See User's Guide for detailed build instructions" +cat << EOF_USAGE +Usage: $0 PLATFORM [OPTIONS]... + +PLATFORM + name of machine you are building on + (e.g. cheyenne | hera | jet | orion | wcoss) + +OPTIONS + -h, --help + show this help guide + --compiler=COMPILER + compiler to use; default depends on platform + (e.g. intel | gnu | cray | gccgfortran) + --app=APPLICATION + weather model application to build + (e.g. ATM | ATMW | S2S | S2SW) + --ccpp="CCPP_SUITE1,CCPP_SUITE2..." + CCCP suites to include in build; delimited with ',' + --enable-options="OPTION1,OPTION2,..." + enable ufs-weather-model options; delimited with ',' + (e.g. 32BIT | INLINE_POST | UFS_GOCART | MOM6 | CICE6 | WW3 | CMEPS) + --disable-options="OPTION1,OPTION2,..." + disable ufs-weather-model options; delimited with ',' + (e.g. 32BIT | INLINE_POST | UFS_GOCART | MOM6 | CICE6 | WW3 | CMEPS) + --continue + continue with existing build + --clean + removes existing build; overrides --continue + --build-dir=BUILD_DIR + build directory + --install-dir=INSTALL_DIR + installation prefix + --build-type=BUILD_TYPE + build type; defaults to RELEASE + (e.g. DEBUG | RELEASE | RELWITHDEBINFO) + --build-jobs=BUILD_JOBS + number of build jobs; defaults to 4 + -v, --verbose + build with verbose output + +NOTE: This script is for internal developer use only; +See User's Guide for detailed build instructions + +EOF_USAGE } -PLATFORM="${1:-NONE}" -COMPILER="${2:-intel}" +# print settings +settings () { +cat << EOF_SETTINGS +Settings: + SRC_DIR=${SRC_DIR} + BUILD_DIR=${BUILD_DIR} + INSTALL_DIR=${INSTALL_DIR} + PLATFORM=${PLATFORM} + COMPILER=${COMPILER} + APP=${APPLICATION} + CCPP=${CCPP} + ENABLE_OPTIONS=${ENABLE_OPTIONS} + DISABLE_OPTIONS=${DISABLE_OPTIONS} + CLEAN=${CLEAN} + CONTINUE=${CONTINUE} + BUILD_TYPE=${BUILD_TYPE} + BUILD_JOBS=${BUILD_JOBS} + VERBOSE=${VERBOSE} -if [ $# -lt 1 ]; then - echo "ERROR: not enough arguments" - usage - exit 1 -fi -if [ $# -gt 2 ]; then - echo "ERROR: too many arguments" - usage +EOF_SETTINGS +} + +# print usage error and exit +usage_error () { + printf "ERROR: $1\n" >&2 + usage >&2 exit 1 -fi +} -if [ "$1" = "--help" ] || [ "$1" = "-h" ]; then +# default settings +LCL_PID=$$ +SRC_DIR=$(cd "$(dirname "$(readlink -f -n "${BASH_SOURCE[0]}" )" )" && pwd -P) +MACHINE_SETUP=${SRC_DIR}/src/UFS_UTILS/sorc/machine-setup.sh +BUILD_DIR=${SRC_DIR}/build +INSTALL_DIR=${SRC_DIR} +PLATFORM="" +COMPILER="" +APPLICATION="" +CCPP="" +ENABLE_OPTIONS="" +DISABLE_OPTIONS="" +BUILD_TYPE="RELEASE" +BUILD_JOBS=4 +CLEAN=false +CONTINUE=false +VERBOSE=false + +# process required arguments +if [[ ("$1" == "--help") || ("$1" == "-h") ]]; then usage exit 0 +elif [[ ($# -lt 1) || ("$1" == "-"*) ]]; then + usage_error "missing platform" +else + PLATFORM=$1 + shift +fi + +# process optional arguments +while :; do + case $1 in + --help|-h) usage; exit 0 ;; + --compiler=?*) COMPILER=${1#*=} ;; + --compiler|--compiler=) usage_error "$1 requires argument." ;; + --app=?*) APPLICATION=${1#*=} ;; + --app|--app=) usage_error "$1 requires argument." ;; + --ccpp=?*) CCPP=${1#*=} ;; + --ccpp|--ccpp=) usage_error "$1 requires argument." ;; + --enable-options=?*) ENABLE_OPTIONS=${1#*=} ;; + --enable-options|--enable-options=) usage_error "$1 requires argument." ;; + --disable-options=?*) DISABLE_OPTIONS=${1#*=} ;; + --disable-options|--disable-options=) usage_error "$1 requires argument." ;; + --clean) CLEAN=true ;; + --clean=?*|--clean=) usage_error "$1 argument ignored." ;; + --continue) CONTINUE=true ;; + --continue=?*|--continue=) usage_error "$1 argument ignored." ;; + --build-dir=?*) BUILD_DIR=${1#*=} ;; + --build-dir|--build-dir=) usage_error "$1 requires argument." ;; + --install-dir=?*) INSTALL_DIR=${1#*=} ;; + --install-dir|--install-dir=) usage_error "$1 requires argument." ;; + --build-type=?*) BUILD_TYPE=${1#*=} ;; + --build-type|--build-type=) usage_error "$1 requires argument." ;; + --build-jobs=?*) BUILD_JOBS=$((${1#*=})) ;; + --build-jobs|--build-jobs=) usage_error "$1 requires argument." ;; + --verbose|-v) VERBOSE=true ;; + --verbose=?*|--verbose=) usage_error "$1 argument ignored." ;; + -?*|?*) usage_error "Unknown option $1" ;; + *) break + esac + shift +done + +set -eu + +# automatically determine compiler +if [ -z "${COMPILER}" ] ; then + case ${PLATFORM} in + jet|hera) COMPILER=intel ;; + orion) COMPILER=intel ;; + wcoss) COMPILER=cray_intel ;; + cheyenne) COMPILER=intel ;; + macos) COMPILER=gccgfortran ;; + *) printf "ERROR: Unknown platform ${PLATFORM}\n" >&2; usage >&2; exit 1 ;; + esac +fi + +# print settings +if [ "${VERBOSE}" = true ] ; then + settings fi -ENV_FILE="env/build_${PLATFORM}_${COMPILER}.env" -if [ ! -f "$ENV_FILE" ]; then - echo "ERROR: environment file ($ENV_FILE) does not exist for this platform/compiler combination" - echo "PLATFORM=$PLATFORM" - echo "COMPILER=$COMPILER" - echo "" - echo "See User's Guide for detailed build instructions" +# set ENV_FILE for this platform/compiler combination +ENV_FILE="${SRC_DIR}/env/build_${PLATFORM}_${COMPILER}.env" +if [ ! -f "${ENV_FILE}" ]; then + printf "ERROR: environment file does not exist for platform/compiler\n" >&2 + printf " ENV_FILE=${ENV_FILE}\n" >&2 + printf " PLATFORM=${PLATFORM}\n" >&2 + printf " COMPILER=${COMPILER}\n\n" >&2 + usage >&2 exit 64 fi -# If build directory already exists, offer a choice -BUILD_DIR=${MYDIR}/build - -if [ -d "${BUILD_DIR}" ]; then - while true; do - echo "Build directory (${BUILD_DIR}) already exists! Please choose what to do:" - echo "" - echo "[R]emove the existing directory" - echo "[C]ontinue building in the existing directory" - echo "[Q]uit this build script" - read -p "Choose an option (R/C/Q):" choice - case $choice in - [Rr]* ) rm -rf ${BUILD_DIR}; break;; - [Cc]* ) break;; - [Qq]* ) exit;; - * ) echo "Invalid option selected.\n";; - esac - done +# if build directory already exists then exit +if [ "${CLEAN}" = true ]; then + printf "Remove build directory\n" + printf " BUILD_DIR=${BUILD_DIR}\n\n" + rm -rf ${BUILD_DIR} +elif [ "${CONTINUE}" = true ]; then + printf "Continue build in directory\n" + printf " BUILD_DIR=${BUILD_DIR}\n\n" +else + if [ -d "${BUILD_DIR}" ]; then + while true; do + if [[ $(ps -o stat= -p ${LCL_PID}) != *"+"* ]] ; then + printf "ERROR: Build directory already exists\n" >&2 + printf " BUILD_DIR=${BUILD_DIR}\n\n" >&2 + usage >&2 + exit 64 + fi + # interactive selection + printf "Build directory (${BUILD_DIR}) already exists\n" + printf "Please choose what to do:\n\n" + printf "[R]emove the existing directory\n" + printf "[C]ontinue building in the existing directory\n" + printf "[Q]uit this build script\n" + read -p "Choose an option (R/C/Q):" choice + case ${choice} in + [Rr]* ) rm -rf ${BUILD_DIR}; break ;; + [Cc]* ) break ;; + [Qq]* ) exit ;; + * ) printf "Invalid option selected.\n" ;; + esac + done + fi fi -# Source the README file for this platform/compiler combination, then build the code -. $ENV_FILE +# cmake settings +CMAKE_SETTINGS="-DCMAKE_INSTALL_PREFIX=${INSTALL_DIR}" +CMAKE_SETTINGS="${CMAKE_SETTINGS} -DCMAKE_BUILD_TYPE=${BUILD_TYPE}" +if [ ! -z "${APPLICATION}" ]; then + CMAKE_SETTINGS="${CMAKE_SETTINGS} -DAPP=${APPLICATION}" +fi +if [ ! -z "${CCPP}" ]; then + CMAKE_SETTINGS="${CMAKE_SETTINGS} -DCCPP=${CCPP}" +fi +if [ ! -z "${ENABLE_OPTIONS}" ]; then + CMAKE_SETTINGS="${CMAKE_SETTINGS} -DENABLE_OPTIONS=${ENABLE_OPTIONS}" +fi +if [ ! -z "${DISABLE_OPTIONS}" ]; then + CMAKE_SETTINGS="${CMAKE_SETTINGS} -DDISABLE_OPTIONS=${DISABLE_OPTIONS}" +fi + +# make settings +MAKE_SETTINGS="-j ${BUILD_JOBS}" +if [ "${VERBOSE}" = true ]; then + MAKE_SETTINGS="${MAKE_SETTINGS} VERBOSE=1" +fi +# source the README file for this platform/compiler combination, then build the code +. ${ENV_FILE} mkdir -p ${BUILD_DIR} cd ${BUILD_DIR} -cmake .. -DCMAKE_INSTALL_PREFIX=.. 2>&1 | tee log.cmake -make -j ${BUILD_JOBS:-4} 2>&1 | tee log.make +cmake ${SRC_DIR} ${CMAKE_SETTINGS} 2>&1 | tee log.cmake +make ${MAKE_SETTINGS} 2>&1 | tee log.make exit 0 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d0384584b6..1adffe5eed 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -11,19 +11,51 @@ if(NOT CCPP_SUITES) set(CCPP_SUITES "FV3_CPT_v0,FV3_GFS_2017_gfdlmp,FV3_GFS_2017_gfdlmp_regional,FV3_GSD_SAR,FV3_GSD_v0,FV3_GFS_v15p2,FV3_GFS_v16,FV3_RRFS_v1beta,FV3_HRRR,FV3_RRFS_v1alpha") endif() +if(NOT APP) + set(APP "ATM") +endif() + +if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE "RELEASE") +endif() + +list(APPEND UFS_WEATHER_MODEL_ARGS + "-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}" + "-DCCPP_SUITES=${CCPP_SUITES}" + "-DCMAKE_C_COMPILER=${MPI_C_COMPILER}" + "-DCMAKE_CXX_COMPILER=${MPI_CXX_COMPILER}" + "-DCMAKE_Fortran_COMPILER=${MPI_Fortran_COMPILER}" + "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}" + "-DNETCDF_DIR=$ENV{NETCDF}" + "-D32BIT=ON" + "-DINLINE_POST=ON" + "-DAPP=${APP}" +) + +string(TOUPPER "${CMAKE_BUILD_TYPE}" TOUPPER_CMAKE_BUILD_TYPE) +if (TOUPPER_CMAKE_BUILD_TYPE MATCHES "DEBUG") + list(APPEND UFS_WEATHER_MODEL_ARGS "-DDEBUG=ON") +endif() + +if (ENABLE_OPTIONS) + string(REPLACE "," ";" ENABLE_OPTIONS "${ENABLE_OPTIONS}") + foreach (option_on IN ITEMS ${ENABLE_OPTIONS}) + list(APPEND UFS_WEATHER_MODEL_ARGS "-D${option_on}=ON") + endforeach() +endif() + +if (DISABLE_OPTIONS) + string(REPLACE "," ";" DISABLE_OPTIONS "${DISABLE_OPTIONS}") + foreach (option_off IN ITEMS ${DISABLE_OPTIONS}) + list(APPEND UFS_WEATHER_MODEL_ARGS "-D${option_off}=OFF") + endforeach() +endif() + ExternalProject_Add(ufs-weather-model PREFIX ${CMAKE_CURRENT_BINARY_DIR}/ufs-weather-model SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ufs-weather-model INSTALL_DIR ${CMAKE_INSTALL_PREFIX} - CMAKE_ARGS "-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}" - "-DCCPP_SUITES=${CCPP_SUITES}" - "-DCMAKE_C_COMPILER=${MPI_C_COMPILER}" - "-DCMAKE_CXX_COMPILER=${MPI_CXX_COMPILER}" - "-DCMAKE_Fortran_COMPILER=${MPI_Fortran_COMPILER}" - "-DNETCDF_DIR=$ENV{NETCDF}" - "-D32BIT=ON" - "-DINLINE_POST=ON" - "-DAPP=ATM" + CMAKE_ARGS ${UFS_WEATHER_MODEL_ARGS} INSTALL_COMMAND mkdir -p ${CMAKE_INSTALL_PREFIX}/bin && cp ${CMAKE_CURRENT_BINARY_DIR}/ufs-weather-model/src/ufs-weather-model-build/ufs_model ${CMAKE_INSTALL_PREFIX}/bin/ ) From 3e50d4ebb32159dc7f3b812036fe63bb2ff86b60 Mon Sep 17 00:00:00 2001 From: "Chan-Hoo.Jeon-NOAA" <60152248+chan-hoo@users.noreply.github.com> Date: Wed, 4 Aug 2021 15:39:07 -0400 Subject: [PATCH 18/24] update cmake on wcoss (#159) --- env/build_wcoss_cray_intel.env | 4 ++-- env/build_wcoss_dell_p3_intel.env | 9 ++++----- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/env/build_wcoss_cray_intel.env b/env/build_wcoss_cray_intel.env index 70ec9e9890..43ed9d6776 100644 --- a/env/build_wcoss_cray_intel.env +++ b/env/build_wcoss_cray_intel.env @@ -44,8 +44,8 @@ module load wgrib2/2.0.8 module swap pmi pmi/5.0.11 -## load cmake -module load cmake/3.20.1 +module load cmake/3.20.2 + export CMAKE_C_COMPILER=cc export CMAKE_CXX_COMPILER=CC export CMAKE_Fortran_COMPILER=ftn diff --git a/env/build_wcoss_dell_p3_intel.env b/env/build_wcoss_dell_p3_intel.env index c48d1a387e..bfa4ce6f06 100644 --- a/env/build_wcoss_dell_p3_intel.env +++ b/env/build_wcoss_dell_p3_intel.env @@ -2,11 +2,6 @@ module purge -module load cmake/3.20.0 -module load HPSS/5.0.2.5 -module load lsf/10.1 -module load python/3.6.3 - ### hpc-stack ### module use /usrx/local/nceplibs/dev/hpc-stack/libs/hpc-stack/modulefiles/stack module load hpc/1.1.0 @@ -37,6 +32,10 @@ module load w3nco/2.4.1 module load wgrib2/2.0.8 module load zlib/1.2.11 +module load cmake/3.20.0 +module load HPSS/5.0.2.5 +module load lsf/10.1 +module load python/3.6.3 export CMAKE_C_COMPILER=mpiicc export CMAKE_CXX_COMPILER=mpiicpc From 8c2e016b6f0307fc0c7fbd913316324e9d329600 Mon Sep 17 00:00:00 2001 From: JulieSchramm Date: Wed, 11 Aug 2021 11:48:42 -0600 Subject: [PATCH 19/24] Feature/add build test (#156) * Add test/build.sh to build all executables for supported compilers on platforms Cheyenne, Hera and Jet. Add test/README.md file for usage. All builds succeed on Cheyenne. * Address Gerard's and Christina's comments: - Remove -l from top of script - Use ${BIN_DIR} for cmake command - Use $() for easier debugging * Use the devbuild.sh script for the build tests. * Fix typo Remove irrelevent comment block --- test/README.md | 39 ++++++++++++++ test/build.sh | 134 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 173 insertions(+) create mode 100644 test/README.md create mode 100755 test/build.sh diff --git a/test/README.md b/test/README.md new file mode 100644 index 0000000000..00aa478c83 --- /dev/null +++ b/test/README.md @@ -0,0 +1,39 @@ +# Build test for the UFS Short-Range Weather App + +## Description + +This script builds the executables for the UFS Short-Range Weather Application (SRW App) +for the current code in the users ufs-srweather-app directory. It consists of the following steps: + +* Build all of the executables for the supported compilers on the given machine + +* Check for the existence of all executables + +* Print out a PASS/FAIL message + +Currently, the following configurations are supported: + +Machine | Cheyenne | Hera | Jet | +------------| ---------------|----------------|----------------| +Compiler(s) | Intel, GNU | Intel | Intel | + +The CMake build is done in the ``build_${compiler}`` directory. +The executables for each build are installed under the ``bin_${compiler}`` directory. + +NOTE: To run the regional workflow using these executables, the ``EXECDIR`` variable in the +``${SR_WX_APP_TOP_DIR}/regional_workflow/ush/setup.sh`` file must be set to the +appropiate directory, for example: ``EXECDIR="${SR_WX_APP_TOP_DIR}/bin_intel/bin"``, +where ``${SR_WX_APP_TOP_DIR}`` is the top-level directory of the cloned ufs-srweather-app repository. + +## Usage + +To run the tests, specify the machine name on the command line, for example: + +On cheyenne: + +``` +cd test +./build.sh cheyenne >& build.out & +``` + +Check the ``${SR_WX_APP_TOP_DIR}/test/build_test$PID.out`` file for PASS/FAIL. diff --git a/test/build.sh b/test/build.sh new file mode 100755 index 0000000000..72c6a258ac --- /dev/null +++ b/test/build.sh @@ -0,0 +1,134 @@ +#!/bin/bash +#======================================================================= +# Description: This script runs a build test for the +# UFS Short-Range Weather App. The executables +# built are listed below in $executables_created. +# A pass/fail message is printed at the end of the output. +# +# Necessary input parameters: machine name (jet hera or cheyenne) +# +# Usage: see function usage below +# +# Examples: ./build.sh $machine >& test.out & +# +set -eux # Uncomment for debugging +#======================================================================= + +fail() { echo -e "\n$1\n" >> ${TEST_OUTPUT} && exit 1; } + +function usage() { + echo + echo "Usage: $0 machine | -h" + echo + echo " machine [required] is one of: ${machines[@]}" + echo " -h display this help" + echo + exit 1 +} + +machines=( hera jet cheyenne ) + +[[ $# -eq 0 ]] && usage +if [ "$1" = "-h" ] ; then usage ; fi + +export machine=${1} +machine=$(echo "${machine}" | tr '[A-Z]' '[a-z]') # scripts in sorc need lower case machine name + +#----------------------------------------------------------------------- +# Check that machine is valid +#----------------------------------------------------------------------- +if [[ "${machines[@]}" =~ "$machine" ]]; then + echo "machine ${machine} is valid" +else + echo "ERROR: machine ${machine} is NOT valid" + exit 1 +fi + +#----------------------------------------------------------------------- +# Set compilers to be tested depending on machine +#----------------------------------------------------------------------- +if [ "${machine}" == "cheyenne" ] ; then + compilers=( intel gnu ) +else + compilers=( intel ) +fi + +#----------------------------------------------------------------------- +# Set some directories +#----------------------------------------------------------------------- +PID=$$ +TEST_DIR=$( pwd ) # Directory with this script +TOP_DIR=${TEST_DIR}/.. # Top level (umbrella repo) directory +TEST_OUTPUT=${TEST_DIR}/build_test${PID}.out + +build_it=0 # Set to 1 to skip build (for testing pass/fail criteria) +#----------------------------------------------------------------------- +# Create the output file if it doesn't exist +#----------------------------------------------------------------------- +if [ ! -f "$TEST_OUTPUT" ]; then + touch ${TEST_OUTPUT} +fi + +cd ${TOP_DIR} + +ENV_DIR=${TOP_DIR}/env +#----------------------------------------------------------------------- +# Array of all executables built +#----------------------------------------------------------------------- +declare -a executables_created=( chgres_cube \ + emcsfc_ice_blend \ + emcsfc_snow2mdl \ + filter_topo \ + fregrid \ + fvcom_to_FV3 \ + global_cycle \ + global_equiv_resol \ + make_hgrid \ + make_solo_mosaic \ + ncep_post \ + orog \ + orog_gsl \ + regional_esg_grid \ + sfc_climo_gen \ + shave \ + ufs_model \ + vcoord_gen ) + +#----------------------------------------------------------------------- +# Set up the build environment and run the build script. +#----------------------------------------------------------------------- + for compiler in "${compilers[@]}"; do + BUILD_DIR=${TOP_DIR}/build_${compiler} + BIN_DIR=${TOP_DIR}/bin_${compiler} + EXEC_DIR=${BIN_DIR}/bin + if [ $build_it -eq 0 ] ; then + ./devbuild.sh ${machine} --compiler=${compiler} --build-dir=${BUILD_DIR} --install-dir=${BIN_DIR} \ + --clean || fail "Build ${machine} ${compiler} FAILED" + fi # End of skip build for testing + + #----------------------------------------------------------------------- + # check for existence of executables. + #----------------------------------------------------------------------- + n_fail=0 + for file in "${executables_created[@]}" ; do + exec_file=${EXEC_DIR}/${file} + if [ -f ${exec_file} ]; then + echo "SUCCEED: ${compiler} executable file ${exec_file} exists" >> ${TEST_OUTPUT} + else + echo "FAIL: ${compiler} executable file ${exec_file} does NOT exist" >> ${TEST_OUTPUT} + let "n_fail=n_fail+1" + fi + done +done # End compiler loop +#----------------------------------------------------------------------- +# Set message for output +#----------------------------------------------------------------------- +msg="????" +if [[ $n_fail -gt 0 ]] ; then + echo "BUILD(S) FAILED" >> ${TEST_OUTPUT} + msg="FAIL" +else + echo "ALL BUILDS SUCCEEDED" >> ${TEST_OUTPUT} + msg="PASS" +fi +echo "$msg" >> ${TEST_OUTPUT} From 35e127788a704df9ffe1863e0c21deec34296087 Mon Sep 17 00:00:00 2001 From: JulieSchramm Date: Mon, 23 Aug 2021 08:49:10 -0600 Subject: [PATCH 20/24] Fix typo. (#165) --- docs/UsersGuide/source/ConfigWorkflow.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/UsersGuide/source/ConfigWorkflow.rst b/docs/UsersGuide/source/ConfigWorkflow.rst index 9c85d7be1d..36f06dbe68 100644 --- a/docs/UsersGuide/source/ConfigWorkflow.rst +++ b/docs/UsersGuide/source/ConfigWorkflow.rst @@ -188,8 +188,8 @@ 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``). -Foreast Parameters -================== +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-day. From 8db444d8e2f4b1aca896cd6db5c0fd657d13c610 Mon Sep 17 00:00:00 2001 From: Michael Kavulich Date: Tue, 31 Aug 2021 11:22:34 -0600 Subject: [PATCH 21/24] Update post and regional_workflow hashes, QOL improvements (#167) * Update EMC_post hash to top of develop; way overdue! * Use BUILD_ALWAYS flags in CMakeLists.txt so that code changes result in a rebuild * Load rocoto in wflow_hera.env, since it may have been unloaded at the build step * Point to required regional_workflow branch for testing; will update to proper hash once PR is merged * Point to latest regional_workflow hash --- Externals.cfg | 4 ++-- env/wflow_hera.env | 2 ++ src/CMakeLists.txt | 3 +++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Externals.cfg b/Externals.cfg index c8c5295039..d6473ea4c3 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -3,7 +3,7 @@ protocol = git repo_url = https://github.com/NOAA-EMC/regional_workflow # Specify either a branch name or a hash but not both. #branch = develop -hash = de1220b +hash = efa026f local_path = regional_workflow required = True @@ -30,7 +30,7 @@ protocol = git repo_url = https://github.com/NOAA-EMC/EMC_post # Specify either a branch name or a hash but not both. #branch = develop -hash = 9fa1e088 +hash = a49af05 local_path = src/EMC_post required = True diff --git a/env/wflow_hera.env b/env/wflow_hera.env index 5699c9c696..f526c434f5 100644 --- a/env/wflow_hera.env +++ b/env/wflow_hera.env @@ -1,5 +1,7 @@ # Python environment for workflow on Hera +module load rocoto + module use -a /contrib/miniconda3/modulefiles module load miniconda3 conda activate regional_workflow diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1adffe5eed..84ed6499fa 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -5,6 +5,7 @@ ExternalProject_Add(UFS_UTILS SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/UFS_UTILS INSTALL_DIR ${CMAKE_INSTALL_PREFIX} CMAKE_ARGS "-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}" + BUILD_ALWAYS TRUE ) if(NOT CCPP_SUITES) @@ -57,6 +58,7 @@ ExternalProject_Add(ufs-weather-model INSTALL_DIR ${CMAKE_INSTALL_PREFIX} CMAKE_ARGS ${UFS_WEATHER_MODEL_ARGS} INSTALL_COMMAND mkdir -p ${CMAKE_INSTALL_PREFIX}/bin && cp ${CMAKE_CURRENT_BINARY_DIR}/ufs-weather-model/src/ufs-weather-model-build/ufs_model ${CMAKE_INSTALL_PREFIX}/bin/ + BUILD_ALWAYS TRUE ) ExternalProject_Add(EMC_post @@ -64,4 +66,5 @@ ExternalProject_Add(EMC_post SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/EMC_post INSTALL_DIR ${CMAKE_INSTALL_PREFIX} CMAKE_ARGS "-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}" + BUILD_ALWAYS TRUE ) From 7c0c8c3b5fe55948d40b5bfb8c366e5c8f0afcb7 Mon Sep 17 00:00:00 2001 From: Christina Holt <56881914+christinaholtNOAA@users.noreply.github.com> Date: Wed, 1 Sep 2021 08:55:05 -0600 Subject: [PATCH 22/24] Update the name of EMC Post exec in build test. (#168) --- test/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/build.sh b/test/build.sh index 72c6a258ac..2bce9bfff9 100755 --- a/test/build.sh +++ b/test/build.sh @@ -85,7 +85,7 @@ declare -a executables_created=( chgres_cube \ global_equiv_resol \ make_hgrid \ make_solo_mosaic \ - ncep_post \ + upp.x \ orog \ orog_gsl \ regional_esg_grid \ From e55c497ebd8d20da359c0232c5dfe642165790a3 Mon Sep 17 00:00:00 2001 From: "Chan-Hoo.Jeon-NOAA" <60152248+chan-hoo@users.noreply.github.com> Date: Tue, 7 Sep 2021 11:18:55 -0400 Subject: [PATCH 23/24] Change EMC_post to UPP (#171) --- Externals.cfg | 6 +++--- src/CMakeLists.txt | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Externals.cfg b/Externals.cfg index d6473ea4c3..c9b02f4157 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -25,13 +25,13 @@ hash = 3b8bb78 local_path = src/ufs-weather-model required = True -[EMC_post] +[UPP] protocol = git -repo_url = https://github.com/NOAA-EMC/EMC_post +repo_url = https://github.com/NOAA-EMC/UPP # Specify either a branch name or a hash but not both. #branch = develop hash = a49af05 -local_path = src/EMC_post +local_path = src/UPP required = True [externals_description] diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 84ed6499fa..30e9c7b518 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -61,9 +61,9 @@ ExternalProject_Add(ufs-weather-model BUILD_ALWAYS TRUE ) -ExternalProject_Add(EMC_post - PREFIX ${CMAKE_CURRENT_BINARY_DIR}/EMC_post - SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/EMC_post +ExternalProject_Add(UPP + PREFIX ${CMAKE_CURRENT_BINARY_DIR}/UPP + SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/UPP INSTALL_DIR ${CMAKE_INSTALL_PREFIX} CMAKE_ARGS "-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}" BUILD_ALWAYS TRUE From e8d007ff5f499977e7a667f6962f7944bb698bff Mon Sep 17 00:00:00 2001 From: "samuel.trahan" Date: Fri, 15 Sep 2023 20:14:01 +0000 Subject: [PATCH 24/24] update regional workflow and UPP to reduce number of ifi fields --- Externals.cfg | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Externals.cfg b/Externals.cfg index c9b02f4157..8c0f1983ae 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -1,9 +1,9 @@ [regional_workflow] protocol = git -repo_url = https://github.com/NOAA-EMC/regional_workflow +repo_url = https://github.com/SamuelTrahanNOAA/regional_workflow # Specify either a branch name or a hash but not both. -#branch = develop -hash = efa026f +branch = fewer-ifi-fields +#hash = 848c2b17 local_path = regional_workflow required = True @@ -30,7 +30,7 @@ protocol = git repo_url = https://github.com/NOAA-EMC/UPP # Specify either a branch name or a hash but not both. #branch = develop -hash = a49af05 +hash = ec3ca4c local_path = src/UPP required = True