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

Fix the currently-broken state of master #71

Merged
merged 9 commits into from
Dec 11, 2020
29 changes: 9 additions & 20 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,13 +1,6 @@
# This is the main cmake file for ufs-srweather-app.
#
# Ed Hartnett 5/14/20

# This will use any cmake between 3.1 and 3.15, prefering later
# versions with updated policies.
cmake_minimum_required(VERSION 3.1...3.15)
if (${CMAKE_VERSION} VERSION_LESS 3.12)
cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION})
endif()
cmake_minimum_required(VERSION 3.15)

# Set the project name and version.
project(ufs-srweather-app VERSION 1.0 LANGUAGES C CXX Fortran)
Expand All @@ -21,10 +14,6 @@ SET(SRWA_VERSION_PATCH 0)
SET(SRWA_VERSION_NOTE "-development")
SET(SRWA_VERSION ${SRWA_VERSION_MAJOR}.${SRWA_VERSION_MINOR}.${SRWA_VERSION_PATCH}${SRWA_VERSION_NOTE})

#Add custom CMake Module
SET(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/"
CACHE INTERNAL "Location of our custom CMake modules.")

# A function used to create autotools-style 'yes/no' definitions.
# If a variable is set, it 'yes' is returned. Otherwise, 'no' is
# returned.
Expand Down Expand Up @@ -69,15 +58,15 @@ include(CTest)

# Determine the configure date.
IF(DEFINED ENV{SOURCE_DATE_EPOCH})
EXECUTE_PROCESS(
COMMAND "date" "-u" "-d" "@$ENV{SOURCE_DATE_EPOCH}"
OUTPUT_VARIABLE CONFIG_DATE
)
EXECUTE_PROCESS(
COMMAND "date" "-u" "-d" "@$ENV{SOURCE_DATE_EPOCH}"
OUTPUT_VARIABLE CONFIG_DATE
)
ELSE()
EXECUTE_PROCESS(
COMMAND date
OUTPUT_VARIABLE CONFIG_DATE
)
EXECUTE_PROCESS(
COMMAND date
OUTPUT_VARIABLE CONFIG_DATE
)
ENDIF()
IF(CONFIG_DATE)
string(STRIP ${CONFIG_DATE} CONFIG_DATE)
Expand Down
14 changes: 8 additions & 6 deletions Externals.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -2,32 +2,34 @@
protocol = git
repo_url = https://github.com/NOAA-EMC/regional_workflow
# Specify either a branch name or a hash but not both.
branch = develop
#branch = develop
hash = b8f9819
local_path = regional_workflow
required = True

[ufs_utils]
protocol = git
repo_url = https://github.com/NOAA-EMC/UFS_UTILS
branch = develop
#branch = develop
hash = 005f9a0a
local_path = src/UFS_UTILS
required = True

[ufs_weather_model]
protocol = git
repo_url = https://github.com/ufs-community/ufs-weather-model
# Specify either a branch name or a hash but not both.
branch = release/public-v2
#hash = 8165575
#branch = develop
hash = 63591b6
local_path = src/ufs_weather_model
required = True

[EMC_post]
protocol = git
repo_url = https://github.com/NOAA-EMC/EMC_post
# Specify either a branch name or a hash but not both.
branch = release/public-v2
#hash =
#branch = develop
hash = 9fa1e088
local_path = src/EMC_post
required = True

Expand Down
33 changes: 33 additions & 0 deletions docs/INSTALL
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Simple setup instructions for the UFS SRW App
# For more details, see the "Getting Started" guide:
# https://github.com/ufs-community/ufs-srweather-app/wiki/Getting-Started

# Getting the UFS SRW App code
#
# The SRW App can be downloaded directly from github, either by using `git clone` or by downloading
# from the web.

git clone https://github.com/ufs-community/ufs-srweather-app.git

cd ufs-srweather-app/
./manage_externals/checkout_externals

# Prior to building, you must set up the environment so cmake can find the appropriate compilers
# and libraries. For instructions specific to supported platforms, see the included "README" files
# in this directory. These README files give instructions assuming a bash or ksh login shell, for
# csh and tcsh users you will have to modify the commands for setting envronment variables.

# Supported CMake flags:
# -DCMAKE_INSTALL_PREFIX Location where the bin/ include/ lib/ and share/ directories containing
# the various components of the SRW App will be created. Recommended value
# is "..", one directory up from the build directory
# -DCCPP_SUITES A comma-separated list of CCPP suites to build with the UFS weather
# model. See the User's Guide for a full list of available suites. The
# default is to build with the released supported suites: FV3_GFS_v15p2 and
# FV3_RRFS_v1beta

mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=..
make -j 8


42 changes: 42 additions & 0 deletions docs/README_cheyenne_gnu.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#Setup instructions for CISL Cheyenne using Intel-19.1.1 (bash shell)

module purge
module load ncarenv/1.3
module load gnu/9.1.0
module load mpt/2.22
module load ncarcompilers/0.5.0
module load cmake/3.16.4


module use /glade/p/ral/jntp/GMTB/tools/hpc-stack-nco-20201113/modulefiles/stack
module load hpc/1.0.0-beta1
module load hpc-gnu/9.1.0
module load hpc-mpt/2.22
module load jasper/2.0.22
module load zlib/1.2.11
module load png/1.6.35
module load hdf5/1.10.6
module load netcdf/4.7.4
module load pio/2.5.1
module load esmf/8_1_0_beta_snapshot_27
module load bacio/2.4.1
module load crtm/2.3.0
module load g2/3.4.1
module load g2tmpl/1.9.1
module load ip/3.3.3
module load nemsio/2.5.2
module load sp/2.3.3
module load w3emc/2.7.3
module load w3nco/2.4.1
module load upp/10.0.0

module load gfsio/1.4.1
module load sfcio/1.4.1
module load landsfcutil/2.4.1
module load nemsiogfs/2.5.3
module load wgrib2/2.0.8

export CMAKE_C_COMPILER=mpicc
export CMAKE_CXX_COMPILER=mpicxx
export CMAKE_Fortran_COMPILER=mpif90
export CMAKE_Platform=cheyenne.gnu
45 changes: 18 additions & 27 deletions docs/README_cheyenne_intel.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,48 +3,39 @@
module purge
module load ncarenv/1.3
module load intel/19.1.1
module load mpt/2.19
module load mpt/2.22
module load ncarcompilers/0.5.0
module load cmake/3.16.4

export CC=mpicc
export FC=mpif90
export CXX=mpicxx

NCEPLIBS_INSTALL=/glade/p/ral/jntp/GMTB/tools/NCEPLIBS-ufs-v2.0.0/intel-19.1.1/mpt-2.19

module use -a ${NCEPLIBS_INSTALL}/modules

module use /glade/p/ral/jntp/GMTB/tools/hpc-stack-nco-20201113/modulefiles/stack
module load hpc/1.0.0-beta1
module load hpc-intel/18.0.5.274
module load hpc-impi/2018.0.4
module load jasper/2.0.22
module load zlib/1.2.11
module load png/1.6.35
module load hdf5/1.10.6
module load netcdf/4.7.4
module load pio/2.5.1
module load esmf/8_1_0_beta_snapshot_27
module load bacio/2.4.1
module load crtm/2.3.0
module load g2/3.4.1
module load g2tmpl/1.9.1
module load ip/3.3.3
module load nemsio/2.5.2
module load sp/2.3.3
module load w3emc/2.7.3
module load w3nco/2.4.1
module load sigio/2.3.2
module load g2tmpl/1.9.1
module load sfcio/1.4.1
module load upp/10.0.0

module load gfsio/1.4.1
module load nemsiogfs/2.5.3
module load sfcio/1.4.1
module load landsfcutil/2.4.1
module load nemsiogfs/2.5.3
module load wgrib2/2.0.8
module load netcdf/4.7.4
module load crtm/2.3.0

export ESMFMKFILE=/glade/p/ral/jntp/GMTB/tools/NCEPLIBS-ufs-v2.0.0/intel-19.1.1/mpt-2.19/lib64/esmf.mk

export CMAKE_C_COMPILER=mpicc
export CMAKE_CXX_COMPILER=mpicxx
export CMAKE_Fortran_COMPILER=mpif90
export CMAKE_Platform=cheyenne.intel

git clone -b release/public-v1 [email protected]:ufs-community/ufs-srweather-app

cd ufs-srweather-app/
./manage_externals/checkout_externals

mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=..
make
45 changes: 19 additions & 26 deletions docs/README_hera_intel.txt
Original file line number Diff line number Diff line change
@@ -1,50 +1,43 @@
#Setup instructions for NOAA RDHPC Hera using Intel-18.0.5.274 (bash shell)

module purge
module load intel/18.0.5.274
module load impi/2018.0.4
module load cmake/3.16.1

export CC=icc
export CXX=icpc
export FC=ifort

NCEPLIBS_INSTALL=/scratch1/BMC/gmtb/software/NCEPLIBS-ufs-v2.0.0/intel-18.0.5.274/impi-2018.0.4

module use ${NCEPLIBS_INSTALL}/modules
module use /contrib/sutils/modulefiles
module load sutils
module load cmake/3.16.1

module load libpng/1.6.35
module use /scratch2/NCEPDEV/nwprod/hpc-stack/test/modulefiles/stack

module load hpc/1.0.0-beta1
module load hpc-intel/18.0.5.274
module load hpc-impi/2018.0.4
module load jasper/2.0.22
module load zlib/1.2.11
module load png/1.6.35
module load hdf5/1.10.6
module load netcdf/4.7.4
module load pio/2.5.1
module load esmf/8_1_0_beta_snapshot_27
module load bacio/2.4.1
module load crtm/2.3.0
module load g2/3.4.1
module load g2tmpl/1.9.1
module load ip/3.3.3
module load nemsio/2.5.2
module load sp/2.3.3
module load w3emc/2.7.3
module load w3nco/2.4.1
module load sigio/2.3.2
module load upp/10.0.0

module load sfcio/1.4.1
module load gfsio/1.4.1
module load nemsiogfs/2.5.3
module load sfcio/1.4.1
module load landsfcutil/2.4.1
module load nemsiogfs/2.5.3
module load wgrib2/2.0.8
module load netcdf/4.7.4
module load esmf/8.0.0
module load crtm/2.3.0


export CMAKE_C_COMPILER=mpiicc
export CMAKE_CXX_COMPILER=mpiicpc
export CMAKE_Fortran_COMPILER=mpiifort
export CMAKE_Platform=hera.intel

git clone -b release/public-v1 [email protected]:ufs-community/ufs-srweather-app

cd ufs-srweather-app/
./manage_externals/checkout_externals

mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=..
make
45 changes: 16 additions & 29 deletions docs/README_jet_intel.txt
Original file line number Diff line number Diff line change
@@ -1,54 +1,41 @@
#Setup instructions for NOAA RDHPC Jet using Intel-18.0.5.274 (bash shell)

module purge

module use -a /contrib/sutils/modulefiles
module use /contrib/sutils/modulefiles
module load sutils

module load intel/18.0.5.274
module load impi/2018.4.274
module load hdf5/1.10.4
module load netcdf/4.6.1
module load cmake/3.16.1

export CC=icc
export CXX=icpc
export FC=ifort

NCEPLIBS_INSTALL=/lfs4/HFIP/hfv3gfs/software/NCEPLIBS-ufs-v2.0.0/intel-18.0.5.274/impi-2018.4.274

module use -a ${NCEPLIBS_INSTALL}/modules

module use /lfs4/HFIP/hfv3gfs/nwprod/hpc-stack/libs/modulefiles/stack
module load hpc/1.0.0-beta1
module load hpc-intel/18.0.5.274
module load hpc-impi/2018.0.4
module load jasper/2.0.22
module load zlib/1.2.11
module load png/1.6.35
module load hdf5/1.10.6
module load netcdf/4.7.4
module load pio/2.5.1
module load esmf/8_1_0_beta_snapshot_27
module load bacio/2.4.1
module load crtm/2.3.0
module load g2/3.4.1
module load g2tmpl/1.9.1
module load ip/3.3.3
module load landsfcutil/2.4.1
module load nceppost/dceca26
module load nemsio/2.5.2
module load nemsiogfs/2.5.3
module load sp/2.3.3
module load w3emc/2.7.3
module load w3nco/2.4.1
module load upp/10.0.0

module load gfsio/1.4.1
module load sfcio/1.4.1
module load sigio/2.3.2
module load esmf/8.0.0
module load landsfcutil/2.4.1
module load nemsiogfs/2.5.3
module load wgrib2/2.0.8


export CMAKE_C_COMPILER=mpiicc
export CMAKE_CXX_COMPILER=mpiicpc
export CMAKE_Fortran_COMPILER=mpiifort
export CMAKE_Platform=jet.intel

git clone -b release/public-v1 [email protected]:ufs-community/ufs-srweather-app

cd ufs-srweather-app/
./manage_externals/checkout_externals

mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=..
make
23 changes: 23 additions & 0 deletions docs/README_macos_gccgfortran.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#Setup instructions for macOS Mojave or Catalina using gcc-10.2.0 + gfortran-10.2.0
Copy link
Collaborator

Choose a reason for hiding this comment

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

Would it be better to add this macos file in a separate PR at the same time that you merge the upcoming macos PR into regional_workflow?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

The macos build additions were added to the release branch a while ago (#62), so this just brings the READMEs up-to-date with the release branch. I don't think it's worth omitting.


# This path should point to your NCEPLIBS install directory
export NCEPLIBS=/usr/local/NCEPLIBS-ufs-v2.0.0

# Need this environment script to be executable
chmod +x ${NCEPLIBS}/bin/setenv_nceplibs.sh
${NCEPLIBS}/bin/setenv_nceplibs.sh

export CC=gcc-10
export FC=gfortran-10
export CXX=g++-10
ulimit -S -s unlimited

export NETCDF=${NCEPLIBS}
export ESMFMKFILE=${NCEPLIBS}/lib/esmf.mk
export CMAKE_PREFIX_PATH=${NCEPLIBS}

export CMAKE_C_COMPILER=mpicc
export CMAKE_CXX_COMPILER=mpicxx
export CMAKE_Fortran_COMPILER=mpifort
export CMAKE_Platform=macosx.gnu

Loading