Skip to content

Commit

Permalink
updated version of ufs to include WoFS suite and ccpp-v6 (#293)
Browse files Browse the repository at this point in the history
* Fix artifact creation for branches with / in name (#275)

The slash in branch names such as release/.* and feature/.* is
interpreted as a directory separator. This change replaces the "/"
character with a "_".

* Include documentation for building/running SRW App on Mac (#240)

* updated docs

* added git submodule

* fix formatting

* added new submodule commits

* fixed ref links

* finished Intro

* finish Components & Intro edits

* edited Rocoto workflow section of Quickstart

* added minor hpc submodule commits

* Updates to Rocoto Workflow in Quick Start

* add to HPC-stack intro

* submodule updates

* added submodule docs edits

* hpc-stack updates & formatting fixes

* hpc-stack intro edits

* bibtex attempted fix

* add hpc-stack module edits

* update sphinxcontrib version

* add .readthedocs.yaml file

* update .readthedocs.yaml file

* update .readthedocs.yaml file

* update conf.py

* updates .readthedocs.yaml with submodules

* updates .readthedocs.yaml with submodules

* submodule updates

* submodule updates

* minor Intro edits

* minor Intro edits

* minor Intro edits

* submodule updates

* fixed typos in QS

* QS updates

* QS updates

* QS updates

* updates to InputOutput and QS

* fix I/O doc typos

* pull updates to hpc-stack docs

* pull updates to hpc-stack docs

* fix table wrapping

* updates to QS for cloud

* fix QS export statements

* fix QS export statements

* QS edits on bind, config

* add bullet points to notes

* running without rocoto

* add HPC-Stack submodule w/docs

* split QS into container/non-container approaches

* added filepath changes for running in container on Orion, et al.

* edits to overview and container QS

* moved CodeReposAndDirs.rst info to the Introduction & deleted file

* continued edits to SRWAppOverview

* combine overview w/non-container docs

* finish merging non-container guide & SRWOverview, rename/remove files, update FAQ

* minor edits for Intro & QS

* updates to BuildRun doc through 3.8.1

* edits to Build/Run and Components

* remove .gitignore

* fix Ch 3 title, 4 supported platform levels note

* fix typos, add term links

* other minor fixes/suggestions implemented

* updated Intro based on feedback; changed SRW to SRW App throughout

* update comment to Intro citation

* add user-defined vertical levels to future work

* Add instructions for srw_common module load

* fix typo

* update Intro & BuildRunSRW based on Mark's feedback

* minor intro updates

* 1st round of jwolff's edits

* 2nd round of jwolff updates

* update QS intro

* fix minor physics details

* update citation and physics suite name

* add compute node allocation info to QS

* add authoritative hpc-stack docs to Intro

* create MacOS install/build instructions

* add MacOS Build/Run instructions

* fix MacOS Build/Run details

* add MacOS info directly to Build/Run SRW chapter

* minor details

* minor edits

* update Include-HPCInstall with mac installation docs

* add note re: Terminal.app & bash shell in MacOS section

* remove MacInstall file-contents added to BuildRunSRW

* update hpc-stack submodule to include mac installation info

* add MacOS config details

* add MacOS config & run details

* minor MacOS note

* mention need to verify software library version #'s

* update hpc-stack-mod

* align MacDetails section with PR #238 info

* remove gsed & alter related commands

* update hpc-stack submodule

* typos

* switch from env to module load

Co-authored-by: Will Mayfield <59745143+willmayfield@users.noreply.github.com>

* Update BuildRunSRW.rst

* update hpc-stack module docs & MacOS config.sh

* update machine file instructions

* updates to BuildRun chapter

* fix typo

Co-authored-by: gspetro <gillian.s.petro@gmail.com>
Co-authored-by: Will Mayfield <59745143+willmayfield@users.noreply.github.com>

* Update documentation for CSV file containing WE2E test info (#278)

* Edits to documentation to match latest in code.

* Edits to documentation to match latest in code.

* Minor changes to documentation.

* Port SRW App to WCOSS2 (#270)

* port to wcoss2

* update scripts

* ensure platform name from variance

* update scripts

* remove wcoss2 from lmod-setup

* Fix --ccpp option in devbuild.sh (#280)

* fix ccpp issue

* update script

* Print usage if machine name is not passed to `lmod-setup.sh/csh`. (#262)

* Print usage() message if machine name is not passed.

* Bug fix with macos modulefiles.

* Back to original hashes (#287)

* Updated the Introduction, build for MacOS (#281)

* Updated the Introduction, build for MacOS

* Update Introduction.rst

Some comments removed

* Update Introduction.rst

Updated data storage requirements for the SRW

* Update documentation for python plotting scripts (#289)

## DESCRIPTION OF CHANGES: 
This PR updates the RST documentation files to accompany changes in PR #[783](ufs-community/regional_workflow#783) in `regional_workflow`.

## DEPENDENCIES:
PR #[783](ufs-community/regional_workflow#783) in `regional_workflow`.

## ISSUE (optional): 
Partially resolves issue #[781](ufs-community/regional_workflow#781) (still need to introduce tests in `regional_workflow` that run the plotting scripts).

## CONTRIBUTORS: 
@mark-a-potts

* Updating for testing with updated ufs weather model

* added version to wflow for jet

* switched to epic repo for testing

* Updates to modules for cheyenne

* updated module path

* changed hash to branch for testing

* updated to use ufs-community version of WM

* Pointing to PR-branch of regional_workflow for testing

* Updating module files for cheyenne for testing

* Added png explicitly under gaea.

* Update build_cheyenne_intel

Corrected loading system modules (load intel/2022.1, mpt/2.25), updated package versions if newer modules are built.

* Updated pointer to model for testing

* fixed repos

* updated to point at my regional_workflow branch

* updated regional_workflow to release/public-v2

Co-authored-by: Jesse McFarland <jesse@mcfarland.sh>
Co-authored-by: Gillian Petro <96886803+gspetro-NOAA@users.noreply.github.com>
Co-authored-by: gspetro <gillian.s.petro@gmail.com>
Co-authored-by: Will Mayfield <59745143+willmayfield@users.noreply.github.com>
Co-authored-by: gsketefian <31046882+gsketefian@users.noreply.github.com>
Co-authored-by: Chan-Hoo.Jeon-NOAA <60152248+chan-hoo@users.noreply.github.com>
Co-authored-by: danielabdi-noaa <52012304+danielabdi-noaa@users.noreply.github.com>
Co-authored-by: Natalie Perlin <68030316+natalie-perlin@users.noreply.github.com>
Co-authored-by: Mark Potts <mpotts@redlineperf.com>
  • Loading branch information
10 people authored Jun 12, 2022
1 parent 4d61d41 commit e024f4d
Show file tree
Hide file tree
Showing 17 changed files with 456 additions and 120 deletions.
7 changes: 4 additions & 3 deletions Externals.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ protocol = git
repo_url = https://github.com/ufs-community/regional_workflow
# Specify either a branch name or a hash but not both.
#branch = develop
hash = de82b63
branch = release/public-v2
local_path = regional_workflow
required = True

Expand All @@ -18,10 +18,11 @@ required = True

[ufs-weather-model]
protocol = git
repo_url = https://github.com/ufs-community/ufs-weather-model
#repo_url = https://github.com/ufs-community/ufs-weather-model
repo_url = https://github.com/NOAA-EPIC/ufs-weather-model-1
# Specify either a branch name or a hash but not both.
#branch = develop
hash = 96dffa1
branch = release-public-v3-SRW
local_path = src/ufs-weather-model
required = True

Expand Down
46 changes: 26 additions & 20 deletions devbuild.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@ OPTIONS
show this help guide
-p, --platform=PLATFORM
name of machine you are building on
(e.g. cheyenne | hera | jet | orion | wcoss_dell_p3)
(e.g. cheyenne | hera | jet | orion | wcoss_dell_p3 | wcoss2)
-c, --compiler=COMPILER
compiler to use; default depends on platform
(e.g. intel | gnu | cray | gccgfortran)
--app=APPLICATION
-a, --app=APPLICATION
weather model application to build
(e.g. ATM | ATMW | S2S | S2SW)
--ccpp="CCPP_SUITE1,CCPP_SUITE2..."
CCCP suites to include in build; delimited with ','
CCPP suites (CCPP_SUITES) to include in build; delimited with ','
--enable-options="OPTION1,OPTION2,..."
enable ufs-weather-model options; delimited with ','
(e.g. 32BIT | INLINE_POST | UFS_GOCART | MOM6 | CICE6 | WW3 | CMEPS)
Expand Down Expand Up @@ -52,13 +52,13 @@ settings () {
cat << EOF_SETTINGS
Settings:
SRC_DIR=${SRC_DIR}
SRW_DIR=${SRW_DIR}
BUILD_DIR=${BUILD_DIR}
INSTALL_DIR=${INSTALL_DIR}
PLATFORM=${PLATFORM}
COMPILER=${COMPILER}
APP=${APPLICATION}
CCPP=${CCPP}
CCPP=${CCPP_SUITES}
ENABLE_OPTIONS=${ENABLE_OPTIONS}
DISABLE_OPTIONS=${DISABLE_OPTIONS}
CLEAN=${CLEAN}
Expand All @@ -79,13 +79,13 @@ usage_error () {

# default settings
LCL_PID=$$
SRC_DIR=$(cd "$(dirname "$(readlink -f -n "${BASH_SOURCE[0]}" )" )" && pwd -P)
MACHINE_SETUP=${SRC_DIR}/src/UFS_UTILS/sorc/machine-setup.sh
BUILD_DIR=${SRC_DIR}/build
INSTALL_DIR=${SRC_DIR}
SRW_DIR=$(cd "$(dirname "$(readlink -f -n "${BASH_SOURCE[0]}" )" )" && pwd -P)
MACHINE_SETUP=${SRW_DIR}/src/UFS_UTILS/sorc/machine-setup.sh
BUILD_DIR="${SRW_DIR}/build"
INSTALL_DIR=${SRW_DIR}
COMPILER=""
APPLICATION=""
CCPP=""
CCPP_SUITES=""
ENABLE_OPTIONS=""
DISABLE_OPTIONS=""
BUILD_TYPE="RELEASE"
Expand All @@ -108,9 +108,9 @@ while :; do
--platform|--platform=|-p|-p=) usage_error "$1 requires argument." ;;
--compiler=?*|-c=?*) COMPILER=${1#*=} ;;
--compiler|--compiler=|-c|-c=) usage_error "$1 requires argument." ;;
--app=?*) APPLICATION=${1#*=} ;;
--app|--app=) usage_error "$1 requires argument." ;;
--ccpp=?*) CCPP=${1#*=} ;;
--app=?*|-a=?*) APPLICATION=${1#*=} ;;
--app|--app=|-a|-a=) usage_error "$1 requires argument." ;;
--ccpp=?*) CCPP_SUITES=${1#*=} ;;
--ccpp|--ccpp=) usage_error "$1 requires argument." ;;
--enable-options=?*) ENABLE_OPTIONS=${1#*=} ;;
--enable-options|--enable-options=) usage_error "$1 requires argument." ;;
Expand All @@ -136,6 +136,11 @@ while :; do
shift
done

# Ensure uppercase / lowercase ============================================
APPLICATION="${APPLICATION^^}"
PLATFORM="${PLATFORM,,}"
COMPILER="${COMPILER,,}"

# check if PLATFORM is set
if [ -z $PLATFORM ] ; then
printf "\nERROR: Please set PLATFORM.\n\n"
Expand All @@ -155,9 +160,10 @@ if [ -z "${COMPILER}" ] ; then
jet|hera|gaea) COMPILER=intel ;;
orion|noaacloud) COMPILER=intel ;;
wcoss_dell_p3) COMPILER=intel ;;
wcoss2) COMPILER=intel ;;
cheyenne) COMPILER=intel ;;
macos,singularity) COMPILER=gnu ;;
odin) COMPILER=intel ;;
odin,noaacloud) COMPILER=intel ;;
*)
COMPILER=intel
printf "WARNING: Setting default COMPILER=intel for new platform ${PLATFORM}\n" >&2;
Expand All @@ -174,7 +180,7 @@ fi

# set MODULE_FILE for this platform/compiler combination
MODULE_FILE="build_${PLATFORM}_${COMPILER}"
if [ ! -f "${SRC_DIR}/modulefiles/${MODULE_FILE}" ]; then
if [ ! -f "${SRW_DIR}/modulefiles/${MODULE_FILE}" ]; then
printf "ERROR: module file does not exist for platform/compiler\n" >&2
printf " MODULE_FILE=${MODULE_FILE}\n" >&2
printf " PLATFORM=${PLATFORM}\n" >&2
Expand Down Expand Up @@ -226,8 +232,8 @@ CMAKE_SETTINGS="${CMAKE_SETTINGS} -DCMAKE_BUILD_TYPE=${BUILD_TYPE}"
if [ ! -z "${APPLICATION}" ]; then
CMAKE_SETTINGS="${CMAKE_SETTINGS} -DAPP=${APPLICATION}"
fi
if [ ! -z "${CCPP}" ]; then
CMAKE_SETTINGS="${CMAKE_SETTINGS} -DCCPP=${CCPP}"
if [ ! -z "${CCPP_SUITES}" ]; then
CMAKE_SETTINGS="${CMAKE_SETTINGS} -DCCPP_SUITES=${CCPP_SUITES}"
fi
if [ ! -z "${ENABLE_OPTIONS}" ]; then
CMAKE_SETTINGS="${CMAKE_SETTINGS} -DENABLE_OPTIONS=${ENABLE_OPTIONS}"
Expand All @@ -243,17 +249,17 @@ if [ "${VERBOSE}" = true ]; then
fi

# Before we go on load modules, we first need to activate Lmod for some systems
source ${SRC_DIR}/etc/lmod-setup.sh
source ${SRW_DIR}/etc/lmod-setup.sh $MACHINE

# source the module file for this platform/compiler combination, then build the code
printf "... Load MODULE_FILE and create BUILD directory ...\n"
module use ${SRC_DIR}/modulefiles
module use ${SRW_DIR}/modulefiles
module load ${MODULE_FILE}
module list
mkdir -p ${BUILD_DIR}
cd ${BUILD_DIR}
printf "... Generate CMAKE configuration ...\n"
cmake ${SRC_DIR} ${CMAKE_SETTINGS} 2>&1 | tee log.cmake
cmake ${SRW_DIR} ${CMAKE_SETTINGS} 2>&1 | tee log.cmake
printf "... Compile executables ...\n"
make ${MAKE_SETTINGS} 2>&1 | tee log.make

Expand Down
2 changes: 1 addition & 1 deletion docs/INSTALL
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ source etc/lmod-setup.sh PLATFORM
# From here on, we can assume Lmod is loaded and ready to go. Then we load the specific
# module for a given PLATFORM and COMPILER as follows

module use modulefiles
module use $PWD/modulefiles #full path to modulefiles directory
module load build_[PLATFORM]_[COMPILER]

# Supported CMake flags:
Expand Down
Loading

0 comments on commit e024f4d

Please sign in to comment.