Skip to content

Develop new configurations for UFS‐SCHISM

Jana Haddad edited this page Oct 18, 2024 · 3 revisions

WARNING: THIS PAGE IS CURRENTLY IN ACTIVE DEVELOPMENT. USE THESE INSTRUCTIONS WITH CAUTION AT THIS TIME. CHECK BACK IN FOR A FINALIZED VERSION.


UFS-Coastal is a modeling framework for coupled coastal applications and regional prediction systems, contains coupled model components that link the atmospheric, ocean and terrestrial realms under one common framework, contains data components and an ESMF/NUOPC based mediator component, includes two types of components: 1) 1-way and 2-way coupled model components (coupled via the mediator); 2) Data component that pass forcing data, as required, to the model components.

UFS‐SCHISM

UFS-Coastal

To download the application use the “git” command:

git clone --recurse-submodules https://github.com/oceanmodeling/ufs-weather-model (git clone --recurse-submodules https://github.com/oceanmodeling/ufs-weather-model.git -b feature/coastal_app)

This command will download UFS-Coastal and all its components into the directory “ufs-weather-model” Pay attention to the “--recursive” option in the git command as it is required to successfully download model components that are defined as “submodules” in the application Omitting this option will result in empty directories in “ufs-weather-model” for all the submodules

If the user wants UFS-Coastal to be installed locally using another name, the above “git” command can be modified as: git clone --recursive https://github.com/oceanmodeling/ufs-weather-model.git other_name where “other_name” is the directory name to download (clone) the application to (this does not affect how ufs-coastal is being used)

Prerequisites

The application is exclusively designed to use the spack-stack framework spack-stack needs to be installed in the HPC cluster, desktop or any other platform before UFS-Coastal can be used spack-stack installs all library dependencies and the “Lmod” module environment system that is used to load the required libraries for UFS-Coastal (spack-stack is not limited for UFS-Coastal usage only) One or both of the supported compiler options (GNU, Intel) should be available in the host operating system (OS) It is recommended that recent versions of GNU or Intel compilers are used The UFS-Coastal team has extensively tested UFS-Coastal and its model components using different versions of the supported compilers. Issues were resolved and updates were pushed to model component GitHub repos – testing is always an ongoing process for the application A working MPI (Message Passing Interface) installation. Some common MPI libraries are: OpenMPI, mpich, mvapich, impi The MPI should be compatible with the compilers used (usually different versions of the libraries are installed in the host OS) – important Recent versions of git and git-tools

Compilers

GNU family of compilers Version 8.x and above is recommended Intel family of compilers Version 19.x and above is recommended

Platforms

Since the UFS Coastal is developed as a fork of the UFS Weather Model, the same platforms supported by the UFS Weather Model (see list of suported platforms) is also used by the UFS Coastal.

Supported are all Tier 1 HPC clusters (cloud clusters included)

Modulefiles for preconfigured platforms are located in modulefiles/ufs_.. For example, to load the modules from the ufs-coastal directory on MSU’s Hercules:

cd ufs-coastal module use modulefiles module load ufs_hercules.intel

Build System Interface

CMake is used to drive the build (compilation) process Built-in cmake modules have been developed to drive all “application” based compilations The cmake modules are continually being updated to include all options available in model components (the goal is to be able to use the component(s) under a variety of different configurations) Bash scripting is used in the top level to drive the CMake build process and the configuration of a specific application supported in UFS-Coastal The ufs-weather-model/tests/rt.sh script is used to compile and run a regression test case (pre-configured test cases) The ufs-weather-model/tests/compile.sh script can be used to only compile the UFS-weather-model executable.

User is responsible to setup and configure all model components for the target application

Regression tests

After cloning the UFS-Coastal, go to the test folder: cd ufs-weather-model/tests/

Modified the rt.sh in the folder: DISKNM=/work/noaa/nems/tufuk/RT Set the output folder dprefix=/work/noaa/stmp/${USER} /work/noaa/nosofs/yunfangs/ufs-ww3/stmp To compile the source codes:

./compile.sh "orion" "-DAPP=CSTLS -DNO_PARMETIS=OFF -DOLDIO=ON" coastal intel NO NO

To run the regression test

./rt.sh -a coast -l rt_coastal.conf -c -k -n coastal_ike_shinnecock_atm2sch intel

To update the UFS-coastal in the folder of ufs-weather-model by using git pull

The real work directory /work/noaa/nosofs/pvelissa/ufs-coastal/tests/build_fv3_coastal

The executable file fv3_coastal.exe

For UFS-coastall, it will have same executable for different configuration

rt.conf runs in different platform

The output directory

/work/noaa/nosofs/pvelissa/ufs-coastal_tests/stmp/pvelissa/FV3_RT/rt_414440/coastal_ike_shinnecock_atm2sch_intel