-
Notifications
You must be signed in to change notification settings - Fork 119
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add cmake build to release branch (#30)
## DESCRIPTION OF CHANGES: This is a subset of the changes that were added to develop with PR #27. This commit adds cmake capabilities, but does not maintain back-compatibility with the older build system. To build, have the necessary modules loaded and run: ``` mkdir build cd build cmake .. -DCMAKE_INSTALL_PREFIX=<prefix> make ``` The docs/ directory contains README files with instructions for specific platforms/compilers ## TESTS CONDUCTED: - **Cheyenne**: Build and end-to-end test ("DOT_OR_USCORE" test case) was successful on Cheyenne with intel - **Hera**: Build and end-to-end test ("DOT_OR_USCORE" test case) was successful Co-authored-by: kgerheiser <[email protected]>; Michael Kavulich, Jr <[email protected]>
- Loading branch information
Showing
6 changed files
with
191 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
#Setup instructions for CISL Cheyenne using Intel-19.1.1 (bash shell) | ||
|
||
module purge | ||
module load ncarenv/1.3 | ||
module load intel/19.1.1 | ||
module load mpt/2.19 | ||
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 load bacio/2.4.1 | ||
module load g2/3.4.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 gfsio/1.4.1 | ||
module load nemsiogfs/2.5.3 | ||
module load landsfcutil/2.4.1 | ||
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
#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 load libpng/1.6.35 | ||
|
||
module load bacio/2.4.1 | ||
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 sfcio/1.4.1 | ||
module load gfsio/1.4.1 | ||
module load nemsiogfs/2.5.3 | ||
module load landsfcutil/2.4.1 | ||
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
#Setup instructions for NOAA RDHPC Jet using Intel-18.0.5.274 (bash shell) | ||
|
||
module purge | ||
|
||
module use -a /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 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 gfsio/1.4.1 | ||
module load sfcio/1.4.1 | ||
module load sigio/2.3.2 | ||
module load esmf/8.0.0 | ||
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
include(ExternalProject) | ||
|
||
ExternalProject_Add(UFS_UTILS | ||
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/UFS_UTILS | ||
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/UFS_UTILS | ||
INSTALL_DIR ${CMAKE_INSTALL_PREFIX} | ||
CMAKE_ARGS "-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}" | ||
) | ||
|
||
|
||
set(CCPP_SUITES "FV3_CPT_v0,FV3_GFS_2017_gfdlmp,FV3_GFS_2017_gfdlmp_regional,FV3_GSD_SAR,FV3_GSD_v0,FV3_GFS_v15p2,FV3_GFS_v16beta,FV3_RRFS_v1beta") | ||
|
||
ExternalProject_Add(ufs_weather_model | ||
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/ufs_weather_model | ||
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ufs_weather_model | ||
INSTALL_DIR ${CMAKE_INSTALL_PREFIX} | ||
CMAKE_ARGS "-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}" | ||
"-DCCPP_SUITES=${CCPP_SUITES}" | ||
"-DCMAKE_C_COMPILER=${MPI_C_COMPILER}" | ||
"-DCMAKE_CXX_COMPILER=${MPI_CXX_COMPILER}" | ||
"-DCMAKE_Fortran_COMPILER=${MPI_Fortran_COMPILER}" | ||
"-DNETCDF_DIR=$ENV{NETCDF}" | ||
INSTALL_COMMAND mkdir -p ${CMAKE_INSTALL_PREFIX}/bin && cp ${CMAKE_CURRENT_BINARY_DIR}/ufs_weather_model/src/ufs_weather_model-build/NEMS.exe ${CMAKE_INSTALL_PREFIX}/bin/ | ||
) | ||
|
||
ExternalProject_Add(EMC_post | ||
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/EMC_post | ||
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/EMC_post | ||
INSTALL_DIR ${CMAKE_INSTALL_PREFIX} | ||
CMAKE_ARGS "-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}" | ||
) |