#!/bin/bash

#set -vx
########################################################################
# 0/ Initialisation and contols
########################################################################
# Default bench
LLM=130
LLM=95

for LLM in 95 ; do

model=LMDZ
metrics=ARMCU_REF_zav-400-600-theta_9_9
param=param
bench=""
wave=1
WDIR=BENCH$bench$model

for wave in 1 2 3 ; do
	case $wave in
		1) cutoff=3 ; metrics="SANDU_REF_nebzave_55_60" ;;
		2) cutoff=3 ; metrics="SANDU_REF_nebzave_55_60 SANDU_REF_neb4zave_55_60" ;;
		3) cutoff=3 ; metrics="SANDU_REF_nebzave_55_60 SANDU_REF_neb4zave_55_60 IHOP_REF_Ay-theta_7_9 ARMCU_REF_Ay-theta_7_9" ;;
		4) cutoff=3 ; metrics="SANDU_REF_nebzave_55_60 SANDU_REF_neb4zave_55_60 IHOP_REF_Ay-theta_7_9 ARMCU_REF_Ay-theta_7_9 ARMCU_REF_nebzave_7_9 ARMCU_REF_neb4zave_7_9 ARMCU_REF_nebmax_7_9" ;;
		5) cutoff=2 ; metrics="SANDU_REF_nebzave_55_60 SANDU_REF_neb4zave_55_60 IHOP_REF_Ay-theta_7_9 ARMCU_REF_Ay-theta_7_9 ARMCU_REF_nebzave_7_9 ARMCU_REF_neb4zave_7_9 ARMCU_REF_nebmax_7_9" ;;
		6) cutoff=3 metrics="SANDU_REF_nebzave_55_60 SANDU_REF_neb4zave_55_60 IHOP_REF_Ay-theta_9_9 ARMCU_REF_Ay-theta_7_9 ARMCU_REF_nebzave_7_9 ARMCU_REF_neb4zave_7_9 ARMCU_REF_nebmax_7_9 RICO_REF_nebmax_7_9 RICO_REF_nebzave_7_9 RICO_REF_neb4zave_7_9" ;;
	esac

SUF=ArticleFC
param=param_${SUF}
WDIR=1D${SUF}L$LLM

sed -i -e 's/^LMAX=.*.$/LMAX='$LLM'/' models/LMDZ/serie_LMDZ.sh

if [ `pwd | grep -o HighTune | wc -l` -gt 1 ]
then
  echo "Careful: the HighTune string appears more than once in your current directory:"
  pwd
  echo "This is going to be a problem! Make sure it appears only once!"
  # some sed commands won't work otherwise; this should be improved.
  exit
fi

while (($# > 0)) ; do
        case $1 in
          -bench) bench=$2 ; shift ; shift ;;
          -param) param=$2 ; shift ; shift ;;
	  -wave)  wave=$2  ; shift ; shift ;;
          -model) model=$2 ; shift ; shift ;;
	  -metrics) metrics="`echo $2 | sed -e 's/,/ /g'`" ; shift ; shift ;;
          -help) echo Usage: $0 "[-bench N] [-param param_file] [-wave nwave] [-model model] [-metrics metrics1,metrics2,...] or directly "$0 model"" ; exit 0 ;;
          -h) echo Usage: $0 "[-bench N] [-param param_file] [-wave nwave] [-model model] [-metrics metrics1,metrics2,...] or directly "$0 model"" ; exit 0 ;;
          *) model=$1 ; shift ;;
        esac
done

./setup.sh $model $WDIR
cd WORK/$WDIR

echo '##########################################################'
echo 1/ Building design
echo '##########################################################'


sed -i -e 's/^cutoff=.*.$/cutoff='$cutoff'/' htune_EmulatingMultiMetric.R
if [ $wave = 1 ] ; then
 ./param2R.sh 50 3 $param
else 
./param2Rwave.sh $wave Wave$wave.RData
fi 

if [ $? != 0 ]; then
  echo "Error during param2R.sh"
  exit 1
fi

echo '##########################################################'
echo 2/ Running the requires SCM simulations
echo '##########################################################'

# extracting the list of required simulations from the list of metrics
simus=`for m in $metrics ; do if [ ${m:0:3} != RAD ] ; then echo \`echo $m | awk -F_ ' {print $1"/"$2 } '\` ; else echo \`echo $m | awk -F_ ' {print $1"/"$2"/"$3 } '\` ; fi ; done | sort | uniq`
sed -i "s/WAVEN=.*/WAVEN="$wave"/g" expe_setup.R
./serie_$model.sh $simus $wave

if [ $? != 0 ]; then
  echo "Error during serie_"$model".sh"
  exit 1
fi

echo '##########################################################'
echo  3/ Computing metrics
echo '##########################################################'
  
./compute_metrics_csv.sh $metrics -wave $wave

if [ $? != 0 ]; then
  echo "Error during compute_metrics_csv.sh"
  exit 1
fi

echo '##########################################################'
echo  4/ Building emulators and estimating NROY space $wave
echo '##########################################################'
Rscript htune_EmulatingMultiMetric.R -wave $wave

echo '##########################################################'
echo 5/ Doing graphics for you. Then it will be tea time.
echo '##########################################################'
nmetrics=`echo $metrics | wc -w`
if [ $nmetrics -gt 1 ] ; then pdfjam --nup $nmetrics,$nmetrics WAVE$wave/Plots_Metrics.pdf --outfile tmp.pdf
else \cp -f WAVE$wave/Plots_Metrics.pdf tmp.pdf ; fi
pdfjam InputSpace_wave$wave.pdf WAVE$wave/Plots_LOO.pdf tmp.pdf --landscape --outfile WAVE$wave/synthesis.pdf
evince WAVE$wave/synthesis.pdf &

done
done
