Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

updated version of ufs to include WoFS suite and ccpp-v6 #293

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
d0c0c69
Fix artifact creation for branches with / in name (#275)
May 25, 2022
3a2fd2b
Include documentation for building/running SRW App on Mac (#240)
gspetro-NOAA May 26, 2022
ef24e7a
Update documentation for CSV file containing WE2E test info (#278)
gsketefian May 27, 2022
9d159ca
Port SRW App to WCOSS2 (#270)
chan-hoo May 31, 2022
564e15a
Fix --ccpp option in devbuild.sh (#280)
chan-hoo May 31, 2022
c118a5f
Print usage if machine name is not passed to `lmod-setup.sh/csh`. (#262)
danielabdi-noaa May 31, 2022
1fe6fc8
Back to original hashes (#287)
chan-hoo Jun 1, 2022
ae7a11c
Updated the Introduction, build for MacOS (#281)
natalie-perlin Jun 2, 2022
d69a0af
Update documentation for python plotting scripts (#289)
gsketefian Jun 2, 2022
1da4c3f
Updating for testing with updated ufs weather model
mark-a-potts Jun 7, 2022
f67a3b4
added version to wflow for jet
mark-a-potts Jun 8, 2022
ae912ec
switched to epic repo for testing
mark-a-potts Jun 8, 2022
6bc45c6
Updates to modules for cheyenne
mark-a-potts Jun 8, 2022
a27f8ab
updated module path
mark-a-potts Jun 8, 2022
8f2d65f
changed hash to branch for testing
mark-a-potts Jun 8, 2022
e81a249
updated to use ufs-community version of WM
mark-a-potts Jun 8, 2022
f27e30f
Pointing to PR-branch of regional_workflow for testing
mark-a-potts Jun 8, 2022
a72a1ef
Merge branch 'release/public-v2' into feature/ufs-update
mark-a-potts Jun 8, 2022
8ba5a2a
Updating module files for cheyenne for testing
mark-a-potts Jun 9, 2022
4c37fe0
Added png explicitly under gaea.
mark-a-potts Jun 9, 2022
5c08d60
Update build_cheyenne_intel
natalie-perlin Jun 10, 2022
7a6d643
Updated pointer to model for testing
mark-a-potts Jun 10, 2022
f6ca015
fixed repos
mark-a-potts Jun 10, 2022
af37d2a
updated to point at my regional_workflow branch
mark-a-potts Jun 10, 2022
556af4c
updated regional_workflow to release/public-v2
mark-a-potts Jun 12, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mark-a-potts, should this point to ufs-community and not NOAA-EPIC? Or is this just for testing?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just for testing right now.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tried to update the pointers to ccpp/physics and ccpp/framework, but that broke the build and I had to revert to the hashes we had on April 4. I am worried that that means we will not have release/public-v6 of ccpp in our release. Is this a reason to delay?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, we'll just have to see if the WoFS SDF XML will work without the pointer updates. I've emailed @ligiabernardet and @grantfirl to ask about the status of the v6 CCPP release branch and whether it includes the major module updates that went into the ufs-weather-model repo recently.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, @JeffBeck-NOAA I emailed Grant as well. He had commits to release-v6 today, so I am thinking that even if they are ready on their side, the changes at the fv3atm level have not been merged yet. @arunchawla-NOAA recommended on slack that we should probably delay the release of the SRW. I am on the fence, but if we do the release, I don't think it can be with ccpp-v6.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mark-a-potts, just read through the email threads related to the physics/fv3atm release branches. I would agree with your assessment that it's best to delay by about a week. I'd hope it won't take too long to get the branch situation straightened out, but there are several submodule branches/pointers that have to be lined up with the correct cherry-picked PRs. It looks like Grant has taken a big step already toward sorting this out. However, I'm wondering if the resulting release branch tree will still require the major module updates that currently don't work in the App. If that does turn out to be the case, I'm happy to quickly track down the required changes to srw_common and get a PR open into the App-level release branch.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree. Let's postpone the release and focus on getting the physics/branch/submodule situation lined up to everyone's satisfaction. I think we add considerable value to the release by incorporating the latest physics package.

#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 ============================================
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FYI the ^^ and ,, bashisms don't work on a Mac because Apple apparently doesn't/can't update its version of bash on MacOs (and whatever version they're frozen on doesn't support these features). That's why in regional_workflow, we instead use the echo_uppercase and echo_lowercase functions, e.g. COMPILER=$(echo_lowercase $COMPILER). To be able to do that, you have to first source source_util_funcs.sh in regional_workflow/ush.

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