From ba5f79fa6c6650f2733800b424c5fa3ff204c319 Mon Sep 17 00:00:00 2001 From: "Michael Kavulich, Jr" Date: Thu, 22 Oct 2020 18:35:39 -0600 Subject: [PATCH 01/11] Updated READMEs for Cheyenne; gnu and intel --- docs/README_cheyenne_gnu.txt | 28 +++++++++++++++++++++++ docs/README_cheyenne_intel.txt | 41 +++++++++------------------------- 2 files changed, 38 insertions(+), 31 deletions(-) create mode 100644 docs/README_cheyenne_gnu.txt diff --git a/docs/README_cheyenne_gnu.txt b/docs/README_cheyenne_gnu.txt new file mode 100644 index 0000000000..b46a722283 --- /dev/null +++ b/docs/README_cheyenne_gnu.txt @@ -0,0 +1,28 @@ +#Setup instructions for CISL Cheyenne using Intel-19.1.1 (bash shell) + +git clone -b release/public-v1 git@github.com:ufs-community/ufs-srweather-app + +cd ufs-srweather-app/ +./manage_externals/checkout_externals + + +module purge +module load ncarenv/1.3 +module load gnu/9.1.0 +module load mpt/2.19 +module load ncarcompilers/0.5.0 +module load cmake/3.16.4 + +module use -a /glade/p/ral/jntp/UFS_SRW_app/temp/NCEPLIBS-ufs-v2.0.0/gnu-9.1.0/mpt-2.19/modules/ +module load esmf/8.0.0 +module load NCEPLIBS/2.0.0 + +export CMAKE_C_COMPILER=mpicc +export CMAKE_CXX_COMPILER=mpicxx +export CMAKE_Fortran_COMPILER=mpif90 +export CMAKE_Platform=cheyenne.intel + +mkdir build +cd build +cmake .. -DCMAKE_INSTALL_PREFIX=.. +make -j 4 diff --git a/docs/README_cheyenne_intel.txt b/docs/README_cheyenne_intel.txt index ca2f6e1ee0..642287f597 100644 --- a/docs/README_cheyenne_intel.txt +++ b/docs/README_cheyenne_intel.txt @@ -1,5 +1,11 @@ #Setup instructions for CISL Cheyenne using Intel-19.1.1 (bash shell) +git clone -b release/public-v1 git@github.com:ufs-community/ufs-srweather-app + +cd ufs-srweather-app/ +./manage_externals/checkout_externals + + module purge module load ncarenv/1.3 module load intel/19.1.1 @@ -7,43 +13,16 @@ 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 +module use -a /glade/p/ral/jntp/UFS_SRW_app/temp/NCEPLIBS-ufs-v2.0.0/intel-19.1.1/mpt-2.19/modules/ + +module load esmf/8.0.0 +module load NCEPLIBS/2.0.0 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 git@github.com:ufs-community/ufs-srweather-app - -cd ufs-srweather-app/ -./manage_externals/checkout_externals - mkdir build cd build cmake .. -DCMAKE_INSTALL_PREFIX=.. From 8eca69095a392c12d6ba36f4b2b8619fc9240f47 Mon Sep 17 00:00:00 2001 From: "Michael Kavulich, Jr" Date: Mon, 26 Oct 2020 15:51:19 -0600 Subject: [PATCH 02/11] Add orion compile instructions --- docs/README_orion_intel.txt | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 docs/README_orion_intel.txt diff --git a/docs/README_orion_intel.txt b/docs/README_orion_intel.txt new file mode 100644 index 0000000000..4d5da4c6d3 --- /dev/null +++ b/docs/README_orion_intel.txt @@ -0,0 +1,21 @@ +#Setup instructions for MSU Orion using Intel-19.1.0.166 (bash shell) + +module purge +module load intel/2020 +module load impi/2020 +module load cmake/3.15.4 + +module use /work/noaa/gmtb/dheinzel/NCEPLIBS-ufs-v2.0.0/intel-19.1.0.166/impi-2020.0.166/modules + +module load NCEPLIBS/2.0.0 +module load esmf/8.0.0 + +export CMAKE_C_COMPILER=mpiicc +export CMAKE_CXX_COMPILER=mpiicpc +export CMAKE_Fortran_COMPILER=mpiifort +export CMAKE_Platform=orion.intel + +mkdir build +cd build +cmake .. -DCMAKE_INSTALL_PREFIX=.. +make -j 4 From 4dec0279c1f47d43d6805b958ce8e7c040372cbe Mon Sep 17 00:00:00 2001 From: "Michael Kavulich, Jr" Date: Tue, 27 Oct 2020 22:18:22 -0600 Subject: [PATCH 03/11] Update Hera intel build instructions --- docs/README_hera_intel.txt | 31 +++---------------------------- 1 file changed, 3 insertions(+), 28 deletions(-) diff --git a/docs/README_hera_intel.txt b/docs/README_hera_intel.txt index 40d8d8755f..11b3d6e9bd 100644 --- a/docs/README_hera_intel.txt +++ b/docs/README_hera_intel.txt @@ -5,34 +5,9 @@ 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 use -a /scratch1/BMC/gmtb/software/NCEPLIBS-ufs-v2.0.0/intel-18.0.5.274/impi-2018.0.4/modules +module load NCEPLIBS/2.0.0 module load esmf/8.0.0 -module load crtm/2.3.0 export CMAKE_C_COMPILER=mpiicc export CMAKE_CXX_COMPILER=mpiicpc @@ -47,4 +22,4 @@ cd ufs-srweather-app/ mkdir build cd build cmake .. -DCMAKE_INSTALL_PREFIX=.. -make -j 4 +make -j 8 From 1685ce30dd051649b6e170f04e950a96892bcb5c Mon Sep 17 00:00:00 2001 From: "Michael Kavulich, Jr" Date: Wed, 28 Oct 2020 11:47:47 -0600 Subject: [PATCH 04/11] Update Jet build instructions --- docs/README_jet_intel.txt | 45 +++++++++------------------------------ 1 file changed, 10 insertions(+), 35 deletions(-) diff --git a/docs/README_jet_intel.txt b/docs/README_jet_intel.txt index 15af4c0b74..6fe830f64c 100644 --- a/docs/README_jet_intel.txt +++ b/docs/README_jet_intel.txt @@ -1,54 +1,29 @@ #Setup instructions for NOAA RDHPC Jet using Intel-18.0.5.274 (bash shell) -module purge +git clone -b release/public-v1 git@github.com:ufs-community/ufs-srweather-app -module use -a /contrib/sutils/modulefiles -module load sutils +cd ufs-srweather-app/ +./manage_externals/checkout_externals +module purge +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 hdf5/1.10.5 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 /lfs4/HFIP/hfv3gfs/software/NCEPLIBS-ufs-v2.0.0/intel-18.0.5.274/impi-2018.4.274/modules -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 NCEPLIBS/2.0.0 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 git@github.com:ufs-community/ufs-srweather-app - -cd ufs-srweather-app/ -./manage_externals/checkout_externals - mkdir build cd build cmake .. -DCMAKE_INSTALL_PREFIX=.. -make -j 4 +make -j 8 From 7732373f7a064e0426ec3cff2317b88278f8b967 Mon Sep 17 00:00:00 2001 From: "Michael Kavulich, Jr" Date: Wed, 28 Oct 2020 11:51:36 -0600 Subject: [PATCH 05/11] Cleanup READMEs and move code checkout instructions to beginning --- docs/README_cheyenne_gnu.txt | 1 - docs/README_cheyenne_intel.txt | 1 - docs/README_hera_intel.txt | 10 +++++----- docs/README_orion_intel.txt | 5 +++++ 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/docs/README_cheyenne_gnu.txt b/docs/README_cheyenne_gnu.txt index b46a722283..5b9b57fc6b 100644 --- a/docs/README_cheyenne_gnu.txt +++ b/docs/README_cheyenne_gnu.txt @@ -5,7 +5,6 @@ git clone -b release/public-v1 git@github.com:ufs-community/ufs-srweather-app cd ufs-srweather-app/ ./manage_externals/checkout_externals - module purge module load ncarenv/1.3 module load gnu/9.1.0 diff --git a/docs/README_cheyenne_intel.txt b/docs/README_cheyenne_intel.txt index 642287f597..8b774e2475 100644 --- a/docs/README_cheyenne_intel.txt +++ b/docs/README_cheyenne_intel.txt @@ -5,7 +5,6 @@ git clone -b release/public-v1 git@github.com:ufs-community/ufs-srweather-app cd ufs-srweather-app/ ./manage_externals/checkout_externals - module purge module load ncarenv/1.3 module load intel/19.1.1 diff --git a/docs/README_hera_intel.txt b/docs/README_hera_intel.txt index 11b3d6e9bd..91d8288d51 100644 --- a/docs/README_hera_intel.txt +++ b/docs/README_hera_intel.txt @@ -1,5 +1,10 @@ #Setup instructions for NOAA RDHPC Hera using Intel-18.0.5.274 (bash shell) +git clone -b release/public-v1 git@github.com:ufs-community/ufs-srweather-app + +cd ufs-srweather-app/ +./manage_externals/checkout_externals + module purge module load intel/18.0.5.274 module load impi/2018.0.4 @@ -14,11 +19,6 @@ export CMAKE_CXX_COMPILER=mpiicpc export CMAKE_Fortran_COMPILER=mpiifort export CMAKE_Platform=hera.intel -git clone -b release/public-v1 git@github.com:ufs-community/ufs-srweather-app - -cd ufs-srweather-app/ -./manage_externals/checkout_externals - mkdir build cd build cmake .. -DCMAKE_INSTALL_PREFIX=.. diff --git a/docs/README_orion_intel.txt b/docs/README_orion_intel.txt index 4d5da4c6d3..90605b8714 100644 --- a/docs/README_orion_intel.txt +++ b/docs/README_orion_intel.txt @@ -1,5 +1,10 @@ #Setup instructions for MSU Orion using Intel-19.1.0.166 (bash shell) +git clone -b release/public-v1 git@github.com:ufs-community/ufs-srweather-app + +cd ufs-srweather-app/ +./manage_externals/checkout_externals + module purge module load intel/2020 module load impi/2020 From e9a202dad7103be54e0e27d53873e8259b6a8566 Mon Sep 17 00:00:00 2001 From: "Michael Kavulich, Jr" Date: Thu, 29 Oct 2020 09:18:42 -0600 Subject: [PATCH 06/11] Remove old build scripts --- src/build_UFS_UTILS.sh | 54 ------------- src/build_all.sh | 115 --------------------------- src/build_forecast.sh | 67 ---------------- src/build_post.sh | 49 ------------ src/install_all.sh | 80 ------------------- src/link_fix.sh | 50 ------------ src/machine-setup.sh | 165 -------------------------------------- src/partial_build.sh | 175 ----------------------------------------- src/regional_build.cfg | 11 --- 9 files changed, 766 deletions(-) delete mode 100755 src/build_UFS_UTILS.sh delete mode 100755 src/build_all.sh delete mode 100755 src/build_forecast.sh delete mode 100755 src/build_post.sh delete mode 100755 src/install_all.sh delete mode 100755 src/link_fix.sh delete mode 100644 src/machine-setup.sh delete mode 100755 src/partial_build.sh delete mode 100644 src/regional_build.cfg diff --git a/src/build_UFS_UTILS.sh b/src/build_UFS_UTILS.sh deleted file mode 100755 index 05b526f85c..0000000000 --- a/src/build_UFS_UTILS.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/sh -#========================================================================== -# -# Description: -# Builds all codes in UFS_UTILS. Note that this script does not copy -# over the executables it builds to the eventual destination directory -# at ufs-srweather-app/exec. That step is performed in install_all.sh, -# and that script copies only a subset of the executables built by this -# one. -# -# Usage: ./build_UFS_UTILS.sh -# -#========================================================================== -set -eux -cwd=`pwd` - -build_dir="${cwd}" -UFS_UTILS="${cwd}/UFS_UTILS" -export USE_PREINST_LIBS="true" - -#------------------------------------ -# END USER DEFINED STUFF -#------------------------------------ - -logs_dir=${cwd}/logs -if [ ! -d $logs_dir ]; then - echo "Creating logs folder" - mkdir $logs_dir -fi - -#------------------------------------ -# INCLUDE PARTIAL BUILD -#------------------------------------ - -. ./partial_build.sh - -#------------------------------------ -# build UFS_UTILS -#------------------------------------ -$Build_UFS_UTILS && { -echo " .... Building UFS_UTILS .... " -cd $UFS_UTILS -./build_all.sh > $logs_dir/build_UFS_UTILS.log 2>&1 -if [ $? -eq 0 ] ; then - echo "UFS_UTILS build SUCCEEDED" -else - echo "UFS_UTILS build FAILED see $logs_dir/build_UFS_UTILS.log" - exit 1 -fi -} - -cd $build_dir - -echo 'Building UFS_UTILS done' diff --git a/src/build_all.sh b/src/build_all.sh deleted file mode 100755 index 2e54f5e502..0000000000 --- a/src/build_all.sh +++ /dev/null @@ -1,115 +0,0 @@ -#!/bin/sh -set -eux -#========================================================================== -# Description: This script calls a series of build scripts depending on -# settings in regional_build.cfg. The forecast model, the -# pre-processing tasks, and the post-processor can be built -# from this script. -# -# Usage: ./build_all >& build.out & -#========================================================================== -#------------------------------------ -# USER DEFINED STUFF: -# -# USE_PREINST_LIBS: set to "true" to use preinstalled libraries. -# Library build is not currently supported within this script. -#------------------------------------ - -export USE_PREINST_LIBS="true" - -#------------------------------------ -# END USER DEFINED STUFF -#------------------------------------ - -build_dir=`pwd` -logs_dir=$build_dir/logs -if [ ! -d $logs_dir ]; then - echo "Creating logs folder" - mkdir $logs_dir -fi - -# Check final exec folder exists -if [ ! -d "../exec" ]; then - echo "Creating ../exec folder" - mkdir ../exec -fi - -#------------------------------------ -# INCLUDE PARTIAL BUILD -#------------------------------------ - -. ./partial_build.sh - -#------------------------------------ -# build libraries first -#------------------------------------ -$Build_libs && { -echo " .... Library build not currently supported .... " -#echo " .... Building libraries .... " -#./build_libs.sh > $logs_dir/build_libs.log 2>&1 -} - -#------------------------------------ -# build forecast -#------------------------------------ -$Build_forecast && { -echo " .... Building forecast .... " -./build_forecast.sh > $logs_dir/build_forecast.log 2>&1 -if [ $? -eq 0 ] ; then - echo "Forecast build SUCCEEDED" -else - echo "Forecast build FAILED see $logs_dir/build_forecast.log" - exit 1 -fi -} - -#------------------------------------ -# build post -#------------------------------------ -$Build_post && { -echo " .... Building post .... " -./build_post.sh > $logs_dir/build_post.log 2>&1 -if [ $? -eq 0 ] ; then - echo "Post build SUCCEEDED" -else - echo "Post build FAILED see $logs_dir/build_post.log" - exit 1 -fi -} - -#------------------------------------ -# build UTILS -#------------------------------------ -$Build_UFS_UTILS && { -echo " .... Building UFS_UTILS .... " -./build_UFS_UTILS.sh > $logs_dir/build_UFS_UTILS.log 2>&1 -if [ $? -eq 0 ] ; then - echo "UFS_UTILS build SUCCEEDED" -else - echo "UFS_UTILS build FAILED see $logs_dir/build_UFS_UTILS.log" - exit 1 -fi -} - -#------------------------------------ -# build gsi -#------------------------------------ -$Build_gsi && { -echo " .... GSI build not currently supported .... " -#echo " .... Building gsi .... " -#./build_gsi.sh > $logs_dir/build_gsi.log 2>&1 -} - -echo;echo " .... Build system finished .... " -echo;echo " .... Installing executables .... " - -./install_all.sh - -echo;echo " .... Installation finished .... " -echo;echo " .... Linking fix files .... " - -./link_fix.sh - -echo;echo " .... Linking fix files finished .... " - -exit 0 diff --git a/src/build_forecast.sh b/src/build_forecast.sh deleted file mode 100755 index c7ff761398..0000000000 --- a/src/build_forecast.sh +++ /dev/null @@ -1,67 +0,0 @@ -#! /usr/bin/env bash -#========================================================================== -# -# Description: Builds the UFS Weather Model and puts the executable in -# ufs_weather_model/test. This script is usually called -# from ./build_all.sh. -# -# Note: Only the CCPP static build of the UFS MR Weather Model is supported. -# -# Usage: ./build_forecast.sh -# -#========================================================================== -set -eux - -source ./machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} -if [ $USE_PREINST_LIBS = true ]; then - export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles -else - export MOD_PATH=${cwd}/lib/modulefiles -fi - -export COMPILER=intel -export CMAKE_Platform=${target} -if [ $target = 'wcoss_cray' -o $target = 'wcoss_dell_p3' ]; then - target=${target} -else - target=${target}.${COMPILER} -fi - -cd ufs_weather_model -model_top_dir=`pwd` - -cd modulefiles/${target} -module use $(pwd) -module load fv3 -cd ${model_top_dir} - -# CMake 3.15 or higher is required. -if [ "$platform" == "cheyenne" ] ; then - module load cmake/3.16.4 -fi - -#--------------------------------------------------------------------------------- -# Build static executable using cmake for all valid suites in workflow -# defined in regional_workflow/ush/valid_param_vals.sh -#--------------------------------------------------------------------------------- - -# Read in the array of valid physics suite from the file in the workflow -# that specifies valid values for various parameters. In this case, it -# is the valid values for CCPP_PHYS_SUITE. Note that the result (stored -# in CCPP_SUITES) is a string consisting of a comma-separated list of all -# the valid (allowed) CCPP physics suites. -CCPP_SUITES=$( - . ../../regional_workflow/ush/valid_param_vals.sh - printf "%s," "${valid_vals_CCPP_PHYS_SUITE[@]}" -) -export CCPP_SUITES="${CCPP_SUITES:0: -1}" # Remove comma after last suite. - -./build.sh || echo "FAIL: build_forecast.sh failed, see ${cwd}/logs/build_forecast.log" - -#--------------------------------------------------------------------------------- -# Copy executable (named ufs_weather_model) to tests dir so workflow can find it -#--------------------------------------------------------------------------------- -cp ${model_top_dir}/ufs_weather_model ${model_top_dir}/tests/fv3.exe diff --git a/src/build_post.sh b/src/build_post.sh deleted file mode 100755 index 30eef9819f..0000000000 --- a/src/build_post.sh +++ /dev/null @@ -1,49 +0,0 @@ -#! /usr/bin/env bash -set -eux - -source ./machine-setup.sh > /dev/null 2>&1 -cwd=`pwd` - -USE_PREINST_LIBS=${USE_PREINST_LIBS:-"true"} -if [ $USE_PREINST_LIBS = true ]; then - export MOD_PATH=/scratch3/NCEPDEV/nwprod/lib/modulefiles -else - export MOD_PATH=${cwd}/lib/modulefiles -fi - -# Check final exec folder exists -if [ ! -d "../exec" ]; then - mkdir ../exec -fi - -cd EMC_post - -if [ "$target" = "jet" ] ; then - ./compile jet -elif [ "$target" = "hera" ] ; then - ./compile hera -elif [ "$target" = "wcoss_cray" ] ; then - ./compile cray-intel -elif [ "$target" = "wcoss_dell_p3" ] ; then - ./compile wcoss_dell_p3 -elif [ "$target" = "wcoss" ] ; then - ./compile wcoss -elif [ "$target" = "cheyenne" ] ; then - #Definitely need to make this bit machine-agnostic in the future... - . /glade/u/apps/ch/opt/lmod/8.1.7/lmod/8.1.7/init/sh - moduledir=$(readlink -f ../../regional_workflow/modulefiles/) - module use $moduledir - module load cheyenne.default - ./configure << EOT -4 -EOT - ./compile -elif [ "$target" = "gaea" ] ; then - echo "Not doing anything for 'gaea', if statement reserved for future use" -elif [ "$target" = "odin" ] ; then - ./compile odin -elif [ "$target" = "stampede" ] ; then - ./compile stampede -else - echo WARNING: UNKNOWN PLATFORM 1>&2 -fi diff --git a/src/install_all.sh b/src/install_all.sh deleted file mode 100755 index 4d545c1822..0000000000 --- a/src/install_all.sh +++ /dev/null @@ -1,80 +0,0 @@ -#!/bin/sh -set -xeu - -build_dir=`pwd` - -CP='cp -rp' - -# Check final exec folder exists -if [ ! -d "../exec" ]; then - echo "Creating ../exec folder" - mkdir ../exec -fi - -#------------------------------------ -# INCLUDE PARTIAL BUILD -#------------------------------------ - -. ./partial_build.sh - -#------------------------------------ -# install forecast -#------------------------------------ -#${CP} NEMSfv3gfs/fv3.exe ../exec/regional_forecast.x - -#------------------------------------ -# install post -#------------------------------------ -$Build_post && { - ${CP} EMC_post/exec/* ../exec/ncep_post -} - -#------------------------------------ -# 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 -} - -#------------------------------------ -# install gsi -#------------------------------------ -$Build_gsi && { - ${CP} regional_gsi.fd/exec/global_gsi.x ../exec/regional_gsi.x - ${CP} regional_gsi.fd/exec/global_enkf.x ../exec/regional_enkf.x - ${CP} regional_gsi.fd/exec/adderrspec.x ../exec/regional_adderrspec.x - ${CP} regional_gsi.fd/exec/adjustps.x ../exec/regional_adjustps.x - ${CP} regional_gsi.fd/exec/calc_increment_ens.x ../exec/regional_calc_increment_ens.x - ${CP} regional_gsi.fd/exec/calc_increment_serial.x ../exec/regional_calc_increment_serial.x - ${CP} regional_gsi.fd/exec/getnstensmeanp.x ../exec/regional_getnstensmeanp.x - ${CP} regional_gsi.fd/exec/getsfcensmeanp.x ../exec/regional_getsfcensmeanp.x - ${CP} regional_gsi.fd/exec/getsfcnstensupdp.x ../exec/regional_getsfcnstensupdp.x - ${CP} regional_gsi.fd/exec/getsigensmeanp_smooth.x ../exec/regional_getsigensmeanp_smooth.x - ${CP} regional_gsi.fd/exec/getsigensstatp.x ../exec/regional_getsigensstatp.x - ${CP} regional_gsi.fd/exec/gribmean.x ../exec/regional_gribmean.x - ${CP} regional_gsi.fd/exec/nc_diag_cat.x ../exec/regional_nc_diag_cat.x - ${CP} regional_gsi.fd/exec/nc_diag_cat_serial.x ../exec/regional_nc_diag_cat_serial.x - ${CP} regional_gsi.fd/exec/oznmon_horiz.x ../exec/regional_oznmon_horiz.x - ${CP} regional_gsi.fd/exec/oznmon_time.x ../exec/regional_oznmon_time.x - ${CP} regional_gsi.fd/exec/radmon_angle.x ../exec/regional_radmon_angle.x - ${CP} regional_gsi.fd/exec/radmon_bcoef.x ../exec/regional_radmon_bcoef.x - ${CP} regional_gsi.fd/exec/radmon_bcor.x ../exec/regional_radmon_bcor.x - ${CP} regional_gsi.fd/exec/radmon_time.x ../exec/regional_radmon_time.x - ${CP} regional_gsi.fd/exec/recenternemsiop_hybgain.x ../exec/regional_recenternemsiop_hybgain.x - ${CP} regional_gsi.fd/exec/recentersigp.x ../exec/regional_recentersigp.x - ${CP} regional_gsi.fd/exec/test_nc_unlimdims.x ../exec/regional_test_nc_unlimdims.x -} - -echo;echo " .... Install system finished .... " - -exit 0 diff --git a/src/link_fix.sh b/src/link_fix.sh deleted file mode 100755 index 7a1c2d69c8..0000000000 --- a/src/link_fix.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/sh -set -xeu - -source ./machine-setup.sh > /dev/null 2>&1 - -pwd=$(pwd -P) - -# prepare fixed data directories - -RGNL_WFLOW_DIR=$( pwd )/.. -cd ${RGNL_WFLOW_DIR} -mkdir -p fix/fix_fv3 -cd fix - -if [ ${target} == "theia" ]; then - - ln -sfn /scratch4/NCEPDEV/global/save/glopara/git/fv3gfs/fix/fix_am fix_am - -elif [ ${target} == "hera" ]; then - - ln -sfn /scratch1/NCEPDEV/global/glopara/fix/fix_am fix_am - -elif [[ ${target} == "wcoss_dell_p3" || ${target} == "wcoss" || ${target} == "wcoss_cray" ]]; then - - ln -sfn /gpfs/dell2/emc/modeling/noscrub/emc.campara/fix_fv3cam fix_am - -elif [ ${target} == "odin" ]; then - - ln -sfn /scratch/ywang/fix/theia_fix/fix_am fix_am - -elif [ ${target} == "stampede" ]; then - - ln -sfn /work/00315/tg455890/stampede2/regional_fv3/fix_am fix_am - -elif [ ${target} == "cheyenne" ]; then - - ln -sfn /glade/p/ral/jntp/GMTB/FV3GFS_V1_RELEASE/fix/fix_am fix_am - -elif [ ${target} == "jet" ]; then - - ln -sfn /lfs3/projects/hpc-wof1/ywang/regional_fv3/fix/fix_am fix_am - -else - - echo "Unknown target " ${target} - exit 1 - -fi - -exit diff --git a/src/machine-setup.sh b/src/machine-setup.sh deleted file mode 100644 index 5196bc55ca..0000000000 --- a/src/machine-setup.sh +++ /dev/null @@ -1,165 +0,0 @@ -# Create a test function for sh vs. bash detection. The name is -# randomly generated to reduce the chances of name collision. -__ms_function_name="setup__test_function__$$" -eval "$__ms_function_name() { /bin/true ; }" - -# Determine which shell we are using -__ms_ksh_test=$( eval '__text="text" ; if [[ $__text =~ ^(t).* ]] ; then printf "%s" ${.sh.match[1]} ; fi' 2> /dev/null | cat ) -__ms_bash_test=$( eval 'if ( set | grep '$__ms_function_name' | grep -v name > /dev/null 2>&1 ) ; then echo t ; fi ' 2> /dev/null | cat ) - -if [[ ! -z "$__ms_ksh_test" ]] ; then - __ms_shell=ksh -elif [[ ! -z "$__ms_bash_test" ]] ; then - __ms_shell=bash -else - # Not bash or ksh, so assume sh. - __ms_shell=sh -fi - -# Handle platform as an optional command line argument -platform=${1:-no_platform_specified} - -if [ "$platform" = "no_platform_specified" ]; then - echo "Using directory structure to determine platform" - if [[ -d /lfs3 ]] ; then - # We are on NOAA Jet - platform=jet - elif [[ -d /scratch2/BMC/det ]] ; then - # We are on NOAA Hera - platform=hera - elif [[ -d /scratch3/BMC/det ]] ; then - # We are on NOAA Theia - platform=theia - elif [[ -d /gpfs/hps && -e /etc/SuSE-release ]] ; then - # We are on NOAA Luna or Surge - platform=wcoss_cray - elif [[ -L /usrx && "$( readlink /usrx 2> /dev/null )" =~ dell ]] ; then - # We are on NOAA Venus or Mars - platform=wcoss_dell_p3 - elif [[ -d /dcom && -d /hwrf ]] ; then - # We are on NOAA Tide or Gyre - platform=wcoss - elif [[ -d /glade ]] ; then - # We are on NCAR Cheyenne - platform=cheyenne - elif [[ -d /lustre && -d /ncrc ]] ; then - # We are on GAEA. - platform=gaea - elif [[ "$(hostname)" =~ "odin" ]]; then - # We are on odin - platform=odin - elif [[ "$(hostname)" =~ "stampede" ]]; then - # We are on login?.stampede2.tacc.utexas.edu - platform=stampede - else - # We are on an unknown machine - echo WARNING: UNKNOWN PLATFORM 1>&2 - platform=UNKNOWN - fi -fi - - -if [ "$platform" != "UNKNOWN" ]; then - #Do not set "target" if platform is unknown - target=$platform -fi - -USERNAME=`echo $LOGNAME | awk '{ print tolower($0)'}` - -if [ "$target" = "jet" ] ; then - # We are on NOAA Jet - if ( ! eval module help > /dev/null 2>&1 ) ; then - echo load the module command 1>&2 - source /apps/lmod/lmod/init/$__ms_shell - fi - module purge - export NCEPLIBS=/lfs4/HFIP/hfv3gfs/nwprod/NCEPLIBS/modulefiles - echo NCEPLIBS HARD SET to $NCEPLIBS in `pwd`/module_setup.sh.inc - module use $NCEPLIBS/modulefiles -elif [ "$target" = "theia" ] || [ "$target" = "hera" ] ; then - # We are on NOAA Theia or Hera - if ( ! eval module help > /dev/null 2>&1 ) ; then - echo load the module command 1>&2 - source /apps/lmod/lmod/init/$__ms_shell - fi - module purge - module use /scratch3/NCEPDEV/nwprod/modulefiles/ - module use /scratch3/NCEPDEV/nwprod/lib/modulefiles -elif [ "$target" = "wcoss_cray" ] ; then - # We are on NOAA Luna or Surge - if ( ! eval module help > /dev/null 2>&1 ) ; then - echo load the module command 1>&2 - source /opt/modules/default/init/$__ms_shell - fi - - # Silence the "module purge" to avoid the expected error messages - # related to modules that load modules. - module purge > /dev/null 2>&1 - module use /usrx/local/prod/modulefiles - module use /gpfs/hps/nco/ops/nwprod/lib/modulefiles - module use /gpfs/hps/nco/ops/nwprod/modulefiles - module use /opt/cray/alt-modulefiles - module use /opt/cray/craype/default/alt-modulefiles - module use /opt/cray/ari/modulefiles - module use /opt/modulefiles - module purge > /dev/null 2>&1 - - # Workaround until module issues are fixed: - #unset _LMFILES_ - #unset LOADEDMODULES - echo y 2> /dev/null | module clear > /dev/null 2>&1 - - module use /usrx/local/prod/modulefiles - module use /gpfs/hps/nco/ops/nwprod/lib/modulefiles - module use /gpfs/hps/nco/ops/nwprod/modulefiles - module use /opt/cray/alt-modulefiles - module use /opt/cray/craype/default/alt-modulefiles - module use /opt/cray/ari/modulefiles - module use /opt/modulefiles - module load modules - -elif [ "$target" = "wcoss_dell_p3" ] ; then - # We are on NOAA Venus or Mars - if ( ! eval module help > /dev/null 2>&1 ) ; then - echo load the module command 1>&2 - source /usrx/local/prod/lmod/lmod/init/$__ms_shell - fi - module purge - module use /usrx/local/dev/modulefiles - -elif [ "$target" = "wcoss" ] ; then - # We are on NOAA Tide or Gyre - if ( ! eval module help > /dev/null 2>&1 ) ; then - echo load the module command 1>&2 - source /usrx/local/Modules/default/init/$__ms_shell - fi - module purge -elif [ "$target" = "cheyenne" ] ; then - # We are on NCAR Cheyenne - echo "Not doing anything for 'cheyenne', if statement reserved for future use" -elif [ "$target" = "gaea" ] ; then - # We are on GAEA. - if ( ! eval module help > /dev/null 2>&1 ) ; then - # We cannot simply load the module command. The GAEA - # /etc/profile modifies a number of module-related variables - # before loading the module command. Without those variables, - # the module command fails. Hence we actually have to source - # /etc/profile here. - echo load the module command 1>&2 - source /etc/profile - fi - # Don't purge on gaea, or hell will break loose - #module purge -elif [ "$target" = "odin" ] ; then - echo "Not doing anything for 'odin', if statement reserved for future use" -elif [[ "$target" =~ "stampede" ]] ; then - echo "Not doing anything for 'stampede', if statement reserved for future use" -else - echo WARNING: UNKNOWN PLATFORM 1>&2 -fi - -unset __ms_shell -unset __ms_ksh_test -unset __ms_bash_test -unset $__ms_function_name -unset __ms_function_name diff --git a/src/partial_build.sh b/src/partial_build.sh deleted file mode 100755 index f26147e100..0000000000 --- a/src/partial_build.sh +++ /dev/null @@ -1,175 +0,0 @@ -# -# define the array of the name of build program -# - declare -a Build_prg=("Build_libs" "Build_forecast" "Build_gsi" \ - "Build_post" "Build_UFS_UTILS" ) - -# -# function parse_cfg: read config file and retrieve the values -# - parse_cfg() { - declare -i n - declare -i num_args - declare -i total_args - declare -a all_prg - total_args=$# - num_args=$1 - (( num_args == 0 )) && return 0 - config=$2 - [[ ${config,,} == "--verbose" ]] && config=$3 - all_prg=() - for (( n = num_args + 2; n <= total_args; n++ )); do - all_prg+=( ${!n} ) - done - - if [[ ${config^^} == ALL ]]; then -# -# set all values to true -# - for var in "${Build_prg[@]}"; do - eval "$var=true" - done - elif [[ $config == config=* ]]; then -# -# process config file -# - cfg_file=${config#config=} - $verbose && echo "INFO: settings in config file: $cfg_file" - while read cline; do -# remove leading white space - clean_line="${cline#"${cline%%[![:space:]]*}"}" - ( [[ -z "$clean_line" ]] || [[ "${clean_line:0:1}" == "#" ]] ) || { - $verbose && echo $clean_line - first9=${clean_line:0:9} - [[ ${first9,,} == "building " ]] && { - short_prg=$(sed -e 's/.*(\(.*\)).*/\1/' <<< "$clean_line") -# remove trailing white space - clean_line="${cline%"${cline##*[![:space:]]}"}" - build_action=true - last5=${clean_line: -5} - [[ ${last5,,} == ". yes" ]] && build_action=true - last4=${clean_line: -4} - [[ ${last4,,} == ". no" ]] && build_action=false - found=false - for prg in ${all_prg[@]}; do - [[ $prg == "Build_"$short_prg ]] && { - found=true - eval "$prg=$build_action" - break - } - done - $found || { - echo "*** Unrecognized line in config file \"$cfg_file\":" 2>&1 - echo "$cline" 2>&1 - exit 3 - } - } - } - done < $cfg_file - elif [[ $config == select=* ]]; then -# -# set all values to (default) false -# - for var in "${Build_prg[@]}"; do - eval "$var=false" - done -# -# read command line partial build setting -# - del="" - sel_prg=${config#select=} - for separator in " " "," ";" ":" "/" "|"; do - [[ "${sel_prg/$separator}" == "$sel_prg" ]] || { - del=$separator - sel_prg=${sel_prg//$del/ } - } - done - [[ $del == "" ]] && { - short_prg=$sel_prg - found=false - for prg in ${all_prg[@]}; do - [[ $prg == "Build_"$short_prg ]] && { - found=true - eval "$prg=true" - break - } - done - $found || { - echo "*** Unrecognized program name \"$short_prg\" in command line" 2>&1 - exit 4 - } - } || { - for short_prg in $(echo ${sel_prg}); do - found=false - for prg in ${all_prg[@]}; do - [[ $prg == "Build_"$short_prg ]] && { - found=true - eval "$prg=true" - break - } - done - $found || { - echo "*** Unrecognized program name \"$short_prg\" in command line" 2>&1 - exit 5 - } - done - } - else - echo "*** Unrecognized command line option \"$config\"" 2>&1 - exit 6 - fi - } - -# -# read command line arguments; processing config file -# - verbose=false - num_arg=$# - (( num_arg > 1 )) && { - [[ ${1,,} == "--verbose" ]] && { - verbose=true - } || { - echo "Usage: $0 [ALL|config=config_file|[select=][prog1[,prog2[,...]]]" 2>&1 - exit 1 - } - } - (( num_arg == 1 )) && { - ( [[ $1 == "-h" ]] || [[ $1 == "--help" ]] ) && { - echo "Usage: $0 [ALL|config=config_file|[select=][prog1[,prog2[,...]]]" 2>&1 - exit 2 - } - ( [[ $1 == "-v" ]] || [[ ${1,,} == "--verbose" ]] ) && { - verbose=true - num_arg=0 - } || { - echo "Usage: $0 [ALL|config=config_file|[select=][prog1[,prog2[,...]]]" 2>&1 - exit 3 - } - } - - if (( num_arg == 0 )); then -# -# set default values for partial build -# - parse_cfg 1 "config=regional_build.cfg" ${Build_prg[@]} - else - -# -# call arguments retriever/config parser -# - parse_cfg $num_arg "$@" ${Build_prg[@]} - fi - -# -# print values of build array -# - $verbose && { - echo "INFO: partial build settings:" - for var in "${Build_prg[@]}"; do - echo -n " $var: " - ${!var} && echo True || echo False - done - } - - echo "=== end of partial build setting ===" > /dev/null - diff --git a/src/regional_build.cfg b/src/regional_build.cfg deleted file mode 100644 index 86d39201bf..0000000000 --- a/src/regional_build.cfg +++ /dev/null @@ -1,11 +0,0 @@ -# -# ***** configuration of regional build ***** - - Building libraries (libs) ............................. no - Building forecast (forecast) .......................... yes - Building gsi (gsi) .................................... no - Building post (post) .................................. yes - Building UFS_UTILS (UFS_UTILS) ........................ yes - -# -- END -- - From 25f10b7695d738d29b65725cec0a30ac7600ec1e Mon Sep 17 00:00:00 2001 From: "Michael Kavulich, Jr" Date: Thu, 29 Oct 2020 09:29:49 -0600 Subject: [PATCH 07/11] Preliminary instructions for macos...still having trouble getting the right gfortran flags for everything to compile correctly --- docs/README_macos_gccgfortran.txt | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 docs/README_macos_gccgfortran.txt diff --git a/docs/README_macos_gccgfortran.txt b/docs/README_macos_gccgfortran.txt new file mode 100644 index 0000000000..7eb00d56f5 --- /dev/null +++ b/docs/README_macos_gccgfortran.txt @@ -0,0 +1,22 @@ +#Setup instructions for macOS Mojave or Catalina using gcc-10.2.0 + gfortran-10.2.0 + +# 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 ${INSTALL_PREFIX}/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 + From 61f428929ee8a7af20145180724bd863404acb75 Mon Sep 17 00:00:00 2001 From: "Michael Kavulich, Jr" Date: Thu, 29 Oct 2020 09:31:41 -0600 Subject: [PATCH 08/11] Consolidate common instructions into "INSTALL" file --- docs/INSTALL | 16 ++++++++++++++++ docs/README_cheyenne_gnu.txt | 9 --------- docs/README_cheyenne_intel.txt | 9 --------- docs/README_hera_intel.txt | 9 --------- docs/README_jet_intel.txt | 9 --------- docs/README_orion_intel.txt | 9 --------- 6 files changed, 16 insertions(+), 45 deletions(-) create mode 100644 docs/INSTALL diff --git a/docs/INSTALL b/docs/INSTALL new file mode 100644 index 0000000000..9ea348bd6a --- /dev/null +++ b/docs/INSTALL @@ -0,0 +1,16 @@ +# 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 + +git clone -b release/public-v1 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 + +mkdir build && cd build +cmake .. -DCMAKE_INSTALL_PREFIX=.. +make -j 8 diff --git a/docs/README_cheyenne_gnu.txt b/docs/README_cheyenne_gnu.txt index 5b9b57fc6b..e8d6adb6ca 100644 --- a/docs/README_cheyenne_gnu.txt +++ b/docs/README_cheyenne_gnu.txt @@ -1,10 +1,5 @@ #Setup instructions for CISL Cheyenne using Intel-19.1.1 (bash shell) -git clone -b release/public-v1 git@github.com:ufs-community/ufs-srweather-app - -cd ufs-srweather-app/ -./manage_externals/checkout_externals - module purge module load ncarenv/1.3 module load gnu/9.1.0 @@ -21,7 +16,3 @@ export CMAKE_CXX_COMPILER=mpicxx export CMAKE_Fortran_COMPILER=mpif90 export CMAKE_Platform=cheyenne.intel -mkdir build -cd build -cmake .. -DCMAKE_INSTALL_PREFIX=.. -make -j 4 diff --git a/docs/README_cheyenne_intel.txt b/docs/README_cheyenne_intel.txt index 8b774e2475..ec9964a11e 100644 --- a/docs/README_cheyenne_intel.txt +++ b/docs/README_cheyenne_intel.txt @@ -1,10 +1,5 @@ #Setup instructions for CISL Cheyenne using Intel-19.1.1 (bash shell) -git clone -b release/public-v1 git@github.com:ufs-community/ufs-srweather-app - -cd ufs-srweather-app/ -./manage_externals/checkout_externals - module purge module load ncarenv/1.3 module load intel/19.1.1 @@ -22,7 +17,3 @@ export CMAKE_CXX_COMPILER=mpicxx export CMAKE_Fortran_COMPILER=mpif90 export CMAKE_Platform=cheyenne.intel -mkdir build -cd build -cmake .. -DCMAKE_INSTALL_PREFIX=.. -make -j 4 diff --git a/docs/README_hera_intel.txt b/docs/README_hera_intel.txt index 91d8288d51..9f9c5fa715 100644 --- a/docs/README_hera_intel.txt +++ b/docs/README_hera_intel.txt @@ -1,10 +1,5 @@ #Setup instructions for NOAA RDHPC Hera using Intel-18.0.5.274 (bash shell) -git clone -b release/public-v1 git@github.com:ufs-community/ufs-srweather-app - -cd ufs-srweather-app/ -./manage_externals/checkout_externals - module purge module load intel/18.0.5.274 module load impi/2018.0.4 @@ -19,7 +14,3 @@ export CMAKE_CXX_COMPILER=mpiicpc export CMAKE_Fortran_COMPILER=mpiifort export CMAKE_Platform=hera.intel -mkdir build -cd build -cmake .. -DCMAKE_INSTALL_PREFIX=.. -make -j 8 diff --git a/docs/README_jet_intel.txt b/docs/README_jet_intel.txt index 6fe830f64c..aca1f30679 100644 --- a/docs/README_jet_intel.txt +++ b/docs/README_jet_intel.txt @@ -1,10 +1,5 @@ #Setup instructions for NOAA RDHPC Jet using Intel-18.0.5.274 (bash shell) -git clone -b release/public-v1 git@github.com:ufs-community/ufs-srweather-app - -cd ufs-srweather-app/ -./manage_externals/checkout_externals - module purge module use /contrib/sutils/modulefiles module load sutils @@ -23,7 +18,3 @@ export CMAKE_CXX_COMPILER=mpiicpc export CMAKE_Fortran_COMPILER=mpiifort export CMAKE_Platform=jet.intel -mkdir build -cd build -cmake .. -DCMAKE_INSTALL_PREFIX=.. -make -j 8 diff --git a/docs/README_orion_intel.txt b/docs/README_orion_intel.txt index 90605b8714..f7ccf7133e 100644 --- a/docs/README_orion_intel.txt +++ b/docs/README_orion_intel.txt @@ -1,10 +1,5 @@ #Setup instructions for MSU Orion using Intel-19.1.0.166 (bash shell) -git clone -b release/public-v1 git@github.com:ufs-community/ufs-srweather-app - -cd ufs-srweather-app/ -./manage_externals/checkout_externals - module purge module load intel/2020 module load impi/2020 @@ -20,7 +15,3 @@ export CMAKE_CXX_COMPILER=mpiicpc export CMAKE_Fortran_COMPILER=mpiifort export CMAKE_Platform=orion.intel -mkdir build -cd build -cmake .. -DCMAKE_INSTALL_PREFIX=.. -make -j 4 From d67b0eadd59c251e9076d11dce3bff95717ec77d Mon Sep 17 00:00:00 2001 From: "Michael Kavulich, Jr" Date: Fri, 30 Oct 2020 05:19:40 -0600 Subject: [PATCH 09/11] Corrections for macosx gnu --- docs/README_macos_gccgfortran.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/README_macos_gccgfortran.txt b/docs/README_macos_gccgfortran.txt index 7eb00d56f5..de07614ef8 100644 --- a/docs/README_macos_gccgfortran.txt +++ b/docs/README_macos_gccgfortran.txt @@ -4,7 +4,8 @@ export NCEPLIBS=/usr/local/NCEPLIBS-ufs-v2.0.0 # Need this environment script to be executable -chmod +x ${INSTALL_PREFIX}/bin/setenv_nceplibs.sh +chmod +x ${NCEPLIBS}/bin/setenv_nceplibs.sh +${NCEPLIBS}/bin/setenv_nceplibs.sh export CC=gcc-10 export FC=gfortran-10 From 37fd499b8bb5a6a8b8bb446d83c0e9f5722410cd Mon Sep 17 00:00:00 2001 From: "Michael Kavulich, Jr" Date: Fri, 30 Oct 2020 08:26:36 -0600 Subject: [PATCH 10/11] A bit of helpful details for csh-like users --- docs/INSTALL | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/INSTALL b/docs/INSTALL index 9ea348bd6a..f37f0c9541 100644 --- a/docs/INSTALL +++ b/docs/INSTALL @@ -9,7 +9,9 @@ cd ufs-srweather-app/ # 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 +# included "README" files in this directory. The 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. mkdir build && cd build cmake .. -DCMAKE_INSTALL_PREFIX=.. From 89e5a545c502c60cb7d350fe3590daccf70efe68 Mon Sep 17 00:00:00 2001 From: "Michael Kavulich, Jr" Date: Mon, 2 Nov 2020 11:01:04 -0700 Subject: [PATCH 11/11] Start adding more details to INSTALL --- docs/INSTALL | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/docs/INSTALL b/docs/INSTALL index f37f0c9541..d631fdedd5 100644 --- a/docs/INSTALL +++ b/docs/INSTALL @@ -2,17 +2,32 @@ # 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 -b release/public-v1 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. The 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. +# 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 + +