#!/bin/bash debug=${1:-"release"} rebuild=${2:-"fast"} # LOAD REQUIRED MODULES module load intel/19.1.0 module load openmpi/intel.19/3.1.6 module load netcdf/intel.19/4.7.4 # GET IOW ESM ROOT PATH export IOW_ESM_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )/../.." # SET SYSTEM-SPECIFIC COMPILER OPTIONS AND PATHS # compile mode: "PRODUCTION" or "DEBUG" if [ $debug == "debug" ]; then export IOW_ESM_COMPILE_MODE="DEBUG" elif [ $debug == "release" ]; then export IOW_ESM_COMPILE_MODE="PRODUCTION" else echo "Compile mode is not specified correctly. Use debug or release" exit; fi # include paths export IOW_ESM_NETCDF_INCLUDE="${NETCDF_INCLUDE_PATH}" export IOW_ESM_NETCDF_LIBRARY="${NETCDF_LIBRARY_PATH}" # executables export IOW_ESM_MAKE="/usr/bin/make" export IOW_ESM_FC="mpifort" export IOW_ESM_CC="mpicc" export IOW_ESM_LD="mpifort" if [ $debug == "debug" ]; then # compiler flags export IOW_ESM_CPPDEFS="-DOASIS_IOW_ESM -DIOW_ESM_DEBUG" export IOW_ESM_FFLAGS="-O0 -r8 -g -traceback -check all -fp-model fast=2 -xHost -I${IOW_ESM_NETCDF_INCLUDE}/" export IOW_ESM_CFLAGS="-O0 -r8 -g -traceback -fp-model fast=2 -xHost -I${IOW_ESM_NETCDF_INCLUDE}/" export IOW_ESM_LDFLAGS="-g -traceback -L${IOW_ESM_NETCDF_LIBRARY} -lnetcdf -lnetcdff -Wl,-rpath,${IOW_ESM_NETCDF_LIBRARY}" else # compiler flags export IOW_ESM_CPPDEFS="-DOASIS_IOW_ESM" export IOW_ESM_FFLAGS="-O3 -r8 -no-prec-div -fp-model fast=2 -xHost -I${IOW_ESM_NETCDF_INCLUDE}/" export IOW_ESM_CFLAGS="-O3 -r8 -no-prec-div -fp-model fast=2 -xHost -I${IOW_ESM_NETCDF_INCLUDE}/" export IOW_ESM_LDFLAGS="-L${IOW_ESM_NETCDF_LIBRARY} -lnetcdf -lnetcdff -Wl,-rpath,${IOW_ESM_NETCDF_LIBRARY}" fi # MAKE CLEAN if [ $rebuild == "rebuild" ]; then rm -r ${IOW_ESM_ROOT}/components/MOM5/exec/IOW_ESM_${IOW_ESM_COMPILE_MODE} fi # RUN BUILD COMMAND cd ${IOW_ESM_ROOT}/components/MOM5/exp ./MOM_compile.csh cd ${IOW_ESM_ROOT}/components/MOM5