#!/bin/bash

wavemin=$1
wavemax=$2
SCMvsLES=1

\rm -r tt* XMGR

# Loop on waves
for wave in $(seq $wavemin $wavemax) ; do

  if [ $SCMvsLES = 1 ] ; then
     # Standard SCM/LES setup.sh of HighTune bench
     param_file=WAVE$wave/Par1D_Wave${wave}.asc
     sim_file=metrics_WAVE${wave}_${wave}.csv
     obs_file=metrics_REF_${wave}.csv
  else
     # more adhoc cases
     param_file=param.asc
     sim_file=metrics.csv
     obs_file=obs.csv
     sed -e 's/,/ /g' param.csv  > param.asc
  fi
  nmetrics=$(( `head -1 $sim_file | sed -e 's/,/ /g' |wc -w` - 1 ))
  echo WAVE $wave, $nmetrics metrics

  echo `head -1 $sim_file`,AVE,MAX > score$wave.csv
  # Obs (LES) values : mean and variance
  grep  MEAN $obs_file   | sed -e s'/,/ /g' > csv.mean
  grep  VAR  $obs_file   | sed -e s'/,/ /g' > csv.std

  # Loop on simulations
  # Computing (Mod-Obs)/Sig and taking the root mean square and max value
  for sim in `awk -F, ' { print $1 } ' $sim_file | sed -n -e '2,$p'` ; do
     grep $sim $param_file > csv.param
     grep $sim $sim_file | sed -e s'/,/ /g' > csv.SCM
     for type in param SCM mean std ; do
	  \rm -f line.$type
	  for i in `cat csv.$type` ; do echo $i >> line.$type ; done
     done
     #paste line.SCM line.mean line.std | sed -n -e '2,$p' | awk ' { print ( $1 - $2 )^2 } ' > tmp
     paste line.SCM line.mean line.std | sed -n -e '2,$p' | awk ' { print ( $1 - $2 )^2 / $3 } ' > tmp
     metrics_scores=`cat tmp` ; metrics_scores=`echo $metrics_scores |sed -e 's/ /,/g'`
     ave_score=`awk '  BEGIN { m=0 ; n=0 } { m=m+$1 ; n=n+1 } END { print (m/n)^0.5 }  ' tmp`
     max_score=`awk '  BEGIN { max = 0 } { if ( $1 > max ) { max = $1 } } END { print max^0.5 } ' tmp`
     echo $sim,$metrics_scores,$ave_score,$max_score >> score$wave.csv
  done
  sed -i -e 's/ //g' score$wave.csv
done

head -1 $sim_file | awk -F, ' { print $(NF-1) } '


mkdir -p XMGR/AVE
for i in $(seq $wavemin $wavemax)  ; do awk -F, ' { print $(NF-1) } ' score$i.csv | sed -e 1d > XMGR/AVE/$i ; done
if [ XMGR/AVE/0 ] ; then  for ii in $( seq 5 ) ; do cat XMGR/AVE/0 XMGR/AVE/0 >| tt ; \mv -f tt XMGR/AVE/0 ; done ; fi
cd XMGR/AVE/ ; xmgrace -legend load -log y * -viewport 0.1 0.1 0.8 0.8 -hardcopy -hdevice EPS -printfile tmp.eps  ; epstopdf tmp.eps ; evince tmp.pdf ; cd -

mkdir -p XMGR/MAX
for i in $(seq $wavemin $wavemax)  ; do awk -F, ' { print $(NF) } ' score$i.csv | sed -e 1d > XMGR/MAX/$i ; done
if [ XMGR/MAX/0 ] ; then  for ii in $( seq 5 ) ; do cat XMGR/MAX/0 XMGR/MAX/0 >| tt ; \mv -f tt XMGR/MAX/0 ; done ; fi
cd XMGR/MAX/ ; xmgrace -legend load -log y * -viewport 0.1 0.1 0.8 0.8 -hardcopy -hdevice EPS -printfile tmp.eps  ; epstopdf tmp.eps ; evince tmp.pdf ; cd -

# Diag sur la dernière vague métrique par métrique :
mkdir -p XMGR/WAVE$wavemax
for i in $(seq 2 $(( $nmetrics + 1 )) ) ; do awk -F, ' { print $'$i' } ' score$wavemax.csv | sed -e 1d > XMGR/WAVE$wavemax/`sed -n -e 1p  score$wavemax.csv | awk -F, ' { print $'$i' } '` ; done
cd XMGR/WAVE$wavemax ; xmgrace -legend load -log y * -viewport 0.1 0.1 0.8 0.8 -hardcopy -hdevice EPS -printfile tmp.eps  ; epstopdf tmp.eps ; evince tmp.pdf ; cd -

# awk -F, ' { if ( $2 < 4. && $NF < 5 ) { print $1 } } ' score1.csv
