#!/bin/bash

do_cmake=1
do_clean=1
do_make=1
 
HOMME_ROOT=/ccs/home/$USER/ACME/components/homme
NTRACERS=50
NLEVELS=64

source ./env_mach_specific.openacc

mkdir -p titan-openacc     || exit -1
cd titan-openacc
 
if [ $do_cmake -eq 1 ]; then
rm -rf CMakeFiles CMakeCache.txt
cmake                                                                                           \
  -C $HOMME_ROOT/cmake/machineFiles/titan.cmake                                                 \
  -DCMAKE_Fortran_COMPILER=ftn                                                                  \
  -DCMAKE_C_COMPILER=cc                                                                         \
  -DCMAKE_CXX_COMPILER=CC                                                                       \
  -DOPT_FLAGS="-O2 -Kieee -Mvect=nosse -acc -ta=tesla,pin,cuda7.0,cc35,ptxinfo -Minfo=accel"    \
  -DDEBUG_FLAGS=" "                                                                             \
  -DNETCDF_DIR=$NETCDF_DIR                                                                      \
  -DWITH_PNETCDF=FALSE                                                                          \
  -DHDF5_DIR=$HDF5_DIR                                                                          \
  -DPREQX_NP=4                                                                                  \
  -DPREQX_QSIZE_D=$NTRACERS                                                                     \
  -DPREQX_PLEV=$NLEVELS                                                                         \
  -DBUILD_HOMME_SWEQX=FALSE                                                                     \
  -DBUILD_HOMME_PREQX_ACC=TRUE                                                                  \
  -DBUILD_HOMME_PREQX=FALSE                                                                     \
  -DENABLE_OPENMP=TRUE                                                                          \
  -DHOMME_PROJID=STF006                                                                         \
  -DENABLE_OPENACC=TRUE                                                                         \
  -DENABLE_CUDA_FORTRAN=FALSE                                                                   \
  -DHOMME_FIND_BLASLAPACK=TRUE                                                                  \
  -DNetcdf_NC_CONFIG_BIN="/opt/cray/netcdf/4.3.3.1/bin"                                         \
  -DCMAKE_EXE_LINKER_FLAGS:STRING='-ta=tesla,pin,cuda7.0,cc35 -acc -Mcuda'                      \
                                                                                                \
                                                                                                \
  -DPREQX_CUSTOM_FLAGS_FILE=${HOMME_ROOT}/compile_scripts/titan/customFlags.cmake.openacc       \
  $HOMME_ROOT                                               
fi

if [ $do_clean -eq 1 ]; then
make clean                                                  || exit -1
fi

if [ $do_make -eq 1 ]; then
make -j16 preqx_acc                                         || exit -1
mkdir -p $HOMME_ROOT/build/preqx
cp ./src/preqx_acc/preqx_acc $HOMME_ROOT/build/preqx/preqx.openacc  || exit -1
fi
