.. _NCQuickstart: ==================== 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 :srw-wiki:`Level 1 ` systems. Users should expect to reference other chapters of this User's Guide, particularly :numref:`Section %s: Building the SRW App ` and :numref:`Section %s: Running the SRW App `, for additional explanations regarding each step. Install the Prerequisite Software Stack ========================================= SRW App users who are **not** working on a :srw-wiki:`Level 1 ` platform will need to install the prerequisite software stack via :term:`spack-stack` prior to building the SRW App on a new machine. Users can find installation instructions in the :doc:`spack-stack documentation `. The steps will vary slightly depending on the user's platform, but detailed instructions for a variety of platforms are available in the documentation. Users may also post questions in the `ufs-community Discussions tab `__. Once spack-stack been successfully installed, users can move on to building the SRW Application. .. _QuickBuildRun: 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:`Section %s: Building the SRW App ` and :numref:`Section %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: .. include:: ../../doc-snippets/clone.rst #. Check out the external repositories: .. include:: ../../doc-snippets/externals.rst #. Set up the build environment and build the executables: .. code-block:: console ./devbuild.sh --platform= where ```` is replaced with the name of the user's platform/system. Valid values include: ``derecho`` | ``gaeac6`` | ``hera`` | ``hercules`` | ``noaacloud`` | ``orion`` | ``ursa`` | For additional details, see :numref:`Section %s `, or view :numref:`Section %s ` to try the CMake build approach instead. #. Users on a :srw-wiki:`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 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: .. include:: ../../doc-snippets/load-env.rst After loading the workflow, users should follow the instructions printed to the console. For example, if the output says: .. code-block:: console Please do the following to activate conda: > conda activate srw_app then the user should run |activate| to activate the workflow environment. #. Configure the experiment: Copy the contents of the sample experiment from ``config.community.yaml`` to ``config.yaml``: .. code-block:: console cd ush cp config.community.yaml config.yaml 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). For example, a user on Hercules (login node 1) might adjust or add the following fields to run the 12-hr "out-of-the-box" case on Hercules using prestaged system data and :term:`cron` to automate the workflow: .. code-block:: console user: MACHINE: hercules ACCOUNT: epic workflow: EXPT_SUBDIR: run_basic_srw USE_CRON_TO_RELAUNCH: true CRON_RELAUNCH_INTVL_MNTS: 3 task_get_extrn_ics: USE_USER_STAGED_EXTRN_FILES: true EXTRN_MDL_SOURCE_BASEDIR_ICS: /work/noaa/epic/role-epic/contrib/UFS_SRW_data/develop/input_model_data/FV3GFS/grib2/${yyyymmddhh} task_get_extrn_lbcs: USE_USER_STAGED_EXTRN_FILES: true EXTRN_MDL_SOURCE_BASEDIR_LBCS: /work/noaa/epic/role-epic/contrib/UFS_SRW_data/develop/input_model_data/FV3GFS/grib2/${yyyymmddhh} Users on a different system would update the machine, account, and data paths accordingly. 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:`Section %s `. #. Generate the experiment workflow. .. code-block:: console ./generate_FV3LAM_wflow.py #. Run the workflow from the experiment directory (``$EXPTDIR``). By default, the path to this directory is ``${EXPT_BASEDIR}/${EXPT_SUBDIR}`` (see :numref:`Section %s ` for more detail). There are several methods for running the workflow, which are discussed in :numref:`Section %s `. Most require the :ref:`Rocoto Workflow Manager `. For example, if the user automated the workflow using cron, run: .. code-block:: console cd $EXPTDIR rocotostat -w FV3LAM_wflow.xml -d FV3LAM_wflow.db -v 10 The user can resubmit the ``rocotostat`` command as needed to check the workflow progress. If the user has Rocoto but did *not* automate the workflow using :term:`cron`, run: .. code-block:: console cd $EXPTDIR ./launch_FV3LAM_wflow.sh To (re)launch the workflow and check the experiment's progress, run: .. 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 ` or :ref:`vertical levels ` instead of using a predefined grid and default set of vertical levels. Users can also :ref:`plot the output ` of their experiment(s) or :ref:`run verification tasks using METplus `.