#!/bin/bash

REPO="http://www.nic.uoregon.edu/~amorris/regression"

go()
{
TOP=`pwd`

source /usr/local/packages/modules/init/bash
module unload mpi
module load mpi/mpich
which mpicc


export TAU_MAKEFILE=$TOP/tau2/include/Makefile
#export TAU_OPTIONS="-optVerbose -optKeepFiles -optTauSelectFile=$TOP/select.tau"
export TAU_OPTIONS="-optVerbose -optKeepFiles"
EXP="WRF Regression"
if [ "x$1" = "xgfortran" ] ; then
    TAU_OPTIONS=" $TAU_OPTIONS -optPdtGnuFortranParser"
    EXP="$EXP (gfortran)"
else
    EXP="$EXP (flint)"
fi


#wget $REPO/apps/wrf/WRFV2.0.3.1.TAR.gz
wget $REPO/apps/wrf/WRFV2.2.TAR.gz
wget $REPO/apps/wrf/configure.defaults
wget $REPO/apps/wrf/configure.wrf
wget $REPO/apps/wrf/netcdf.tar.gz
wget $REPO/apps/wrf/wrfinput.tar.gz
wget $REPO/apps/wrf/namelist.input


# build netcdf
export NETCDF=$TOP/netcdf-3.6.0-p1
mkdir pkgsrc
cd pkgsrc
tar -xzf $TOP/netcdf.tar.gz
cd netcdf-3.6.0-p1/src
CC=icc CXX=icpc FC=ifort CPPFLAGS=-DpgiFortran ./configure --prefix=$NETCDF
make
mkdir $NETCDF
make install
cd $TOP

# build PDT and TAU
cd $TOP
rm -rf pdtoolkit pdtoolkit.tar.gz
wget $REPO/checkouts/pdtoolkit.tar.gz
tar -xzf pdtoolkit.tar.gz
cd pdtoolkit
./configure
make -j
make install
cd $TOP
wget $REPO/checkouts/tau2.tar.gz
tar -xzf tau2.tar.gz
cd tau2
./configure -pdt=$TOP/pdtoolkit $TAU_MPI -cc=icc -c++=icpc -fortran=intel
make clean install -j

cd $TOP
tar -xzf WRFV2.2.TAR.gz
cd WRFV2
cp ../configure.defaults arch
echo "9" | ./configure

# for TAU
cp $TOP/configure.wrf .
./compile em_b_wave

ulimit -s unlimited
cd test/em_b_wave
./ideal.exe
cp $TOP/namelist.input .
mpirun -np 4 ./wrf.exe
#tar -xzf wrfinput.tar.gz

DATE=`date +%Y-%m-%d`
echo "Loading Trial"
$TOP/tau2/x86_64/bin/perfdmf_loadtrial -c regression -a "WRF" -x "$EXP" -n $DATE
#$TOP/tau2/x86_64/bin/paraprof --pack $DATE.ppk
#EXP=`date "+%B %Y"`
#$TOP/tau2/x86_64/bin/tau_portal.py up -u amorris -p db -w "GAMESS Regression" -e "$EXP" $DATE.ppk


}
(time go "$@") 2>&1 | tee tau.log
