From ff24b5f5f8e03a8fd6571e6efcbe57613b4efa4a Mon Sep 17 00:00:00 2001 From: gspetro Date: Thu, 3 Nov 2022 10:20:02 -0400 Subject: [PATCH 01/63] update some links/version references; add list of v2.1.0 features --- docs/UsersGuide/source/BuildSRW.rst | 4 +-- docs/UsersGuide/source/Components.rst | 30 +++++++++++------ docs/UsersGuide/source/ConfigWorkflow.rst | 4 +++ .../UsersGuide/source/ContainerQuickstart.rst | 25 +++++++++++--- docs/UsersGuide/source/Introduction.rst | 33 ++++++++++++++----- docs/UsersGuide/source/Quickstart.rst | 2 +- docs/UsersGuide/source/RunSRW.rst | 28 ++++++++-------- 7 files changed, 87 insertions(+), 39 deletions(-) diff --git a/docs/UsersGuide/source/BuildSRW.rst b/docs/UsersGuide/source/BuildSRW.rst index 85790b482c..be35cd80f1 100644 --- a/docs/UsersGuide/source/BuildSRW.rst +++ b/docs/UsersGuide/source/BuildSRW.rst @@ -63,11 +63,11 @@ After completing installation, continue to the next section (:numref:`Section %s Download the UFS SRW Application Code ====================================== -The SRW Application source code is publicly available on GitHub. To download the SRW App code, clone the ``develop`` branch of the repository: +The SRW Application source code is publicly available on GitHub. To download the SRW App code, clone the ``release/public-v2.1.0`` branch of the repository: .. code-block:: console - git clone -b develop https://github.com/ufs-community/ufs-srweather-app.git + git clone -b release/public-v2.1.0 https://github.com/ufs-community/ufs-srweather-app.git The cloned repository contains the configuration files and sub-directories shown in :numref:`Table %s `. The user may set an ``$SRW`` environment variable to point to the location of the new ``ufs-srweather-app`` repository. For example, if ``ufs-srweather-app`` was cloned into the ``$HOME`` directory, the following commands will set an ``$SRW`` environment variable in a bash or csh shell, respectively: diff --git a/docs/UsersGuide/source/Components.rst b/docs/UsersGuide/source/Components.rst index b187db6680..2c57fec9de 100644 --- a/docs/UsersGuide/source/Components.rst +++ b/docs/UsersGuide/source/Components.rst @@ -8,18 +8,18 @@ The SRW Application assembles a variety of components, including: * Pre-processor Utilities & Initial Conditions * UFS Weather Forecast Model -* Unified Post-Processor +* Unified Post Processor * Visualization Examples * Build System and Workflow -These components are documented within this User's Guide and supported through a `community forum `_. +These components are documented within this User's Guide and supported through the `GitHub Discussions `__ forum. .. _Utils: Pre-processor Utilities and Initial Conditions ============================================== -The SRW Application includes a number of pre-processing utilities that initialize and prepare the model. Since the SRW App provides forecast predictions over a limited area (rather than globally), it is necessary to first generate a regional grid (``regional_esg_grid/make_hgrid``) along with :term:`orography` (``orog``) and surface climatology (``sfc_climo_gen``) files on that grid. Grids include a strip, or "halo," of six cells that surround the regional grid and feed in lateral boundary condition data. Since different grid and orography files require different numbers of :term:`halo` cells, additional utilities handle topography filtering and shave the number of halo points (based on downstream workflow component requirements). The pre-processing software :term:`chgres_cube` is used to convert the raw external model data into initial and lateral boundary condition files in :term:`netCDF` format. These are needed as input to the :term:`FV3`-:term:`LAM`. Additional information about the UFS pre-processor utilities can be found in the `UFS_UTILS Technical Documentation `__ and in the `UFS_UTILS Scientific Documentation `__. +The SRW Application includes a number of pre-processing utilities that initialize and prepare the model. Since the SRW App provides forecast predictions over a limited area (rather than globally), it is necessary to first generate a regional grid (``regional_esg_grid/make_hgrid``) along with :term:`orography` (``orog``) and surface climatology (``sfc_climo_gen``) files on that grid. Grids include a strip, or "halo," of six cells that surround the regional grid and feed in lateral boundary condition data. Since different grid and orography files require different numbers of :term:`halo` cells, additional utilities handle topography filtering and shave the number of halo points (based on downstream workflow component requirements). The pre-processing software :term:`chgres_cube` is used to convert the raw external model data into initial and lateral boundary condition files in :term:`netCDF` format. These are needed as input to the :term:`FV3`-:term:`LAM`. Additional information about the UFS pre-processor utilities can be found in the `UFS_UTILS Technical Documentation `__ and in the `UFS_UTILS Scientific Documentation `__. The SRW Application can be initialized from a range of operational initial condition files. It is possible to initialize the model from the Global Forecast System (:term:`GFS`), North American Mesoscale (:term:`NAM`) Forecast System, Rapid Refresh (:term:`RAP`), and High-Resolution Rapid Refresh (:term:`HRRR`) files in Gridded Binary v2 (:term:`GRIB2`) format. GFS files also come in :term:`NEMSIO` format for past dates. @@ -33,9 +33,13 @@ 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 (:term:`LAM`) capability :cite:`BlackEtAl2021`. The :term:`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 `__. +.. COMMENT: Update link! + Supported model resolutions in this release include 3-, 13-, and 25-km predefined contiguous U.S. (:term:`CONUS`) domains, each with 127 vertical levels. Preliminary tools for users to define their own domain are also available in the release with full, formal support of these tools to be provided in future releases. The Extended Schmidt Gnomonic (ESG) grid is used with the FV3-LAM, which features relatively uniform grid cells across the entirety of the domain. Additional information about the FV3 dynamical core can be found in the `scientific documentation `__, the `technical documentation `__, and on the `NOAA Geophysical Fluid Dynamics Laboratory website `__. -Interoperable atmospheric physics, along with various land surface model options, are supported through the Common Community Physics Package (CCPP), described `here `__. Atmospheric physics are a set of numerical methods describing small-scale processes such as clouds, turbulence, radiation, and their interactions. There will be four physics suites supported for the SRW App v2.0.0 release. The first is the FV3_RRFS_v1beta physics suite, which is being tested for use in the future operational implementation of the Rapid Refresh Forecast System (RRFS) planned for 2023-2024, and the second is an updated version of the physics suite used in the operational Global Forecast System (GFS) v16. Additionally, FV3_WoFS_v0 and FV3_HRRR will be supported. A scientific description of the CCPP parameterizations and suites can be found in the `CCPP Scientific Documentation `__, and CCPP technical aspects are described in the `CCPP Technical Documentation `__. The model namelist has many settings beyond the physics options that can optimize various aspects of the model for use with each of the supported suites. Additional information on Stochastic Physics options is available `here `__. +Interoperable atmospheric physics, along with various land surface model options, are supported through the Common Community Physics Package (CCPP), described `here `__. Atmospheric physics are a set of numerical methods describing small-scale processes such as clouds, turbulence, radiation, and their interactions. There will be four physics suites supported for the SRW App v2.0.0 release. The first is the FV3_RRFS_v1beta physics suite, which is being tested for use in the future operational implementation of the Rapid Refresh Forecast System (RRFS) planned for 2023-2024, and the second is an updated version of the physics suite used in the operational Global Forecast System (GFS) v16. Additionally, FV3_WoFS_v0 and FV3_HRRR will be supported. A scientific description of the CCPP parameterizations and suites can be found in the `CCPP Scientific Documentation `__, and CCPP technical aspects are described in the `CCPP Technical Documentation `__. The model namelist has many settings beyond the physics options that can optimize various aspects of the model for use with each of the supported suites. Additional information on Stochastic Physics options is available `here `__. + +.. COMMENT: Update Stochastic Physics link! Check tech doc functionality. .. note:: SPP is currently only available for specific physics schemes used in the RAP/HRRR physics suite. Users need to be aware of which physics suite definition file (:term:`SDF`) is chosen when turning this option on. Among the supported physics suites, the full set of parameterizations can only be used with the ``FV3_HRRR`` option for ``CCPP_PHYS_SUITE``. @@ -45,7 +49,7 @@ The SRW App supports the use of both :term:`GRIB2` and :term:`NEMSIO` input data 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 :term:`GRIB2` format on standard isobaric vertical coordinates. The UPP can also be used to compute a variety of useful diagnostic fields, as described in the `UPP User's Guide `__. +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 :term:`GRIB2` format on standard isobaric vertical coordinates. The 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 in further downstream post-processing (e.g., statistical post-processing techniques). @@ -57,9 +61,17 @@ METplus Verification Suite The enhanced Model Evaluation Tools (`METplus `__) verification system has been integrated into the SRW App to facilitate forecast evaluation. METplus is a verification framework that spans a wide range of temporal scales (warn-on-forecast to climate) and spatial scales (storm to global). It is supported by the `Developmental Testbed Center (DTC) `__. -METplus *installation* is not included as part of the build process for the most recent release of the SRW App. However, METplus is preinstalled on many `Level 1 & 2 `__ systems; existing builds can be viewed `here `__. METplus can be installed on other systems individually or as part of :term:`HPC-Stack` installation. Users on systems without a previous installation of METplus can follow the `MET Installation Guide `__ and `METplus Installation Guide `__ for individual installation. Currently, METplus *installation* is not a supported feature for this release of the SRW App. However, METplus *use* is supported on systems with a functioning METplus installation. +METplus *installation* is not included as part of the build process for the most recent release of the SRW App. However, METplus is preinstalled on many `Level 1 & 2 `__ systems; existing builds can be viewed `here `__. + +.. COMMENT: Check METplus links! + +METplus can be installed on other systems individually or as part of :term:`HPC-Stack` installation. Users on systems without a previous installation of METplus can follow the `MET Installation Guide `__ and `METplus Installation Guide `__ for individual installation. Currently, METplus *installation* is not a supported feature for this release of the SRW App. However, METplus *use* is supported on systems with a functioning METplus installation. + +.. COMMENT: Check METplus links! + +The core components of the METplus framework include the statistical driver, MET, the associated database and display systems known as METviewer and METexpress, and a suite of Python wrappers to provide low-level automation and examples, also called use-cases. MET is a set of verification tools developed for use by the :term:`NWP` community. It matches up grids with either gridded analyses or point observations and applies configurable methods to compute statistics and diagnostics. Extensive documentation is available in the `METplus User's Guide `__ and `MET User's Guide `__. Documentation for all other components of the framework can be found at the Documentation link for each component on the METplus `downloads `__ page. -The core components of the METplus framework include the statistical driver, MET, the associated database and display systems known as METviewer and METexpress, and a suite of Python wrappers to provide low-level automation and examples, also called use-cases. MET is a set of verification tools developed for use by the :term:`NWP` community. It matches up grids with either gridded analyses or point observations and applies configurable methods to compute statistics and diagnostics. Extensive documentation is available in the `METplus User’s Guide `__ and `MET User’s Guide `__. Documentation for all other components of the framework can be found at the Documentation link for each component on the METplus `downloads `__ page. +.. COMMENT: Check METplus doc links! Among other techniques, MET provides the capability to compute standard verification scores for comparing deterministic gridded model data to point-based and gridded observations. It also provides ensemble and probabilistic verification methods for comparing gridded model data to point-based or gridded observations. Verification tasks to accomplish these comparisons are defined in the SRW App in :numref:`Table %s `. Currently, the SRW App supports the use of :term:`NDAS` observation files in `prepBUFR format `__ (which include conventional point-based surface and upper-air data) for point-based verification. It also supports gridded Climatology-Calibrated Precipitation Analysis (:term:`CCPA`) data for accumulated precipitation evaluation and Multi-Radar/Multi-Sensor (:term:`MRMS`) gridded analysis data for composite reflectivity and :term:`echo top` verification. @@ -84,9 +96,7 @@ An umbrella CMake-based build system is used for building the components necessa Once built, the provided experiment generator script can be used to create a Rocoto-based workflow file that will run each task in the system in the proper sequence (see :numref:`Chapter %s ` or the `Rocoto documentation `_ for more information on Rocoto). If Rocoto and/or a batch system is not present on the available platform, the individual components can be run in a stand-alone, command line fashion with provided run scripts. The generated namelist for the atmospheric model can be modified in order to vary settings such as forecast starting and ending dates, forecast length hours, the :term:`CCPP` physics suite, integration time step, history file output frequency, and more. It also allows for configuration of other elements of the workflow; for example, users can choose whether to run some or all of the pre-processing, forecast model, and post-processing steps. -The latest 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; the National Center for Atmospheric Research (:term:`NCAR`) Cheyenne system; the National Severe Storms Laboratory (NSSL) 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. +The latest 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; the National Center for Atmospheric Research (:term:`NCAR`) Cheyenne system; the National Severe Storms Laboratory (NSSL) 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. On pre-configured (Level 1) computational platforms, 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. diff --git a/docs/UsersGuide/source/ConfigWorkflow.rst b/docs/UsersGuide/source/ConfigWorkflow.rst index eb0407e954..c85e1c085d 100644 --- a/docs/UsersGuide/source/ConfigWorkflow.rst +++ b/docs/UsersGuide/source/ConfigWorkflow.rst @@ -1001,6 +1001,8 @@ Write-Component (Quilting) Parameters .. note:: The :term:`UPP` (called by the ``RUN_POST_TN`` task) cannot process output on the native grid types ("GFDLgrid" and "ESGgrid"), so output fields are interpolated to a **write component grid** before writing them to an output file. The output files written by the UFS Weather Model use an Earth System Modeling Framework (:term:`ESMF`) component, referred to as the **write component**. This model component is configured with settings in the ``model_configure`` file, as described in `Section 4.2.3 `__ of the UFS Weather Model documentation. + .. COMMENT: Update link! + ``QUILTING``: (Default: true) .. attention:: @@ -1759,6 +1761,8 @@ Stochastic Physics Parameters Set default ad-hoc stochastic physics options. For the most updated and detailed documentation of these parameters, see the `UFS Stochastic Physics Documentation `__. +.. COMMENT: Update link! + ``NEW_LSCALE``: (Default: true) Use correct formula for converting a spatial legnth scale into spectral space. diff --git a/docs/UsersGuide/source/ContainerQuickstart.rst b/docs/UsersGuide/source/ContainerQuickstart.rst index 8b72c079e5..aabe444d8c 100644 --- a/docs/UsersGuide/source/ContainerQuickstart.rst +++ b/docs/UsersGuide/source/ContainerQuickstart.rst @@ -21,14 +21,12 @@ Download the Container Prerequisites: ------------------- -Users must have an **Intel** compiler and :term:`MPI` (available for free `here `__) in order to run the SRW App in the container provided using the method described in this chapter. Additionally, it is recommended that users install the `Rocoto workflow manager `__ on their system in order to take advantage of automated workflow options. Although it is possible to run an experiment without Rocoto, and some tips are provided, the only fully-supported and tested container option for the ``develop`` branch assumes that Rocoto is pre-installed. - -.. COMMENT: Remove "for the develop branch"? +Users must have an **Intel** compiler and :term:`MPI` (available for free `here `__) in order to run the SRW App in the container provided using the method described in this chapter. Additionally, it is recommended that users install the `Rocoto workflow manager `__ on their system in order to take advantage of automated workflow options. Although it is possible to run an experiment without Rocoto, and some tips are provided, the only fully-supported and tested container option for the ``release/public-v2.1.0`` branch assumes that Rocoto is pre-installed. Install Singularity ^^^^^^^^^^^^^^^^^^^^^^^ -To build and run the SRW App using a Singularity container, first install the Singularity package according to the `Singularity Installation Guide `__. This will include the installation of dependencies and the installation of the Go programming language. SingularityCE Version 3.7 or above is recommended. +To build and run the SRW App using a Singularity container, first install the Singularity package according to the `Singularity Installation Guide `__. This will include the installation of dependencies and the installation of the Go programming language. SingularityCE Version 3.7 or above is recommended. .. warning:: Docker containers can only be run with root privileges, and users cannot have root privileges on :term:`HPCs `. Therefore, it is not possible to build the SRW App, which uses the HPC-Stack, inside a Docker container on an HPC system. However, a Singularity image may be built directly from a Docker image for use on the system. @@ -72,6 +70,8 @@ Level 1 Systems On most Level 1 systems, a container named ``ubuntu20.04-intel-srwapp-develop.img`` has already been built at the following locations: +.. COMMENT: update name of container! + .. table:: Locations of pre-built containers +--------------+--------------------------------------------------------+ @@ -97,12 +97,16 @@ Users can simply copy the container to their local working directory. For exampl cp /scratch1/NCEPDEV/nems/role.epic/containers/ubuntu20.04-intel-srwapp-develop.img . +.. COMMENT: Update path to container! + Users may convert the container ``.img`` file to a writable sandbox. This step is required when running on Cheyenne but is optional on other systems: .. code-block:: console singularity build --sandbox ubuntu20.04-intel-srwapp ubuntu20.04-intel-srwapp-develop.img +.. COMMENT: Update name of container! + When making a writable sandbox on Level 1 systems, the following warnings commonly appear and can be ignored: .. code-block:: console @@ -112,6 +116,8 @@ When making a writable sandbox on Level 1 systems, the following warnings common WARNING: integrity: signature not found for object group 1 WARNING: Bootstrap image could not be verified, but build will continue. +.. COMMENT: Update name of container! + Level 2-4 Systems ^^^^^^^^^^^^^^^^^^^^^ @@ -121,6 +127,8 @@ On non-Level 1 systems, users should build the container in a writable sandbox: sudo singularity build --sandbox ubuntu20.04-intel-srwapp docker://noaaepic/ubuntu20.04-intel-srwapp:develop +.. COMMENT: Update :develop to release-public-v2.1.0 (or similar) + Some users may prefer to issue the command without the ``sudo`` prefix. Whether ``sudo`` is required is system-dependent. .. note:: @@ -195,6 +203,8 @@ To explore the container and view available directories, users can either ``cd`` cd / ls +.. COMMENT: Update name of container! + The list of directories printed will be similar to this: .. code-block:: console @@ -276,12 +286,16 @@ where: * ```` refers to the local machine (e.g., ``hera``, ``jet``, ``noaacloud``, ``mac``). See ``MACHINE`` in :numref:`Section %s ` for a full list of options. * ``-i`` indicates the name of the container image that was built in :numref:`Step %s ` (``ubuntu20.04-intel-srwapp`` or ``ubuntu20.04-intel-srwapp-develop.img`` by default). +.. COMMENT: Update name of container! + For example, on Hera, the command would be: .. code-block:: console ./stage-srw.sh -c=intel/2022.1.2 -m=impi/2022.1.2 -p=hera -i=ubuntu20.04-intel-srwapp-develop.img +.. COMMENT: Update name of container! + .. attention:: The user must have an Intel compiler and MPI on their system because the container uses an Intel compiler and MPI. Intel compilers are now available for free as part of `Intel's oneAPI Toolkit `__. @@ -326,6 +340,8 @@ From here, users can follow the steps below to configure the out-of-the-box SRW EXTRN_MDL_FILES_ICS: [] EXTRN_MDL_DATA_STORES: disk + .. COMMENT: Update name of container! + On other systems, users will need to change the path for ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` and ``EXTRN_MDL_FILES_LBCS`` (below) to reflect the location of the system's data. The location of the machine's global data can be viewed :ref:`here ` for Level 1 systems. Alternatively, the user can add the path to their local data if they downloaded it as described in :numref:`Section %s `. #. Edit the ``task_get_extrn_lbcs:`` section of the ``config.yaml`` to include the correct data paths to the lateral boundary conditions files. For example, on Hera, add: @@ -337,6 +353,7 @@ From here, users can follow the steps below to configure the out-of-the-box SRW EXTRN_MDL_FILES_LBCS: [] EXTRN_MDL_DATA_STORES: disk +.. COMMENT: Update name of container! .. _GenerateWorkflowC: diff --git a/docs/UsersGuide/source/Introduction.rst b/docs/UsersGuide/source/Introduction.rst index 7e39ba7769..d7f8c6449d 100644 --- a/docs/UsersGuide/source/Introduction.rst +++ b/docs/UsersGuide/source/Introduction.rst @@ -6,7 +6,23 @@ Introduction The Unified Forecast System (:term:`UFS`) is a community-based, coupled, comprehensive Earth modeling system. NOAA's operational model suite for numerical weather prediction (:term:`NWP`) is quickly transitioning to the UFS from a number of different modeling systems. The UFS enables research, development, and contribution opportunities within the broader :term:`Weather Enterprise` (including government, industry, and academia). For more information about the UFS, visit the `UFS Portal `__. -The UFS includes `multiple applications `__ that support different forecast durations and spatial domains. This documentation describes the UFS Short-Range Weather (SRW) Application, which targets predictions of atmospheric behavior on a limited spatial domain and on time scales from minutes to several days. The SRW Application v2.0.0 release includes a prognostic atmospheric model, pre- and post-processing, and a community workflow for running the system end-to-end. These components are documented within this User's Guide and supported through a `community forum `__. New and improved capabilities for this release include the addition of a verification package (METplus) for both deterministic and ensemble simulations and support for four stochastically perturbed physics schemes. Future work will expand the capabilities of the application to include data assimilation (DA) and a forecast restart/cycling capability. +The UFS includes `multiple applications `__ that support different forecast durations and spatial domains. This documentation describes the UFS Short-Range Weather (SRW) Application, which targets predictions of atmospheric behavior on a limited spatial domain and on time scales from minutes to several days. The SRW Application v2.1.0 release includes a prognostic atmospheric model, pre- and post-processing, and a community workflow for running the system end-to-end. These components are documented within this User's Guide and supported through the `GitHub Discussions `__ forum. New and improved capabilities for the v2.0.0 release included the addition of a verification package (METplus) for both deterministic and ensemble simulations and support for four stochastically perturbed physics schemes. This v2.1.0 release includes: + + * Bug fixes since the v2.0.0 release + * Conversion to a Python workflow (from the former shell workflow) + * Improved container support, including the option to run across compute nodes using Rocoto + * Updates to :term:`CCPP` that target the top of ``develop`` (which is ahead of CCPP v6.0.0) + * Support for the :term:`UPP` inline post option + * Addition of a code clean-up script (``devclean.sh``) + * Documentation updates to reflect the changes above + +.. COMMENT: Link to details (e.g., for devclean script) and/or add details (e.g., about METplus bugs) in appropriate sections. + +.. COMMENT: What do I say about HPC-Stack/spack-stack option for users? + * Rebuild/update HPC-Stack (and/or spack-stack) modules using recent compilers on the NOAA HPC systems and cloud platforms. + * Spack-stack option for users (not to replace HPC-Stack) + +Future work will expand the capabilities of the application to include data assimilation (DA) and a forecast restart/cycling capability. This documentation provides a :ref:`Quick Start Guide ` designed for use on `Level 1 systems `__ or as an overview of the workflow. It also provides a :ref:`Container-Based Quick Start Guide ` for running the SRW Application in a container and detailed chapters on :ref:`building ` and :ref:`running ` the SRW App on any supported platform. Additionally, this User's Guide provides an overview of the :ref:`release components ` and details on how to customize or modify different portions of the workflow. @@ -136,7 +152,7 @@ SRW App Components Overview Pre-processor Utilities and Initial Conditions ------------------------------------------------ -The SRW Application includes a number of pre-processing utilities that initialize and prepare the model. Tasks include generating a regional grid along with :term:`orography` and surface climatology files for that grid. One pre-processing utility converts the raw external model data into initial and lateral boundary condition files in netCDF format. Later, these files are used as input to the atmospheric model (FV3-LAM). Additional information about the pre-processor utilities can be found in :numref:`Chapter %s `, in the `UFS_UTILS Technical Documentation `__, and in the `UFS_UTILS Scientific Documentation `__. +The SRW Application includes a number of pre-processing utilities that initialize and prepare the model. Tasks include generating a regional grid along with :term:`orography` and surface climatology files for that grid. One pre-processing utility converts the raw external model data into initial and lateral boundary condition files in netCDF format. Later, these files are used as input to the atmospheric model (FV3-LAM). Additional information about the pre-processor utilities can be found in :numref:`Chapter %s `, in the `UFS_UTILS Technical Documentation `__, and in the `UFS_UTILS Scientific Documentation `__. Forecast Model ----------------- @@ -425,13 +441,13 @@ A list of available documentation is shown in :numref:`Table %s `. Contributions to the `ufs-srweather-app `__ repository should follow the guidelines contained in the :ref:`SRW App Contributor's Guide `. diff --git a/docs/UsersGuide/source/Quickstart.rst b/docs/UsersGuide/source/Quickstart.rst index 1046345d22..4b96110a89 100644 --- a/docs/UsersGuide/source/Quickstart.rst +++ b/docs/UsersGuide/source/Quickstart.rst @@ -23,7 +23,7 @@ For a detailed explanation of how to build and run the SRW App on any supported .. code-block:: console - git clone -b develop https://github.com/ufs-community/ufs-srweather-app.git + git clone -b release/public-v2.1.0 https://github.com/ufs-community/ufs-srweather-app.git #. Check out the external repositories: diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index 630a1f9862..e517012a60 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -44,19 +44,19 @@ The SRW App requires input files to run. These include static datasets, initial +--------------+-----------------------------------------------------------------+ | Machine | File location | +==============+=================================================================+ - | Cheyenne | /glade/p/ral/jntp/UFS_SRW_App/develop/input_model_data/ | + | Cheyenne | /glade/p/ral/jntp/UFS_SRW_App/v2p1/input_model_data/ | +--------------+-----------------------------------------------------------------+ - | Gaea | /lustre/f2/pdata/ncep/UFS_SRW_App/develop/input_model_data/ | + | Gaea | /lustre/f2/pdata/ncep/UFS_SRW_App/v2p1/input_model_data/ | +--------------+-----------------------------------------------------------------+ - | Hera | /scratch2/BMC/det/UFS_SRW_App/develop/input_model_data/ | + | Hera | /scratch2/BMC/det/UFS_SRW_App/v2p1/input_model_data/ | +--------------+-----------------------------------------------------------------+ - | Jet | /mnt/lfs4/BMC/wrfruc/UFS_SRW_App/develop/input_model_data/ | + | Jet | /mnt/lfs4/BMC/wrfruc/UFS_SRW_App/v2p1/input_model_data/ | +--------------+-----------------------------------------------------------------+ - | NOAA Cloud | /contrib/EPIC/UFS_SRW_App/develop/input_model_data/ | + | NOAA Cloud | /contrib/EPIC/UFS_SRW_App/v2p1/input_model_data/ | +--------------+-----------------------------------------------------------------+ - | Orion | /work/noaa/fv3-cam/UFS_SRW_App/develop/input_model_data/ | + | Orion | /work/noaa/fv3-cam/UFS_SRW_App/v2p1/input_model_data/ | +--------------+-----------------------------------------------------------------+ - | WCOSS2 | /lfs/h2/emc/lam/noscrub/UFS_SRW_App/develop/input_model_data/ | + | WCOSS2 | /lfs/h2/emc/lam/noscrub/UFS_SRW_App/v2p1/input_model_data/ | +--------------+-----------------------------------------------------------------+ For Level 2-4 systems, the data must be added to the user's system. Detailed instructions on how to add the data can be found in :numref:`Section %s `. Sections :numref:`%s ` and :numref:`%s ` contain useful background information on the input and output files used in the SRW App. @@ -490,10 +490,10 @@ On Level 1 systems, the following fields will need to be updated or added to the EXPT_SUBDIR: test_community task_get_extrn_ics: USE_USER_STAGED_EXTRN_FILES: true - EXTRN_MDL_SOURCE_BASEDIR_ICS: "/path/to/UFS_SRW_App/develop/input_model_data///" + EXTRN_MDL_SOURCE_BASEDIR_ICS: "/path/to/UFS_SRW_App/v2p1/input_model_data///" task_get_extrn_lbcs: USE_USER_STAGED_EXTRN_FILES: true - EXTRN_MDL_SOURCE_BASEDIR_LBCS: "/path/to/UFS_SRW_App/develop/input_model_data///" + EXTRN_MDL_SOURCE_BASEDIR_LBCS: "/path/to/UFS_SRW_App/v2p1/input_model_data///" where: * ``MACHINE`` refers to a valid machine name (see :numref:`Section %s ` for options). @@ -520,10 +520,10 @@ For example, to run the out-of-the-box experiment on Gaea, add or modify variabl EXPT_SUBDIR: run_basic_srw task_get_extrn_ics: USE_USER_STAGED_EXTRN_FILES: true - EXTRN_MDL_SOURCE_BASEDIR_ICS: /lustre/f2/pdata/ncep/UFS_SRW_App/develop/input_model_data/FV3GFS/grib2/2019061518 + EXTRN_MDL_SOURCE_BASEDIR_ICS: /lustre/f2/pdata/ncep/UFS_SRW_App/v2p1/input_model_data/FV3GFS/grib2/2019061518 task_get_extrn_lbcs: USE_USER_STAGED_EXTRN_FILES: true - EXTRN_MDL_SOURCE_BASEDIR_LBCS: /lustre/f2/pdata/ncep/UFS_SRW_App/develop/input_model_data/FV3GFS/grib2/2019061518 + EXTRN_MDL_SOURCE_BASEDIR_LBCS: /lustre/f2/pdata/ncep/UFS_SRW_App/v2p1/input_model_data/FV3GFS/grib2/2019061518 To determine whether the ``config.yaml`` file adjustments are valid, users can run the following script from the ``ush`` directory: @@ -734,9 +734,9 @@ Users who have already staged the observation data needed for METplus (i.e., the .. code-block:: console platform: - CCPA_OBS_DIR: /path/to/UFS_SRW_App/develop/obs_data/ccpa/proc - MRMS_OBS_DIR: /path/to/UFS_SRW_App/develop/obs_data/mrms/proc - NDAS_OBS_DIR: /path/to/UFS_SRW_App/develop/obs_data/ndas/proc + CCPA_OBS_DIR: /path/to/UFS_SRW_App/v2p1/obs_data/ccpa/proc + MRMS_OBS_DIR: /path/to/UFS_SRW_App/v2p1/obs_data/mrms/proc + NDAS_OBS_DIR: /path/to/UFS_SRW_App/v2p1/obs_data/ndas/proc workflow_switches: RUN_TASK_GET_OBS_CCPA: false RUN_TASK_GET_OBS_MRMS: false From 0a9f2219d126f7a4afc848d2a49d14d5ae873fad Mon Sep 17 00:00:00 2001 From: gspetro Date: Thu, 3 Nov 2022 10:45:36 -0400 Subject: [PATCH 02/63] add citation --- docs/UsersGuide/source/Introduction.rst | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/docs/UsersGuide/source/Introduction.rst b/docs/UsersGuide/source/Introduction.rst index d7f8c6449d..40624287ee 100644 --- a/docs/UsersGuide/source/Introduction.rst +++ b/docs/UsersGuide/source/Introduction.rst @@ -13,7 +13,7 @@ The UFS includes `multiple applications ` designed for use on `Level 1 systems `__ or as an overview of the workflow. It also provides a :ref:`Container-Based Quick Start Guide ` for running the SRW Application in a container and detailed chapters on :ref:`building ` and :ref:`running ` the SRW App on any supported platform. Additionally, this User's Guide provides an overview of the :ref:`release components ` and details on how to customize or modify different portions of the workflow. +This documentation provides: + * A :ref:`Quick Start Guide ` designed for use on `Level 1 systems `__ or as an overview of the workflow. + * A :ref:`Container-Based Quick Start Guide ` for running the SRW Application in a container + * Detailed chapters on :ref:`building ` and :ref:`running ` the SRW App on any supported platform. + * An overview of the :ref:`release components ` and details on how to customize or modify different portions of the workflow. -The SRW App v2.0.0 citation is as follows and should be used when presenting results based on research conducted with the App: +The SRW App v2.1.0 citation is as follows and should be used when presenting results based on research conducted with the App: -UFS Development Team. (2022, June 23). Unified Forecast System (UFS) Short-Range Weather (SRW) Application (Version v2.0.0). Zenodo. https://doi.org/10.5281/zenodo.6505854 +UFS Development Team. (2022, Nov. 16). Unified Forecast System (UFS) Short-Range Weather (SRW) Application (Version v2.1.0). Zenodo. https://doi.org/10.5281/zenodo.7277602 How to Use This Document From 5c2e68bd65d5b008b4f4b2dedf6b74ad5a287912 Mon Sep 17 00:00:00 2001 From: gspetro Date: Thu, 3 Nov 2022 11:55:46 -0400 Subject: [PATCH 03/63] add not re: spack-stack support --- docs/UsersGuide/source/BuildSRW.rst | 11 +++++++---- docs/UsersGuide/source/Glossary.rst | 5 ++++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/docs/UsersGuide/source/BuildSRW.rst b/docs/UsersGuide/source/BuildSRW.rst index be35cd80f1..9b43539baf 100644 --- a/docs/UsersGuide/source/BuildSRW.rst +++ b/docs/UsersGuide/source/BuildSRW.rst @@ -30,14 +30,14 @@ To build the SRW App, users will complete the following steps: .. _HPCstackInfo: -Install the HPC-Stack -======================== +Install the Prerequisite Software Stack +========================================= + +Currently, installation of the prerequisite software stack is supported via HPC-Stack. :term:`HPC-Stack` is a repository that provides a unified, shell script-based system to build the software stack required for `UFS `__ applications such as the SRW App. .. Attention:: Skip the HPC-Stack installation if working on a `Level 1 system `_ (e.g., Cheyenne, Hera, Orion, NOAA Cloud). -**Definition:** :term:`HPC-Stack` is a repository that provides a unified, shell script-based build system to build the software stack required for `UFS `_ applications such as the SRW App. - Background ---------------- @@ -57,6 +57,9 @@ Users working on systems that fall under `Support Levels 2-4 `. +.. attention:: + Although HPC-Stack is the fully-supported option for this release, UFS applications are gradually shifting to :term:`spack-stack`, which is a :term:`Spack`-based method for installing UFS prerequisite software libraries. The spack-stack is currently used on NOAA Cloud platforms and in containers, while HPC-Stack is still used on other Level 1 systems and is the software stack currently validated by the UFS Weather Model. Users are encouraged to check out spack-stack to prepare for the upcoming shift in support from HPC-Stack to spack-stack. However, the HPC-Stack is still the go-to method for this release. + After completing installation, continue to the next section (:numref:`Section %s: Download the UFS SRW Application Code `). .. _DownloadSRWApp: diff --git a/docs/UsersGuide/source/Glossary.rst b/docs/UsersGuide/source/Glossary.rst index f7de1fe3f9..6f1a668133 100644 --- a/docs/UsersGuide/source/Glossary.rst +++ b/docs/UsersGuide/source/Glossary.rst @@ -206,8 +206,11 @@ Glossary SDF Suite Definition File. An external file containing information about the construction of a physics suite. It describes the schemes that are called, in which order they are called, whether they are subcycled, and whether they are assembled into groups to be called together. + Spack + `Spack `__ is a package management tool designed to support multiple versions and configurations of software on a wide variety of platforms and environments. It was designed for large supercomputing centers, where many users and application teams share common installations of software on clusters with exotic architectures. + spack-stack - The `spack-stack `__ is a collaborative effort between the NOAA Environmental Modeling Center (EMC), the UCAR Joint Center for Satellite Data Assimilation (JCSDA), and the Earth Prediction Innovation Center (EPIC). *spack-stack* is a repository that provides a Spack-based method for building the software stack required for numerical weather prediction (NWP) tools such as the `Unified Forecast System (UFS) `__ and the `Joint Effort for Data assimilation Integration (JEDI) `__ framework. spack-stack uses the Spack package manager along with custom Spack configuration files and Python scripts to simplify installation of the libraries required to run various applications. The *spack-stack* can be installed on a range of platforms and comes pre-configured for many systems. Users can install the necessary packages for a particular application and later add the missing packages for another application without having to rebuild the entire stack. + The `spack-stack `__ is a collaborative effort between the NOAA Environmental Modeling Center (EMC), the UCAR Joint Center for Satellite Data Assimilation (JCSDA), and the Earth Prediction Innovation Center (EPIC). *spack-stack* is a repository that provides a :term:`Spack`-based method for building the software stack required for numerical weather prediction (NWP) tools such as the `Unified Forecast System (UFS) `__ and the `Joint Effort for Data assimilation Integration (JEDI) `__ framework. *spack-stack* uses the Spack package manager along with custom Spack configuration files and Python scripts to simplify installation of the libraries required to run various applications. The *spack-stack* can be installed on a range of platforms and comes pre-configured for many systems. Users can install the necessary packages for a particular application and later add the missing packages for another application without having to rebuild the entire stack. tracer According to the American Meteorological Society (AMS) `definition `__, a tracer is "Any substance in the atmosphere that can be used to track the history [i.e., movement] of an air mass." Tracers are carried around by the motion of the atmosphere (i.e., by :term:`advection`). These substances are usually gases (e.g., water vapor, CO2), but they can also be non-gaseous (e.g., rain drops in microphysics parameterizations). In weather models, temperature (or potential temperature), absolute humidity, and radioactivity are also usually treated as tracers. According to AMS, "The main requirement for a tracer is that its lifetime be substantially longer than the transport process under study." From 17a2ecf576858f4990ff42a97ada354da1ebf44d Mon Sep 17 00:00:00 2001 From: gspetro Date: Mon, 7 Nov 2022 17:46:49 -0500 Subject: [PATCH 04/63] update most links for release --- docs/UsersGuide/source/Components.rst | 4 ++-- docs/UsersGuide/source/InputOutputFiles.rst | 4 ++-- docs/UsersGuide/source/Introduction.rst | 25 ++++++++++----------- docs/UsersGuide/source/conf.py | 2 +- 4 files changed, 17 insertions(+), 18 deletions(-) diff --git a/docs/UsersGuide/source/Components.rst b/docs/UsersGuide/source/Components.rst index 2c57fec9de..27e389e1fa 100644 --- a/docs/UsersGuide/source/Components.rst +++ b/docs/UsersGuide/source/Components.rst @@ -37,9 +37,9 @@ The prognostic atmospheric model in the UFS SRW Application is the Finite-Volume Supported model resolutions in this release include 3-, 13-, and 25-km predefined contiguous U.S. (:term:`CONUS`) domains, each with 127 vertical levels. Preliminary tools for users to define their own domain are also available in the release with full, formal support of these tools to be provided in future releases. The Extended Schmidt Gnomonic (ESG) grid is used with the FV3-LAM, which features relatively uniform grid cells across the entirety of the domain. Additional information about the FV3 dynamical core can be found in the `scientific documentation `__, the `technical documentation `__, and on the `NOAA Geophysical Fluid Dynamics Laboratory website `__. -Interoperable atmospheric physics, along with various land surface model options, are supported through the Common Community Physics Package (CCPP), described `here `__. Atmospheric physics are a set of numerical methods describing small-scale processes such as clouds, turbulence, radiation, and their interactions. There will be four physics suites supported for the SRW App v2.0.0 release. The first is the FV3_RRFS_v1beta physics suite, which is being tested for use in the future operational implementation of the Rapid Refresh Forecast System (RRFS) planned for 2023-2024, and the second is an updated version of the physics suite used in the operational Global Forecast System (GFS) v16. Additionally, FV3_WoFS_v0 and FV3_HRRR will be supported. A scientific description of the CCPP parameterizations and suites can be found in the `CCPP Scientific Documentation `__, and CCPP technical aspects are described in the `CCPP Technical Documentation `__. The model namelist has many settings beyond the physics options that can optimize various aspects of the model for use with each of the supported suites. Additional information on Stochastic Physics options is available `here `__. +Interoperable atmospheric physics, along with various land surface model options, are supported through the Common Community Physics Package (CCPP), described `here `__. Atmospheric physics are a set of numerical methods describing small-scale processes such as clouds, turbulence, radiation, and their interactions. There will be four physics suites supported for the SRW App v2.0.0 release. The first is the FV3_RRFS_v1beta physics suite, which is being tested for use in the future operational implementation of the Rapid Refresh Forecast System (RRFS) planned for 2023-2024, and the second is an updated version of the physics suite used in the operational Global Forecast System (GFS) v16. Additionally, FV3_WoFS_v0 and FV3_HRRR will be supported. A scientific description of the CCPP parameterizations and suites can be found in the `CCPP Scientific Documentation `__, and CCPP technical aspects are described in the `CCPP Technical Documentation `__. The model namelist has many settings beyond the physics options that can optimize various aspects of the model for use with each of the supported suites. Additional information on Stochastic Physics options is available `here `__. -.. COMMENT: Update Stochastic Physics link! Check tech doc functionality. +.. COMMENT: Check CCPP tech doc functionality. .. note:: SPP is currently only available for specific physics schemes used in the RAP/HRRR physics suite. Users need to be aware of which physics suite definition file (:term:`SDF`) is chosen when turning this option on. Among the supported physics suites, the full set of parameterizations can only be used with the ``FV3_HRRR`` option for ``CCPP_PHYS_SUITE``. diff --git a/docs/UsersGuide/source/InputOutputFiles.rst b/docs/UsersGuide/source/InputOutputFiles.rst index 640a2a598a..a09f41dea0 100644 --- a/docs/UsersGuide/source/InputOutputFiles.rst +++ b/docs/UsersGuide/source/InputOutputFiles.rst @@ -27,7 +27,7 @@ The data format for these files can be :term:`GRIB2` or :term:`NEMSIO`. More inf Pre-processing (UFS_UTILS) --------------------------- -When a user generates the regional workflow, as described in :numref:`Section %s `, the workflow generation script links the input data for the pre-processing utilities to the experiment directory. 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 in the UFS_UTILS `Technical Documentation `__ and `Scientific Documentation `__. +When a user generates the regional workflow, as described in :numref:`Section %s `, the workflow generation script links the input data for the pre-processing utilities to the experiment directory. 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 in the UFS_UTILS `Technical Documentation `__ and `Scientific Documentation `__. UFS Weather Model ----------------- @@ -97,7 +97,7 @@ and are shown in :numref:`Table %s `. | README.xml_templating.md | Instructions for Rocoto XML templating with Jinja. | +-----------------------------+--------------------------------------------------------------+ -Additional information related to ``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 ``regional_grid.nml`` options can be found in the `UFS_UTILS Technical Documentation `__. +Additional information related to ``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 ``regional_grid.nml`` options can be found in the `UFS_UTILS Technical Documentation `__. Migratory Route of the Input Files in the Workflow ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/docs/UsersGuide/source/Introduction.rst b/docs/UsersGuide/source/Introduction.rst index 40624287ee..04d4d61693 100644 --- a/docs/UsersGuide/source/Introduction.rst +++ b/docs/UsersGuide/source/Introduction.rst @@ -18,13 +18,10 @@ The UFS includes `multiple applications ` designed for use on `Level 1 systems `__ or as an overview of the workflow. * A :ref:`Container-Based Quick Start Guide ` for running the SRW Application in a container * Detailed chapters on :ref:`building ` and :ref:`running ` the SRW App on any supported platform. @@ -34,6 +31,7 @@ The SRW App v2.1.0 citation is as follows and should be used when presenting res UFS Development Team. (2022, Nov. 16). Unified Forecast System (UFS) Short-Range Weather (SRW) Application (Version v2.1.0). Zenodo. https://doi.org/10.5281/zenodo.7277602 +.. COMMENT: DOI link will not work until after it is published (on or shortly before the release date). How to Use This Document ======================== @@ -42,12 +40,11 @@ This guide instructs both novice and experienced users on downloading, building, .. code-block:: console - Throughout the guide, this presentation style indicates shell commands and options, - code examples, etc. + Throughout the guide, this presentation style indicates shell commands and options, code examples, etc. Variables presented as ``AaBbCc123`` in this User's Guide typically refer to variables in scripts, names of files, or directories. -File paths or code that include angle brackets (e.g., ``build__``) indicate that users should insert options appropriate to their SRW App configuration (e.g., ``build_orion_intel``). +File paths and code that include angle brackets (e.g., ``build__``) indicate that users should insert options appropriate to their SRW App configuration (e.g., ``build_orion_intel``). .. hint:: * To get started with the SRW App, users have a few options: @@ -55,10 +52,10 @@ File paths or code that include angle brackets (e.g., ``build__` for a quick overview of the workflow steps. #. To build the application in a container, which provides a more uniform work environment, users can refer to the :ref:`Container-Based Quick Start Guide `. #. For detailed instructions on building and running the SRW App, users can refer to :numref:`Chapter %s: Building the SRW App ` and :numref:`Chapter %s: Running the SRW App `. - * For background information on the SRW App code repositories and directory structure, see :numref:`Section %s ` below. * For an outline of SRW App components, see section :numref:`Section %s ` below or refer to :numref:`Chapter %s ` for a more in-depth treatment. +.. COMMENT: Remove this hint section now that the there's a "This documentation provides..." list? .. _SRWPrerequisites: @@ -87,7 +84,7 @@ Additional background knowledge in the following areas could be helpful: Software/Operating System Requirements ----------------------------------------- -The UFS SRW Application has been designed so that any sufficiently up-to-date machine with a UNIX-based operating system should be capable of running the application. NOAA `Level 1 & 2 systems `__ already have these prerequisites installed. However, users working on other systems must ensure that the following requirements are installed on their system: +The UFS SRW Application has been designed so that any sufficiently up-to-date machine with a UNIX-based operating system should be capable of running the application. SRW App `Level 1 & 2 systems `__ already have these prerequisites installed. However, users working on other systems must ensure that the following requirements are installed on their system: **Minimum Platform Requirements:** @@ -153,7 +150,7 @@ Optional but recommended prerequisites for all systems: SRW App Components Overview ============================== -Pre-processor Utilities and Initial Conditions +Pre-Processor Utilities and Initial Conditions ------------------------------------------------ The SRW Application includes a number of pre-processing utilities that initialize and prepare the model. Tasks include generating a regional grid along with :term:`orography` and surface climatology files for that grid. One pre-processing utility converts the raw external model data into initial and lateral boundary condition files in netCDF format. Later, these files are used as input to the atmospheric model (FV3-LAM). Additional information about the pre-processor utilities can be found in :numref:`Chapter %s `, in the `UFS_UTILS Technical Documentation `__, and in the `UFS_UTILS Scientific Documentation `__. @@ -457,7 +454,7 @@ A list of available documentation is shown in :numref:`Table %s `. Contributions to the `ufs-srweather-app `__ repository should follow the guidelines contained in the :ref:`SRW App Contributor's Guide `. diff --git a/docs/UsersGuide/source/conf.py b/docs/UsersGuide/source/conf.py index c1a376d0ba..81b43c7a3c 100644 --- a/docs/UsersGuide/source/conf.py +++ b/docs/UsersGuide/source/conf.py @@ -204,7 +204,7 @@ def setup(app): # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { - 'hpc-stack': ('https://hpc-stack.readthedocs.io/en/latest/', None), + 'hpc-stack': ('https://hpc-stack.readthedocs.io/en/release-srw-public-v2/', None), 'met': ('https://met.readthedocs.io/en/latest/', None), } From 4abea1cee4593f9fc5c1332c9e2637ddfa2aa14b Mon Sep 17 00:00:00 2001 From: gspetro Date: Mon, 7 Nov 2022 23:02:02 -0500 Subject: [PATCH 05/63] edit Glossary --- docs/UsersGuide/source/Glossary.rst | 32 ++++++++++++++--------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/docs/UsersGuide/source/Glossary.rst b/docs/UsersGuide/source/Glossary.rst index 6f1a668133..3845a75302 100644 --- a/docs/UsersGuide/source/Glossary.rst +++ b/docs/UsersGuide/source/Glossary.rst @@ -26,21 +26,21 @@ Glossary chgres_cube The preprocessing software used to create initial and boundary condition files to - “coldstart” the forecast model. + “coldstart” the forecast model. It is part of :term:`UFS_UTILS`. CIN Convective Inhibition. CMAQ - The `Community Multiscale Air Quality Model `__ (CMAQ, pronounced "cee-mak") is a numerical air quality model that predicts the concentration of airborne gases and particles and the deposition of these pollutants back to Earth's surface. The purpose of CMAQ is to provide fast, technically sound estimates of ozone, particulates, toxics, and acid deposition. CMAQ is an active open-source development project of the U.S. Environmental Protection Agency (EPA). Code is publicly availably at https://github.com/USEPA/CMAQ. + The `Community Multiscale Air Quality Model `__ (CMAQ, pronounced "cee-mak") is a numerical air quality model that predicts the concentration of airborne gases and particles and the deposition of these pollutants back to Earth's surface. The purpose of CMAQ is to provide fast, technically sound estimates of ozone, particulates, toxics, and acid deposition. CMAQ is an active open-source development project of the U.S. Environmental Protection Agency (EPA). Code is publicly available at https://github.com/USEPA/CMAQ. cron crontab cron table - Cron is a job scheduler accessed through the command-line on UNIX-like operating systems. It is useful for automating tasks such as the ``rocotorun`` command, which launches each workflow task in the SRW App. Cron periodically checks a cron table (aka crontab) to see if any tasks are are ready to execute. If so, it runs them. + Cron is a job scheduler accessed through the command-line on UNIX-like operating systems. It is useful for automating tasks such as the ``rocotorun`` command, which launches each workflow task in the SRW App (see :numref:`Chapter %s ` for details). Cron periodically checks a cron table (aka crontab) to see if any tasks are are ready to execute. If so, it runs them. CRTM - `Community Radiative Transfer Model `__. CRTM is a fast and accurate radiative transfer model developed at the `Joint Center for Satellite Data Assimilation `__ (JCSDA) in the United States. It is a sensor-based radiative transfer model and supports more than 100 sensors, including sensors on most meteorological satellites and some from other remote sensing satellites. + The `Community Radiative Transfer Model `__ (CRTM) is a fast and accurate radiative transfer model developed at the `Joint Center for Satellite Data Assimilation `__ (JCSDA) in the United States. It is a sensor-based radiative transfer model and supports more than 100 sensors, including sensors on most meteorological satellites and some from other remote sensing satellites. Component A software element that has a clear function and interface. In Earth system models, components are often single portions of the Earth system (e.g. atmosphere, ocean, or land surface) that are assembled to form a whole. @@ -52,7 +52,7 @@ Glossary `Docker `__ describes a container as "a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another." CONUS - Continental United States + Continental United States. CAM convection-allowing models @@ -94,7 +94,7 @@ Glossary `Finite Volume Community Ocean Model `__. FVCOM is used in modeling work for the `Great Lakes Coastal Forecasting System (next-gen FVCOM) `__ conducted by the `Great Lakes Environmental Research Laboratory `__. GFS - `Global Forecast System `_. The GFS is a National Centers for Environmental Prediction (NCEP) weather forecast model that generates data for dozens of atmospheric and land-soil variables, including temperatures, winds, precipitation, soil moisture, and atmospheric ozone concentration. The system couples four separate models (atmosphere, ocean, land/soil, and sea ice) that work together to accurately depict weather conditions. + `Global Forecast System `_. The GFS is a National Centers for Environmental Prediction (:term:`NCEP`) weather forecast model that generates data for dozens of atmospheric and land-soil variables, including temperatures, winds, precipitation, soil moisture, and atmospheric ozone concentration. The system couples four separate models (atmosphere, ocean, land/soil, and sea ice) that work together to accurately depict weather conditions. GRIB2 The second version of the World Meterological Organization's (WMO) standard for distributing gridded data. @@ -121,22 +121,22 @@ Glossary `High Resolution Rapid Refresh `__. The HRRR is a NOAA real-time 3-km resolution, hourly updated, cloud-resolving, convection-allowing atmospheric model initialized by 3km grids with 3km radar assimilation. Radar data is assimilated in the HRRR every 15 min over a 1-h period adding further detail to that provided by the hourly data assimilation from the 13km radar-enhanced Rapid Refresh. IC/LBCs - Initial conditions/lateral boundary conditions + Initial conditions/lateral boundary conditions. ICs - Initial conditions + Initial conditions. LAM Limited Area Model (grid type), formerly known as the "Stand-Alone Regional Model," or SAR. LAM grids use a regional (rather than global) configuration of the :term:`FV3` :term:`dynamical core`. LBCs - Lateral boundary conditions + Lateral boundary conditions. MERRA2 The `Modern-Era Retrospective analysis for Research and Applications, Version 2 `__ provides satellite observation data back to 1980. According to NASA, "It was introduced to replace the original MERRA dataset because of the advances made in the assimilation system that enable assimilation of modern hyperspectral radiance and microwave observations, along with GPS-Radio Occultation datasets. It also uses NASA's ozone profile observations that began in late 2004. Additional advances in both the GEOS model and the GSI assimilation system are included in MERRA-2. Spatial resolution remains about the same (about 50 km in the latitudinal direction) as in MERRA." MPI - MPI stands for Message Passing Interface. An MPI is a standardized communication system used in parallel programming. It establishes portable and efficient syntax for the exchange of messages and data between multiple processors that are used by a single computer program. An MPI is required for high-performance computing (HPC). + MPI stands for Message Passing Interface. An MPI is a standardized communication system used in parallel programming. It establishes portable and efficient syntax for the exchange of messages and data between multiple processors that are used by a single computer program. An MPI is required for high-performance computing (HPC) systems. MRMS Multi-Radar/Multi-Sensor (MRMS) System Analysis data. This data is required for METplus composite reflectivity or :term:`echo top` verification tasks within the SRW App. A two-day archive of precipitation, radar, and aviation and severe weather fields is publicly available and can be accessed `here `__. @@ -145,7 +145,7 @@ Glossary `North American Mesoscale Forecast System `_. NAM generates multiple grids (or domains) of weather forecasts over the North American continent at various horizontal resolutions. Each grid contains data for dozens of weather parameters, including temperature, precipitation, lightning, and turbulent kinetic energy. NAM uses additional numerical weather models to generate high-resolution forecasts over fixed regions, and occasionally to follow significant weather events like hurricanes. namelist - A namelist defines a group of variables or arrays. Namelists are an I/O feature for format-free input and output of variables by key-value assignments in FORTRAN compilers. Fortran variables can be read from and written to plain-text files in a standardised format, usually with a ``.nml`` file ending. + A namelist defines a group of variables or arrays. Namelists are an I/O feature for format-free input and output of variables by key-value assignments in Fortran compilers. Fortran variables can be read from and written to plain-text files in a standardised format, usually with a ``.nml`` file ending. NCAR The `National Center for Atmospheric Research `__. @@ -156,7 +156,7 @@ Glossary NCEPLIBS The software libraries created and maintained by :term:`NCEP` that are required for running - :term:`chgres_cube`, the UFS Weather Model, and :term:`UPP`. They are included in the `HPC-Stack `__. + :term:`chgres_cube`, the UFS Weather Model, and the :term:`UPP`. They are included in the `HPC-Stack `__. NCEPLIBS-external A collection of third-party libraries required to build :term:`NCEPLIBS`, :term:`chgres_cube`, @@ -195,13 +195,13 @@ Glossary Simplified functions that approximate the effects of small-scale processes (e.g., microphysics, gravity wave drag) that cannot be explicitly resolved by a model grid’s representation of the earth. RAP - `Rapid Refresh `__. The continental-scale NOAA hourly-updated assimilation/modeling system operational at NCEP. RAP covers North America and is comprised primarily of a numerical forecast model and an analysis/assimilation system to initialize that model. RAP is complemented by the higher-resolution 3km High-Resolution Rapid Refresh (:term:`HRRR`) model. + `Rapid Refresh `__. The continental-scale NOAA hourly-updated assimilation/modeling system operational at :term:`NCEP`. RAP covers North America and is comprised primarily of a numerical forecast model and an analysis/assimilation system to initialize that model. RAP is complemented by the higher-resolution 3km High-Resolution Rapid Refresh (:term:`HRRR`) model. Repository A central location in which files (e.g., data, code, documentation) are stored and managed. RRFS - The `Rapid Refresh Forecast System `__ is NOAA's next-generation convection-allowing, rapidly-updated, ensemble-based data assimilation and forecasting system currently scheduled for operational implementation in 2024. It is designed to run forecasts on a 3-km :term:`CONUS` domain. + The `Rapid Refresh Forecast System `__ (RRFS) is NOAA's next-generation convection-allowing, rapidly-updated, ensemble-based data assimilation and forecasting system currently scheduled for operational implementation in 2024. It is designed to run forecasts on a 3-km :term:`CONUS` domain. SDF Suite Definition File. An external file containing information about the construction of a physics suite. It describes the schemes that are called, in which order they are called, whether they are subcycled, and whether they are assembled into groups to be called together. @@ -224,7 +224,7 @@ Glossary A collection of code 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. + part of this collection. The code is `publicly available `__ on Github. Umbrella repository A repository that houses external code, or "externals," from additional repositories. @@ -239,7 +239,7 @@ Glossary 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 an atmospheric - model coupled with one or more additional components, such as a wave or ocean model. The SRW App uses the fully-coupled `UFS Weather Model `__. + model coupled with one or more additional components, such as a wave or ocean model. The SRW App uses the `UFS Weather Model `__. Workflow The sequence of steps required to run an experiment from start to finish. \ No newline at end of file From 75e8082496b2e48d861ab5307265e0ab5c3cb548 Mon Sep 17 00:00:00 2001 From: gspetro Date: Tue, 8 Nov 2022 14:59:41 -0500 Subject: [PATCH 06/63] document devclean, update FAQ --- docs/UsersGuide/source/FAQ.rst | 47 +++++++++++++++++++++++++ docs/UsersGuide/source/Introduction.rst | 2 +- docs/UsersGuide/source/RunSRW.rst | 4 +-- 3 files changed, 50 insertions(+), 3 deletions(-) diff --git a/docs/UsersGuide/source/FAQ.rst b/docs/UsersGuide/source/FAQ.rst index 69e171d69c..a6511e1644 100644 --- a/docs/UsersGuide/source/FAQ.rst +++ b/docs/UsersGuide/source/FAQ.rst @@ -9,6 +9,8 @@ FAQ * :ref:`How do I change the Physics Suite Definition File (SDF)? ` * :ref:`How do I restart a DEAD task? ` * :ref:`How do I change the grid? ` +* :ref:`How do I run a new experiment? ` +* :ref:`How can I clean up the SRW App code if something went wrong during the check out, build, or run processes? ` .. _CycleInd: @@ -107,3 +109,48 @@ To change the predefined grid, modify the ``PREDEF_GRID_NAME`` variable in the ` However, users can choose from a variety of predefined grids listed in :numref:`Section %s `. An option also exists to create a user-defined grid, with information available in :numref:`Chapter %s `. However, the user-defined grid option is not fully-supported for this release and is provided for informational purposes only. + +.. _NewExpt: + +================================== +How do I run a new experiment? +================================== + +To run a new experiment at a later time, users need to rerun the commands in :numref:`Section %s ` that reactivate the regional workflow python environment: + +.. code-block:: console + + source + module use + module load wflow_ + +Follow any instructions output by the console. + +Then, users can configure a new experiment by updating the environment variables in ``config.yaml`` to reflect the desired experiment configuration. Detailed instructions can be viewed in :numref:`Section %s `. Parameters and valid values are listed in :numref:`Chapter %s `. After adjusting the configuration file, regenerate the experiment by running python ``generate_FV3LAM_wflow.py``. Check progress by navigating to the ``$EXPTDIR`` and running ``rocotostat -w FV3LAM_wflow.xml -d FV3LAM_wflow.db -v 10``. + + +.. _CleanUp: + +=============================================================== +How can I clean up the SRW App code if something went wrong? +=============================================================== + +The ``ufs-srweather-app`` repository contains a ``devclean.sh`` convenience script. This script can be used to clean up code if something goes wrong when checking out externals, building the app, or running the app. For complete usage instructions, run: + +.. code-block:: console + + ./devclean.sh -h + +To remove externals, run: + +.. code-block:: console + + ./devclean.sh --sub-modules + +To remove all build artifacts, run: + +.. code-block:: console + + ./devclean.sh --clean + OR + ./devclean.sh -a diff --git a/docs/UsersGuide/source/Introduction.rst b/docs/UsersGuide/source/Introduction.rst index 04d4d61693..afa5047434 100644 --- a/docs/UsersGuide/source/Introduction.rst +++ b/docs/UsersGuide/source/Introduction.rst @@ -11,7 +11,7 @@ The UFS includes `multiple applications ` for options). * ``ACCOUNT`` refers to a valid account name. Not all systems require a valid account name, but most do. - .. hint:: + .. hint:: - To determine an appropriate ACCOUNT field for Level 1 systems, run ``groups``, and it will return a list of projects you have permissions for. Not all of the listed projects/groups have an HPC allocation, but those that do are potentially valid account names. + To determine an appropriate ACCOUNT field for Level 1 systems, run ``groups``, and it will return a list of projects you have permissions for. Not all of the listed projects/groups have an HPC allocation, but those that do are potentially valid account names. * ``EXPT_SUBDIR`` is changed to an experiment name of the user's choice. * ```` is the path to the SRW App data on the user's machine (see :numref:`Section %s `). From 5d2561255b829d3b099e116237389a56b05f26c1 Mon Sep 17 00:00:00 2001 From: gspetro Date: Tue, 8 Nov 2022 15:21:30 -0500 Subject: [PATCH 07/63] change config.sh to .yaml --- docs/UsersGuide/source/FAQ.rst | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/UsersGuide/source/FAQ.rst b/docs/UsersGuide/source/FAQ.rst index a6511e1644..169407af76 100644 --- a/docs/UsersGuide/source/FAQ.rst +++ b/docs/UsersGuide/source/FAQ.rst @@ -23,7 +23,7 @@ are :term:`cycle-independent`, meaning that they only need to be run once per ex 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 experiment), then these tasks can be skipped, and the workflow can use those pre-generated files. This -can be done by adding the following lines to the ``config.sh`` script before running +can be done by adding the following lines to the ``config.yaml`` script before running the ``generate_FV3LAM_wflow.py`` script: .. code-block:: console @@ -39,7 +39,7 @@ The ``RUN_TASK_MAKE_GRID``, ``RUN_TASK_MAKE_OROG``, and ``RUN_TASK_MAKE_SFC_CLIM disable their respective tasks. ``GRID_DIR``, ``OROG_DIR``, and ``SFC_CLIMO_DIR`` specify the directories where pre-generated grid, orography, and surface climatology files are located (all three sets of files *may* be placed in the same directory location). By default, the ``RUN_TASK_MAKE_*`` -flags are set to ``TRUE`` in ``config_defaults.sh``. This means that the workflow will +flags are set to ``TRUE`` in ``config_defaults.yaml``. This means that the workflow will run the ``make_grid``, ``make_orog``, and ``make_sfc_climo`` tasks by default. .. _DefineExptName: @@ -48,7 +48,7 @@ run the ``make_grid``, ``make_orog``, and ``make_sfc_climo`` tasks by default. How do I define an experiment name? =================================== -The name of the experiment is set in the ``config.sh`` file using the variable ``EXPT_SUBDIR``. +The name of the experiment is set in the ``config.yaml`` file using the variable ``EXPT_SUBDIR``. See :numref:`Section %s ` and/or :numref:`Section %s ` for more details. @@ -58,7 +58,7 @@ See :numref:`Section %s ` and/or :numref:`Section %s ` @@ -98,7 +98,7 @@ advance the workflow, the job will be resubmitted. How do I change the grid? =========================== -To change the predefined grid, modify the ``PREDEF_GRID_NAME`` variable in the ``config.sh`` script (see :numref:`Section %s ` for details on creating and modifying the ``config.sh`` file). The four supported predefined grids for the SRW Application v2.0.0 release were: +To change the predefined grid, modify the ``PREDEF_GRID_NAME`` variable in the ``config.yaml`` script (see :numref:`Section %s ` for details on creating and modifying the ``config.yaml`` file). The four supported predefined grids for the SRW Application v2.0.0 release were: .. code-block:: console @@ -126,7 +126,7 @@ To run a new experiment at a later time, users need to rerun the commands in :nu Follow any instructions output by the console. -Then, users can configure a new experiment by updating the environment variables in ``config.yaml`` to reflect the desired experiment configuration. Detailed instructions can be viewed in :numref:`Section %s `. Parameters and valid values are listed in :numref:`Chapter %s `. After adjusting the configuration file, regenerate the experiment by running python ``generate_FV3LAM_wflow.py``. Check progress by navigating to the ``$EXPTDIR`` and running ``rocotostat -w FV3LAM_wflow.xml -d FV3LAM_wflow.db -v 10``. +Then, users can configure a new experiment by updating the environment variables in ``config.yaml`` to reflect the desired experiment configuration. Detailed instructions can be viewed in :numref:`Section %s `. Parameters and valid values are listed in :numref:`Chapter %s `. After adjusting the configuration file, generate the new experiment by running python ``generate_FV3LAM_wflow.py``. Check progress by navigating to the ``$EXPTDIR`` and running ``rocotostat -w FV3LAM_wflow.xml -d FV3LAM_wflow.db -v 10``. .. _CleanUp: From 3b8068338ddff5f5b9f5b1363464523f038ec980 Mon Sep 17 00:00:00 2001 From: gspetro Date: Tue, 8 Nov 2022 15:30:05 -0500 Subject: [PATCH 08/63] reorder FAQ --- docs/UsersGuide/source/FAQ.rst | 119 ++++++++++++++++----------------- 1 file changed, 59 insertions(+), 60 deletions(-) diff --git a/docs/UsersGuide/source/FAQ.rst b/docs/UsersGuide/source/FAQ.rst index 169407af76..232f4a4919 100644 --- a/docs/UsersGuide/source/FAQ.rst +++ b/docs/UsersGuide/source/FAQ.rst @@ -4,13 +4,50 @@ FAQ **** -* :ref:`How do I turn on/off the cycle-independent workflow tasks? ` * :ref:`How do I define an experiment name? ` * :ref:`How do I change the Physics Suite Definition File (SDF)? ` -* :ref:`How do I restart a DEAD task? ` * :ref:`How do I change the grid? ` +* :ref:`How do I turn on/off the cycle-independent workflow tasks? ` +* :ref:`How do I restart a DEAD task? ` +* :ref:`How can I clean up the SRW App code if something went wrong? ` * :ref:`How do I run a new experiment? ` -* :ref:`How can I clean up the SRW App code if something went wrong during the check out, build, or run processes? ` + +.. _DefineExptName: + +=================================== +How do I define an experiment name? +=================================== + +The name of the experiment is set in the ``config.yaml`` file using the variable ``EXPT_SUBDIR``. +See :numref:`Section %s ` and/or :numref:`Section %s ` for more details. + + +.. _ChangePhysics: + +========================================================= +How do I change the Physics Suite Definition File (SDF)? +========================================================= + +The SDF is set in the ``config.yaml`` file using the variable ``CCPP_PHYS_SUITE``. When users run the +``generate_FV3LAM_wflow.py`` script, the SDF file is copied from its location in the forecast +model directory to the experiment directory ``EXPTDIR``. For more information on the :term:`CCPP` physics suite parameters, see :numref:`Section %s ` + +.. _ChangeGrid: + +=========================== +How do I change the grid? +=========================== + +To change the predefined grid, modify the ``PREDEF_GRID_NAME`` variable in the ``config.yaml`` script (see :numref:`Section %s ` for details on creating and modifying the ``config.yaml`` file). The four supported predefined grids for the SRW Application v2.0.0 release were: + +.. code-block:: console + + RRFS_CONUS_3km + RRFS_CONUS_13km + RRFS_CONUS_25km + SUBCONUS_Ind_3km + +However, users can choose from a variety of predefined grids listed in :numref:`Section %s `. An option also exists to create a user-defined grid, with information available in :numref:`Chapter %s `. However, the user-defined grid option is not fully-supported for this release and is provided for informational purposes only. .. _CycleInd: @@ -42,26 +79,6 @@ three sets of files *may* be placed in the same directory location). By default, flags are set to ``TRUE`` in ``config_defaults.yaml``. This means that the workflow will run the ``make_grid``, ``make_orog``, and ``make_sfc_climo`` tasks by default. -.. _DefineExptName: - -=================================== -How do I define an experiment name? -=================================== - -The name of the experiment is set in the ``config.yaml`` file using the variable ``EXPT_SUBDIR``. -See :numref:`Section %s ` and/or :numref:`Section %s ` for more details. - - -.. _ChangePhysics: - -========================================================= -How do I change the Physics Suite Definition File (SDF)? -========================================================= - -The SDF is set in the ``config.yaml`` file using the variable ``CCPP_PHYS_SUITE``. When users run the -``generate_FV3LAM_wflow.py`` script, the SDF file is copied from its location in the forecast -model directory to the experiment directory ``EXPTDIR``. For more information on the :term:`CCPP` physics suite parameters, see :numref:`Section %s ` - .. _RestartTask: ============================= @@ -92,43 +109,6 @@ where ``-c`` specifies the cycle date (first column of rocotostat output) and `` (second column of rocotostat output). After using ``rocotorewind``, the next time ``rocotorun`` is used to advance the workflow, the job will be resubmitted. -.. _ChangeGrid: - -=========================== -How do I change the grid? -=========================== - -To change the predefined grid, modify the ``PREDEF_GRID_NAME`` variable in the ``config.yaml`` script (see :numref:`Section %s ` for details on creating and modifying the ``config.yaml`` file). The four supported predefined grids for the SRW Application v2.0.0 release were: - -.. code-block:: console - - RRFS_CONUS_3km - RRFS_CONUS_13km - RRFS_CONUS_25km - SUBCONUS_Ind_3km - -However, users can choose from a variety of predefined grids listed in :numref:`Section %s `. An option also exists to create a user-defined grid, with information available in :numref:`Chapter %s `. However, the user-defined grid option is not fully-supported for this release and is provided for informational purposes only. - - -.. _NewExpt: - -================================== -How do I run a new experiment? -================================== - -To run a new experiment at a later time, users need to rerun the commands in :numref:`Section %s ` that reactivate the regional workflow python environment: - -.. code-block:: console - - source - module use - module load wflow_ - -Follow any instructions output by the console. - -Then, users can configure a new experiment by updating the environment variables in ``config.yaml`` to reflect the desired experiment configuration. Detailed instructions can be viewed in :numref:`Section %s `. Parameters and valid values are listed in :numref:`Chapter %s `. After adjusting the configuration file, generate the new experiment by running python ``generate_FV3LAM_wflow.py``. Check progress by navigating to the ``$EXPTDIR`` and running ``rocotostat -w FV3LAM_wflow.xml -d FV3LAM_wflow.db -v 10``. - - .. _CleanUp: =============================================================== @@ -154,3 +134,22 @@ To remove all build artifacts, run: ./devclean.sh --clean OR ./devclean.sh -a + +.. _NewExpt: + +================================== +How can I run a new experiment? +================================== + +To run a new experiment at a later time, users need to rerun the commands in :numref:`Section %s ` that reactivate the regional workflow python environment: + +.. code-block:: console + + source + module use + module load wflow_ + +Follow any instructions output by the console. + +Then, users can configure a new experiment by updating the environment variables in ``config.yaml`` to reflect the desired experiment configuration. Detailed instructions can be viewed in :numref:`Section %s `. Parameters and valid values are listed in :numref:`Chapter %s `. After adjusting the configuration file, generate the new experiment by running python ``generate_FV3LAM_wflow.py``. Check progress by navigating to the ``$EXPTDIR`` and running ``rocotostat -w FV3LAM_wflow.xml -d FV3LAM_wflow.db -v 10``. + From ea7bb2913ec7d4f1f593f303fc58d49be0ba1eb1 Mon Sep 17 00:00:00 2001 From: gspetro Date: Tue, 8 Nov 2022 16:10:18 -0500 Subject: [PATCH 09/63] FAQ updates --- docs/UsersGuide/source/FAQ.rst | 43 +++++++++++++++++++++++++++++----- 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/docs/UsersGuide/source/FAQ.rst b/docs/UsersGuide/source/FAQ.rst index 232f4a4919..a726ea01c9 100644 --- a/docs/UsersGuide/source/FAQ.rst +++ b/docs/UsersGuide/source/FAQ.rst @@ -4,6 +4,7 @@ FAQ **** +* :ref:`How do I know if I correctly modified config.yaml? ` * :ref:`How do I define an experiment name? ` * :ref:`How do I change the Physics Suite Definition File (SDF)? ` * :ref:`How do I change the grid? ` @@ -12,11 +13,31 @@ FAQ * :ref:`How can I clean up the SRW App code if something went wrong? ` * :ref:`How do I run a new experiment? ` +.. _CorrectConfig: + +========================================================= +How do I know if I correctly modified ``config.yaml``? +========================================================= + +To determine whether ``config.yaml`` file adjustments are valid, users can run the following script from the ``ush`` directory after loading the regional workflow: + +.. code-block:: console + + ./config_utils.py -c $PWD/config.yaml -v $PWD/config_defaults.yaml + +A correct ``config.yaml`` file will output a ``SUCCESS`` message. A ``config.yaml`` file with problems will output a ``FAILURE`` message describing the problem. For example: + +.. code-block:: console + + INVALID ENTRY: EXTRN_MDL_FILES_ICS=[] + FAILURE + + .. _DefineExptName: -=================================== +==================================== How do I define an experiment name? -=================================== +==================================== The name of the experiment is set in the ``config.yaml`` file using the variable ``EXPT_SUBDIR``. See :numref:`Section %s ` and/or :numref:`Section %s ` for more details. @@ -115,19 +136,21 @@ advance the workflow, the job will be resubmitted. How can I clean up the SRW App code if something went wrong? =============================================================== -The ``ufs-srweather-app`` repository contains a ``devclean.sh`` convenience script. This script can be used to clean up code if something goes wrong when checking out externals, building the app, or running the app. For complete usage instructions, run: +The ``ufs-srweather-app`` repository contains a ``devclean.sh`` convenience script. This script can be used to clean up code if something goes wrong when checking out externals or building the application. To view usage instructions and to get help, run with the ``-h`` flag: .. code-block:: console ./devclean.sh -h -To remove externals, run: +Basic options allow removing the build directory, all build artifacts (build, bin, lib, share, and more), and removing all the submodules/subcomponents. + +To remove the ``build`` directory, run: .. code-block:: console - ./devclean.sh --sub-modules + ./devclean.sh --remove -To remove all build artifacts, run: +To remove all build artifacts (including ``build``, ``bin``, ``lib``, and ``share``), run: .. code-block:: console @@ -135,6 +158,14 @@ To remove all build artifacts, run: OR ./devclean.sh -a +To remove external submodules, run: + +.. code-block:: console + + ./devclean.sh --sub-modules + +Users will need to check out the external submodules again before building the application. + .. _NewExpt: ================================== From 08ccde5571bdf8b7b0b98010bfe5b511157e0e3e Mon Sep 17 00:00:00 2001 From: gspetro Date: Tue, 8 Nov 2022 16:11:52 -0500 Subject: [PATCH 10/63] FAQ updates --- docs/UsersGuide/source/FAQ.rst | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/UsersGuide/source/FAQ.rst b/docs/UsersGuide/source/FAQ.rst index a726ea01c9..3ac81aeea2 100644 --- a/docs/UsersGuide/source/FAQ.rst +++ b/docs/UsersGuide/source/FAQ.rst @@ -142,8 +142,6 @@ The ``ufs-srweather-app`` repository contains a ``devclean.sh`` convenience scri ./devclean.sh -h -Basic options allow removing the build directory, all build artifacts (build, bin, lib, share, and more), and removing all the submodules/subcomponents. - To remove the ``build`` directory, run: .. code-block:: console From f65c81453aaaa2f32307a790e645ffb3b2d2d551 Mon Sep 17 00:00:00 2001 From: gspetro Date: Tue, 8 Nov 2022 17:51:03 -0500 Subject: [PATCH 11/63] Rocoto Ch edits --- docs/UsersGuide/source/ConfigWorkflow.rst | 2 +- docs/UsersGuide/source/FAQ.rst | 12 ++++++------ docs/UsersGuide/source/RocotoInfo.rst | 14 +++++++------- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/UsersGuide/source/ConfigWorkflow.rst b/docs/UsersGuide/source/ConfigWorkflow.rst index c85e1c085d..cb1a7211ac 100644 --- a/docs/UsersGuide/source/ConfigWorkflow.rst +++ b/docs/UsersGuide/source/ConfigWorkflow.rst @@ -920,7 +920,7 @@ Non-default parameters for the ``make_lbcs`` task are set in the ``task_make_lbc FORECAST Configuration Parameters ===================================== -Non-default parameters for the ``run_fcst`` task are set in the ``task_run_fcst`` section of the ``config.yaml`` file. +Non-default parameters for the ``run_fcst`` task are set in the ``task_run_fcst:`` section of the ``config.yaml`` file. Basic Task Parameters --------------------------------- diff --git a/docs/UsersGuide/source/FAQ.rst b/docs/UsersGuide/source/FAQ.rst index 3ac81aeea2..c4676b3b90 100644 --- a/docs/UsersGuide/source/FAQ.rst +++ b/docs/UsersGuide/source/FAQ.rst @@ -39,7 +39,7 @@ A correct ``config.yaml`` file will output a ``SUCCESS`` message. A ``config.yam How do I define an experiment name? ==================================== -The name of the experiment is set in the ``config.yaml`` file using the variable ``EXPT_SUBDIR``. +The name of the experiment is set in the ``workflow:`` section of the ``config.yaml`` file using the variable ``EXPT_SUBDIR``. See :numref:`Section %s ` and/or :numref:`Section %s ` for more details. @@ -49,9 +49,9 @@ See :numref:`Section %s ` and/or :numref:`Section %s ` +model directory to the experiment directory ``EXPTDIR``. For more information on the :term:`CCPP` physics suite parameters, see :numref:`Section %s `. .. _ChangeGrid: @@ -59,7 +59,7 @@ model directory to the experiment directory ``EXPTDIR``. For more information on How do I change the grid? =========================== -To change the predefined grid, modify the ``PREDEF_GRID_NAME`` variable in the ``config.yaml`` script (see :numref:`Section %s ` for details on creating and modifying the ``config.yaml`` file). The four supported predefined grids for the SRW Application v2.0.0 release were: +To change the predefined grid, modify the ``PREDEF_GRID_NAME`` variable in the ``task_run_fcst:`` section of the ``config.yaml`` script (see :numref:`Section %s ` for details on creating and modifying the ``config.yaml`` file). The four supported predefined grids for the SRW Application v2.0.0 release were: .. code-block:: console @@ -106,7 +106,7 @@ run the ``make_grid``, ``make_orog``, and ``make_sfc_climo`` tasks by default. How do I restart a DEAD task? ============================= -On platforms that utilize Rocoto workflow software (such as NCAR’s Cheyenne machine), if +On platforms that utilize Rocoto workflow software (such as NCAR's Cheyenne machine), if something goes wrong with the workflow, a task may end up in the DEAD state: .. code-block:: console @@ -148,7 +148,7 @@ To remove the ``build`` directory, run: ./devclean.sh --remove -To remove all build artifacts (including ``build``, ``bin``, ``lib``, and ``share``), run: +To remove all build artifacts (including ``build``, ``exec``, ``lib``, and ``share``), run: .. code-block:: console diff --git a/docs/UsersGuide/source/RocotoInfo.rst b/docs/UsersGuide/source/RocotoInfo.rst index a56ea7ad28..7557addc7d 100644 --- a/docs/UsersGuide/source/RocotoInfo.rst +++ b/docs/UsersGuide/source/RocotoInfo.rst @@ -61,7 +61,7 @@ or the launch script (``launch_FV3LAM_wflow.sh``) multiple times. 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 has been started with the ``rocotorun`` command, Rocoto can check the status of the workflow using the ``rocotostat`` command: .. code-block:: console @@ -91,7 +91,7 @@ Executing this command will generate a workflow status table similar to the foll 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 +the ``get_extrn_ics`` and ``get_extrn_lbcs`` tasks for the ``201907010000`` cycle are currently being submitted to the batch system. Note that issuing a ``rocotostat`` command without an intervening ``rocotorun`` command will not result in an @@ -101,7 +101,7 @@ reads the database file and prints the table to the screen. To see an updated ta 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: +on the grid size and computational resources available), the output of the ``rocotostat`` command should look like this: .. code-block:: console @@ -143,7 +143,7 @@ from the ``$EXPTDIR`` directory as follows: where * ``-c`` is the cycle to query in YYYYMMDDHHmm format -* ``-t`` is the task name (e.g., ``make_grid``, ``get_extrn_ics``, ``run_fcst``). See :numref:`Chapter %s ` for the default values for task name variables, which end in ``_TN``. +* ``-t`` is the task name (e.g., ``make_grid``, ``get_extrn_ics``, ``run_fcst``). The cycle and task names appear in the first and second columns of the table output by ``rocotostat``. @@ -208,7 +208,7 @@ rocotorewind ``rocotorewind`` is a tool that attempts to undo the effects of running a task. It 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 for ``rocotocheck`` -(in :numref:`section %s `), and the general usage statement looks like the following: +(in :numref:`Section %s `), and the general usage statement looks like this: .. code-block:: console @@ -216,7 +216,7 @@ command will rerun tasks in the workflow. The command line options are the same 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 +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 the ``rocotorewind`` command to rerun the forecast task from ``$EXPTDIR`` is: @@ -228,7 +228,7 @@ 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: +use this command to rerun the ``make_ics`` task from the ``$EXPTDIR`` is: .. code-block:: console From 138db9f1355a155603d53b95adbe1e8ad5766c72 Mon Sep 17 00:00:00 2001 From: gspetro Date: Tue, 8 Nov 2022 19:37:20 -0500 Subject: [PATCH 12/63] Quickstart edits --- docs/UsersGuide/source/Quickstart.rst | 49 ++++++--------------------- docs/UsersGuide/source/RunSRW.rst | 10 ++++-- 2 files changed, 18 insertions(+), 41 deletions(-) diff --git a/docs/UsersGuide/source/Quickstart.rst b/docs/UsersGuide/source/Quickstart.rst index 4b96110a89..2a995ee4bb 100644 --- a/docs/UsersGuide/source/Quickstart.rst +++ b/docs/UsersGuide/source/Quickstart.rst @@ -9,7 +9,7 @@ This chapter provides a brief summary of how to build and run the SRW Applicatio Install the HPC-Stack =========================== -SRW App users who are not working on a `Level 1 `__ platform will need to install the :term:`HPC-Stack` prior to building the SRW App on a new machine. Installation instructions appear in the :doc:`HPC-Stack documentation `. The steps will vary slightly depending on the user's platform. However, in all cases, the process involves cloning the `HPC-Stack repository `__, creating and entering a build directory, and invoking ``cmake`` and ``make`` commands to build the stack. This process will create a number of modulefiles and scripts that will be used for setting up the build environment for the SRW App. +SRW App users who are not working on a `Level 1 `__ platform will need to install the prerequisite software stack via :term:`HPC-Stack` prior to building the SRW App on a new machine. Installation instructions appear in the :doc:`HPC-Stack documentation `. The steps will vary slightly depending on the user's platform. However, in all cases, the process involves (1) cloning the `HPC-Stack repository `__, (2) creating and entering a build directory, and (3) invoking ``cmake`` and ``make`` commands to build the stack. This process will create a number of modulefiles and scripts that will be used for setting up the build environment for the SRW App. Once the HPC-Stack has been successfully installed, users can move on to building the SRW Application. @@ -32,41 +32,17 @@ For a detailed explanation of how to build and run the SRW App on any supported cd ufs-srweather-app ./manage_externals/checkout_externals - #. Set up the build environment and build the executables. + #. Set up the build environment and build the executables: - * **Option 1:** - - .. code-block:: console + .. code-block:: console - ./devbuild.sh --platform= - - where ```` is replaced with the name of the user's platform/system. Valid values are: ``cheyenne`` | ``gaea`` | ``hera`` | ``jet`` | ``macos`` | ``noaacloud`` | ``odin`` | ``orion`` | ``singularity`` | ``wcoss2`` - - * **Option 2:** - - .. code-block:: console - - source etc/lmod-setup.sh - - where ```` refers to the user's platform (e.g., ``macos``, ``gaea``, ``odin``, ``singularity``). - - Users will also need to load the "build" modulefile appropriate to their system. On Level 3 & 4 systems, users can adapt an existing modulefile (such as ``build_macos_gnu``) to their system. + ./devbuild.sh --platform= - .. code-block:: console + where ```` is replaced with the name of the user's platform/system. Valid values include: ``cheyenne`` | ``gaea`` | ``hera`` | ``jet`` | ``linux`` | ``macos`` | ``noaacloud`` | ``orion`` | ``wcoss2`` - module use - module load build__ + See :numref:`Section %s ` for additional details or try the CMake build approach in :numref:`Section %s ` if this does not work. - From the top-level ``ufs-srweather-app`` directory, run: - - .. code-block:: console - - mkdir build - cd build - cmake .. -DCMAKE_INSTALL_PREFIX=.. - make -j 4 >& build.out & - - #. Download and stage data (both the fix files and the :term:`IC/LBC ` files) according to the instructions in :numref:`Section %s ` (if on a Level 2-4 system). + #. Download and stage data (both the fix files and the :term:`IC/LBC ` files) according to the instructions in :numref:`Section %s ` (if on a `Level 2-4 `__ system). #. Load the python environment for the regional workflow. Users on Level 2-4 systems will need to use one of the existing ``wflow_`` modulefiles (e.g., ``wflow_macos``) and adapt it to their system. @@ -95,18 +71,15 @@ For a detailed explanation of how to build and run the SRW App on any supported cd ush cp config.community.yaml config.yaml - Users will need to adjust the experiment parameters in the ``config.yaml`` file to suit the needs of their experiment (e.g., date, time, grid, physics suite, etc.). More detailed guidance is available in :numref:`Section %s `. Parameters and valid values are listed in :numref:`Chapter %s `. To determine whether the ``config.yaml`` file adjustments are valid, users can run: + Users will need to adjust the experiment parameters in the ``config.yaml`` file to suit the needs of their experiment (e.g., date, grid, physics suite, etc.). At a minimum, users need to modify the ``MACHINE`` parameter. In most cases, users will need to specify the ``ACCOUNT`` parameter and the location of the experiment data (see :numref:`Section %s ` for Level 1 system default locations). Additional changes may be required based on the system and experiment. More detailed guidance is available in :numref:`Section %s `. Parameters and valid values are listed in :numref:`Chapter %s `. + + To determine whether the ``config.yaml`` file adjustments are valid, users can run: .. code-block:: console ./config_utils.py -c $PWD/config.yaml -v $PWD/config_defaults.yaml - A correct ``config.yaml`` file will output a ``SUCCESS`` message. A ``config.yaml`` file with problems will output a ``FAILURE`` message describing the problem. For example: - - .. code-block:: console - - INVALID ENTRY: EXTRN_MDL_FILES_ICS=[] - FAILURE + A correct ``config.yaml`` file will output a ``SUCCESS`` message. A ``config.yaml`` file with problems will output a ``FAILURE`` message describing the problem. #. Generate the experiment workflow. diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index 13be1669e8..c95cb560af 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -460,7 +460,7 @@ The default settings in this file include a predefined 25-km :term:`CONUS` grid .. note:: - Users who are accustomed to the former shell script workflow can reuse and old ``config.sh`` file by setting ``EXPT_CONFIG_FN: "config.sh"`` in ``config_defaults.yaml``. Alternatively, users can convert their ``config.sh`` file to a ``config.yaml`` file by running: + Users who are accustomed to the former shell script workflow can reuse an old ``config.sh`` file by setting ``EXPT_CONFIG_FN: "config.sh"`` in ``config_defaults.yaml``. Alternatively, users can convert their ``config.sh`` file to a ``config.yaml`` file by running: .. code-block:: console @@ -477,7 +477,7 @@ Next, users should edit the new ``config.yaml`` file to customize it for their m Generic Linux and MacOS users should refer to :numref:`Section %s ` for additional details on configuring an experiment and python environment. -Sample ``config.yaml`` settings are indicated below for Level 1 platforms. Detailed guidance applicable to all systems can be found in :numref:`Chapter %s: Configuring the Workflow `, which discusses each variable and the options available. Additionally, information about the four predefined Limited Area Model (LAM) Grid options can be found in :numref:`Chapter %s: Limited Area Model (LAM) Grids `. +Sample ``config.yaml`` settings are indicated below for Level 1 platforms. At a minimum, users need to modify the ``MACHINE`` and ``ACCOUNT`` parameters. In most cases, users will need to specify the location of the experiment data. Detailed guidance applicable to all systems can be found in :numref:`Chapter %s: Configuring the Workflow `, which discusses each variable and the options available. Additionally, information about the four predefined Limited Area Model (LAM) Grid options can be found in :numref:`Chapter %s: Limited Area Model (LAM) Grids `. On Level 1 systems, the following fields will need to be updated or added to the appropriate section of the ``config.yaml`` file in order to run the out-of-the-box SRW App case: @@ -508,7 +508,11 @@ where: * ```` refers to a subdirectory containing the experiment data from a particular model. Valid values on Level 1 systems correspond to the valid values for ``EXTRN_MDL_NAME_ICS`` and ``EXTRN_MDL_NAME_LBCS`` (see :numref:`Chapter %s ` for options). * ```` refers to one of 3 possible data formats: ``grib2``, ``nemsio``, or ``netcdf``. * ```` refers to a subdirectory containing data for the :term:`cycle` date (in YYYYMMDDHH format). - + +.. note:: + + On ``JET``, users must also add ``PARTITION_DEFAULT: xjet`` and ``PARTITION_FCST: xjet`` to the ``platform:`` section of the ``config.yaml`` file. + For example, to run the out-of-the-box experiment on Gaea, add or modify variables in the ``user``, ``workflow``, ``task_get_extrn_ics``, and ``task_get_extrn_lbcs`` sections of ``config.yaml`` (unmodified variables are not shown in this example): .. code-block:: From 64cea290aa5f00003b120e266c3dde84f3c3bfb5 Mon Sep 17 00:00:00 2001 From: gspetro Date: Wed, 9 Nov 2022 08:24:55 -0500 Subject: [PATCH 13/63] add table label/Xlink --- docs/UsersGuide/source/Quickstart.rst | 4 ++-- docs/UsersGuide/source/RunSRW.rst | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/UsersGuide/source/Quickstart.rst b/docs/UsersGuide/source/Quickstart.rst index 2a995ee4bb..6176feb540 100644 --- a/docs/UsersGuide/source/Quickstart.rst +++ b/docs/UsersGuide/source/Quickstart.rst @@ -40,9 +40,9 @@ For a detailed explanation of how to build and run the SRW App on any supported where ```` is replaced with the name of the user's platform/system. Valid values include: ``cheyenne`` | ``gaea`` | ``hera`` | ``jet`` | ``linux`` | ``macos`` | ``noaacloud`` | ``orion`` | ``wcoss2`` - See :numref:`Section %s ` for additional details or try the CMake build approach in :numref:`Section %s ` if this does not work. + For additional details, see :numref:`Section %s `, or view :numref:`Section %s ` to try the CMake build approach. - #. Download and stage data (both the fix files and the :term:`IC/LBC ` files) according to the instructions in :numref:`Section %s ` (if on a `Level 2-4 `__ system). + #. If on a `Level 2-4 `__ system), download and stage data (both the fix files and the :term:`IC/LBC ` files) according to the instructions in :numref:`Section %s `. Standard data locations for Level 1 systems appear in :numref:`Table %s `. #. Load the python environment for the regional workflow. Users on Level 2-4 systems will need to use one of the existing ``wflow_`` modulefiles (e.g., ``wflow_macos``) and adapt it to their system. diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index c95cb560af..a2d5a4246e 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -39,6 +39,7 @@ Download and Stage the Data The SRW App requires input files to run. These include static datasets, initial and boundary conditions files, and model configuration files. On Level 1 systems, the data required to run SRW App tests are already available in the following locations: +.. _DataLocations: .. table:: Data locations for Level 1 systems +--------------+-----------------------------------------------------------------+ @@ -511,7 +512,7 @@ where: .. note:: - On ``JET``, users must also add ``PARTITION_DEFAULT: xjet`` and ``PARTITION_FCST: xjet`` to the ``platform:`` section of the ``config.yaml`` file. + On ``JET``, users should also add ``PARTITION_DEFAULT: xjet`` and ``PARTITION_FCST: xjet`` to the ``platform:`` section of the ``config.yaml`` file. For example, to run the out-of-the-box experiment on Gaea, add or modify variables in the ``user``, ``workflow``, ``task_get_extrn_ics``, and ``task_get_extrn_lbcs`` sections of ``config.yaml`` (unmodified variables are not shown in this example): From 0b048cc455e4d9e8a31acb34d230dbabce3a0e5a Mon Sep 17 00:00:00 2001 From: gspetro Date: Wed, 9 Nov 2022 09:12:39 -0500 Subject: [PATCH 14/63] update FAQ cycle-ind tasks --- docs/UsersGuide/source/FAQ.rst | 37 +++++++++++++++++---------- docs/UsersGuide/source/Quickstart.rst | 4 +-- 2 files changed, 26 insertions(+), 15 deletions(-) diff --git a/docs/UsersGuide/source/FAQ.rst b/docs/UsersGuide/source/FAQ.rst index c4676b3b90..2dfc99b596 100644 --- a/docs/UsersGuide/source/FAQ.rst +++ b/docs/UsersGuide/source/FAQ.rst @@ -49,9 +49,17 @@ See :numref:`Section %s ` and/or :numref:`Section %s `. +The SDF is set in the ``workflow:`` section of the ``config.yaml`` file using the variable ``CCPP_PHYS_SUITE``. The four supported physics suites for the SRW Application v2.1.0 release are: + +.. code-block:: console + + FV3_GFS_v16 + FV3_RRFS_v1beta + FV3_HRRR + FV3_WoFS_v0 + +When users run the ``generate_FV3LAM_wflow.py`` script, the SDF file is copied from its location in the forecast +model directory to the experiment directory ``$EXPTDIR``. For more information on the :term:`CCPP` physics suite parameters, see :numref:`Section %s `. .. _ChangeGrid: @@ -59,7 +67,7 @@ model directory to the experiment directory ``EXPTDIR``. For more information on How do I change the grid? =========================== -To change the predefined grid, modify the ``PREDEF_GRID_NAME`` variable in the ``task_run_fcst:`` section of the ``config.yaml`` script (see :numref:`Section %s ` for details on creating and modifying the ``config.yaml`` file). The four supported predefined grids for the SRW Application v2.0.0 release were: +To change the predefined grid, modify the ``PREDEF_GRID_NAME`` variable in the ``task_run_fcst:`` section of the ``config.yaml`` script (see :numref:`Section %s ` for details on creating and modifying the ``config.yaml`` file). The four supported predefined grids for the SRW Application v2.1.0 release are: .. code-block:: console @@ -81,17 +89,20 @@ are :term:`cycle-independent`, meaning that they only need to be run once per ex 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 experiment), then these tasks can be skipped, and the workflow can use those pre-generated files. This -can be done by adding the following lines to the ``config.yaml`` script before running -the ``generate_FV3LAM_wflow.py`` script: +can be done by adding the following parameters to the appropriate sections of the ``config.yaml`` script before running ``generate_FV3LAM_wflow.py``: .. 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" + workflow_switches: + RUN_TASK_MAKE_GRID: false + RUN_TASK_MAKE_OROG: false + RUN_TASK_MAKE_SFC_CLIMO: false + task_make_grid: + GRID_DIR: /path/to/directory/containing/grid/files + task_make_orog: + OROG_DIR: /path/to/directory/containing/orography/files + task_make_sfc_climo: + 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. ``GRID_DIR``, ``OROG_DIR``, and ``SFC_CLIMO_DIR`` diff --git a/docs/UsersGuide/source/Quickstart.rst b/docs/UsersGuide/source/Quickstart.rst index 6176feb540..1c3a8cab1f 100644 --- a/docs/UsersGuide/source/Quickstart.rst +++ b/docs/UsersGuide/source/Quickstart.rst @@ -42,7 +42,7 @@ For a detailed explanation of how to build and run the SRW App on any supported For additional details, see :numref:`Section %s `, or view :numref:`Section %s ` to try the CMake build approach. - #. If on a `Level 2-4 `__ system), download and stage data (both the fix files and the :term:`IC/LBC ` files) according to the instructions in :numref:`Section %s `. Standard data locations for Level 1 systems appear in :numref:`Table %s `. + #. Users on a `Level 2-4 `__ system, must download and stage data (both the fix files and the :term:`IC/LBC ` files) according to the instructions in :numref:`Section %s `. Standard data locations for Level 1 systems appear in :numref:`Table %s `. #. Load the python environment for the regional workflow. Users on Level 2-4 systems will need to use one of the existing ``wflow_`` modulefiles (e.g., ``wflow_macos``) and adapt it to their system. @@ -64,7 +64,7 @@ For a detailed explanation of how to build and run the SRW App on any supported .. note:: If users source the lmod-setup file on a system that doesn't need it, it will not cause any problems (it will simply do a ``module purge``). - #. Configure the experiment parameters. + #. Configure the experiment parameters: .. code-block:: console From f993a373c9c3cfc5ddce1d93cfedf979607bfca7 Mon Sep 17 00:00:00 2001 From: gspetro Date: Wed, 9 Nov 2022 09:16:31 -0500 Subject: [PATCH 15/63] fix code-block format --- docs/UsersGuide/source/FAQ.rst | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/docs/UsersGuide/source/FAQ.rst b/docs/UsersGuide/source/FAQ.rst index 2dfc99b596..3d5e8e0984 100644 --- a/docs/UsersGuide/source/FAQ.rst +++ b/docs/UsersGuide/source/FAQ.rst @@ -76,7 +76,7 @@ To change the predefined grid, modify the ``PREDEF_GRID_NAME`` variable in the ` RRFS_CONUS_25km SUBCONUS_Ind_3km -However, users can choose from a variety of predefined grids listed in :numref:`Section %s `. An option also exists to create a user-defined grid, with information available in :numref:`Chapter %s `. However, the user-defined grid option is not fully-supported for this release and is provided for informational purposes only. +However, users can choose from a variety of predefined grids listed in :numref:`Section %s `. An option also exists to create a user-defined grid, with information available in :numref:`Chapter %s `. However, the user-defined grid option is not fully supported for this release and is provided for informational purposes only. .. _CycleInd: @@ -92,6 +92,7 @@ these tasks can be skipped, and the workflow can use those pre-generated files. can be done by adding the following parameters to the appropriate sections of the ``config.yaml`` script before running ``generate_FV3LAM_wflow.py``: .. code-block:: console + workflow_switches: RUN_TASK_MAKE_GRID: false RUN_TASK_MAKE_OROG: false @@ -103,9 +104,7 @@ can be done by adding the following parameters to the appropriate sections of th task_make_sfc_climo: 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. ``GRID_DIR``, ``OROG_DIR``, and ``SFC_CLIMO_DIR`` +The ``RUN_TASK_MAKE_GRID``, ``RUN_TASK_MAKE_OROG``, and ``RUN_TASK_MAKE_SFC_CLIMO`` flags disable their respective tasks. ``GRID_DIR``, ``OROG_DIR``, and ``SFC_CLIMO_DIR`` specify the directories where pre-generated grid, orography, and surface climatology files are located (all three sets of files *may* be placed in the same directory location). By default, the ``RUN_TASK_MAKE_*`` flags are set to ``TRUE`` in ``config_defaults.yaml``. This means that the workflow will From d398b0ba4c116f1de0410a5be8f433dc0018b9d8 Mon Sep 17 00:00:00 2001 From: gspetro Date: Wed, 9 Nov 2022 10:38:17 -0500 Subject: [PATCH 16/63] update WM links --- docs/UsersGuide/source/Components.rst | 4 +--- docs/UsersGuide/source/Introduction.rst | 13 ++++++------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/docs/UsersGuide/source/Components.rst b/docs/UsersGuide/source/Components.rst index 27e389e1fa..3090d3f051 100644 --- a/docs/UsersGuide/source/Components.rst +++ b/docs/UsersGuide/source/Components.rst @@ -31,9 +31,7 @@ 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 (:term:`LAM`) capability :cite:`BlackEtAl2021`. The :term:`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 `__. - -.. COMMENT: Update link! +(:term:`FV3`) dynamical core configured with a Limited Area Model (:term:`LAM`) capability :cite:`BlackEtAl2021`. The :term:`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 3-, 13-, and 25-km predefined contiguous U.S. (:term:`CONUS`) domains, each with 127 vertical levels. Preliminary tools for users to define their own domain are also available in the release with full, formal support of these tools to be provided in future releases. The Extended Schmidt Gnomonic (ESG) grid is used with the FV3-LAM, which features relatively uniform grid cells across the entirety of the domain. Additional information about the FV3 dynamical core can be found in the `scientific documentation `__, the `technical documentation `__, and on the `NOAA Geophysical Fluid Dynamics Laboratory website `__. diff --git a/docs/UsersGuide/source/Introduction.rst b/docs/UsersGuide/source/Introduction.rst index afa5047434..6f4a4cd8ce 100644 --- a/docs/UsersGuide/source/Introduction.rst +++ b/docs/UsersGuide/source/Introduction.rst @@ -162,7 +162,7 @@ Atmospheric 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:t:`BlackEtAl2021`). The :term:`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` can be found `here `__. +(:term:`FV3`) dynamical core configured with a Limited Area Model (LAM) capability (:cite:t:`BlackEtAl2021`). The :term:`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` can be found `here `__. Common Community Physics Package ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -233,7 +233,7 @@ The :term:`umbrella repository` for the SRW Application is named ``ufs-srweather | Processor (UPP) | | +---------------------------------+---------------------------------------------------------+ -The UFS Weather Model contains a number of sub-repositories, which are documented `here `__. +The UFS Weather Model contains a number of sub-repositories, which are documented `here `__. .. note:: The prerequisite libraries (including NCEP Libraries and external libraries) are not included in the UFS SRW Application repository. The `HPC-Stack `__ repository assembles these prerequisite libraries. The HPC-Stack has already been built on `preconfigured (Level 1) platforms `__. However, it must be built on other systems. See the :doc:`HPC-Stack Documentation ` for details on installing the HPC-Stack. @@ -333,12 +333,12 @@ When the user generates an experiment using the ``generate_FV3LAM_wflow.py`` scr | data_table | :term:`Cycle-independent` input file (empty) | +---------------------------+--------------------------------------------------------------------------------------------------------------+ | field_table | :term:`Tracers ` in the `forecast model | - | | `__ | + | | `__ | +---------------------------+--------------------------------------------------------------------------------------------------------------+ | FV3LAM_wflow.xml | Rocoto XML file to run the workflow | +---------------------------+--------------------------------------------------------------------------------------------------------------+ | input.nml | :term:`Namelist` for the `UFS Weather Model | - | | `__ | + | | `__ | +---------------------------+--------------------------------------------------------------------------------------------------------------+ | launch_FV3LAM_wflow.sh | Symlink to the shell script of | | | ``ufs-srweather-app/ush/launch_FV3LAM_wflow.sh``, | @@ -350,7 +350,7 @@ When the user generates an experiment using the ``generate_FV3LAM_wflow.py`` scr | | (``generate_FV3LAM_wflow.py``) | +---------------------------+--------------------------------------------------------------------------------------------------------------+ | nems.configure | See `NEMS configuration file | - | | `__ | + | | `__ | +---------------------------+--------------------------------------------------------------------------------------------------------------+ | suite_{CCPP}.xml | :term:`CCPP` suite definition file used by the forecast model | +---------------------------+--------------------------------------------------------------------------------------------------------------+ @@ -451,7 +451,7 @@ A list of available documentation is shown in :numref:`Table %s `. Contributions to the `ufs-srweather-app `__ repository should follow the guidelines contained in the :ref:`SRW App Contributor's Guide `. From e660a9ebe9fc80d2f33f3f3716e626419e67db3a Mon Sep 17 00:00:00 2001 From: gspetro Date: Wed, 9 Nov 2022 14:17:15 -0500 Subject: [PATCH 17/63] Graphics, I/O updates, other minor --- .../UsersGuide/source/ContainerQuickstart.rst | 6 +- docs/UsersGuide/source/FAQ.rst | 6 +- docs/UsersGuide/source/Graphics.rst | 64 ++++++++----------- docs/UsersGuide/source/InputOutputFiles.rst | 18 +++--- docs/UsersGuide/source/Introduction.rst | 2 +- 5 files changed, 41 insertions(+), 55 deletions(-) diff --git a/docs/UsersGuide/source/ContainerQuickstart.rst b/docs/UsersGuide/source/ContainerQuickstart.rst index aabe444d8c..11f9c6aa4b 100644 --- a/docs/UsersGuide/source/ContainerQuickstart.rst +++ b/docs/UsersGuide/source/ContainerQuickstart.rst @@ -368,7 +368,7 @@ Run the following command to generate the workflow: .. code-block:: console - python generate_FV3LAM_wflow.py + ./generate_FV3LAM_wflow.py This workflow generation script creates an experiment directory and populates it with all the data needed to run through the workflow. The last line of output from this script should start with ``*/3 * * * *`` (or similar). @@ -394,8 +394,6 @@ If a task goes DEAD, it will be necessary to restart it according to the instruc :wq enter -.. COMMENT: Check the crontab command to reflect python workflow.s - where: * ```` is replaced by the actual path to the user's experiment directory, and @@ -404,7 +402,7 @@ where: New Experiment =============== -To run a new experiment in the container at a later time, users will need to rerun the commands in :numref:`Section %s ` to reactivate the regional workflow. Then, users can configure a new experiment by updating the environment variables in ``config.yaml`` to reflect the desired experiment configuration. Basic instructions appear in :numref:`Section %s ` above, and detailed instructions can be viewed in :numref:`Section %s `. After adjusting the configuration file, regenerate the experiment by running ``python generate_FV3LAM_wflow.py``. +To run a new experiment in the container at a later time, users will need to rerun the commands in :numref:`Section %s ` to reactivate the regional workflow. Then, users can configure a new experiment by updating the environment variables in ``config.yaml`` to reflect the desired experiment configuration. Basic instructions appear in :numref:`Section %s ` above, and detailed instructions can be viewed in :numref:`Section %s `. After adjusting the configuration file, regenerate the experiment by running ``./generate_FV3LAM_wflow.py``. Plot the Output =============== diff --git a/docs/UsersGuide/source/FAQ.rst b/docs/UsersGuide/source/FAQ.rst index 3d5e8e0984..42941916a3 100644 --- a/docs/UsersGuide/source/FAQ.rst +++ b/docs/UsersGuide/source/FAQ.rst @@ -107,7 +107,7 @@ can be done by adding the following parameters to the appropriate sections of th The ``RUN_TASK_MAKE_GRID``, ``RUN_TASK_MAKE_OROG``, and ``RUN_TASK_MAKE_SFC_CLIMO`` flags disable their respective tasks. ``GRID_DIR``, ``OROG_DIR``, and ``SFC_CLIMO_DIR`` specify the directories where pre-generated grid, orography, and surface climatology files are located (all three sets of files *may* be placed in the same directory location). By default, the ``RUN_TASK_MAKE_*`` -flags are set to ``TRUE`` in ``config_defaults.yaml``. This means that the workflow will +flags are set to true in ``config_defaults.yaml``. This means that the workflow will run the ``make_grid``, ``make_orog``, and ``make_sfc_climo`` tasks by default. .. _RestartTask: @@ -130,7 +130,7 @@ something goes wrong with the workflow, a task may end up in the DEAD state: 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), users can re-run the failed task using the ``rocotorewind`` command: +has been identified and fixed (by referencing the log files in ``$EXPTDIR/log``), users can re-run the failed task using the ``rocotorewind`` command: .. code-block:: console @@ -190,5 +190,5 @@ To run a new experiment at a later time, users need to rerun the commands in :nu Follow any instructions output by the console. -Then, users can configure a new experiment by updating the environment variables in ``config.yaml`` to reflect the desired experiment configuration. Detailed instructions can be viewed in :numref:`Section %s `. Parameters and valid values are listed in :numref:`Chapter %s `. After adjusting the configuration file, generate the new experiment by running python ``generate_FV3LAM_wflow.py``. Check progress by navigating to the ``$EXPTDIR`` and running ``rocotostat -w FV3LAM_wflow.xml -d FV3LAM_wflow.db -v 10``. +Then, users can configure a new experiment by updating the environment variables in ``config.yaml`` to reflect the desired experiment configuration. Detailed instructions can be viewed in :numref:`Section %s `. Parameters and valid values are listed in :numref:`Chapter %s `. After adjusting the configuration file, generate the new experiment by running ``./generate_FV3LAM_wflow.py``. Check progress by navigating to the ``$EXPTDIR`` and running ``rocotostat -w FV3LAM_wflow.xml -d FV3LAM_wflow.db -v 10``. diff --git a/docs/UsersGuide/source/Graphics.rst b/docs/UsersGuide/source/Graphics.rst index 945ee13569..2b538377e8 100644 --- a/docs/UsersGuide/source/Graphics.rst +++ b/docs/UsersGuide/source/Graphics.rst @@ -19,10 +19,9 @@ output over the :term:`CONUS` for a number of variables, including: The Python scripts are located under ``ufs-srweather-app/ush/Python``. The script ``plot_allvars.py`` plots the output from a single cycle within an experiment, while -the script ``plot_allvars_diff.py`` plots the difference between the same cycle from two different -experiments (e.g., the experiments may differ in some aspect such as the physics suite used). If +the script ``plot_allvars_diff.py`` plots the difference between the same cycle from two different experiments. 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 same cycle starting date/time and forecast hours. Other parameters may differ (e.g., the experiments may use different physics suites). Loading the Environment ========================== @@ -81,42 +80,29 @@ The Python plotting scripts also require a path to the directory where the Carto The full set of Cartopy shapefiles can be downloaded `here `__. For convenience, the small subset of files required for these Python scripts can be obtained from the `SRW Data Bucket `__. They are also available on all `Level 1 `__ platforms in the following locations: -On Cheyenne: - -.. code-block:: console - - /glade/p/ral/jntp/UFS_SRW_App/v2p0/NaturalEarth - -On Hera: - -.. code-block:: console - - /scratch2/BMC/det/UFS_SRW_App/v2p0/NaturalEarth - -On Jet: - -.. code-block:: console - - /mnt/lfs4/BMC/wrfruc/UFS_SRW_App/v2p0/NaturalEarth - -On Orion: - -.. code-block:: console - - /work/noaa/fv3-cam/UFS_SRW_App/v2p0/NaturalEarth - -On Gaea: - -.. code-block:: console - - /lustre/f2/pdata/ncep/UFS_SRW_App/v2p0/NaturalEarth - -On NOAA Cloud: - -.. code-block:: console - - /contrib/EPIC/UFS_SRW_App/v2p0/NaturalEarth +.. _DataLocations: +.. table:: Cartopy shapefile locations for Level 1 systems + + +--------------+-----------------------------------------------------------------+ + | Machine | File location | + +==============+=================================================================+ + | Cheyenne | /glade/p/ral/jntp/UFS_SRW_App/v2p1/NaturalEarth | + +--------------+-----------------------------------------------------------------+ + | Gaea | /lustre/f2/pdata/ncep/UFS_SRW_App/v2p1/NaturalEarth | + +--------------+-----------------------------------------------------------------+ + | Hera | /scratch2/BMC/det/UFS_SRW_App/v2p1/NaturalEarth | + +--------------+-----------------------------------------------------------------+ + | Jet | /mnt/lfs4/BMC/wrfruc/UFS_SRW_App/v2p1/NaturalEarth | + +--------------+-----------------------------------------------------------------+ + | NOAA Cloud | /contrib/EPIC/UFS_SRW_App/v2p1/NaturalEarth | + +--------------+-----------------------------------------------------------------+ + | Orion | /work/noaa/fv3-cam/UFS_SRW_App/v2p1/NaturalEarth | + +--------------+-----------------------------------------------------------------+ + | WCOSS2 | /lfs/h2/emc/lam/noscrub/UFS_SRW_App/v2p1/NaturalEarth | + +--------------+-----------------------------------------------------------------+ + +.. COMMENT: Can someone confirm whether the WCOSS2 location is correct? Running the Plotting Scripts ====================================== @@ -151,7 +137,7 @@ is as follows: .. code-block:: console - python plot_allvars.py 2019061500 0 12 6 /path-to/expt_dirs/test_CONUS_25km_GFSv16 /path-to/NaturalEarth RRFS_CONUS_25km + python plot_allvars.py 2019061518 0 12 3 /path-to/expt_dirs/test_community /path-to/NaturalEarth RRFS_CONUS_25km 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_GFSv16`` and ``$CDATE`` diff --git a/docs/UsersGuide/source/InputOutputFiles.rst b/docs/UsersGuide/source/InputOutputFiles.rst index a09f41dea0..1c26c553eb 100644 --- a/docs/UsersGuide/source/InputOutputFiles.rst +++ b/docs/UsersGuide/source/InputOutputFiles.rst @@ -32,12 +32,12 @@ When a user generates the regional workflow, as described in :numref:`Section %s 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 the user is running on a `Level 1/pre-configured `__ platform, in which case users can link to the existing copy of the data on their machine. See :numref:`Section %s ` for instructions. The workflow scripts link the static, grid, and date-specific files in the experiment directory. 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 generation script, as described in :numref:`Section %s `. +must be staged by the user unless the user is running on a `Level 1/pre-configured `__ platform, in which case users can link to the existing copy of the data on their machine. See :numref:`Section %s ` for instructions. The workflow scripts link the static, grid, and date-specific files in the experiment directory. 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 generation script, 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: @@ -97,7 +97,7 @@ and are shown in :numref:`Table %s `. | README.xml_templating.md | Instructions for Rocoto XML templating with Jinja. | +-----------------------------+--------------------------------------------------------------+ -Additional information related to ``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 ``regional_grid.nml`` options can be found in the `UFS_UTILS Technical Documentation `__. +Additional information related to ``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 ``regional_grid.nml`` options can be found in the `UFS_UTILS Technical Documentation `__. Migratory Route of the Input Files in the Workflow ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -144,7 +144,7 @@ experiment directory (``$EXPTDIR/YYYYMMDDHH/INPUT``) and consist of the followin * ``tmp_LBCS`` These output files are used as inputs for the UFS Weather Model, and are described in the `UFS Weather Model User's Guide -`__. ``gfs_bndy.tile7.HHH.nc`` refers to a series of IC/LBC files where ``HHH`` is the 3-digit hour of the forecast. +`__. ``gfs_bndy.tile7.HHH.nc`` refers to a series of IC/LBC files where ``HHH`` is the 3-digit hour of the forecast. UFS Weather Model ------------------ @@ -159,13 +159,13 @@ In this case, the netCDF output files are written to the ``$EXPTDIR/YYYYMMDDHH`` * ``phyfHHH.nc`` where ``HHH`` corresponds to the 3-digit forecast hour (e.g., ``dynf006.nc`` for the 6th hour of the forecast). Additional details may be found in the `UFS Weather Model User's Guide -`__. +`__. Unified Post Processor (UPP) ---------------------------- -Documentation for the UPP output files can be found in the `UPP User's Guide `__. +Documentation for the UPP output files can be found in the `UPP User's Guide `__. -For the SRW Application, the weather model netCDF output files are written to ``$EXPTDIR/YYYYMMDDHH/postprd`` and have the naming convention (file->linked to): +For the SRW Application, the Weather Model netCDF output files are written to ``$EXPTDIR/YYYYMMDDHH/postprd`` and have the naming convention (file->linked to): * ``NATLEV_{YY}{JJJ}{hh}{mm}f{fhr}00 -> {domain}.t{cyc}z.natlevf{fhr}.tmXX.grib2`` * ``PRSLEV_{YY}{JJJ}{hh}{mm}f{fhr}00 -> {domain}.t{cyc}z.prslevf{fhr}.tmXX.grib2`` @@ -184,7 +184,7 @@ UPP Product Output Tables for the UFS SRW LAM Grid: * :doc:`3D Native Hybrid Level Fields ` * :doc:`3D Pressure Level Fields ` -Use the instructions in the `UPP User's Guide `__ to make modifications to the ``fv3lam.xml`` file and to remake the flat text file, called ``postxconfig-NT-fv3lam.txt`` (default), that the UPP reads. +Use the instructions in the `UPP User's Guide `__ to make modifications to the ``fv3lam.xml`` file and to remake the flat text file, called ``postxconfig-NT-fv3lam.txt`` (default), that the UPP reads. After creating the new flat text file to reflect the changes, users will need to modify their ``config.yaml`` to point the workflow to the new text file. In ``config.yaml``, set the following: @@ -212,6 +212,8 @@ Download and unpack the external files: wget https://github.com/NOAA-EMC/EMC_post/releases/download/upp_v10.1.0/fix.tar.gz tar -xzf fix.tar.gz +.. COMMENT: Get appropriate github link! + Modify the ``config.yaml`` file to include the following lines: .. code-block:: console diff --git a/docs/UsersGuide/source/Introduction.rst b/docs/UsersGuide/source/Introduction.rst index 6f4a4cd8ce..cb711bb177 100644 --- a/docs/UsersGuide/source/Introduction.rst +++ b/docs/UsersGuide/source/Introduction.rst @@ -178,7 +178,7 @@ The SRW App supports the use of external model data in :term:`GRIB2`, :term:`NEM Unified Post-Processor (UPP) -------------------------------- -The `Unified Post Processor `__ (:term:`UPP`) processes raw output from a variety of numerical weather prediction (:term:`NWP`) models. In the SRW App, it converts data output from netCDF format to GRIB2 format. The UPP can also be used to compute a variety of useful diagnostic fields, as described in the `UPP User’s Guide `__. +The `Unified Post Processor `__ (:term:`UPP`) processes raw output from a variety of numerical weather prediction (:term:`NWP`) models. In the SRW App, it converts data output from netCDF format to GRIB2 format. The UPP can also be used to compute a variety of useful diagnostic fields, as described in the `UPP User's Guide `__. METplus Verification Suite ------------------------------ From c255f9890a48b4a0ba3f29f6bc81c18e6f54baf2 Mon Sep 17 00:00:00 2001 From: gspetro Date: Wed, 9 Nov 2022 19:08:00 -0500 Subject: [PATCH 18/63] minor updates to Graphics & Intro --- docs/UsersGuide/source/Graphics.rst | 6 +- docs/UsersGuide/source/Introduction.rst | 92 ++++++++++++------------- 2 files changed, 49 insertions(+), 49 deletions(-) diff --git a/docs/UsersGuide/source/Graphics.rst b/docs/UsersGuide/source/Graphics.rst index 2b538377e8..5e0e059a1c 100644 --- a/docs/UsersGuide/source/Graphics.rst +++ b/docs/UsersGuide/source/Graphics.rst @@ -81,7 +81,7 @@ The Python plotting scripts also require a path to the directory where the Carto The full set of Cartopy shapefiles can be downloaded `here `__. For convenience, the small subset of files required for these Python scripts can be obtained from the `SRW Data Bucket `__. They are also available on all `Level 1 `__ platforms in the following locations: -.. _DataLocations: +.. _CartopyData: .. table:: Cartopy shapefile locations for Level 1 systems +--------------+-----------------------------------------------------------------+ @@ -137,7 +137,7 @@ is as follows: .. code-block:: console - python plot_allvars.py 2019061518 0 12 3 /path-to/expt_dirs/test_community /path-to/NaturalEarth RRFS_CONUS_25km + python plot_allvars.py 2019061518 0 12 6 /path-to/expt_dirs/test_community /path-to/NaturalEarth RRFS_CONUS_25km 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_GFSv16`` and ``$CDATE`` @@ -158,7 +158,7 @@ command line arguments: #. The base directory ``CARTOPY_DIR`` of the cartopy shapefiles. The script will look for the shapefiles (``*.shp``) in the directory ``$CARTOPY_DIR/shapefiles/natural_earth/cultural``. #. The name ``POST_OUTPUT_DOMAIN_NAME`` of the native grid used in the forecasts (this must be the same for the two forecasts) -An example of plotting differences from two experiments for the same date and predefined domain where one uses the "FV3_GFS_v16" suite definition file (SDF) and one using the "FV3_RRFS_v1beta" SDF is as follows: +An example of plotting differences from two experiments for the same date and predefined domain where one uses the ``FV3_GFS_v16`` suite definition file (SDF) and one uses the ``FV3_RRFS_v1beta`` SDF is as follows: .. code-block:: console diff --git a/docs/UsersGuide/source/Introduction.rst b/docs/UsersGuide/source/Introduction.rst index cb711bb177..2d20e6d74f 100644 --- a/docs/UsersGuide/source/Introduction.rst +++ b/docs/UsersGuide/source/Introduction.rst @@ -6,7 +6,7 @@ Introduction The Unified Forecast System (:term:`UFS`) is a community-based, coupled, comprehensive Earth modeling system. NOAA's operational model suite for numerical weather prediction (:term:`NWP`) is quickly transitioning to the UFS from a number of different modeling systems. The UFS enables research, development, and contribution opportunities within the broader :term:`Weather Enterprise` (including government, industry, and academia). For more information about the UFS, visit the `UFS Portal `__. -The UFS includes `multiple applications `__ that support different forecast durations and spatial domains. This documentation describes the UFS Short-Range Weather (SRW) Application, which targets predictions of atmospheric behavior on a limited spatial domain and on time scales from minutes to several days. The SRW Application v2.1.0 release includes a prognostic atmospheric model, pre- and post-processing, and a community workflow for running the system end-to-end. These components are documented within this User's Guide and supported through the `GitHub Discussions `__ forum. New and improved capabilities for the v2.0.0 release included the addition of a verification package (METplus) for both deterministic and ensemble simulations and support for four stochastically perturbed physics schemes. This v2.1.0 release includes: +The UFS includes `multiple applications `__ that support different forecast durations and spatial domains. This documentation describes the UFS Short-Range Weather (SRW) Application, which targets predictions of atmospheric behavior on a limited spatial domain and on time scales from minutes to several days. The SRW Application v2.1.0 release includes a prognostic atmospheric model, pre- and post-processing, and a community workflow for running the system end-to-end. These components are documented within this User's Guide and supported through the `GitHub Discussions `__ forum. New and improved capabilities for the v2.1.0 release included the addition of a verification package (METplus) for both deterministic and ensemble simulations and support for four stochastically perturbed physics schemes. This v2.1.0 release includes: * Bug fixes since the v2.0.0 release * Conversion to a Python workflow (from the former shell workflow) @@ -75,7 +75,7 @@ The instructions in this documentation assume that users have certain background Additional background knowledge in the following areas could be helpful: -* High-Performance Computing (HPC) Systems for those running the SRW App on an HPC system +* High-Performance Computing (HPC) Systems (for those running the SRW App on an HPC system) * Programming (particularly Python) for those interested in contributing to the SRW App code * Creating an SSH Tunnel to access HPC systems from the command line * Containerization @@ -93,7 +93,7 @@ The UFS SRW Application has been designed so that any sufficiently up-to-date ma * >82 GB disk space * 53 GB input data for a standard collection of global data, or "fix" file data (topography, climatology, observational data) for a short 12-hour test forecast on the :term:`CONUS` 25km domain. See data download instructions in :numref:`Section %s `. - * 8 GB for :term:`HPC-Stack` full installation + * 8 GB for full :term:`HPC-Stack` installation * 3 GB for ``ufs-srweather-app`` installation * 1 GB for boundary conditions for a short 12-hour test forecast on the CONUS 25km domain. See data download instructions in :numref:`Section %s `. * 17 GB for a 12-hour test forecast on the CONUS 25km domain, with model output saved hourly. @@ -106,7 +106,7 @@ The UFS SRW Application has been designed so that any sufficiently up-to-date ma * gcc v9+, ifort v18+, and clang v9+ (macOS, native Apple clang, LLVM clang, GNU) have been tested -* Python v3.6+, including prerequisite packages ``jinja2``, ``pyyaml`` and ``f90nml`` +* Python v3.6+, including prerequisite packages ``jinja2``, ``pyyaml``, and ``f90nml`` * Python packages ``scipy``, ``matplotlib``, ``pygrib``, ``cartopy``, and ``pillow`` are required for users who would like to use the provided graphics scripts. @@ -125,11 +125,11 @@ The following software is also required to run the SRW Application, but the :ter * CMake v3.20+ -* MPI (MPICH, OpenMPI, or other implementation) +* :term:`MPI` (MPICH, OpenMPI, or other implementation) * Only **MPICH** or **OpenMPI** can be built with HPC-Stack. Other implementations must be installed separately by the user (if desired). -For MacOS systems, some additional software packages are needed. When possible, it is recommended that users install and/or upgrade this software (along with software listed above) using the `Homebrew `__ package manager for MacOS. See :ref:`Chapter 3 ` and :numref:`Chapter %s ` for further guidance on installing these prerequisites on MacOS. +For MacOS systems, some additional software packages are needed. When possible, it is recommended that users install and/or upgrade this software (along with software listed above) using the `Homebrew `__ package manager for MacOS. See :doc:`HPC-Stack Documentation: Chapter 3 ` and :numref:`Chapter %s ` for further guidance on installing these prerequisites on MacOS. * bash v4.x * GNU compiler suite v11 or higher with gfortran @@ -153,7 +153,7 @@ SRW App Components Overview Pre-Processor Utilities and Initial Conditions ------------------------------------------------ -The SRW Application includes a number of pre-processing utilities that initialize and prepare the model. Tasks include generating a regional grid along with :term:`orography` and surface climatology files for that grid. One pre-processing utility converts the raw external model data into initial and lateral boundary condition files in netCDF format. Later, these files are used as input to the atmospheric model (FV3-LAM). Additional information about the pre-processor utilities can be found in :numref:`Chapter %s `, in the `UFS_UTILS Technical Documentation `__, and in the `UFS_UTILS Scientific Documentation `__. +The SRW Application includes a number of pre-processing utilities that initialize and prepare the model. Tasks include generating a regional grid along with :term:`orography` and surface climatology files for that grid. Additional information about the pre-processor utilities can be found in :numref:`Chapter %s `, in the `UFS_UTILS Technical Documentation `__, and in the `UFS_UTILS Scientific Documentation `__. Forecast Model ----------------- @@ -162,12 +162,12 @@ Atmospheric 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:t:`BlackEtAl2021`). The :term:`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` can be found `here `__. +(:term:`FV3`) dynamical core configured with a Limited Area Model (:term:`LAM`) capability (:cite:t:`BlackEtAl2021`). The :term:`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` can be found `here `__. Common Community Physics Package ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -The `Common Community Physics Package `__ (:term:`CCPP`) supports interoperable atmospheric physics and land surface model options. Atmospheric physics are a set of numerical methods describing small-scale processes such as clouds, turbulence, radiation, and their interactions. The most recent release includes four supported physics suites. +The `Common Community Physics Package `__ (:term:`CCPP`) supports interoperable atmospheric physics and land surface model options. Atmospheric physics are a set of numerical methods describing small-scale processes such as clouds, turbulence, radiation, and their interactions. The most recent SRW App release includes four supported physics suites. Data Format ^^^^^^^^^^^^^^^^^^^^^^ @@ -197,7 +197,7 @@ The SRW Application has a portable CMake-based build system that packages togeth The SRW Application allows for configuration of various elements of the workflow. For example, users can modify the parameters of the atmospheric model, such as start and end dates, duration, time step, and the physics suite used for the simulation. More information on how to do this is available in :numref:`Section %s `. -The SRW Application has been tested on a variety of platforms widely used by researchers, including NOAA High-Performance Computing (HPC) systems (e.g., Hera, Orion), cloud environments, and generic Linux and MacOS systems. Four `levels of support `__ have been defined for the SRW Application. Preconfigured (Level 1) systems already have the required external libraries available in a central location (via :term:`HPC-Stack`). The SRW Application is expected to build and run out-of-the-box on these systems, and users can :ref:`download the SRW App code ` without first installing prerequisites. On other platforms (Levels 2-4), the SRW App can be :ref:`run within a container ` that includes the HPC-Stack, or the required libraries will need to be installed as part of the :ref:`SRW Application build ` process. Once these prerequisite libraries are installed, applications and models should build and run successfully. However, users may need to perform additional troubleshooting on Level 3 or 4 systems since little or no pre-release testing has been conducted on these systems. +The SRW Application has been tested on a variety of platforms widely used by researchers, including NOAA High-Performance Computing (HPC) systems (e.g., Hera, Orion), cloud environments, and generic Linux and MacOS systems. Four `levels of support `__ have been defined for the SRW Application. Preconfigured (Level 1) systems already have the required external libraries available in a central location (via :term:`HPC-Stack`). The SRW Application is expected to build and run out-of-the-box on these systems, and users can :ref:`download the SRW App code ` without first installing prerequisites. On other platforms (Levels 2-4), the SRW App can be :ref:`run within a container ` that includes the prerequisite software; otherwise, the required libraries will need to be installed as part of the :ref:`SRW Application build ` process. Once these prerequisite libraries are installed, applications and models should build and run successfully. However, users may need to perform additional troubleshooting on Level 3 or 4 systems since little or no pre-release testing has been conducted on these systems. @@ -262,25 +262,25 @@ The ``ufs-srweather-app`` :term:`umbrella repository` structure is determined by ├── (share) ├── scripts ├── sorc - │ ├── CMakeLists.txt - │ ├── (gsi) - │ ├── (rrfs_utl) - │ ├── (UPP) - │ │ ├── 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 + │ ├── CMakeLists.txt + │ ├── (gsi) + │ ├── (rrfs_utl) + │ ├── (UPP) + │ │ ├── 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 ├── tests/WE2E ├── ush │ ├── bash_utils @@ -291,28 +291,28 @@ The ``ufs-srweather-app`` :term:`umbrella repository` structure is determined by │ └── wrappers └── versions -SRW App Sub-Directories +SRW App Subdirectories ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -:numref:`Table %s ` describes the contents of the most important sub-directories. :numref:`Table %s ` provides and in-depth explanation of the ``ufs-srweather-app`` directories. +:numref:`Table %s ` describes the contents of the most important subdirectories. :numref:`Table %s ` provides an in-depth explanation of the ``ufs-srweather-app`` directories. .. _Subdirectories: .. table:: Sub-directories of the regional workflow - +-------------------------+---------------------------------------------------------+ - | **Directory Name** | **Description** | - +=========================+=========================================================+ - | 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 | - +-------------------------+---------------------------------------------------------+ + +-------------------------+----------------------------------------------------+ + | **Directory Name** | **Description** | + +=========================+====================================================+ + | jobs | J-job scripts launched by Rocoto | + +-------------------------+----------------------------------------------------+ + | modulefiles | Files used to load modules needed for building and | + | | running the workflow | + +-------------------------+----------------------------------------------------+ + | scripts | Scripts launched by the J-jobs | + +-------------------------+----------------------------------------------------+ + | tests | Tests for baseline experiment configurations | + +-------------------------+----------------------------------------------------+ + | ush | Utility scripts used by the workflow | + +-------------------------+----------------------------------------------------+ .. _ExperimentDirSection: @@ -350,7 +350,7 @@ When the user generates an experiment using the ``generate_FV3LAM_wflow.py`` scr | | (``generate_FV3LAM_wflow.py``) | +---------------------------+--------------------------------------------------------------------------------------------------------------+ | nems.configure | See `NEMS configuration file | - | | `__ | + | | `__ | +---------------------------+--------------------------------------------------------------------------------------------------------------+ | suite_{CCPP}.xml | :term:`CCPP` suite definition file used by the forecast model | +---------------------------+--------------------------------------------------------------------------------------------------------------+ From 798a2a3def26a733d3bede86e1b12957de8ad0b3 Mon Sep 17 00:00:00 2001 From: gspetro Date: Wed, 9 Nov 2022 19:56:24 -0500 Subject: [PATCH 19/63] minor intro fixes --- docs/UsersGuide/source/Introduction.rst | 39 ++++++++++++------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/docs/UsersGuide/source/Introduction.rst b/docs/UsersGuide/source/Introduction.rst index 2d20e6d74f..4ff92a7d69 100644 --- a/docs/UsersGuide/source/Introduction.rst +++ b/docs/UsersGuide/source/Introduction.rst @@ -6,14 +6,14 @@ Introduction The Unified Forecast System (:term:`UFS`) is a community-based, coupled, comprehensive Earth modeling system. NOAA's operational model suite for numerical weather prediction (:term:`NWP`) is quickly transitioning to the UFS from a number of different modeling systems. The UFS enables research, development, and contribution opportunities within the broader :term:`Weather Enterprise` (including government, industry, and academia). For more information about the UFS, visit the `UFS Portal `__. -The UFS includes `multiple applications `__ that support different forecast durations and spatial domains. This documentation describes the UFS Short-Range Weather (SRW) Application, which targets predictions of atmospheric behavior on a limited spatial domain and on time scales from minutes to several days. The SRW Application v2.1.0 release includes a prognostic atmospheric model, pre- and post-processing, and a community workflow for running the system end-to-end. These components are documented within this User's Guide and supported through the `GitHub Discussions `__ forum. New and improved capabilities for the v2.1.0 release included the addition of a verification package (METplus) for both deterministic and ensemble simulations and support for four stochastically perturbed physics schemes. This v2.1.0 release includes: +The UFS includes `multiple applications `__ that support different forecast durations and spatial domains. This documentation describes the UFS Short-Range Weather (SRW) Application, which targets predictions of atmospheric behavior on a limited spatial domain and on time scales from minutes to several days. The SRW Application v2.1.0 release includes a prognostic atmospheric model, pre- and post-processing, and a community workflow for running the system end-to-end. These components are documented within this User's Guide and supported through the `GitHub Discussions `__ forum. New and improved capabilities for the v2.1.0 release included the addition of a verification package (METplus) for both deterministic and ensemble simulations and support for four stochastically perturbed physics schemes. This v2.1.0 release includes: * Bug fixes since the v2.0.0 release * Conversion to a Python workflow (from the former shell workflow) - * Improved container support, including the option to run across compute nodes using Rocoto + * Improved container support, including the option to run across compute nodes using Rocoto (see :numref:`Chapter %s `) * Updates to :term:`CCPP` that target the top of the ``main`` branch (which is ahead of CCPP v6.0.0) - * Support for the :term:`UPP` inline post option - * Addition of a multi-purpose code clean-up script (``devclean.sh``) + * Support for the :term:`UPP` inline post option (see :ref:`here `) + * Addition of a multi-purpose code clean-up script (``devclean.sh``) (see :numref:`Section %s `) * Documentation updates to reflect the changes above .. COMMENT: Link to details (e.g., for devclean script) and/or add details (e.g., about METplus bugs) in appropriate sections. @@ -36,7 +36,7 @@ UFS Development Team. (2022, Nov. 16). Unified Forecast System (UFS) Short-Range How to Use This Document ======================== -This guide instructs both novice and experienced users on downloading, building, and running the SRW Application. Please post questions in the `GitHub Discussions `__ forum. +This guide instructs both novice and experienced users on downloading, building, and running the SRW Application. Please post questions in the `GitHub Discussions `__ forum. .. code-block:: console @@ -297,7 +297,7 @@ SRW App Subdirectories .. _Subdirectories: -.. table:: Sub-directories of the regional workflow +.. table:: Subdirectories of the regional workflow +-------------------------+----------------------------------------------------+ | **Directory Name** | **Description** | @@ -318,11 +318,11 @@ SRW App Subdirectories Experiment Directory Structure -------------------------------- -When the user generates an experiment using the ``generate_FV3LAM_wflow.py`` script (:numref:`Step %s `), a user-defined experimental directory (``$EXPTDIR``) is created based on information specified in the ``config.yaml`` file. :numref:`Table %s ` shows the contents of the experiment directory before running the experiment workflow. +When the user generates an experiment using the ``generate_FV3LAM_wflow.py`` script (:numref:`Step %s `), a user-defined experiment directory (``$EXPTDIR``) is created based on information specified in the ``config.yaml`` file. :numref:`Table %s ` shows the contents of the experiment directory before running the experiment workflow. .. _ExptDirStructure: -.. table:: Files and sub-directory initially created in the experimental directory +.. table:: Files and subdirectory initially created in the experiment directory :widths: 33 67 +---------------------------+--------------------------------------------------------------------------------------------------------------+ @@ -340,10 +340,9 @@ When the user generates an experiment using the ``generate_FV3LAM_wflow.py`` scr | input.nml | :term:`Namelist` for the `UFS Weather Model | | | `__ | +---------------------------+--------------------------------------------------------------------------------------------------------------+ - | launch_FV3LAM_wflow.sh | Symlink to the shell script of | - | | ``ufs-srweather-app/ush/launch_FV3LAM_wflow.sh``, | + | launch_FV3LAM_wflow.sh | Symlink to the ``ufs-srweather-app/ush/launch_FV3LAM_wflow.sh`` shell script, | | | which can be used to (re)launch the Rocoto workflow. | - | | Each time this script is called, it appends to a log | + | | Each time this script is called, it appends information to a log | | | file named ``log.launch_FV3LAM_wflow``. | +---------------------------+--------------------------------------------------------------------------------------------------------------+ | log.generate_FV3LAM_wflow | Log of the output from the experiment generation script | @@ -352,7 +351,7 @@ When the user generates an experiment using the ``generate_FV3LAM_wflow.py`` scr | nems.configure | See `NEMS configuration file | | | `__ | +---------------------------+--------------------------------------------------------------------------------------------------------------+ - | suite_{CCPP}.xml | :term:`CCPP` suite definition file used by the forecast model | + | suite_{CCPP}.xml | :term:`CCPP` suite definition file (:term:`SDF`) 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 | @@ -375,7 +374,7 @@ In addition, running the SRW App in *community* mode creates the ``fix_am`` and | **Directory Name** | **Description** | +=========================+==========================================================+ | fix_am | Directory containing the global fix (time-independent) | - | | data files. The experiment generation script copies | + | | data files. The experiment generation script symlinks | | | these files from a machine-dependent system directory. | +-------------------------+----------------------------------------------------------+ | fix_lam | Directory containing the regional fix (time-independent) | @@ -384,7 +383,7 @@ In addition, running the SRW App in *community* mode creates the ``fix_am`` and | | symlinks to pre-generated files. | +-------------------------+----------------------------------------------------------+ -Once the Rocoto workflow is launched, several files and directories are generated. A log file named ``log.launch_FV3LAM_wflow`` will be created (unless it already exists) in ``$EXPTDIR``. The first several workflow tasks (i.e., ``make_grid``, ``make_orog``, ``make_sfc_climo``, ``get_extrn_ics``, and ``get_extrn_lbc``) are preprocessing tasks, and these tasks also result in the creation of new files and sub-directories, described in :numref:`Table %s `. +Once the Rocoto workflow is launched, several files and directories are generated. A log file named ``log.launch_FV3LAM_wflow`` will be created (unless it already exists) in ``$EXPTDIR``. The first several workflow tasks (i.e., ``make_grid``, ``make_orog``, ``make_sfc_climo``, ``get_extrn_ics``, and ``get_extrn_lbcs``) are preprocessing tasks, and these tasks also result in the creation of new files and subdirectories, described in :numref:`Table %s `. .. _CreatedByWorkflow: @@ -407,8 +406,8 @@ Once the Rocoto workflow is launched, several files and directories are generate | | for the experiment | +---------------------------+--------------------------------------------------------------------+ | log | Contains log files generated by the overall workflow and by its | - | | various tasks. Look in these files to determine why a task may | - | | have failed. | + | | various tasks. View the files in this directory to determine why | + | | a task may have failed. | +---------------------------+--------------------------------------------------------------------+ | orog | Directory generated by the ``make_orog`` task containing the | | | orography files for the experiment | @@ -417,10 +416,10 @@ Once the Rocoto workflow is launched, several files and directories are generate | | 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. | + | FV3LAM_wflow_lock.db | launch script) to launch the workflow | +---------------------------+--------------------------------------------------------------------+ | log.launch_FV3LAM_wflow | The ``launch_FV3LAM_wflow.sh`` script appends its output to this | - | | log file each time it is called. Take a look at the last 30–50 | + | | log file each time it is called. View the last several | | | lines of this file to check the status of the workflow. | +---------------------------+--------------------------------------------------------------------+ @@ -431,7 +430,7 @@ The workflow tasks are described in :numref:`Section %s `_ organized by topic provides a centralized location for UFS users and developers to post questions and exchange information. +The SRW App's `GitHub Discussions `__ forum provides online support for UFS users and developers to post questions and exchange information. A list of available documentation is shown in :numref:`Table %s `. @@ -480,7 +479,7 @@ A list of available documentation is shown in :numref:`Table %s `. Contributions to the `ufs-srweather-app `__ repository should follow the guidelines contained in the :ref:`SRW App Contributor's Guide `. +utilities, model code, and infrastructure. Users can post issues in the related GitHub repositories to report bugs or to announce upcoming contributions to the code base. For code to be accepted into the authoritative repositories, users must follow the code management rules of each UFS component repository. These rules are usually outlined in the User's Guide (see :numref:`Table %s `) or wiki for each respective repository (see :numref:`Table %s `). Contributions to the `ufs-srweather-app `__ repository should follow the guidelines contained in the `SRW App Contributor's Guide `__. Future Direction ================= From 720beb64cdaa6e42af796b4eb0b91e8d59e9bd3d Mon Sep 17 00:00:00 2001 From: gspetro Date: Wed, 9 Nov 2022 20:44:42 -0500 Subject: [PATCH 20/63] QS updates --- docs/UsersGuide/source/Introduction.rst | 2 +- docs/UsersGuide/source/Quickstart.rst | 22 ++++++++++++---------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/docs/UsersGuide/source/Introduction.rst b/docs/UsersGuide/source/Introduction.rst index 4ff92a7d69..27fbadf948 100644 --- a/docs/UsersGuide/source/Introduction.rst +++ b/docs/UsersGuide/source/Introduction.rst @@ -278,7 +278,7 @@ The ``ufs-srweather-app`` :term:`umbrella repository` structure is determined by │ │ │ └── sfc_climo_gen.fd │ │ └── ush │ └── (ufs-weather-model) - │ └── FV3 + │ └── FV3 │ ├── atmos_cubed_sphere │ └── ccpp ├── tests/WE2E diff --git a/docs/UsersGuide/source/Quickstart.rst b/docs/UsersGuide/source/Quickstart.rst index 1c3a8cab1f..c3af7aa5b9 100644 --- a/docs/UsersGuide/source/Quickstart.rst +++ b/docs/UsersGuide/source/Quickstart.rst @@ -4,12 +4,12 @@ Quick Start Guide ==================== -This chapter provides a brief summary of how to build and run the SRW Application. The steps will run most smoothly on `Level 1 `__ systems. Users should expect to reference other chapters of this User's Guide, particularly :numref:`Chapter %s ` and :numref:`Chapter %s `, for additional explanations regarding each step. +This chapter provides a brief summary of how to build and run the SRW Application. The steps will run most smoothly on `Level 1 `__ systems. Users should expect to reference other chapters of this User's Guide, particularly :numref:`Chapter %s: Building the SRW App ` and :numref:`Chapter %s: Running the SRW App `, for additional explanations regarding each step. Install the HPC-Stack =========================== -SRW App users who are not working on a `Level 1 `__ platform will need to install the prerequisite software stack via :term:`HPC-Stack` prior to building the SRW App on a new machine. Installation instructions appear in the :doc:`HPC-Stack documentation `. The steps will vary slightly depending on the user's platform. However, in all cases, the process involves (1) cloning the `HPC-Stack repository `__, (2) creating and entering a build directory, and (3) invoking ``cmake`` and ``make`` commands to build the stack. This process will create a number of modulefiles and scripts that will be used for setting up the build environment for the SRW App. +SRW App users who are not working on a `Level 1 `__ platform will need to install the prerequisite software stack via :term:`HPC-Stack` prior to building the SRW App on a new machine. Users can find installation instructions in the :doc:`HPC-Stack documentation `. The steps will vary slightly depending on the user's platform. However, in all cases, the process involves (1) cloning the `HPC-Stack repository `__, (2) creating and entering a build directory, and (3) invoking ``cmake`` and ``make`` commands to build the stack. This process will create a number of modulefiles and scripts that will be used for setting up the build environment for the SRW App. Once the HPC-Stack has been successfully installed, users can move on to building the SRW Application. @@ -17,7 +17,7 @@ Once the HPC-Stack has been successfully installed, users can move on to buildin Building and Running the UFS SRW Application =============================================== -For a detailed explanation of how to build and run the SRW App on any supported system, see :numref:`Chapter %s: Building the SRW App ` and :numref:`Chapter %s: Running the SRW App `. The overall procedure for generating an experiment is shown in :numref:`Figure %s `, with the scripts to generate and run the workflow shown in red. An overview of the required steps appears below. However, users can expect to access other referenced sections of this User's Guide for more detail. +For a detailed explanation of how to build and run the SRW App on any supported system, see :numref:`Chapter %s: Building the SRW App ` and :numref:`Chapter %s: Running the SRW App `. :numref:`Figure %s ` outlines the steps of the build process. The overall procedure for generating an experiment is shown in :numref:`Figure %s `, with the scripts to generate and run the workflow shown in red. An overview of the required steps appears below. However, users can expect to access other referenced sections of this User's Guide for more detail. #. Clone the SRW App from GitHub: @@ -40,9 +40,9 @@ For a detailed explanation of how to build and run the SRW App on any supported where ```` is replaced with the name of the user's platform/system. Valid values include: ``cheyenne`` | ``gaea`` | ``hera`` | ``jet`` | ``linux`` | ``macos`` | ``noaacloud`` | ``orion`` | ``wcoss2`` - For additional details, see :numref:`Section %s `, or view :numref:`Section %s ` to try the CMake build approach. + For additional details, see :numref:`Section %s `, or view :numref:`Section %s ` to try the CMake build approach instead. - #. Users on a `Level 2-4 `__ system, must download and stage data (both the fix files and the :term:`IC/LBC ` files) according to the instructions in :numref:`Section %s `. Standard data locations for Level 1 systems appear in :numref:`Table %s `. + #. Users on a `Level 2-4 `__ system must download and stage data (both the fix files and the :term:`IC/LBC ` files) according to the instructions in :numref:`Section %s `. Standard data locations for Level 1 systems appear in :numref:`Table %s `. #. Load the python environment for the regional workflow. Users on Level 2-4 systems will need to use one of the existing ``wflow_`` modulefiles (e.g., ``wflow_macos``) and adapt it to their system. @@ -62,16 +62,16 @@ For a detailed explanation of how to build and run the SRW App on any supported then the user should run ``conda activate regional_workflow`` to activate the regional workflow environment. .. note:: - If users source the lmod-setup file on a system that doesn't need it, it will not cause any problems (it will simply do a ``module purge``). + If users source the *lmod-setup* file on a system that doesn't need it, it will not cause any problems (it will simply do a ``module purge``). - #. Configure the experiment parameters: + #. Configure the experiment: .. code-block:: console cd ush cp config.community.yaml config.yaml - Users will need to adjust the experiment parameters in the ``config.yaml`` file to suit the needs of their experiment (e.g., date, grid, physics suite, etc.). At a minimum, users need to modify the ``MACHINE`` parameter. In most cases, users will need to specify the ``ACCOUNT`` parameter and the location of the experiment data (see :numref:`Section %s ` for Level 1 system default locations). Additional changes may be required based on the system and experiment. More detailed guidance is available in :numref:`Section %s `. Parameters and valid values are listed in :numref:`Chapter %s `. + Users will need to open the ``config.yaml`` file and adjust the experiment parameters in it to suit the needs of their experiment (e.g., date, grid, physics suite). At a minimum, users need to modify the ``MACHINE`` parameter. In most cases, users will need to specify the ``ACCOUNT`` parameter and the location of the experiment data (see :numref:`Section %s ` for Level 1 system default locations). Additional changes may be required based on the system and experiment. More detailed guidance is available in :numref:`Section %s `. Parameters and valid values are listed in :numref:`Chapter %s `. To determine whether the ``config.yaml`` file adjustments are valid, users can run: @@ -94,10 +94,12 @@ For a detailed explanation of how to build and run the SRW App on any supported cd $EXPTDIR ./launch_FV3LAM_wflow.sh - To launch the workflow and check the experiment's progress: + To (re)launch the workflow and check the experiment's progress: .. code-block:: console ./launch_FV3LAM_wflow.sh; tail -n 40 log.launch_FV3LAM_wflow + + The workflow must be relaunched regularly and repeatedly until the log output includes a ``Workflow status: SUCCESS`` message indicating that the experiment has finished. -Optionally, users may :ref:`configure their own grid `, instead of using a predefined grid, and :ref:`plot the output ` of their experiment(s). +Optionally, users may :ref:`configure their own grid `, instead of using a predefined grid, and/or :ref:`plot the output ` of their experiment(s). From a0f2635da48f726cb6ed013d849cdc73f217ca1f Mon Sep 17 00:00:00 2001 From: gspetro Date: Thu, 10 Nov 2022 22:26:45 -0500 Subject: [PATCH 21/63] misc minor edits --- docs/UsersGuide/source/FAQ.rst | 43 ++++++++++++++------------- docs/UsersGuide/source/Quickstart.rst | 2 +- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/docs/UsersGuide/source/FAQ.rst b/docs/UsersGuide/source/FAQ.rst index 42941916a3..1bcb2cc7f8 100644 --- a/docs/UsersGuide/source/FAQ.rst +++ b/docs/UsersGuide/source/FAQ.rst @@ -4,34 +4,15 @@ FAQ **** -* :ref:`How do I know if I correctly modified config.yaml? ` * :ref:`How do I define an experiment name? ` * :ref:`How do I change the Physics Suite Definition File (SDF)? ` * :ref:`How do I change the grid? ` * :ref:`How do I turn on/off the cycle-independent workflow tasks? ` +* :ref:`How do I know if I correctly modified config.yaml? ` * :ref:`How do I restart a DEAD task? ` * :ref:`How can I clean up the SRW App code if something went wrong? ` * :ref:`How do I run a new experiment? ` -.. _CorrectConfig: - -========================================================= -How do I know if I correctly modified ``config.yaml``? -========================================================= - -To determine whether ``config.yaml`` file adjustments are valid, users can run the following script from the ``ush`` directory after loading the regional workflow: - -.. code-block:: console - - ./config_utils.py -c $PWD/config.yaml -v $PWD/config_defaults.yaml - -A correct ``config.yaml`` file will output a ``SUCCESS`` message. A ``config.yaml`` file with problems will output a ``FAILURE`` message describing the problem. For example: - -.. code-block:: console - - INVALID ENTRY: EXTRN_MDL_FILES_ICS=[] - FAILURE - .. _DefineExptName: @@ -110,6 +91,26 @@ three sets of files *may* be placed in the same directory location). By default, flags are set to true in ``config_defaults.yaml``. This means that the workflow will run the ``make_grid``, ``make_orog``, and ``make_sfc_climo`` tasks by default. +.. _CorrectConfig: + +========================================================= +How do I know if I correctly modified ``config.yaml``? +========================================================= + +To determine whether ``config.yaml`` file adjustments are valid, users can run the following script from the ``ush`` directory after loading the regional workflow: + +.. code-block:: console + + ./config_utils.py -c $PWD/config.yaml -v $PWD/config_defaults.yaml + +A correct ``config.yaml`` file will output a ``SUCCESS`` message. A ``config.yaml`` file with problems will output a ``FAILURE`` message describing the problem. For example: + +.. code-block:: console + + INVALID ENTRY: EXTRN_MDL_FILES_ICS=[] + FAILURE + + .. _RestartTask: ============================= @@ -174,6 +175,8 @@ To remove external submodules, run: Users will need to check out the external submodules again before building the application. +In addition to the options above, many standard terminal commands can be run to remove unwanted files and directories (e.g., ``rm -rf expt_dirs``). A complete explanation of these options is beyond the scope of this User's Guide. + .. _NewExpt: ================================== diff --git a/docs/UsersGuide/source/Quickstart.rst b/docs/UsersGuide/source/Quickstart.rst index c3af7aa5b9..309114b411 100644 --- a/docs/UsersGuide/source/Quickstart.rst +++ b/docs/UsersGuide/source/Quickstart.rst @@ -44,7 +44,7 @@ For a detailed explanation of how to build and run the SRW App on any supported #. Users on a `Level 2-4 `__ system must download and stage data (both the fix files and the :term:`IC/LBC ` files) according to the instructions in :numref:`Section %s `. Standard data locations for Level 1 systems appear in :numref:`Table %s `. - #. Load the python environment for the regional workflow. Users on Level 2-4 systems will need to use one of the existing ``wflow_`` modulefiles (e.g., ``wflow_macos``) and adapt it to their system. + #. Load the python environment for the regional workflow. Users on Level 2-4 systems will need to use one of the existing ``wflow_`` modulefiles (e.g., ``wflow_macos``) and adapt it to their system. Then, run: .. code-block:: console From 37faacbabff46f4d512828b9066fea7c190c23b3 Mon Sep 17 00:00:00 2001 From: gspetro Date: Thu, 10 Nov 2022 23:23:54 -0500 Subject: [PATCH 22/63] edits to FV3LAM --- docs/UsersGuide/source/LAMGrids.rst | 119 ++++++++++++---------------- docs/UsersGuide/source/RunSRW.rst | 4 +- 2 files changed, 53 insertions(+), 70 deletions(-) diff --git a/docs/UsersGuide/source/LAMGrids.rst b/docs/UsersGuide/source/LAMGrids.rst index 0706556234..b7843a7201 100644 --- a/docs/UsersGuide/source/LAMGrids.rst +++ b/docs/UsersGuide/source/LAMGrids.rst @@ -6,11 +6,11 @@ Limited Area Model (:term:`LAM`) Grids: Predefined and User-Generated Options In order to set up the workflow and generate an experiment with the SRW Application, the user must choose between various predefined :term:`FV3`-:term:`LAM` grids or generate a user-defined grid. At this time, full support is only provided to those using one of the four predefined -grids supported in the v2.0.0 release, but other predefined grids are available (see :numref:`Section %s ` for more detail). Preliminary information is also provided at the end of this chapter describing how users can leverage the SRW App workflow scripts to generate their own user-defined grid. Currently, this feature is not fully supported and is "use at your own risk." +grids supported in the v2.1.0 release, but other predefined grids are available (see :numref:`Section %s ` for more detail). Preliminary information is also provided at the end of this chapter describing how users can leverage the SRW App workflow scripts to generate their own user-defined grid. Currently, this feature is not fully supported and is "use at your own risk." Predefined Grids ================= -The SRW App v2.0.0 release includes four predefined limited area model (:term:`LAM`) grids. To select a supported predefined grid, the ``PREDEF_GRID_NAME`` variable within the ``config.yaml`` script must be set to one of the following four options: +The SRW App v2.1.0 release includes four predefined limited area model (:term:`LAM`) grids. To select a supported predefined grid, the ``PREDEF_GRID_NAME`` variable within the ``task_run_fcst:`` section of the ``config.yaml`` script must be set to one of the following four options: * ``RRFS_CONUS_3km`` * ``RRFS_CONUS_13km`` @@ -45,12 +45,12 @@ These four options are provided for flexibility related to compute resources and In theory, it is possible to run any of the supported physics suites with any of the predefined grids, but the results will be more accurate and meaningful with appropriate grid/physics pairings. -The predefined :term:`CONUS` grids follow the naming convention (e.g., RRFS_CONUS_*km) of the prototype 3-km continental United States (CONUS) grid being tested for the Rapid Refresh Forecast System (RRFS). The RRFS will be a convection-allowing, hourly-cycled, :term:`FV3`-:term:`LAM`-based ensemble planned for operational implementation in 2024. All four supported grids were created to fit completely within the High Resolution Rapid Refresh (`HRRR `_) domain to allow for use of HRRR data to initialize the SRW App. +The predefined :term:`CONUS` grids follow the naming convention (e.g., RRFS_CONUS_*km) of the prototype 3-km continental United States (CONUS) grid being tested for the Rapid Refresh Forecast System (:term:`RRFS`). The RRFS will be a convection-allowing, hourly-cycled, :term:`FV3`-:term:`LAM`-based ensemble planned for operational implementation in 2024. All four supported grids were created to fit completely within the High Resolution Rapid Refresh (`HRRR `_) domain to allow for use of HRRR data to initialize the SRW App. Predefined 3-km CONUS Grid ----------------------------- -The 3km CONUS domain is ideal for running the ``FV3_RRFS_v1beta`` physics suite, since this suite definition file (:term:`SDF`) was specifically created for convection-allowing scales and is the precursor to the operational physics suite that will be used in the RRFS. The 3-km domain can also be used with the ``FV3_HRRR`` and ``FV3_WoFS`` physics suites, which likewise do not include convective parameterization. In fact, the ``FV3_WoFS`` physics suite is configured to run at 3-km *or less* and could therefore run with even higher-resolution user-defined domains if desired. However, the ``FV3_GFS_v16`` suite generally should *not* be used with the 3-km domain because the cumulus physics used in that physics suite is not configured to run at the 3-km resolution. +The 3-km CONUS domain is ideal for running the ``FV3_RRFS_v1beta`` physics suite, since this suite definition file (:term:`SDF`) was specifically created for convection-allowing scales and is the precursor to the operational physics suite that will be used in the RRFS. The 3-km domain can also be used with the ``FV3_HRRR`` and ``FV3_WoFS`` physics suites, which likewise do not include convective parameterizations. In fact, the ``FV3_WoFS`` physics suite is configured to run at 3-km *or less* and could therefore run with even higher-resolution user-defined domains if desired. However, the ``FV3_GFS_v16`` suite generally should *not* be used with the 3-km domain because the cumulus physics used in that physics suite is not configured to run at the 3-km resolution. .. _RRFS_CONUS_3km: @@ -59,7 +59,7 @@ The 3km CONUS domain is ideal for running the ``FV3_RRFS_v1beta`` physics suite, *The boundary of the RRFS_CONUS_3km computational grid (red) and corresponding write-component grid (blue).* -The boundary of the ``RRFS_CONUS_3km`` domain is shown in :numref:`Figure %s ` (in red), and the boundary of the :ref:`write-component grid ` sits just inside the computational domain (in blue). This extra grid is required because the post-processing utility (:term:`UPP`) is 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 boundary of the ``RRFS_CONUS_3km`` domain is shown in :numref:`Figure %s ` (in red), and the boundary of the :ref:`write-component grid ` sits just inside the computational domain (in blue). This extra grid is required because the post-processing utility (:term:`UPP`) is 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 the UPP to read in and correctly process the data. .. note:: 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 (such as HRRR or RAP data) that has a resolution similar to that of the native FV3-LAM (predefined) grid. @@ -87,7 +87,7 @@ Predefined 13-km Grid *The boundary of the RRFS_CONUS_13km computational grid (red) and corresponding write-component grid (blue).* -The ``RRFS_CONUS_13km`` grid (:numref:`Fig. %s `) covers the full :term:`CONUS`. This grid is meant to be run with the ``FV3_GFS_v16`` physics suite. The ``FV3_GFS_v16`` physics suite uses convective :term:`parameterizations`, whereas the other supported suites do not. Convective parameterizations are necessary for low-resolution grids because convection occurs on scales smaller than 25km and 13km. +The ``RRFS_CONUS_13km`` grid (:numref:`Fig. %s `) covers the full :term:`CONUS`. This grid is meant to be run with the ``FV3_GFS_v16`` physics suite. The ``FV3_GFS_v16`` physics suite uses convective :term:`parameterizations`, whereas the other supported suites do not. Convective parameterizations are necessary for low-resolution grids because convection occurs on scales smaller than 25-km and 13-km. Predefined 25-km Grid ------------------------ @@ -116,7 +116,7 @@ knowledge of how the SRW App workflow functions. In particular, it is important scripts that handle the workflow and experiment generation (see :numref:`Figure %s ` and :numref:`Figure %s `). 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 +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: @@ -126,22 +126,20 @@ The steps to add such a grid to the workflow are as follows: #. Add NEW_GRID to the array ``valid_vals_PREDEF_GRID_NAME`` in the ``ufs-srweather-app/ush/valid_param_vals.yaml`` file. -#. In ``ufs-srweather-app/ush/set_predef_grid_params.py``, add a stanza to - the case statement ``case ${PREDEF_GRID_NAME} in`` for NEW_GRID. An example of such a stanza - is given :ref:`below ` along with comments describing the variables that need to be set. +#. In ``ufs-srweather-app/ush/predef_grid_params.yaml``, add a stanza describing the parameters for NEW_GRID. An example of such a stanza is given :ref:`below ` along with comments describing the variables that need to be set. -To run a forecast experiment on NEW_GRID, start with a workflow configuration file for a successful experiment (e.g., ``config.yaml``, located in the ``ufs-srweather-app/ush`` subdirectory), and change the line for ``PREDEF_GRID_NAME`` to the following: +To run a forecast experiment on NEW_GRID, start with a workflow configuration file for a successful experiment (e.g., ``config.yaml``, located in the ``ufs-srweather-app/ush`` subdirectory), and change the line for ``PREDEF_GRID_NAME`` in the ``task_run_fcst:`` section to ``NEW_GRID``: .. code-block:: console - PREDEF_GRID_NAME="NEW_GRID" + PREDEF_GRID_NAME: "NEW_GRID" -Then, generate a new experiment/workflow using the ``generate_FV3LAM_wflow.py`` script in the :ref:`usual way `. +Then, load the regional workflow python environment, specify the other experiment parameters in ``config.yaml``, and generate a new experiment/workflow using the ``generate_FV3LAM_wflow.py`` script (see :numref:`Chapter %s ` for details). Code Example --------------- -The following is an example of a code stanza for "NEW_GRID" to be added to ``set_predef_grid_params.py``: +The following is an example of a code stanza for "NEW_GRID" to be added to ``predef_grid_params.yaml``: .. _NewGridExample: @@ -155,17 +153,17 @@ The following is an example of a code stanza for "NEW_GRID" to be added to ``set # #--------------------------------------------------------------------- # - "NEW_GRID") + "NEW_GRID": # The method used to generate the grid. This example is specifically # for the "ESGgrid" method. - GRID_GEN_METHOD= "ESGgrid" - + 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 + 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 @@ -176,14 +174,18 @@ The following is an example of a code stanza for "NEW_GRID" to be added to ``set # 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" + ESGgrid_DELX: 25000.0 + ESGgrid_DELY: 25000.0 # The number of cells along the x and y axes. - ESGgrid_NX=200 - ESGgrid_NY=112 - + ESGgrid_NX: 200 + ESGgrid_NY: 112 + + # The rotational parameter for the “ESGgrid” (in degrees). + + ESGgrid_PAZI: 0.0 + # 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 @@ -192,7 +194,7 @@ The following is an example of a code stanza for "NEW_GRID" to be added to ``set # needed to provide lateral boundary conditions to the forecast model. # Usually, there is no need to modify this parameter. - ESGgrid_WIDE_HALO_WIDTH=6 + 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 @@ -202,34 +204,20 @@ The following is an example of a code stanza for "NEW_GRID" to be added to ``set # not explicitly set in the user-specified experiment configuration # file config.yaml. Note that this parameter may be suite dependent. - if [ "${CCPP_PHYS_SUITE}" = "FV3_GFS_v16" ]; then - DT_ATMOS=${DT_ATMOS:-"300"} - elif [ "${CCPP_PHYS_SUITE}" = "FV3_RRFS_v1beta" ]; then - DT_ATMOS=${DT_ATMOS:-"40"} - else - DT_ATMOS=${DT_ATMOS:-"40"} - fi + DT_ATMOS: 40 # 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.yaml. - LAYOUT_X=${LAYOUT_X:-"5"} - LAYOUT_Y=${LAYOUT_Y:-"2"} - BLOCKSIZE=${BLOCKSIZE:-"40"} - - # The parameters for the write-component (aka "quilting") grid. The - # Unified Post Processor (called by the ``RUN_POST_TN`` task) cannot - # process output on the native ESGgrid, so output fields are interpolated - # to a **write-component grid** before writing them to an output file. - # The output fields are not specified on the native grid - # but are instead remapped to this write-component 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 - + LAYOUT_X: 5 + LAYOUT_Y: 2 + BLOCKSIZE: 40 + + # The parameters for the write-component (aka "quilting") grid. + + QUILTING: + # 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, @@ -242,31 +230,31 @@ The following is an example of a code stanza for "NEW_GRID" to be added to ``set # can happen, for instance, if the forecast model is trying to write # output at every time step). - WRTCMP_write_groups="1" + WRTCMP_write_groups: 1 # The number of MPI tasks to allocate to each write group. - WRTCMP_write_tasks_per_group="2" - + WRTCMP_write_tasks_per_group: 2 + # The coordinate system for the write-component grid # See the array valid_vals_WRTCMP_output_grid (defined in # the script valid_param_vals.yaml) for the values this can take on. # The following example is specifically for the Lambert conformal # coordinate system. - WRTCMP_output_grid="lambert_conformal" + 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}" + WRTCMP_cen_lon: -97.5 + WRTCMP_cen_lat: 38.5 # The first and second standard latitudes needed for the Lambert # conformal coordinate mapping. - WRTCMP_stdlat1="${ESGgrid_LAT_CTR}" - WRTCMP_stdlat2="${ESGgrid_LAT_CTR}" + WRTCMP_stdlat1: 38.5 + WRTCMP_stdlat2: 38.5 # 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 @@ -274,24 +262,19 @@ The following is an example of a code stanza for "NEW_GRID" to be added to ``set # Thus, it is in general different than the xy coordinate system of # the native ESG grid. - WRTCMP_nx="197" - WRTCMP_ny="107" + 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" - + 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 - ;; - - + WRTCMP_dx: 25000.0 + WRTCMP_dy: 25000.0 diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index a2d5a4246e..da2adea228 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -19,8 +19,8 @@ The overall procedure for generating an experiment is shown in :numref:`Figure % #. :ref:`Optional: Configure a new grid ` #. :ref:`Generate a regional workflow experiment ` - * :ref:`Set the experiment configuration parameters ` * :ref:`Load the python environment for the regional workflow ` + * :ref:`Set the experiment configuration parameters ` #. :ref:`Run the regional workflow ` #. :ref:`Optional: Plot the output ` @@ -67,7 +67,7 @@ For Level 2-4 systems, the data must be added to the user's system. Detailed ins Grid Configuration ======================= -The SRW App officially supports the four predefined grids shown in :numref:`Table %s `. The out-of-the-box SRW App case uses the ``RRFS_CONUS_25km`` predefined grid option. More information on the predefined and user-generated grid options can be found in :numref:`Chapter %s ` for those who are curious. Users who plan to utilize one of the four predefined domain (grid) options may continue to :numref:`Step %s `. Users who plan to create a new custom domain should refer to :numref:`Section %s ` for instructions. At a minimum, these users will need to add the new grid name to the ``valid_param_vals.yaml`` script and add the corresponding grid-specific parameters in the ``set_predef_grid_params.py`` script. +The SRW App officially supports the four predefined grids shown in :numref:`Table %s `. The out-of-the-box SRW App case uses the ``RRFS_CONUS_25km`` predefined grid option. More information on the predefined and user-generated grid options can be found in :numref:`Chapter %s ` for those who are curious. Users who plan to utilize one of the four predefined domain (grid) options may continue to :numref:`Step %s `. Users who plan to create a new custom domain should refer to :numref:`Section %s ` for instructions. At a minimum, these users will need to add the new grid name to the ``valid_param_vals.yaml`` file and add the corresponding grid-specific parameters in the ``predef_grid_params.yaml`` file. .. _PredefinedGrids: From f02e89c4b9778fdb8259e44630d0fc0065c9a2a7 Mon Sep 17 00:00:00 2001 From: gspetro Date: Sun, 13 Nov 2022 19:59:04 -0500 Subject: [PATCH 23/63] Update user-defined grid example & some config params --- docs/UsersGuide/source/ConfigWorkflow.rst | 21 ++-- docs/UsersGuide/source/LAMGrids.rst | 113 +++------------------- 2 files changed, 24 insertions(+), 110 deletions(-) diff --git a/docs/UsersGuide/source/ConfigWorkflow.rst b/docs/UsersGuide/source/ConfigWorkflow.rst index cb1a7211ac..b8048fb1aa 100644 --- a/docs/UsersGuide/source/ConfigWorkflow.rst +++ b/docs/UsersGuide/source/ConfigWorkflow.rst @@ -917,6 +917,8 @@ Non-default parameters for the ``make_lbcs`` task are set in the ``task_make_lbc ``OMP_STACKSIZE_MAKE_LBCS``: (Default: "1024m") Controls the size of the stack for threads created by the OpenMP implementation. +.. _FcstConfigParams: + FORECAST Configuration Parameters ===================================== @@ -961,13 +963,15 @@ For each workflow task, certain parameter values must be passed to the job sched ``OMP_STACKSIZE_RUN_FCST``: (Default: "1024m") Controls the size of the stack for threads created by the OpenMP implementation. +.. _ModelConfigParams: + Model Configuration Parameters ---------------------------------- These parameters set values in the Weather Model's ``model_configure`` file. ``DT_ATMOS``: (Default: "") - Time step for the outermost atmospheric model loop in seconds. This corresponds to the frequency at which the physics routines and the top level dynamics routine are called. (Note that one call to the top-level dynamics routine results in multiple calls to the horizontal dynamics, :term:`tracer` transport, and vertical dynamics routines; see the `FV3 dycore scientific documentation `__ for details.) Must be set. Takes an integer value. In the SRW App, a default value for ``DT_ATMOS`` appears in the ``set_predef_grid_params.yaml`` script, but a different value can be set in ``config.yaml``. + Time step for the outermost atmospheric model loop in seconds. This corresponds to the frequency at which the physics routines and the top level dynamics routine are called. (Note that one call to the top-level dynamics routine results in multiple calls to the horizontal dynamics, :term:`tracer` transport, and vertical dynamics routines; see the `FV3 dycore scientific documentation `__ for details.) Must be set. Takes an integer value. In the SRW App, a default value for ``DT_ATMOS`` appears in the ``set_predef_grid_params.yaml`` script, but a different value can be set in ``config.yaml``. In general, The smaller the grid cell size is, the smaller this value needs to be in order to avoid numerical instabilities during the forecast. ``RESTART_INTERVAL``: (Default: 0) Frequency of the output restart files in hours. Using the default interval (0), restart files are produced at the end of a forecast run. When ``RESTART_INTERVAL: 1``, restart files are produced every hour with the prefix "YYYYMMDD.HHmmSS." in the ``RESTART`` directory. @@ -999,9 +1003,7 @@ Write-Component (Quilting) Parameters ----------------------------------------- .. note:: - The :term:`UPP` (called by the ``RUN_POST_TN`` task) cannot process output on the native grid types ("GFDLgrid" and "ESGgrid"), so output fields are interpolated to a **write component grid** before writing them to an output file. The output files written by the UFS Weather Model use an Earth System Modeling Framework (:term:`ESMF`) component, referred to as the **write component**. This model component is configured with settings in the ``model_configure`` file, as described in `Section 4.2.3 `__ of the UFS Weather Model documentation. - - .. COMMENT: Update link! + The :term:`UPP` (called by the ``RUN_POST_TN`` task) cannot process output on the native grid types ("GFDLgrid" and "ESGgrid"), so output fields are interpolated to a **write component grid** before writing them to an output file. The output files written by the UFS Weather Model use an Earth System Modeling Framework (:term:`ESMF`) component, referred to as the **write component**. This model component is configured with settings in the ``model_configure`` file, as described in `Section 4.2.3 `__ of the UFS Weather Model documentation. ``QUILTING``: (Default: true) @@ -1014,7 +1016,7 @@ Write-Component (Quilting) Parameters Flag that determines whether to output extra (debugging) information from :term:`ESMF` routines. Note that the write component uses ESMF library routines to interpolate from the native forecast model grid to the user-specified output grid (which is defined in the model configuration file ``model_configure`` in the forecast run directory). Valid values: ``True`` | ``False`` ``WRTCMP_write_groups``: (Default: 1) - The number of write groups (i.e., groups of :term:`MPI` tasks) to use in the write component. + The number of write groups (i.e., groups of :term:`MPI` tasks) to use in the write component. Each write group will write 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, one write group is sufficient. 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. ``WRTCMP_write_tasks_per_group``: (Default: 20) The number of MPI tasks to allocate for each write group. @@ -1759,9 +1761,7 @@ Set parameters associated with running ensembles. Stochastic Physics Parameters ---------------------------------- -Set default ad-hoc stochastic physics options. For the most updated and detailed documentation of these parameters, see the `UFS Stochastic Physics Documentation `__. - -.. COMMENT: Update link! +Set default ad-hoc stochastic physics options. For the most updated and detailed documentation of these parameters, see the `UFS Stochastic Physics Documentation `__. ``NEW_LSCALE``: (Default: true) Use correct formula for converting a spatial legnth scale into spectral space. @@ -1916,11 +1916,6 @@ The parameters below turn on SPP in Noah or RUC LSM (support for Noah MP is in p ``LSM_SPP_MAG_LIST``: (Default: [ 0.017, 0.001, 0.001, 0.001, 0.001, 0.001, 0.2 ] ) Sets the maximum random pattern amplitude for each of the LSM perturbations. -.. COMMENT: This variable no longer appears and was going to be removed. See if anything has replaced it. - ``LSM_SPP_EACH_STEP``: (Default: "true") - When set to "TRUE", it sets ``lndp_each_step=.true.`` and perturbs each time step. - - .. _HaloBlend: Halo Blend Parameter diff --git a/docs/UsersGuide/source/LAMGrids.rst b/docs/UsersGuide/source/LAMGrids.rst index b7843a7201..f756000349 100644 --- a/docs/UsersGuide/source/LAMGrids.rst +++ b/docs/UsersGuide/source/LAMGrids.rst @@ -126,15 +126,15 @@ The steps to add such a grid to the workflow are as follows: #. Add NEW_GRID to the array ``valid_vals_PREDEF_GRID_NAME`` in the ``ufs-srweather-app/ush/valid_param_vals.yaml`` file. -#. In ``ufs-srweather-app/ush/predef_grid_params.yaml``, add a stanza describing the parameters for NEW_GRID. An example of such a stanza is given :ref:`below ` along with comments describing the variables that need to be set. +#. In ``ufs-srweather-app/ush/predef_grid_params.yaml``, add a stanza describing the parameters for NEW_GRID. An example of such a stanza is given :ref:`below `. For descriptions of the variables that need to be set, see Sections :numref:`%s ` and :numref:`%s `. -To run a forecast experiment on NEW_GRID, start with a workflow configuration file for a successful experiment (e.g., ``config.yaml``, located in the ``ufs-srweather-app/ush`` subdirectory), and change the line for ``PREDEF_GRID_NAME`` in the ``task_run_fcst:`` section to ``NEW_GRID``: +To run a forecast experiment on NEW_GRID, start with a workflow configuration file for a successful experiment (e.g., ``config.community.yaml``, located in the ``ufs-srweather-app/ush`` subdirectory), and change the line for ``PREDEF_GRID_NAME`` in the ``task_run_fcst:`` section to ``NEW_GRID``: .. code-block:: console PREDEF_GRID_NAME: "NEW_GRID" -Then, load the regional workflow python environment, specify the other experiment parameters in ``config.yaml``, and generate a new experiment/workflow using the ``generate_FV3LAM_wflow.py`` script (see :numref:`Chapter %s ` for details). +Then, load the regional workflow python environment, specify the other experiment parameters in ``config.community.yaml``, and generate a new experiment/workflow using the ``generate_FV3LAM_wflow.py`` script (see :numref:`Chapter %s ` for details). Code Example --------------- @@ -148,133 +148,52 @@ The following is an example of a code stanza for "NEW_GRID" to be added to ``pre # #--------------------------------------------------------------------- # - # Stanza for NEW_GRID. This grid covers [provide a description of the - # domain that NEW_GRID covers, its grid cell size, etc]. + # Stanza for NEW_GRID. This grid covers [description of the + # domain] with ~[size]-km cells. # #--------------------------------------------------------------------- # "NEW_GRID": - - # The method used to generate the grid. This example is specifically + + # 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 parameters: 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 rotational parameter for the “ESGgrid” (in degrees). - ESGgrid_PAZI: 0.0 - - # 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.yaml. Note that this parameter may be suite dependent. - DT_ATMOS: 40 - - # 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.yaml. + # Forecast configuration parameters: + DT_ATMOS: 40 LAYOUT_X: 5 LAYOUT_Y: 2 BLOCKSIZE: 40 - # The parameters for the write-component (aka "quilting") grid. + # Parameters for the write-component (aka "quilting") grid. QUILTING: - - # 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 for the write-component grid - # See the array valid_vals_WRTCMP_output_grid (defined in - # the script valid_param_vals.yaml) 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: -97.5 WRTCMP_cen_lat: 38.5 - - # The first and second standard latitudes needed for the Lambert - # conformal coordinate mapping. + WRTCMP_lon_lwr_left: -121.12455072 + WRTCMP_lat_lwr_left: 23.89394570 + + # Parameters required for the Lambert conformal grid mapping. WRTCMP_stdlat1: 38.5 WRTCMP_stdlat2: 38.5 - - # 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: 25000.0 WRTCMP_dy: 25000.0 From 934ac9d1584f1e1ac28b146d1238b56035f253fd Mon Sep 17 00:00:00 2001 From: gspetro Date: Sun, 13 Nov 2022 22:33:30 -0500 Subject: [PATCH 24/63] update components ch and version #'s throughout --- docs/UsersGuide/source/Components.rst | 28 ++++++++----------- .../UsersGuide/source/ContainerQuickstart.rst | 2 +- docs/UsersGuide/source/InputOutputFiles.rst | 2 +- docs/UsersGuide/source/RunSRW.rst | 2 +- .../source/tables/fix_file_list.rst | 2 +- 5 files changed, 15 insertions(+), 21 deletions(-) diff --git a/docs/UsersGuide/source/Components.rst b/docs/UsersGuide/source/Components.rst index 3090d3f051..e34476c308 100644 --- a/docs/UsersGuide/source/Components.rst +++ b/docs/UsersGuide/source/Components.rst @@ -31,11 +31,11 @@ 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 (:term:`LAM`) capability :cite:`BlackEtAl2021`. The :term:`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 `__. +(:term:`FV3`) dynamical core configured with a Limited Area Model (:term:`LAM`) capability :cite:`BlackEtAl2021`. The :term:`dynamical core` is the computational part of a model that solves the equations of fluid motion. A User's Guide for the UFS Weather Model can be accessed `here `__. Supported model resolutions in this release include 3-, 13-, and 25-km predefined contiguous U.S. (:term:`CONUS`) domains, each with 127 vertical levels. Preliminary tools for users to define their own domain are also available in the release with full, formal support of these tools to be provided in future releases. The Extended Schmidt Gnomonic (ESG) grid is used with the FV3-LAM, which features relatively uniform grid cells across the entirety of the domain. Additional information about the FV3 dynamical core can be found in the `scientific documentation `__, the `technical documentation `__, and on the `NOAA Geophysical Fluid Dynamics Laboratory website `__. -Interoperable atmospheric physics, along with various land surface model options, are supported through the Common Community Physics Package (CCPP), described `here `__. Atmospheric physics are a set of numerical methods describing small-scale processes such as clouds, turbulence, radiation, and their interactions. There will be four physics suites supported for the SRW App v2.0.0 release. The first is the FV3_RRFS_v1beta physics suite, which is being tested for use in the future operational implementation of the Rapid Refresh Forecast System (RRFS) planned for 2023-2024, and the second is an updated version of the physics suite used in the operational Global Forecast System (GFS) v16. Additionally, FV3_WoFS_v0 and FV3_HRRR will be supported. A scientific description of the CCPP parameterizations and suites can be found in the `CCPP Scientific Documentation `__, and CCPP technical aspects are described in the `CCPP Technical Documentation `__. The model namelist has many settings beyond the physics options that can optimize various aspects of the model for use with each of the supported suites. Additional information on Stochastic Physics options is available `here `__. +Interoperable atmospheric physics, along with various land surface model options, are supported through the Common Community Physics Package (CCPP), described `here `__. Atmospheric physics are a set of numerical methods describing small-scale processes such as clouds, turbulence, radiation, and their interactions. There will be four physics suites supported for the SRW App v2.1.0 release. The first is the FV3_RRFS_v1beta physics suite, which is being tested for use in the future operational implementation of the Rapid Refresh Forecast System (RRFS) planned for 2023-2024, and the second is an updated version of the physics suite used in the operational Global Forecast System (GFS) v16. Additionally, FV3_WoFS_v0 and FV3_HRRR will be supported. A scientific description of the CCPP parameterizations and suites can be found in the `CCPP Scientific Documentation `__, and CCPP technical aspects are described in the `CCPP Technical Documentation `__. The model namelist has many settings beyond the physics options that can optimize various aspects of the model for use with each of the supported suites. Additional information on Stochastic Physics options is available `here `__. .. COMMENT: Check CCPP tech doc functionality. @@ -61,17 +61,11 @@ The enhanced Model Evaluation Tools (`METplus `__ systems; existing builds can be viewed `here `__. -.. COMMENT: Check METplus links! +METplus can be installed on other systems individually or as part of :term:`HPC-Stack` installation. Users on systems without a previous installation of METplus can follow the `MET Installation Guide `__ and `METplus Installation Guide `__ for individual installation. Currently, METplus *installation* is not a supported feature for this release of the SRW App. However, METplus *use* is supported on systems with a functioning METplus installation. -METplus can be installed on other systems individually or as part of :term:`HPC-Stack` installation. Users on systems without a previous installation of METplus can follow the `MET Installation Guide `__ and `METplus Installation Guide `__ for individual installation. Currently, METplus *installation* is not a supported feature for this release of the SRW App. However, METplus *use* is supported on systems with a functioning METplus installation. +The core components of the METplus framework include the statistical driver, MET, the associated database and display systems known as METviewer and METexpress, and a suite of Python wrappers to provide low-level automation and examples, also called use cases. MET is a set of verification tools developed for use by the :term:`NWP` community. It matches up grids with either gridded analyses or point observations and applies configurable methods to compute statistics and diagnostics. Extensive documentation is available in the `METplus User's Guide `__ and `MET User's Guide `__. Documentation for all other components of the framework can be found at the Documentation link for each component on the METplus `downloads `__ page. -.. COMMENT: Check METplus links! - -The core components of the METplus framework include the statistical driver, MET, the associated database and display systems known as METviewer and METexpress, and a suite of Python wrappers to provide low-level automation and examples, also called use-cases. MET is a set of verification tools developed for use by the :term:`NWP` community. It matches up grids with either gridded analyses or point observations and applies configurable methods to compute statistics and diagnostics. Extensive documentation is available in the `METplus User's Guide `__ and `MET User's Guide `__. Documentation for all other components of the framework can be found at the Documentation link for each component on the METplus `downloads `__ page. - -.. COMMENT: Check METplus doc links! - -Among other techniques, MET provides the capability to compute standard verification scores for comparing deterministic gridded model data to point-based and gridded observations. It also provides ensemble and probabilistic verification methods for comparing gridded model data to point-based or gridded observations. Verification tasks to accomplish these comparisons are defined in the SRW App in :numref:`Table %s `. Currently, the SRW App supports the use of :term:`NDAS` observation files in `prepBUFR format `__ (which include conventional point-based surface and upper-air data) for point-based verification. It also supports gridded Climatology-Calibrated Precipitation Analysis (:term:`CCPA`) data for accumulated precipitation evaluation and Multi-Radar/Multi-Sensor (:term:`MRMS`) gridded analysis data for composite reflectivity and :term:`echo top` verification. +Among other techniques, MET provides the capability to compute standard verification scores for comparing deterministic gridded model data to point-based and gridded observations. It also provides ensemble and probabilistic verification methods for comparing gridded model data to point-based or gridded observations. Verification tasks to accomplish these comparisons are defined in the SRW App in :numref:`Table %s `. Currently, the SRW App supports the use of :term:`NDAS` observation files (which include conventional point-based surface and upper-air data) in `prepBUFR format `__ for point-based verification. It also supports gridded Climatology-Calibrated Precipitation Analysis (:term:`CCPA`) data for accumulated precipitation evaluation and Multi-Radar/Multi-Sensor (:term:`MRMS`) gridded analysis data for composite reflectivity and :term:`echo top` verification. METplus is being actively developed by :term:`NCAR`/Research Applications Laboratory (RAL), NOAA/Earth Systems Research Laboratories (ESRL), and NOAA/Environmental Modeling Center (:term:`EMC`), and it is open to community contributions. @@ -79,25 +73,25 @@ METplus is being actively developed by :term:`NCAR`/Research Applications Labora Visualization Example ===================== A Python script is provided to create basic visualizations of the model output. The script -is designed to output graphics in PNG format for 14 standard meteorological variables +is designed to output graphics in PNG format for several standard meteorological variables when using the pre-defined :term:`CONUS` domain. A difference plotting script is also included to visually compare two runs for the same domain and resolution. These scripts are provided only as an example for users familiar with Python. They may be used to perform a visual check to verify that the application is producing reasonable results. -After running ``manage_externals/checkout_externals``, the visualization scripts will be available in the ``ufs-srweather-app/ush/Python`` directory. Usage information and instructions are described in :numref:`Chapter %s ` and are also included at the top of the script. +After running ``manage_externals/checkout_externals``, the visualization scripts will be available in the ``ufs-srweather-app/ush/Python`` directory. Usage information and instructions are described in :numref:`Chapter %s ` and are also included at the top of each 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, including the UFS Weather Model and the pre- and post-processing software. Additional libraries necessary for the application (e.g., :term:`NCEPLIBS-external` and :term:`NCEPLIBS`) are not included in the SRW Application build system but are available pre-built on pre-configured platforms. On other systems, they can be installed via the HPC-Stack (see :doc:`HPC-Stack Documentation `). There is a small set of system libraries and utilities that are assumed to be present on the target computer: the CMake build software, a Fortran, C, and C++ compiler, and an :term:`MPI` library. +An umbrella CMake-based build system is used for building the components necessary for running the end-to-end SRW Application, including the UFS Weather Model and the pre- and post-processing software. Additional libraries necessary for the application (e.g., :term:`NCEPLIBS-external` and :term:`NCEPLIBS`) are not included in the SRW Application build system but are available pre-built on pre-configured platforms. On other systems, they can be installed via the HPC-Stack (see :doc:`HPC-Stack Documentation `). There is a small set of system libraries and utilities that are assumed to be present on the target computer: the CMake build software; a Fortran, C, and C++ compiler; and an :term:`MPI` library. Once built, the provided experiment generator script can be used to create a Rocoto-based -workflow file that will run each task in the system in the proper sequence (see :numref:`Chapter %s ` or the `Rocoto documentation `_ for more information on Rocoto). If Rocoto and/or a batch system is not present on the available platform, the individual components can be run in a stand-alone, command line fashion with provided run scripts. The generated namelist for the atmospheric model can be modified in order to vary settings such as forecast starting and ending dates, forecast length hours, the :term:`CCPP` physics suite, integration time step, history file output frequency, and more. It also allows for configuration of other elements of the workflow; for example, users can choose whether to run some or all of the pre-processing, forecast model, and post-processing steps. +workflow file that will run each task in the system in the proper sequence (see :numref:`Chapter %s ` or the `Rocoto documentation `__ for more information on Rocoto). If Rocoto and/or a batch system is not present on the available platform, the individual components can be run in a stand-alone, command line fashion with provided run scripts. The generated namelist for the atmospheric model can be modified in order to vary settings such as forecast starting and ending dates, forecast length hours, the :term:`CCPP` physics suite, integration time step, history file output frequency, and more. It also allows for configuration of other elements of the workflow; for example, users can choose whether to run some or all of the pre-processing, forecast model, and post-processing steps. -The latest 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; the National Center for Atmospheric Research (:term:`NCAR`) Cheyenne system; the National Severe Storms Laboratory (NSSL) 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. +The latest 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; the National Center for Atmospheric Research (:term:`NCAR`) Cheyenne system; 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 (Level 3), and build-only (Level 4) platforms. Each level is further described below. On pre-configured (Level 1) computational platforms, 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. 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 location. Applications and models are expected to build and run once the required bundled libraries (e.g., NCEPLIBS) and third-party libraries (e.g., 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 `_. +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 `__. diff --git a/docs/UsersGuide/source/ContainerQuickstart.rst b/docs/UsersGuide/source/ContainerQuickstart.rst index 11f9c6aa4b..98224a7bf6 100644 --- a/docs/UsersGuide/source/ContainerQuickstart.rst +++ b/docs/UsersGuide/source/ContainerQuickstart.rst @@ -132,7 +132,7 @@ On non-Level 1 systems, users should build the container in a writable sandbox: Some users may prefer to issue the command without the ``sudo`` prefix. Whether ``sudo`` is required is system-dependent. .. note:: - Users can choose to build a release version of the container (SRW App v2.0.0) using a similar command: + Users can choose to build a release version of the container (SRW App v2.1.0) using a similar command: .. code-block:: console diff --git a/docs/UsersGuide/source/InputOutputFiles.rst b/docs/UsersGuide/source/InputOutputFiles.rst index 1c26c553eb..0564fb241d 100644 --- a/docs/UsersGuide/source/InputOutputFiles.rst +++ b/docs/UsersGuide/source/InputOutputFiles.rst @@ -245,7 +245,7 @@ Static files are available in the `"fix" directory `__ of the SRW Data Bucket using the ``wget`` command for each required file. A list of ``wget`` commands with links is provided :ref:`here ` for the release v2.0.0 fix file data. Users will need to create an appropriate directory structure for the files when downloading them individually. The best solution is to download the files into directories that mirror the structure of the `Data Bucket `__. +Alternatively, users can download the static files individually from the `"fix" directory `__ of the SRW Data Bucket using the ``wget`` command for each required file. A list of ``wget`` commands with links is provided :ref:`here ` for the release v2.1.0 fix file data. Users will need to create an appropriate directory structure for the files when downloading them individually. The best solution is to download the files into directories that mirror the structure of the `Data Bucket `__. The environment variables ``FIXgsm``, ``TOPO_DIR``, and ``SFC_CLIMO_INPUT_DIR`` indicate the path to the directories where the static files are located. After downloading the experiment data, users must set the paths to the files in ``config.yaml``. Add the following code to the ``config.yaml`` file, and alter the variable paths accordingly: diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index da2adea228..173a6286d9 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -714,7 +714,7 @@ Configure METplus Verification Suite (Optional) Users who want to use the METplus verification suite to evaluate their forecasts need to add additional information to their ``config.yaml`` file. Other users may skip to the :ref:`next section `. .. attention:: - METplus *installation* is not included as part of the build process for this release of the SRW App. However, METplus is preinstalled on many `Level 1 & 2 `__ systems. For the v2.0.0 release, METplus *use* is supported on systems with a functioning METplus installation, although installation itself is not supported. For more information about METplus, see :numref:`Section %s `. + METplus *installation* is not included as part of the build process for this release of the SRW App. However, METplus is preinstalled on many `Level 1 & 2 `__ systems. For the v2.1.0 release, METplus *use* is supported on systems with a functioning METplus installation, although installation itself is not supported. For more information about METplus, see :numref:`Section %s `. .. COMMENT: Update note for release v2.1! diff --git a/docs/UsersGuide/source/tables/fix_file_list.rst b/docs/UsersGuide/source/tables/fix_file_list.rst index ee60a3378d..46ebf81eb7 100644 --- a/docs/UsersGuide/source/tables/fix_file_list.rst +++ b/docs/UsersGuide/source/tables/fix_file_list.rst @@ -3,7 +3,7 @@ .. _StaticFilesList: -Static Files for SRW App Release v2.0.0 +Static Files for SRW App Release v2.1.0 ========================================== ``fix_aer`` Files From 497af68ce54b5fcdc177378fdbe708b586a16d46 Mon Sep 17 00:00:00 2001 From: gspetro Date: Mon, 14 Nov 2022 12:15:04 -0500 Subject: [PATCH 25/63] update container name, minor I/O updates --- .../UsersGuide/source/ContainerQuickstart.rst | 20 +++++++++---------- docs/UsersGuide/source/InputOutputFiles.rst | 18 ++++++++--------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/docs/UsersGuide/source/ContainerQuickstart.rst b/docs/UsersGuide/source/ContainerQuickstart.rst index 98224a7bf6..9213fcb14f 100644 --- a/docs/UsersGuide/source/ContainerQuickstart.rst +++ b/docs/UsersGuide/source/ContainerQuickstart.rst @@ -68,7 +68,7 @@ Build the Container Level 1 Systems ^^^^^^^^^^^^^^^^^^ -On most Level 1 systems, a container named ``ubuntu20.04-intel-srwapp-develop.img`` has already been built at the following locations: +On most Level 1 systems, a container named ``ubuntu20.04-intel-srwapp-release-public-v2.1.0.img`` has already been built at the following locations: .. COMMENT: update name of container! @@ -95,7 +95,7 @@ Users can simply copy the container to their local working directory. For exampl .. code-block:: console - cp /scratch1/NCEPDEV/nems/role.epic/containers/ubuntu20.04-intel-srwapp-develop.img . + cp /scratch1/NCEPDEV/nems/role.epic/containers/ubuntu20.04-intel-srwapp-release-public-v2.1.0.img . .. COMMENT: Update path to container! @@ -103,7 +103,7 @@ Users may convert the container ``.img`` file to a writable sandbox. This step i .. code-block:: console - singularity build --sandbox ubuntu20.04-intel-srwapp ubuntu20.04-intel-srwapp-develop.img + singularity build --sandbox ubuntu20.04-intel-srwapp ubuntu20.04-intel-srwapp-release-public-v2.1.0.img .. COMMENT: Update name of container! @@ -112,7 +112,7 @@ When making a writable sandbox on Level 1 systems, the following warnings common .. code-block:: console INFO: Starting build... - INFO: Verifying bootstrap image ubuntu20.04-intel-srwapp-develop.img + INFO: Verifying bootstrap image ubuntu20.04-intel-srwapp-release-public-v2.1.0.img WARNING: integrity: signature not found for object group 1 WARNING: Bootstrap image could not be verified, but build will continue. @@ -125,7 +125,7 @@ On non-Level 1 systems, users should build the container in a writable sandbox: .. code-block:: console - sudo singularity build --sandbox ubuntu20.04-intel-srwapp docker://noaaepic/ubuntu20.04-intel-srwapp:develop + sudo singularity build --sandbox ubuntu20.04-intel-srwapp docker://noaaepic/ubuntu20.04-intel-srwapp:release-public-v2.1.0 .. COMMENT: Update :develop to release-public-v2.1.0 (or similar) @@ -199,7 +199,7 @@ To explore the container and view available directories, users can either ``cd`` .. code-block:: console - singularity shell ./ubuntu20.04-intel-srwapp-develop.img + singularity shell ./ubuntu20.04-intel-srwapp-release-public-v2.1.0.img cd / ls @@ -284,7 +284,7 @@ where: * ``-c`` indicates the compiler on the user's local machine (e.g., ``intel/2022.1.2``) * ``-m`` indicates the :term:`MPI` on the user's local machine (e.g., ``impi/2022.1.2``) * ```` refers to the local machine (e.g., ``hera``, ``jet``, ``noaacloud``, ``mac``). See ``MACHINE`` in :numref:`Section %s ` for a full list of options. - * ``-i`` indicates the name of the container image that was built in :numref:`Step %s ` (``ubuntu20.04-intel-srwapp`` or ``ubuntu20.04-intel-srwapp-develop.img`` by default). + * ``-i`` indicates the name of the container image that was built in :numref:`Step %s ` (``ubuntu20.04-intel-srwapp`` or ``ubuntu20.04-intel-srwapp-release-public-v2.1.0.img`` by default). .. COMMENT: Update name of container! @@ -292,7 +292,7 @@ For example, on Hera, the command would be: .. code-block:: console - ./stage-srw.sh -c=intel/2022.1.2 -m=impi/2022.1.2 -p=hera -i=ubuntu20.04-intel-srwapp-develop.img + ./stage-srw.sh -c=intel/2022.1.2 -m=impi/2022.1.2 -p=hera -i=ubuntu20.04-intel-srwapp-release-public-v2.1.0.img .. COMMENT: Update name of container! @@ -336,7 +336,7 @@ From here, users can follow the steps below to configure the out-of-the-box SRW .. code-block:: console USE_USER_STAGED_EXTRN_FILES: true - EXTRN_MDL_SOURCE_BASEDIR_ICS: /scratch2/BMC/det/UFS_SRW_App/develop/input_model_data/FV3GFS/grib2/${yyyymmddhh} + EXTRN_MDL_SOURCE_BASEDIR_ICS: /scratch2/BMC/det/UFS_SRW_App/v2p1/input_model_data/FV3GFS/grib2/${yyyymmddhh} EXTRN_MDL_FILES_ICS: [] EXTRN_MDL_DATA_STORES: disk @@ -349,7 +349,7 @@ From here, users can follow the steps below to configure the out-of-the-box SRW .. code-block:: console USE_USER_STAGED_EXTRN_FILES: true - EXTRN_MDL_SOURCE_BASEDIR_LBCS: /scratch2/BMC/det/UFS_SRW_App/develop/input_model_data/FV3GFS/grib2/${yyyymmddhh} + EXTRN_MDL_SOURCE_BASEDIR_LBCS: /scratch2/BMC/det/UFS_SRW_App/v2p1/input_model_data/FV3GFS/grib2/${yyyymmddhh} EXTRN_MDL_FILES_LBCS: [] EXTRN_MDL_DATA_STORES: disk diff --git a/docs/UsersGuide/source/InputOutputFiles.rst b/docs/UsersGuide/source/InputOutputFiles.rst index 0564fb241d..bd9e540a2a 100644 --- a/docs/UsersGuide/source/InputOutputFiles.rst +++ b/docs/UsersGuide/source/InputOutputFiles.rst @@ -4,14 +4,14 @@ Input and Output Files ======================= This chapter provides an overview of the input and output files needed by the components -of the UFS SRW Application. Links to more detailed documentation for each of the components (e.g., UFS_UTILS, the UFS Weather Model, and the UPP) are provided in the sections below. For SRW App users who want to jump straight to downloading and staging the files, see :numref:`Section %s `. +of the UFS SRW Application. Links to more detailed documentation for each of the components (e.g., UFS_UTILS, the UFS Weather Model, and the UPP) are provided in the sections below. For SRW App users who want to jump straight to downloading and staging the required files, see :numref:`Section %s `. .. _Input: 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 +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 @@ -27,11 +27,11 @@ The data format for these files can be :term:`GRIB2` or :term:`NEMSIO`. More inf Pre-processing (UFS_UTILS) --------------------------- -When a user generates the regional workflow, as described in :numref:`Section %s `, the workflow generation script links the input data for the pre-processing utilities to the experiment directory. 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 in the UFS_UTILS `Technical Documentation `__ and `Scientific Documentation `__. +When a user generates the regional workflow as described in :numref:`Section %s `, the workflow generation script links the input data for the pre-processing utilities to the experiment directory. 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 in the UFS_UTILS `Technical Documentation `__ and `Scientific Documentation `__. 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 +The input files for the UFS Weather Model include both static (fixed) files and grid- and date-specific files (terrain, initial conditions, boundary conditions, etc). The static fix(ed) files must be staged by the user unless the user is running on a `Level 1/pre-configured `__ platform, in which case users can link to the existing copy of the data on their machine. See :numref:`Section %s ` for instructions. The workflow scripts link the static, grid, and date-specific files in the experiment directory. 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 generation script, as described in :numref:`Section %s `. Unified Post Processor (UPP) @@ -44,11 +44,11 @@ Documentation for the UPP input files can be found in the `UPP User's Guide Workflow --------- The SRW Application uses a series of template files, combined with user-selected settings, -to create the required namelists and parameter files needed by the Application workflow. (See :numref:`Figure %s ` for a visual summary of the workflow generation process, including template use.) These templates can be reviewed to see which defaults are used and where configuration parameters from the ``config.yaml`` file are assigned. +to create the required namelists and parameter files needed by the SRW Application workflow. (See :numref:`Figure %s ` for a visual summary of the workflow generation process, including template use.) These templates can be reviewed to see which defaults are used and where configuration parameters from the ``config.yaml`` file are assigned. List of Template Files ^^^^^^^^^^^^^^^^^^^^^^^^ -The template files for the SRW Application are located in ``parm`` +The template files for the SRW Application are located in the ``parm`` directory and are shown in :numref:`Table %s `. .. _TemplateFiles: @@ -62,11 +62,11 @@ and are shown in :numref:`Table %s `. | | 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. | + | diag_table.[CCPP] | File specifying the output fields of the forecast model. | | | A different ``diag_table`` may be configured for different | | | :term:`CCPP` suites. | +-----------------------------+--------------------------------------------------------------+ - | field_table_[CCPP] | :term:`Cycle-independent` file that the forecast model | + | field_table.[CCPP] | :term:`Cycle-independent` file that the forecast model | | | reads in at the start of each forecast. It specifies the | | | :term:`tracers ` that the forecast model will | | | :term:`advect`. A different ``field_table`` may be needed | @@ -97,7 +97,7 @@ and are shown in :numref:`Table %s `. | README.xml_templating.md | Instructions for Rocoto XML templating with Jinja. | +-----------------------------+--------------------------------------------------------------+ -Additional information related to ``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 ``regional_grid.nml`` options can be found in the `UFS_UTILS Technical Documentation `__. +Additional information related to ``diag_table.[CCPP]``, ``field_table.[CCPP]``, ``input.nml.FV3``, ``model_configure``, and ``nems.configure`` can be found in the `UFS Weather Model User's Guide `__, while information on ``regional_grid.nml`` options can be found in the `UFS_UTILS Technical Documentation `__. Migratory Route of the Input Files in the Workflow ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ From 17400bbcfc0183a8644297fe7306db7885a9b45a Mon Sep 17 00:00:00 2001 From: gspetro Date: Mon, 14 Nov 2022 13:26:05 -0500 Subject: [PATCH 26/63] minor container updates --- .../UsersGuide/source/ContainerQuickstart.rst | 39 +++---------------- docs/UsersGuide/source/RunSRW.rst | 2 +- 2 files changed, 7 insertions(+), 34 deletions(-) diff --git a/docs/UsersGuide/source/ContainerQuickstart.rst b/docs/UsersGuide/source/ContainerQuickstart.rst index 9213fcb14f..a8c88de551 100644 --- a/docs/UsersGuide/source/ContainerQuickstart.rst +++ b/docs/UsersGuide/source/ContainerQuickstart.rst @@ -70,8 +70,6 @@ Level 1 Systems On most Level 1 systems, a container named ``ubuntu20.04-intel-srwapp-release-public-v2.1.0.img`` has already been built at the following locations: -.. COMMENT: update name of container! - .. table:: Locations of pre-built containers +--------------+--------------------------------------------------------+ @@ -97,16 +95,12 @@ Users can simply copy the container to their local working directory. For exampl cp /scratch1/NCEPDEV/nems/role.epic/containers/ubuntu20.04-intel-srwapp-release-public-v2.1.0.img . -.. COMMENT: Update path to container! - Users may convert the container ``.img`` file to a writable sandbox. This step is required when running on Cheyenne but is optional on other systems: .. code-block:: console singularity build --sandbox ubuntu20.04-intel-srwapp ubuntu20.04-intel-srwapp-release-public-v2.1.0.img -.. COMMENT: Update name of container! - When making a writable sandbox on Level 1 systems, the following warnings commonly appear and can be ignored: .. code-block:: console @@ -116,8 +110,6 @@ When making a writable sandbox on Level 1 systems, the following warnings common WARNING: integrity: signature not found for object group 1 WARNING: Bootstrap image could not be verified, but build will continue. -.. COMMENT: Update name of container! - Level 2-4 Systems ^^^^^^^^^^^^^^^^^^^^^ @@ -127,17 +119,8 @@ On non-Level 1 systems, users should build the container in a writable sandbox: sudo singularity build --sandbox ubuntu20.04-intel-srwapp docker://noaaepic/ubuntu20.04-intel-srwapp:release-public-v2.1.0 -.. COMMENT: Update :develop to release-public-v2.1.0 (or similar) - -Some users may prefer to issue the command without the ``sudo`` prefix. Whether ``sudo`` is required is system-dependent. - .. note:: - Users can choose to build a release version of the container (SRW App v2.1.0) using a similar command: - - .. code-block:: console - - sudo singularity build --sandbox ubuntu20.04-intel-srwapp docker://noaaepic/ubuntu20.04-intel22-ufs-srwapp:release-public-v2 - + Some users may prefer to issue the command without the ``sudo`` prefix. Whether ``sudo`` is required is system-dependent. .. _WorkOnHPC: @@ -203,8 +186,6 @@ To explore the container and view available directories, users can either ``cd`` cd / ls -.. COMMENT: Update name of container! - The list of directories printed will be similar to this: .. code-block:: console @@ -220,7 +201,7 @@ Users can run ``exit`` to exit the shell. Download and Stage the Data ============================ -The SRW App requires input files to run. These include static datasets, initial and boundary condition files, and model configuration files. On Level 1 systems, the data required to run SRW App tests are already available as long as the bind argument (starting with ``-B``) in :numref:`Step %s ` included the directory with the input model data. For Level 2-4 systems, the data must be added manually by the user. Detailed instructions on how to add the data can be found in :numref:`Section %s `. Sections :numref:`%s ` and :numref:`%s ` contain useful background information on the input and output files used in the SRW App. +The SRW App requires input files to run. These include static datasets, initial and boundary condition files, and model configuration files. On Level 1 systems, the data required to run SRW App tests are already available as long as the bind argument (starting with ``-B``) in :numref:`Step %s ` included the directory with the input model data. See :numref:`Table %s ` for Level 1 data locations. For Level 2-4 systems, the data must be added manually by the user. Detailed instructions on how to add the data can be found in :numref:`Section %s `. Sections :numref:`%s ` and :numref:`%s ` contain useful background information on the input and output files used in the SRW App. .. _GenerateForecastC: @@ -256,7 +237,7 @@ To activate the regional workflow, run the following commands: where: - * ```` is replaced with the actual path to the modulefiles on the user's system (often ``$PWD/modulefiles``), and + * ```` is replaced with the actual path to the modulefiles on the user's local system (often ``$PWD/modulefiles``), and * ```` is a valid, lowercased machine/platform name (see the ``MACHINE`` variable in :numref:`Section %s `). The ``wflow_`` modulefile will then output instructions to activate the regional workflow. The user should run the commands specified in the modulefile output. For example, if the output says: @@ -286,16 +267,12 @@ where: * ```` refers to the local machine (e.g., ``hera``, ``jet``, ``noaacloud``, ``mac``). See ``MACHINE`` in :numref:`Section %s ` for a full list of options. * ``-i`` indicates the name of the container image that was built in :numref:`Step %s ` (``ubuntu20.04-intel-srwapp`` or ``ubuntu20.04-intel-srwapp-release-public-v2.1.0.img`` by default). -.. COMMENT: Update name of container! - For example, on Hera, the command would be: .. code-block:: console ./stage-srw.sh -c=intel/2022.1.2 -m=impi/2022.1.2 -p=hera -i=ubuntu20.04-intel-srwapp-release-public-v2.1.0.img -.. COMMENT: Update name of container! - .. attention:: The user must have an Intel compiler and MPI on their system because the container uses an Intel compiler and MPI. Intel compilers are now available for free as part of `Intel's oneAPI Toolkit `__. @@ -324,7 +301,7 @@ From here, users can follow the steps below to configure the out-of-the-box SRW .. code-block:: console USE_CRON_TO_RELAUNCH: TRUE - CRON_RELAUNCH_INTVL_MNTS: 02 + CRON_RELAUNCH_INTVL_MNTS: 2 There are instructions for running the experiment via additional methods in :numref:`Section %s `. However, this technique (automation via :term:`crontab`) is the simplest option. @@ -340,8 +317,6 @@ From here, users can follow the steps below to configure the out-of-the-box SRW EXTRN_MDL_FILES_ICS: [] EXTRN_MDL_DATA_STORES: disk - .. COMMENT: Update name of container! - On other systems, users will need to change the path for ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` and ``EXTRN_MDL_FILES_LBCS`` (below) to reflect the location of the system's data. The location of the machine's global data can be viewed :ref:`here ` for Level 1 systems. Alternatively, the user can add the path to their local data if they downloaded it as described in :numref:`Section %s `. #. Edit the ``task_get_extrn_lbcs:`` section of the ``config.yaml`` to include the correct data paths to the lateral boundary conditions files. For example, on Hera, add: @@ -353,8 +328,6 @@ From here, users can follow the steps below to configure the out-of-the-box SRW EXTRN_MDL_FILES_LBCS: [] EXTRN_MDL_DATA_STORES: disk -.. COMMENT: Update name of container! - .. _GenerateWorkflowC: Generate the Workflow @@ -370,7 +343,7 @@ Run the following command to generate the workflow: ./generate_FV3LAM_wflow.py -This workflow generation script creates an experiment directory and populates it with all the data needed to run through the workflow. The last line of output from this script should start with ``*/3 * * * *`` (or similar). +This workflow generation script creates an experiment directory and populates it with all the data needed to run through the workflow. The last line of output from this script should start with ``*/2 * * * *`` (or similar). The generated workflow will be in the experiment directory specified in the ``config.yaml`` file in :numref:`Step %s `. The default location is ``expt_dirs/test_community``. To view experiment progress, users can ``cd`` to the experiment directory from ``ufs-srweather-app/ush`` and run the ``rocotostat`` command to check the experiment's status: @@ -389,7 +362,7 @@ If a task goes DEAD, it will be necessary to restart it according to the instruc crontab -e i - */3 * * * * cd //expt_dirs/test_community && ./launch_FV3LAM_wflow.sh called_from_cron="TRUE" + */2 * * * * cd //expt_dirs/test_community && ./launch_FV3LAM_wflow.sh called_from_cron="TRUE" esc :wq enter diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index 173a6286d9..6d0181ed97 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -40,7 +40,7 @@ Download and Stage the Data The SRW App requires input files to run. These include static datasets, initial and boundary conditions files, and model configuration files. On Level 1 systems, the data required to run SRW App tests are already available in the following locations: .. _DataLocations: -.. table:: Data locations for Level 1 systems +.. table:: Data Locations for Level 1 Systems +--------------+-----------------------------------------------------------------+ | Machine | File location | From 3dcf2ac3b7d0884c54d85dab2c7cf5c1c985ed40 Mon Sep 17 00:00:00 2001 From: gspetro Date: Mon, 14 Nov 2022 16:16:52 -0500 Subject: [PATCH 27/63] several minor fixes --- docs/UsersGuide/source/BuildSRW.rst | 2 +- docs/UsersGuide/source/ContributorsGuide.rst | 22 +++++++------ docs/UsersGuide/source/Graphics.rst | 2 +- docs/UsersGuide/source/WE2Etests.rst | 33 +++++++++++--------- 4 files changed, 32 insertions(+), 27 deletions(-) diff --git a/docs/UsersGuide/source/BuildSRW.rst b/docs/UsersGuide/source/BuildSRW.rst index 9b43539baf..d2dda4525d 100644 --- a/docs/UsersGuide/source/BuildSRW.rst +++ b/docs/UsersGuide/source/BuildSRW.rst @@ -192,7 +192,7 @@ On Level 1 systems for which a modulefile is provided under the ``modulefiles`` ./devbuild.sh --platform= -where ```` is replaced with the name of the platform the user is working on. Valid values are: ``cheyenne`` | ``gaea`` | ``hera`` | ``jet`` | ``linux`` | ``macos`` | ``noaacloud`` | ``odin`` | ``orion`` | ``singularity`` | ``wcoss2`` +where ```` is replaced with the name of the platform the user is working on. Valid values include: ``cheyenne`` | ``gaea`` | ``hera`` | ``jet`` | ``linux`` | ``macos`` | ``noaacloud`` | ``orion`` .. note:: Although build modulefiles exist for generic Linux and MacOS machines, users will need to alter these according to the instructions in Sections :numref:`%s ` & :numref:`%s `. Users on these systems may have more success building the SRW App with the :ref:`CMake Approach ` instead. diff --git a/docs/UsersGuide/source/ContributorsGuide.rst b/docs/UsersGuide/source/ContributorsGuide.rst index efb90ca4cc..74e4b5f109 100644 --- a/docs/UsersGuide/source/ContributorsGuide.rst +++ b/docs/UsersGuide/source/ContributorsGuide.rst @@ -5,6 +5,10 @@ SRW App Contributor's Guide ============================== +.. attention:: + + The most updated version of the SRW App Contributor's Guide is maintained in the `Contributor's Guide `__ page of the ``ufs-srweather-app`` wiki. + .. _Background: Background @@ -13,7 +17,7 @@ Background Authoritative branch ----------------------- -The ``ufs-srweather-app`` repository maintains a main branch for development called ``develop``. The HEAD of ``develop`` reflects the latest development changes. It points to regularly updated hashes for individual sub-components. Pull requests (PRs) will be merged to ``develop``. +The ``ufs-srweather-app`` repository maintains a main branch for development called ``develop``. The HEAD of ``develop`` reflects the latest development changes. It points to regularly updated hashes for individual subcomponents. Pull requests (PRs) will be merged to ``develop``. The ``develop`` branch is protected by the code management team: #. Pull requests for this branch require approval by at least two code reviewers. @@ -52,7 +56,7 @@ Scientists from across multiple labs and organizations have volunteered to revie +------------------+------------------------------------------------+---------------------------------------------------------------------------------------------+ | GSL | Jeff Beck (@JeffBeck-NOAA) | SRW App configuration/workflow, code management, meteorological evaluation | | +------------------------------------------------+---------------------------------------------------------------------------------------------+ - | | Gerard Ketefian (@gsketefian) | regional workflow scripts, jinja templates, and verification tasks | + | | Gerard Ketefian (@gsketefian) | Workflow scripts, jinja templates, and verification tasks | | +------------------------------------------------+---------------------------------------------------------------------------------------------+ | | Linlin Pan (@panll) | Workflow, CCPP/physics, verification | | +------------------------------------------------+---------------------------------------------------------------------------------------------+ @@ -62,7 +66,7 @@ Scientists from across multiple labs and organizations have volunteered to revie | +------------------------------------------------+---------------------------------------------------------------------------------------------+ | | Daniel Abdi (@danielabdi-noaa) | Workflow generation, testing RRFS on the cloud, environment modules | +------------------+------------------------------------------------+---------------------------------------------------------------------------------------------+ - | NCAR | Mike Kavulich (@mkavulich) | CCPP/physics | + | NCAR | Mike Kavulich (@mkavulich) | Workflow, CCPP/physics, code management, WE2E testing | | +------------------------------------------------+---------------------------------------------------------------------------------------------+ | | Will Mayfield (@willmayfield) | Verification/METplus tasks, regional workflow (esp. on Cheyenne) | +------------------+------------------------------------------------+---------------------------------------------------------------------------------------------+ @@ -431,7 +435,7 @@ Before opening a PR, a minimum set of tests should be run: * In some cases, it may be possible to modify a current test instead of creating a completely new test. Code developers introducing new capabilities should work with code managers to provide the proper configuration files, data, and other information necessary to create new tests for these capabilities. - * **Coming Soon:** When the above tests are complete, a code manager will add the ``run_we2e_comprehensive_tests`` to initiate fundamental testing on all Level 1 platforms via Jenkins (see :ref:`below `). + * When the above tests are complete and the PR has been approved by at least one code manager, a code manager will add the ``run_we2e_fundamental_tests`` label to initiate fundamental testing on all Level 1 platforms via Jenkins (see :ref:`below `). .. _jenkins: @@ -439,12 +443,11 @@ Before opening a PR, a minimum set of tests should be run: Automated Testing on Jenkins ------------------------------- -`Jenkins `__ is an "open source automation server" that allows users to automate code testing. In the SRW App, developers with write, maintain, or admin `roles `__ on the SRW App repository can add labels to their PR that automatically initiate particular test suites. +`Jenkins `__ is an "open source automation server" that allows users to automate code testing. For the Jenkins automated testing labels, it should be noted that **ONLY** code managers should apply these labels and only after at least one code manager has given approval to the PR. The PR will not be merged until all Jenkins-based builds and testing have successfully passed. The following automated testing labels are available (or will be soon) for the SRW App: - * ``run_ci`` + * ``run_we2e_fundamental_tests`` * *Coming Soon:* ``run_we2e_comprehensive_tests`` - * *Coming Soon:* ``run_we2e_fundamental_tests`` Once a testing label is added to the PR and the tests are run, the results of the tests can be viewed by anyone on GitHub. Users must scroll down to the bottom of the PR, where PR approvals, checks, and conflicts are listed. Under checks, GitHub will list which checks have passed and which have failed. Users can click on "Details" beside each check to see the Jenkins log files (see :numref:`Figure %s `). This will take users to the Jenkins page with information on their PR's tests. @@ -455,9 +458,8 @@ Once a testing label is added to the PR and the tests are run, the results of th *Sample of Jenkins Test Results* -Once on the `Jenkins `__ page specific to the PR check in question, users can view all of the testing output, including "artifacts" from the build. To do this, users must click on the arrow icon in the top right corner of the page. Then, in the left navigation menu, they can click on *S3 Artifacts* and download any files listed there for in-depth review. - - +Once on the `Jenkins `__ page specific to the PR check in question, users can view all of the testing output, including "artifacts" from the build. To do this, users must click on the arrow icon in the top right corner of the page. Then, in the lefthand navigation menu, they can click on *S3 Artifacts* and download any files listed there for in-depth review. +If the Jenkins tests fail, then the developer will need to make the necessary corrections to their PR. Unfortunately, removing and adding the label back will not initiate the Jenkins tests. For re-runs, the job will need to be manually re-run through Jenkins. diff --git a/docs/UsersGuide/source/Graphics.rst b/docs/UsersGuide/source/Graphics.rst index 5e0e059a1c..9b167dc0be 100644 --- a/docs/UsersGuide/source/Graphics.rst +++ b/docs/UsersGuide/source/Graphics.rst @@ -125,7 +125,7 @@ following command line arguments: #. 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 shapefiles (``*.shp``) in the directory ``$CARTOPY_DIR/shapefiles/natural_earth/cultural``. +#. The base directory ``CARTOPY_DIR`` of the cartopy shapefiles. The script will look for the shapefiles (``*.shp``) in the directory ``$CARTOPY_DIR/shapefiles/natural_earth/cultural``. See :numref:`Table %s ` for the correct ``$CARTOPY_DIR`` locations on Level 1 systems. #. The name ``POST_OUTPUT_DOMAIN_NAME`` of the native grid used in the forecast .. note:: diff --git a/docs/UsersGuide/source/WE2Etests.rst b/docs/UsersGuide/source/WE2Etests.rst index 305ef84cb4..5111a8980c 100644 --- a/docs/UsersGuide/source/WE2Etests.rst +++ b/docs/UsersGuide/source/WE2Etests.rst @@ -9,12 +9,15 @@ Note that the WE2E tests are not regression tests---they do not check whether current results are identical to previously established baselines. They also do not test the scientific integrity of the results (e.g., they do not check that values of output fields are reasonable). These tests only check that the tasks within each test's workflow complete successfully. They are, in essence, tests of the workflow generation, task execution (j-jobs, -ex-scripts), and other auxiliary scripts (which are mostly in the ``regional_workflow`` -repository) to ensure that these scripts function correctly. These functions +ex-scripts), and other auxiliary scripts to ensure that these scripts function correctly. Tested functions include creating and correctly arranging and naming directories and files, ensuring -that all input files are available and readable, calling executables with correct namelists and/or options, etc. Currently, it is up to the external repositories that the App clones (:numref:`Section %s `) to check that changes to those repos do not change results, or, if they do, to ensure that the new results are acceptable. (At least two of these external repositories---``UFS_UTILS`` and ``ufs-weather-model``---do have such regression tests.) +that all input files are available and readable, calling executables with correct namelists and/or options, etc. Currently, it is up to the external repositories that the App clones (:numref:`Section %s `) to check that changes to those repositories do not change results, or, if they do, to ensure that the new results are acceptable. (At least two of these external repositories---``UFS_UTILS`` and ``ufs-weather-model``---do have such regression tests.) -For convenience, the WE2E tests are currently grouped into the following categories: +WE2E tests fall into one of two categories: fundamental or comprehensive. The list of fundamental and comprehensive tests can be viewed in ``ufs-srweather-app/tests/WE2E/machine_suites/``. Fundamental tests are a lightweight set of tests that can be automated and run regularly on each `Level 1 `__ platform. These tests verify that there are no major, obvious faults in the underlying code when running common combinations of grids, input data, and physics suites. Comprehensive tests are the entire set of WE2E tests (minus fundamental tests); they cover a broader range of capabilities, configurations, and components. The complete set of tests can be viewed in :doc:`this table `. + +.. COMMENT: Update! + +For convenience, the WE2E tests are currently grouped into the following categories (under ``ufs-srweather-app/tests/WE2E/test_configs``): * ``grids_extrn_mdls_suites_community`` This category of tests ensures that the SRW App workflow running in **community mode** (i.e., with ``RUN_ENVIR`` set to ``"community"``) completes successfully for various combinations of predefined grids, physics suites, and input data from different external models. Note that in community mode, all output from the App is placed under a single experiment directory. @@ -29,11 +32,11 @@ The test configuration files for these categories are located in the following d .. code-block:: - ufs-srweather-app/regional_workflow/tests/WE2E/test_configs/grids_extrn_mdls_suites_community - ufs-srweather-app/regional_workflow/tests/WE2E/test_configs/grids_extrn_mdls_suites_nco - ufs-srweather-app/regional_workflow/tests/WE2E/test_configs/wflow_features + ufs-srweather-app/tests/WE2E/test_configs/grids_extrn_mdls_suites_community + ufs-srweather-app/tests/WE2E/test_configs/grids_extrn_mdls_suites_nco + ufs-srweather-app/tests/WE2E/test_configs/wflow_features -The script to run the WE2E tests is named ``run_WE2E_tests.sh`` and is located in the directory ``ufs-srweather-app/regional_workflow/tests/WE2E``. Each WE2E test has an associated configuration file named ``config.${test_name}.yaml``, where ``${test_name}`` is the name of the corresponding test. These configuration files are subsets of the full range of ``config.yaml`` experiment configuration options. (See :numref:`Section %s ` for all configurable options and :numref:`Section %s ` for information on configuring ``config.yaml``.) For each test, the ``run_WE2E_tests.sh`` script reads in the test configuration file and generates from it a complete ``config.yaml`` file. It then calls ``generate_FV3LAM_wflow.py``, which in turn reads in ``config.yaml`` and generates a new experiment for the test. The name of each experiment directory is set to that of the corresponding test, and a copy of ``config.yaml`` for each test is placed in its experiment directory. +The script to run the WE2E tests is named ``run_WE2E_tests.sh`` and is located in the directory ``ufs-srweather-app/tests/WE2E``. Each WE2E test has an associated configuration file named ``config.${test_name}.yaml``, where ``${test_name}`` is the name of the corresponding test. These configuration files are subsets of the full range of ``config.yaml`` experiment configuration options. (See :numref:`Section %s ` for all configurable options and :numref:`Section %s ` for information on configuring ``config.yaml``.) For each test, the ``run_WE2E_tests.sh`` script reads in the test configuration file and generates from it a complete ``config.yaml`` file. It then calls ``generate_FV3LAM_wflow.py``, which in turn reads in ``config.yaml`` and generates a new experiment for the test. The name of each experiment directory is set to that of the corresponding test, and a copy of ``config.yaml`` for each test is placed in its experiment directory. Since ``run_WE2E_tests.sh`` calls ``generate_FV3LAM_wflow.py`` for each test, the Python modules required for experiment generation must be loaded before ``run_WE2E_tests.sh`` @@ -49,7 +52,7 @@ The full list of WE2E tests is extensive; it is not recommended to run all the t Running the WE2E Tests ================================ -Users may specify the set of tests to run by creating a text file, such as ``my_tests.txt``, which contains a list of the WE2E tests to run (one per line). Then, they pass the name of that file to ``run_WE2E_tests.sh``. For example, to run the tests ``custom_ESGgrid`` and ``grid_RRFS_CONUScompact_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v16`` (from the ``wflow_features`` and ``grids_extrn_mdls_suites_community`` categories, respectively), users would enter the following commands from the ``WE2E`` working directory (``ufs-srweather-app/regional_workflow/tests/WE2E/``): +Users may specify the set of tests to run by creating a text file, such as ``my_tests.txt``, which contains a list of the WE2E tests to run (one per line). Then, they pass the name of that file to ``run_WE2E_tests.sh``. For example, to run the tests ``custom_ESGgrid`` and ``grid_RRFS_CONUScompact_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v16`` (from the ``wflow_features`` and ``grids_extrn_mdls_suites_community`` categories, respectively), users would enter the following commands from the ``WE2E`` working directory (``ufs-srweather-app/tests/WE2E/``): .. code-block:: console @@ -144,7 +147,7 @@ obtained by issuing: ./run_WE2E_tests.sh --help -from within the directory ``ufs-srweather-app/regional_workflow/tests/WE2E``. +from within the directory ``ufs-srweather-app/tests/WE2E``. .. _WE2ETestInfoFile: @@ -230,10 +233,10 @@ The rows of the file/sheet represent the full set of available tests (not just t Additional fields (columns) may be added to the CSV file in the future. -Note that the CSV file is not part of the ``regional_workflow`` repo and therefore is -not tracked by the repo. The ``run_WE2E_tests.sh`` script will generate a CSV +Note that the CSV file is not part of the ``ufs-srweather-app`` repository and therefore is +not tracked by the repository. The ``run_WE2E_tests.sh`` script will generate a CSV file if the ``generate_csv_file`` flag to this script has *not* explicitly been -set to ``"FALSE"`` and if either one of the following is true: +set to false and if either one of the following is true: #. The CSV file doesn't already exist. #. The CSV file does exist, but changes have been made to one or more of the @@ -343,7 +346,7 @@ Adding a New WE2E Test Category To create a new test category called, e.g., ``new_category``: -#. In the directory ``ufs-srweather-app/regional_workflow/tests/WE2E/test_configs``, create a new directory named ``new_category``. +#. In the directory ``ufs-srweather-app/tests/WE2E/test_configs``, create a new directory named ``new_category``. #. In the file ``get_WE2Etest_names_subdirs_descs.sh``, add the element ``"new_category"`` to the array ``category_subdirs``, which contains the list of categories/subdirectories in which to search for test configuration files. Thus, ``category_subdirs`` becomes: @@ -384,7 +387,7 @@ In this situation, the primary name for the test is ``grid_RRFS_CONUScompact_25k * A primary test can have more than one alternate test name (by having more than one symlink pointing to the test's configuration file). * The symlinks representing the alternate test names can be in the same or a different category directory. - * The ``--relative`` flag makes the symlink relative (i.e., within/below the ``regional_workflow`` directory structure) so that it stays valid when copied to other locations. (Note however that this flag is platform-dependent and may not exist on some platforms.) + * The ``--relative`` flag makes the symlink relative (i.e., within/below the ``tests`` directory) so that it stays valid when copied to other locations. (Note however that this flag is platform-dependent and may not exist on some platforms.) * To determine whether a test has one or more alternate names, a user can view the CSV file ``WE2E_test_info.csv`` generated by the ``run_WE2E_tests.sh`` script. Recall from :numref:`Section %s ` that column 1 of this CSV file contains the test's primary name (and its category) while column 2 contains any alternate names (and their categories). * With this primary/alternate test naming convention, a user can list either the primary test name or one of the alternate test names in the experiments list file (e.g., ``my_tests.txt``) read in by ``run_WE2E_tests.sh``. If more than one name is listed for the same test (e.g., the primary name and and an alternate name, two alternate names, etc.), ``run_WE2E_tests.sh`` will exit with a warning message and will **not** run any tests. From 21bec9ca783d927a58f065d0de7dcba65b9d969b Mon Sep 17 00:00:00 2001 From: gspetro Date: Mon, 14 Nov 2022 16:35:03 -0500 Subject: [PATCH 28/63] update I/O input path image --- .../source/_static/SRW_wflow_input_path.png | Bin 0 -> 141217 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/UsersGuide/source/_static/SRW_wflow_input_path.png diff --git a/docs/UsersGuide/source/_static/SRW_wflow_input_path.png b/docs/UsersGuide/source/_static/SRW_wflow_input_path.png new file mode 100644 index 0000000000000000000000000000000000000000..7b2b8cd49446ab85e178df0c57b0e8a09f67f03e GIT binary patch literal 141217 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 z

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 From 9f732bb0a5f90a4a0f6c6d646a732ee70448abb4 Mon Sep 17 00:00:00 2001 From: gspetro Date: Tue, 15 Nov 2022 22:12:04 -0500 Subject: [PATCH 38/63] misc updates --- docs/UsersGuide/source/RunSRW.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index 8251d5ae96..c9fd33859e 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -30,7 +30,7 @@ The overall procedure for generating an experiment is shown in :numref:`Figure % .. figure:: _static/SRW_overall_workflow_run.png :alt: Flowchart describing the SRW App workflow steps. - *Overall layout of the SRW App Workflow* + *Overall Layout of the SRW App Workflow* .. _Data: @@ -67,11 +67,11 @@ For Level 2-4 systems, the data must be added to the user's system. Detailed ins Grid Configuration ======================= -The SRW App officially supports the four predefined grids shown in :numref:`Table %s `. The out-of-the-box SRW App case uses the ``RRFS_CONUS_25km`` predefined grid option. More information on the predefined and user-generated grid options can be found in :numref:`Chapter %s ` for those who are curious. Users who plan to utilize one of the four predefined domain (grid) options may continue to :numref:`Step %s `. Users who plan to create a new custom domain should refer to :numref:`Section %s ` for instructions. At a minimum, these users will need to add the new grid name to the ``valid_param_vals.yaml`` file and add the corresponding grid-specific parameters in the ``predef_grid_params.yaml`` file. +The SRW App officially supports the four predefined grids shown in :numref:`Table %s `. The out-of-the-box SRW App case uses the ``RRFS_CONUS_25km`` predefined grid option. More information on the predefined and user-generated grid options can be found in :numref:`Chapter %s ` for those who are curious. Users who plan to utilize one of the four predefined domain (grid) options may continue to :numref:`Step %s `. Users who plan to create a new custom predefined grid should refer to :numref:`Section %s ` for instructions. At a minimum, these users will need to add the new grid name to the ``valid_param_vals.yaml`` file and add the corresponding grid-specific parameters in the ``predef_grid_params.yaml`` file. .. _PredefinedGrids: -.. table:: Predefined grids in the SRW App +.. table:: Predefined Grids Supported in the SRW App +----------------------+-------------------+--------------------------------+ | **Grid Name** | **Grid Type** | **Quilting (write component)** | From 3485ec7aa1cae50a7208918693ef37d20eb792f7 Mon Sep 17 00:00:00 2001 From: gspetro Date: Tue, 15 Nov 2022 22:20:13 -0500 Subject: [PATCH 39/63] rm old img --- .../source/_static/SRW_overall_workflow_run.png | Bin 81443 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/UsersGuide/source/_static/SRW_overall_workflow_run.png diff --git a/docs/UsersGuide/source/_static/SRW_overall_workflow_run.png b/docs/UsersGuide/source/_static/SRW_overall_workflow_run.png deleted file mode 100644 index d1bb7dfdd848cf2f5f22b33d5daec2fec69df970..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 81443 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 Date: Tue, 15 Nov 2022 22:21:13 -0500 Subject: [PATCH 40/63] add updated img --- .../source/_static/SRW_overall_workflow_run.png | Bin 0 -> 81443 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/UsersGuide/source/_static/SRW_overall_workflow_run.png diff --git a/docs/UsersGuide/source/_static/SRW_overall_workflow_run.png b/docs/UsersGuide/source/_static/SRW_overall_workflow_run.png new file mode 100644 index 0000000000000000000000000000000000000000..d1bb7dfdd848cf2f5f22b33d5daec2fec69df970 GIT binary patch literal 81443 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 Date: Tue, 15 Nov 2022 22:57:43 -0500 Subject: [PATCH 41/63] fix img --- docs/UsersGuide/source/RunSRW.rst | 2 +- .../source/_static/SRW_workflow_run_process.png | Bin 0 -> 81443 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 docs/UsersGuide/source/_static/SRW_workflow_run_process.png diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index c9fd33859e..a96d1df679 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -27,7 +27,7 @@ The overall procedure for generating an experiment is shown in :numref:`Figure % .. _AppOverallProc: -.. figure:: _static/SRW_overall_workflow_run.png +.. figure:: _static/SRW_workflow_run_process.png :alt: Flowchart describing the SRW App workflow steps. *Overall Layout of the SRW App Workflow* diff --git a/docs/UsersGuide/source/_static/SRW_workflow_run_process.png b/docs/UsersGuide/source/_static/SRW_workflow_run_process.png new file mode 100644 index 0000000000000000000000000000000000000000..d1bb7dfdd848cf2f5f22b33d5daec2fec69df970 GIT binary patch literal 81443 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 Date: Tue, 15 Nov 2022 23:02:58 -0500 Subject: [PATCH 42/63] fix img --- docs/UsersGuide/source/RunSRW.rst | 2 +- .../source/_static/SRW_overall_workflow_run.png | Bin 81443 -> 0 bytes .../source/_static/SRW_run_process.png | Bin 0 -> 81455 bytes .../source/_static/SRW_workflow_run_process.png | Bin 81443 -> 0 bytes 4 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 docs/UsersGuide/source/_static/SRW_overall_workflow_run.png create mode 100644 docs/UsersGuide/source/_static/SRW_run_process.png delete mode 100644 docs/UsersGuide/source/_static/SRW_workflow_run_process.png diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index a96d1df679..6f4e79580d 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -27,7 +27,7 @@ The overall procedure for generating an experiment is shown in :numref:`Figure % .. _AppOverallProc: -.. figure:: _static/SRW_workflow_run_process.png +.. figure:: _static/SRW_run_process.png :alt: Flowchart describing the SRW App workflow steps. *Overall Layout of the SRW App Workflow* diff --git a/docs/UsersGuide/source/_static/SRW_overall_workflow_run.png b/docs/UsersGuide/source/_static/SRW_overall_workflow_run.png deleted file mode 100644 index d1bb7dfdd848cf2f5f22b33d5daec2fec69df970..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 81443 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 literal 0 HcmV?d00001 diff --git a/docs/UsersGuide/source/_static/SRW_workflow_run_process.png b/docs/UsersGuide/source/_static/SRW_workflow_run_process.png deleted file mode 100644 index d1bb7dfdd848cf2f5f22b33d5daec2fec69df970..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 81443 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 Date: Wed, 16 Nov 2022 10:27:10 -0500 Subject: [PATCH 43/63] minor updates to WE2E & CCPP note --- docs/UsersGuide/source/WE2Etests.rst | 12 ++++++------ docs/UsersGuide/source/tables/CCPPUpdates.rst | 16 ++++++++-------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/UsersGuide/source/WE2Etests.rst b/docs/UsersGuide/source/WE2Etests.rst index 81863944ad..6569993666 100644 --- a/docs/UsersGuide/source/WE2Etests.rst +++ b/docs/UsersGuide/source/WE2Etests.rst @@ -95,7 +95,7 @@ The examples below demonstrate several common ways that ``run_WE2E_tests.sh`` ca ./run_WE2E_tests.sh tests_file="my_tests.txt" machine="hera" account="rtrr" use_cron_to_relaunch="FALSE" - In this case, the user will have to go into each test's 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:`Section %s ` or :numref:`Section %s `). + In this case, the user will have to go into each test's experiment directory and either manually run 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:`Section %s ` or :numref:`Section %s `). #. To place the experiment subdirectories in a subdirectory named ``test_set_01`` under ``${HOMEdir}/../expt_dirs`` (instead of immediately under ``expt_dirs``), use: @@ -113,7 +113,7 @@ The examples below demonstrate several common ways that ``run_WE2E_tests.sh`` ca This is useful for grouping various sets of tests. -#. To use a test list file (again named ``my_tests.txt``) located in ``/path/to/custom/location`` instead of in the same directory as ``run_WE2E_tests.sh``, and to have the experiment directories be placed in a specific, non-default location (e.g., ``/path/to/custom/expt_dirs``), use: +#. To use a test list file (again named ``my_tests.txt``) located in a custom location instead of in the same directory as ``run_WE2E_tests.sh`` and to have the experiment directories be placed in a specific, non-default location (e.g., ``/path/to/custom/expt_dirs``), use: .. code-block:: @@ -147,7 +147,7 @@ obtained by issuing: ./run_WE2E_tests.sh --help -from within the directory ``ufs-srweather-app/tests/WE2E``. +from within the ``ufs-srweather-app/tests/WE2E`` directory. .. _WE2ETestInfoFile: @@ -178,8 +178,8 @@ The rows of the file/sheet represent the full set of available tests (not just t | The relative cost of running the dynamics in the test. This gives an idea of how expensive the test is relative to a reference test that runs a single 6-hour forecast on the ``RRFS_CONUS_25km`` predefined grid using - its default time step. To calculate the relative cost, the absolute cost - ``abs_cost`` is first calculated as follows: + its default time step (``DT_ATMOS: 40``). To calculate the relative cost, the absolute cost + (``abs_cost``) is first calculated as follows: .. code-block:: @@ -372,7 +372,7 @@ To prevent proliferation of WE2E tests, users might want to use the same test fo ``grid_RRFS_CONUScompact_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v16`` in the ``grids_extrn_mdls_suites_community`` category. This checks for the successful -completion of the Rocoto workflow running a combination of the ``RRFS_CONUScompact_25km`` grid, the ``FV3GFS`` model data for :term:`ICs` and :term:`LBCs`, and the ``FV3_GFS_v16`` physics suite. If this test also happens to use the inline post capability of the UFS :term:`Weather Model` (it currently doesn't; this is only a hypothetical example), then this test can also be used to ensure that the inline post feature of the App/Weather Model (which is activated in the App by setting ``WRITE_DOPOST`` to ``"TRUE"``) is working properly. Since this test will serve two purposes, it should have two names --- one per purpose. +completion of the Rocoto workflow running a combination of the ``RRFS_CONUScompact_25km`` grid, the ``FV3GFS`` model data for :term:`ICs` and :term:`LBCs`, and the ``FV3_GFS_v16`` physics suite. If this test also happens to use the inline post capability of the UFS :term:`Weather Model` (it currently doesn't; this is only a hypothetical example), then this test can also be used to ensure that the inline post feature of the SRW App/Weather Model (which is activated in the SRW App by setting ``WRITE_DOPOST: true``) is working properly. Since this test will serve two purposes, it should have two names --- one per purpose. To set the second (alternate) name to ``activate_inline_post``, the user needs to create a symlink named ``config.activate_inline_post.yaml`` in the ``wflow_features`` category directory that points to the original configuration file (``config.grid_RRFS_CONUScompact_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v16.yaml``) in the ``grids_extrn_mdls_suites_community`` category directory: diff --git a/docs/UsersGuide/source/tables/CCPPUpdates.rst b/docs/UsersGuide/source/tables/CCPPUpdates.rst index 40db96fa67..d43c770179 100644 --- a/docs/UsersGuide/source/tables/CCPPUpdates.rst +++ b/docs/UsersGuide/source/tables/CCPPUpdates.rst @@ -15,15 +15,15 @@ MYNN-EDMF PBL scheme: * Added the ability to configure the MYNN-EDMF PBL scheme to function at closure level 2.5, 2.6 (current default), or 3.0 closure and included a partial-condensation scheme. * Reverted to Tian-Kuang lateral entrainment, which reduces a high relative humidity bias found in some HRRR cases. * Reduced the entrainment rate for momentum. - * Removed the first-order form of the Chaboureau and Bechtold (CB2002) stratiform cloud fraction calculation—it now only uses a higher form of CB. - * Changed CB to use absolute temperature instead of “liquid” temperature (CB2002). + * Removed the first-order form of the Chaboureau and Bechtold (CB2002) stratiform cloud fraction calculation---it now only uses a higher form of CB. + * Changed CB to use absolute temperature instead of "liquid" temperature (CB2002). * Added variable ``sm3d``---a stability function for momentum. MYNN Surface Layer Scheme: * Moved four internal parameters to namelist options: - * ``Isftcflux``: flag for thermal roughness lengths over water in MYNN-SFCLAY - * ``Iz0tlnd``: flag for thermal roughness lengths over land in MYNN-SFCLAY + * ``isftcflux``: flag for thermal roughness lengths over water in MYNN-SFCLAY + * ``iz0tlnd``: flag for thermal roughness lengths over land in MYNN-SFCLAY * ``sfclay_compute_flux``: flag for computing surface scalar fluxes in MYNN-SFCLAY * ``sfclay_compute_diag``: flag for computing surface diagnostics in MYNN-SFCLAY @@ -41,19 +41,19 @@ RUC Land Surface Model: GSL Drag Suite: * Removed limits on the standard deviation of small-scale topography used by the small-scale GWD and turbulent orographic form drag (TOFD) schemes; removed the height limitation of the TOFD scheme. - - * Removed the “sfc_nst” scheme from the suite to avert a cooling SST trend that had a negative impact on surface variables in the coastal regions. + +Removed the “sfc_nst” scheme from the suite to avert a cooling SST trend that had a negative impact on surface variables in the coastal regions. RRFS_v1beta Suite: ================================================ Noah-MP Land Surface Model: - * Added a connection with the MYNN surface layer scheme as via namelist option ``opt_sfc=4``. + * Added a connection with the MYNN surface layer scheme via namelist option ``opt_sfc=4``. GFS_v16 Suite: ================================================ GFS saSAS Deep Convection and saMF Shallow Cumulus Schemes: - * Added a new prognostic updraft area fraction closure in saSAS and saMF (Bengtsson et al., 2022). It is controlled via namelist option ``progsima`` and set to ``false`` by default. + * Added a new prognostic updraft area fraction closure in saSAS and saMF (Bengtsson et al., 2022). It is controlled via namelist option ``progsima`` (set to ``false`` by default) and an updated field table including ``sigmab``. From 573d2cf809be70e3ad49845e0174c35558d60986 Mon Sep 17 00:00:00 2001 From: gspetro Date: Wed, 16 Nov 2022 10:33:03 -0500 Subject: [PATCH 44/63] readme edits --- README.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 6956aa7a40..ec998a084f 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,14 @@ # UFS Short-Range Weather Application -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/. +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/. -The UFS includes multiple applications (see a complete list at https://ufscommunity.org/science/aboutapps/) that support different forecast durations and spatial domains. This documentation describes the development branch of the UFS Short-Range Weather (SRW) Application, which targets predictions of atmospheric behavior on a limited spatial domain and on time scales from minutes to several days. The development branch of the application is continually evolving as the system undergoes open development. The latest SRW App release (v2.0.0) represents a snapshot of this continuously evolving system. +The UFS includes multiple applications (see a complete list at https://ufscommunity.org/science/aboutapps/) that support different forecast durations and spatial domains. This documentation describes the v2.1.0 release branch of the UFS Short-Range Weather (SRW) Application, which targets predictions of atmospheric behavior on a limited spatial domain and on time scales from minutes to several days. The development branch of the application is continually evolving as the system undergoes open development. The latest SRW App release (v2.1.0) represents a snapshot of this continuously evolving system. -The UFS SRW App User's Guide associated with the development branch is at: https://ufs-srweather-app.readthedocs.io/en/develop/, while the guide specific to the SRW App v2.0.0 release can be found at: https://ufs-srweather-app.readthedocs.io/en/release-public-v2/. 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, view the instructions in the SRW App User's Guide. The UFS SRW App User's Guide specific to the SRW App v2.1.0 release can be found at: https://ufs-srweather-app.readthedocs.io/en/release-public-v2.1.0/, while the documentation for the development branch is at: https://ufs-srweather-app.readthedocs.io/en/develop/. 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 +The SRW App v2.1.0 citation is as follows and should be used when presenting results based on research conducted with the App: -UFS Development Team. (2022, June 23). Unified Forecast System (UFS) Short-Range Weather (SRW) Application (Version v2.0.0). Zenodo. https://doi.org/10.5281/zenodo.6505854 +UFS Development Team. (2022, Nov. 17). Unified Forecast System (UFS) Short-Range Weather (SRW) Application (Version v2.1.0). Zenodo. https://doi.org/10.5281/zenodo.7277602 [![Python unittests](https://github.com/ufs-community/ufs-srweather-app/actions/workflows/python_unittests.yaml/badge.svg)](https://github.com/ufs-community/ufs-srweather-app/actions/workflows/python_unittests.yaml) [![Python functional tests](https://github.com/ufs-community/ufs-srweather-app/actions/workflows/python_func_tests.yaml/badge.svg)](https://github.com/ufs-community/ufs-srweather-app/actions/workflows/python_func_tests.yaml) From a9e7438a7d7b088f5cc3a27196f0b67f17cb4eba Mon Sep 17 00:00:00 2001 From: gspetro Date: Wed, 16 Nov 2022 10:38:39 -0500 Subject: [PATCH 45/63] update readme & intro --- README.md | 12 ++++++++++++ docs/UsersGuide/source/Introduction.rst | 4 ++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ec998a084f..f4f72bb1f6 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,18 @@ The Unified Forecast System (UFS) is a community-based, coupled, comprehensive E The UFS includes multiple applications (see a complete list at https://ufscommunity.org/science/aboutapps/) that support different forecast durations and spatial domains. This documentation describes the v2.1.0 release branch of the UFS Short-Range Weather (SRW) Application, which targets predictions of atmospheric behavior on a limited spatial domain and on time scales from minutes to several days. The development branch of the application is continually evolving as the system undergoes open development. The latest SRW App release (v2.1.0) represents a snapshot of this continuously evolving system. +This v2.1.0 release includes: + + * Bug fixes since the v2.0.0 release + * Conversion to a Python workflow (from the former shell workflow) + * Improved container support, including the option to run across compute nodes using Rocoto + * Updates to CCPP that target the top of the `main` branch (which is ahead of CCPP v6.0.0). + * Support for the UPP inline post option + * Addition of a multi-purpose code clean-up script (`devclean.sh`) + * Documentation updates to reflect the changes above + +Future work will expand the capabilities of the application to include data assimilation (DA) and a forecast restart/cycling capability. + For instructions on how to clone the repository, build the code, and run the workflow, view the instructions in the SRW App User's Guide. The UFS SRW App User's Guide specific to the SRW App v2.1.0 release can be found at: https://ufs-srweather-app.readthedocs.io/en/release-public-v2.1.0/, while the documentation for the development branch is at: https://ufs-srweather-app.readthedocs.io/en/develop/. The repository is at: https://github.com/ufs-community/ufs-srweather-app. The SRW App v2.1.0 citation is as follows and should be used when presenting results based on research conducted with the App: diff --git a/docs/UsersGuide/source/Introduction.rst b/docs/UsersGuide/source/Introduction.rst index cc157cace7..6db1086523 100644 --- a/docs/UsersGuide/source/Introduction.rst +++ b/docs/UsersGuide/source/Introduction.rst @@ -6,7 +6,7 @@ Introduction The Unified Forecast System (:term:`UFS`) is a community-based, coupled, comprehensive Earth modeling system. NOAA's operational model suite for numerical weather prediction (:term:`NWP`) is quickly transitioning to the UFS from a number of different modeling systems. The UFS enables research, development, and contribution opportunities within the broader :term:`Weather Enterprise` (including government, industry, and academia). For more information about the UFS, visit the `UFS Portal `__. -The UFS includes `multiple applications `__ that support different forecast durations and spatial domains. This documentation describes the UFS Short-Range Weather (SRW) Application, which targets predictions of atmospheric behavior on a limited spatial domain and on time scales from minutes to several days. The SRW Application v2.1.0 release includes a prognostic atmospheric model, pre- and post-processing, and a community workflow for running the system end-to-end. These components are documented within this User's Guide and supported through the `GitHub Discussions `__ forum. New and improved capabilities for the v2.1.0 release included the addition of a verification package (METplus) for both deterministic and ensemble simulations and support for four stochastically perturbed physics schemes. This v2.1.0 release includes: +The UFS includes `multiple applications `__ that support different forecast durations and spatial domains. This documentation describes the UFS Short-Range Weather (SRW) Application, which targets predictions of atmospheric behavior on a limited spatial domain and on time scales from minutes to several days. The SRW Application v2.1.0 release includes a prognostic atmospheric model, pre- and post-processing, and a community workflow for running the system end-to-end. These components are documented within this User's Guide and supported through the `GitHub Discussions `__ forum. New and improved capabilities for the v2.0.0 release included the addition of a verification package (METplus) for both deterministic and ensemble simulations and support for four stochastically perturbed physics schemes. This v2.1.0 release includes: * Bug fixes since the v2.0.0 release * Conversion to a Python workflow (from the former shell workflow) @@ -27,7 +27,7 @@ This documentation provides: The SRW App v2.1.0 citation is as follows and should be used when presenting results based on research conducted with the App: -UFS Development Team. (2022, Nov. 16). Unified Forecast System (UFS) Short-Range Weather (SRW) Application (Version v2.1.0). Zenodo. https://doi.org/10.5281/zenodo.7277602 +UFS Development Team. (2022, Nov. 17). Unified Forecast System (UFS) Short-Range Weather (SRW) Application (Version v2.1.0). Zenodo. https://doi.org/10.5281/zenodo.7277602 .. COMMENT: DOI link will not work until after it is published (on or shortly before the release date). From 2fd90c741091078c83f4272d579bea7162c303ba Mon Sep 17 00:00:00 2001 From: gspetro Date: Wed, 16 Nov 2022 10:48:30 -0500 Subject: [PATCH 46/63] add predefined vs custom grid note --- docs/UsersGuide/source/LAMGrids.rst | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/UsersGuide/source/LAMGrids.rst b/docs/UsersGuide/source/LAMGrids.rst index f756000349..5c1e516ad8 100644 --- a/docs/UsersGuide/source/LAMGrids.rst +++ b/docs/UsersGuide/source/LAMGrids.rst @@ -110,12 +110,12 @@ Ultimately, the choice of grid is experiment-dependent and resource-dependent. F Creating User-Generated Grids =============================== While the four 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 +out with the SRW App, more advanced users may wish to create their own predefined 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, it is important to understand the set of scripts that handle the workflow and experiment generation (see :numref:`Figure %s ` and :numref:`Figure %s `). 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 +With those caveats in mind, this section provides instructions for adding a new predefined 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. @@ -123,7 +123,6 @@ The steps to add such a grid to the workflow are as follows: #. Choose the name of the grid. For the purposes of this documentation, the grid will be called "NEW_GRID". - #. Add NEW_GRID to the array ``valid_vals_PREDEF_GRID_NAME`` in the ``ufs-srweather-app/ush/valid_param_vals.yaml`` file. #. In ``ufs-srweather-app/ush/predef_grid_params.yaml``, add a stanza describing the parameters for NEW_GRID. An example of such a stanza is given :ref:`below `. For descriptions of the variables that need to be set, see Sections :numref:`%s ` and :numref:`%s `. @@ -197,3 +196,6 @@ The following is an example of a code stanza for "NEW_GRID" to be added to ``pre WRTCMP_ny: 107 WRTCMP_dx: 25000.0 WRTCMP_dy: 25000.0 + +.. note:: + The process above explains how to create a new *predefined* grid, which can be used more than once. If a user prefers to create a custom grid for one-time use, the variables above can instead be specified in ``config.yaml``, and ``PREDEF_GRID_NAME`` can be set to a null string. In this case, it is not necessary to modify ``valid_param_vals.yaml`` or ``predef_grid_params.yaml``. \ No newline at end of file From 85101e583b553856f014b7d9ae887a5aa732bf07 Mon Sep 17 00:00:00 2001 From: gspetro Date: Wed, 16 Nov 2022 13:18:02 -0500 Subject: [PATCH 47/63] add wrapper commands, LAM custom grid notes, remove comments throughout --- docs/UsersGuide/source/ConfigWorkflow.rst | 2 +- docs/UsersGuide/source/ContributorsGuide.rst | 2 +- docs/UsersGuide/source/Graphics.rst | 2 -- docs/UsersGuide/source/Introduction.rst | 2 -- docs/UsersGuide/source/LAMGrids.rst | 2 +- docs/UsersGuide/source/RunSRW.rst | 15 +++++++++++++++ docs/UsersGuide/source/WE2Etests.rst | 4 +--- 7 files changed, 19 insertions(+), 10 deletions(-) diff --git a/docs/UsersGuide/source/ConfigWorkflow.rst b/docs/UsersGuide/source/ConfigWorkflow.rst index b8048fb1aa..9e2799ee28 100644 --- a/docs/UsersGuide/source/ConfigWorkflow.rst +++ b/docs/UsersGuide/source/ConfigWorkflow.rst @@ -489,7 +489,7 @@ Verification Tasks Flag that determines whether to run the ensemble point verification task. If this flag is set, both ensemble-stat point verification and point verification of ensemble-stat output is computed. The :ref:`MET Ensemble-Stat tool ` provides verification statistics for ensemble forecasts and can be used in conjunction with the :ref:`MET Point-Stat tool `. See :numref:`Section %s ` for additional parameters related to this task. Valid values: ``True`` | ``False`` .. - COMMENT: Might be worth defining "ensemble-stat verification for gridded data," "ensemble point verification," "ensemble-stat point verification," and "point verification of ensemble-stat output" + COMMENT: Defining "ensemble-stat verification for gridded data," "ensemble point verification," "ensemble-stat point verification," and "point verification of ensemble-stat output"? .. _make-grid: diff --git a/docs/UsersGuide/source/ContributorsGuide.rst b/docs/UsersGuide/source/ContributorsGuide.rst index 74e4b5f109..a4bd226d8c 100644 --- a/docs/UsersGuide/source/ContributorsGuide.rst +++ b/docs/UsersGuide/source/ContributorsGuide.rst @@ -460,6 +460,6 @@ Once a testing label is added to the PR and the tests are run, the results of th Once on the `Jenkins `__ page specific to the PR check in question, users can view all of the testing output, including "artifacts" from the build. To do this, users must click on the arrow icon in the top right corner of the page. Then, in the lefthand navigation menu, they can click on *S3 Artifacts* and download any files listed there for in-depth review. -If the Jenkins tests fail, then the developer will need to make the necessary corrections to their PR. Unfortunately, removing and adding the label back will not initiate the Jenkins tests. For re-runs, the job will need to be manually re-run through Jenkins. +If the Jenkins tests fail, then the developer will need to make the necessary corrections to their PR. Unfortunately, removing and adding the label back will not initiate the Jenkins tests. Instead, the job will need to be manually re-run through Jenkins. diff --git a/docs/UsersGuide/source/Graphics.rst b/docs/UsersGuide/source/Graphics.rst index a0fb615301..5795c0374e 100644 --- a/docs/UsersGuide/source/Graphics.rst +++ b/docs/UsersGuide/source/Graphics.rst @@ -37,8 +37,6 @@ To use the plotting scripts, the regional workflow environment, which includes t where ```` refers to a valid machine name (see :numref:`Section %s `). Then users should follow the instructions output by the console (e.g., ``conda activate regional_workflow``). -.. COMMENT: Make note to ignore deprecation warnings...? - .. _Cartopy: Cartopy Shapefiles diff --git a/docs/UsersGuide/source/Introduction.rst b/docs/UsersGuide/source/Introduction.rst index 6db1086523..52b7e3e061 100644 --- a/docs/UsersGuide/source/Introduction.rst +++ b/docs/UsersGuide/source/Introduction.rst @@ -29,8 +29,6 @@ The SRW App v2.1.0 citation is as follows and should be used when presenting res UFS Development Team. (2022, Nov. 17). Unified Forecast System (UFS) Short-Range Weather (SRW) Application (Version v2.1.0). Zenodo. https://doi.org/10.5281/zenodo.7277602 -.. COMMENT: DOI link will not work until after it is published (on or shortly before the release date). - How to Use This Document ======================== diff --git a/docs/UsersGuide/source/LAMGrids.rst b/docs/UsersGuide/source/LAMGrids.rst index 5c1e516ad8..19a5fd7fd1 100644 --- a/docs/UsersGuide/source/LAMGrids.rst +++ b/docs/UsersGuide/source/LAMGrids.rst @@ -198,4 +198,4 @@ The following is an example of a code stanza for "NEW_GRID" to be added to ``pre WRTCMP_dy: 25000.0 .. note:: - The process above explains how to create a new *predefined* grid, which can be used more than once. If a user prefers to create a custom grid for one-time use, the variables above can instead be specified in ``config.yaml``, and ``PREDEF_GRID_NAME`` can be set to a null string. In this case, it is not necessary to modify ``valid_param_vals.yaml`` or ``predef_grid_params.yaml``. \ No newline at end of file + The process above explains how to create a new *predefined* grid, which can be used more than once. If a user prefers to create a custom grid for one-time use, the variables above can instead be specified in ``config.yaml``, and ``PREDEF_GRID_NAME`` can be set to a null string. In this case, it is not necessary to modify ``valid_param_vals.yaml`` or ``predef_grid_params.yaml``. Users can view an example configuration file for a custom grid `here `__. \ No newline at end of file diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index 6f4e79580d..0f0bb12edd 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -520,9 +520,11 @@ For example, to run the out-of-the-box experiment on Gaea, add or modify variabl task_get_extrn_ics: USE_USER_STAGED_EXTRN_FILES: true EXTRN_MDL_SOURCE_BASEDIR_ICS: /lustre/f2/pdata/ncep/UFS_SRW_App/v2p1/input_model_data/FV3GFS/grib2/2019061518 + EXTRN_MDL_DATA_STORES: disk task_get_extrn_lbcs: USE_USER_STAGED_EXTRN_FILES: true EXTRN_MDL_SOURCE_BASEDIR_LBCS: /lustre/f2/pdata/ncep/UFS_SRW_App/v2p1/input_model_data/FV3GFS/grib2/2019061518 + EXTRN_MDL_DATA_STORES: disk To determine whether the ``config.yaml`` file adjustments are valid, users can run the following script from the ``ush`` directory: @@ -1163,6 +1165,10 @@ Run the Workflow Using Stand-Alone Scripts The regional workflow can be run using standalone shell scripts in cases where the Rocoto software is not available on a given platform. If Rocoto *is* available, see :numref:`Section %s ` to run the workflow using Rocoto. +.. attention:: + + When working on an HPC system, users should allocate a compute node prior to running their experiment. The proper command will depend on the system's resource manager, but some guidance is offered in :numref:`Section %s `. + #. ``cd`` into the experiment directory. For example, from ``ush``, presuming default directory settings: .. code-block:: console @@ -1176,6 +1182,15 @@ The regional workflow can be run using standalone shell scripts in cases where t export EXPTDIR=`pwd` setenv EXPTDIR `pwd` + +#. Set the ``PDY`` and ``cyc`` environment variables. ``PDY`` refers to the first 8 characters (YYYYMMDD) of the ``DATE_FIRST_CYCL`` variable defined in the ``config.yaml``. ``cyc`` refers to the last two digits of ``DATE_FIRST_CYCL`` (HH) defined in ``config.yaml``. For example, if the ``config.yaml`` file defines ``DATE_FIRST_CYCL: '2019061518'``, the user should run: + + .. code-block:: console + + export PDY=20190615 && export cyc=18 + + before running the wrapper scripts. + #. Copy the wrapper scripts from the ``ush`` directory into the experiment directory. Each workflow task has a wrapper script that sets environment variables and runs the job script. .. code-block:: console diff --git a/docs/UsersGuide/source/WE2Etests.rst b/docs/UsersGuide/source/WE2Etests.rst index 6569993666..110acaddc6 100644 --- a/docs/UsersGuide/source/WE2Etests.rst +++ b/docs/UsersGuide/source/WE2Etests.rst @@ -15,8 +15,6 @@ that all input files are available and readable, calling executables with correc WE2E tests fall into one of two categories: fundamental or comprehensive. The list of supported fundamental and comprehensive tests can be viewed in ``ufs-srweather-app/tests/WE2E/machine_suites/``. Fundamental tests are a lightweight set of tests that can be automated and run regularly on each `Level 1 `__ platform. These tests verify that there are no major, obvious faults in the underlying code when running common combinations of grids, input data, and physics suites. The remaining tests are called comprehensive tests because they cover a broader range of capabilities, configurations, and components. The complete set of tests (fundamental and comprehensive) can be viewed in :doc:`this table `. -.. COMMENT: Update! - For convenience, the WE2E tests are currently grouped into the following categories (under ``ufs-srweather-app/tests/WE2E/test_configs``): * ``grids_extrn_mdls_suites_community`` @@ -387,7 +385,7 @@ In this situation, the primary name for the test is ``grid_RRFS_CONUScompact_25k * A primary test can have more than one alternate test name (by having more than one symlink pointing to the test's configuration file). * The symlinks representing the alternate test names can be in the same or a different category directory. - * The ``--relative`` flag makes the symlink relative (i.e., within/below the ``tests`` directory) so that it stays valid when copied to other locations. (Note however that this flag is platform-dependent and may not exist on some platforms.) + * The ``--relative`` flag makes the symlink relative (i.e., within/below the ``tests`` directory) so that it stays valid when copied to other locations. (Note, however, that this flag is platform-dependent and may not exist on some platforms.) * To determine whether a test has one or more alternate names, a user can view the CSV file ``WE2E_test_info.csv`` generated by the ``run_WE2E_tests.sh`` script. Recall from :numref:`Section %s ` that column 1 of this CSV file contains the test's primary name (and its category) while column 2 contains any alternate names (and their categories). * With this primary/alternate test naming convention, a user can list either the primary test name or one of the alternate test names in the experiments list file (e.g., ``my_tests.txt``) read in by ``run_WE2E_tests.sh``. If more than one name is listed for the same test (e.g., the primary name and and an alternate name, two alternate names, etc.), ``run_WE2E_tests.sh`` will exit with a warning message and will **not** run any tests. From fba6876851b5f6e8fa6b07b228f90c1f6bbdd893 Mon Sep 17 00:00:00 2001 From: gspetro Date: Wed, 16 Nov 2022 14:15:29 -0500 Subject: [PATCH 48/63] add note to manual/wrapper run section --- docs/UsersGuide/source/RunSRW.rst | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index 0f0bb12edd..80847d658b 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -1167,7 +1167,7 @@ The regional workflow can be run using standalone shell scripts in cases where t .. attention:: - When working on an HPC system, users should allocate a compute node prior to running their experiment. The proper command will depend on the system's resource manager, but some guidance is offered in :numref:`Section %s `. + When working on an HPC system, users should allocate a compute node prior to running their experiment. The proper command will depend on the system's resource manager, but some guidance is offered in :numref:`Section %s `. It may be necessay to reload the regional workflow (see :numref:`Section %s `). It may also be necessary to load the ``build__`` scripts as described in :numref:`Section %s `. #. ``cd`` into the experiment directory. For example, from ``ush``, presuming default directory settings: @@ -1217,6 +1217,12 @@ The regional workflow can be run using standalone shell scripts in cases where t ./run_fcst.sh ./run_post.sh +Each task should finish with exit code 0. For example: + +.. code-block:: console + + End exregional_get_extrn_mdl_files.sh at Wed Nov 16 18:08:19 UTC 2022 with error code 0 (time elapsed: 00:00:01) + Check the batch script output file in your experiment directory for a “SUCCESS” message near the end of the file. .. _RegionalWflowTasks: From 6fcd990c93bdea0d9fd5a6b91a2da3d37e6602bd Mon Sep 17 00:00:00 2001 From: Natalie Perlin <68030316+natalie-perlin@users.noreply.github.com> Date: Wed, 16 Nov 2022 14:31:24 -0500 Subject: [PATCH 49/63] Update BuildSRW.rst Correcting the text --- docs/UsersGuide/source/BuildSRW.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/UsersGuide/source/BuildSRW.rst b/docs/UsersGuide/source/BuildSRW.rst index 2ace8ccf4c..fea0339f35 100644 --- a/docs/UsersGuide/source/BuildSRW.rst +++ b/docs/UsersGuide/source/BuildSRW.rst @@ -450,7 +450,7 @@ The SRW App can be built on MacOS machines, presuming HPC-Stack has already been * MacBook Pro 2015, 2.8 GHz Quad-Core Intel Core i7 (x86_64), Catalina OS X 10.15.7, GNU compiler suite v.11.2.0_3 (gcc, gfortran, g++); no MPI pre-installed -The ``build_macos_gnu.gnu`` modulefile is written as a LMOD module in Lua language, and could be loaded after the LMOD module environment is initialized. This module lists the location of HPC-Stack modules, loads the meta-modules and modules, sets serial and parallel compilers, additional flags, and any environment variables needed for building the SRW App. The modulefile must be modified to include the absolute path to the user's HPC-Stack installation and ``ufs-srweather-app`` directories. In particular, the following section must be modified: +The ``build_macos_gnu.gnu`` modulefile is written as a LMOD module in Lua language, and could be loaded after the LMOD module environment is initialized. This module lists the location of HPC-Stack modules, loads the meta-modules and modules, sets serial and parallel compilers, additional flags, and any environment variables needed for building the SRW App. The modulefile must be modified to include the absolute path to the user's HPC-Stack installation: .. code-block:: console From e63c83d485e9f2c434708b66af33fe89485ca1e0 Mon Sep 17 00:00:00 2001 From: Natalie Perlin <68030316+natalie-perlin@users.noreply.github.com> Date: Wed, 16 Nov 2022 14:39:51 -0500 Subject: [PATCH 50/63] Update RunSRW.rst Some text corrections --- docs/UsersGuide/source/RunSRW.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index e025352a99..97fbb1cac2 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -117,14 +117,14 @@ where ```` refers to a valid machine name (see :numref:`Section %s `. -The ``wflow_`` modulefile will then output instructions to activate the regional workflow. The user should run the commands specified in the modulefile output. For example, if the output says: +The ``wflow_`` modulefile will then output instructions to activate the regional workflow. The user should run the commands specified in the modulefile output. The command may vary from system to system. For example, if the output says: .. code-block:: console Please do the following to activate conda: > conda activate regional_workflow -then the user should run ``conda activate regional_workflow``. This will activate the ``regional_workflow`` conda environment. +then the user should run ``conda activate regional_workflow``. This activates the ``regional_workflow`` conda environment, and the user typically sees ``(regional_workflow)`` in front of the Terminal prompt. Preparing the Workflow Environment on Non-Level 1 Systems From d50d1f2701d1d7bfbff52cd61281098aff099c7e Mon Sep 17 00:00:00 2001 From: gspetro Date: Wed, 16 Nov 2022 14:43:52 -0500 Subject: [PATCH 51/63] add hpc-stack doc link; other minor updates --- docs/UsersGuide/source/RunSRW.rst | 2 +- docs/UsersGuide/source/conf.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index 80847d658b..a4607027c5 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -1217,7 +1217,7 @@ The regional workflow can be run using standalone shell scripts in cases where t ./run_fcst.sh ./run_post.sh -Each task should finish with exit code 0. For example: +Each task should finish with error code 0. For example: .. code-block:: console diff --git a/docs/UsersGuide/source/conf.py b/docs/UsersGuide/source/conf.py index 81b43c7a3c..3e7bad9c29 100644 --- a/docs/UsersGuide/source/conf.py +++ b/docs/UsersGuide/source/conf.py @@ -204,7 +204,7 @@ def setup(app): # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { - 'hpc-stack': ('https://hpc-stack.readthedocs.io/en/release-srw-public-v2/', None), + 'hpc-stack': ('https://hpc-stack-epic.readthedocs.io/en/release-public-v2.1.0/', None), 'met': ('https://met.readthedocs.io/en/latest/', None), } From 077d0bd462b4183cac96f3562791bba1617ac84c Mon Sep 17 00:00:00 2001 From: gspetro Date: Wed, 16 Nov 2022 14:56:06 -0500 Subject: [PATCH 52/63] update links & remove comments --- docs/UsersGuide/source/Components.rst | 4 +--- docs/UsersGuide/source/Introduction.rst | 9 ++------- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/docs/UsersGuide/source/Components.rst b/docs/UsersGuide/source/Components.rst index 8633502822..bbe767dc12 100644 --- a/docs/UsersGuide/source/Components.rst +++ b/docs/UsersGuide/source/Components.rst @@ -35,9 +35,7 @@ The prognostic atmospheric model in the UFS SRW Application is the Finite-Volume Supported model resolutions in this release include 3-, 13-, and 25-km predefined contiguous U.S. (:term:`CONUS`) domains, each with 127 vertical levels. Preliminary tools for users to define their own domain are also available in the release with full, formal support of these tools to be provided in future releases. The Extended Schmidt Gnomonic (ESG) grid is used with the FV3-LAM, which features relatively uniform grid cells across the entirety of the domain. Additional information about the FV3 dynamical core can be found in the `scientific documentation `__, the `technical documentation `__, and on the `NOAA Geophysical Fluid Dynamics Laboratory website `__. -Interoperable atmospheric physics, along with various land surface model options, are supported through the Common Community Physics Package (CCPP), described `here `__. Atmospheric physics are a set of numerical methods describing small-scale processes such as clouds, turbulence, radiation, and their interactions. There are four physics suites supported for the SRW App v2.1.0 release. The first is the FV3_RRFS_v1beta physics suite, which is being tested for use in the future operational implementation of the Rapid Refresh Forecast System (RRFS) planned for 2023-2024, and the second is an updated version of the physics suite used in the operational Global Forecast System (GFS) v16. Additionally, FV3_WoFS_v0 and FV3_HRRR will be supported. A detailed list of CCPP updates since the SRW App v2.0.0 release is available :ref:`here `. A scientific description of CCPP parameterizations and suites can be found in the `CCPP Scientific Documentation `__, and CCPP technical aspects are described in the `CCPP Technical Documentation `__. The model namelist has many settings beyond the physics options that can optimize various aspects of the model for use with each of the supported suites. Additional information on Stochastic Physics options is available `here `__. - -.. COMMENT: Check CCPP tech doc functionality. +Interoperable atmospheric physics, along with various land surface model options, are supported through the Common Community Physics Package (CCPP), described `here `__. Atmospheric physics are a set of numerical methods describing small-scale processes such as clouds, turbulence, radiation, and their interactions. There are four physics suites supported for the SRW App v2.1.0 release. The first is the FV3_RRFS_v1beta physics suite, which is being tested for use in the future operational implementation of the Rapid Refresh Forecast System (RRFS) planned for 2023-2024, and the second is an updated version of the physics suite used in the operational Global Forecast System (GFS) v16. Additionally, FV3_WoFS_v0 and FV3_HRRR will be supported. A detailed list of CCPP updates since the SRW App v2.0.0 release is available :ref:`here `. A full scientific description of CCPP parameterizations and suites can be found in the `CCPP Scientific Documentation `__, and CCPP technical aspects are described in the `CCPP Technical Documentation `__. The model namelist has many settings beyond the physics options that can optimize various aspects of the model for use with each of the supported suites. Additional information on Stochastic Physics options is available `here `__. .. note:: SPP is currently only available for specific physics schemes used in the RAP/HRRR physics suite. Users need to be aware of which physics suite definition file (:term:`SDF`) is chosen when turning this option on. Among the supported physics suites, the full set of parameterizations can only be used with the ``FV3_HRRR`` option for ``CCPP_PHYS_SUITE``. diff --git a/docs/UsersGuide/source/Introduction.rst b/docs/UsersGuide/source/Introduction.rst index 52b7e3e061..08d7f2afc1 100644 --- a/docs/UsersGuide/source/Introduction.rst +++ b/docs/UsersGuide/source/Introduction.rst @@ -6,7 +6,7 @@ Introduction The Unified Forecast System (:term:`UFS`) is a community-based, coupled, comprehensive Earth modeling system. NOAA's operational model suite for numerical weather prediction (:term:`NWP`) is quickly transitioning to the UFS from a number of different modeling systems. The UFS enables research, development, and contribution opportunities within the broader :term:`Weather Enterprise` (including government, industry, and academia). For more information about the UFS, visit the `UFS Portal `__. -The UFS includes `multiple applications `__ that support different forecast durations and spatial domains. This documentation describes the UFS Short-Range Weather (SRW) Application, which targets predictions of atmospheric behavior on a limited spatial domain and on time scales from minutes to several days. The SRW Application v2.1.0 release includes a prognostic atmospheric model, pre- and post-processing, and a community workflow for running the system end-to-end. These components are documented within this User's Guide and supported through the `GitHub Discussions `__ forum. New and improved capabilities for the v2.0.0 release included the addition of a verification package (METplus) for both deterministic and ensemble simulations and support for four stochastically perturbed physics schemes. This v2.1.0 release includes: +The UFS includes `multiple applications `__ that support different forecast durations and spatial domains. This documentation describes the UFS Short-Range Weather (SRW) Application, which targets predictions of atmospheric behavior on a limited spatial domain and on time scales from minutes to several days. The SRW Application v2.1.0 release includes a prognostic atmospheric model, pre- and post-processing, and a community workflow for running the system end-to-end. These components are documented within this User's Guide and supported through the `GitHub Discussions `__ forum. New and improved capabilities for the v2.0.0 release included the addition of a verification package (METplus) for both deterministic and ensemble simulations and support for four stochastically perturbed physics schemes. The v2.1.0 release updates include: * Bug fixes since the v2.0.0 release * Conversion to a Python workflow (from the former shell workflow) @@ -51,8 +51,6 @@ File paths and code that include angle brackets (e.g., ``build__` below. * For an outline of SRW App components, see section :numref:`Section %s ` below or refer to :numref:`Chapter %s ` for a more in-depth treatment. -.. COMMENT: Remove this hint section now that the there's a "This documentation provides..." list? - .. _SRWPrerequisites: Prerequisites for Using the SRW Application @@ -449,7 +447,7 @@ A list of available documentation is shown in :numref:`Table %s `) or wiki for each respective repository (see :numref:`Table %s `). Contributions to the `ufs-srweather-app `__ repository should follow the guidelines contained in the `SRW App Contributor's Guide `__. From e532ef500b37540c3dc92c62c69c61e1be1a5666 Mon Sep 17 00:00:00 2001 From: gspetro Date: Wed, 16 Nov 2022 16:00:23 -0500 Subject: [PATCH 53/63] minor edits to build/run --- docs/UsersGuide/source/BuildSRW.rst | 12 +++++------- docs/UsersGuide/source/RunSRW.rst | 15 +++++++++------ .../source/_static/SRW_build_process.png | Bin 59669 -> 60664 bytes 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/docs/UsersGuide/source/BuildSRW.rst b/docs/UsersGuide/source/BuildSRW.rst index fea0339f35..3d0793ded1 100644 --- a/docs/UsersGuide/source/BuildSRW.rst +++ b/docs/UsersGuide/source/BuildSRW.rst @@ -442,15 +442,13 @@ Additional Details for Building on MacOS .. note:: Users who are **not** building the SRW App on a MacOS machine may skip to the :numref:`Section %s ` to finish building the SRW App or continue to :numref:`Chapter %s ` to configure and run an experiment. -The SRW App can be built on MacOS machines, presuming HPC-Stack has already been installed successfully. The installation is architecture-independent, tested for both x86_64 and M1 chips (running natively). The following configurations have been tested: +The SRW App can be built on MacOS machines, presuming HPC-Stack has already been installed successfully. The installation is architecture-independent and has been tested using both x86_64 and M1 chips (running natively). The following configurations have been tested: -* MacBookPro 2019, 2.4 GHz 8-core Intel Core i9 (x86_64), Monterey Sur 12.1, GNU compiler suite v.11.3.0 (gcc, gfortran, g++); no MPI pre-installed + #. MacBookPro 2019, 2.4 GHz 8-core Intel Core i9 (x86_64), Monterey Sur 12.1, GNU compiler suite v.11.3.0 (gcc, gfortran, g++); no MPI pre-installed + #. MacBookAir 2020, M1 chip (arm64, running natively), 4+4 cores, Big Sur 11.6.4, GNU compiler suite v.11.3.0 (gcc, gfortran, g++); no MPI pre-installed + #. MacBook Pro 2015, 2.8 GHz Quad-Core Intel Core i7 (x86_64), Catalina OS X 10.15.7, GNU compiler suite v.11.2.0_3 (gcc, gfortran, g++); no MPI pre-installed -* MacBookAir 2020, M1 chip (arm64, running natively), 4+4 cores, Big Sur 11.6.4, GNU compiler suite v.11.3.0 (gcc, gfortran, g++); no MPI pre-installed - -* MacBook Pro 2015, 2.8 GHz Quad-Core Intel Core i7 (x86_64), Catalina OS X 10.15.7, GNU compiler suite v.11.2.0_3 (gcc, gfortran, g++); no MPI pre-installed - -The ``build_macos_gnu.gnu`` modulefile is written as a LMOD module in Lua language, and could be loaded after the LMOD module environment is initialized. This module lists the location of HPC-Stack modules, loads the meta-modules and modules, sets serial and parallel compilers, additional flags, and any environment variables needed for building the SRW App. The modulefile must be modified to include the absolute path to the user's HPC-Stack installation: +The ``build_macos_gnu.gnu`` modulefile is written as a Lmod module in the Lua programming language, and it can be loaded after the Lmod module environment is initialized (which should have happened prior to :ref:`installing the HPC Stack `). This module lists the location of HPC-Stack modules, loads the meta-modules and modules, sets serial and parallel compilers, additional flags, and any environment variables needed for building the SRW App. The modulefile must be modified to include the absolute path to the user's HPC-Stack installation: .. code-block:: console diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index 115d3b8982..e8104539c9 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -116,7 +116,8 @@ where ```` refers to a valid machine name (see :numref:`Section %s `. +A brief recipe for building the regional workflow environment can be found in :numref:`Section %s `. + The ``wflow_`` modulefile will then output instructions to activate the regional workflow. The user should run the commands specified in the modulefile output. The command may vary from system to system. For example, if the output says: .. code-block:: console @@ -560,7 +561,7 @@ MacOS requires the installation of a few additional packages and, possibly, an u .. _LinuxMacVEnv: -Creating a conda Environment on Linux and Mac +Creating a *conda* Environment on Linux and Mac `````````````````````````````````````````````````` Users need to create a conda ``regional_workflow environment``. It could be stored in a local path, which could be a default location (inquire by ``conda info``, and look for ``envs directories`` list), or a user-specified location, e.g. ``$HOME/condaenv/venvs/`` directory. A brief recipe for creating a virtual conda environment on non-Level 1 platforms: @@ -572,14 +573,16 @@ Users need to create a conda ``regional_workflow environment``. It could be stor conda install -c conda-forge f90nml conda install jinja2 conda install pyyaml - conda install scipy # install packages for graphics environment + # install packages for graphics environment + conda install scipy conda install matplotlib conda install -c conda-forge pygrib conda install cartopy - conda list # verify the packages installed + # verify the packages installed + conda list conda deactivate -where is a numeric version in conda base installation resulting from a query ``python3 --version``, e.g. ``3.9.12``. +where ```` is a numeric version (e.g. ``3.9.12``) in the conda base installation resulting from the query ``python3 --version``. .. _LinuxMacExptConfig: @@ -1148,7 +1151,7 @@ The regional workflow can be run using standalone shell scripts in cases where t .. attention:: - When working on an HPC system, users should allocate a compute node prior to running their experiment. The proper command will depend on the system's resource manager, but some guidance is offered in :numref:`Section %s `. It may be necessay to reload the regional workflow (see :numref:`Section %s `). It may also be necessary to load the ``build__`` scripts as described in :numref:`Section %s `. + When working on an HPC system, users should allocate a compute node prior to running their experiment. The proper command will depend on the system's resource manager, but some guidance is offered in :numref:`Section %s `. It may be necessay to reload the regional workflow (see :numref:`Section %s `). It may also be necessary to load the ``build__`` scripts as described in :numref:`Section %s `. #. ``cd`` into the experiment directory. For example, from ``ush``, presuming default directory settings: diff --git a/docs/UsersGuide/source/_static/SRW_build_process.png b/docs/UsersGuide/source/_static/SRW_build_process.png index ceb0cbad05203020a6f8b155107eb01f0e949888..e36ffce7066d3f8d835b075c1fad9622f83fb62d 100644 GIT binary patch literal 60664 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

    &r9!=S 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 bAYz)ocg3Quy7>FhyQGUa&}{8j=N zaII#XJMnvZa8DWa7l7R}Jf6n-34Rv0AH7yN>GYa6OX>dLGPg3FH-UrPL3Y~TRxFXV zwj|>=t)<=Qn0uxjChjg;9Vz`{3U%y8IQM34IJ;0bRg@R4OIcy=a$KyW(*jeTLuZ^lHNS#un-;TqGW0_t<;PCU8 zB8@_e=#KgQ(E2`L7-S)h^E*|&<#-2u-3Bt=x^j*pF|x`K7VPmJ{Lv55cg<1#eCNf; zyBs-kg+!?GHRIp%>^pUB3Vxi6G56Wcurw+&T_3F4` zjth_Ea*Tz=MG+vYDqz{55c^1r_3!Lt)vdMgjS5)Cd+ey9Cs3By_KV6+c zagGVnGSc2zIuUN7swlKuk*NIY*I2ojaN;%0#_cjHR467GV%nGE9J{C9)Fz}P8(%xG zw$m)K9Si-B;YL~1+oB)ap^S0hA?>x`x?s}}Yf>WQ0VK$~lHtF;#~xFy9$NbV_nT4; zEk6_8!pD{^dzpmYBlHrbbhV}r{fGtiXyQsQ%ZZY|EgZSO74K|^pnxuhzVeZ> zSQ;uw4vCoRLxpVkqXt*x#^>L#$VekCr>5fL@bWZo7t~$hscd;hT&7umPBHZAx3c4e zOWk4z)E}NQn!@L&-v_iMQjNyt;c35OpvS{Diocy8iuA3FZI-82Ri^axyW5z$Zk8?J zo{>>iK@ZTSyl_&9M_u8B;5Bo}n-t9A20XZq<1 zb^enrD`0`nUgn*|;uuBz*`Ye|>GD#>Wy(=tp7GK1`)~5cio-}eI8wp!pW@H|^8Dqa z1#mbM{NT*n?a5Sl>nsv@)aMcc$lH?N6liaQ-`2h>_7?J}S~^`Yop0bfUtm4uG$#vs z4m;#PF7EU~FF`h5fc9H(GiFQNTQ3u8>tI+K-5E{oO*=GN>Dy|>5rYZ6V0Q)v8ULSL zp0_=VFSoWl>JH~<#bXVbu3Cg-*?pX9?(I)-8%yP1TB)C&eoq`fO8N=U;TXU&D);fxKOb6ejEd+t=HO`MOvKD$q;HU&rz^&f8`o|mCt z?il| z>)~>dy&jp53x!0EN80U;Qsr)_ghT&Fr;=I;CzFb5Li^}U4*zj8Rp4+X6z1;Nitnzi0KTOoU zzzUilXd;3c;2kBQkAtSU*38xdDD-@_#Mct2y3i;OOvldgxlAiRkRW)4D}6(bS@ONq ziqmSM&_U;ewSaMfe6;E^2nH52c!prv+ z)tOfI`wb&7$OYB1eJ*v}Us_wJy}y6f7cmm~b&OZ~rQeO@FNGkGwQK{@PM9gVJCq|Y zuk^K-6Y8%4jh69g_B3JFGEKmfFO8eh=kIIn>YxL)prF6gu()e!newFws~}$wvM}S< zwa%A+=Fjp7%}rqA!8Arw6}fD#Fa^YsKnb~{mOHyfVAf>Wf){Iwtlhpdg}#^&jgN=Y z>o;V!=Sfl{SP@P+fM`ELEs#vV)Jn3Q^V25?KI*zlan!_d>pH9y^k& zWVXjfghM6KtmP`zQJ6k0z79HCDk#MC{ce_fHW`DfC~>*HbeUUAq3?4jr-hjmppp#-$_#&S)N!}vIF*%QP zN!7|hg(d_GetuCPT*Oy>PZR23TrXb|AsN7h=KPvG5;ZVT58wJHkauP>r*mCO6ct-aa^H^G(VQ-h9x4X)34bwr+Cm5`L3zZ6mBmFE`QCIZ zGvjx^cUl+y^N2tHo(dibmJgD3dRljJNB*g!=LnO57@D8+Xb+uYQVrDXw=kiP-;cqb?H5R1a~okvEmZABb& zxO*dFgwgo2a#5lq1U3XyoE+qZlc;_-FTgTcWJA)iRw3^P1IXVZD?Y9r4_AUpGcd$K zeHJm`?+Gh)92oNH2bb@YD79eJY2Bh-B9I_Y$8#%yHw)e~g-lbM95&ln|no7dP?p9)S1+$KUmk^R%gZy5CpwdeSsNCc@Ah{o^Gd*JLre zE0)STmdlyO$wafnvzT4tzy|d?%IQ{((u72NAMAK55aZE;`b^|QU=yDvi9WLxpkDR9 zl>P($E>#XMXWUEosSbXlZ3}5VcL&9O9E=u@crDM;kI5tvXg11)ko#CH#jHzg^ofj> z8Wl`wopZgPE=q=in8=zayo%ie=NpBt{DxObQpeTkFST7RBrYPn=s)f*mZVwr1;*ZE9em z^>1I@(GCn^Do4sptH~Iaf464T}Be3m0Pd3DKIjD)hc8YG#SSe%_bn+_pU&m3&>9EE>BD4j0+e|2Jp^*xe=Cw{f1SOFrc^wsV>@lWD5H0t;OIUChlxCcn z%BNzb*Ugr8qxMG~v)kyLU)Lqfuk9Z-eolA*Gw3Lo#C#%*xy%K8v)iS=E(y~4*Q?yK zf3M_eH>SyRvgB=7g`ZSXOQloWy|Y1#t)g(DG<8}ZrksSwgCyeX`d6R@2MSn2dm#I- zPJj|mQ$&3I$D@#bj7bz++lo}Uxnm!Ki6-_$A#0C5yxFd>AR8dA>a`Lc0vXrrM zruVLL(WC@__H*mGEF|8JOK|en@B<#f1K+8>5B~PdQ$*;@y$r(oHL4n#)q8Ec{X=#O zXy^P4VZ_el@uO(fov~XWX_?ruZF=tcaI53Ubv?JzUVt{T)ieS5K4nr%`21gad3HOP zu>x-4@Zx7As9%uC?>*2jJ2Kn=Q=R)>jM-~gTzvrQC?5IBKs9qJIWcWvvG>i{2t%;I zBTz^jh=)M^ID9J}d2D(BLt>3x3!Eh?+YB)-t+j);RL{X-SZb7`7$WVTYr}@Gtwxtz zDpP08J|^bx--mUrvkvNs_|lJe+4!a=1$ED*I-F{)XL}NY+3V6OxGap(BJg7-vA5V+ zzF>IUu(#ejL9oNzJqlG}?3OBwL^<&iJJhe96%U*I7B)CZ6d9@6QbWNo{y6$?r>BJk zc%ck(OUS9RcfL(3XTMbo(u;z(Z+Q*|QqvA78n2ztNQs243u$60KN-w`!%dz~$w?3F zjDBV1T5`8HMUlc8PJE}N-|@sms`O1|`p0s!j_zXrei3zG_#M8`2e=5C5di}4ZwEhd zGD$mqk3QeI0iJ_`fPj>KHH~0=en&48wuLxIOThk53&$$q>R+b6PNa2$E zn-E2+VmWdFN5-ffZQOaHM`TNWwb=qU`9%13e;LpAo!A`2GVdeA0OIvNv{Qd$89bzAcxdsjJ^hh&QIFsfLi|9lB_$!BP^$5vtmOJ6v?j9D#!)$z z*k6&Wy5&PHf3?Xjo*wED)&mPPZ@27km(VEvpLJ6Mc+-OE)F+0(=T#ZG&fJn`K~F_{u>WmNzds84N*`+c-$b&*@z9e{gRlBR0{kmb z2#?2_G)n4LRo;2sfN96pAP7ZLl3Fyl?2AC@`;=bZplVtu0+ji-yFbONOe9ZLp^#>p=-(|$ulT|YZWsEuuK5|ZPm8Q=Zg zqiw#ariwxmn^%!QV+B*tW#Ur%qL7iFK5l&snR8Rof< zlz_`ByhKi;qQe5(YRvbH7ZrwYTdY6kBCJTdrBv?R`{S)1Q(XTBMI+ef!esX5C#zk# zM3|r`C*IU5U;*f!DK1R-xgbcJeax2p)T&8V`KIcv=<3(#VW6bsL>v$(wB#4#?gx0- z3)hO++tVRPg+%qNacMOZr}a5rSG&UTLQ*+=0r2EQmOVo^6}%jD<2Y?D93x;!j{3-l zksASIAwa&MU;%5OH3vJ%8Q1eisDd~!BO}GIHK(d zeov#rf^UbVMeyto$&*G=0@Bj8{~BNL1S@zX%Abj%HT|!3>-ap<&@eh8XZJii@;pM) zg$X2a8#}M(B>vlC?RplL-w8S0?H635OG;u zWUXwZuE+Z7Fakn$R*I8E23XO)klC5hX90-(key) zNn5b={wc+;Lk3>NAkOXgQXH&-ghR0@t4muZxZ|&a_H?htelq8-mR5Uwenljo%u11) z!Xn07)RW!(=xS7^Ad98#f^z7yoHOZoc(&ykNk3|71<^QkItzY{!)Y!h<>>EUV^p%O zys#o&Mlk*@;feW68;T*p=i{l*_ZrOloO(}7g@&*>of~20&sipRra0#)`yfA8e`*O3!s91Ap2lC8Dvdt?6vGWj zl27L~O@Y$yFz3BlR|yV%qp&3veZ*VuKS$Kky1kM_l?2qoC0hlO{|95*JPQmZQfbt#v9gagwB8ua zlFx}zg6+J>DFa)!VAVERx|G?j-z!KoAsV$nR^MajOtpD4n7P{Jmb;cPc}20FO7>a( z!slk8onNx*c&kSrr}SJKo1R{&zhFM=Hu-}*$rneDoK?v6-9-GYEDLld(;m+stIokNx`oJopqS~4Os z91YoW_Ipt5IdmtJTT`)vl)uQh^LTMKTA3x+sX+f{ASSVHiVJH#x7H}9#L&~h*T8$& z=LJA)1wS3ml^{33MyIi&0nwnLzem15*NW4yH;{kgzL8(e}{_;y~K!vA1izvf=Nk3uf5B}h%A4Mls(F>Gn!us>> z7UmmK&DBa>FS>&E~K|El_`FYmI+bXseL2 z`Mw6-amyn8u+VRpY!|9MT=^$lGt1sA()UwwFen7ElS!By8Zn#uEWphh!My$I@Wpk2guq5On^|W zptn1%qRTXG#gZvoVi=z-V|bADi|5MT(dzEJa!WjF2Z~)UMl*rP5qt(|7TfCFZ8Sv5 zzFFHFm6edM5lsUxQH3?4aI7IQb+I?2u&@1)aGU#FkeyArrXF-MGTNq7%DIMw-(}LI z!A79uSay|+i@iiYRna^5ICQB}M``?gflSb2`m3XL^aVH8`qp{xmg^K>`gsRgbGhAD z{YpIc`elp35bxyU*bCzu6)mmjjsu3*#RA6 zDTM25XT8%^_1}*tf)gz#+QG#{e{tgC+Qj~hhxy!tCKu-L+J`vup1N#Ii?#xiEqgzdV_#r~V$ z$uVST!kNZM&-b%NtJbbk)eIW1c2`3a-FaCX^G;uWqK}(e1deYH-zg3J{v8)Xa6}Dy z{rRt3J7W^WPa89MJA|m_hl{JmnW|uI zOT8>4v`tK(z*(-aSyKP;4OAfeS+HCFDikP|ZK|fG*2X8QqFPUen3dOGi@rHsY1~RE z{QId-k*qd@;6Z1h{Hm$qR0yt0mSkb|1sKAyvZ+;L5#v>pQRHke>rT&kM0NF@qufuE3J!!@{h@1lH#g}aY$1$ViuJRu8H5W7xt@=a zu)T%zaV>7z4fB)OmD_-{3N7HXB0J?eNzPZ_#-vsC+XjN+_~D{mlk`B-C$V<{SBw`q0wS6Ts}HpH zleBlS5-NI=DtQ(X8JDlf*fo*!(_|t_E_ppJWHkajJb#1bk10TEh|U^uLNA%u94gr5 z6cQrk`rCQxatzrjUZYHRlh`zZ(vmEis72>{2(w@pYM7O8QCTuS_(`D3#H>c+>g ze<|s@p@p990VMRu`O;ii#)lpe?w%=DluDFINzpB!FPztOvO4Gw$&^Kr-%Q(7<3*d~^ z5WW89M)F361}}1Kd$VH1t9?@uV+9c@MJ)5f8eTvw2n6l>Igwdz29e-A672;NSJb2Z zZGFKO^VrT_$ohq#_Q+l_1SD)J9z@XF{*ugdj?A&Ap>GsjeSDc-GH~iDcQIBDgM;H} zuDAM}Qa#Li21T-9gK z0sIdlnlJ*A9*uYA20H_eC;$pj3i8pX060k#Zmj!X0jo{|pU5b#qkdJK1pcDv-t^AvP zJh8(R917{W(iT||wAA5dcY%PmT+=I5nj^LEN`f>Gr(*})pScz=`Dnf6u}pizj)I7$ z%L8HttXvwhm!P8jan=^e>rO86W}lgZi`z>e$E$vS9R*GYb{{Dc$ka?hPeu8D=q=od zMoxzln1~8zB0yPH5P~nI`&Me~1En|;2qH18HT=*1(H$)S!p56XnTp4I7_%awh5Bc$ ze!u4mg3k_xcV=HkQ-1El*#D`pBK2b?tU!QgaF2lnuc0Y8d=QkW3~kP&c}lYSV3sk}3#o@tXl{wD>1Hnh;4B5N7+ ze`Bd<0JP50Bf|$$&#;9RP5y`Uvwq0I?Uh+cvA|gAW5(9Kt_P7*dS@=~cSsPd!?y3# zCQOwm*s@NVu;2y&AQOz>>)ZZFVKKi*%w|T&3szJZovg^4*Zc4+A^=#Ja-d!)Mazgb zZA4F56=Wp38BhA~GzcIIG33=kBHrrEDZbzCkD`lgN^IPwGAEfRk$-YP0!Z-&=`^=~ zY$(7E4waxKHJL3=6I(YG;q~ee`o~>FNd%GaUqz%Ae{F{{vDBX`h%PUsZT-1Tt@BA9 zbb5G7zLx`qTaNXaa^buq;*OPr$#rUP; z@|ca!zF~}rNI~n*&k2`;o_{MzEZi;LzSb86DrXK;@A9GQ0WanYNfc!mG560tUC$C2Z; z_Hl}%OKukZr=O90SV8lX%PpkN!`ovd6V24G^3~(77FLdMN}f47C{^w8ht=FOE1DD# z@TL-$UVi|nYkgs-j-~DQA1^B?U)A@3%hzV&F%d+9eePfh9tEGKmrnYyEWdQkzHI?i zwPQq0h}D5Q!C%8P|h`Nm2{e^!+|+GrMHL-w$L1B@4r**5>kILNFD&8hZVjX=ei{;@Mu$|vQPvdGG?6$-fdQtHn1JD|B z5->U4c!heg3u%=>`Sq~itfpybNU*lZo$hrjea<&!gX6NSbSLMK)w6*Rn#Sz2kuSED zyUkB#2<5qLT{4muY+>fK3h9dUmb@E^NT9r2}@e+4rYi z(b)FahqAg!>$aNmHW-X1ripp2ndOuxVfD3f|3)~eNLCD;fi29M`1RCu!7xWoS#04@ zgISHh#}U~y9j&LsE6-bp1@EWK4Fsm-nuE1CcM)>ceLO`enQ^4%C-X>P`NG$oACHAK zVh$UwOZ7Wjy0R5I`W2sqS!+(3V(e%~H}aY~o)9oTVQm~?#oP+*vtK0DUt8OLbxT77 z87`Ri>&bxg`<4!_KS8jsjVyaJQ<06y!L1D-!Mprl>O4`yu0k(P zrtme6G@?eT-PaT%(lX-yX_y<}ntpKHjuGE(8h9DEdw9hOmCwAqI~r@`3>3bnFky> zlxSdyECzN!et6yZ`1rvjP(rL8NP2(8zqdEs=(w)?MGVFz)N~!5k(>0){m+NJYSZ%D z`qG6Hzx9&$wIJ&=f0}dn!o0zQXoj)H(`@&s{zUBbwD_5%4_g+j^j9#G+Gw9S;671FrdD&;1fc4gr`e zZPYp@m(E1IzoyV&H{M6xT5Dbo0oqj9EOiE)0U6b>M_BxZKrVF!DwzkX$29PF@z2YA zximA^c}Rf((572mO$}dPVKTBIwEWd#dU4BvJ{;K@3Gz#liy4UvQAk?q$W^OT3d<6Z zPwl`VcLuf=qcl2P?p`_sGVx7;n}?%bD#^$br0mMdF?0-!T_Dq-7D$Mg3B_mpdkXZw z7%6MNy*ijz-3#8wvh%I*c4av3Y=&hsCD z`DF?_7kGjUNZrmg$sa6IDVPN!HJd1bGfmAapaqg!xnI*8JPtOKzUTvO5fPsVGNE~> z9OZ;fGLgg;&?#YNG)ru^aXq8Dzh8!to*uj}{Y(Bjg}s|_U%YDLm=rE_LNM#;*;@i> zm@!k-yvUF?X=_(Z!M)yN0`$#iPWzcx%vxY&>NNyRO1KY4^1-D@9SS%-C6nd@T}+3+ zGuzg-6N$5|r#0ZbvjYY5SzlsWZTTk@%!tW}iN|$k^$Rff_N(!>-%5mE>i%ugl9k-0qJ>@&5hswiE{^lbQ? z=2=tOzeOw`m_p~uVI+9m_hR{_DCG_uWho}W*sLytK1|_ZZNJfgZE+dQYAozxj#!%y z22-X9HFvJ5Cc?t$b2vVM{0L63tYG@EipCzno0eHCtQryl_CKj(XMF-3wsxigWMg9} zc&PupAv?f{_^kblZlc?ZZRdrXjS^i~yps_wrV%}!(m}gqeY3bS=E}LxJS0M|hRVP2 zz>Hw7BvmYRJC#EVdzJsKOL5yBI*#Wp)_+5@ZJ9p;Tm(?I6aiLOf=O&4+)(1_6{1<^ zy?35|I=VJ@S-&P_a*D2-xWmB4K{F>IR5qQH-F6P&j7pxV*odK=M$xr?3?C z9FBZpUF9b!KV8{l*8Y1P6fGW|h^sLbFbp&_LqFO#U7a7Mq-EYk6LTBn7V&JhC&L~ofnjNL2<^6cAU7Z$k zBqgSD5=+SONh2%_Qph(qy{2uB`Y8$21r1fcOVia~Ze>XS-Rle|30ukl5YS0!8tJMm z6$SMxmpuWiT4zj`Ma7(RoEP>HZA~v?O}9QiU-}W+LPa$vQ(`O=W;3@zp)W;8gLJ?1 z_Zb9&ioS1GEhd(nzM`GkS%>jlO?x=b3N(xmkJhoGZ~qC+*jXlYpIAv*fs-+^ce z({=tKI_jeXs0lBYNB_5##+Jf_Yjwl1`aP}Q!V*B}W}@n>{OnIgpJa849%<+47E zp+Ibw8_4(JAuu$-1CWtWqYb#$w#PMnARU#& zg&-_=JFf&Vu~kw^>mC zzJ+4Sg8uJX?788UamEGEiKe-VhLeV@%sV4nYX$>jTSF5DH*34+1`s@M?|@5d6DI?Z zo3)jV<2yHAlHV=f0oTuu8A(9Dn>bnWl4!^(fP`%wOh6nAObkpUd`KV=h{wU$^qrE3 z*x%QIJ6;kqCnvjijEt_Xt_-fM47Ls*7@4`axEPsO7+F~8ffn?R?lw*aZuB;eq<=d3 z*N=#aqmhHTos+q(4d}UF14CP9Ctebg=YjtF`7=)^bJPEgWaIdkEPz19=WiI98JHOV z>l=8L=lSV7c?WY7VC3ii`IvcrxBP!R`#TN~$Uk6^}<;>jUOF9)r0Z}@QF5T)RjhxU|vf%|+F18MFX}5)xob6ZZ z1y`91$zN^Q`a~kCNnCmvI7F&Q^dT?#kC;DXe1yf-&>z0z9b@VlNn!o4G@IhSRXSxQ z6(|G~0)YX767fSohh!AWYQc?25GMa~OCkUh;wR<@6T}bmeEGXs*B&|ue9|J_2Z;sw z?;#n}Jqr4Nce=q4h~YCjEU3vqkAIthS8bpB|8sZz4n{)1?J(B9>-V6)A0oc+h5ql( zZ-!U^YRx$*9GU{^-$M!g>(`+F?%GfxG4U!}jR~0kO`Svls%QB>LP%De5u&@?7RlHA zLjQY+iT4QiKUyn={b2g`81Ug`{#$_Pu4B%BbowE<5kiqM>ADWS)&ENbFgi?7=U*a# zx%_{$6zJQ|q?>-FFyONNHGgwk(?sK~%xGcF=2*}DJOZBB(tgJkyGR2581?<1P|zjP zPVEYJm#@H(yHDs3z9JgYfiP3?L5c>LI7-s;mqFV9)^G&|SV79H>$Q@FHA)llx$Mru zfEs1`fU^C0UzN+lu~?)2Pn490eWfnt0_J%56c?nz?8WAoSj4hMyCsNc2#6)BJ&VD{ zzJK;-#RNg6minZI*|BLu1Y#~Of!e%=nO#_^!DOKC0KbO&!LHbYzDy9Y;y{8XXE#XV z+bc+iU&bBAZ$@0Uxy8+GnBXM(z*bx-Nk>%=GEZMQibxUdzfTmn*O9S(N*uK|gwY~E z`m@v5Xuz)c*p&-{aLObSHuhX;f7OUL9C2yvYpR!0OvspX8|L)n3%+Cnty*yH$GcND zB?bmhCkE|4?V4>6C^ZVotsjb^mZ}Rk>xDC%jp9U`GFRP!mBW`iG0~ICu>~V)ggoF`Hc_< zI^7PN#xjZ7ayA)H!@SlWi+wmfV9Z7Nd8u&*flOF|U{ zQ>tmHBOarF4pZ0Nvkd64G$lHj`?hmB>gqd~lfb>dw<5z`X6ql0H!jxFXiGO$+B&A* z>x0gyNkvs9IWebmI{cZM#qx_7_^c{sDI;yjI_WCzviw!DYWg2h;)nZu>_u^hUtntm zadxIM@_*AZakcu0wP!-wI^YgHfBUhZSATVvAXzr8Rk!1FNB7~^7yRq?J?{oH)UPN_ zE1(8lezPN*AaJyW83Idte#WO#yS6iFif`(Fra&QG-<0;SBtr9@ZfFW4s$)6ExLpYr zt#LdeZhxJgvg~&36>5vKVZmu7{zoLJhC?9AVC(r!5cuq*W;l#}Qg))ye!HRTYk<~l zuPvWpo6q(TpMT&Fi)=huAdC6t4MR^5O5C`@kxP)MPpZ6+7RhH>jgkzXRig7b=-hnq zUB4Rx*7G7@dB^E72II@=X?v~;n__N_%hst6EG#UG&BEK8 zhpXlM_l-8OiHQ`!XhhSFPBjKSa49S%VGEu|?F?6%+CA!e-l}4e1k~2^4fGYE^D~tS z?)HbCCMEm)@ww7?UKiaP@8&D#(Y~Vo-N14LH{EWu#>~tkr_1g4tZeSZxtN3A=j);g zLb`rS`?IwszrKdn*sTiPtVQvYk&}ydJUx1HSJA4KMN@wEnt1ee$H{cx#FvzlW01$q zU&19rcY{*@;Q=-J@{g=M_5wsa&(o_NiB$Hq%iS10k70$-Pvz?7xuXLE(H2AV^#(mb zmqw@rZxtA$i1>AvJdb#}eD0gHeIG6y&c1Q(T?C^NVwx#uHRCfI2J&1jIJQLWtP~e! z#*#}XB5d{qqa}4d-bx>Rj*BBD^105|?Q0prTtU<(?!u3e{x=7!=Q-TnZhwEcoe|@; zU8ssoUu;#)k90d;`7(C|D`I>wSC85s85xNq1A1$3Z$FVEirh~43g1jgEb2{p;f$`Q zY^K{U#JdhG3YqA=idH$(Z>i)N@0^vgm!>Wrlf^|vcQ!&o5IpaOG$1Ova1DEJ`@|HPzu@Va=hGTV1T%TjW3Uo%X%9-F~cW zJC(AWlzI=>(R%r2T5cl2Md3}zA0;~!2rzDne(6Gn;p@OXXq$O&fi3T1wZZ0{+sgym zy_w1++s+5I$Ft8*5{8C3bUH0RD(vlp;7AgE?hZI-8*M++>2+v3ILfPj=CEdLUdLo! z?=34G;zAOI(hK?0O4HwC^ykD13?hsNs<80AsjgQqEbt&`okSZR>EuuuOooDn-bl5q zh!OpSBdM#K>2*2#p*IrxRq`8N53}H9kBeQ&#TMsJ)_c^i{b-Lr;CMfJsp6QP+bXQJQp??8 z>%~)lB;llSUv^BK?}{|EgUYOb?29h!iF)fY2;0BP!;J&#N0-~>MRnBSEO#(+7;87t z<|d`jj|=bp*R*!4m-Du`G9gI*Mu*moiv{0=m>>nwGhoif^CaV(UY7+-o1FaWjm^lQ zcib9HXk79@E*+!VMtlE_{M9J-5 zKM?Pic<{(>p;{%i9gS|)OE1fiqdk3T)3QS`TWu5^NwGUsnglu;X6(Et$>4UK4kl#M z_tUoT#dbL9#U187hsO!JTN z-IW0*p18-=Vfj^~jpG$dx-*!_P9#SB|CpKSuZw%jb*Aoc=-Jcp*OTP#i#F{YV)}j+ z0Z!jwLnmq^6_r-1Sf66(xvz$k;u3c}Bq-11QaW1dKP7A(y`uhpArylCS9u{mD=&v^ zBs9lg`}L>OGiMtL(>vR5u5Hu#n=)P;V2$k#;dJT0xwT%UNV)HS2PTS%38?}#ua!Kq zZ0=v0VsHI5Bgmhvw!x1M93y~LveBPXx;{KOSdu8;&@Ks>409OHAyT8$g^sM|Do-kS z4eekey8T&K5u6H{gk@aoM3X%i#4yfRq2UNImZL`$xEb@3{uWbArCgMM3`a&GKreh^ zP_q~QNNs#LQOwsKmzb-!0+pwVX*S&U{n{i!8`^lBGBULBVur;N5@hAGwHPaoX?76Q&WBzPzY5jNQ6_&o&d4P>;_IHR;_5IuKy_6c{~^FmtUu5)rd6SAV})b z>?iZ~P0ai7CPBvJ)qLYq(Y})8X0#dVmP)!`Rh`<`GSA??31Rc}7ODs=S&`oC-izNm zbp&_?eXW&x#bRju=w=LRwhN{8IB80(&bMC5mc?uty&}P-B#|Uw$SG$8hgI)#AI@WO zYPvgAf`qnvD4kct^ts!Y-3Q1|M3^edsiia%C*N}FD2k1Qgv%xUpV0mu9`urZc9ehVmgK(`a#Ngbpk@v+C!@ zq-#B(jc(vO=KIb_HYN6Krl?Qld+}_uuA5MQSoWF+SV}(M&|zPH&DnlfWvxw&gxyYo z@JpBi!cu`a$MtRIb{g{bhW#eC@i)n1?f{y~k^h_z2*^atm81XvIz*eA z&ngW=>mhPBNc40Xbu`{KlZeK!R);EW7~5nN3os8s68HWY3Q7=5ltDoby}RQ%%d z|K7Bg)K2$vP>tIIWb;Nnc8!f^qIbJ9i2vZnKU;;RzIpmn{4FQ|LsUTJS1lFX;#1Y0fIm& z6jWT2ZCq4=P13+|s>giGf%y8EY6|MX{*xW}uM;bPkCBB~9NuNmDGmeY6c&FRJ?Z84 z6ob_QPFW+e66gM_Z_vS~fM2St3)9>wmSw8%jGw5{DZ*AoctG`!VTL|IEK_WVM&He2 z_~938F@F)&kl)hbR{86vfgPUTmxE}&GlvOhJ=$R}Oj=q0bnsW+fS?WqfOAMlRfEP2 zC0a-4YiS%-)_C*<_Ky(;g31^7gDE&qwvWO@r`jK(r3p_RZ6$~3ll?Qg0>$%Iz`S;) zL52J<+UB%Gk4j(hM^u7qp2t;NZ_=wq(8zG#X?ss6vmo%tD&7FbEFf61SKs>c)gA$9 z#h-uy_!KbUmHFJGmBNEkcbCDIY_u&7W z3L-eJ|IB1+#CqaFKQYxdsSWFfoPCSqKZ?Y%Qe`EJuYRG5bRj}%{!l+qn zX1d}Njf5^5xbp>>6fBEkbX&EV z&l$&mOyoxkNQ)+a%y}~y78in;UMx=9h+!PA^cW*?SmV5&E{X~1n3(DI*OK+SqO|XD z*5{2M?saO+eo<&%Z83a#5)*LJ*WI=EkuJs}v{G}F`y0l{(g1cf>|@YtzphXt_nKcb z2U_zr>|BeG@nR>=*yf>0Ut{RW$Z`^U8e$&@=RVU)Q`jmRo5lIP#4oN0k)MC8ZW(id zekCmc@*Y9q_~)6C0-Fce&7GYXKRalIvBEcKQn%gYG6`|lqLF`1d__TRe*cnM>->yD z^Jd;f@H{rAY5=suT#`S%`y;B<=zo(F0Gys4B7Z_iGqFUPvvJIgc|+$8Q7*shH_WLr zUAC|kq^`r&xs=8!VY>cmrdur!sEdu;T6!LO$snE4(70Fi3%*vt0VhO%y$qyhefx_= zbpf>csYdRm!0&C@=g#-1XL8)@)7E$-ykqL9%|ng(HZo?tC^-sao*Zu!B0JNtvuA0z zf}`der%{Wud#bY^%;)%qIx>;}Z1;*Uuq)Tg>@y$QZ0`(2wKyyzkl7f;vUGOdHWf#b zNcjodDEewo)^%@5_%-fc5!PskGFxlMZrbr2_&TmGKXN*2Uv=7V2R{8_Jii&>B(2pa zRh&ZyGY+5XH4b8mYB!WGY>h*n)}FTrU_d3jvHire+G4vq3MT7jlH2(N4hapg zsh`5^2FmFqqTakMkkyxnhmT9fNH}^s9YpX_?wGYKx%HpV3Di*o)9TeBBi&1T9>&02qUha^&)2f_EtXD8&YE?Ek z@gJ$Yb?L#uFs;`co#Y^lucrysPcpE_oFW^Ege2+Oe6kIA(bAFuo&C}FheLk7^s_S1TL|kj`AiXQpa&l z5B;hbgX{S7Y$<~FlBHjr!=|-TY_>R(QU$@&vOd*38xba_ces`?>?MapzF-x!w;S0J z%VVE#Wn(En=#Z=`3cmVOKg4r2)pJJHqDg4}J-@@acv*GGe=+rb>Glg3rdDHvo_=2( z84wS2#5nFOY}(TOq!jUDDl@4Rmpw#!*Px@<0DzUN|EztdqfYZ z`Ld7Ifz2gY0RlFJ@;Od5KAh}ZBQQADR=KHA!&dCP2K5JrxYF0#L1=|(8j&q#w7E= zU_*b_DIb$^R5@-+yys%3TNa}|ZGBAc5AzX+omX@Iru#H~ga^NKD~~Z9Y3z$U`oL(Z zAk-S=%$$)NE9YKdWIDJZ-;TJ)lrXoB)kJ+GdT&H8yN)sj2r?yWHQLY<6IWQ`Dk&@H zn@<)DQT}qWhD`fL(du##OCg*35+81w(`KP*z+(?7oRp1CrMp`$_*|<|eVT>DVr3po z?d%+M8NsaDl>N|c>=iBmT7AEEfQhc5a|h>r(xq)a&p*BDl#>=T{0`gZK*pu?ohoSZ zQH7X?p{eCX*ssRS+GXe&cQ`1}{Jf*wO!Zl~qUt@Bo4OiLU+){p3-2szO?GZoxi|df zC4333F!&B@^>OCagz<(wU}*UDU!NEgmwlgf;)2@Rc-$|h)HkNz+fKDR?f+DqF4HtR zsum7L^|<5ON+;df*_mi_cf45*CR)$=#8A_CvmPhEPV{sgd=Eqd9DtC;{7mj5`;0az z5Oqt`s!yMx)~YuA=yWirI@f4>WT)*(saoe(L?(kcE}O(U z%@&{ypkfr^buR^deUrVx%BQhoheR06rs{5>RL6zFWfZyh%8QqwDh zDsy2{GH@T;6fu$@%A4(fg8%5n5(r2OeHut76;<7bV21%!uJ;@aa#(4-#GEafO(gW? z@xnH=o|x5PcuG=IVdvZ5h2t>Jm-D4@d9nG_B3=QWG_l|t?{meQox;y`E-=Q%>jN=b z&_>q$AAro~WMLEq6Jy79j`t)G$=qm|x2b*7b0g;G*L#j)x&z_G4dAuJ%Ff3*fO0c~ zwg7mvX^{_Chl?y$Kbdys8!OvOk2>z;q7V;EN0Nzw;bKcGJG3ljTzvi6jgQ+`G7njH zU9cm0<#ojK6C@Q)$*)5N0)h}Ju-6lwjUIu3&CrP^YuLVLWtLomHYq zr&R(0_N)Pn-W9^m$Iv3tnV}npquJWRw$mZn)Ie>AL2^^7-qCD)#1}8(fdJ(W$8&HL zSJzFj!Df+$UaM|=F74s&Y8Y3~i+C&3vx0+Fuon6NWiA|#Ip=4Gpj}N(&3fC}Xxz6n zPD_%2YFHSUZEqZUEi!qYlRy|C>S*YHF%I&+*+_DjQdQsKc)FeGJhzXFi_6#R^f?{n zJ~AUY?>!j1X$WEyB^m;uQkOM%!S%FF z*JHC=R%e0Gzm!*RHQw;05D`mg!IOmGeM&Zokua@?#Qx`Jzi~w!L1m<{L{E?^$KT#5 zZzu_EG_HRPpOL?_N#lh(;-?p}#4|3@!4%;!+I3gVN_32$-E@EHdWs_dpeN^33F$WhyTAUcf)7j)m>NEaiLk5LF?47* z>_w#*dQRB5ikExi-ttdfwlS;9Aub7of~ULAr#OK9Ustfn;X?E2k?+%cTWEZtd4GQ>!i~V~yk9V6yW8J$Prq?4|Ma$q zB;d*!#GWQCn@bT9Nk`HNsl_`c`dJ_(}8KULncM$0D|e4?0U~@&l&G)sN;HuRlS+PY>fL0!&jbz+5 z-k9`f+$|itlceNfU58cm5noQAiW+N@u<`N^kvodoCXs(Bf(Nz(68kv*Uo`~L58KY< zZjO7en-`O9m99}V_zB;wYqNx zk)n^kQ;(5R@13Y_t3$~>yH5ZCw?__3@Fs5myVy8N*YM(ISl z@22?4!CLheiH8e zF>U#^2~;hmn&4uH;%eK0y&iA2JX&u828fL}KH~J!jF0N`HsDes4EI%MaLxKxbwU0# z3miusZH|eF!NkJK^|oH|vcgWT8^;ZKk&~RoEcCX%5J{*!BIqz^22R>D;Rs$)O2RON zfYo;St#D?mzCTS(Qy+N6ZTH6Qwn>WT@W#dw=U{IXW6W0PES0np z>boDfXYr1ZVDWg6SBo7ZxJ&poqTnydWSdf{%l+Bh{*P_4cB$fI2CB%J23^RK%wzBN z=*qboDAwD4h0(6xpN%ovCxeX5)HR}azucavxp}TWVR(n0V~xux)4&6o9ceY3fWBaW zD2!SwgF$hnqIKvD9M&t*cxVm9ifmJJd~E0GR>uV&DAM!vHI)nZk*o=SmB11Pi5ngJ z?Xngk+6eE!jK2ePFCsx;c0ToJaPRpicz70=9_^2OCs|gLeat^_U*VzSm^oxQ3l^;W zy8jUNI*PK4KRuf!LVhV{kLjRM?Ui~#KM=^UEIev>vnjrT*py)ULJZ51?dl~4)7`YP zC_TJuL~JcqE_sK&;&SQGV~J=g)Z1xcETn!HbT~7e!=^RV2SYLAW%|a2oTP7DDw_nG zddZ$AWknX>kVlrs$AzGgW%Nh;9H9o;3uRJrNMACGk&W=!{|a1iTZ?!_6X$-v=(=1l z9Bd}-1+l6L=&_>iS~DQyI6c+NAe@VW!g*Y*Ug_{KPjlC(MTd~k29|5{g^o;ucW9tf z)pUqi>p^hvt>YhNJ@ZIrZh04605xlyfyhSq5ms^)i82VD4w-5zb|kMvFlv=jsbw*fx8iPXRB{+N*OjIjAX@MTe*fh<}1cEjRanD7&dd z%Q=OJxGTz*G}y#b8oCuQGpHw?_$JkKy93?hu(N*1q8HLz{fj zv2?-$E6L;l=*At~oSV+$1uq4GIIW3x|0LE!lMh#11ZxH?eZjD7pL-Fd0#n$~ zVohC1s0ie_o7k_VFCUW~BF`rxe-%YW*m>ohe14d<;Qe@RLr3|3I>94CXi9jFmGCR? zMQWYx8-~HxsDp#|Iig1mN8e)P3-X5wCzTH#SsLOJ)SnO{PsW{Ip@6@j7wFMaGwm@4 z??4}9llLNH`B;s|I_*u%at63#BhneTr1JZAOegc5j|;aLhwQ+cQj4Jb|1>r>-Yya; zqoo_y_qyFF^kC;RjFv~5LnOd5#W7>5;+K&=mJ~*Z$ic|QhBfyKz0Qr|n;=6#Quu&eH2zN#Uss0&aB&EvxJ2ZqByH#H(i>fqEgi2t|GGm%wzoIif4Dz}= zXl&s~KPjeN2(EpyM+Jcgurheg`MM-Llt!So~Dz9J^8X%Mvu8IP%WLU9@F}3v3gJ zGIfiFaaQsgs1H^;^hJv%<+vd|F9tn+u3$_+_~Oe<#n;-Zv`s*8(3E62T~#TjyDyjc<0k)Pe?(5j`wyK$liW@he6K9GCu03(N+C26)9OZ`WAxG*$bj;8IFS1 z3VO%Sy%|Wi&W-hI)nOY!;zKeE`3^K#!}LQyc1yp`m)f1FWE|r;3!jc$Nf&sf?=Lu7 zRG8@@RcPaP1MmM5<+u=Riq{`ZGz^@@@;LJx{yaAb!5)or|68kM^anGTJcI%g1PLOq zYY^UNt~d9O`Y!&Uhyc|r`fhiP{HjijTW0SRm(gkP%W|!HDI-XNm@%YKu5t?3TK=sK z;VxT5nYD(Pcg+h!%Sz5ME%d_^?6C@qPe+5WHQQUVC704|6>aa8xgeE71WbtimO&#D z$UX~H?_=d37`|1n?ZQjOi3uuk2ED=y2rWJ9nRV~A(3c^SYSy3W^2%dlO2HScXD=w{ z-U@j^H)yPMt#N$dH;A2ziXc;by$f$3K#lr?F+hM7!VnrT@!XLZ9ipMkyjP0QP9eb4 zSl|6X93K(GZ4^d`(5WolF{24Zs0`@PRnmjaw|t-OK2tCiysl&2G<&-qaO`(4a6ADI z7Q7AYhUrTN>yNTP$;O=+K)MH1>X;)y51?7JYQpllgM{<3&9t*pzyhCOPT?GW0?K;A zrT6lKKv(7R$an);q*XR$U=xFq=q>uMu&|!uQr7dpupTq$C+O%mNEk&_FvqX8k0-?> zQ)@(PR6FoUC8B4%ouqfT83b`7*!H+w2_e@8_C~w{b<=OUyvn+ZL}`M%x~{&8tTa2Q zjr+g!Ax_2Rt-}y2=D@HiDd zvyb=NtL~ZMy4ALQgll$ib$1Z@%-PW)!`4GxvTZGUVABVEBjZ@}L3X7b0 zFbE08-`HjCvkp}h%7b89ijq3+H^cWu+>g>Q=_C-=!(Y{thOkOprq$7&%sH_I=UI+R zT;|$tj^u;(EXK(g<%pfkO$<(zq!*WkTSSLzpUfzid8c)3nzNcG(JhkRxf+osYv^D4 zNerxSZk@_}A`lCmmikj-^bmkw+;Q zu6wcgzeMJLy04wQmoJbt-#T6dW3hTUWLYyC>Tv9pIhtj?D6Xn-HNk)6rFvr-$qe9T z0Az|@jE=z)tN$6Cz2!_rhGuW`Ym8_6j7d=t?^O!M(=N^4<3hf-iPGa-IUx-Ou|G9M zN5y4=B*CoGiq{TujZr`9!T2TMw!TEnttdO|5r%Sc`eDUVqAv0lGy_Gj6)iC~-(6U2 zU0kL&R=kFH>Mzr#qm{siWor_NlTwC}9}x0}%n1fjVAJA$6PY{RP#XbFED~@16Bq}| z`lKeXhe0Bo)*k^Ra^K}^3`8wb1pv2N{?1y%TT6Rqcn(6teWxeQ)B==|4^Ul^(Q_;iCSaBY+qp59W_86TT7 z8}}uLjPQ+TuD19&b<>47J_63tu!042blMgq4a`0w=hcqmqN?(02@`WR0+AFP%*W|? znFP+wpWox=^i11H*av>5#dv54ky=>7OWVRhVxWT10DzTzO8U|E1DU&Lj~?%iX1J(jcqv>7YIAP=8ce1sOE>19Mv};|Rh^g)RJ^Ip-rwpjXjLfS zXTX<+ZGd{Fpo?BQ_d7$lyW381;4js7EO=`Ahwl)P(i;iq1<};)mSlx@wUj}b6XAex z`_X=c~Rn2Wt zmflNi_LPd%b>w9%k<~0--3bZQop1*Q$KzG>GAXUV_vz7L(RpSE-R^p%%N}Qay?#b_@;dosRT$nF z7An{z&JiwUa8)FHtqa_2C&4jo#2+sY2A#jg@6V=&Uj537*#Fg82!Ur5)?Lr;8+r?h zb~ZH)8vYM>msNR_Cp8^BrF=F6iY1or@bGqOWS3!~jq6sMC5FKa@NvQy0ES)xtBBh1*)DK zZs#?imC8=l)aap8OT{}N*!c1&Ss@us(+i_FFuddXSLV4^tc<5;vlHGAk(d-1$!%=q zK2p_vo2pd`N=nOqey@!9_+Y3@w<7CozFzg@lhghroZBwk7pJTs8LZ+b{5z1jnSw?&XB;(NPkGE z@#!FI?pGXR z1wG}_-=-0#k*kz}SVD9mzEIJDZ~%vRQnD~h?js_+DdF2{uodWnbANk0tV`_01(Oh) zfgTaJOW7f+!Dod|A@3LUdq6mo+_wE9G16ZE`sb};8|rGj9SxhsS+^1MQvexp7!=KU z36914l3S$XYariu{hZje>DV2w(|_l2oJ>}n&VsBe#N(A9%*qNxtXS6Cu_xqIi4SuJ zWYRjSwc^$`iJN{9ra!JQU2mq@?glE_g^ONFuNl}LtOHTx>1M*{aKv?(S1-|V%7WLj zF{06x=`bTdj`3clXLNz6vDtVeoKacPYgD^^Q2e1^b2`X(CGr6=8f)&x=>X;jBRF&X-g*^D&^3S`v~Y|mUWHULNJJ(=GhPFn+aK$&^8$wGu;38*Qc&La zAC&&2pd13w_zI{7s$L#_6$U&FzcUsiMUe6?d&(VfSJ|7tXsjTpH~H=d+Y1B)48Xk| zQ*BU~SDFnubNihw-2(EFZ~J@8E#DUf8YeTfbtaWqJ4(^UHSA;&%%#z@F6j|>`ZOuc zoqw9@U^#$eQ;VUZ`RophJi>RJ9xPc%21FVNOpw)EK0YB4Se6?SSXHA&)>C|j9Z?=X z&YEBldJ*yB6`Mp_xeT1r9&@;Fgt_IW-F~l6f~;VXY1#XB34g<(4Wmy44$D=el z98HxO#p}Ovv_;dr9OjTUjo!JEFs-;Ra0nWCbgDniH_wy8{VLrrC<}}4zeqg*_PfWR zqK#TWiyq^D(ynOw6-E+_&te?11c!yiMoYy555K}})c4YS&k8mtQJcr)0@OC zd!T;l4}E(d1v!Zpt4HjPl@m2xp;Nl`90;!03>|)k*~&#vWedY+;2~{nV5GpDVUCDO zbi9%Qn7z(6-GZLndG4dDUFUmxIdTl)J6s$1+3-zUU zZIo+c2DTu!p;TInVRX4 zW=8Hh|4dy)QBRc~|1-Qqnt?^Ph1OSkYW3&)#C-1X7R`P$otCV<<4vVnj>06^%z= zQK8^)Lj|y(Q8uDocPj=r4QH{RUTLrjU?%jzV(ET8PS7mD+#uw&lSxa_w@AGnQfepc zV2PL)^B7D~-Dd*q8V#>m?%zyYf)3bCCDE=u_Gj`q1G`+@@uB8%GzL}TT&tOfb)h6o z?W!mRUopPHMs`0^{AjqI$KJZ}Kz@eL4kw)6+sAgfJ+eEP2j007scNM})QDgwh)^|P zB*(W?e@!+u5_Y)Gj+xC7XQ2X?zX1f)~zcf?CV31o~Lm5Vfr zi{|w*GG00dv~h21@9_okaMIxXIl?1?EOJM1CQ1J$2lo(r!i2kN8=vPW@FteKvwkhQcb@z~n$l>I-XFgAyf znHCe_Ge${84nLj&!raf)bj~-KuHMCatqdDTN~QQFuQC{;vR5-rbeaQDD(j9T3akclJG;cn&w6tN5_A zGs;8{{8UJikDtRy$~F`x0dOP`7*udT%rFcxsPq$w9nW1J-JMAq1uOT=Q6pzjK|B*; z`>SHB&XWmy1!cq{#l?{F1K*pqdq@)h&sSOc7R#f`cu>sl^YQ8KtKo62mx?&8mJ|8ROGk`2NNwJ z7%UpY_r2(Ndo2J&iBUoUz-}Qrj41%qJZ1#a9VeB0Ix!!lQDj7O_Tas9HONTfnDVXp z^1ew+O3~Ifs-euP(+gP4pd}=)QRd%mCr-F(`%e#DL(=hx{vozVAK(=lJbm9?J^+QG z?dB_w@2#G*@N_FRTg|Bcjsqc<@^Dwi`V;>Hx?9EXDM|@s6*ZcW6T}A}Tf^wTDtV2S zBVSW7L?o;nW2Ur6Jg7k~HUOU?K&|GS8x>ItSKDD}V#at|_ zn_JieN1rPd*~8|xpQ5%lcX*E;cXjJz)#KE4*InAU-?CM$LN3_@H5^)7KG3jMkEZe)6sHByXAPq}ZAjuX; z^L-XRN^<&9dnaobYt=W9HSOgSD)-r6$QcMqHwX|)!FpA5+3Zi#-DQ)ham$?=v>A;~LmbC|L2da!m#t$&zD1ShvU6$y;9FQ5Xz4Z0PZVyj7*CoUvIViE; zT;g7Rt5*lx%n?h8EvHaTm8!>C>Jd<<5DZ%SsR#%Zq@%;jrz_((lioHz z-BolSed6ZtJ_G{{;zkMe+Qrm;tBcDb>bag>sSVSEXgXA>v&jpgl^96Uf!&g*2k71F)rPYDwr>DOt2M4-w>;2zl!x) zNxmJ_%X8rd`(u2|BG$6}+()GSd=Ryqkv@5#?C|XY1 zs*j?|zs_WiZK3J0UejsbsLCVaVc2r2JgOV3S`lbIs&Q+lr=^tFeK4pE=Piv1EWKck zDad2Vc#RplTZzu= z8Hn@iGkM-k3<)CbajZJg$>2c<*J>`DJf)O18ZFpUOA2U}ID9mF5@j(n@K zpu$2~4|VKIQ}yuqhWtTtjU&dtYOmOq9_#u$f%0Y=L(ebc^>Q7;xx}l_sP@^XLsx0e zoW16TKIyIRamu+tg7r}AL)j6-o)U)uQ0loj)hAMbJq?q;zl&CmNPP!LnS%pt*s*nt z6G&5EPG!#kK{P0Z`%E9@_q`Z!6=d>`6OgTX? zB&>-1skxAnhZ7~JgP$OSe_Pvtux16M{xg*JdsvsB zTp>wB);M%1mrsp=Enm)v8hliG6(^xucx`1nB<{aqo1PUpGN^hm1*6HO3F+u@z6KUE z?!xs=a$Jc^Tukav-qe$Aj?wgg2R4iDS#-g&A1cFu0T8wlf6jWC5RAGM9^yBTai#e~GgZ|AD zFc!enlzt2CR8a1er{vW^vQR3J{gG2hVJbrmE$}nH&k(T2RD@7dDvPPgCjQcmMDMY{ zBnbQSJ{mapb&9bCRx$fM{p7SXBHb*tU6zp0>yuMA_P?|E4?3Oa z2J;8Dg>&De*g#gu%@(d?Ozzl^5$ue}Ym^s7!a@koncye1I*p2QgZ76?bTH=gf;uST7fHCp<&sS?aq!7_$85>HRayr$ zHbbhRd;TKf?STEoOVT$a1u4Wf~-*5HWbdfb}s2r+-4x5lH zzx!&@J?W#5Rs1GP?O9d zT>YB%U-%EnEc@K}xaBqsXe?dpzN33UTMOW^V|{D7I^G9tI;%LePfvKONF$k;iD^Eo)Bt|ZSddf7ij?lmf-k$pAStp7@L?3av!yk z_D2!9zP+QZXcGFhwnjMZe##FGj~f5@a5r2##<$mCKw^j(BTYroZ2$dDb%xrI#2Ldy z{iJP@!8aJhv%egy;EXVCR2^1TDP=v}7x8){JNQj(wNby6n_CkhxF=ZtLtT9(U0rl+ zEC~?kj*>}bleGA8+|IP_*R?xwvv2Al#DI^Ezn&-0tO$-U^QBgmv@2-PScwb2+Ii^Wp?9ve( zLcDyI=UEHSI^%WsgtNlz9L|T_+J|yAH=vp`U$s`U4+1dnxK1G z&lMBq5?NoA4{QRE(4m{H&x`;dvgJA4X4|i$q?quKi-rLXCeuxqg7aul?;-$zHis?og(1+GajiuVZ3j=45Mh`m}2U z_1>pZzW2hq4g9%Hu6Cy#-m z`Bp?4Lt$FzT1*+4PTvl($7{m~vU8ifP?`UWsH+U9YU{QFhmvj(q(Qn$UFX(<1Waa^yD7B zd_Ci)FcQiRmsdA?&|JC=y%%BUn7AEnYW2bI{Dug!?=y%O@h{L4)poK@%V|d084~Ka z|A)X!!Gte1s2gJO2N?fqsglfTTUPJ1KPff_i-=3y(b3_4-}d@k9!|im046Oz`)FyU zdR|RPTmT9MmXHB)4Gj$}P6yMZl(byPU9r%9yLqxH9AL46{rSpY%g#&I?k)EYK(l3_ z>9p1IrF4=z)wL;OPWUt6I?Q#G0P+So;7u~aA@a@&i1*!uXpaRHI4NtS`!v%7y0*Cv zkaPK(jH>7|DwU0yY~*uz5))yxR_prROWr{E2L=6Q0@{55PC*;tsi|7}QMpUtiKv9B z#u;d6q*KCdes92-ueG);d)=;#I@gy6I8&05b=f?0z;L|{2*>qv?n`QmAQ3kU=7>s7 zof_Ejez`X-g@%NHtn{NEm;!Cg7!v)V{&gxHyRBPyV0ZN1lBE`<-!`Kpej%e2Em8lW z2;_D=YH<{YTna!_B+C)Dj2D-Na$_b7FtJfN15HFbq=@hq$^YLQtfRv1kOy#4pBFDFMK950Q-ED(80JNRm-P(*# zc+5HQ6#49epZTt1Ys@BuA18drU5kh}w9A>#-4{z!we(e_l3SG{O*3MzFJ1Nv<(~ES zOG5-RD&hT&ZKHukX*T?#?iMGUWT>(Q%uJM_#AglFg#>*akqw!|tba~b7jT&ohP*|7 zNg;VkMoumspuB&2dAj_3KiBp`;j-$M{{%oC8xgopgrh`y6Qcx`0JgxfTw9|b{!4of zv;s&L71YYPN_zJE`_IOz{maUVaS|!BWHc-*f;7(XlV0xdgIQb+{jkJiZqhr7IIIos-?vabTn{&y~vLz<@Ini5!u#HA0X=Husi(o6Jv|ghh*001n1Qst=!cpEMiV@ zT<%b*s-~77WkJe!X3O!mMgM`(IS*de5U0ozH z0dxtH+ld3gVjZ*cA|cq23;T<;#mG+H$F*~81A;XQT__}$qa2z_Dzh#fT#!Q5B`S&LWBojag)vN(7c9JubTx071p?x7-=oDNd^T5uaa`D z%8YMTZ{Q17t_Q9aXBI_msp`+REm?RGT8Pazw;?ZiTwq|2F) zer^TUue~=U#3-9bV=9&z@g##eMj*My0oJ-gPi7A%%2jt}l1cq9ipHcoX*j(#*FpCH z$)W~kcT=2wJD6~Fr+gdf&OW@=Pf&UF136RtS`?#&CS87?7>YRYUO#+koRAJ)&IzYK zxqJV`l8ct5dG6$eA`OaPktdVts``bbXr?Ee(vH{Wt-CxBx!rEV zNF)S2hJ9!qw$7WypNtQDVxX}qA9bcRRQqp^syF`pjTf;3e09-qEi`F%CAxKJVf>;( zG+6GEZ`>Dulgnbi{Fdh#+;m9=3S#L|qA0B_D`S@GR-_GKc<(*_a(0#IA-#q43akqk ziST~tc!SX0d*Si`#I1AbFhEFzHb(UJ{u(OdW|-ut{FDDI&U}`+=n2*c1gNz%35cYL@iL1gAIK+wDETLSn9(r(lu(OZ ze$8_qIc3#Bc6~D{3vv=zX^US1xQX+|HDXvT7|<8Ach_-D???N=oY;ZR49)?PI1li> zc-s6dBTOrhL?rOR*Nh&D+pyEAANrZf>vrBWGufoA{V!H=88J%-78elqYDR^~fcpiM z$Ps+p2&$IQDzN5_R-RU9gjQjcUCiq-3tl6LLkUy8n z%u3e{x-T~vzsH+xX+`{lNi9@l5=W~bzmZjN{jEC+EH=_5Xdq=Nuc+Fqvd95w^`K*8 z=h3#|l&PB>Bjk!i67m&cC~M3$83N=9-FT@O%7Lf*%aw`uk9YWf03+jYJA+oWtmXp> zJu<;`P1AARlB56l=3=a~m)OdOvhc3r45R6~-}a%;iQF3b~Tb?}ipiW?Bv+Y#G~^ z8nFkLa3Hrc+fPT8r-wcW{B*g&VP`x`M6NoVhplAY=i>4bdMc>``UUqi z$r}obSF7In)Cp|V^*TNoM^=Ne)czKWFXDP7IIKVyBK!;W>sU*}_jU=G9`X%V2N~sF z@%LmhU(>Q{Rq_rSzM`v5v6lv3^?JXctLAwC@-I8mqUeMR0p2`3Tif3SWIChYfiOR0Y z>+y!>15=sK7{Cz{eqAkVeXvkx*V**C_ygPsqt3?@(QS@3NfblVcXa z*aDo7l0Zk4_WbKY!;)=V+(66+OJ&EgbiV6EnTdXY zzcf^)-2{Sux8}Nq#21-j(>Sn^6~HKlnVbrQlPVs%4kPUTjZ&!7mW=?V;_AHeHCybv zW90xWp{wARPy0X!8l_%svd@T=%6RZ`gTStpvE?cn%v#yp+}wVBIei87ka}qs!79Z> z(!?-Qiqew+iQ7Pm6C1`Lt{%`dL@$l=3oR77{KyY0rH^hXccwQBe{a4@$k)S;I4hb* z^JM&v%`8*bpBPWP^?ny09t9-<2=!Bx8!6|3G@|@4_;|ijWX-gG+5Y?b%SwYoek+O{ zBUU`X(mB{`pDt94>)lskzc1CS9|SP1`MP%ntj>p}^#@x?UI}#Sq~L&CNpV!=^=VJQ zsfD!~sYj#o^x^uD0-zb%*3YsH_4kj@9DU6I_=jq$v3=aw*q9+b4u=4$buPuuc5?y3 zS{@MNa{8+Fi(akTB%&-JXwgi(;uW9MuOjm*L4hIiE!HM3gbe1Vh zH1;0|IR9y8>1PaJ zfw^qeF3(@rsf;EfDx@(ARtk0N`KaTS7R^Zz9dj>+FlN1$LY5)(DeiNA{^GN- z)rWv(K2ZMi#y6-DgcBjM-=^<4to{h<2`br@2hgn#y*BKnPci0@hy+Oj`clv@w0{sB zil+Zz8KlVj$9n~v|QzQx}yfpEgNJVz|-O1aV1M{^eif!1CP^2edoslnyxg|QwC zCi12lil?7qbmje^<8`eJyM~0y5=GAYC|FaXaOZQ#amX@i+Z}?Y@%Syfh8X_tuG9UF zA_9+9JVgtfnLKBOd|h=}^Ll75c~0EwKnyWu=!ZLV-%E1=p4DK{zONwH%$d0?GC+^5OG2(X!0A}9 zH(Nq!Vgi6&IwcCl=tVZ3zTN==(V$kL=O;Mjp8|(M%!Rw@gGvGS&^}_##=UEK1n??n zL9oL_?@*%<;0WKi{)q&{-C_t!y7;-UX*9dC(4IGTdyvAsgc#1m@bK_Lcm2!7%rx!z z#lg&}=bhl!^W00|>^D0e@-TRv@3_o4w zfG;JM{Z<601^wFx@SZPi;?WL@hkJ+SDWiVsksm=%d;Sw-@Bf1sj!kF$!I!{SZ=E}g z*-uT+lQ{m4sq5}c2I6N8A*)>mnc$;VDtEaeGdi{RAOidOHAlD%O3I@NL==L>)9ael$?5E0_~PAqJczu`*_ zS|IEKHnQL@AR*3u2k|&l(NHNwbSjWF-t&r1O)BN7UF!*ZcxK@V=`vaSf&4^;&Wxch zAUhHerpxUZ0@lTQpdfXr#q9zDy49fj*e8pWX=S&EUq^SjI9e?P!v&4(WPIW|rad|d=`8`^&l zz88ArEoc{QIfGb8T=3mlE=q?3>}?wfqnhb4J~;w8M9v%FV?U614Kv|6{GZRQ{CDfJ zL1R+9)pljGd!!+FY%0V|xO=y2KIOF|cX!NrR;GsjNw9%1lpa$V=PtrNLG562uJeV# zasF8?n+ASO$Enfv!A$bqy3f^j6i!pHsGB7cYR&k#{TBC0G4Qfre7h=9-RPLIuo3OG z>5`homQK->{mdter6zY$xnxa}UAV6|uV=n1-!*5BI+=`tJo;3l?uA(%v*>LWH@oNi zN|#DexDVZ{ts+rmrEP4=S|?D|_2VW9a5&#D_Vx5EG_|u>J@>%(Mro zeDIzQxtw)GiIS4gwme^sEI&LrN3%_$ta7Ip-B-LH)Q%$ zj6BPQ4BXNGh-gI$!7j(`vWR~-?oY|+vlmdAuEK})jqUf_?5GmMb{0?Z^}Y*0xL^Su zk)JM^2v+r_~$Qfx6k(zpU^KgXuFFT^LD>5JEAeh zyBR@W*nYHhf!zkZ8N@^JgC7&FiLalMx47XiarvzTHB#Yg7{_V!hh2k&ERFi#Eo%ON zmBr#;UFU?$-eB;HVfHl5?BRgGVrohtAK%r34E5VxPz6Mt`Dz`Nde-wUe$uf-P#HUZ> zB>0^<`=rI4zflZ()XeK2O!cIxXWD}UL7J&I)Q1D5RHpaD#nF#Gy`a{c5Le8})_i!5 z>ieFk8&ulpw~s(g|(a2AC!x& z%kM|qxj@wm&sp(-eQ>yA!&Ni~v@xAMzm-D~sD0JtA={B_{J2#FMDbbzwCf2b=}0{-?FcR~ zdpgSkb_L&hA-dmgtTWLIoo)D;LV2o=bMjZ5c~-m~R^Z}zGD01Jn}mW4_Q1TQdwQrK zye&J2hcJJm-X0A5(DMmzv`)p(8CGqhq0)Sc@-WXJL0==tCk;pHsVasBc7`s6yBC2~;#`=rjx`;}m+g|Dq@WoF0W@oM|*ybdVjRJ@nr zIk?{2KLSnT_{*Bp3r<-{HyJ3Rz^ur470$;7B+Ir8Uvpr6HGDiMEid|&GBQ7n zWTKl-uwZq7(DfpKtrU`b4Afo6569~#>*o3Iw=q&0-K-CKs|w+uQrx5VkMDj77h4ai zSSjjqy7R=(Ala;yrG{CD<;=hK`A-JU$Noz9N^`ecz{IO6WTamSRw!SZ?vl1u1&RL9 zD*y6=RrxRdsew8FbTE%#r@_neXmOi;v4GBg}VUT4Z!}RTVpu@S{n}<+a8V zg5ifnpV!|wCsI$HHxp^q)<7|;VrQ>7rROubu|&M}Fxhvjt{2-YNcLm;tt(09B`fVk_OvUJ$8tW39XX5@wS9JjQMO z!<(w|F5KAtPp8E?B^+XPRwh1d3cAk^PiHa;$!d?RQs#+Pzi-2-@^v*G9cy|aZfos% zYpG)*PU?Y(p98DGDEXj)RF*>w{faMqFY@Aj6?LbPEflZvUCpX48ph*8G`26%DBc)M zIL;VnxQMxjRoEBvVLu$u^HxJXKj!u8!Pa2j@Pxa7*xT!mVy#!Km|LPgzejP4(Rd#* zJD6V&8XoSZ=M;V-JwCiXpZaj<>4C;fv>4Y*Nu#X>b8Hm-Fx;yrMfac2oBXM&a=&(- zPXv?3x_gN|7ZyBr$DKcjQbRap9YuTn0V+`|q~BxPhF9tH2}CN<)TNiM%*k6~L#2v` zmC0dp9pTyw5lwI~_LUl278KDCbGu=3DkST-$((F8I&i5#g#bew7rZ$8%NY;UkfnGuWYx;dMwMb~kUiNa_IP z_Ye+#hIwJR-tuJpnoz7(nRZJWRV$#%Q^TmR16fiCvpxjrzxvn-GB1VW@zj2j?+k$2 ziSTi`>Qmg~evNoD+|LAs^`W0LAcQ9DmUP_#)ayEY6o zFwBGq@pcF$q|mKPXec?%%L_i3uzuW1HCiD^PFjVk*o*^_!Ag?0uW%#}e~}pnuI$?* zXWSf=zt>PiSI*UG2ED5fi=d61F)BkXqdhjR zs+}`mN;m800R^moyW8!yXaH5!uw@g_*V}GhlHV>XE=g(o6q9sq;eFxS3dSFN*fM;x zw^kuJSFNV;qsy3d9ntS82HM9GO8Mn&E>g`dgGKgm(%FQ+TXlR!{IFdR-rV0dy`&yp z8wB})2naT>3y-@>DUMzc2uQfr_)hB%N5OoVTrvTcH2WM8FaJ0xF8OSOC zWw_(06gH<~KumDBHRHTbI9@A}_1`x67fgsYhfVso9Z7RmO1eFEPv6GE*~i311N8RY zyqh_gXROt(H(dM2{A=d>y+hy8o?z$jN}zEXEz_41(^g3L<_?V{)R#{lp;$#N;Fu5m z>?F8WQ(`Hdbd)cv8$T$0vTmY#GXG_z-8z<4zMF=IhEq;k%1Sy4kxX;n$MvBXS~WpP z{%N*2`g?nTJ1-=-uizo)r?p%V^fdm<{!;e5%yDDy=Qyi46Nv@2`C_5n5gXP>;GZa6 z0S)SEeszjck3LDDiv+-Jr)WNnL{?o%Cg{qC?nbfT$C<8>NLFf3#F@w+ylEhm`N@?- zEb*Q^mR<0pL!dm+#!mS7%=J<(xln!X%OSgY80N-j6Zm~mJH*>^o~08|*-H<2 zLpYjo%H=h}Yijhu84ZIMOhLZ)+X!|p`pRtg?4nKAcMC73ooiEm(oBa&U0OS> zP((Av)GBU^+pXwil8`Se#OPL@-jS3UGa*L_36l70LHPyHpgFK;!-c+>&m>MpQ-TV@ zhH;8lYP79hw03x6ID1sfsoFkKJCuCd#3F$)-)GAyENeWe3#cNiCwWu)Nis9T1kw>d z?Bv+Y=RkfymXAtktXo=M2_C5bzMx%#dx! zN?*jd-BCkL)7^TlCId5p4E>`Bg^V0kwGDl3*;}%M=wk#NhG}I}dAE1u*%g@@SKyxK zz}x5@C4s)3yKq{yD`exFw7tQ-?wNHay@s;K{ zF8=)bVG(WoGBz?Yqk*ZH9hMSG&5086orW!cE~(BWayTvjZV1mA9?R?sLis#aoTiU2SDXM%>hFnrk z8;h#pGWF_SLP`&sq-rGUuRQ^?l-kXzIg&p!WfqKn8?W6QFIg|BlxnyIB|?ubwRqIG zxFm3=*grK#z*B$ewf+)BR~H%@%28arl#z5jX^!9WndqUbsou~I`%1#Y>o@|JYh?-h zm-;wsKwSDSI3p~-J^_vOH19dCAGKkmQ7z6$JAv2`{@b-2CS>u}hc_Vq?c?Q|&vv^6 zPe-D74;PpiD{LfBZd+G!u>rGE8uk zI1@x^YKJtfQ6~-0eK}ZhE~@?>HdH~%AZBc@;E@I4-Nz?ReA!v%FqeD`HnR-+|jNK7{!Q~ zi=ClQK)2yoH4@J{m?w63(d;uQdJD&;mCXFb5N{<&YvVCm{-VmR^W!J+y>RvSY-z1p zGw2-iTCh_-xr4>p{J);FcCaAC1kw5tA*J{h@6D*t;TAbQsHGO~W#m_Vy zUu;=U8Fjbg-5{m!&qsVleudGkG!XM}@{~H5EltUaM?D4WxDnHNBSjW>C%Qs9@z`%h zHn6jLj1Ok+m``MXTmKwz^Q{rQWmM_RM!x2;Jwj*1#RguOxjuE)Saz?lMz)w`rxI}4 z@uCturoz1K#HQIxb&!h^vHSD&)kWb`lz~C#x>yx3M4+9d#%iQ7$v3E1s%axs8S>Fd z1nmn56GDvG1@+5^)#VQEKQzPQ``)q+Zf0fz4c99=l;%e7dE##V{4`{FtXIBhTap;s zGDVKwu$8N)qyY-+z zL7BxGbHn$(6SH=Rml%papD%#6fOG$h9Umf`!RE`tR!JA9q&2B8wBt4YLV98hZMG)eGN7VMjWY zn`r=QONOUVC8_JnN1QGV&o;7~qBTaREBD2`&b^#0N7v>M7Ydas=KCJ1Jcm&pGu7I0 z&0OP-rGG7ufef&~1PGKCf)~aF0k<$-jsxL+7hQ?MN#X%V|F+?R*OBPgs~45k#(UGG zm#MdwbyQlvE5N!&EEdyLJWwIjLy3;#zFegNnoXAXZChQ@0zTe_S`Ag~S+UfL;>6^m zIJ*FLs>Yis(M~#^jykqn{#Q`x;7r#8Fx8;)T@=s@)BfmmKn_f{2-528n5cQ?Yj#~olfNWTET!F_&ii(Nz6nar9QK9R`c`LnE-;^CG@2a_pY?lU-SIX6 z0IZtpQxc=YsiCoI;tM_MI} zfmOe<;IyNAnn8`?=~Cv{lwF8=Dk1i-ot&bMD?z#idxfc*G+qauVh>EC4FOn&EPsRoN5i6kRXB9fgmJ&x=_0h`ocm0mgcifTavobuLEHt;b&PcQ@}^7e22jMD$I8m zDd>y(BtLE?=#M(gmFOOZO>ZIfjn)(;86}U-cByWpH?l)NQP1H-OSQKx&s)YgHY+Ww zlg+M7f)^)*;21#`q5aBUVt)C)2Co!35Vmw~c}-PwEgpJnF4VM!QI0q!F=R1KTOur; zZrk}#19*fBIKL14I#hCPG!LViyyF5PJW7FPqp3vV;Lro?~Du-?_42P2fO7kw9sPRN6 zVcUk5Q3mhA3-I^dyrL866#(`1Kc<_D5-9i*Ys|$*jz`}xW?_?fY33LWe?b~v5ZlH` zqeJ4ypH$?0o2RGr)q8_IEUfpfuIHW*8u=gyI7~$efJ2G2?9)Y!khI82?Ovy!2>bFBy_QwZ1cmA!Q5aF?S@|^Fi8Uy+kd1q-G^77asl%I z9|?0IV?vSwbGiVca&pg|D9jh^OZ-AB*WL(S$TbxuY0G2_SqdlJ554Wk>2%b`?p(pR zA!G>%qSP?nIU2cnk=c~d?~RX9YY=b|XjB28hk|I5k-o`M(T3;_9!$A1?_0HcQ_Q;( z)t;hrvI=b3G4Do28;@A!ek;nnP}R^MCXnygWRK)n5c`qll$a+RFz4!rUGY!cP(wC+ z11@8au>a?Gq=jDguZ*hcK~jph15!8~HAC+V4LX{)Jw+4chC54gohfr6BHNUQt@0#e zauqoTb=Mf8)qknNP$1BGPf zLC^qea=7tSK)^OyJ5t{ohv}}hOf26La(@ny3~5i>vm1dCJoLpUj2K*u;AQc&A~=3Q z8sIXhkKoJPJaUn_6ue6e&%_cj9ypz9bzYm#PIn#D6T!{?dK=LWqto`Au38_bvn?n17w!jY-yuYy!H4*qHUF43%AMU z-0-7e#LUYuQGKt8xAR<~QXeX%h{mE&B3n^KfY@A^pceRqFKZH57@_r(f(bo2Ba1Sc zWCrY4g>pJau}(Ua9CoqwI>)i+if7zLv%YVZ)BF#*(B&qmTE)_^%K!JYjrzp#Z0+Ai z#0E_HLF9}qlb^|(&5;KW(oF50Q<+5q-x3PkeIPL_c|u@FI4+mA_rqy8TRzj)5G2Gq z+teT&S+x(SWFM6AS;C;E?@lfP)|gTiBh~_szy#llH_k!;q;} zm8ePY7_Aj5w~P=S*W9MjP|faJcIgGPc2q(Wj1A(W9J_P>$s3tp*38|x?lJcNoJoS< zgWJ!MB$G17u_Nc3g7CU8{FZ=qAUvI^m z3YCFMA6@5R2FRpscHj`B6Go!Uoc=Y1247$FM6Ea6It=o)`s!eRy6<4hbALO;YCMzo zJlSj@?{+jAkB(&ib~88QivMq16#@-nBgEe>fyHX(# zpxE|q!4C)Ye>cQmiwgpN#`W-Pi!QK-{|Rkiz=!Ha+HcFDmkN3rbD#N6lfBtm52L=` zEuk$1n*7JVzXe_;GeN;LSF+y;$nUvG$I=Bv8?_ci-B+er#wP_@wTQb`6DfZ@PwR4& zFH$h-JQ%JgF8w}_n94nuQZ_!%xxTn3+p_A`^zVx+*HN(XF3yiF*675V`NvAY`^*V^ zCap7&$w|)*r2tIM(HI*O*)vXbhL@WOf_-}_!^h|K7qT1Vlc#MfYWX_JbsKbAtonv; z{N8#cHC&~6sXjgum(PhZc&)=muKe$)^6~#&+Au*jQsDK%owC<38p#mcUPCTT4p7Fv zzN`e(Wu0@jT*3DQE{oa>WC&y&t$b}4Z=<+3cnS1$<`@s96lQ?f{eQDF6BmS+3A`or z+icV^sbR_(NgxZ3e0Myg#oc438GY8yql!w|e(mz}aMH zerVEKoKKECGhV25(`7kEs6U%%X&Xx6d@@QP(n+#7eM>*AJmyrpy;JDW7Sk~%7rmm{ z#RDw?fw(C8zt`pK`_K-`3|U61VY+Ka^l@msYR(c5?w8#qIrs0HOaudVK($}Jn?G9t%1crYj#1&Wl-hsW)A_z? zv~{K2+=f-O&3(oW@8*H6VIe9p72uV8e%1NyUeEiwvzgi)I|~j5zxux!!@v@2C&>i$ zlA!G$dP*TZdBhdY#xwCVU-Kx%$5nHf9z5B77}07}4#&BgCP&1p7W`_id3NHo@Sw=&v&;rz!*!9pSxTM`sIwqst3#kPw| z;q0+07NXTVk1&{_e<1yF^VEA>bx51BPdXExF%)Z>Fz};XHbz(spZx7_%LhW)O9 z25j8OL4rxGbU%VFL*-0hbYgVR+rbu`x%xiu^eQQF*#){|{CMP}p@Z6M&wt*M-<>FN zhABC}E#JclFd2rAa>xO`vl9ew4xMOloG^*?T}s$5N6LhU^SBz#gLXz1b69eL9zo?e z-lyf`P;{{eLz(G_R01!vSltm9)eZ*25DrQ`Mn3|1aK_SMeSMTTyR?Z5YYqRuKgK02 z$j&4`y#Oji_>en@gH+E`fx^-itq6%ntLqz&yqCTRo% z5djs0H+_|A1eZEVYOcZY4qI}#qpQyfZ&vQI6Iqo(9lG(~^an`c-hflMH}TlAcz(sB zOjAv-9M(bx&Zm4<2-V1H)FWRt8FnnLLjE54!267108XA91WNi?Y{(sHtmv@N!pAwg zRQvxNUzp&(@A~@b4Wy|fVk9&M*V(POMxV&gq09eFodSH3!0?kXCdh; zDvsAA&D+|-|62tr$bB(jPrLt|wBHxb^jHd0pc0+xbh#=1--)^K4cIA1!U~7*#N$Oe zh3y>pS!)5v2RQ$`OAO%L8UUHOOCP{#O$>Dho=g34StD6d`X^5M0%8GQK&B(_LvE1o zCwf6V+4oWJ6x?P0J$gcLL4GV(tL;sHb-TFkk`LKq;4SIEA;z-WFzk=!m_N&$WV@PZ9M?sFSCn7Ay z^9sdr>TO06nGb>f_qlHM?>Nd3&yD}{bDOY$*?payTi}bKD%aEGH;i$5NMp7z{t^aB z`t-3B@uv?s83Tt82Kc}ynU~up3aq7UU80J7W1({xd{eneU}V2fSxD}^AVI&r$NKl2 znimCD7V*Zi#7uK?i5(ayRME;(?X68AfkK3k>MVRbN%>nx#C)!)43k!w>i_K_n+W)g ziM8MxWCQi3=v9Wr>SJG-ca7Z-gI4O*Ja!r#o$!-I67Co zt%kN_fv=rtaCxUuusC?@(o6gxm>X0o)a`v3%#5Q}Xa)otr|kdrL1^Ic2<|ZIicO-H zeqV^XaQLM3(Ree8Vpi4U@qy0|0|ASg*m|_YT2^KzB^Kdm4(Z>A`y&WEoa0rDb*_ab z%bNNs^Jna*+Sy?}4f4wuHL|{8mk%@V5~?9C7Soj_-eS?O|C4S5%Silp<8`EoOerlz zKfkYWnBvD1aQ!KBXH!{moKwL}UCT-yv_G$mAMe!U^tS*5gi3zkSK2O@B~@fSa33jz zz-oK+&QeF1Cm_C8D#B!^R3&dD$qDp9@4uz*7Y6PQbRBG=c~QoC_JbsEIOjB>zl{D7 z3W-{yDyoL3scdFYsVo6^zWl$S$?ZF^63snpI(+pt^p|^M3BbTe84l}3a_hyKpPv{S zM1j(j_0m}nj&47ID?V~ws4~vgZgQRkgx?;$0NDEl(EA?*tAhg+#@fd_H2@k5mbSHD zvaXi`hSEYl0{Ag{BF{6wWuMn)g@P}4ceJp`1W~{M0(k&8ObkHZQBqUp@Q2k5cF_mO z!Rf&2*WB=F8|8_Q&vgg#ig1bf{~CCd3-|~nJ95xmVlf%U-3O*)Y6EyrDo@*)qPS)N zy@~DD=yWIzz%;-VC}QHa*Ow+O=LO>npf2~;=$BT5{l&E6=K%nWO(=L&*+&>7LF6?Z z-*8Y=4Ed<*zE9z{@eKz&1eVg$@vde9kdCX>@;vWRs4|jTsL&6Fy zk=Y~_lTll3F->tUIgw^on$-6s5nT8H?-hISu4)KySf^>owT9O^JB>hK_$_#IvO-HH z9u7y~&!tqPG~gZFo~aKW*m>l_Mg@$PEd>DC;}%lDkWTA?eiVTxRIWB)#4lK|pZoRc zvecySJr^LZw-bmV7X?7f){dp?PNwpID3xic^FRC{YtnL@5E~d29YoH4MBlkB7eX)| zh(!__DVi&bo*9g4_1%vC&mlJi_>SU@K&JwWh<*}}OvFzI3~^zZ3jQJW@+1XSO2)V` z_$y5ajE{vMPBKk5A3(asq*MEHbGl|bFeJ;lLayt5pUYh98ozGmc{E>H2$X0v>-zhD zk{JUup(?ja6U(3rj6`7Z{-W&n0hSdn0DD#ufl_w|*heM3LC!+a;4!**0Pr@PkZ%z^ z4`|fs$Z_vrBAXTq%4pmc87F*!e4C{YME)U;e-y_a24l-rSTxItq~i1yQl1Z`sTFer zl{lxyo*|KeC@Ahr>GVU-lJWhpY?bXCNugSGEZc#Wa(?ln-;_1*KKe0%ta$*_YM+PN zvBJT0=Nr7ie1$&H7TJ>oYTn=cTHP*p%ebA7=h`z1{Sw3RIpxk$I-0Ak7FeS2Kw zE->7kf+DdLpn6()5Yqz+uj!@eYws7GfO#VbbH7?M0CLa6PAsD?|FUtl6H!iV_`I2M zf7CJPyLtddu^Q=AiKUYi6{@C2642)8$1wG=l(ge-*ovv{Ap)I697-gElH;~p214ck z(*hXQjP7T|^T0ATVuTy_(5y(>Yx0P?lE zI}2#}7t^*#iF?F)FwcZgBPtKjMA2RLpa!CZ> zbzSJPvJgkR%31&lXzgwVk7YzCE)noX))|MmWeO}_;@@v~2pH|xMBG@IX*TMt ziW1(PXgyYZD3jC~(etAN^N{&p?hHF*rdm8)xZSVJ-oydy1XXNC9l8=zU#+|KvnC zfaOc!$ZQ~p71dFATE^TML^c3={W(g73ic-rdxHRDr&K)Xm&~^^)$+fzWPq%zba)9A z?+XN-P%&iKhZ&N2-Kx^Ox`l=nfCbtK6y$ahgZ_F> zCJ{MbPAxmMOKenPx6%1BW$%>I(XiEUeOv_uIOL_nXU6v9h`X14rInxd!+N&6FAqND zdm{xNo5d9&4N9l5S|Dh|Q|2qhJi&KVkIW7)(U@tTxxizc;Oi!`_okA=ApGOwSOUO7 zb|$t|EB(Ip3oyAQ@Qy()b+@O-@9X1A^8O?$feDHJN8v`teS@t=y+Qr>pJe!EUr7t*^GOHVgyd64zpLD8DY?lT;?z{|OF?pN zQ{r?9BCwJ3zHXqAE`hvi?$z^UcZDjg?Vc_vc%H?Toyp#dDIV6`meB882~R#ej6}?e z<6Q&ZJY>{WhJV5r>_uDEUAVL^oic#DF_5_8R#J$9i6n9Re$H&VE)dH4?rdWgBK|jR zqB_8zY9-EB?}r4nOZh=UgQuU@=aJX{xGt?2zGWqR*jV68ET zPXSVIEFkm%d%TBGovu=*MXg!?uG$|Ba+w)FR9zA@X}BA^Hju!AiVKudt}@-STB5Qf zu}qG%t|U$OJzPAJF18ek8`MnmaASJ)=JBVDwtYM4|S7# zHy+Nv^uI}9ohtb$JLIBaYVs1xMDQC?pPtq; zMw&7ixl*ThPPj(Dw3pC#5lJMMyCe)m4x@7Pi;#T8^7NIs=SxRcPXqnRy&)MC7MV)5y_%SKQg!_ z4{FM&RQada3+@fu5*bBwlSyB1MFgZulz9KBk$W}RUGNwC?d#@ddam%hKgW^6D_Va# zB8f_P#qcUUdrmhHTiR@*SP8cSS=1H~)9tM;byyfPF5F7`2{~e5TH5$Mo0UE)1lH z3qegNxfE4{+e}$IMJSo5xD^|bQNPLn9_T`WJ)PAhr zAn{uIpVz;pW{n8^VBXUp3;|gOlm;Gwg_I%F-GbCb7p-D$Ej(Rtxy;BecLoB@mP@AT z-#jO(1+JUUPu}{|&C8dXx_&`lE@q&1$B?hRvb>F_VF|T8!d_{V*ul2{Na0Kpl0Gw- z3Zx%60w=}jcrH;qrD|>0zDf)@+|~8=du7)&VS=6{s16{?^cwoWW1ziQidrp3VF(wc zXuda^=4aN4$HQ~_Ddswv>6wm)^R&8Btrtayj)&t23or&Yo~s?|$=N7e0-s`bhJ@RQ z(H`uhMHkWZXM?)b`J8Y^TTOYI*wGcZtOnQOuO8IsttJu&Q4)l1q9K%WQKLukM;3<8 z^|UGn-{C*3x=z;tA=hZogD$|$LnYx<3Dk4k)_nko>z%9U-2rSc00ke7<%_9`qzPDg zWO3bX;T(0?il^$5cdT0{iPNSOKB|6vTU!G^mMfaro$I-dySfgO2AwF-W#fR){&mU0 zxIEN-xyr_Tf1)fqbuv2@lbySGlFV&CH8K4rSHbvo#Hi2~V2b6P8UqOr$LkV6x~;zAl`4b)xbamHR41h2`AQ7Qw|hIUg}JEoDqx7v`s1 zU}yl`vpJ3iWAU*c-51-67K^#b+T-2fM9uwXCh=-WNal#G?oW*Ot41;(C=n?0Xs(Au zH?55{Q{JgCl8h}+Pe&)>eR6&~R2&dLI1tngti8}8yJXF|Mb)uCni87&#u)b=K?+Ua zG$E?bMMMNHGpR*wq_^up&$qMY{;((?B!h&wgskbZ&pg_iinRHCEWv`)Xo{Bu|%y<(X@UFK#926&#FnJ%rp}XwTm*&pNmV$`z zqNO%j9omh032$d0n@|N&N@WgpY6A-wDyh8Dt4&|gxE;3>pFUbwYY)a!k>}S^+YZP) zTSyh67(hdDnvDYL_+ePICYKp$uA8A3<02^VIocHP5OBlbsXKO})R6MOK8r4~bT{+y z10fv#N{pT^97GEczI6w2yzY6J;$pd_C3@jDt<3}Bipd)9N0$>IVP(%tuqt)Ff(52t3+vg(81} z8JVL3ubz0kt`(<}7qaN0t3Z%l_w2Ibr254xitpq(oOQIqT15E>)Wm69wCx1x6U8LAr((ksMMwBqYTorMtUf zXru;^E`t!IOAwGwX%OiSk?w}`j{E!eKG(UXfiDtt z%`W}pfUI~5_aKstvs`-=Scu%|)_Y2l#WIQrO}JrZwF@S{9ba_~b``_<>h#v%S0rN! zB5@Dju9=1<)3K#QoJlUF4}Z0vdlo@%yZjBrMV9At1LI|s+Es^}Y94sqe6zx^&axKE z=K>Btb@pHfjOqYPtkKs_C|XTZ4up%rn>meA(G4Mk3(`6)xb{6-K9BofeLMe*WV-whTpv7It4R zpiyk;?_Oi!5;9`CqAn)p@wy$SEHDIo8UKVJ!vpTD)sND4z^m@s_Eob5B z(IG|UagF3pGAA)H{5|;onDUmALFsBpf#22n@mZTlzdFPyWEWj_>fQi6_Q7#VGpbZ~ zSE|$hYL{8`1&G;OoWpWTX+_;CO)zAdmB|M9yHxwq1Tfb8KoV(^*shO^pv|~J_G?fd zy!}%A?J*Gk8)rva)G-)|F?mu3ckM>WMB;cNAPeeP(hGjw3z&9(fLJFRpg%`jpKEMv zV1>ju*9?HqA79J5(VbDFM1-^OY^drdp6s0Wtp@K2H6lGDzj;WRe>^VUnxlO=bt(Pj zMG=+D0D;8mJKux_^#Fd0!KQ~__vG7d5!5cc0?bWF)TkKYDaL-Ol;|Fahn+m|m}(ZW z8+<2yj23u|zPQ`NQ8K<{Vdt@-sO&NRz8LjGwpyD!Pi0MNs!1lX5!%4G$yd0HUP1PH zdE2nU>gRn_&}1tyMHgX=(?%{f*Ai zC(~pAH1w=tT)z$Ks0=O~uY4^?DwI~|Y8D~eT-9>+V_CV2`-mf%w1DFBbtLPnez5}; zWlgjG3`;DP@;Y-l3XP#O;o*TBY{@hS$SOd?s`1MRF(AbAzvOwsV`)Xlh%vITfVQwA zO;6#KL+{G%PTy>POU-u$gxpYa?q`1JvKJOO%eOzYR|L69nRuANEVOH}vb=kRWnk9z zQ6a>5`W7BZyDD-H$6;O4O+4*!M|ANW@D%e@>o1%(5*|sx@S#2Ql`fotmw%R4;?2{& z@r(58#;Q}vg%S@L2+JUO<&He{J5%5J4w4hcC>_^FnG=Q>j61JSuge4*dm`3;er5g0 z=t#C<^s87;^Fy0sy11mzHPnLG-~g&k488ODS^Xgcu^OJ&$&CAyr0~iqlQiSB=cci? z;2OiHI8WGVh{~WA5p)pv=0C8I7qnCP^OBB6&7)LgzeQp;i>BGhbUN+$0CUA&l7RP@ zA5A8Md%BQ)wSDa976gwBUNbD)H7!zBDq&)_qC#D(%bH^Oi^JR=|68s$Y2@Rho=3SV ziNw6Q2oayQ1d$)^-DU|{3)U)jb zaxJ{CSXq1Cld?biq!CbGO0bAg)@-u{si=jgRuB+}b}&yz;z8Q6w{rZ#sBPs2Q=|+C zOWS=0B#O8ElN>LBl|Y%9mtu}+HX+66#=u!9YuF=}E2!K9!~&Va1Lm09IJE|V4zc-w z118H7`|D~MWhyuj`b>987G-_^ge4k#bbD_BB=dITq&)_! z<}2CXyd}cjzi*P0gWmQpH2xN{uCor-d8+>D^hBC#Fwf{*2BY^zRJSHv$G+h?%7sIj zn1`3)G9M%vbInApwqs9$_O|2e+nhvs>y_6R*Mg3G+#%tuxA5@O%({rV--s#8-k#@>nllNM}ymU>rV$H}`VGglLy6e6C$6a%DGvW~?i`_?xEe|G$8 zJ7qQ(qZ=SG+frcD}&shNRJ(^tVl%VgF6)z+x$~0qW1YTd01x{A+f@!hx z6sBp;v%OEAxZiZTcBvGGKnqZdB!r3Q(*KM=SUMq{6k#IFHd#2@TAPyE8AWLfv1=>_uK0O7g1ZthwW@@^XD1bvT5n2Ypf)Q(O`82c!li@ogrEK z3Abt-{p)Nq`W_2YD!0#8ubd~P zRhwNJc_8-;n%@(`Nu*0GKwJ(-PYI)Y=Lg>gpH)_C#x&3@OE+tpQ3rjo9NBDUTV*X{ z);G^5Y#H|?PTGx9dF;~-$gD-whtuk1JeDm+4h|xA@R9pN6f*gQ&cA z_;;2phWlB(TAra&km4h-CHGjxYlE+H3|tP09~>`HVu=hO$peySg=*l^HXP@rM;QPsJDe3HCyJ&r@0-yW972DR4Nf&;sYh{F^Th)z{@fbFL z=FJygXOE63!;`%k;ZCpBN3C$R%`C@^6WoHmsJV1;J7~B$>n%vXc`I&pmggDveO7VtA0nYdNtN<;k$$8yP2Vrf(-^d|WnlO|T^U z`)85PFA3!tzpO_cXuo`qqTI%3v%N9*AFO;68>o2=S7!fB7Zp_2dC(of>+TsEJW&!_ z>S1=A*a?qZ`?!a-AJrJeK_#$Jf0^ATcOOmi<&<^CVcuoUGggYC-q766E4gsZ$xly7 z*DWgfUYOFg$9PV2+Y`5OH`VE}I78n#I^F->`;(B;oKx`W`|hB&Q41LYVfLrB!2$(t zn>y-)^=&~0f|KUNI%M4O$d#$SAB5{#cJ(g^$x(*?=yC68?{hqGhw5 z7%zJ%ZSxj%RAA_|M+I)>V#eJkBmsXQ%vmku$Cm;IeLa&=X_b=+Pdgp;jopyMDZLE6 z4_M4_QOtYl7g+4TB+xs!T4Wmx-$u=>2dR9tV87Y2el?}2e`(7&<9GPTZezgJkG~%; zbM#HLhX@wVng?g$eli>9FC@9j&$IAt0Vi*IH$58Xz1Iv+(jRva8uYOBce9I}n-*42v#XYOfQN6Q6#by1IPN3sgYP6} z1kzopsu1ay-4D?{&&*Pf#;oz)NNvMF=P#iK#&d0_YmUDB9(1jIQa7hO#aQKt63BCl zx<`M&G>RNWZrHySL6_OlMOEIuqWP&+oz5Js289oP@K#;7A%>6Hrr%W^r5$k{BkKBr zN^j&$C(-~jV~(|qG4*(R3}$wn=UJPkJ&y3 z+IzpSMT`UDp*FgS7ryn2o~!AU2P;jZR{z6Ks%rRN+?!Ngga3>!+nCTD6%2IQ4vr^R zqbA)ZtbCy19I_8m^>mJ>JSc;*vJCP})RU6((_x-hf0Sng&qFs#M_l_E2+ws~UfzF} z6L3|uuTwZtA2?NH{dZ2gNQS6k;kl;cep!^0am5`!U6tgyH1>)QK37PPK7so*l(Q=G zfVb)Fmnra|c|Y|=%8W?Z>vVi>vguKvATpI-?K8DAtAuun5KgC74{jLZKl5KG;O!{r z?}IS`Cf1Msz6+CbC7mW0o7p!)CDSaD^?c7m8+rB8_YW1GY1G#sa$r_~ZD)8S$Rdxk9<3HpbiVd6yL1#JR)>AI z^tCp+|8(7BxV+Lj>XNukk)adIQ;d%(c$C%oL2XKxkj$Yn5wPE}lE$ zUc*eCJ3;!9VEdg9^S87cQX31AdjPXG9TB=+RpX{?*7oyj>exq1dEG(Pwn6f>j8|V? z`K`aupF1-8WPS9aoCv|I6Vvs^w=>5-F>v4YVmewV_om0i#UuznF(gDw`DrMNYNx)v z8Jt&idClFt=hKOqQY#6Ea;Ni#@`0Uz5n~CiVUdyoQi~x{;QbY7>)&Uc%)yJZ{ji4l znWYiPOL-$Pk z=GVurBmnMVaw42xxLo+Wo?0jsybXKBSTRXc>)O|LRwqke$%&WaSGklGJ6FsHyn-Wj2#9^Mky(pbz}N*nqVAhO23_!p-M>9 zh~%U)l3TT|>sb)`Q^!ySv`N(m|S96FR-Wn|;RBA+D7Xe9X{hLv2$t@oFD zME*jdA{}&1VQA4RJ5!S>ZC+pSQkB3S!ePho%zBWq?wO^=SQ`E$ad6=?lg5QOGC!b{ zGUAh&as}OkHj__P5}aCyK9l5XR)(&~?tt{d`zlJPTKd2G=T|_+!g2I2Nj;tT+uxTp?JJm0V42rY;su!D6XY=N4 zJ%h>lDKJj~&eQ@RR>ZGl+<2}JI)h2|8c%_3Sgv-Jm7qVNTCE6sN+MUyJUVD1I?SJo zcs4|h^}RK(v@r=VyI)C?w;&{v3%c~RLrTwC8r90&2mcQE?;>mzz|pH^sdNn|?z1cx z>gfESys=;b!`G^qM!+c<=NqdFoTa?l4Qpx}e6QXRjvpUZa>tKDgww(=O~9JWaoKbs z*flAtpR(ei#Y5lP&nz~jBIhN~Jga`J9q!0(yhOo-w*Zm3JiHU|buUlv^MvWi*p;9y z+BKifi=FBpD7uyi!+c!GBhOe!LS$!do`6m)YcqZeKtfuaxX6W+I`^Huw!qDUlnPWyPqoUa|a-82gvB z8GN1+J$#k6>ZZkK8sz&W`|QW#ix-lhtJdLfmiV?<5n1o$79bayK)w%FK^-jJJULYJ zI_aJ8!4nWDxssc#U+$Vee>8`LfmqkeFP@MS;gPV z>j)!A$S-Th-k3b4IT zG$g~h=KFXpr0fUe74b%){K(b(7Xwu(3;+X201djK{`(JIej_uHRwzw zfl6q=>hYVq?2G`Q$U0mfQ4l7;*1I?) z#yXGjylvZ7BIdZOrSHtRM!Zqh98g;mLV~@-x0!!+JzcU8{zNId!0h4NmjhE)<~*vj zWx6TN%gjO_tL>(1o~Q{gKqeaf8$m?gIB~LO?&I1#$QU7k8T-Qgk4lTnmx{Cjgtp{? zfl`40j$r})@UL@c@9cUt+fw#^HGsmCAzW{vB?QCN*=h+Tnmlngi{kvRAZVTMG}r9lj-b6-x_(v2EB^bGvbW}#@@m!jutoQjoHT1*p;6g1bkSuhoC;ee{^V6n=UL*56iX2< z0nUir>+BVi$e-ic3BOl0XP9wqe4GU8=8+F4f@?bmj1PMB%3b^HD33$2<4?w1ylI@3 zNS-E@o|G~6js}(z+Snak79pmLn4)Z*bkjI|CL!6bBb>hx&B)8y0Kvf3#;w zYEu@f_qc{&BOzK)_npAy_wOTKXo+}NG&EW=CF8)WGunEtYA=TV5sFATK}Lh$(j=rz z1+km{?Omu)ceE`gGvht--GB$}sO0?ko{44prkg&b+Vm=Z$um{)rxf}leihZaXR+*f zPjgNps?~|QI8mRXqo~m7`V51F_Udi!3o`a6ifZ3V-|LN0kl?JctTDB?7?GKAR*8Oz zalI@uGJ`)#dyx6<$@RHgTrXATTc_r#5|!M=mb*?#Z6ro>ot-m(C63@1xSwmfnZXhc4Nt!w&>md$Me?Ooj1QKD5W_VYZg~Z6vEKyEu|OzuIyAUt z0)1y_Ia>Q!@7P8X_VgM*UcpHzyek|rvXXz(ujqUS{`~>ryS)xekD*{!bY3UTswZ0O zF8UajpawDQc>6!3oD4i>!!nAoScEVd|F0Zrlcr};sxKn>mexoG!)fwhWEs|u<)+%s zAym0G{05amy{s+L<4OyQw{y2r<)@6om5*3grtSW-5kX0@)@6WnY&}p3CpWkWjikeW z5=!!_ANls@K}^_QzL-c@%EEGTS|7(Nk|%(IQhv|alYKS*yBe%HIVkC+W+&Th%pWMR zy?9pNiB6k^CLk{cxva_UD%2W5jgk=k2&X&G2U|182)n>#w-hg4;q7z}5d|}MI>XSP zzmFn7QqfRI>Mf^w-49l+<-zQkr0(*6P&3Z!3>=ORep4p z(-2c83s4CxGVZ@V@_EUww@{N5I`y#fCOqoeAVzn0FhVea|3X-@aj5NIr2iiJP*gyS z3DK-K=eJ*PLCwNR^uEAYBGo+aUNUlwHQrV`5c>~!TWU7tr%H2toX8xJQH%XY#v}I- z^#ZC78*DkOFUVC9SU5*jl>WYTie9sWEmp5DRp)9QvsH@~1KY3a2qt9PNpO@~)t;LS zj*!@X^6!fJ@BIxf>?dsYJ6>h&mI5n~rIG!9N&h&_mB>4u!7?i=9HF<}7Mi?A(#1DV zzGUyP&QYNs9Qk+r7})8Lceb$#PtS=r%&*Fl5#59|I_5)lfZzSiS! ze}W(8+A4EgHS}9lq$av-Dd%e^40{-dYCic_!SaC;+-5`5-j|%jo;7smmGfwH6cS2U@#@Cg^JpTVtZhTIBGWfvS>*-S6m+N z(TEiI%d&$mzysdqO|uwn269QSc#fnM*A=Hn%M;vYKP1n`l0ttf=V;L{uN3Vh|KPZ> z$uiU8L_OPoZ}gmCu%^95Mw9{|kMynA)_tY8_>e&DBo7%!>H_!vl%EV2kxC=QKTSZ5 z&v$%q*0Hlv8ola$_B5Y@ZFX6$Nt(@kS2>^6bou)0S`S=EKsB*VO8=hwp5=46$8FBy ze-8sesdXu0!>^KF71T_h+m)DXaeyK6^uF7G$;C{JzS$i?Wwjnl+xuPKtuON)8_{@9 zc+ZDx=>PX|>AHjd2P1*>@K85W>Nbge9uU}-cgkHqYDL%D!SxSS8c|iUDR}$tEDOCnU9kuI@PEN}f!*{ot6!g9+m36ZJU)PNkTx+dI z8Uq9{2d}!(Oy`k@be|OeCn4fTsgW?H0Qm#0v_{@DmCf_4tC$#Y{6`Q09%50{zd-52 z$PkyT3L^zYKd|1%smJdNmSr#f3&p>Yazm|Cq8g(Q(V;H()Hd?_%-vY5F8=e7fA=#0 zn?`L#RRZ$zbE2fKtXOhh%Kcf7?-a5xopZ^I9Y(mn3t7J58VNm!raP1q0uy$#UBh zLpVplyGw5oUc+MrpY$pOrNTR3qrhoRQQ>Bb4(lQK-wV+tjP5CK&|xFOI9Di|u}8K+ zIfRfZTV(7YHOsWz%6K03;bY%q4=&Sx@JmX0Rdui=BQ~XA1JEdIpCY5PT%9v9`%vqc z;tFgu#@%aP>n|Bbnpk%g2iHd?Al7ZqT5&+nM`g&3SAFfmy-YeNsb4# zP}VqCTK@YM0xvT?{MPUU;t!MMt~lw7BV`{39uQ(hDPZ+XZuSt&Q`v#V zR8&{B<;VY=QEbSEtfosquQ&nv4CT?XTv*W`FEr~Ri%;MG9om@fdz^~WUXWt;KllT5!bSHGgCsrP0 zB7k^R?~pyX2MmKUUA88l>w9krc!H*K1>P4Bv@VSbsqqAm(F*W0Pq_d5bC+qd9xGdh zgG{xaEC=!WY(pK&s_4$6hlHPWz7}5|j;OESD|qyu*R3ApLsHWN!0K#&+u&O0JNOtY z5sv~f0BI|cD(+qVv+K0Z2DBW?joR;^oZJ1~2ao$RMNNNxelC4++H&o*(sTRxSE1HZ zeUMdU0x<&u84%$VDplKSGuR;;7PE%;(5WrhTId3>*h#5>OjddlTN=VhDxZxufNI(y zZ0ozY_whJi)>;T>h2NEzR)d%8xbfyRaLx{hd|ksjS*S5lY5DYxEyyTP9e0-5fSzPZ zETk#K=4A-KJ+_(oCNRBTZrmAD+89|Hax+`&xFmm3r&Od;V+=Y7)wX!Z>#Nc` zN56-HhJJB8|NQnPQ2OkExCH21p;d+w@a1QjV#O9oxpc>qtby>u922gSXVm`2jef1d z2QVSCAira)n(~=#D!~3dfUM!@p0c;@1h8cH2C}Gw{k4G|%DL1gfzD{^HBcT8086VG zcYri_hx&K|H~NaTSs;jVy8+6I^+Z5yeF5e-FY7%V2P}Lw8-6w2?(G0+8(W_8Iwk|I zwrPU4X`E&%4Eg{@6qoJT-1}1UeG=Z*O$Tm@xq1*r<_Xf;yym9?!{%wGfveksR44%_ zBa6W;i#Ojhno3}QwJ)7qSS`Id_1M|A*xHAG)4hkBQ+w1J*eaQKMSu0b@r#VJX4+uO z@@N?|?RC)y$!ia)E5VGpI*Y*+v5`}~2L^^-(bPi6kKf)~NMwK7QGEpdf}eqs(s+dK zddUZwPbp?k1C<0~$z~daUt|q!Pb^(>fu6)xreg=CwCObY67>?et$uiej4<0XFhib@ z&CmAxR@9kjte2xmWZ#8kaQhWb#3Z)s3(T-NxuzvOzRe}y)C0O~^4rxb)E}!Aa~~&) z$^PD|rCFmotRRsMZ2%MgpNrC>%`1%{i%c|Q!S%&WBjxvZS?{0}5V{)+g!{SP(xx`r z69{t&tm_X(sd~0V7B6M)q)&`2E)B!k<-q`_rvt_W_$F3Z13;?P1W$w7gSL#DfjOa5 zOTZCI(c*hF4O_(2G}hmbij6X#-4*{>v=`+y2d84t$@0ZzZ4DzJ$guZu+mz^G#C?bx zFErzlV9qaZUK+Ri96QoNjWbW1!Q>=}$qvm%R4^WncJ9Ai_aG?v_3W1DBv`zq&oJa^VyYle*>Of_zsYAVfzSCF?#FmE>QVk zZNLY_;2Nw|c<19s@GA#!Vs(aB`Vmn9b-Z|!dL2Hd7pBdDw~y-_r>li=sReuWvyaK| zX}}(#w^n^3uz}T13!zId(p}2T$v6=CQ6r}TPv`|8o8zb#KfdTUd~*lr-_7q~S-Y~LB9t-fSn8o<`T33NnrUSUBOz)x z1ruJpRvt}5YJ^Z1y;;CoFa_d zd`N%j`kA6AF$GN{YE=dm*ibis+f=P4feJ1_DfV&!KBozw4_;=48ud1d&&xoV@%X1M zpWEgu?`foxH=ZnAVRizg$L$eqZ6kjBmcT)w&{O8RS<;uf4529#d?-mE1*h)3M6Lg1 zxUukw;su^%h3V7trU&NXAryFT8g}0HgiP7<^BM8KFbWUfA_#M@DQDk;r*UkM$TvE? zPQl8=CV+EXoJKQTN?83WrY)=Ztoco0rsVJIR2DW+@uV))#H9}wJ}39ssFM8{`D6f# zbm9HhNi&aq-x&5dDPLL;?pZknUhGk`$k}p&ZNsXnF32Plf2sFv42g?L%f=B!fDs&o z7~!^)I^Mzgs+vCQwZX}oM#8&F&8tn0()V#bp6Q56EVMJ$#QuC|cmbl4VUNGYgk)@_ zsL&uRYkJwmefofxbSCAijo#@h1!s7p;-KI!gknhiv+uG7F#ZDUYavu9Bn4jBk-~!L z(OJ8H?EHXu&4tN)n9o_rl4Zn@Q_gedO-KJ3zxq}(HN$*f0n8W;ti^3Cv74Qn>j5r= zj2ROr&6TMu%E9F>LQw{0CBTEywSrKc{NJaRqnl)F8s_pDPSNUe)kkO;7(stfiH#lR zEml6~Cp-2VVF9H%t5Q_O47g@0I6~*m?`}K2P2y1$H8+6I0+?W52nO;o;7cFzzuVY`Z%jOv!FRPtjDN+z~~|l#&-!5=@&By(9C^ zYBCHP^FxRfR}_=OyvJke%!jV!YdLv_Mh<4x%Aa`BG2sJ^*GJr=&cP%hB8c)Z!Qrzv!ql2A*$I9mb&1?u}#dTVQz{xQluzq|Cc}jLdr6wGj8a0P@ zb!(_MoTAglI*?zjFBw1MbK&>%rpfFCiSAX z7Sj=K?ZV-h&#??!Xo7EWZ4s3VI%xPEWxp0fB5lBWXQwMiDjRy{E2zE*u*4lW?RT*?*2tc5{Cl%vpt{VvMp7m8l8cWKP+t`St(i_e?8jf*1!Vi;)(c|i z*nC3>@U;m`TLxG-&|jo<{uc71UuRf8?IdKwK46^WffBA(p^`XzRZ0r^6$YN83SyW# zp`ypAqQ34~x@(x}?6&c6rAgpni8jwu)p^ddH0$CrR))FYBqFXkaU*s8yIUDK4?Q6nrbFP$`-UcymVjP~7(?O( zFAz!jjISa(m4(I3E%r!&VVBN!k&Y5+$${UDygx=L@h5bXurKA?khV0L1$`P$u;3!W zaJ{GV1#KXLic*C=y)`V+m)CHi_Z4OGn{2>Kn$^|sY9!_9#XGL3z4dbM|f&t{Qy zx;2l5`2y+Mk0yIgil*>q&2N15D`eZk|8yphTl*nTSCmQTjS&3TPv=EyL>c^RPfzqk zjv32Alx6CnPlUbP;>Gp>rGWT|g0mi1M!mWR^teP*zv?2d5>i7_x52Og@1?NRG z_xYTjfHzAI;1NzTDMYOSk46_Xc=wFkRNhzF8WGA5ioI`d!d=9y89ex~C0bFS?{{YU zCAB5zLwp^yt>s3@ooM8XDHgiAPrXJ*|1_f>uBYc|Pfl|0=BJk%;cAc%W5IW^9gNAO zl>_d~Lfk5}$$Du%Z8*QF-^Il9lx8AS^I%e_XvSscSE@fVuI7>cVH8^LFxN}mBBIr; zT=N>S{q*m>2b$OD2_X{l0_vA{`FT=YDO4D^)DGf8K0g&pv<@DruOZoeVt7Ze%wYGb zsZu)qRcAa>Q0AX@1k4ZhpYeQSOO(x){7qU{T3<*H3X==bw}1E)^!(Z^J2z}O(BlG|&WqA0MK#Z5rrty4NKo^Ug0GcDZ=|ANrJieGxb{oH zsgt_G^w;-FXPx#g+YMXP`YDL&R!}$h#(ak2D@>==6EEh~w8gSlA+%KG7FitV3#j<0 zn7MMjM(VP|Yv%7-?t{&isj!S)&Wx;DwfRl+$Nht4Ri_;t=jC!X)*mk$ixd41i#YMV zu&vnkbX!}`pcXZ6Q0*(_s$<_#fQfzRSWO~4j6(2~1cz4?tgt)9=|prW?>>|{9x)?# zlFXm-oo_;;4j*7)?_J*r85`K-$}1%akCh6Pd+8>#+rrD*Q`+MQ0X2omaNySdp?PG^ zO@Pw=WpboxM|`Gcy&{_DYF^%B{TSI?9dKx*G&n&y=oGv!!%wNw+JzIJ8eImk-G+M6cOdMZ>KJ3lCw%&QNQ~&p6Q%6WOtS5SjkeMD zSaIdrSZmxT<AC)UlUD@fE}FLZ$yKZqXklr zexCpf0D(l}J$EQcg5;5m9n)@~(A@a63|F7DonCfu6f-`HBE#9IjM7G+7TyLu2c_AF z^_b1sIEp5M#-yRALaC+|h2y2%56Fqxdg1Nc_-uC_D$;6=>qM%`6GUk(OUcoHX$*Yfw~PV@?>r#a7h4Ipbt{6H;l zGqXI&(1@!wavN&Urxynh3)gFe5gq($)Js;tch1sB`%&(F&8-lNpU z844Lv_)IN(aM;oSF;@jVkMWQ6)UEeSUk-q1d|5U@F+nhdB%Uw+Agp{D!B~ZcgML;E z)F>;!%C&rM=o7L8yOH|*4ny)?kuX%i*TszQJM31uAl5eQvy>Wt2NpKM8-Z-OTen#M zD9K4b!=_V0k3bs4?^I@rDJ&beTw-iPo3Yp<1taQZmY<{SQZZ`FZQeIZ*3cVWA@7cG z8!VCsVr2oqp*nL}`a@AMZUNgVr&Gx^j&=@+`TfC~lY_6~NCWEC6I*##V$=A#$mI;? zdFEI$87@|SDG;z%F?o;geGo&VyTiv=rL+jCQ^iR|>KY;9R1j?a<@lAG4~+mT z0xW+B@h!B?je$59Kp#kR9_C z6t@7{HJXto)lXr;KuJhYyyRm_gJ|{-k*3+_11TV6Q39=G>nqKJ+Ep}^f;0>|uJNoV()kX(;izl%B(?X3< z3Gldq4v=*Oem9S7Nbdk4{`o@z1{t25pod*|@taw=$Hpm zGm4rnUT&3JyLr&_N_v8ZOblH@#6h*`+Da7{s`Y0KF$!&}kyu6>xD~LQ^uqwr(UvMs z!2|s|5S0B@6O+6W+hoJEblzuQ=UddzV*N1`+d&&l*+w+$MtRTUM`)Aq0$#H8?FGE- zhnX5-B>m=uu0h39^mcfb1$uSWyVZTi+>Mt;SG+X@nC$#=xcay)(39S3CV5>PqvorM z8br#2pYOGA_lF(w63W)lxS43Ms-nBboe5_+_)o*-h|xGIX16bi-xD z;$0Ei;ukTw<6giphDL++; zARbAs%U+82X7KE1zX3yt%c?d$1`W&4&gle5UnogAH(Zg|LRvF}#{&-IEqza9fLt{s zpj@Ca*LPZ(q56P0ZsWFK7}Pwa_2uOhF`PHKb7!ajp+}? z#bAPjqLH^qT~O{?N}90-SI@ePs9uk7?nx^*H^Aqa{OWZLiKP~In$KeDYm5tuYSk;D zcJnT#&Cr&BcS=$pZ$Cls%e;WSK;AjWUPLSSXfM;g@Eg-U=Hp(#DZkD5U^S&ohhybK zD5M4ZS`;ZBymT7xP)q_P){b$I$*gnFFZ%AL)m?xQRV%qGrxTcZ5JVtBSSiwLqw~$h zvV4xJQGqQZi1L1wmIE_L%-MFgk~a=Y?Zy^fgLuC8>y;CqdReKgEx{8OjcK;MulMkx z%Qfn+;jl8ajRvvzaiJ2|LII`vlw`)`N8+ofp7zaCHwT1vNA!aFQ<7Zexu2m%i`ZiE zieyLi+{D{v+&-Wu!PLimR7tZ=3dN@d8L1+Qr3Mn)gZmn-``r!xF7IswPV?c}s zy>o0n!H6dE4Ohp@6FkRgB!dRM))f`Tuf-LoixIBfP)XzOe*HZ3D=&dGa;S7ruu>EB zQPisFN|lQm2k!>He_baV(r?c3v!~+BAY?dXd2!_PM2ME6@WHj9Z=}tX?>&cH@r&55 zEBk@x#3WL3sL2Sd0@}upD0o&7Pn$F766}rf$ajGH0Tp&QcF<$1z;({J&9beQstDpIz0hV^ z4MV$LPQ~3lrE(lNybX!9?Lu2+P*Hy0;`j%lB4ac{?DMg>X7LUKevC76g+}F-MJO=l zPp~3IDs)YNy_fAyc8l!RS& zX%98d)N+e37Px=^tW~}yM@08WwV@yP(Ro9qR7fcJ(IGlZTW`^V!^D}<4{(C8%&=%= zD4XuTEVh}Oq@3TwMmz|ZfQ0(_uzb;{*Ejzqj8eFH@pmMKm2l&`!Ed|t z(#}C=7;wxqMkroRAGQSbX}1B@f<9q5Ma%#pEmT$55E)uycrJo7MdN*~a3xb5tIeqeMQYe~9lAH1H9a1xIL(HHQX*1XZB)N~7!?{{y z(|kS#orPWvmLlynXRr1FPQ^6Ofgy1lLz>|53rLH?MQU{05p4KWcu2vbbhltZw=~q| z{d$jex4nuAEmdL}PMpV0N|nGo_s6u9`fb{V?~H^qQ0A2Njn?p=Hq_s)0K{$kOsYC& zzxdFoNn9y?STPb90B=JNeEx%w21=xTe=<;(1LGWca=|PF$7AIqE&`xZy@LS`G}+94 zLNo+n;=al{wf25Yr(8qir`y7kRFk*$kqmuE@L>>h%Y;+9B`CfN5-=hJ0o{`>WY@ZH>Hg1F+IDvcPJ)Q!|A>IVAuowhp&4dx7jrB zNU`t{H5G=OMY|Saf9G8ADKXlTIP&|?>=03fZ>qC;xy3ij;^N_eE7osHKKGp<^g>-E(_HTErq zc`-H!>yIrO0f;7(+zlA~q1^9WRlA1-n#ZBl^0yi`<3Sko#6zV|inqi9S40?iU}zXb zW^6+WDpm4|gNi!g?>1tYdkf)#J+*}k)um@JAIXa=OUh~9uX%VXOL?@A(;s$*g2ZT) zS6aOl7gX9P`rehDv{;P1~sJcpkr7$$7hf&mwf_*>37)rV-_+^pa5czbuRH!~_I%CFP?n@IB3*H^zWT?iQ#Dzrfvl0Aj!INRYS2ltjFIrr@-BF%>Za4Paja@6caHQPWj7VnHct>jJ-?mA{T z+A_H&3`r|0zz{}+cGM9=Yb_vHkl5GDyDt-$1p6{k0(Z6*SNPi_wm?A-WL{R?@homq zs`jMI#fDAoJ_sJE8PLg-&W8)f%MEqwxzCs$Y^Qv^mU5EE6k;zh2x~jQ zw2b^2JO{K9k3I#+I!)gHoO$ZFzex`Vl^V^%v31S+DSieFcq7092pJlmi zPqQ;)-8PO_I#-QewrRl?bXrz)Py3H>MFS#(!ky3+f4>Yz!yv>Uj=;Iv2b1Kf=HW)} zsx7b^A3h&=M=DLmsePBfrp$i2#!))x{zL>NQpqTs9xJDF=PNI;$m2C*SB5FxjmXBq zU|S)&6c|L>OjdULncoVE+QgDx8FGCMGi1ib z>|R!3eDqxu0hO{+9Fb~~p2W43QIzj)!mkFC(`*(VBs-rKs1`z88g^T7&|W7ytc)wr z zKfMstr^B((E9pS__`tvx`*y*+V=*N`WxlEn6cMh zZ@@NXzQzFVV3uPqo|GA;$pA9F>0~e(cu#t3c5gqB-BU$bDKo|31-cQ zrSM+`pPv74mEW2lRVc76`YCBOrDNtrnSX!ep|*MbAA<{ps-hKr(f)AKJMOFZKYe|p zh@^nkqeIXUgmj4Fot~K~XBmAqY?0Wjvp$;s*^ROj?QB;A|Ffbw?Wu;9(+>wmy3Y!g zyz^3s*yI<>?_w;`?UK)=fARe`$?T@Kd*-~ByX$zrABSjcCzr{o)#KQ?Rb)%*d zMGAi%OI`OITi{-!S?4 z^XJRMnCfZ!I+-=Vl$_WXploJNoP-%j^dI|vE-b`tP}y(liu_P;k8M^a_T|ex?)|Z@ zgenjm=Wna`bf?d1BV?#2XZ&IyU1*@%evYnM0ZSS;HfAL{F2dD7`w?lB60$=G0s{%> zmr}RT4lp9sVk=#=pHga5WrnXe7qQf$Y$*NTS!?GBvGT&4A6B>ixVQbW;sZg0Ra%ya+zjl(gQt7Fnmy~F%@+pd(=`DKj=TMXQQJP=eE+9f) zs$BFz@{X;vdp$q-7yxsABh?YbH$ibo4HZ=wm0iQp3vPqA#lj4k?j~uEpBa3mu+%+z zG98tNX*@MteGS&CDc1H(<=*bVvY%xK56%iiXpIR2Zb4uU?1-`d)7+KEL*2FgF?fVz zk2_hiZ#BqPvZb<g5Bz5p|p$mEAoJUx1Pdi;IMP2wTmy`m+Lw|x)0 z%&o&6bh(ncM@PL-DAa*)lF@(|QJOP+a{XcW->Sez;qD z1(?cj%;)xS+Ehl%k}=Diqk_LaN$L$4cW?2gYMs`r-HT>EbxSsqjPNlmKyzpHPmiFoWVwT)o$pVi9c>M>t{!B?r z6AU<|NPni+gG;?Z05#1ncynazr%jCSp!I`jyM1By74YdRko~QN37j_hNuW$JI8JkG z!T~Nh$e-}x3W4{m-vF)^#AbLr0T0x!v?PixM_z(4dHV-;Z25He+2~$2O(D0Yyyv#W zNXgx%DPKs)dJcUMSiL1x2!inz^!DqPCx+e^1gnb)Axs*US2M|tCL&U*Rx;V5)_wQs zxu3b_=vTVaCuH@e2JN_;t3kEXeeosmBB3F*5`kuFr*#=XXnN~lb@XF9UyhTc-dkL- z6v&pMQ?G?4+|Eo7``FgdgqgP%NCGjm6!rv5CzWi2_x)-b?g&5|qx2*j15kY@P~6aj zIW2b#gSOwgT(pvnN_bsMd;7)=ceAkhrSK7M&&Y3ax_Vhs96WctUiZX((9U+l73B#O zl3q20-um9MyF$hzc7;6>m`9>z1n}aFjEyN^KgN~-;{_h;MaQT~=`zk@3)aBK+EL$c zXUV|%BM_FD73*}0w((uVQp_a~0aNo$#+TQ%iYBMj#;mf-p$TD4^h*H<-5gi37S?Jp zx#A3KuaVb(Ce!KOTS%C+UB|}_>I&vwiBv-Qie`z1OuKh;Io=y7)y;mT_%uu#0%Z%) z+NCQTJ^WMcM3!5PNm|Ci!K`>7^6)|ha#3rywCxr$D9t+g*?MG1C1)h--7;V2M{mFi z@+fROX3S9R`?OF@h_cMhu2K!stI#^JSscP9o2h?j@22YPGD12E z3J=l3F&+>1-z1`~paCD-5`^SQ2WjQ)%|+sGhlFL zDACXvS+d%VtJr2ExnS>!JoIx04Q|_?6Zsr%IN2oNOM`Jzrsj7+{GP>+;dA-UKX|DM z=AluDR7T8jEG^Bkhg#t8iQ3rXG{@HYXhI+DvM8y90uiPT{rqD>_jV#h2Z0_wx-d?; z@PD5WRS!o#(0Qi5H$$vmV5K~|g9$kxI8eq^yuJ_->TT(`?U z*EW^f-ek*ukMZ3ks?iC>UV-X!$~{k-5iP)v?)Y+URpb|uf{`gin$6oq3^q%6AM`OT z(1YQ;pj9Hu6AyW)#R$bR(y__Cl8aoYIZCt1Lyskgv#5?eJ!+&A6ksYIC5)yhGJwLB zC(@84RDx z@lw~r?UZv@qZ*#I{dMUdRCL(pSpa;9d9y*ztyQdpTL0r}b9T;fo|opR<41UR@d3OE zUFmre*R7L12NPL~5{9g*%hSUB=h6juq8;EelE}eAN$&v6- ztiOz;&GwNvX}yI}Fb|`8Gbi`4!p_{aSlI~+H)LYv3}im-@lX; zREP4Mv&KEqJ(c@z6{nPX(J?G06_=R!?AGn^d3(wIhihf3a?K{r_?5lHFF0)!ZSLoL zv8FOo(w`R>W%-mG!nvpCcGkN^n1^8EF}xB~9J&NBG$gV3lg7{umJeQYsR8)n<>dYW zrJ=g|X#a^7MwoTX8`Uwy^?$PRJ8>vDMuv^dPeS?ZZn$wavy`@SM&^8!s~I1ui>5YE z$d7RXqd!(qmUA{cFSqp5>-v)1@{V9pYZK)+`tzw`CQeQjV}4=BJBr_RJmK&ZVPded z?SOb{1QKGD6&qcK8RzP{t1Pj%KXjn{ION9+FS}erMI0K*$dvqA)vUat5a(%jk_t&r z63`9k=5y~74c|T{ZwTz}rBoe=uy@C?$g~u#rZdAAKfWU{D-576E4HUUL_g=9ZP33z zeqs4_r)u1T%2rcDeuNi!eD}?qE+K6{%;XNK?jPm>y5g%3$G+b-&TNd|3sdBna7MjN~s^%S(eBo13o9y%_#lHgoGjc3 zJ#Rpx#&ka$?`He+m)PYV4rq+tbdGe7DBjb)Ku#w*=3XW+ZQe@@a4wiR{ypYw{HO5C^>l<@5B7sHFhDTRQi&u|{Ey*DFj zgCBW58MnAYFL>9|-SnU?8bqStq*mcZ7^s3@)BA6Uds8)gBZR%qTdTe#oIH6=)5<~Y zs!n;%U=qEDr)O??`NgGpK*Rk(B)sNKF<%Abl63_*gmV#muQbfC%>OpfpN4a_+p9gu zUkIrgs7G3i2*Pw4)=$auP>f_3E8Wh0mBJu5uNR1S_r^*I2yPg&w8U`d;ky4fKeaJ( zX|8oy&p^&yM=>$6AGx~Gr<~IO34N40U$?zBXM;7^Q%m5ex@OvDxK~9UMBjR(LWq~&s`ze^>(O=@!%CQR^f)|0~Wijx*9sws_^C)lbZ;o%S zo})MpVVdU`V0vM>z%>2z8uXpADTc|jpiQT5JnpLU=U%-`G)irt4)0MTRe?l zTY5P>RYtva9$DJjE={?_2qNGWm(GJ&olI+D-Ufz-^=nQ7bdPBXtzOKV|D>2YOb1ZB zM69X7w5@uk--sRolkb08Z$~jc(byELT43b`HH{7pb_UktGZu@z-%skiJSkmW7=jE2 zfrpOhwgcTtt!R^sRAzAw5@^o@;Ag*cIP|J$E}$;Oc9pRG zt7*Fw`Z~`~V=LCB7PN1hf;_Xq;!Akir*gWCi2}A0yH>5}v&XQdZ}^XaC!Uv@ZDRSA zC~7Q&0{|c$eGLlljvr5}D(_H6KW~)*)Ug1?lbatsB^%RSTR; zvKvxS`x)w#ja4F~2747`wjErwuUDl~V9Yr{G|I2M7@^0J_P=>5TedGJLb8jmKHc`m z8~1v(h7y&lyl#3RClpHV2ezNty;twQ>uvtBUj@swd~?=+6unTl-B9u86>4s=L4bP@ zRa}yAcdT-}hHk(;2ZHSFf+}F=g7@YxTPc=~{!8;m+kV}eA)`xt45QJ%?iTk8MA?lg z?tbziPrP~HrG2%`&WDR3lJiKsWq^3&PUYqCWzW>sSRRtZY#I8$3%+pFe62Ac?UFd+ zS7ZQRc-feEUasQjvn;oWqB%>i=B0Y__CQt1OiC3QPueB*5sQ3sSt`wtvXyN$J{Qj= z{LY)g9dZ2S9ejCTp0_X6RTEIc%H>Jg0;;1s%0GuJX|1u}rx``y124Ljx7&m_73zg$ z1nr#a!%jq=P2^~9Ho=xGj0BWg-LE2z+90fI)ZElIPg89$+^7H_b>HOG*@vkg3?%x( z89WTbA5hvuGzDt^z;P&7U~$wOk%q2n)gA~G zQa>kFQfA?!B#}zLV$XnX`9mQ#!e56F^}l?{+eFz<)?=h1sI>+9&A(#c#2;8s4)y}& z_gxWKEX}~8f4TZd7gx$mW5QDZq{FR+7{#U;Kfm{Z`ftBW!dBDVof`?BeHQA!j?8lr zFwY8}mje6wa{J<9hyTUz2+Y1+5yy>xtS7lMdEz*Ae;q{mBPIoo$ld1GtMX@m(`*P$ zJ>snu9qy~{w7 z+I)SAWcQ1RqZ&qG059iu8U#X>X#lrw2+6V+@!d`SHx2#;(1<%^gdCZ2p}z+$j+gqn z5E}}Nh?YY-$kB|DO-~b~*ZIy{f=M(*X2UN5`I`=gLa6csk From 52c0b931674ec13e78c8370dbd9cec6c1bcbb10f Mon Sep 17 00:00:00 2001 From: gspetro Date: Wed, 16 Nov 2022 16:44:16 -0500 Subject: [PATCH 54/63] BuildSRW edits --- docs/UsersGuide/source/BuildSRW.rst | 33 +++++++++++++---------------- 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/docs/UsersGuide/source/BuildSRW.rst b/docs/UsersGuide/source/BuildSRW.rst index 3d0793ded1..e29a470ec6 100644 --- a/docs/UsersGuide/source/BuildSRW.rst +++ b/docs/UsersGuide/source/BuildSRW.rst @@ -36,12 +36,12 @@ Install the Prerequisite Software Stack Currently, installation of the prerequisite software stack is supported via HPC-Stack. :term:`HPC-Stack` is a repository that provides a unified, shell script-based system to build the software stack required for `UFS `__ applications such as the SRW App. .. Attention:: - Skip the HPC-Stack installation if working on a `Level 1 system `_ (e.g., Cheyenne, Hera, Orion, NOAA Cloud). + Skip the HPC-Stack installation if working on a `Level 1 system `__ (e.g., Cheyenne, Hera, Orion, NOAA Cloud), and :ref:`continue to the next section `. Background ---------------- -The UFS Weather Model draws on over 50 code libraries to run its applications. These libraries range from libraries developed in-house at NOAA (e.g., NCEPLIBS, FMS) to libraries developed by NOAA's partners (e.g., PIO, ESMF) to truly third party libraries (e.g., NETCDF). Individual installation of these libraries is not practical, so the `HPC-Stack `__ was developed as a central installation system to ensure that the infrastructure environment across multiple platforms is as similar as possible. Installation of the HPC-Stack is required to run the SRW App. +The UFS Weather Model draws on over 50 code libraries to run its applications. These libraries range from libraries developed in-house at NOAA (e.g., NCEPLIBS, FMS) to libraries developed by NOAA's partners (e.g., PIO, ESMF) to truly third party libraries (e.g., netCDF). Individual installation of these libraries is not practical, so the `HPC-Stack `__ was developed as a central installation system to ensure that the infrastructure environment across multiple platforms is as similar as possible. Installation of the HPC-Stack is required to run the SRW App. Instructions ------------------------- @@ -58,7 +58,7 @@ Users working on systems that fall under `Support Levels 2-4 `. .. attention:: - Although HPC-Stack is the fully-supported option for this release, UFS applications are gradually shifting to :term:`spack-stack`, which is a :term:`Spack`-based method for installing UFS prerequisite software libraries. The spack-stack is currently used on NOAA Cloud platforms and in containers, while HPC-Stack is still used on other Level 1 systems and is the software stack currently validated by the UFS Weather Model. Users are encouraged to check out spack-stack to prepare for the upcoming shift in support from HPC-Stack to spack-stack. However, the HPC-Stack is still the go-to method for this release. + Although HPC-Stack is the fully-supported option for the v2.1.0 release, UFS applications are gradually shifting to :term:`spack-stack`, which is a :term:`Spack`-based method for installing UFS prerequisite software libraries. The spack-stack is currently used on NOAA Cloud platforms and in containers, while HPC-Stack is still used on other Level 1 systems and is the software stack validated by the UFS Weather Model as of this release. Users are encouraged to check out `spack-stack `__ to prepare for the upcoming shift in support from HPC-Stack to spack-stack. However, the HPC-Stack is still the go-to supported method for this release. After completing installation, continue to the next section (:numref:`Section %s: Download the UFS SRW Application Code `). @@ -73,12 +73,12 @@ The SRW Application source code is publicly available on GitHub. To download the git clone -b release/public-v2.1.0 https://github.com/ufs-community/ufs-srweather-app.git The cloned repository contains the configuration files and sub-directories shown in -:numref:`Table %s `. The user may set an ``$SRW`` environment variable to point to the location of the new ``ufs-srweather-app`` repository. For example, if ``ufs-srweather-app`` was cloned into the ``$HOME`` directory, the following commands will set an ``$SRW`` environment variable in a bash or csh shell, respectively: +:numref:`Table %s `. The user may set an ``$SRW`` environment variable to point to the location of the new ``ufs-srweather-app`` repository. For example, if ``ufs-srweather-app`` was cloned into the ``/home`` directory, the following commands will set an ``$SRW`` environment variable in a bash or csh shell, respectively: .. code-block:: console - export SRW=$HOME/ufs-srweather-app - setenv SRW $HOME/ufs-srweather-app + export SRW=/home/ufs-srweather-app + setenv SRW /home/ufs-srweather-app .. _FilesAndSubDirs: @@ -117,7 +117,7 @@ The cloned repository contains the configuration files and sub-directories shown | | configuration files such as ``model_configure``, | | | ``diag_table``, and ``field_table``. | +--------------------------------+-----------------------------------------------------------+ - | README.md | Getting Started Guide | + | README.md | Contains SRW App introductory information | +--------------------------------+-----------------------------------------------------------+ | rename_model.sh | Used to rename the model before it becomes NCO | | | operational. The SRW App is a generic app that is the base| @@ -163,7 +163,7 @@ Run the executable that pulls in SRW App components from external repositories: .. code-block:: console - cd $SRW + cd ./manage_externals/checkout_externals The script should output dialogue indicating that it is retrieving different code repositories. It may take several minutes to download these repositories. @@ -172,7 +172,7 @@ To see more options for the ``checkout_externals`` script, users can run ``./man * ``-S``: Outputs the status of the repositories managed by ``checkout_externals``. By default only summary information is provided. Use with the ``-v`` (verbose) option to see details. * ``-x [EXCLUDE [EXCLUDE ...]]``: allows users to exclude components when checking out externals. - * ``-o``: By default only the required externals are checked out. This flag will also checkout the optional externals. + * ``-o``: By default only the required externals are checked out. This flag will also check out the optional externals. Generally, users will not need to use the options and can simply run the script, but the options are available for those who are curious. @@ -362,11 +362,6 @@ After running ``devbuild.sh``, the executables listed in :numref:`Table %s `` using a given ````, run: +From here, ``Lmod`` is ready to load the modulefiles needed by the SRW App. These modulefiles are located in the ``modulefiles`` directory. To load the necessary modulefile for a specific ```` using a given ````, run: .. code-block:: console @@ -426,7 +423,7 @@ From the build directory, run the following commands to build the pre-processing cmake .. -DCMAKE_INSTALL_PREFIX=.. -DCMAKE_INSTALL_BINDIR=exec .. make -j 4 >& build.out & -``-DCMAKE_INSTALL_PREFIX`` specifies the location in which the ``exec``, ``include``, ``lib``, and ``share`` directories will be created. These directories will contain various components of the SRW App. Its recommended value ``..`` denotes one directory up from the build directory. In the next line, the ``make`` argument ``-j 4`` indicates that the build will run in parallel with 4 threads. Although users can specify a larger or smaller number of threads (e.g., ``-j 8``, ``-j 2``), it is highly recommended to use at least 4 parallel threads to prevent overly long installation times. +``-DCMAKE_INSTALL_PREFIX`` specifies the location where the ``exec``, ``include``, ``lib``, and ``share`` directories will be created. These directories will contain various components of the SRW App. Its recommended value ``..`` denotes one directory up from the build directory. In the next line, the ``make`` argument ``-j 4`` indicates that the build will run in parallel with 4 threads. Although users can specify a larger or smaller number of threads (e.g., ``-j 8``, ``-j 2``), it is highly recommended to use at least 4 parallel threads to prevent overly long installation times. The build will take a few minutes to complete. When it starts, a random number is printed to the console, and when it is done, a ``[1]+ Done`` message is printed to the console. ``[1]+ Exit`` indicates an error. Output from the build will be in the ``ufs-srweather-app/build/build.out`` file. When the build completes, users should see the forecast model executable ``ufs_model`` and several pre- and post-processing executables in the ``ufs-srweather-app/exec`` directory. These executables are described in :numref:`Table %s `. @@ -448,7 +445,7 @@ The SRW App can be built on MacOS machines, presuming HPC-Stack has already been #. MacBookAir 2020, M1 chip (arm64, running natively), 4+4 cores, Big Sur 11.6.4, GNU compiler suite v.11.3.0 (gcc, gfortran, g++); no MPI pre-installed #. MacBook Pro 2015, 2.8 GHz Quad-Core Intel Core i7 (x86_64), Catalina OS X 10.15.7, GNU compiler suite v.11.2.0_3 (gcc, gfortran, g++); no MPI pre-installed -The ``build_macos_gnu.gnu`` modulefile is written as a Lmod module in the Lua programming language, and it can be loaded after the Lmod module environment is initialized (which should have happened prior to :ref:`installing the HPC Stack `). This module lists the location of HPC-Stack modules, loads the meta-modules and modules, sets serial and parallel compilers, additional flags, and any environment variables needed for building the SRW App. The modulefile must be modified to include the absolute path to the user's HPC-Stack installation: +The ``build_macos_gnu.gnu`` modulefile is written as an Lmod module in the Lua programming language, and it can be loaded once the Lmod module environment has been initialized (which should have happened even prior to :ref:`installing the HPC Stack `). This module lists the location of HPC-Stack modules, loads the meta-modules and modules, sets serial and parallel compilers, additional flags, and any environment variables needed for building the SRW App. The modulefile must be modified to include the absolute path to the user's HPC-Stack installation: .. code-block:: console From cb415a8a15b399f1e383a40a397330201b9a5983 Mon Sep 17 00:00:00 2001 From: gspetro Date: Wed, 16 Nov 2022 17:21:29 -0500 Subject: [PATCH 55/63] BuildSRW updates --- docs/UsersGuide/source/RunSRW.rst | 37 +++++++++++++------------------ 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index e8104539c9..f91bc022b3 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -57,9 +57,7 @@ The SRW App requires input files to run. These include static datasets, initial +--------------+-----------------------------------------------------------------+ | Orion | /work/noaa/fv3-cam/UFS_SRW_App/v2p1/input_model_data/ | +--------------+-----------------------------------------------------------------+ - | WCOSS2 | /lfs/h2/emc/lam/noscrub/UFS_SRW_App/v2p1/input_model_data/ | - +--------------+-----------------------------------------------------------------+ - + For Level 2-4 systems, the data must be added to the user's system. Detailed instructions on how to add the data can be found in :numref:`Section %s `. Sections :numref:`%s ` and :numref:`%s ` contain useful background information on the input and output files used in the SRW App. .. _GridSpecificConfig: @@ -67,7 +65,7 @@ For Level 2-4 systems, the data must be added to the user's system. Detailed ins Grid Configuration ======================= -The SRW App officially supports the four predefined grids shown in :numref:`Table %s `. The out-of-the-box SRW App case uses the ``RRFS_CONUS_25km`` predefined grid option. More information on the predefined and user-generated grid options can be found in :numref:`Chapter %s ` for those who are curious. Users who plan to utilize one of the four predefined domain (grid) options may continue to :numref:`Step %s `. Users who plan to create a new custom predefined grid should refer to :numref:`Section %s ` for instructions. At a minimum, these users will need to add the new grid name to the ``valid_param_vals.yaml`` file and add the corresponding grid-specific parameters in the ``predef_grid_params.yaml`` file. +The SRW App officially supports the four predefined grids shown in :numref:`Table %s `. The out-of-the-box SRW App case uses the ``RRFS_CONUS_25km`` predefined grid option. More information on the predefined and user-generated grid options can be found in :numref:`Chapter %s `. Users who plan to utilize one of the four predefined domain (grid) options may continue to :numref:`Step %s `. Users who plan to create a new custom predefined grid should refer to :numref:`Section %s ` for instructions. At a minimum, these users will need to add the new grid name to the ``valid_param_vals.yaml`` file and add the corresponding grid-specific parameters in the ``predef_grid_params.yaml`` file. .. _PredefinedGrids: @@ -103,11 +101,11 @@ The first two steps depend on the platform being used and are described here for Load the Conda Environment for the Regional Workflow --------------------------------------------------------- -The workflow requires Python3 installed using conda, with the additional packages built in a separate conda evironment named ``regional_workflow``. This environment has the following additional packages: ``PyYAML``, ``Jinja2``, ``f90nml``, ``scipy``, ``matplotlib``, ``pygrib``, ``cartopy``. This conda/Python environment has already been set up on Level 1 platforms, and can be activated in the following way: +The workflow requires Python3 installed using conda, with the additional packages built in a separate conda evironment named ``regional_workflow``. This environment has the following additional packages: ``PyYAML``, ``Jinja2``, ``f90nml``, ``scipy``, ``matplotlib``, ``pygrib``, ``cartopy``. This conda/Python environment has already been set up on Level 1 platforms and can be activated in the following way: .. code-block:: console - source + source module use module load wflow_ @@ -116,7 +114,7 @@ where ```` refers to a valid machine name (see :numref:`Section %s `. +A brief recipe for building the regional workflow environment on a Linux or Mac system can be found in :numref:`Section %s `. The ``wflow_`` modulefile will then output instructions to activate the regional workflow. The user should run the commands specified in the modulefile output. The command may vary from system to system. For example, if the output says: @@ -125,16 +123,16 @@ The ``wflow_`` modulefile will then output instructions to activate th Please do the following to activate conda: > conda activate regional_workflow -then the user should run ``conda activate regional_workflow``. This activates the ``regional_workflow`` conda environment, and the user typically sees ``(regional_workflow)`` in front of the Terminal prompt. +then the user should run ``conda activate regional_workflow``. This activates the ``regional_workflow`` conda environment, and the user typically sees ``(regional_workflow)`` in front of the Terminal prompt at this point. Preparing the Workflow Environment on Non-Level 1 Systems ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Users on non-Level 1 systems can copy one of the provided ``wflow_`` files and use it as a template to create a ``wflow_`` file that works for their system. The modules ``wflow_macos`` and ``wflow_linux`` template files are provided in the ``modulefiles`` directory. The modifications are needed to provide paths for python, miniconda modules, loading the modules, conda initialization, and pathfor user's ``regional_workflow`` conda environment. After making modifications to a ``wflow_`` file, users can run the commands from :numref:`Step %s ` above to activate the regional workflow. +Users on non-Level 1 systems can copy one of the provided ``wflow_`` files and use it as a template to create a ``wflow_`` file that works for their system. The ``wflow_macos`` and ``wflow_linux`` template modulefiles are provided in the ``modulefiles`` directory. Modifications are required to provide paths for python, miniconda modules, module loads, conda initialization, and the path for user's ``regional_workflow`` conda environment. After making modifications to a ``wflow_`` file, users can run the commands from :numref:`Step %s ` above to activate the regional workflow. .. note:: - ``conda`` needs to be initialized before running ``conda activate regional_workflow`` command. Depending on user's system and login setup, this could be accomplished by loading the miniconda module or in user's login session. Conda initialization usually involves the following: ``source /etc/profile.d/conda.sh``, where is the base conda installation directory. + ``conda`` needs to be initialized before running ``conda activate regional_workflow`` command. Depending on user's system and login setup, this may be accomplished by loading the miniconda module or in the user's login session. Conda initialization usually involves the following command: ``source /etc/profile.d/conda.sh``, where ```` is the base conda installation directory. .. _ExptConfig: @@ -153,8 +151,7 @@ Default configuration: ``config_defaults.yaml`` .. note:: This section provides background information on available parameters and how the SRW App uses the ``config_defaults.yaml`` file. It is informative, but users do not need to modify ``config_defaults.yaml`` to run the out-of-the-box case for the SRW App. Therefore, users may skip to :numref:`Step %s ` to continue configuring their experiment. -Configuration parameters in the ``config_defaults.yaml`` file appear in :numref:`Table %s `. Some of these default values are intentionally invalid in order to ensure that the user assigns valid values in the user-specified ``config.yaml`` file. Any settings provided in ``config.yaml`` will override the settings in ``config_defaults.yaml``. -settings. There is usually no need for a user to modify the default configuration file. Additional information on the default settings can be found in the ``config_defaults.yaml`` file comments and in :numref:`Chapter %s `. +Configuration parameters in the ``config_defaults.yaml`` file appear in :numref:`Table %s `. Some of these default values are intentionally invalid in order to ensure that the user assigns valid values in the user-specified ``config.yaml`` file. Any settings provided in ``config.yaml`` will override the settings in ``config_defaults.yaml``. There is usually no need for a user to modify the default configuration file. Additional information on the default settings can be found in the ``config_defaults.yaml`` file comments and in :numref:`Chapter %s `. .. _ConfigVarsDefault: @@ -437,7 +434,7 @@ To get started, make a copy of ``config.community.yaml``. From the ``ufs-srweath .. code-block:: console - cd $SRW/ush + cd /path/to/ufs-srweather-app/ush cp config.community.yaml config.yaml The default settings in this file include a predefined 25-km :term:`CONUS` grid (RRFS_CONUS_25km), the :term:`GFS` v16 physics suite (FV3_GFS_v16 :term:`CCPP`), and :term:`FV3`-based GFS raw external model data for initialization. @@ -450,7 +447,7 @@ The default settings in this file include a predefined 25-km :term:`CONUS` grid ./config_utils.py -c $PWD/config.sh -t $PWD/config_defaults.yaml -o yaml >config.yaml -Next, users should edit the new ``config.yaml`` file to customize it for their machine. At a minimum, users must change the ``MACHINE`` and ``ACCOUNT`` variables. Then, they can choose a name for the experiment directory by setting ``EXPT_SUBDIR``. If users have pre-staged initialization data for the experiment, they can set ``USE_USER_STAGED_EXTRN_FILES: true``, and set the paths to the data for ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` and ``EXTRN_MDL_SOURCE_BASEDIR_LBCS``. If the modulefile used to set up the build environment in :numref:`Section %s ` uses a GNU compiler, check that the line ``COMPILER: "gnu"`` appears in the ``config.yaml`` file. On platforms where Rocoto and :term:`cron` are available, users can automate resubmission of their experiment workflow by adding the following lines to the ``workflow:`` section of the ``config.yaml`` file: +Next, users should edit the new ``config.yaml`` file to customize it for their machine. At a minimum, users must change the ``MACHINE`` and ``ACCOUNT`` variables. Then, they can choose a name for the experiment directory by setting ``EXPT_SUBDIR``. If users have pre-staged initialization data for the experiment, they can set ``USE_USER_STAGED_EXTRN_FILES: true``, and set the paths to the data for ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` and ``EXTRN_MDL_SOURCE_BASEDIR_LBCS``. If the modulefile used to set up the build environment in :numref:`Section %s ` uses a GNU compiler, check that the line ``COMPILER: "gnu"`` appears in the ``workflow:`` section of the ``config.yaml`` file. On platforms where Rocoto and :term:`cron` are available, users can automate resubmission of their experiment workflow by adding the following lines to the ``workflow:`` section of the ``config.yaml`` file: .. code-block:: console @@ -461,7 +458,7 @@ Next, users should edit the new ``config.yaml`` file to customize it for their m Generic Linux and MacOS users should refer to :numref:`Section %s ` for additional details on configuring an experiment and python environment. -Sample ``config.yaml`` settings are indicated below for Level 1 platforms. At a minimum, users need to modify the ``MACHINE`` and ``ACCOUNT`` parameters. In most cases, users will need to specify the location of the experiment data. Detailed guidance applicable to all systems can be found in :numref:`Chapter %s: Configuring the Workflow `, which discusses each variable and the options available. Additionally, information about the four predefined Limited Area Model (LAM) Grid options can be found in :numref:`Chapter %s: Limited Area Model (LAM) Grids `. +Detailed information on additional parameter options can be viewed in :numref:`Chapter %s: Configuring the Workflow `. Additionally, information about the four predefined Limited Area Model (LAM) Grid options can be found in :numref:`Chapter %s: Limited Area Model (LAM) Grids `. On Level 1 systems, the following fields will need to be updated or added to the appropriate section of the ``config.yaml`` file in order to run the out-of-the-box SRW App case: @@ -602,7 +599,7 @@ Configure an experiment using a template. Copy the contents of ``config.communit .. code-block:: console - cd $SRW/ush + cd /path/to/ufs-srweather-app/ush cp config.community.yaml config.yaml In the ``config.yaml`` file, set ``MACHINE: macos`` or ``MACHINE: linux``, and modify the account and experiment info. For example: @@ -645,7 +642,7 @@ For a machine with 4 CPU-s, the following domain decomposition could be used: **Configure the Machine File** -Configure a ``macos.yaml`` or ``linux.yaml`` machine file in ``$SRW/ush/machine/`` based on the number of CPUs (``NCORES_PER_NODE``) in the system (usually 8 or 4 in MacOS; varies on Linux systems). Job scheduler (``SCHED``) options can be viewed :ref:`here `. Users must also set the path to the fix file directories. +Configure a ``macos.yaml`` or ``linux.yaml`` machine file in ``ufs-srweather-app/ush/machine/`` based on the number of CPUs (``NCORES_PER_NODE``) in the system (usually 8 or 4 in MacOS; varies on Linux systems). Job scheduler (``SCHED``) options can be viewed :ref:`here `. Users must also set the path to the fix file directories. .. code-block:: console @@ -767,9 +764,7 @@ The generated workflow will appear in ``$EXPTDIR``, where ``EXPTDIR=${EXPT_BASED .. figure:: _static/SRW_regional_workflow_gen.png :alt: Flowchart of the workflow generation process. Scripts are called in the following order: source_util_funcs.sh (which calls bash_utils), then set_FV3nml_sfc_climo_filenames.py, set_FV3nml_ens_stoch_seeds.py, create_diag_table_file.py, and setup.py. setup.py calls several scripts: set_cycle_dates.py, set_grid_params_GFDLgrid.py, set_grid_params_ESGgrid.py, link_fix.py, set_ozone_param.py, set_thompson_mp_fix_files.py, config_defaults.yaml, config.yaml, and valid_param_vals.yaml. Then, it sets a number of variables, including FIXgsm, TOPO_DIR, and SFC_CLIMO_INPUT_DIR variables. Next, set_predef_grid_params.py is called, and the FIXam and FIXLAM directories are set, along with the forecast input files. The setup script also calls set_extrn_mdl_params.py, sets the GRID_GEN_METHOD with HALO, checks various parameters, and generates shell scripts. Then, the workflow generation script sets up YAML-compliant strings and generates the actual Rocoto workflow XML file from the template file (fill_jinja_template.py). The workflow generation script checks the crontab file and, if applicable, copies certain fix files to the experiment directory. Then, it copies templates of various input files to the experiment directory and sets parameters for the input.nml file. Finally, it generates the workflow. Additional information on each step appears in comments within each script. - *Experiment generation description* - -.. COMMENT: Get updated image/slides from Chan-Hoo! + *Experiment Generation Description* .. _WorkflowTaskDescription: @@ -794,7 +789,7 @@ Description of Workflow Tasks .. figure:: _static/SRW_wflow_flowchart.png :alt: Flowchart of the workflow tasks. If the make_grid, make_orog, and make_sfc_climo tasks are toggled off, they will not be run. If toggled on, make_grid, make_orog, and make_sfc_climo will run consecutively by calling the corresponding exregional script in the scripts directory. The get_ics, get_lbcs, make_ics, make_lbcs, and run_fcst tasks call their respective exregional scripts. The run_post task will run, and if METplus verification tasks have been configured, those will run during post-processing by calling their exregional scripts. - *Flowchart of the workflow tasks* + *Flowchart of the Workflow Tasks* The ``FV3LAM_wflow.xml`` file runs the specific j-job scripts (``jobs/JREGIONAL_[task name]``) in the prescribed order when the experiment is launched via the ``launch_FV3LAM_wflow.sh`` script or the ``rocotorun`` command. Each j-job task has its own source script (or "ex-script") named ``exregional_[task name].sh`` in the ``scripts`` directory. Two database files named ``FV3LAM_wflow.db`` and ``FV3LAM_wflow_lock.db`` are generated and updated by the Rocoto calls. There is usually no need for users to modify these files. To relaunch the workflow from scratch, delete these two ``*.db`` files and then call the launch script repeatedly for each task. From f74e435d63c9c750985bce469816836c64add196 Mon Sep 17 00:00:00 2001 From: gspetro Date: Wed, 16 Nov 2022 18:01:03 -0500 Subject: [PATCH 56/63] BuildSRW updates --- docs/UsersGuide/source/RunSRW.rst | 94 ++++++++++++++++++------------- 1 file changed, 54 insertions(+), 40 deletions(-) diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index f91bc022b3..2c96a271af 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -132,7 +132,7 @@ Preparing the Workflow Environment on Non-Level 1 Systems Users on non-Level 1 systems can copy one of the provided ``wflow_`` files and use it as a template to create a ``wflow_`` file that works for their system. The ``wflow_macos`` and ``wflow_linux`` template modulefiles are provided in the ``modulefiles`` directory. Modifications are required to provide paths for python, miniconda modules, module loads, conda initialization, and the path for user's ``regional_workflow`` conda environment. After making modifications to a ``wflow_`` file, users can run the commands from :numref:`Step %s ` above to activate the regional workflow. .. note:: - ``conda`` needs to be initialized before running ``conda activate regional_workflow`` command. Depending on user's system and login setup, this may be accomplished by loading the miniconda module or in the user's login session. Conda initialization usually involves the following command: ``source /etc/profile.d/conda.sh``, where ```` is the base conda installation directory. + ``conda`` needs to be initialized before running ``conda activate regional_workflow`` command. Depending on the user's system and login setup, this may be accomplished in a variety of ways. Conda initialization usually involves the following command: ``source /etc/profile.d/conda.sh``, where ```` is the base conda installation directory. .. _ExptConfig: @@ -460,7 +460,7 @@ Next, users should edit the new ``config.yaml`` file to customize it for their m Detailed information on additional parameter options can be viewed in :numref:`Chapter %s: Configuring the Workflow `. Additionally, information about the four predefined Limited Area Model (LAM) Grid options can be found in :numref:`Chapter %s: Limited Area Model (LAM) Grids `. -On Level 1 systems, the following fields will need to be updated or added to the appropriate section of the ``config.yaml`` file in order to run the out-of-the-box SRW App case: +On Level 1 systems, the following fields typically need to be updated or added to the appropriate section of the ``config.yaml`` file in order to run the out-of-the-box SRW App case: .. code-block:: console @@ -531,11 +531,11 @@ A correct ``config.yaml`` file will output a ``SUCCESS`` message. A ``config.yam Valid values for configuration variables should be consistent with those in the ``ush/valid_param_vals.yaml`` script. In addition, various sample configuration files can be found within the subdirectories of ``tests/WE2E/test_configs``. -To configure an experiment and python environment for a general Linux or Mac system, see the :ref:`next section `. To configure an experiment to run METplus verification tasks, see :numref:`Section %s `. Otherwise, skip to :numref:`Section %s `. +To configure an experiment and python environment for a general Linux or Mac system, see the :ref:`next section `. To configure an experiment to run METplus verification tasks, see :numref:`Section %s `. Otherwise, skip to :numref:`Section %s ` to generate the workflow. .. _LinuxMacEnvConfig: -User-specific Configuration on a General Linux/MacOS System +User-Specific Configuration on a General Linux/MacOS System ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The configuration process for Linux and MacOS systems is similar to the process for other systems, but it requires a few extra steps. @@ -552,16 +552,16 @@ MacOS requires the installation of a few additional packages and, possibly, an u .. code-block:: console bash --version - brew install bash # or: brew upgrade bash + brew install bash # or: brew upgrade bash brew install coreutils - brew gsed # follow directions to update the PATH env. variable + brew gsed # follow directions to update the PATH env variable .. _LinuxMacVEnv: Creating a *conda* Environment on Linux and Mac `````````````````````````````````````````````````` -Users need to create a conda ``regional_workflow environment``. It could be stored in a local path, which could be a default location (inquire by ``conda info``, and look for ``envs directories`` list), or a user-specified location, e.g. ``$HOME/condaenv/venvs/`` directory. A brief recipe for creating a virtual conda environment on non-Level 1 platforms: +Users need to create a conda ``regional_workflow`` environment. The environment can be stored in a local path, which could be a default location (determine default using the ``conda info`` command, and look for an ``envs directories`` list), or a user-specified location (e.g. ``$HOME/condaenv/venvs/`` directory). A brief recipe for creating a virtual conda environment on non-Level 1 platforms: .. code-block:: console @@ -590,7 +590,7 @@ Configuring an Experiment on General Linux and MacOS Systems **Optional: Install Rocoto** .. note:: - Users may `install Rocoto `__ if they want to make use of a workflow manager to run their experiments. However, this option has not been tested yet on MacOS and has had limited testing on general Linux plaforms. + Users may `install Rocoto `__ if they want to make use of a workflow manager to run their experiments. However, this option has not yet been tested on MacOS and has had limited testing on general Linux plaforms. **Configure the SRW App:** @@ -615,16 +615,25 @@ In the ``config.yaml`` file, set ``MACHINE: macos`` or ``MACHINE: linux``, and m PREEXISTING_DIR_METHOD: rename VERBOSE: true COMPILER: gnu + task_get_extrn_ics: + USE_USER_STAGED_EXTRN_FILES: true + EXTRN_MDL_SOURCE_BASEDIR_ICS: /path/to/input_model_data/FV3GFS/grib2/2019061518 + EXTRN_MDL_DATA_STORES: disk + task_get_extrn_lbcs: + USE_USER_STAGED_EXTRN_FILES: true + EXTRN_MDL_SOURCE_BASEDIR_LBCS: /path/to/input_model_data/FV3GFS/grib2/2019061518 + EXTRN_MDL_DATA_STORES: disk task_run_fcst: PREDEF_GRID_NAME: RRFS_CONUS_25km QUILTING: true -Due to the limited number of processors on MacOS systems, users must also configure the domain decomposition defaults in ``predef_grid_params.yaml``. Domain decomposition needs to take into the account number of available CPUs, and configure variables ``LAYOUT_X``, ``LAYOUT_Y``, and ``WRTCMP_write_tasks_per_group``. +Due to the limited number of processors on MacOS systems, users must also add/configure the domain decomposition parameters in the ``task_run_fcst:`` section of ``config.yaml``. Domain decomposition needs to take into the account number of available CPUs and configure variables ``LAYOUT_X``, ``LAYOUT_Y``, and ``WRTCMP_write_tasks_per_group``. -The below example is for using 8 cpus: +The example below is for systems with 8 CPUs: .. code-block:: console + task_run_fcst: LAYOUT_X: 3 LAYOUT_Y: 2 WRTCMP_write_tasks_per_group: 2 @@ -632,17 +641,18 @@ The below example is for using 8 cpus: .. note:: The number of MPI processes required by the forecast will be equal to ``LAYOUT_X`` * ``LAYOUT_Y`` + ``WRTCMP_write_tasks_per_group``. -For a machine with 4 CPU-s, the following domain decomposition could be used: +For a machine with 4 CPUs, the following domain decomposition could be used: .. code-block:: console + task_run_fcst: LAYOUT_X: 3 LAYOUT_Y: 1 WRTCMP_write_tasks_per_group: 1 **Configure the Machine File** -Configure a ``macos.yaml`` or ``linux.yaml`` machine file in ``ufs-srweather-app/ush/machine/`` based on the number of CPUs (``NCORES_PER_NODE``) in the system (usually 8 or 4 in MacOS; varies on Linux systems). Job scheduler (``SCHED``) options can be viewed :ref:`here `. Users must also set the path to the fix file directories. +Configure a ``macos.yaml`` or ``linux.yaml`` machine file in ``ufs-srweather-app/ush/machine`` based on the number of CPUs (``NCORES_PER_NODE``) in the system (usually 8 or 4 in MacOS; varies on Linux systems). Job scheduler (``SCHED``) options can be viewed :ref:`here `. Users must also set the path to the fix file directories. .. code-block:: console @@ -658,14 +668,18 @@ Configure a ``macos.yaml`` or ``linux.yaml`` machine file in ``ufs-srweather-app RUN_CMD_UTILS: 'mpirun -np 4' # Commands to run at the start of each workflow task. PRE_TASK_CMDS: '{ ulimit -a; }' + task_make_orog: TOPO_DIR: path/to/FIXgsm/files # (path to location of static input files used by the make_orog task) + task_make_sfc_climo: SFC_CLIMO_INPUT_DIR: path/to/FIXgsm/files # (path to location of static surface climatology input fields used by sfc_climo_gen) + task_run_fcst: FIXaer: /path/to/FIXaer/files FIXgsm: /path/to/FIXgsm/files FIXlut: /path/to/FIXlut/files + data: FV3GFS: /Users/username/DATA/UFS/FV3GFS # (used by setup.py to set the values of EXTRN_MDL_SOURCE_BASEDIR_ICS and EXTRN_MDL_SOURCE_BASEDIR_LBCS) @@ -681,7 +695,7 @@ The ``data:`` section of the machine file can point to various data sources that RAP: /Users/username/DATA/UFS/RAP/grib2 HRRR: /Users/username/DATA/UFS/HRRR/grib2 -This can be helpful when conducting a multiple experiments with different types of data. +This can be helpful when conducting multiple experiments with different types of data. .. _VXConfig: @@ -757,7 +771,7 @@ This workflow generation script creates an experiment directory and populates it The ``setup.py`` script reads three other configuration scripts in order: (1) ``config_defaults.yaml`` (:numref:`Section %s `), (2) ``config.yaml`` (:numref:`Section %s `), and (3) ``set_predef_grid_params.py``. If a parameter is specified differently in these scripts, the file containing the last defined value will be used. -The generated workflow will appear in ``$EXPTDIR``, where ``EXPTDIR=${EXPT_BASEDIR}/${EXPT_SUBDIR}``. These variables were specified in the ``config.yaml`` file in :numref:`Step %s `. The settings for these paths can also be viewed in the console output from the ``./generate_FV3LAM_wflow.py`` script or in the ``log.generate_FV3LAM_wflow`` file, which can be found in ``$EXPTDIR``. +The generated workflow will appear in ``$EXPTDIR``, where ``EXPTDIR=${EXPT_BASEDIR}/${EXPT_SUBDIR}``. These variables were specified in ``config_defaults.yaml`` and ``config.yaml`` in :numref:`Step %s `. The settings for these paths can also be viewed in the console output from the ``./generate_FV3LAM_wflow.py`` script or in the ``log.generate_FV3LAM_wflow`` file, which can be found in ``$EXPTDIR``. .. _WorkflowGeneration: @@ -797,7 +811,7 @@ The ``FV3LAM_wflow.xml`` file runs the specific j-job scripts (``jobs/JREGIONAL_ .. _WorkflowTasksTable: -.. table:: Baseline workflow tasks in the SRW App +.. table:: Baseline Workflow Tasks in the SRW App +----------------------+------------------------------------------------------------+ | **Workflow Task** | **Task Description** | @@ -830,7 +844,7 @@ In addition to the baseline tasks described in :numref:`Table %s `. -There are three ways to run the workflow with Rocoto: (1) automation via crontab (2) by calling the ``launch_FV3LAM_wflow.sh`` script, and (3) by manually calling the ``rocotorun`` command. +There are three ways to run the workflow with Rocoto: (1) automation via crontab (2) by calling the ``launch_FV3LAM_wflow.sh`` script, and (3) by manually issuing the ``rocotorun`` command. .. note:: Users may find it helpful to review :numref:`Chapter %s ` to gain a better understanding of Rocoto commands and workflow management before continuing, but this is not required to run the experiment. @@ -968,14 +982,14 @@ If the login shell is csh/tcsh, it can be set using: Automated Option ^^^^^^^^^^^^^^^^^^^ -The simplest way to run the Rocoto workflow is to automate the process using a job scheduler such as :term:`Cron`. For automatic resubmission of the workflow at regular intervals (e.g., every minute), the user can add the following commands to their ``config.yaml`` file *before* generating the experiment: +The simplest way to run the Rocoto workflow is to automate the process using a job scheduler such as :term:`Cron`. For automatic resubmission of the workflow at regular intervals (e.g., every 2 minutes), the user can add the following commands to their ``config.yaml`` file *before* generating the experiment: .. code-block:: console USE_CRON_TO_RELAUNCH: true - CRON_RELAUNCH_INTVL_MNTS: 3 + CRON_RELAUNCH_INTVL_MNTS: 2 -This will automatically add an appropriate entry to the user's :term:`cron table` and launch the workflow. Alternatively, the user can add a crontab entry using the ``crontab -e`` command. As mentioned in :numref:`Section %s `, the last line of output from ``./generate_FV3LAM_wflow.py`` (starting with ``*/3 * * * *``), can be pasted into the crontab file. It can also be found in the ``$EXPTDIR/log.generate_FV3LAM_wflow`` file. The crontab entry should resemble the following: +This will automatically add an appropriate entry to the user's :term:`cron table` and launch the workflow. Alternatively, the user can add a crontab entry manually using the ``crontab -e`` command. As mentioned in :numref:`Section %s `, the last line of output from ``./generate_FV3LAM_wflow.py`` (starting with ``*/2 * * * *``), can be pasted into the crontab file. It can also be found in the ``$EXPTDIR/log.generate_FV3LAM_wflow`` file. The crontab entry should resemble the following: .. code-block:: console @@ -1011,18 +1025,18 @@ The workflow run is complete when all tasks have "SUCCEEDED". If everything goes 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 + 201906151800 make_grid 4953154 SUCCEEDED 0 1 5.0 + 201906151800 make_orog 4953176 SUCCEEDED 0 1 26.0 + 201906151800 make_sfc_climo 4953179 SUCCEEDED 0 1 33.0 + 201906151800 get_extrn_ics 4953155 SUCCEEDED 0 1 2.0 + 201906151800 get_extrn_lbcs 4953156 SUCCEEDED 0 1 2.0 + 201906151800 make_ics 4953184 SUCCEEDED 0 1 16.0 + 201906151800 make_lbcs 4953185 SUCCEEDED 0 1 71.0 + 201906151800 run_fcst 4953196 SUCCEEDED 0 1 1035.0 + 201906151800 run_post_f000 4953244 SUCCEEDED 0 1 5.0 + 201906151800 run_post_f001 4953245 SUCCEEDED 0 1 4.0 ... - 201906150000 run_post_f012 4953381 SUCCEEDED 0 1 7.0 + 201906151800 run_post_f012 4953381 SUCCEEDED 0 1 7.0 If users choose to run METplus verification tasks as part of their experiment, the output above will include additional lines after ``run_post_f012``. The output will resemble the following but may be significantly longer when using ensemble verification: @@ -1030,16 +1044,16 @@ If users choose to run METplus verification tasks as part of their experiment, t CYCLE TASK JOBID STATE EXIT STATUS TRIES DURATION ========================================================================================================== - 201906150000 make_grid 30466134 SUCCEEDED 0 1 5.0 + 201906151800 make_grid 30466134 SUCCEEDED 0 1 5.0 ... - 201906150000 run_post_f012 30468271 SUCCEEDED 0 1 7.0 - 201906150000 run_gridstatvx 30468420 SUCCEEDED 0 1 53.0 - 201906150000 run_gridstatvx_refc 30468421 SUCCEEDED 0 1 934.0 - 201906150000 run_gridstatvx_retop 30468422 SUCCEEDED 0 1 1002.0 - 201906150000 run_gridstatvx_03h 30468491 SUCCEEDED 0 1 43.0 - 201906150000 run_gridstatvx_06h 30468492 SUCCEEDED 0 1 29.0 - 201906150000 run_gridstatvx_24h 30468493 SUCCEEDED 0 1 20.0 - 201906150000 run_pointstatvx 30468423 SUCCEEDED 0 1 670.0 + 201906151800 run_post_f012 30468271 SUCCEEDED 0 1 7.0 + 201906151800 run_gridstatvx 30468420 SUCCEEDED 0 1 53.0 + 201906151800 run_gridstatvx_refc 30468421 SUCCEEDED 0 1 934.0 + 201906151800 run_gridstatvx_retop 30468422 SUCCEEDED 0 1 1002.0 + 201906151800 run_gridstatvx_03h 30468491 SUCCEEDED 0 1 43.0 + 201906151800 run_gridstatvx_06h 30468492 SUCCEEDED 0 1 29.0 + 201906151800 run_gridstatvx_24h 30468493 SUCCEEDED 0 1 20.0 + 201906151800 run_pointstatvx 30468423 SUCCEEDED 0 1 670.0 Launch the Rocoto Workflow Using a Script From dea63cc65a395bb7be5af8acdf18978c4cc7862c Mon Sep 17 00:00:00 2001 From: Natalie Perlin Date: Wed, 16 Nov 2022 18:12:11 -0500 Subject: [PATCH 57/63] Added documentation notes for generic Linux --- docs/UsersGuide/source/BuildSRW.rst | 31 ++++++++++++++++------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/docs/UsersGuide/source/BuildSRW.rst b/docs/UsersGuide/source/BuildSRW.rst index fea0339f35..1f2d1ea873 100644 --- a/docs/UsersGuide/source/BuildSRW.rst +++ b/docs/UsersGuide/source/BuildSRW.rst @@ -195,7 +195,7 @@ On Level 1 systems for which a modulefile is provided under the ``modulefiles`` where ```` is replaced with the name of the platform the user is working on. Valid values include: ``cheyenne`` | ``gaea`` | ``hera`` | ``jet`` | ``linux`` | ``macos`` | ``noaacloud`` | ``orion`` .. note:: - Although build modulefiles exist for generic Linux and MacOS machines, users will need to alter these according to the instructions in Sections :numref:`%s ` & :numref:`%s `. Users on these systems may have more success building the SRW App with the :ref:`CMake Approach ` instead. + Although build modulefiles exist for generic Linux and MacOS machines, users will need to alter these according to the instructions in Sections :numref:`%s ` & :numref:`%s `. Users on these systems may have more success building the SRW App with the :ref:`CMake Approach ` instead. If compiler auto-detection fails for some reason, specify it using the ``--compiler`` argument. For example: @@ -378,7 +378,7 @@ Set Up the Build Environment .. attention:: * If users successfully built the executables in :numref:`Table %s `, they should skip to step :numref:`Chapter %s `. - * Users who want to build the SRW App on a generic MacOS should skip to :numref:`Section %s ` and follow the approach there. + * Users who want to build the SRW App on MacOS or generic Linux systems should skip to :numref:`Section %s ` and follow the approach there. If the ``devbuild.sh`` approach failed, users need to set up their environment to run a workflow on their specific platform. First, users should make sure ``Lmod`` is the app used for loading modulefiles. This is the case on most Level 1 systems; however, on systems such as Gaea/Odin, the default modulefile loader is from Cray and must be switched to Lmod. For example, on Gaea, users can run one of the following two commands depending on whether they have a bash or csh shell, respectively: @@ -434,39 +434,42 @@ The build will take a few minutes to complete. When it starts, a random number i If you see the ``build.out`` file, but there is no ``ufs-srweather-app/exec`` directory, wait a few more minutes for the build to complete. -.. _MacDetails: +.. _MacLinuxDetails: -Additional Details for Building on MacOS +Additional Details for Building on MacOS or generic Linux ------------------------------------------ .. note:: - Users who are **not** building the SRW App on a MacOS machine may skip to the :numref:`Section %s ` to finish building the SRW App or continue to :numref:`Chapter %s ` to configure and run an experiment. + Users who are **not** building the SRW App on MacOS or generic Linux platforms may skip to the :numref:`Section %s ` to finish building the SRW App or continue to :numref:`Chapter %s ` to configure and run an experiment. -The SRW App can be built on MacOS machines, presuming HPC-Stack has already been installed successfully. The installation is architecture-independent, tested for both x86_64 and M1 chips (running natively). The following configurations have been tested: +The SRW App can be built on MacOS and generic Linux machines, after the HPC-Stack was already installed on these systems. The installation for MacOS is architecture-independent, tested for both x86_64 and M1 chips (running natively). The following configurations for MacOS have been tested: -* MacBookPro 2019, 2.4 GHz 8-core Intel Core i9 (x86_64), Monterey Sur 12.1, GNU compiler suite v.11.3.0 (gcc, gfortran, g++); no MPI pre-installed +* MacBookPro 2019, 2.4 GHz 8-core Intel Core i9 (x86_64), Monterey Sur 12.1, GNU compiler suite v.11.3.0 (gcc, gfortran, g++); mpich 3.3.2 or openmpi/4.1.2 -* MacBookAir 2020, M1 chip (arm64, running natively), 4+4 cores, Big Sur 11.6.4, GNU compiler suite v.11.3.0 (gcc, gfortran, g++); no MPI pre-installed +* MacBookAir 2020, M1 chip (arm64, running natively), 4+4 cores, Big Sur 11.6.4, GNU compiler suite v.11.3.0 (gcc, gfortran, g++); mpich 3.3.2 or openmpi/4.1.2 -* MacBook Pro 2015, 2.8 GHz Quad-Core Intel Core i7 (x86_64), Catalina OS X 10.15.7, GNU compiler suite v.11.2.0_3 (gcc, gfortran, g++); no MPI pre-installed +* MacBook Pro 2015, 2.8 GHz Quad-Core Intel Core i7 (x86_64), Catalina OS X 10.15.7, GNU compiler suite v.11.2.0_3 (gcc, gfortran, g++); mpich 3.3.2 or openmpi/4.1.2 -The ``build_macos_gnu.gnu`` modulefile is written as a LMOD module in Lua language, and could be loaded after the LMOD module environment is initialized. This module lists the location of HPC-Stack modules, loads the meta-modules and modules, sets serial and parallel compilers, additional flags, and any environment variables needed for building the SRW App. The modulefile must be modified to include the absolute path to the user's HPC-Stack installation: +Several Linux builds have been tested on systems with x86_64 architectures. + +The ``./modulefiles/build__gnu.lua`` modulefile, where ```` is ``macos`` or ``linux``, is written as a LMOD module in Lua language, and could be loaded after the LMOD module environment is initialized. This module lists the location of HPC-Stack modules, loads the meta-modules and modules, sets serial and parallel compilers, additional flags, and any environment variables needed for building the SRW App. The modulefile needs be modified to include the absolute path to the user's HPC-Stack installation: .. code-block:: console - This path should point to your HPCstack installation directory local HPCstack="/Users/username/hpc-stack/install" -Then, users must source the Lmod setup file, just as they would on other systems, and load the modulefiles needed for building and running the SRW App: + Linux users need to configure the ``./etc/lmod-setup.sh`` for the ``linux`` case, and set ``BASH_ENV`` variable to point to Lmod initialization script. There is no need to modify this script for the ``macos`` case, when Lmod followed a standard intallation procedure using Homebrew package manager for the MacOS. +Then, users must source the Lmod setup file, just as they would on other systems, and load the modulefiles needed for building and running the SRW App. .. code-block:: console - source etc/lmod-setup.sh macos + source etc/lmod-setup.sh module use - module load build_macos_gnu + module load build__gnu export LDFLAGS+=" -L${MPI_ROOT}/lib " -In a csh/tcsh shell, users would run ``source etc/lmod-setup.csh macos`` in place of the first line in the code block above. +In a csh/tcsh shell, users would run ``source etc/lmod-setup.csh `` in place of the first line in the code block above. The last line is primarily needed for the MacOS platforms. Proceed to building the executables using the process outlined in :numref:`Step %s `. From 8f6fa7b20b0688f8170b08ef5f09d4646ae51ce8 Mon Sep 17 00:00:00 2001 From: Natalie Perlin Date: Wed, 16 Nov 2022 18:29:55 -0500 Subject: [PATCH 58/63] Formatting corrections --- docs/UsersGuide/source/BuildSRW.rst | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/docs/UsersGuide/source/BuildSRW.rst b/docs/UsersGuide/source/BuildSRW.rst index 1f2d1ea873..a8b08ce070 100644 --- a/docs/UsersGuide/source/BuildSRW.rst +++ b/docs/UsersGuide/source/BuildSRW.rst @@ -437,7 +437,7 @@ The build will take a few minutes to complete. When it starts, a random number i .. _MacLinuxDetails: Additional Details for Building on MacOS or generic Linux ------------------------------------------- +----------------------------------------------------------- .. note:: Users who are **not** building the SRW App on MacOS or generic Linux platforms may skip to the :numref:`Section %s ` to finish building the SRW App or continue to :numref:`Chapter %s ` to configure and run an experiment. @@ -458,9 +458,8 @@ The ``./modulefiles/build__gnu.lua`` modulefile, where ```` - This path should point to your HPCstack installation directory local HPCstack="/Users/username/hpc-stack/install" - - Linux users need to configure the ``./etc/lmod-setup.sh`` for the ``linux`` case, and set ``BASH_ENV`` variable to point to Lmod initialization script. There is no need to modify this script for the ``macos`` case, when Lmod followed a standard intallation procedure using Homebrew package manager for the MacOS. -Then, users must source the Lmod setup file, just as they would on other systems, and load the modulefiles needed for building and running the SRW App. + +Linux users need to configure the ``./etc/lmod-setup.sh`` for the ``linux`` case, and set ``BASH_ENV`` variable to point to the Lmod initialization script. There is no need to modify this script for the ``macos`` case, when Lmod followed a standard intallation procedure using Homebrew package manager for the MacOS. Then, users must source the Lmod setup file, just as they would on other systems, and load the modulefiles needed for building and running the SRW App. .. code-block:: console From 694727b253f2f84bc9a3583cae6e7bd0a901a305 Mon Sep 17 00:00:00 2001 From: gspetro Date: Wed, 16 Nov 2022 18:38:31 -0500 Subject: [PATCH 59/63] final I/O edits, RunSRW --- docs/UsersGuide/source/BuildSRW.rst | 2 -- docs/UsersGuide/source/InputOutputFiles.rst | 27 ++++++++------------- docs/UsersGuide/source/RunSRW.rst | 14 ++++------- 3 files changed, 15 insertions(+), 28 deletions(-) diff --git a/docs/UsersGuide/source/BuildSRW.rst b/docs/UsersGuide/source/BuildSRW.rst index e29a470ec6..71c7f83fac 100644 --- a/docs/UsersGuide/source/BuildSRW.rst +++ b/docs/UsersGuide/source/BuildSRW.rst @@ -150,8 +150,6 @@ The cloned repository contains the configuration files and sub-directories shown | | respectively. | +--------------------------------+-----------------------------------------------------------+ -.. COMMENT: Is environment.yml deprecated? Remove? - .. _CheckoutExternals: Check Out External Components diff --git a/docs/UsersGuide/source/InputOutputFiles.rst b/docs/UsersGuide/source/InputOutputFiles.rst index fd2a2056db..6216a363af 100644 --- a/docs/UsersGuide/source/InputOutputFiles.rst +++ b/docs/UsersGuide/source/InputOutputFiles.rst @@ -280,16 +280,12 @@ The paths to ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` and ``EXTRN_MDL_SOURCE_BASEDIR_LBC task_get_extrn_ics: USE_USER_STAGED_EXTRN_FILES: true EXTRN_MDL_SOURCE_BASEDIR_ICS: - EXTRN_MDL_FILES_ICS: [] EXTRN_MDL_DATA_STORES: disk task_get_extrn_lbcs: USE_USER_STAGED_EXTRN_FILES: true EXTRN_MDL_SOURCE_BASEDIR_LBCS: - EXTRN_MDL_FILES_LBCS: [] EXTRN_MDL_DATA_STORES: disk -.. COMMENT: Do we need EXTRN_MDL_FILES_*CS and EXTRN_MDL_DATA_STORES? - The two ``EXTRN_MDL_SOURCE_BASEDIR_*CS`` variables describe where the :term:`IC ` and :term:`LBC ` file directories are located, respectively. For ease of reusing ``config.yaml`` across experiments, it is recommended that users set up the raw :term:`IC/LBC ` file paths to include the model name (e.g., FV3GFS, NAM, RAP, HRRR), data format (e.g., grib2, nemsio), and date (in ``YYYYMMDDHH`` format). For example: ``/path-to/input_model_data/FV3GFS/grib2/2019061518/``. While there is flexibility to modify these settings, this structure will provide the most reusability for multiple dates when using the SRW Application workflow. When files are pulled from NOAA :term:`HPSS` (rather than downloaded from the data bucket), the naming convention looks something like: @@ -308,26 +304,23 @@ where: * ``{cycle}`` corresponds to the 2-digit hour of the day when the forecast cycle starts, and * ``{fhr}`` corresponds to the 2- or 3-digit nth hour of the forecast (3-digits for FV3GFS data and 2 digits for RAP/HRRR data). -For example, a forecast using FV3GFS GRIB2 data that starts at 18h00 UTC would have a {cycle} value of 18, which is the 000th forecast hour. The LBCS file for 21h00 UTC would be named ``gfs.t18z.pgrb2.0p25.f003``. An example ``config.yaml`` setting using HRRR and RAP data appears below: +For example, a forecast using FV3GFS GRIB2 data that starts at 18h00 UTC would have a {cycle} value of 18, which is the 000th forecast hour. The LBCS file for 21h00 UTC would be named ``gfs.t18z.pgrb2.0p25.f003``. + +In some cases, it may be necessary to specify values for ``EXTRN_MDL_FILES_*CS``variables. This is often the case with HRRR and RAP data. An example ``config.yaml`` excerpt using HRRR and RAP data appears below: .. code-block:: console task_get_extrn_ics: + EXTRN_MDL_NAME_ICS: HRRR USE_USER_STAGED_EXTRN_FILES: true - EXTRN_MDL_SOURCE_BASEDIR_ICS: /path-to/input_model_data/HRRR/grib2/2020081012 - EXTRN_MDL_FILES_ICS: [hrrr.t{cycle}z.wrfprsf{fhr}.grib2] - EXTRN_MDL_DATA_STORES: disk + EXTRN_MDL_FILES_ICS: + - '{yy}{jjj}{hh}00{fcst_hr:02d}00' task_get_extrn_lbcs: + EXTRN_MDL_NAME_LBCS: RAP + LBC_SPEC_INTVL_HRS: 3 USE_USER_STAGED_EXTRN_FILES: true - EXTRN_MDL_SOURCE_BASEDIR_LBCS: /path-to/input_model_data/RAP/grib2/2020081012 - EXTRN_MDL_FILES_LBCS: [rap.t{cycle}z.wrfprsf{fhr}.grib2] - EXTRN_MDL_DATA_STORES: disk - -.. COMMENT: Are EXTRN_MDL_FILES_ICS/LBCS correct? Is anything required there? Formerly: - - EXTRN_MDL_FILES_ICS=( "hrrr.t12z.wrfprsf00.grib2" ) - EXTRN_MDL_FILES_LBCS=( "rap.t12z.wrfprsf03.grib2" "rap.t12z.wrfprsf06.grib2" ) - + EXTRN_MDL_FILES_LBCS: + - '{yy}{jjj}{hh}00{fcst_hr:02d}00' Default Initial and Lateral Boundary Conditions ----------------------------------------------- diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index 2c96a271af..596a4d58b4 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -627,7 +627,7 @@ In the ``config.yaml`` file, set ``MACHINE: macos`` or ``MACHINE: linux``, and m PREDEF_GRID_NAME: RRFS_CONUS_25km QUILTING: true -Due to the limited number of processors on MacOS systems, users must also add/configure the domain decomposition parameters in the ``task_run_fcst:`` section of ``config.yaml``. Domain decomposition needs to take into the account number of available CPUs and configure variables ``LAYOUT_X``, ``LAYOUT_Y``, and ``WRTCMP_write_tasks_per_group``. +Due to the limited number of processors on MacOS systems, users must also configure the domain decomposition parameters directly in section of the ``predef_grid_params.yaml`` file pertaining to the grid they want to use. Domain decomposition needs to take into the account number of available CPUs and configure variables ``LAYOUT_X``, ``LAYOUT_Y``, and ``WRTCMP_write_tasks_per_group``. The example below is for systems with 8 CPUs: @@ -707,8 +707,6 @@ Users who want to use the METplus verification suite to evaluate their forecasts .. attention:: METplus *installation* is not included as part of the build process for this release of the SRW App. However, METplus is preinstalled on many `Level 1 & 2 `__ systems. For the v2.1.0 release, METplus *use* is supported on systems with a functioning METplus installation, although installation itself is not supported. For more information about METplus, see :numref:`Section %s `. - .. COMMENT: Update note for release v2.1! - .. note:: If METplus users update their METplus installation, they must update the module load statements in ``ufs-srweather-app/modulefiles/tasks//run_vx.local`` file to correspond to their system's updated installation: @@ -1009,8 +1007,6 @@ To check the experiment progress: cd $EXPTDIR rocotostat -w FV3LAM_wflow.xml -d FV3LAM_wflow.db -v 10 - - After finishing the experiment, open the crontab using ``crontab -e`` and delete the crontab entry. .. note:: @@ -1078,7 +1074,7 @@ In order to launch additional tasks in the workflow, call the launch script agai ./launch_FV3LAM_wflow.sh; tail -n 40 log.launch_FV3LAM_wflow -This will output the last 40 lines of the log file, which list the status of the workflow tasks (e.g., SUCCEEDED, DEAD, RUNNING, SUBMITTING, QUEUED). The number 40 can be changed according to the user's preferences. The output will look like this: +This will output the last 40 lines of the log file, which list the status of the workflow tasks (e.g., SUCCEEDED, DEAD, RUNNING, SUBMITTING, QUEUED). The number 40 can be changed according to the user's preferences. The output will look similar to this: .. code-block:: console @@ -1106,7 +1102,7 @@ This will output the last 40 lines of the log file, which list the status of the 0 out of 1 cycles completed. Workflow status: IN PROGRESS -If all the tasks complete successfully, the "Workflow status" at the bottom of the log file will change from "IN PROGRESS" to "SUCCESS". If certain tasks could not complete, the "Workflow status" will instead change to "FAILURE". Error messages for each specific task can be found in the task log files located in ``$EXPTDIR/log``. +If all the tasks complete successfully, the "Workflow status" at the bottom of the log file will change from "IN PROGRESS" to "SUCCESS". If certain tasks could not complete, the "Workflow status" will instead change to "FAILURE". Error messages for each task can be found in the task log files located in ``$EXPTDIR/log``. The workflow run is complete when all tasks have "SUCCEEDED", and the ``rocotostat`` command outputs a table similar to the one :ref:`above `. @@ -1188,7 +1184,7 @@ The regional workflow can be run using standalone shell scripts in cases where t .. code-block:: console - cp /ufs-srweather-app/ush/wrappers/* . + cp /ufs-srweather-app/ush/wrappers/* . #. Set the ``OMP_NUM_THREADS`` variable. @@ -1258,7 +1254,7 @@ Users can access log files for specific tasks in the ``$EXPTDIR/log`` directory. tail -n 40 log.launch_FV3LAM_wflow .. hint:: - If any of the scripts return an error that "Primary job terminated normally, but one process returned a non-zero exit code," there may not be enough space on one node to run the process. On an HPC system, the user will need to allocate a(nother) compute node. The process for doing so is system-dependent, and users should check the documentation available for their HPC system. Instructions for allocating a compute node on NOAA Cloud systems can be viewed in :numref:`Section %s ` as an example. + If any of the scripts return an error that "Primary job terminated normally, but one process returned a non-zero exit code," there may not be enough space on one node to run the process. On an HPC system, the user will need to allocate a(nother) compute node. The process for doing so is system-dependent, and users should check the documentation available for their HPC system. Instructions for allocating a compute node on NOAA HPC systems can be viewed in :numref:`Section %s ` as an example. .. note:: On most HPC systems, users will need to submit a batch job to run multi-processor jobs. On some HPC systems, users may be able to run the first two jobs (serial) on a login node/command-line. Example scripts for Slurm (Hera) and PBS (Cheyenne) resource managers are provided (``sq_job.sh`` and ``qsub_job.sh``, respectively). These examples will need to be adapted to each user's system. Alternatively, some batch systems allow users to specify most of the settings on the command line (with the ``sbatch`` or ``qsub`` command, for example). From bbd3e5957a0d0ad98a65ec0af2450aec72f46078 Mon Sep 17 00:00:00 2001 From: gspetro Date: Wed, 16 Nov 2022 19:16:22 -0500 Subject: [PATCH 60/63] final Build/Run edits for mac/linux --- docs/UsersGuide/source/BuildSRW.rst | 16 +++++++++------- docs/UsersGuide/source/RunSRW.rst | 2 +- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/docs/UsersGuide/source/BuildSRW.rst b/docs/UsersGuide/source/BuildSRW.rst index c8f3e85c5d..d559a90138 100644 --- a/docs/UsersGuide/source/BuildSRW.rst +++ b/docs/UsersGuide/source/BuildSRW.rst @@ -431,28 +431,30 @@ The build will take a few minutes to complete. When it starts, a random number i .. _MacLinuxDetails: -Additional Details for Building on MacOS or generic Linux +Additional Details for Building on MacOS or Generic Linux ----------------------------------------------------------- .. note:: Users who are **not** building the SRW App on MacOS or generic Linux platforms may skip to the :numref:`Section %s ` to finish building the SRW App or continue to :numref:`Chapter %s ` to configure and run an experiment. -The SRW App can be built on MacOS and generic Linux machines, after the HPC-Stack was already installed on these systems. The installation for MacOS is architecture-independent, tested for both x86_64 and M1 chips (running natively). The following configurations for MacOS have been tested: +The SRW App can be built on MacOS and generic Linux machines after the HPC-Stack has been installed on these systems. The installation for MacOS is architecture-independent and has been tested using both x86_64 and M1 chips (running natively). The following configurations for MacOS have been tested: -#. MacBookPro 2019, 2.4 GHz 8-core Intel Core i9 (x86_64), Monterey Sur 12.1, GNU compiler suite v.11.3.0 (gcc, gfortran, g++); mpich 3.3.2 or openmpi/4.1.2 -#. MacBookAir 2020, M1 chip (arm64, running natively), 4+4 cores, Big Sur 11.6.4, GNU compiler suite v.11.3.0 (gcc, gfortran, g++); mpich 3.3.2 or openmpi/4.1.2 -#. MacBook Pro 2015, 2.8 GHz Quad-Core Intel Core i7 (x86_64), Catalina OS X 10.15.7, GNU compiler suite v.11.2.0_3 (gcc, gfortran, g++); mpich 3.3.2 or openmpi/4.1.2 + #. MacBookPro 2019, 2.4 GHz 8-core Intel Core i9 (x86_64), Monterey Sur 12.1, GNU compiler suite v.11.3.0 (gcc, gfortran, g++); mpich 3.3.2 or openmpi/4.1.2 + #. MacBookAir 2020, M1 chip (arm64, running natively), 4+4 cores, Big Sur 11.6.4, GNU compiler suite v.11.3.0 (gcc, gfortran, g++); mpich 3.3.2 or openmpi/4.1.2 + #. MacBook Pro 2015, 2.8 GHz Quad-Core Intel Core i7 (x86_64), Catalina OS X 10.15.7, GNU compiler suite v.11.2.0_3 (gcc, gfortran, g++); mpich 3.3.2 or openmpi/4.1.2 Several Linux builds have been tested on systems with x86_64 architectures. -The ``./modulefiles/build__gnu.lua`` modulefile, where ```` is ``macos`` or ``linux``, is written as a LMOD module in Lua language, and could be loaded after the LMOD module environment is initialized. This module lists the location of HPC-Stack modules, loads the meta-modules and modules, sets serial and parallel compilers, additional flags, and any environment variables needed for building the SRW App. The modulefile needs be modified to include the absolute path to the user's HPC-Stack installation: +The ``./modulefiles/build__gnu.lua`` modulefile (where ```` is ``macos`` or ``linux``) is written as a LMOD module in Lua language, and it can be loaded once the LMOD module environment has been initialized (which should have happened even prior to :ref:`installing the HPC Stack `). This module lists the location of the HPC-Stack modules, loads the meta-modules and modules, sets serial and parallel compilers, additional flags, and any environment variables needed for building the SRW App. The modulefile must be modified to include the absolute path to the user's HPC-Stack installation: .. code-block:: console - This path should point to your HPCstack installation directory local HPCstack="/Users/username/hpc-stack/install" -Linux users need to configure the ``./etc/lmod-setup.sh`` for the ``linux`` case, and set ``BASH_ENV`` variable to point to the Lmod initialization script. There is no need to modify this script for the ``macos`` case, when Lmod followed a standard intallation procedure using Homebrew package manager for the MacOS. Then, users must source the Lmod setup file, just as they would on other systems, and load the modulefiles needed for building and running the SRW App. +Linux users need to configure the ``./etc/lmod-setup.sh`` for the ``linux`` case, and set the ``BASH_ENV`` variable to point to the Lmod initialization script. There is no need to modify this script for the ``macos`` case presuming that Lmod followed a standard installation procedure using the Homebrew package manager for MacOS. + +Next, users must source the Lmod setup file, just as they would on other systems, and load the modulefiles needed for building and running the SRW App: .. code-block:: console diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index 596a4d58b4..be442466b1 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -561,7 +561,7 @@ MacOS requires the installation of a few additional packages and, possibly, an u Creating a *conda* Environment on Linux and Mac `````````````````````````````````````````````````` -Users need to create a conda ``regional_workflow`` environment. The environment can be stored in a local path, which could be a default location (determine default using the ``conda info`` command, and look for an ``envs directories`` list), or a user-specified location (e.g. ``$HOME/condaenv/venvs/`` directory). A brief recipe for creating a virtual conda environment on non-Level 1 platforms: +Users need to create a conda ``regional_workflow`` environment. The environment can be stored in a local path, which could be a default location or a user-specified location (e.g. ``$HOME/condaenv/venvs/`` directory). (To determine the default location, use the ``conda info`` command, and look for the ``envs directories`` list.) A brief recipe for creating a virtual conda environment on non-Level 1 platforms: .. code-block:: console From 7f9f2baa70e9f2044b32e2f8e3351976dd82ac3a Mon Sep 17 00:00:00 2001 From: gspetro Date: Thu, 17 Nov 2022 11:43:36 -0500 Subject: [PATCH 61/63] minor corrections --- docs/UsersGuide/source/Components.rst | 2 +- docs/UsersGuide/source/ConfigWorkflow.rst | 2 +- docs/UsersGuide/source/ContainerQuickstart.rst | 6 +++--- docs/UsersGuide/source/Glossary.rst | 2 +- docs/UsersGuide/source/Introduction.rst | 2 +- docs/UsersGuide/source/RunSRW.rst | 2 +- docs/UsersGuide/source/conf.py | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/UsersGuide/source/Components.rst b/docs/UsersGuide/source/Components.rst index bbe767dc12..6e3dca60c3 100644 --- a/docs/UsersGuide/source/Components.rst +++ b/docs/UsersGuide/source/Components.rst @@ -86,7 +86,7 @@ An umbrella CMake-based build system is used for building the components necessa Once built, the provided experiment generator script can be used to create a Rocoto-based workflow file that will run each task in the system in the proper sequence (see :numref:`Chapter %s ` or the `Rocoto documentation `__ for more information on Rocoto). If Rocoto and/or a batch system is not present on the available platform, the individual components can be run in a stand-alone, command line fashion with provided run scripts. The generated namelist for the atmospheric model can be modified in order to vary settings such as forecast starting and ending dates, forecast length hours, the :term:`CCPP` physics suite, integration time step, history file output frequency, and more. It also allows for configuration of other elements of the workflow; for example, users can choose whether to run some or all of the pre-processing, forecast model, and post-processing steps. -The latest 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; the National Center for Atmospheric Research (:term:`NCAR`) Cheyenne system; 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 (Level 3), and build-only (Level 4) platforms. Each level is further described below. +The latest 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; the National Center for Atmospheric Research (:term:`NCAR`) Cheyenne system; 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 (Level 3), and build-only (Level 4) platforms. Each level is further described below. On pre-configured (Level 1) computational platforms, 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. diff --git a/docs/UsersGuide/source/ConfigWorkflow.rst b/docs/UsersGuide/source/ConfigWorkflow.rst index 9e2799ee28..974688f3b7 100644 --- a/docs/UsersGuide/source/ConfigWorkflow.rst +++ b/docs/UsersGuide/source/ConfigWorkflow.rst @@ -971,7 +971,7 @@ Model Configuration Parameters These parameters set values in the Weather Model's ``model_configure`` file. ``DT_ATMOS``: (Default: "") - Time step for the outermost atmospheric model loop in seconds. This corresponds to the frequency at which the physics routines and the top level dynamics routine are called. (Note that one call to the top-level dynamics routine results in multiple calls to the horizontal dynamics, :term:`tracer` transport, and vertical dynamics routines; see the `FV3 dycore scientific documentation `__ for details.) Must be set. Takes an integer value. In the SRW App, a default value for ``DT_ATMOS`` appears in the ``set_predef_grid_params.yaml`` script, but a different value can be set in ``config.yaml``. In general, The smaller the grid cell size is, the smaller this value needs to be in order to avoid numerical instabilities during the forecast. + Time step for the outermost atmospheric model loop in seconds. This corresponds to the frequency at which the physics routines and the top level dynamics routine are called. (Note that one call to the top-level dynamics routine results in multiple calls to the horizontal dynamics, :term:`tracer` transport, and vertical dynamics routines; see the `FV3 dycore scientific documentation `__ for details.) Must be set. Takes an integer value. In the SRW App, a default value for ``DT_ATMOS`` appears in the ``set_predef_grid_params.yaml`` script, but a different value can be set in ``config.yaml``. In general, the smaller the grid cell size is, the smaller this value needs to be in order to avoid numerical instabilities during the forecast. ``RESTART_INTERVAL``: (Default: 0) Frequency of the output restart files in hours. Using the default interval (0), restart files are produced at the end of a forecast run. When ``RESTART_INTERVAL: 1``, restart files are produced every hour with the prefix "YYYYMMDD.HHmmSS." in the ``RESTART`` directory. diff --git a/docs/UsersGuide/source/ContainerQuickstart.rst b/docs/UsersGuide/source/ContainerQuickstart.rst index a8c88de551..3d5b9ac69c 100644 --- a/docs/UsersGuide/source/ContainerQuickstart.rst +++ b/docs/UsersGuide/source/ContainerQuickstart.rst @@ -301,7 +301,7 @@ From here, users can follow the steps below to configure the out-of-the-box SRW .. code-block:: console USE_CRON_TO_RELAUNCH: TRUE - CRON_RELAUNCH_INTVL_MNTS: 2 + CRON_RELAUNCH_INTVL_MNTS: 3 There are instructions for running the experiment via additional methods in :numref:`Section %s `. However, this technique (automation via :term:`crontab`) is the simplest option. @@ -343,7 +343,7 @@ Run the following command to generate the workflow: ./generate_FV3LAM_wflow.py -This workflow generation script creates an experiment directory and populates it with all the data needed to run through the workflow. The last line of output from this script should start with ``*/2 * * * *`` (or similar). +This workflow generation script creates an experiment directory and populates it with all the data needed to run through the workflow. The last line of output from this script should start with ``*/3 * * * *`` (or similar). The generated workflow will be in the experiment directory specified in the ``config.yaml`` file in :numref:`Step %s `. The default location is ``expt_dirs/test_community``. To view experiment progress, users can ``cd`` to the experiment directory from ``ufs-srweather-app/ush`` and run the ``rocotostat`` command to check the experiment's status: @@ -362,7 +362,7 @@ If a task goes DEAD, it will be necessary to restart it according to the instruc crontab -e i - */2 * * * * cd //expt_dirs/test_community && ./launch_FV3LAM_wflow.sh called_from_cron="TRUE" + */3 * * * * cd //expt_dirs/test_community && ./launch_FV3LAM_wflow.sh called_from_cron="TRUE" esc :wq enter diff --git a/docs/UsersGuide/source/Glossary.rst b/docs/UsersGuide/source/Glossary.rst index 3845a75302..3df37060d1 100644 --- a/docs/UsersGuide/source/Glossary.rst +++ b/docs/UsersGuide/source/Glossary.rst @@ -26,7 +26,7 @@ Glossary chgres_cube The preprocessing software used to create initial and boundary condition files to - “coldstart” the forecast model. It is part of :term:`UFS_UTILS`. + "cold start" the forecast model. It is part of :term:`UFS_UTILS`. CIN Convective Inhibition. diff --git a/docs/UsersGuide/source/Introduction.rst b/docs/UsersGuide/source/Introduction.rst index 08d7f2afc1..2c7285e3ed 100644 --- a/docs/UsersGuide/source/Introduction.rst +++ b/docs/UsersGuide/source/Introduction.rst @@ -447,7 +447,7 @@ A list of available documentation is shown in :numref:`Table %s Date: Thu, 17 Nov 2022 12:10:36 -0500 Subject: [PATCH 62/63] remove Contributor's Guide --- docs/UsersGuide/source/ContributorsGuide.rst | 465 ------------------- docs/UsersGuide/source/index.rst | 1 - 2 files changed, 466 deletions(-) delete mode 100644 docs/UsersGuide/source/ContributorsGuide.rst diff --git a/docs/UsersGuide/source/ContributorsGuide.rst b/docs/UsersGuide/source/ContributorsGuide.rst deleted file mode 100644 index a4bd226d8c..0000000000 --- a/docs/UsersGuide/source/ContributorsGuide.rst +++ /dev/null @@ -1,465 +0,0 @@ - -.. _ContributorsGuide: - -============================== -SRW App Contributor's Guide -============================== - -.. attention:: - - The most updated version of the SRW App Contributor's Guide is maintained in the `Contributor's Guide `__ page of the ``ufs-srweather-app`` wiki. - -.. _Background: - -Background -=========== - -Authoritative branch ------------------------ - -The ``ufs-srweather-app`` repository maintains a main branch for development called ``develop``. The HEAD of ``develop`` reflects the latest development changes. It points to regularly updated hashes for individual subcomponents. Pull requests (PRs) will be merged to ``develop``. - -The ``develop`` branch is protected by the code management team: - #. Pull requests for this branch require approval by at least two code reviewers. - #. A code manager should perform at least one of the reviews and the merge, but other contributors are welcome to provide comments/suggestions. - - -Code Management Team --------------------------- - -Scientists from across multiple labs and organizations have volunteered to review pull requests for the ``develop`` branch: - -.. table:: - - +------------------+------------------------------------------------+---------------------------------------------------------------------------------------------+ - | **Organization** | **Reviewers** | **Areas of Expertise** | - +==================+================================================+=============================================================================================+ - | EMC | Chan-Hoo Jeon (@chan-hoo) | Workflow, Operational platform testing (WCOSS/NCO), and Air quality modeling (Online-CMAQ) | - | +------------------------------------------------+---------------------------------------------------------------------------------------------+ - | | Ben Blake (@BenjaminBlake-NOAA) | Output visualization, Rocoto | - | +------------------------------------------------+---------------------------------------------------------------------------------------------+ - | | Ratko Vasic (@RatkoVasic-NOAA) | Workflow, NCO requirements, and operational platform testing | - +------------------+------------------------------------------------+---------------------------------------------------------------------------------------------+ - | EPIC | Mark Potts (@mark-a-potts) | HPC systems | - | +------------------------------------------------+---------------------------------------------------------------------------------------------+ - | | Jong Kim (@jkbk2004) | UFS Weather Model configuration, forecast sensitivity analysis, data assimilation | - | +------------------------------------------------+---------------------------------------------------------------------------------------------+ - | | Michael Lueken (@MichaelLueken) | SRW App code management | - | +------------------------------------------------+---------------------------------------------------------------------------------------------+ - | | Natalie Perlin (@natalie-perlin) | Generic Linux/Mac installations, hpc-stack/spack-stack | - | +------------------------------------------------+---------------------------------------------------------------------------------------------+ - | | Gillian Petro (@gspetro-NOAA) | Documentation | - | +------------------------------------------------+---------------------------------------------------------------------------------------------+ - | | Edward Snyder (@EdwardSnyder-NOAA) | WE2E testing, input data | - +------------------+------------------------------------------------+---------------------------------------------------------------------------------------------+ - | GLERL | David Wright (@dmwright526) | FVCOM integration, output visualization, preprocessing tasks | - +------------------+------------------------------------------------+---------------------------------------------------------------------------------------------+ - | GSL | Jeff Beck (@JeffBeck-NOAA) | SRW App configuration/workflow, code management, meteorological evaluation | - | +------------------------------------------------+---------------------------------------------------------------------------------------------+ - | | Gerard Ketefian (@gsketefian) | Workflow scripts, jinja templates, and verification tasks | - | +------------------------------------------------+---------------------------------------------------------------------------------------------+ - | | Linlin Pan (@panll) | Workflow, CCPP/physics, verification | - | +------------------------------------------------+---------------------------------------------------------------------------------------------+ - | | Christina Holt (@christinaholtNOAA) | Workflow, conda environment support, testing, and code management | - | +------------------------------------------------+---------------------------------------------------------------------------------------------+ - | | Christopher Harrop (@christopherwharrop-noaa) | Rocoto, code management, and testing | - | +------------------------------------------------+---------------------------------------------------------------------------------------------+ - | | Daniel Abdi (@danielabdi-noaa) | Workflow generation, testing RRFS on the cloud, environment modules | - +------------------+------------------------------------------------+---------------------------------------------------------------------------------------------+ - | NCAR | Mike Kavulich (@mkavulich) | Workflow, CCPP/physics, code management, WE2E testing | - | +------------------------------------------------+---------------------------------------------------------------------------------------------+ - | | Will Mayfield (@willmayfield) | Verification/METplus tasks, regional workflow (esp. on Cheyenne) | - +------------------+------------------------------------------------+---------------------------------------------------------------------------------------------+ - | NSSL | Yunheng Wang (@ywangwof) | HPC systems, code management and regional workflow especially on Stampede, Jet | - | | | and NSSL computers | - +------------------+------------------------------------------------+---------------------------------------------------------------------------------------------+ - -.. _ContribProcess: - -Contribution Process -======================== - -The steps below should be followed in order to make changes to the ``develop`` branch of the ``ufs-srweather-app`` repository. Communication with code managers and the code management team throughout the process is encouraged. - - #. **Issue** - Open an issue to document changes. Click `here `__ to open a new ``ufs-srweather-app`` issue or see :numref:`Step %s ` for detailed instructions. - #. **GitFlow** - Follow `GitFlow `__ procedures for development. - #. **Fork the repository** - Read more `here `__ about forking in GitHub. - #. **Create a branch** - Create a branch in your fork of the authoritative repository. Follow `GitFlow `__ conventions when creating the branch. All development should take place on a branch, *not* on ``develop``. Branches should be named as follows, where [name] is a one-word description of the branch: - - * **bugfix/[name]:** Fixes a demonstrably incorrect portion of code - * **feature/[name]:** Adds a new feature to the code or improves an existing portion of the code - * **text/[name]:** Changes elements of the repository that do not impact program output or log files (e.g., changes to README, documentation, comments, changing quoted Registry elements, white space alignment). Any change that does not impact the compiled code in any way should fall under this category. - - #. **Development** - Perform and test changes in the branch (not on ``develop``!). Document work in the issue and mention the issue number in commit messages to link your work to the issue (e.g., ``commit -m "Issue #23 - "``). Test code modifications on as many platforms as possible, and request help with further testing from the code management team when unable to test on all Level 1 platforms. Document changes to the workflow and capabilities in the ``.rst`` files so that the SRW App documentation stays up-to-date. - #. **Pull request** - When ready to merge changes back to the ``develop`` branch, the code developer should initiate a pull request (PR) of the feature branch into the ``develop`` branch. Read `here `__ about pull requests in GitHub. When a PR is initiated, the :ref:`PR Template

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 U&a!dl74Ro6EF)AZpy&I405a7hqyPW_ literal 0 HcmV?d00001 From afb9635b9547c26443a6c1fe225364a84e503437 Mon Sep 17 00:00:00 2001 From: gspetro Date: Mon, 14 Nov 2022 16:35:28 -0500 Subject: [PATCH 29/63] update I/O input path image --- docs/UsersGuide/source/InputOutputFiles.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/UsersGuide/source/InputOutputFiles.rst b/docs/UsersGuide/source/InputOutputFiles.rst index bd9e540a2a..9c420a915d 100644 --- a/docs/UsersGuide/source/InputOutputFiles.rst +++ b/docs/UsersGuide/source/InputOutputFiles.rst @@ -101,14 +101,14 @@ Additional information related to ``diag_table.[CCPP]``, ``field_table.[CCPP]``, Migratory Route of the Input Files in the Workflow ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -:numref:`Figure %s ` shows how the input files in the template directory (``ufs-srweather-app/parm``) flow to the experiment directory. First, the CCPP physics suite is specified in the configuration file. The template input files corresponding to the selected physics suite, such as ``field_table_[CCPP]`` and ``nems.configure_[CCPP]``, are copied to the experiment directory (``$EXPTDIR``). Additionally, the namelist file of the Weather Model (``input.nml``) is created from the ``input.nml.FV3`` and ``FV3.input.yml`` files by running the workflow generation script. While running the ``RUN_FCST`` task in the regional workflow as shown in :numref:`Figure %s `, the ``field_table``, ``nems.configure``, and ``input.nml`` files, located in ``$EXPTDIR``, are linked to the cycle directory (``$CYCLE_DIR``). Additionally, ``diag_table`` and ``model_configure`` are copied from the ``parm`` directory. Finally, these files are updated with the variables specified in ``var_defn.sh``. +:numref:`Figure %s ` shows how the input files in the template directory (``ufs-srweather-app/parm``) flow to the experiment directory. First, the CCPP physics suite is specified in the configuration file. The template input files corresponding to the selected physics suite, such as ``field_table.[CCPP]`` and ``nems.configure_[CCPP]``, are copied to the experiment directory (``$EXPTDIR``). Additionally, the namelist file of the Weather Model (``input.nml``) is created from the ``input.nml.FV3`` and ``FV3.input.yml`` files by running the workflow generation script. While running the ``RUN_FCST`` task in the regional workflow as shown in :numref:`Figure %s `, the ``field_table``, ``nems.configure``, and ``input.nml`` files, located in ``$EXPTDIR``, are linked to the cycle directory (``$CYCLE_DIR``). Additionally, ``diag_table`` and ``model_configure`` are copied from the ``parm`` directory. Finally, these files are updated with the variables specified in ``var_defn.sh``. .. COMMENT: Update image! .. _MigratoryRoute: -.. figure:: _static/FV3LAM_wflow_input_path.png - :alt: Flowchart showing how information on the physics suite travels from the config shell file to the setup shell file to the workflow generation script to the run forecast ex-script. As this information is fed from one script to the next, file paths and variables required for workflow execution are set. +.. figure:: _static/SRW_wflow_input_path.png + :alt: Flowchart showing how information from the physics suite travels from the configuration file to the setup file to the workflow generation script to the run forecast ex-script. As this information is fed from one file to the next, file paths and variables required for workflow execution are set. *Migratory route of input files* From 05e228f38c837f0e3ffdc6c5202ecf569764e0a3 Mon Sep 17 00:00:00 2001 From: gspetro Date: Mon, 14 Nov 2022 20:44:30 -0500 Subject: [PATCH 30/63] I/O updates esp for UPP --- docs/UsersGuide/source/InputOutputFiles.rst | 28 ++++++++++----------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/docs/UsersGuide/source/InputOutputFiles.rst b/docs/UsersGuide/source/InputOutputFiles.rst index 9c420a915d..9ca6394a09 100644 --- a/docs/UsersGuide/source/InputOutputFiles.rst +++ b/docs/UsersGuide/source/InputOutputFiles.rst @@ -103,14 +103,12 @@ Migratory Route of the Input Files in the Workflow ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :numref:`Figure %s ` shows how the input files in the template directory (``ufs-srweather-app/parm``) flow to the experiment directory. First, the CCPP physics suite is specified in the configuration file. The template input files corresponding to the selected physics suite, such as ``field_table.[CCPP]`` and ``nems.configure_[CCPP]``, are copied to the experiment directory (``$EXPTDIR``). Additionally, the namelist file of the Weather Model (``input.nml``) is created from the ``input.nml.FV3`` and ``FV3.input.yml`` files by running the workflow generation script. While running the ``RUN_FCST`` task in the regional workflow as shown in :numref:`Figure %s `, the ``field_table``, ``nems.configure``, and ``input.nml`` files, located in ``$EXPTDIR``, are linked to the cycle directory (``$CYCLE_DIR``). Additionally, ``diag_table`` and ``model_configure`` are copied from the ``parm`` directory. Finally, these files are updated with the variables specified in ``var_defn.sh``. -.. COMMENT: Update image! - .. _MigratoryRoute: .. figure:: _static/SRW_wflow_input_path.png :alt: Flowchart showing how information from the physics suite travels from the configuration file to the setup file to the workflow generation script to the run forecast ex-script. As this information is fed from one file to the next, file paths and variables required for workflow execution are set. - *Migratory route of input files* + *Migratory Route of Input Files* .. _OutputFiles: @@ -143,7 +141,7 @@ experiment directory (``$EXPTDIR/YYYYMMDDHH/INPUT``) and consist of the followin * ``tmp_ICS`` * ``tmp_LBCS`` -These output files are used as inputs for the UFS Weather Model, and are described in the `UFS Weather Model User's Guide +These output files are used as inputs for the UFS Weather Model and are described in the `UFS Weather Model User's Guide `__. ``gfs_bndy.tile7.HHH.nc`` refers to a series of IC/LBC files where ``HHH`` is the 3-digit hour of the forecast. UFS Weather Model @@ -172,10 +170,12 @@ For the SRW Application, the Weather Model netCDF output files are written to `` The default setting for the output file names uses ``rrfs`` for ``{domain}``. This may be overridden by the user in the ``config.yaml`` settings. +.. _ModifyUPPOutput: + Modifying the UPP Output ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -If users wish to modify the fields or levels that are output from the UPP, they will need to make modifications to ``fv3lam.xml``, which resides in the UPP repository distributed with the UFS SRW Application. If the code was cloned into the directory ``ufs-srweather-app``, the file will be located in ``ufs-srweather-app/src/UPP/parm``. +If users wish to modify the fields or levels that are output from the UPP, they will need to make modifications to ``fv3lam.xml``, which resides in the UPP repository distributed with the UFS SRW Application. If the code was cloned into the directory ``ufs-srweather-app``, the file will be located in ``ufs-srweather-app/sorc/UPP/parm``. .. note:: This process requires advanced knowledge of which fields can be output for the UFS Weather Model. @@ -190,10 +190,10 @@ After creating the new flat text file to reflect the changes, users will need to .. code-block:: console - USE_CUSTOM_POST_CONFIG_FILE="TRUE" - CUSTOM_POST_CONFIG_PATH="" + USE_CUSTOM_POST_CONFIG_FILE: true + CUSTOM_POST_CONFIG_FP: -which tells the workflow to use the custom file located in the user-defined path. The path should include the filename. If ``USE_CUSTOM_POST_CONFIG_FILE`` is set to "TRUE", but the file path is not found, then an error will occur when trying to generate the SRW Application workflow. +which tells the workflow to use the custom file located in the user-defined path. The path should include the filename. If ``USE_CUSTOM_POST_CONFIG_FILE`` is set to true, but the file path is not found, then an error will occur when trying to generate the SRW Application workflow. Users may then start their experiment workflow as usual, and the UPP will use the new flat ``*.txt`` file. @@ -202,26 +202,24 @@ Users may then start their experiment workflow as usual, and the UPP will use th Outputting Satellite Products from UPP ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Synthetic satellite products for several instruments and channels (e.g., GOES 16/17) may be output through the UPP using the Community Radiative Transfer Model (:term:`CRTM`). External CRTM coefficient files, available through the UPP stand-alone release, will need to be manually downloaded before running the workflow. These instructions assume that the UPP configuration file has already been set up to output satellite products. +Synthetic satellite products for several instruments and channels (e.g., GOES 16/17) may be output through the UPP using the Community Radiative Transfer Model (:term:`CRTM`). External CRTM coefficient files, available through the UPP stand-alone release, will need to be manually downloaded before running the workflow. These instructions assume that the UPP configuration file (``postxconfig-NT-fv3lam.txt``) has already been set up to output satellite products using the process described above in :numref:`Section %s`. Download and unpack the external files: .. code-block:: console mkdir crtm && cd crtm - wget https://github.com/NOAA-EMC/EMC_post/releases/download/upp_v10.1.0/fix.tar.gz + wget https://github.com/NOAA-EMC/UPP/releases/download/upp_v11.0.0/fix.tar.gz tar -xzf fix.tar.gz -.. COMMENT: Get appropriate github link! - Modify the ``config.yaml`` file to include the following lines: .. code-block:: console - USE_CRTM="TRUE" - CRTM_DIR="" + USE_CRTM: true + CRTM_DIR: -By setting ``USE_CRTM`` to "TRUE", the workflow will use the path defined in ``CRTM_DIR`` to link the necessary coefficient files to the working directory at runtime. Otherwise, it is assumed that no satellite fields are being requested in the UPP configuration. ``CRTM_DIR`` should point to the top CRTM directory where the fix files are located. +By setting ``USE_CRTM`` to true, the workflow will use the path defined in ``CRTM_DIR`` to link the necessary coefficient files to the working directory at runtime. Otherwise, it is assumed that no satellite fields are being requested in the UPP configuration. ``CRTM_DIR`` should point to the top CRTM directory where the fix files are located. .. note:: Dependencies for outputting synthetic satellite products may exist based on model configuration (e.g., model physics). From 27a2fb5d5f9dd7fd3c3b1510b1f75e45e5bbc42a Mon Sep 17 00:00:00 2001 From: gspetro Date: Mon, 14 Nov 2022 22:29:09 -0500 Subject: [PATCH 31/63] edits for loading graphics env --- docs/UsersGuide/source/Graphics.rst | 46 ++++------------------------- docs/UsersGuide/source/RunSRW.rst | 8 +---- 2 files changed, 7 insertions(+), 47 deletions(-) diff --git a/docs/UsersGuide/source/Graphics.rst b/docs/UsersGuide/source/Graphics.rst index 9b167dc0be..4a4ca96af1 100644 --- a/docs/UsersGuide/source/Graphics.rst +++ b/docs/UsersGuide/source/Graphics.rst @@ -26,50 +26,16 @@ the same cycle starting date/time and forecast hours. Other parameters may diffe Loading the Environment ========================== -To use the plotting scripts, the appropriate environment must be loaded. The scripts 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 - module load conda/latest - conda activate /glade/p/ral/jntp/UFS_SRW_app/conda/python_graphics - -On Hera and Jet: +To use the plotting scripts, the regional workflow environment, which includes the required ``scipy``, ``matplotlib``, ``pygrib``, ``cartopy``, and ``pillow`` packages, must be loaded. To activate the regional workflow, see :numref:`Section %s `, or use the following summary: .. 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 - -On NOAA Cloud: - -.. code-block:: console - - module use /contrib/GST/miniconda3/modulefiles - module load miniconda3/4.10.3 - conda activate regional_workflow - -.. note:: + cd + source ../../etc/lmod-setup.sh + module use ../../modulefiles + module load wflow_ - If using one of the batch submission scripts described :ref:`below `, the user does not need to manually load an environment because the scripts perform this task. +where ```` refers to a valid machine name (see :numref:`Section %s `). Then users should follow the instructions output by the console (e.g., ``conda activate regional_workflow``). .. _Cartopy: diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index 6d0181ed97..5e2301e018 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -123,13 +123,7 @@ The ``wflow_`` modulefile will then output instructions to activate th Please do the following to activate conda: > conda activate regional_workflow -then the user should run ``conda activate regional_workflow``. This will activate the ``regional_workflow`` conda environment. However, the command(s) will vary from system to system. Regardless, the user should see ``(regional_workflow)`` in front of the Terminal prompt at this point. If this is not the case, activate the regional workflow from the ``ush`` directory by running: - -.. code-block:: console - - conda init - source ~/.bashrc - conda activate regional_workflow +then the user should run ``conda activate regional_workflow``. This will activate the ``regional_workflow`` conda environment. However, the command(s) will vary from system to system. Regardless, the user should see ``(regional_workflow)`` in front of the Terminal prompt at this point. .. _LinuxMacActivateWFenv: From 3ab716b0fc98f4b67b8ce98cbe27439c20778588 Mon Sep 17 00:00:00 2001 From: gspetro Date: Tue, 15 Nov 2022 08:29:20 -0500 Subject: [PATCH 32/63] graphics env changes; I/O python syntax update --- docs/UsersGuide/source/Graphics.rst | 10 ++--- docs/UsersGuide/source/InputOutputFiles.rst | 45 +++++++++++++++------ 2 files changed, 36 insertions(+), 19 deletions(-) diff --git a/docs/UsersGuide/source/Graphics.rst b/docs/UsersGuide/source/Graphics.rst index 4a4ca96af1..1e9eb81e61 100644 --- a/docs/UsersGuide/source/Graphics.rst +++ b/docs/UsersGuide/source/Graphics.rst @@ -37,6 +37,8 @@ To use the plotting scripts, the regional workflow environment, which includes t where ```` refers to a valid machine name (see :numref:`Section %s `). Then users should follow the instructions output by the console (e.g., ``conda activate regional_workflow``). +.. COMMENT: Make note to ignore deprecation warnings...? + .. _Cartopy: Cartopy Shapefiles @@ -48,7 +50,7 @@ The full set of Cartopy shapefiles can be downloaded `here `__ of the SRW Data Bucket using the ``wget`` command for each required file. A list of ``wget`` commands with links is provided :ref:`here ` for the release v2.1.0 fix file data. Users will need to create an appropriate directory structure for the files when downloading them individually. The best solution is to download the files into directories that mirror the structure of the `Data Bucket `__. -The environment variables ``FIXgsm``, ``TOPO_DIR``, and ``SFC_CLIMO_INPUT_DIR`` indicate the path to the directories where the static files are located. After downloading the experiment data, users must set the paths to the files in ``config.yaml``. Add the following code to the ``config.yaml`` file, and alter the variable paths accordingly: +The environment variables ``FIXgsm``, ``TOPO_DIR``, and ``SFC_CLIMO_INPUT_DIR`` indicate the path to the directories where the static files are located. After downloading the experiment data, users must set the paths to the files in ``config.yaml``. Add the following code to the ``task_run_fcst:`` section of the ``config.yaml`` file, and alter the variable paths accordingly: .. code-block:: console - FIXgsm="" - TOPO_DIR="" - SFC_CLIMO_INPUT_DIR="" + FIXgsm: + TOPO_DIR: + SFC_CLIMO_INPUT_DIR: .. _InitialConditions: @@ -271,13 +272,20 @@ To download data for different dates, model types, and formats, users can explor Initial and Lateral Boundary Condition Organization --------------------------------------------------- -The paths to ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` and ``EXTRN_MDL_SOURCE_BASEDIR_LBCS`` must be set in the ``config.yaml`` file as follows: +The paths to ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` and ``EXTRN_MDL_SOURCE_BASEDIR_LBCS`` must be set in the appropriate sections of the ``config.yaml`` file: .. code-block:: console - USE_USER_STAGED_EXTRN_FILES="TRUE" - EXTRN_MDL_SOURCE_BASEDIR_ICS="" - EXTRN_MDL_SOURCE_BASEDIR_LBCS="" + task_get_extrn_ics: + USE_USER_STAGED_EXTRN_FILES: true + EXTRN_MDL_SOURCE_BASEDIR_ICS: path/to/ufs-srweather-app/input_model_data/FV3GFS/grib2/YYYYMMDDHH + EXTRN_MDL_FILES_ICS: [] + EXTRN_MDL_DATA_STORES: disk + task_get_extrn_lbcs: + USE_USER_STAGED_EXTRN_FILES: true + EXTRN_MDL_SOURCE_BASEDIR_LBCS: path/to/ufs-srweather-app/input_model_data/FV3GFS/grib2/YYYYMMDDHH + EXTRN_MDL_FILES_LBCS: [] + EXTRN_MDL_DATA_STORES: disk These last two variables describe where the :term:`IC ` and :term:`LBC ` file directories are located, respectively. For ease of reusing ``config.yaml`` across experiments, it is recommended that users set up the raw :term:`IC/LBC ` file paths to include the model name (e.g., FV3GFS, NAM, RAP, HRRR), data format (e.g., grib2, nemsio), and date (in ``YYYYMMDDHH`` format). For example: ``/path-to/input_model_data/FV3GFS/grib2/2019061518/``. While there is flexibility to modify these settings, this structure will provide the most reusability for multiple dates when using the SRW Application workflow. @@ -301,12 +309,23 @@ For example, a forecast using FV3GFS GRIB2 data that starts at 18h00 UTC would h .. code-block:: console - USE_USER_STAGED_EXTRN_FILES="TRUE" - EXTRN_MDL_SOURCE_BASEDIR_ICS="/path-to/input_model_data/HRRR/grib2/2020081012" + task_get_extrn_ics: + USE_USER_STAGED_EXTRN_FILES: true + EXTRN_MDL_SOURCE_BASEDIR_ICS: /path-to/input_model_data/HRRR/grib2/2020081012 + EXTRN_MDL_FILES_ICS: [hrrr.t{cycle}z.wrfprsf{fhr}.grib2] + EXTRN_MDL_DATA_STORES: disk + task_get_extrn_lbcs: + USE_USER_STAGED_EXTRN_FILES: true + EXTRN_MDL_SOURCE_BASEDIR_LBCS: /path-to/input_model_data/RAP/grib2/2020081012 + EXTRN_MDL_FILES_LBCS: [rap.t{cycle}z.wrfprsf{fhr}.grib2] + EXTRN_MDL_DATA_STORES: disk + +.. COMMENT: Are EXTRN_MDL_FILES_ICS/LBCS correct? Is anything required there? Formerly: + EXTRN_MDL_FILES_ICS=( "hrrr.t12z.wrfprsf00.grib2" ) - EXTRN_MDL_SOURCE_BASEDIR_LBCS="/path-to/input_model_data/RAP/grib2/2020081012" EXTRN_MDL_FILES_LBCS=( "rap.t12z.wrfprsf03.grib2" "rap.t12z.wrfprsf06.grib2" ) + Default Initial and Lateral Boundary Conditions ----------------------------------------------- The default initial and lateral boundary condition files are set to be a severe weather case @@ -371,8 +390,8 @@ Additionally, users must set the following environment variables if they plan to .. code-block:: console - FV3GFS_FILE_FMT_ICS="grib2" - FV3GFS_FILE_FMT_LBCS="grib2" + FV3GFS_FILE_FMT_ICS: grib2 + FV3GFS_FILE_FMT_LBCS: grib2 This is ONLY necessary when using FV3GFS GRIB2 files. These settings may be removed when initializing from the default NEMSIO format for FV3GFS files. From 56ce2bf92869adf4a3c4a91b64b38879b568c996 Mon Sep 17 00:00:00 2001 From: gspetro Date: Tue, 15 Nov 2022 12:27:22 -0500 Subject: [PATCH 33/63] I/O & graphics updates --- docs/UsersGuide/source/Graphics.rst | 6 +++++ docs/UsersGuide/source/InputOutputFiles.rst | 25 +++++++++++-------- .../source/tables/fix_file_list.rst | 13 ++++------ 3 files changed, 25 insertions(+), 19 deletions(-) diff --git a/docs/UsersGuide/source/Graphics.rst b/docs/UsersGuide/source/Graphics.rst index 1e9eb81e61..a0fb615301 100644 --- a/docs/UsersGuide/source/Graphics.rst +++ b/docs/UsersGuide/source/Graphics.rst @@ -107,6 +107,9 @@ The output files (in ``.png`` format) will be located in the directory ``$EXPTDI where in this case ``$EXPTDIR`` is ``/path-to/expt_dirs/test_CONUS_25km_GFSv16`` and ``$CDATE`` is ``2019061518``. +.. note:: + The plotting script may generate a series of deprecation warnings, but users can safely ignore these. The script will generate the plots successfully despite them. + Plotting Differences from Two Experiments -------------------------------------------- @@ -130,6 +133,9 @@ An example of plotting differences from two experiments for the same date and pr In this case, the output ``.png`` files will be located in the directory ``$EXPTDIR1/CDATE/postprd``. +.. note:: + The plotting script may generate a series of deprecation warnings, but users can safely ignore these. The script will generate the plots successfully despite them. + .. _Batch: Submitting Plotting Scripts Through a Batch System diff --git a/docs/UsersGuide/source/InputOutputFiles.rst b/docs/UsersGuide/source/InputOutputFiles.rst index 6271930a1b..ca6ef577ff 100644 --- a/docs/UsersGuide/source/InputOutputFiles.rst +++ b/docs/UsersGuide/source/InputOutputFiles.rst @@ -269,6 +269,8 @@ To download the model input data for the 12-hour "out-of-the-box" experiment con To download data for different dates, model types, and formats, users can explore the ``input_model_data`` section of the data bucket and replace the links above with ones that fetch their desired data. +.. _ICS-LBCS: + Initial and Lateral Boundary Condition Organization --------------------------------------------------- @@ -278,16 +280,18 @@ The paths to ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` and ``EXTRN_MDL_SOURCE_BASEDIR_LBC task_get_extrn_ics: USE_USER_STAGED_EXTRN_FILES: true - EXTRN_MDL_SOURCE_BASEDIR_ICS: path/to/ufs-srweather-app/input_model_data/FV3GFS/grib2/YYYYMMDDHH + EXTRN_MDL_SOURCE_BASEDIR_ICS: EXTRN_MDL_FILES_ICS: [] EXTRN_MDL_DATA_STORES: disk task_get_extrn_lbcs: USE_USER_STAGED_EXTRN_FILES: true - EXTRN_MDL_SOURCE_BASEDIR_LBCS: path/to/ufs-srweather-app/input_model_data/FV3GFS/grib2/YYYYMMDDHH + EXTRN_MDL_SOURCE_BASEDIR_LBCS: EXTRN_MDL_FILES_LBCS: [] EXTRN_MDL_DATA_STORES: disk -These last two variables describe where the :term:`IC ` and :term:`LBC ` file directories are located, respectively. For ease of reusing ``config.yaml`` across experiments, it is recommended that users set up the raw :term:`IC/LBC ` file paths to include the model name (e.g., FV3GFS, NAM, RAP, HRRR), data format (e.g., grib2, nemsio), and date (in ``YYYYMMDDHH`` format). For example: ``/path-to/input_model_data/FV3GFS/grib2/2019061518/``. While there is flexibility to modify these settings, this structure will provide the most reusability for multiple dates when using the SRW Application workflow. +.. COMMENT: Do we need EXTRN_MDL_FILES_*CS and EXTRN_MDL_DATA_STORES? + +The two ``EXTRN_MDL_SOURCE_BASEDIR_*CS`` variables describe where the :term:`IC ` and :term:`LBC ` file directories are located, respectively. For ease of reusing ``config.yaml`` across experiments, it is recommended that users set up the raw :term:`IC/LBC ` file paths to include the model name (e.g., FV3GFS, NAM, RAP, HRRR), data format (e.g., grib2, nemsio), and date (in ``YYYYMMDDHH`` format). For example: ``/path-to/input_model_data/FV3GFS/grib2/2019061518/``. While there is flexibility to modify these settings, this structure will provide the most reusability for multiple dates when using the SRW Application workflow. When files are pulled from NOAA :term:`HPSS` (rather than downloaded from the data bucket), the naming convention looks something like: @@ -328,8 +332,7 @@ For example, a forecast using FV3GFS GRIB2 data that starts at 18h00 UTC would h 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 18 UTC. FV3GFS GRIB2 files are the default model and file format. A tar file +The default initial and lateral boundary condition files are set to be a severe weather case from June 15, 2019 (20190615) at 18 UTC. FV3GFS GRIB2 files are the default model and file format. A tar file (``gst_data.tgz``) containing the model data for this case is available in the `UFS SRW App Data Bucket `__. Running the App for Different Dates @@ -343,7 +346,7 @@ Staging Initial Conditions Manually ----------------------------------- If users want to run the SRW Application with raw model files for dates other than those that are currently available on the preconfigured platforms, they need to stage the data manually. -The data should be placed in ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` and ``EXTRN_MDL_SOURCE_BASEDIR_LBCS`` (which may be the same directory). The path to these variables can be set in the ``config.yaml`` file. Raw model files are available from a number of sources. A few examples are provided here for convenience. +The data should be placed in ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` and ``EXTRN_MDL_SOURCE_BASEDIR_LBCS`` (which may be the same directory). The path to these variables can be set in the ``config.yaml`` file as shown :ref:`above `. Raw model files are available from a number of sources. A few examples are provided here for convenience. NOMADS: https://nomads.ncep.noaa.gov/pub/data/nccf/com/{model}/prod, where model may be: @@ -356,7 +359,7 @@ NOMADS: https://nomads.ncep.noaa.gov/pub/data/nccf/com/{model}/prod, where model * HRRR - available for the last 2 days https://nomads.ncep.noaa.gov/pub/data/nccf/com/hrrr/prod/ -AWS S3: +AWS S3 Data Buckets: * 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) @@ -365,7 +368,7 @@ Google Cloud: * HRRR: https://console.cloud.google.com/marketplace/product/noaa-public/hrrr -FTP Data Repository: (data for SRW Release v1.0.0 & v1.0.1) +FTP Data Repository (data for SRW Release v1.0.0 & v1.0.1): * https://ftp.emc.ncep.noaa.gov/EIB/UFS/SRW/v1p0/fix/ * https://ftp.emc.ncep.noaa.gov/EIB/UFS/SRW/v1p0/simple_test_case/ @@ -383,8 +386,8 @@ It is recommended that users have a separate directory for each file format if t .. code-block:: console - /path-to/model_data/FV3GFS/grib2/YYYYMMDDHH - /path-to/model_data/FV3GFS/nemsio/YYYYMMDDHH + /path-to/input_model_data/FV3GFS/grib2/YYYYMMDDHH + /path-to/input_model_data/FV3GFS/nemsio/YYYYMMDDHH Additionally, users must set the following environment variables if they plan to use GRIB2-formatted files for FV3GFS: @@ -403,4 +406,4 @@ that the users share the same ``EXTRN_MDL_SOURCE_BASEDIR_ICS`` and ``EXTRN_MDL_S 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. +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/tables/fix_file_list.rst b/docs/UsersGuide/source/tables/fix_file_list.rst index 46ebf81eb7..2899f6a149 100644 --- a/docs/UsersGuide/source/tables/fix_file_list.rst +++ b/docs/UsersGuide/source/tables/fix_file_list.rst @@ -44,18 +44,15 @@ Static Files for SRW App Release v2.1.0 wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/CCN_ACTIVATE.BIN wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/cfs_ice1x1monclim19822001.grb wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/cfs_oi2sst1x1monclim19822001.grb + wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/cfs_v2_soilmcpc.1x1.grb wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/CFSR.OISST.1982.2010.monthly.clim wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/CFSR.OISST.1999.2012.monthly.clim.grb wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/CFSR.SEAICE.1982.2010.monthly.clim wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/CFSR.SEAICE.1982.2012.monthly.clim.grb - wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/cfs_v2_soilmcpc.1x1.grb - wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/co2dat_4a wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/co2monthlycyc.txt wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/emcsfc_gland5min.grib2 - wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/emcsfc_snow_cover_climo.grib2 wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/emcsfc_snow_cover.grb - wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/fix_co2_proj - wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/fix_co2_update + wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/emcsfc_snow_cover_climo.grib2 wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/freezeH2O.dat wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/geo_em.d01.lat-lon.2.5m.HGT_M.nc wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/geo_em.d01.nc_HRRR_AK @@ -159,13 +156,13 @@ Static Files for SRW App Release v2.1.0 wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_h2o_pltc.f77 wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hd_paramlist wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hd_paramlist.f00 + wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev.l128.txt + wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev.l128C.txt + wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev.l150.txt wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev3.l28.txt wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev3.l42.txt wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev3.l60.txt wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev3.l64.txt - wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev.l128C.txt - wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev.l128.txt - wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev.l150.txt wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev.l28.txt wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev.l42.txt wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev.l60.txt From 6350a9d6604dccadddd0e3f0253b8f4afc5932e1 Mon Sep 17 00:00:00 2001 From: Natalie Perlin Date: Tue, 15 Nov 2022 12:57:06 -0500 Subject: [PATCH 34/63] Documentation updates for Mac and Linux --- docs/UsersGuide/source/BuildSRW.rst | 43 ++++----------- docs/UsersGuide/source/RunSRW.rst | 81 +++++++++++------------------ 2 files changed, 41 insertions(+), 83 deletions(-) diff --git a/docs/UsersGuide/source/BuildSRW.rst b/docs/UsersGuide/source/BuildSRW.rst index d2dda4525d..2ace8ccf4c 100644 --- a/docs/UsersGuide/source/BuildSRW.rst +++ b/docs/UsersGuide/source/BuildSRW.rst @@ -442,38 +442,21 @@ Additional Details for Building on MacOS .. note:: Users who are **not** building the SRW App on a MacOS machine may skip to the :numref:`Section %s ` to finish building the SRW App or continue to :numref:`Chapter %s ` to configure and run an experiment. -The SRW App can be built on MacOS machines, presuming HPC-Stack has already been installed successfully. The following two options have been tested: +The SRW App can be built on MacOS machines, presuming HPC-Stack has already been installed successfully. The installation is architecture-independent, tested for both x86_64 and M1 chips (running natively). The following configurations have been tested: -* **Option 1:** MacBookAir 2020, M1 chip (arm64, running natively), 4+4 cores, Big Sur 11.6.4, GNU compiler suite v.11.2.0_3 (gcc, gfortran, g++); no MPI pre-installed +* MacBookPro 2019, 2.4 GHz 8-core Intel Core i9 (x86_64), Monterey Sur 12.1, GNU compiler suite v.11.3.0 (gcc, gfortran, g++); no MPI pre-installed -* **Option 2:** MacBook Pro 2015, 2.8 GHz Quad-Core Intel Core i7 (x86_64), Catalina OS X 10.15.7, GNU compiler suite v.11.2.0_3 (gcc, gfortran, g++); no MPI pre-installed +* MacBookAir 2020, M1 chip (arm64, running natively), 4+4 cores, Big Sur 11.6.4, GNU compiler suite v.11.3.0 (gcc, gfortran, g++); no MPI pre-installed -The ``build_macos_gnu`` modulefile initializes the module environment, lists the location of HPC-Stack modules, loads the meta-modules and modules, and sets compilers, additional flags, and environment variables needed for building the SRW App. The modulefile must be modified to include the absolute path to the user's HPC-Stack installation and ``ufs-srweather-app`` directories. In particular, the following section must be modified: +* MacBook Pro 2015, 2.8 GHz Quad-Core Intel Core i7 (x86_64), Catalina OS X 10.15.7, GNU compiler suite v.11.2.0_3 (gcc, gfortran, g++); no MPI pre-installed -.. code-block:: console - - # This path should point to your HPCstack installation directory - setenv HPCstack "/Users/username/hpc-stack/install" - - # This path should point to your SRW Application directory - setenv SRW "/Users/username/ufs-srweather-app" - -An excerpt of the ``build_macos_gnu`` contents appears below for Option 1. To use Option 2, the user will need to comment out the lines specific to Option 1 (using a double hyphen) and uncomment the lines specific to Option 2 in the ``build_macos_gnu`` modulefile. Additionally, users need to verify that all file paths reflect their system's configuration and that the correct version numbers for software libraries appear in the modulefile. +The ``build_macos_gnu.gnu`` modulefile is written as a LMOD module in Lua language, and could be loaded after the LMOD module environment is initialized. This module lists the location of HPC-Stack modules, loads the meta-modules and modules, sets serial and parallel compilers, additional flags, and any environment variables needed for building the SRW App. The modulefile must be modified to include the absolute path to the user's HPC-Stack installation and ``ufs-srweather-app`` directories. In particular, the following section must be modified: .. code-block:: console - -- Option 1 compiler paths: - setenv("CC", "/opt/homebrew/bin/gcc") - setenv("FC", "/opt/homebrew/bin/gfortran") - setenv("CXX", "/opt/homebrew/bin/g++") - - -- Option 2 compiler paths: - --[[ - setenv("CC", "/usr/local/bin/gcc") - setenv("FC", "/usr/local/bin/gfortran") - setenv("CXX", "/usr/local/bin/g++") - --]] - + - This path should point to your HPCstack installation directory + local HPCstack="/Users/username/hpc-stack/install" + Then, users must source the Lmod setup file, just as they would on other systems, and load the modulefiles needed for building and running the SRW App: .. code-block:: console @@ -481,19 +464,13 @@ Then, users must source the Lmod setup file, just as they would on other systems source etc/lmod-setup.sh macos module use module load build_macos_gnu - export LDFLAGS="-L${MPI_ROOT}/lib" + export LDFLAGS+=" -L${MPI_ROOT}/lib " In a csh/tcsh shell, users would run ``source etc/lmod-setup.csh macos`` in place of the first line in the code block above. -Additionally, for Option 1 systems, set the variable ``ENABLE_QUAD_PRECISION`` to ``OFF`` in the ``$SRW/src/ufs-weather-model/FV3/atmos_cubed_sphere/CMakeLists.txt`` file. This change is optional if using Option 2 to build the SRW App. To make this change using a streamline editor (`sed`), run: - -.. code-block:: console - - sed -i .bak 's/QUAD_PRECISION\" ON)/QUAD_PRECISION\" OFF)/' $SRW/src/ufs-weather-model/FV3/atmos_cubed_sphere/CMakeLists.txt - Proceed to building the executables using the process outlined in :numref:`Step %s `. Run an Experiment ===================== -To configure and run an experiment, users should proceed to :numref:`Chapter %s `. \ No newline at end of file +To configure and run an experiment, users should proceed to :numref:`Chapter %s `. diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index 5e2301e018..e025352a99 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -100,10 +100,10 @@ The first two steps depend on the platform being used and are described here for .. _SetUpPythonEnv: -Load the Python Environment for the Regional Workflow +Load the Conda Environment for the Regional Workflow --------------------------------------------------------- -The workflow requires Python 3 with the packages ``PyYAML``, ``Jinja2``, and ``f90nml`` available. This Python environment has already been set up on Level 1 platforms, and it can be activated in the following way: +The workflow requires Python3 installed using conda, with the additional packages built in a separate conda evironment named ``regional_workflow``. This environment has the following additional packages: ``PyYAML``, ``Jinja2``, ``f90nml``, ``scipy``, ``matplotlib``, ``pygrib``, ``cartopy``. This conda/Python environment has already been set up on Level 1 platforms, and can be activated in the following way: .. code-block:: console @@ -114,8 +114,9 @@ The workflow requires Python 3 with the packages ``PyYAML``, ``Jinja2``, and ``f where ```` refers to a valid machine name (see :numref:`Section %s `). .. note:: - If users source the lmod-steup file on a system that doesn't need it, it will not cause any problems (it will simply do a ``module purge``). + If users source the ``lmod-setup.sh`` file on a system that doesn't need it, it will not cause any problems (it will simply do a ``module purge``). +A brief recipe for building the regional_workflow environment could be found in :numref:`Section %s `. The ``wflow_`` modulefile will then output instructions to activate the regional workflow. The user should run the commands specified in the modulefile output. For example, if the output says: .. code-block:: console @@ -123,29 +124,16 @@ The ``wflow_`` modulefile will then output instructions to activate th Please do the following to activate conda: > conda activate regional_workflow -then the user should run ``conda activate regional_workflow``. This will activate the ``regional_workflow`` conda environment. However, the command(s) will vary from system to system. Regardless, the user should see ``(regional_workflow)`` in front of the Terminal prompt at this point. +then the user should run ``conda activate regional_workflow``. This will activate the ``regional_workflow`` conda environment. -.. _LinuxMacActivateWFenv: -Activating the Workflow Environment on Non-Level 1 Systems +Preparing the Workflow Environment on Non-Level 1 Systems ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Users on non-Level 1 systems can copy one of the provided ``wflow_`` files and use it as a template to create a ``wflow_`` file that works for their system. ``wflow_macos`` and ``wflow_linux`` template files are provided in the ``modulefiles`` directory. After making appropriate modifications to a ``wflow_`` file, users can run the commands from :numref:`Step %s ` above to activate the regional workflow. +Users on non-Level 1 systems can copy one of the provided ``wflow_`` files and use it as a template to create a ``wflow_`` file that works for their system. The modules ``wflow_macos`` and ``wflow_linux`` template files are provided in the ``modulefiles`` directory. The modifications are needed to provide paths for python, miniconda modules, loading the modules, conda initialization, and pathfor user's ``regional_workflow`` conda environment. After making modifications to a ``wflow_`` file, users can run the commands from :numref:`Step %s ` above to activate the regional workflow. -On generic Linux or MacOS systems, loading the designated ``wflow_`` file will output instructions similar to the following: - -.. code-block:: console - - Please do the following to activate conda: - > source $VENV/bin/activate - -If that does not work, users can also try: - -.. code-block:: console - - source $HOME/venv/regional_workflow/bin/activate - -However, it may instead be necessary to make additional adjustments to the ``wflow_`` file. +.. note:: + ``conda`` needs to be initialized before running ``conda activate regional_workflow`` command. Depending on user's system and login setup, this could be accomplished by loading the miniconda module or in user's login session. Conda initialization usually involves the following: ``source /etc/profile.d/conda.sh``, where is the base conda installation directory. .. _ExptConfig: @@ -564,36 +552,33 @@ MacOS requires the installation of a few additional packages and, possibly, an u .. code-block:: console bash --version - brew upgrade bash + brew install bash # or: brew upgrade bash brew install coreutils - brew gsed + brew gsed # follow directions to update the PATH env. variable .. _LinuxMacVEnv: -Creating a Virtual Environment on Linux and Mac +Creating a conda Environment on Linux and Mac `````````````````````````````````````````````````` -Users should ensure that the following packages are installed and up-to-date: +Users need to create a conda ``regional_workflow environment``. It could be stored in a local path, which could be a default location (inquire by ``conda info``, and look for ``envs directories`` list), or a user-specified location, e.g. ``$HOME/condaenv/venvs/`` directory. A brief recipe for creating a virtual conda environment on non-Level 1 platforms: .. code-block:: console - python3 -m pip --version - python3 -m pip install --upgrade pip - python3 -m ensurepip --default-pip - python3 -m pip install ruby OR (on MacOS only): brew install ruby + conda create --name regional_workflow python= + conda activate regional_workflow + conda install -c conda-forge f90nml + conda install jinja2 + conda install pyyaml + conda install scipy # install packages for graphics environment + conda install matplotlib + conda install -c conda-forge pygrib + conda install cartopy + conda list # verify the packages installed + conda deactivate -Users must create a virtual regional workflow environment, store it in their ``$HOME/venv/`` directory, and install additional python packages: +where is a numeric version in conda base installation resulting from a query ``python3 --version``, e.g. ``3.9.12``. -.. code-block:: console - - [[ -d $HOME/venv ]] | mkdir -p $HOME/venv - python3 -m venv $HOME/venv/regional_workflow - source $HOME/venv/regional_workflow/bin/activate - python3 -m pip install jinja2 - python3 -m pip install pyyaml - python3 -m pip install f90nml - -The virtual environment can be deactivated by running the ``deactivate`` command. The virtual environment built here will be reactivated in :numref:`Step %s ` and needs to be used to generate the workflow and run the experiment. .. _LinuxMacExptConfig: @@ -632,31 +617,27 @@ In the ``config.yaml`` file, set ``MACHINE: macos`` or ``MACHINE: linux``, and m PREDEF_GRID_NAME: RRFS_CONUS_25km QUILTING: true -Due to the limited number of processors on MacOS systems, users must also configure the domain decomposition defaults (usually, there are only 8 CPUs in M1-family chips and 4 CPUs for x86_64 chips). +Due to the limited number of processors on MacOS systems, users must also configure the domain decomposition defaults in ``predef_grid_params.yaml``. Domain decomposition needs to take into the account number of available CPUs, and configure variables ``LAYOUT_X``, ``LAYOUT_Y``, and ``WRTCMP_write_tasks_per_group``. -For :ref:`Option 1 `, add the following information to ``config.yaml``: +The below example is for using 8 cpus: .. code-block:: console - task_run_fcst: LAYOUT_X: 3 LAYOUT_Y: 2 - WRTCMP_write_groups: 1 WRTCMP_write_tasks_per_group: 2 -For :ref:`Option 2 `, add the following information to ``config.yaml``: +.. note:: + The number of MPI processes required by the forecast will be equal to ``LAYOUT_X`` * ``LAYOUT_Y`` + ``WRTCMP_write_tasks_per_group``. + +For a machine with 4 CPU-s, the following domain decomposition could be used: .. code-block:: console - task_run_fcst: LAYOUT_X: 3 LAYOUT_Y: 1 - WRTCMP_write_groups: 1 WRTCMP_write_tasks_per_group: 1 -.. note:: - The number of MPI processes required by the forecast will be equal to ``LAYOUT_X`` * ``LAYOUT_Y`` + ``WRTCMP_write_tasks_per_group``. - **Configure the Machine File** Configure a ``macos.yaml`` or ``linux.yaml`` machine file in ``$SRW/ush/machine/`` based on the number of CPUs (``NCORES_PER_NODE``) in the system (usually 8 or 4 in MacOS; varies on Linux systems). Job scheduler (``SCHED``) options can be viewed :ref:`here `. Users must also set the path to the fix file directories. From ea270eb956bfec6411def8509cf5f2c1735c5448 Mon Sep 17 00:00:00 2001 From: gspetro Date: Tue, 15 Nov 2022 15:55:43 -0500 Subject: [PATCH 35/63] misc updates --- docs/UsersGuide/source/InputOutputFiles.rst | 1 - docs/UsersGuide/source/WE2Etests.rst | 2 +- docs/UsersGuide/source/tables/Tests.csv | 64 ++++++++++--------- docs/UsersGuide/source/tables/Tests.rst | 5 +- .../source/tables/fix_file_list.rst | 14 ++-- 5 files changed, 46 insertions(+), 40 deletions(-) diff --git a/docs/UsersGuide/source/InputOutputFiles.rst b/docs/UsersGuide/source/InputOutputFiles.rst index ca6ef577ff..fd2a2056db 100644 --- a/docs/UsersGuide/source/InputOutputFiles.rst +++ b/docs/UsersGuide/source/InputOutputFiles.rst @@ -210,7 +210,6 @@ Download and unpack the external files: mkdir crtm && cd crtm wget https://github.com/NOAA-EMC/UPP/releases/download/upp_v11.0.0/fix.tar.gz - wget https://github.com/NOAA-EMC/UPP/archive/refs/tags/upp-srw-v2.1.0.tar.gz tar -xzf fix.tar.gz Modify the ``config.yaml`` file to include the following lines: diff --git a/docs/UsersGuide/source/WE2Etests.rst b/docs/UsersGuide/source/WE2Etests.rst index 5111a8980c..afdeea845c 100644 --- a/docs/UsersGuide/source/WE2Etests.rst +++ b/docs/UsersGuide/source/WE2Etests.rst @@ -13,7 +13,7 @@ ex-scripts), and other auxiliary scripts to ensure that these scripts function c include creating and correctly arranging and naming directories and files, ensuring that all input files are available and readable, calling executables with correct namelists and/or options, etc. Currently, it is up to the external repositories that the App clones (:numref:`Section %s `) to check that changes to those repositories do not change results, or, if they do, to ensure that the new results are acceptable. (At least two of these external repositories---``UFS_UTILS`` and ``ufs-weather-model``---do have such regression tests.) -WE2E tests fall into one of two categories: fundamental or comprehensive. The list of fundamental and comprehensive tests can be viewed in ``ufs-srweather-app/tests/WE2E/machine_suites/``. Fundamental tests are a lightweight set of tests that can be automated and run regularly on each `Level 1 `__ platform. These tests verify that there are no major, obvious faults in the underlying code when running common combinations of grids, input data, and physics suites. Comprehensive tests are the entire set of WE2E tests (minus fundamental tests); they cover a broader range of capabilities, configurations, and components. The complete set of tests can be viewed in :doc:`this table `. +WE2E tests fall into one of two categories: fundamental or comprehensive. The list of supported fundamental and comprehensive tests can be viewed in ``ufs-srweather-app/tests/WE2E/machine_suites/``. Fundamental tests are a lightweight set of tests that can be automated and run regularly on each `Level 1 `__ platform. These tests verify that there are no major, obvious faults in the underlying code when running common combinations of grids, input data, and physics suites. The remaining tests are called comprehensive tests because they cover a broader range of capabilities, configurations, and components. The complete set of tests (fundamental and comprehensive) can be viewed in :doc:`this table `. .. COMMENT: Update! diff --git a/docs/UsersGuide/source/tables/Tests.csv b/docs/UsersGuide/source/tables/Tests.csv index 80570f14a6..4e46551958 100644 --- a/docs/UsersGuide/source/tables/Tests.csv +++ b/docs/UsersGuide/source/tables/Tests.csv @@ -1,30 +1,34 @@ -Test Name,PREDEF_GRID_NAME,CCPP_PHYS_SUITE,EXTRN_MDL_NAME_ICS,EXTRN_MDL_NAME_LBCS,DATES (UTC),FCST_LEN_HRS (hrs),DT_ATMOS (s) -grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v16,RRFS_CONUS_25km,GFS_v16,FV3GFS,FV3GFS,2019070100,6,40 -grid_RRFS_CONUS_13km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v16,RRFS_CONUS_13km,GFS_v16,FV3GFS,FV3GFS,2019070100,6,45 -grid_SUBCONUS_Ind_3km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v16,SUBCONUS_Ind_3km,GFS_v16,FV3GFS,FV3GFS,2019061518,6,40 -grid_SUBCONUS_Ind_3km_ics_HRRR_lbcs_RAP_suite_RRFS_v1beta,SUBCONUS_Ind_3km,RRFS_v1beta,HRRR,RAP,2020080100,6,40 -grid_SUBCONUS_Ind_3km_ics_HRRR_lbcs_RAP_suite_HRRR,SUBCONUS_Ind_3km,HRRR,HRRR,RAP,2020081000,6,40 -grid_SUBCONUS_Ind_3km_ics_HRRR_lbcs_RAP_suite_WoFS_v0,SUBCONUS_Ind_3km,WoFS,HRRR,RAP,2020080100,6,40 -grid_RRFS_CONUS_3km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v16,RRFS_CONUS_3km,GFS_v16,FV3GFS,FV3GFS,2019070100,6,36 -grid_RRFS_CONUScompact_25km_ics_HRRR_lbcs_RAP_suite_RRFS_v1beta,RRFS_CONUScompact_25km,RRFS_v1beta,HRRR,RAP,2020081000,3,40 -grid_RRFS_CONUScompact_13km_ics_HRRR_lbcs_RAP_suite_RRFS_v1beta,RRFS_CONUScompact_13km,RRFS_v1beta,HRRR,RAP,2020080100,6,45 -grid_RRFS_CONUScompact_3km_ics_HRRR_lbcs_RAP_suite_RRFS_v1beta,RRFS_CONUScompact_3km,RRFS_v1beta,HRRR,RAP,2020080100,6,40 -grid_RRFS_CONUScompact_25km_ics_HRRR_lbcs_RAP_suite_HRRR,RRFS_CONUScompact_25km,HRRR,HRRR,RAP,2020081000,6,40 -grid_RRFS_CONUScompact_13km_ics_HRRR_lbcs_RAP_suite_HRRR,RRFS_CONUScompact_13km,HRRR,HRRR,RAP,2020081000,6,45 -grid_RRFS_CONUScompact_3km_ics_HRRR_lbcs_RAP_suite_HRRR,RRFS_CONUScompact_3km,HRRR,HRRR,RAP,2020081000,6,40 -grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_RRFS_v1beta,RRFS_CONUS_25km,RRFS_v1beta,FV3GFS,FV3GFS,2019070100,6,40 -grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_HRRR,RRFS_CONUS_25km,HRRR,FV3GFS,FV3GFS,2019070100,6,40 -grid_RRFS_CONUS_13km_ics_FV3GFS_lbcs_FV3GFS_suite_RRFS_v1beta,RRFS_CONUS_13km,RRFS_v1beta,FV3GFS,FV3GFS,2019070100,6,45 -grid_RRFS_CONUS_13km_ics_FV3GFS_lbcs_FV3GFS_suite_HRRR,RRFS_CONUS_13km,HRRR,FV3GFS,FV3GFS,2019070100,6,45 -grid_RRFS_CONUS_3km_ics_FV3GFS_lbcs_FV3GFS_suite_RRFS_v1beta,RRFS_CONUS_3km,RRFS_v1beta,FV3GFS,FV3GFS,2019070100,6,36 -grid_RRFS_CONUS_3km_ics_FV3GFS_lbcs_FV3GFS_suite_HRRR,RRFS_CONUS_3km,HRRR,FV3GFS,FV3GFS,2019070100,6,36 -community_ensemble_008mems,RRFS_CONUS_25km,FV3_GFS_2017_gfdlmp,FV3GFS,FV3GFS,"2019070100, 2019070112, 2019070200, 2019070212",6,40 -community_ensemble_2mems,RRFS_CONUS_25km,FV3_GFS_2017_gfdlmp,FV3GFS,FV3GFS,"2019070100, 2019070112, 2019070200, 2019070212",6,40 -deactivate_tasks,RRFS_CONUS_25km,FV3_GFS_v15p2,FV3GFS,FV3GFS,2019070100,6,40 -inline_post,RRFS_CONUS_25km,FV3_GFS_v15p2,FV3GFS,FV3GFS,2019070100,6,40 -MET_ensemble_verification,RRFS_CONUS_25km,FV3_GFS_v15p2,FV3GFS,FV3GFS,2019061500,6,40 -MET_verification,RRFS_CONUS_25km,FV3_GFS_v15p2,FV3GFS,FV3GFS,2019061500,6,40 -custom_ESGgrid,N/A,FV3_GFS_2017_gfdlmp_regional,FV3GFS,FV3GFS,2019070100,6,40 -custom_GFDLgrid,N/A,FV3_GFS_2017_gfdlmp,FV3GFS,FV3GFS,2019070100,6,100 -custom_GFDLgrid__GFDLgrid_USE_GFDLgrid_RES_IN_FILENAMES_eq_FALSE,N/A,FV3_GFS_2017_gfdlmp,FV3GFS,FV3GFS,2019070100,6,100 -custom_GFDLgrid__GFDLgrid_USE_GFDLgrid_RES_IN_FILENAMES_eq_TRUE,N/A,FV3_GFS_2017_gfdlmp,FV3GFS,FV3GFS,2019070100,6,100 +F/C,Test Name,PREDEF_GRID_NAME,CCPP_PHYS_SUITE,EXTRN_MDL_NAME_ICS,EXTRN_MDL_NAME_LBCS,DATES (UTC),FCST_LEN_HRS (hrs),DT_ATMOS (s) +F,grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v16,RRFS_CONUS_25km,GFS_v16,FV3GFS,FV3GFS,2019070100,6,40 +F,grid_RRFS_CONUS_13km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v16,RRFS_CONUS_13km,GFS_v16,FV3GFS,FV3GFS,2019070100,6,45 +F,grid_SUBCONUS_Ind_3km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v16,SUBCONUS_Ind_3km,GFS_v16,FV3GFS,FV3GFS,2019061518,6,40 +F,grid_SUBCONUS_Ind_3km_ics_HRRR_lbcs_RAP_suite_RRFS_v1beta,SUBCONUS_Ind_3km,RRFS_v1beta,HRRR,RAP,2020080100,6,40 +F,grid_SUBCONUS_Ind_3km_ics_HRRR_lbcs_RAP_suite_HRRR,SUBCONUS_Ind_3km,HRRR,HRRR,RAP,2020081000,6,40 +F,grid_SUBCONUS_Ind_3km_ics_HRRR_lbcs_RAP_suite_WoFS_v0,SUBCONUS_Ind_3km,WoFS,HRRR,RAP,2020080100,6,40 +C,grid_RRFS_CONUS_3km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v16,RRFS_CONUS_3km,GFS_v16,FV3GFS,FV3GFS,2019070100,6,36 +C,grid_RRFS_CONUScompact_25km_ics_HRRR_lbcs_RAP_suite_RRFS_v1beta,RRFS_CONUScompact_25km,RRFS_v1beta,HRRR,RAP,2020081000,3,40 +C,grid_RRFS_CONUScompact_13km_ics_HRRR_lbcs_RAP_suite_RRFS_v1beta,RRFS_CONUScompact_13km,RRFS_v1beta,HRRR,RAP,2020080100,6,45 +C,grid_RRFS_CONUScompact_3km_ics_HRRR_lbcs_RAP_suite_RRFS_v1beta,RRFS_CONUScompact_3km,RRFS_v1beta,HRRR,RAP,2020080100,6,40 +C,grid_RRFS_CONUScompact_25km_ics_HRRR_lbcs_RAP_suite_HRRR,RRFS_CONUScompact_25km,HRRR,HRRR,RAP,2020081000,6,40 +C,grid_RRFS_CONUScompact_13km_ics_HRRR_lbcs_RAP_suite_HRRR,RRFS_CONUScompact_13km,HRRR,HRRR,RAP,2020081000,6,45 +C,grid_RRFS_CONUScompact_3km_ics_HRRR_lbcs_RAP_suite_HRRR,RRFS_CONUScompact_3km,HRRR,HRRR,RAP,2020081000,6,40 +C,grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_RRFS_v1beta,RRFS_CONUS_25km,RRFS_v1beta,FV3GFS,FV3GFS,2019070100,6,40 +C,grid_RRFS_CONUS_25km_ics_FV3GFS_lbcs_FV3GFS_suite_HRRR,RRFS_CONUS_25km,HRRR,FV3GFS,FV3GFS,2019070100,6,40 +C,grid_RRFS_CONUS_13km_ics_FV3GFS_lbcs_FV3GFS_suite_RRFS_v1beta,RRFS_CONUS_13km,RRFS_v1beta,FV3GFS,FV3GFS,2019070100,6,45 +C,grid_RRFS_CONUS_13km_ics_FV3GFS_lbcs_FV3GFS_suite_HRRR,RRFS_CONUS_13km,HRRR,FV3GFS,FV3GFS,2019070100,6,45 +C,grid_RRFS_CONUS_3km_ics_FV3GFS_lbcs_FV3GFS_suite_RRFS_v1beta,RRFS_CONUS_3km,RRFS_v1beta,FV3GFS,FV3GFS,2019070100,6,36 +C,grid_RRFS_CONUS_3km_ics_FV3GFS_lbcs_FV3GFS_suite_HRRR,RRFS_CONUS_3km,HRRR,FV3GFS,FV3GFS,2019070100,6,36 +C,community_ensemble_008mems,RRFS_CONUS_25km,FV3_GFS_2017_gfdlmp,FV3GFS,FV3GFS,"2019070100, 2019070112, 2019070200, 2019070212",6,40 +C,community_ensemble_2mems,RRFS_CONUS_25km,FV3_GFS_2017_gfdlmp,FV3GFS,FV3GFS,"2019070100, 2019070112, 2019070200, 2019070212",6,40 +C,deactivate_tasks,RRFS_CONUS_25km,FV3_GFS_v15p2,FV3GFS,FV3GFS,2019070100,6,40 +C,inline_post,RRFS_CONUS_25km,FV3_GFS_v15p2,FV3GFS,FV3GFS,2019070100,6,40 +C,MET_ensemble_verification,RRFS_CONUS_25km,FV3_GFS_v15p2,FV3GFS,FV3GFS,2019061500,6,40 +C,MET_verification,RRFS_CONUS_25km,FV3_GFS_v15p2,FV3GFS,FV3GFS,2019061500,6,40 +C,custom_ESGgrid,N/A,FV3_GFS_2017_gfdlmp_regional,FV3GFS,FV3GFS,2019070100,6,40 +C,custom_GFDLgrid,N/A,FV3_GFS_2017_gfdlmp,FV3GFS,FV3GFS,2019070100,6,100 +C,custom_GFDLgrid__GFDLgrid_USE_GFDLgrid_RES_IN_FILENAMES_eq_FALSE,N/A,FV3_GFS_2017_gfdlmp,FV3GFS,FV3GFS,2019070100,6,100 +C,custom_GFDLgrid__GFDLgrid_USE_GFDLgrid_RES_IN_FILENAMES_eq_TRUE,N/A,FV3_GFS_2017_gfdlmp,FV3GFS,FV3GFS,2019070100,6,100 +C,specify_DOT_OR_USCORE,RRFS_CONUS_25km,FV3_GFS_2017_gfdlmp,GSMGFS,GSMGFS,2019052000,6,40 +C,specify_DT_ATMOS_LAYOUT_XY_BLOCKSIZE,RRFS_CONUScompact_25km,FV3_HRRR,HRRR,RAP,2020080100,6,100 +C,specify_RESTART_INTERVAL,RRFS_CONUS_25km,FV3_GFS_v15p2,FV3GFS,FV3GFS,2019070100,6,40 +C,specify_template_filenames,RRFS_CONUS_25km,FV3_GFS_v15p2,FV3GFS,FV3GFS,2019070100,6,40 \ No newline at end of file diff --git a/docs/UsersGuide/source/tables/Tests.rst b/docs/UsersGuide/source/tables/Tests.rst index f24f0c1bd5..5fc7d6cc4a 100644 --- a/docs/UsersGuide/source/tables/Tests.rst +++ b/docs/UsersGuide/source/tables/Tests.rst @@ -4,7 +4,10 @@ Supported WE2E Tests ************************************************************ +``F = Fundamental`` | ``C = Comprehensive`` + .. csv-table:: :file: Tests.csv - :widths: 20,20,20,20,40,20,20,20 + :widths: 5,20,20,20,20,40,80,20,20 :header-rows: 1 + diff --git a/docs/UsersGuide/source/tables/fix_file_list.rst b/docs/UsersGuide/source/tables/fix_file_list.rst index 2899f6a149..ea42dcb239 100644 --- a/docs/UsersGuide/source/tables/fix_file_list.rst +++ b/docs/UsersGuide/source/tables/fix_file_list.rst @@ -159,19 +159,19 @@ Static Files for SRW App Release v2.1.0 wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev.l128.txt wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev.l128C.txt wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev.l150.txt - wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev3.l28.txt - wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev3.l42.txt - wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev3.l60.txt - wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev3.l64.txt wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev.l28.txt wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev.l42.txt wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev.l60.txt - wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev.l64sl.txt wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev.l64.txt + wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev.l64sl.txt wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev.l65.txt wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev.l65.txt_0.1hPa wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev.l91.txt wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev.l98.txt + wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev3.l28.txt + wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev3.l42.txt + wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev3.l60.txt + wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_hyblev3.l64.txt wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_iceclim.2x2.grb wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_idea_coeff_hflux.dat wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_idea_coeff_lflux.dat @@ -303,7 +303,6 @@ Static Files for SRW App Release v2.1.0 wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_npoess_paramlist wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_o3clim.txt wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_o3prdlos.f77 - wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_orography_0.5x0.5.dat wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_orography.t1148.2304.1152.grb wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_orography.t126.384.190.grb wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_orography.t126.384.190.rg.f77 @@ -376,6 +375,7 @@ Static Files for SRW App Release v2.1.0 wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_orography_uf.t92.192.94.grb wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_orography_uf.t92.192.94.rg.f77 wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_orography_uf.t92.192.94.rg.grb + wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_orography_0.5x0.5.dat wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_salclm.t1534.3072.1536.nc wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_sfc_emissivity_idx.txt wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_shdmax.0.144x0.144.grb @@ -518,11 +518,11 @@ Static Files for SRW App Release v2.1.0 wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_soiltype.statsgo.t94.192.96.rg.grb wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_solarconstant_cmip_an.txt wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_solarconstant_cmip_mn.txt - wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_solarconstantdata.txt wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_solarconstant_noaa_a0.txt wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_solarconstant_noaa_an.txt wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_solarconstant_noaa_an.txt_v2011 wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_solarconstant_noaa_an.txt_v2019 + wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_solarconstantdata.txt wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_spectral_coefs.f77 wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_sstclim.2x2.grb wget https://noaa-ufs-srw-pds.s3.amazonaws.com/fix/fix_am/global_tbthe.f77 From b7b2512d0deba1758301865f2c868d54ca5b497d Mon Sep 17 00:00:00 2001 From: gspetro Date: Tue, 15 Nov 2022 16:12:02 -0500 Subject: [PATCH 36/63] add draft of CCPP updates --- docs/UsersGuide/source/Introduction.rst | 2 +- docs/UsersGuide/source/tables/CCPPUpdates.rst | 59 +++++++++++++++++++ 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 docs/UsersGuide/source/tables/CCPPUpdates.rst diff --git a/docs/UsersGuide/source/Introduction.rst b/docs/UsersGuide/source/Introduction.rst index 27fbadf948..1c4c8c71df 100644 --- a/docs/UsersGuide/source/Introduction.rst +++ b/docs/UsersGuide/source/Introduction.rst @@ -11,7 +11,7 @@ The UFS includes `multiple applications `) - * Updates to :term:`CCPP` that target the top of the ``main`` branch (which is ahead of CCPP v6.0.0) + * Updates to :term:`CCPP` that target the top of the ``main`` branch (which is ahead of CCPP v6.0.0). See :ref:`this page ` for a detailed summary of updates. * Support for the :term:`UPP` inline post option (see :ref:`here `) * Addition of a multi-purpose code clean-up script (``devclean.sh``) (see :numref:`Section %s `) * Documentation updates to reflect the changes above diff --git a/docs/UsersGuide/source/tables/CCPPUpdates.rst b/docs/UsersGuide/source/tables/CCPPUpdates.rst new file mode 100644 index 0000000000..40db96fa67 --- /dev/null +++ b/docs/UsersGuide/source/tables/CCPPUpdates.rst @@ -0,0 +1,59 @@ +:orphan: + +.. _CCPPUpdates: + +================================================ +CCPP Updates for the SRW App v2.1.0 Release +================================================ + +Here is what’s new in CCPP Physics for the UFS SRW v2.1.0 public release. These changes are expected to improve the performance of the RRFS_v1beta, HRRR, and WoFS_v0 suites. + +RRFS_v1beta, HRRR, and WoFS Suites: +================================================ + +MYNN-EDMF PBL scheme: + * Added the ability to configure the MYNN-EDMF PBL scheme to function at closure level 2.5, 2.6 (current default), or 3.0 closure and included a partial-condensation scheme. + * Reverted to Tian-Kuang lateral entrainment, which reduces a high relative humidity bias found in some HRRR cases. + * Reduced the entrainment rate for momentum. + * Removed the first-order form of the Chaboureau and Bechtold (CB2002) stratiform cloud fraction calculation—it now only uses a higher form of CB. + * Changed CB to use absolute temperature instead of “liquid” temperature (CB2002). + * Added variable ``sm3d``---a stability function for momentum. + +MYNN Surface Layer Scheme: + * Moved four internal parameters to namelist options: + + * ``Isftcflux``: flag for thermal roughness lengths over water in MYNN-SFCLAY + * ``Iz0tlnd``: flag for thermal roughness lengths over land in MYNN-SFCLAY + * ``sfclay_compute_flux``: flag for computing surface scalar fluxes in MYNN-SFCLAY + * ``sfclay_compute_diag``: flag for computing surface diagnostics in MYNN-SFCLAY + +Subgrid Scale Clouds Interstitial Scheme: + * Separated frozen subgrid clouds into snow and ice categories. + * Added CB2005 as a new cloud fraction option. +RRTMG: + * Removed cloud fraction calculations for the MYNN-EDMF scheme, since cloud fraction is already defined in the subgrid scale cloud scheme used by MYNN-EDMF. + +HRRR Suite: +================================================ + +RUC Land Surface Model: + * In the computation of soil resistance to evaporation, the soil moisture field capacity factor changed from 0.7 to 1. This change will reduce direct evaporation from bare soil. + +GSL Drag Suite: + * Removed limits on the standard deviation of small-scale topography used by the small-scale GWD and turbulent orographic form drag (TOFD) schemes; removed the height limitation of the TOFD scheme. + + * Removed the “sfc_nst” scheme from the suite to avert a cooling SST trend that had a negative impact on surface variables in the coastal regions. + +RRFS_v1beta Suite: +================================================ + +Noah-MP Land Surface Model: + * Added a connection with the MYNN surface layer scheme as via namelist option ``opt_sfc=4``. + +GFS_v16 Suite: +================================================ + +GFS saSAS Deep Convection and saMF Shallow Cumulus Schemes: + * Added a new prognostic updraft area fraction closure in saSAS and saMF (Bengtsson et al., 2022). It is controlled via namelist option ``progsima`` and set to ``false`` by default. + + From dc92c0c38314b54361105c05e727f0c90accef44 Mon Sep 17 00:00:00 2001 From: gspetro Date: Tue, 15 Nov 2022 22:01:44 -0500 Subject: [PATCH 37/63] misc updates --- docs/UsersGuide/source/Components.rst | 2 +- docs/UsersGuide/source/Introduction.rst | 2 -- docs/UsersGuide/source/RunSRW.rst | 4 ++-- docs/UsersGuide/source/WE2Etests.rst | 8 ++++---- .../_static/SRW_overall_workflow_run.png | Bin 84193 -> 81443 bytes 5 files changed, 7 insertions(+), 9 deletions(-) diff --git a/docs/UsersGuide/source/Components.rst b/docs/UsersGuide/source/Components.rst index e34476c308..8633502822 100644 --- a/docs/UsersGuide/source/Components.rst +++ b/docs/UsersGuide/source/Components.rst @@ -35,7 +35,7 @@ The prognostic atmospheric model in the UFS SRW Application is the Finite-Volume Supported model resolutions in this release include 3-, 13-, and 25-km predefined contiguous U.S. (:term:`CONUS`) domains, each with 127 vertical levels. Preliminary tools for users to define their own domain are also available in the release with full, formal support of these tools to be provided in future releases. The Extended Schmidt Gnomonic (ESG) grid is used with the FV3-LAM, which features relatively uniform grid cells across the entirety of the domain. Additional information about the FV3 dynamical core can be found in the `scientific documentation `__, the `technical documentation `__, and on the `NOAA Geophysical Fluid Dynamics Laboratory website `__. -Interoperable atmospheric physics, along with various land surface model options, are supported through the Common Community Physics Package (CCPP), described `here `__. Atmospheric physics are a set of numerical methods describing small-scale processes such as clouds, turbulence, radiation, and their interactions. There will be four physics suites supported for the SRW App v2.1.0 release. The first is the FV3_RRFS_v1beta physics suite, which is being tested for use in the future operational implementation of the Rapid Refresh Forecast System (RRFS) planned for 2023-2024, and the second is an updated version of the physics suite used in the operational Global Forecast System (GFS) v16. Additionally, FV3_WoFS_v0 and FV3_HRRR will be supported. A scientific description of the CCPP parameterizations and suites can be found in the `CCPP Scientific Documentation `__, and CCPP technical aspects are described in the `CCPP Technical Documentation `__. The model namelist has many settings beyond the physics options that can optimize various aspects of the model for use with each of the supported suites. Additional information on Stochastic Physics options is available `here `__. +Interoperable atmospheric physics, along with various land surface model options, are supported through the Common Community Physics Package (CCPP), described `here `__. Atmospheric physics are a set of numerical methods describing small-scale processes such as clouds, turbulence, radiation, and their interactions. There are four physics suites supported for the SRW App v2.1.0 release. The first is the FV3_RRFS_v1beta physics suite, which is being tested for use in the future operational implementation of the Rapid Refresh Forecast System (RRFS) planned for 2023-2024, and the second is an updated version of the physics suite used in the operational Global Forecast System (GFS) v16. Additionally, FV3_WoFS_v0 and FV3_HRRR will be supported. A detailed list of CCPP updates since the SRW App v2.0.0 release is available :ref:`here `. A scientific description of CCPP parameterizations and suites can be found in the `CCPP Scientific Documentation `__, and CCPP technical aspects are described in the `CCPP Technical Documentation `__. The model namelist has many settings beyond the physics options that can optimize various aspects of the model for use with each of the supported suites. Additional information on Stochastic Physics options is available `here `__. .. COMMENT: Check CCPP tech doc functionality. diff --git a/docs/UsersGuide/source/Introduction.rst b/docs/UsersGuide/source/Introduction.rst index 1c4c8c71df..cc157cace7 100644 --- a/docs/UsersGuide/source/Introduction.rst +++ b/docs/UsersGuide/source/Introduction.rst @@ -16,8 +16,6 @@ The UFS includes `multiple applications `) * Documentation updates to reflect the changes above -.. COMMENT: Link to details (e.g., for devclean script) and/or add details (e.g., about METplus bugs) in appropriate sections. - Future work will expand the capabilities of the application to include data assimilation (DA) and a forecast restart/cycling capability. This documentation provides: diff --git a/docs/UsersGuide/source/RunSRW.rst b/docs/UsersGuide/source/RunSRW.rst index 5e2301e018..8251d5ae96 100644 --- a/docs/UsersGuide/source/RunSRW.rst +++ b/docs/UsersGuide/source/RunSRW.rst @@ -4,7 +4,7 @@ Running the SRW App =========================== -This chapter explains how to set up and run the "out-of-the-box" case for the SRW App. However, the steps are relevant to any SRW Application experiment and can be modified to suit user goals. This chapter assumes that users have already built the SRW App by following the steps in :numref:`Chapter %s `. These steps are also applicable to containerized versions of the SRW App and assume that the user has completed Steps :numref:`%s ` through :numref:`%s `. +This chapter explains how to set up and run the "out-of-the-box" case for the SRW Application. However, the steps are relevant to any SRW App experiment and can be modified to suit user goals. This chapter assumes that users have already built the SRW App by following the steps in :numref:`Chapter %s `. These steps are also applicable to containerized versions of the SRW App and assume that the user has completed all of :numref:`Section %s `. The out-of-the-box SRW App case builds a weather forecast for June 15-16, 2019. Multiple convective weather events during these two days produced over 200 filtered storm reports. Severe weather was clustered in two areas: the Upper Midwest through the Ohio Valley and the Southern Great Plains. This forecast uses a predefined 25-km Continental United States (:term:`CONUS`) domain (RRFS_CONUS_25km), the Global Forecast System (:term:`GFS`) version 16 physics suite (FV3_GFS_v16 :term:`CCPP`), and :term:`FV3`-based GFS raw external model data for initialization. @@ -13,7 +13,7 @@ The out-of-the-box SRW App case builds a weather forecast for June 15-16, 2019. The SRW Application has `four levels of support `__. The steps described in this chapter will work most smoothly on preconfigured (Level 1) systems. This chapter can also serve as a starting point for running the SRW App on other systems (including generic Linux/Mac systems), but the user may need to perform additional troubleshooting. -The overall procedure for generating an experiment is shown in :numref:`Figure %s `, with the scripts to generate and run the workflow shown in red. Once the SRW has been built, as described in :numref:`Chapter %s `, the steps to run a forecast are as follows: +The overall procedure for generating an experiment is shown in :numref:`Figure %s `, with the scripts to generate and run the workflow shown in red. Once the SRW App has been built, as described in :numref:`Chapter %s `, the steps to run a forecast are as follows: #. :ref:`Download and stage data ` #. :ref:`Optional: Configure a new grid ` diff --git a/docs/UsersGuide/source/WE2Etests.rst b/docs/UsersGuide/source/WE2Etests.rst index afdeea845c..81863944ad 100644 --- a/docs/UsersGuide/source/WE2Etests.rst +++ b/docs/UsersGuide/source/WE2Etests.rst @@ -20,7 +20,7 @@ WE2E tests fall into one of two categories: fundamental or comprehensive. The li For convenience, the WE2E tests are currently grouped into the following categories (under ``ufs-srweather-app/tests/WE2E/test_configs``): * ``grids_extrn_mdls_suites_community`` - This category of tests ensures that the SRW App workflow running in **community mode** (i.e., with ``RUN_ENVIR`` set to ``"community"``) completes successfully for various combinations of predefined grids, physics suites, and input data from different external models. Note that in community mode, all output from the App is placed under a single experiment directory. + This category of tests ensures that the SRW App workflow running in **community mode** (i.e., with ``RUN_ENVIR`` set to ``"community"``) completes successfully for various combinations of predefined grids, physics suites, and input data from different external models. Note that in community mode, all output from the application is placed under a single experiment directory. * ``grids_extrn_mdls_suites_nco`` This category of tests ensures that the workflow running in **NCO mode** (i.e., with ``RUN_ENVIR`` set to ``"nco"``) completes successfully for various combinations of predefined grids, physics suites, and input data from different external models. Note that in NCO mode, an operational run environment is used. This involves a specific directory structure and variable names (see :numref:`Section %s `). @@ -36,7 +36,7 @@ The test configuration files for these categories are located in the following d ufs-srweather-app/tests/WE2E/test_configs/grids_extrn_mdls_suites_nco ufs-srweather-app/tests/WE2E/test_configs/wflow_features -The script to run the WE2E tests is named ``run_WE2E_tests.sh`` and is located in the directory ``ufs-srweather-app/tests/WE2E``. Each WE2E test has an associated configuration file named ``config.${test_name}.yaml``, where ``${test_name}`` is the name of the corresponding test. These configuration files are subsets of the full range of ``config.yaml`` experiment configuration options. (See :numref:`Section %s ` for all configurable options and :numref:`Section %s ` for information on configuring ``config.yaml``.) For each test, the ``run_WE2E_tests.sh`` script reads in the test configuration file and generates from it a complete ``config.yaml`` file. It then calls ``generate_FV3LAM_wflow.py``, which in turn reads in ``config.yaml`` and generates a new experiment for the test. The name of each experiment directory is set to that of the corresponding test, and a copy of ``config.yaml`` for each test is placed in its experiment directory. +The script to run the WE2E tests is named ``run_WE2E_tests.sh`` and is located in the directory ``ufs-srweather-app/tests/WE2E``. Each WE2E test has an associated configuration file named ``config.${test_name}.yaml``, where ``${test_name}`` is the name of the corresponding test. These configuration files are subsets of the full range of ``config.yaml`` experiment configuration options. (See :numref:`Chapter %s ` for all configurable options and :numref:`Section %s ` for information on configuring ``config.yaml``.) For each test, the ``run_WE2E_tests.sh`` script reads in the test configuration file and generates from it a complete ``config.yaml`` file. It then calls ``generate_FV3LAM_wflow.py``, which in turn reads in ``config.yaml`` and generates a new experiment for the test. The name of each experiment directory is set to that of the corresponding test, and a copy of ``config.yaml`` for each test is placed in its experiment directory. Since ``run_WE2E_tests.sh`` calls ``generate_FV3LAM_wflow.py`` for each test, the Python modules required for experiment generation must be loaded before ``run_WE2E_tests.sh`` @@ -61,10 +61,10 @@ Users may specify the set of tests to run by creating a text file, such as ``my_ grid_RRFS_CONUScompact_25km_ics_FV3GFS_lbcs_FV3GFS_suite_GFS_v16 -(and ``Ctrl + D`` to exit). For each test in ``my_tests.txt``, ``run_WE2E_tests.sh`` will generate a new experiment directory and, by default, create a new :term:`cron` job in the user's cron table that will (re)launch the workflow every 2 minutes. This cron job calls the workflow launch script ``launch_FV3LAM_wflow.sh`` until the workflow either completes successfully (i.e., all tasks are successful) or fails (i.e., at least one task fails). +(and ``Ctrl + D`` to exit). For each test in ``my_tests.txt``, ``run_WE2E_tests.sh`` will generate a new experiment directory and, by default, create a new :term:`cron` job in the user's cron table that will (re)launch the workflow every 2 minutes. This cron job calls the workflow launch script (``launch_FV3LAM_wflow.sh``) until the workflow either completes successfully (i.e., all tasks SUCCEEDED) or fails (i.e., at least one task fails). The cron job is then removed from the user's cron table. -The examples below demonstrate several common ways that ``run_WE2E_tests.sh`` can be called with the ``my_tests.txt`` file above. These examples assume that the user has already built the SRW App and loaded the regional workflow as described in :numref:`Chapter %s ` (and in detail in Chapters :numref:`%s ` and :numref:`%s `). +The examples below demonstrate several common ways that ``run_WE2E_tests.sh`` can be called with the ``my_tests.txt`` file above. These examples assume that the user has already built the SRW App and loaded the regional workflow as described in :numref:`Section %s `. #. To run the tests listed in ``my_tests.txt`` on Hera and charge the computational resources used to the "rtrr" account, use: diff --git a/docs/UsersGuide/source/_static/SRW_overall_workflow_run.png b/docs/UsersGuide/source/_static/SRW_overall_workflow_run.png index 2f2859e7e943462812574d08887c605f3be6b846..d1bb7dfdd848cf2f5f22b33d5daec2fec69df970 100644 GIT binary patch literal 81443 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