#!/bin/bash

do_cmake=0
do_clean=0
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
sed -i "s/  integer, parameter         :: qsize_d=.*/  integer, parameter         :: qsize_d=$NTRACERS/g" $HOMME_ROOT/src/share/dimensions_mod.F90 || exit -1
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 -Mcuda=7.0,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                                                    \
  -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 -Mcuda=7.0,cc35 -acc'         \
                                                                               \
                                                                               \
  -DPREQX_CUSTOM_FLAGS_FILE=${HOMME_ROOT}/compile_scripts/chester/customFlags.cmake.openacc \
  $HOMME_ROOT                                               
fi
# -DOPT_FLAGS="-fastsse -Mvect"                                                \

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

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