# run this script by typing: source cori-gnu-bisicles-cmake
# After thus script completes, type: make -j 8
# If rebuilding, type 'make clean' before running 'make -j 8'

# This cmake configuration script builds cism_driver
# on cori using the gnu compiler suite.  It no longer relies on a build
# of Trilinos, but does need a BISICLES build located in BISICLES_INTERFACE_DIR
# (currently set to /global/u2/d/dmartin/BISICLES/code/interface)


# This script should be run from the builds/cori-pgi subdirectory
# of the main seacism repository (reflected in the two instances
# of "../.." below).

# BUILD OPTIONS:
# The call to cmake below includes several input ON/OFF switch parameters, to
# provide a simple way to select different build options.  These are:
# CISM_BUILD_CISM_DRIVER -- ON by default, set to OFF to only build the CISM libraries.
# CISM_ENABLE_BISICLES -- OFF by default, set to ON to build a BISICLES-capable cism_driver.
# CISM_ENABLE_FELIX -- OFF by default, set to ON to build a FELIX-capable cism_driver.
# CISM_USE_TRILINOS -- OFF by default, set to on for builds with Trilinos.
# CISM_MPI_MODE -- ON by default, only set to OFF for serial builds.
# CISM_SERIAL_MODE -- OFF by default, set to ON for serial builds.
# CISM_USE_GPTL_INSTRUMENTATION -- ON by default, set to OFF to not use GPTL instrumentation.
# CISM_COUPLED -- OFF by default, set to ON to build with CESM.
echo
echo Run this script by typing: source cori-gnu-bisicles-cmake
echo

#echo Warning: Python problem.  After the last cori system updates 1/28/13, in order to run simple_glide
#echo or simple_bisicles, you need to replace the python/2.7.3 module with the python/2.7.1 module.
#echo The easiest way to do this: In your .cshrc.ext or .bashrc.ext add the lines:
#echo module unload python 
#echo module load python/2.7.1
#echo

module unload cmake
module unload PrgEnv-cray PrgEnv-gnu PrgEnv-intel PrgEnv-pathscale PrgEnv-pgi
module unload hdf5 
module unload hdf5-parallel
module unload netcdf
module unload python
module unload cray-shmem
module unload cray-mpich2

module --silent purge

#module unload cmake netcdf-hdf5parallel/4.2.0 python
#module swap PrgEnv-pgi PrgEnv-gnu; module load cmake/2.8.7 python netcdf-hdf5parallel/4.2.0 usg-default-modules/1.0

module load modules/3.2.6.6
module load cmake/2.8.7
module load PrgEnv-gnu/4.2.34
module load cray-shmem/6.0.1
module load cray-mpich/6.0.1
module load cray-hdf5-parallel/1.8.11
module load cray-netcdf-hdf5parallel
module load python/2.7.5


module load torque/4.2.3.h5_notcpretry

# remove old build data:
rm ./CMakeCache.txt
rm -r ./CMakeFiles

# run a script that creates some CISM source files:
#pushd .
#cd ..
#../cmake-scripts/autogenerate-script
#popd

echo
echo "Doing CMake Configuration step"


cmake \
  -D CISM_BUILD_CISM_DRIVER:BOOL=ON \
  -D CISM_ENABLE_BISICLES=ON \
  -D CISM_ENABLE_FELIX=OFF \
\
  -D CISM_USE_TRILINOS:BOOL=OFF \
  -D CISM_MPI_MODE:BOOL=ON \
  -D CISM_SERIAL_MODE:BOOL=OFF \
\
  -D CISM_USE_GPTL_INSTRUMENTATION:BOOL=OFF \
  -D CISM_COUPLED:BOOL=OFF \
  -D ALBANY_BUILD_DIR="/project/projectdirs/piscees/albany/albany-cism-build" \
  -D ALBANY_BASE_DIR="/project/projectdirs/piscees/albany/albany-felix-src" \
\
  -D CISM_TRILINOS_DIR=/project/projectdirs/piscees/trilinos/trilinos-albany-build/install \
  -D CISM_NETCDF_DIR=/opt/cray/netcdf-hdf5parallel/4.3.0/GNU/48 \
  -D CISM_MPI_BASE_DIR=/opt/cray/mpt/6.0.1/gni/mpich2-gnu/48 \
\
  -D CMAKE_INSTALL_PREFIX:PATH=$PWD/install \
  -D CMAKE_VERBOSE_MAKEFILE:BOOL=ON \
  -D CMAKE_VERBOSE_CONFIGURE:BOOL=ON \
\
  -D CMAKE_CXX_COMPILER=CC \
  -D CMAKE_C_COMPILER=cc \
  -D CMAKE_Fortran_COMPILER=ftn \
\
\
  -D CMAKE_CXX_FLAGS:STRING="-O2  -DH5_USE_16_API" \
  -D CISM_Fortran_FLAGS:STRING="-O2 -DNO_RESCALE -ffree-line-length-none " \
  -D BISICLES_LIB_SUBDIR=libgnu \
  -D BISICLES_INTERFACE_DIR=$PWD/../../../BISICLES/CISM-interface/interface \
  -D CISM_MPI_LIBS:STRING="mpichf90" \
  ../..
# Note: last argument above  "../.."  is path to top seacism directory

# ADD: 

#  -D CMAKE_PREFIX_PATH="/opt/cray/hdf5/1.8.8/pgi/119;/opt/cray/hdf5-parallel/1.8.8/pgi/119" \

#  -D TPL_ENABLE_MPI:BOOL=ON \


#  -D CISM_HDF5_LIB_DIR=/opt/cray/hdf5-parallel/1.8.8/pgi/119/lib \
#  -D CISM_HDF5_LIBS="-lhdf5_pgi_parallel -lz" \
