#!/bin/bash

do_cmake=1
do_clean=1
do_make=1
 
HOMME_ROOT=/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=mpif90                                              \
  -DCMAKE_C_COMPILER=mpicc                                                     \
  -DCMAKE_CXX_COMPILER=mpiCC                                                   \
  -DOPT_FLAGS="-fast -acc -Mcuda=7.5,cc35,ptxinfo -ta=tesla,pin -Minfo=accel"  \
  -DDEBUG_FLAGS=" "                                                            \
  -DNETCDF_DIR=$NETCDF_DIR                                                     \
  -DWITH_PNETCDF=FALSE                                                         \
  -DHDF5_DIR=$HDF5_DIR                                                         \
  -DPREQX_NP=4                                                                 \
  -DPREQX_PLEV=$NLEVELS                                                        \
  -DBUILD_HOMME_SWEQX=FALSE                                                    \
  -DBUILD_HOMME_PREQX=FALSE                                                    \
  -DBUILD_HOMME_PREQX_ACC=TRUE                                                 \
  -DENABLE_OPENMP=TRUE                                                         \
  -DHOMME_PROJID=STF006                                                        \
  -DENABLE_OPENACC=TRUE                                                        \
  -DENABLE_CUDA_FORTRAN=FALSE                                                  \
  -DHOMME_FIND_BLASLAPACK=TRUE                                                 \
  -DNetcdf_NC_CONFIG_BIN="/opt/netcdf-4.3.3.1_pgi15.9/bin"                     \
  -DZLIB_DIR=$ZLIB_PATH                                                        \
  -DSZIP_DIR=$SZIP_PATH                                                        \
  -DCURL_DIR=/opt/curl-7.45_pgi15.9                                            \
  -DCMAKE_EXE_LINKER_FLAGS:STRING='-ta=tesla,pin -Mcuda=7.5,cc35 -acc -L$NETCDF_DIR/lib -lnetcdf -lnetcdff -ldl'         \
                                                                               \
                                                                               \
                                                                               \
  -DPREQX_CUSTOM_FLAGS_FILE=${HOMME_ROOT}/compile_scripts/thatchroof/customFlags.cmake.openacc \
  $HOMME_ROOT                                               
fi
# -DOPT_FLAGS="-fastsse -Mvect"                                                \

if [ $do_clean -eq 1 ]; then
sed -i "s/  integer, parameter         :: qsize_d=.*/  integer, parameter         :: qsize_d=$NTRACERS/g" $HOMME_ROOT/src/share/dimensions_mod.F90 || exit -1
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
