#!/bin/bash
export PATH="/home/bdiallo/miniconda3/bin:$PATH"
#####################################################################
# Script de lancement d'une serie de simulations pour ITUNE
#    Se lance depuis le repertoire d'interet comme
#    sandufast, arm_cu ...
#####################################################################

if [ $# -gt 2 ] ; then
  listecas=${@:1:$#-1} # all but last arguments
else
  listecas=$1
fi

WAVEN=${@: -1}       # last arg
LMAX=95
REP=`pwd`
EXPE=`pwd`/WAVE$WAVEN

ln -s ${REP}/../../COMPLESLES .
# penser to change Par1D_Wave$WAVEN.asc ou create Par1D_Wave$WAVEN.asc
if [ ! -f $EXPE/Par1D_Wave$WAVEN.asc ] ; then
   echo File $EXPE/Par1D_Wave$WAVEN.asc does not exist.
   echo Please modify variable '$EXPE' or run param2R.sh or param2Rwave.sh on directory $EXPE
   exit 1 ; fi

if [ $# -lt 2 ] ; then
   echo Use : ./serie_diagphysLES.sh $cas $WAVEN ,file need 2 variable data 
   exit 1 ; fi

#####################################################################
# Loop on cases
unlink ${REP}/LES
for cas in $listecas ; do
#####################################################################
echo $cas

case $cas in
        ARMCU/REF)  namecas=ARMCU ;;
        BOMEX/REF) namecas=BOMEX ;;
        AYOTTE/24SC) namecas=ayotte24SC ;;
        AYOTTE/05WC) namecas=ayotte05WC ;;
        SANDU/SLOW) namecas=sanduslow ;;
        SANDU/REF) namecas=sanduslow ;;
        SANDU/FAST) namecas=sanduslow ;;
        RCE_OCE/REF) namecas=rce_oce_les ;;
esac

########################################################################
# Runing the original case if not available yet
########################################################################

ulimit -s unlimited

nproc=2 # number of available CPUs

DATA=$EXPE/$cas
#####################################################################
# Preparing a REF directroy containing the minmum needed for one
# simulation. To be duplicated for each simultion
#####################################################################

sed -e 's/\"//g' $EXPE/Par1D_Wave$WAVEN.asc >| param.asc

mkdir -p ${DATA}
echo  ${DATA}
 
#####################################################################
#  Getting parameter generated by the latin hypercube sampling
#####################################################################
params=()
for i in `head -1 param.asc` ; do
   params=( ${params[*]} $i )
done

echo ALORS ON A
nl=`wc -l param.asc | awk ' { print $1 } '`
echo NL=$nl

il=2
#####################################################################
# starting the loop on simulations
#####################################################################
while [ $il -le $nl ] ; do

   # extracting parameter values
   vals=()
   for i in `sed -n -e ${il}p param.asc`  ; do
      vals=( ${vals[*]} $i )
   done
   echo ${vals[*]}
   echo ${#vals[*]}
   sim=${vals[0]}
   # Running one SCM
   # copying input files
   ip=1
   # transforming PYTH/1DCOMPLESLES.py  to take modified parameter values
   while [ $ip -lt ${#vals[*]} ] ; do
       #echo $ip ${params[$ip]} ${vals[$ip]}
       if [ "`grep ${params[$ip]} 1DCOMPLESLES.py`" = "" ] ; then
          echo ${params[$ip]}=${vals[$ip]} >>  1DCOMPLESLES.py
       else
          sed_i 's/'${params[$ip]}'=.*.$/'${params[$ip]}=${vals[$ip]}'/' 1DCOMPLESLES.py
	  echo sed_i 's/'${params[$ip]}'=.*.$/'${params[$ip]}=${vals[$ip]}'/' 1DCOMPLESLES.py
       fi
       (( ip = $ip + 1 ))
   done
######################################
###lancement du script python modified######
#####fichier de LES calculé par paramétrisation
python 1DCOMPLESLES.py ${namecas} echCAL 
\mv -f echCAL${namecas}.nc ${DATA}/LESLES${sim}.nc
   echo RUNING Simus ${DATA}/LESLES${sim}.nc

(( il = $il + 1 ))
 done
###
#####fichier de LES ref
mkdir -p LES/${cas}
python 1DCOMPLESLES.py ${namecas} echREF
\mv -f echREF${namecas}.nc LES/${cas}/LES0.nc
done #Loop on SCM cases
#################################################################################
