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

Add CMake build for public release #27

Merged
merged 13 commits into from
Oct 9, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
5 changes: 4 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@ if (${CMAKE_VERSION} VERSION_LESS 3.12)
endif()

# Set the project name and version.
project(ufs-srweather-app VERSION 1.0)
project(ufs-srweather-app VERSION 1.0 LANGUAGES C CXX Fortran)

find_package(MPI REQUIRED COMPONENTS C CXX Fortran)

# Set extended version info.
SET(SRWA_VERSION_MAJOR 1)
Expand Down Expand Up @@ -139,3 +141,4 @@ configure_file(

FILE(COPY "${CMAKE_CURRENT_BINARY_DIR}/ufs_srweather_app_meta.h" DESTINATION include)

add_subdirectory(src)
8 changes: 2 additions & 6 deletions Externals.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,8 @@ required = True

[ufs_utils]
protocol = git
#repo_url = https://github.com/JeffBeck-NOAA/UFS_UTILS
repo_url = https://github.com/NCAR/UFS_UTILS
# Specify either a branch name or a hash but not both.
#branch = feature/regional_release
branch = feature/regional_release_STRING
#hash = e5419633
repo_url = https://github.com/JeffBeck-NOAA/UFS_UTILS
tag = v2.0alpha01
local_path = src/UFS_UTILS
required = True

Expand Down
50 changes: 50 additions & 0 deletions docs/README_cheyenne_intel.txt
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
50 changes: 50 additions & 0 deletions docs/README_hera_intel.txt
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
54 changes: 54 additions & 0 deletions docs/README_jet_intel.txt
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
31 changes: 31 additions & 0 deletions src/CMakeLists.txt
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}"
)
8 changes: 4 additions & 4 deletions src/build_all.sh
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,10 @@ if [ ! -d $logs_dir ]; then
mkdir $logs_dir
fi

# Check final exec folder exists
if [ ! -d "../exec" ]; then
echo "Creating ../exec folder"
mkdir ../exec
# Check final bin folder exists
if [ ! -d "../" ]; then
echo "Creating ../bin folder"
mkdir ../bin
fi

#------------------------------------
Expand Down
34 changes: 17 additions & 17 deletions src/install_all.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ build_dir=`pwd`

CP='cp -rp'

# Check final exec folder exists
if [ ! -d "../exec" ]; then
echo "Creating ../exec folder"
mkdir ../exec
# Check final bin folder exists
if [ ! -d "../bin" ]; then
echo "Creating ../bin folder"
mkdir ../bin
fi

#------------------------------------
Expand All @@ -20,30 +20,30 @@ fi
#------------------------------------
# install forecast
#------------------------------------
#${CP} NEMSfv3gfs/fv3.exe ../exec/regional_forecast.x
#${CP} NEMSfv3gfs/fv3.exe ../bin/regional_forecast.x

#------------------------------------
# install post
#------------------------------------
$Build_post && {
${CP} EMC_post/exec/* ../exec/ncep_post
${CP} EMC_post/exec/* ../bin/nceppost.x
}

#------------------------------------
# install needed utilities from UFS_UTILS.
#------------------------------------
$Build_UFS_UTILS && {
# ${CP} regional_utils.fd/exec/global_chgres ../exec/regional_chgres.x
${CP} UFS_UTILS/exec/chgres_cube ../exec/chgres_cube.exe
${CP} UFS_UTILS/exec/orog ../exec/orog.x
${CP} UFS_UTILS/exec/sfc_climo_gen ../exec/sfc_climo_gen
${CP} UFS_UTILS/exec/regional_esg_grid ../exec/regional_esg_grid
${CP} UFS_UTILS/exec/make_hgrid ../exec/make_hgrid
${CP} UFS_UTILS/exec/make_solo_mosaic ../exec/make_solo_mosaic
${CP} UFS_UTILS/exec/fregrid ../exec/fregrid
${CP} UFS_UTILS/exec/filter_topo ../exec/filter_topo
${CP} UFS_UTILS/exec/shave ../exec/shave.x
${CP} UFS_UTILS/exec/global_equiv_resol ../exec/global_equiv_resol
# ${CP} regional_utils.fd/exec/global_chgres ../bin/regional_chgres.x
${CP} UFS_UTILS/exec/chgres_cube ../bin/chgres_cube
${CP} UFS_UTILS/exec/orog ../bin/orog
${CP} UFS_UTILS/exec/sfc_climo_gen ../bin/sfc_climo_gen
${CP} UFS_UTILS/exec/regional_esg_grid ../bin/regional_esg_grid
${CP} UFS_UTILS/exec/make_hgrid ../bin/make_hgrid
${CP} UFS_UTILS/exec/make_solo_mosaic ../bin/make_solo_mosaic
${CP} UFS_UTILS/exec/fregrid ../bin/fregrid
${CP} UFS_UTILS/exec/filter_topo ../bin/filter_topo
${CP} UFS_UTILS/exec/shave ../bin/shave
${CP} UFS_UTILS/exec/global_equiv_resol ../bin/global_equiv_resol
}

#------------------------------------
Expand Down