-
Notifications
You must be signed in to change notification settings - Fork 121
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
Changes from 15 commits
d0c0c69
3a2fd2b
ef24e7a
9d159ca
564e15a
c118a5f
1fe6fc8
ae7a11c
d69a0af
1da4c3f
f67a3b4
ae912ec
6bc45c6
a27f8ab
8f2d65f
e81a249
f27e30f
a72a1ef
8ba5a2a
4c37fe0
5c08d60
7a6d643
f6ca015
af37d2a
556af4c
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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) | ||
|
@@ -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} | ||
|
@@ -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" | ||
|
@@ -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." ;; | ||
|
@@ -136,6 +136,11 @@ while :; do | |
shift | ||
done | ||
|
||
# Ensure uppercase / lowercase ============================================ | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. FYI the |
||
APPLICATION="${APPLICATION^^}" | ||
PLATFORM="${PLATFORM,,}" | ||
COMPILER="${COMPILER,,}" | ||
|
||
# check if PLATFORM is set | ||
if [ -z $PLATFORM ] ; then | ||
printf "\nERROR: Please set PLATFORM.\n\n" | ||
|
@@ -155,9 +160,10 @@ if [ -z "${COMPILER}" ] ; then | |
jet|hera|gaea) COMPILER=intel ;; | ||
orion) 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; | ||
|
@@ -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 | ||
|
@@ -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}" | ||
|
@@ -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 | ||
|
||
|
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.