#!/bin/sh

#WARNING Profil MESONH à charger avant de lancer ce programme
#WARNING Charger le profil avec la version user TUNING_TURB

#Dossier d'expérience où se trouve les cas à lancer (avec namelists de référence) 
ref_exp_folder=/home/barbiers/Documents/EXPERIENCES/

#Fichier de retour
output_n="expe_out.txt"
rm -f $output_n

curr_fold=`pwd`

#Cas sur lesquels lancer les simulations
list_cas='ARMCU'

#Numéro de la vague
nWAVE='1'

#Répertoire des vagues
rep_wave='/home/barbiers/Documents/TUNING/HighTune/WORK/BENCHMESONH'


n=`cat $rep_wave/WAVE$nWAVE/Par1D_Wave$nWAVE.asc | wc -l`
nl=$(expr $n - 1)

#Lecture des fichiers de paramètres
nom_simu=($(awk '{ print $1 }' $rep_wave/WAVE$nWAVE/Par1D_Wave$nWAVE.asc))
val_var1=($(awk '{ print $2 }' $rep_wave/WAVE$nWAVE/Par1D_Wave$nWAVE.asc))
val_var2=($(awk '{ print $3 }' $rep_wave/WAVE$nWAVE/Par1D_Wave$nWAVE.asc))
val_var3=($(awk '{ print $4 }' $rep_wave/WAVE$nWAVE/Par1D_Wave$nWAVE.asc))
val_var4=($(awk '{ print $5 }' $rep_wave/WAVE$nWAVE/Par1D_Wave$nWAVE.asc))
val_var5=($(awk '{ print $6 }' $rep_wave/WAVE$nWAVE/Par1D_Wave$nWAVE.asc))
val_var6=($(awk '{ print $7 }' $rep_wave/WAVE$nWAVE/Par1D_Wave$nWAVE.asc))

for i_cas in $list_cas
do
  #Création des dossiers cas/REF pour sauvegarder les sorties si inexistant
  if [ ! -d $curr_fold/WAVE$nWAVE/$i_cas ] ; then
    cd WAVE$nWAVE
    mkdir $i_cas
    cd $i_cas
    mkdir REF
    cd $curr_fold
  fi
 
  #Dossier du cas avec les namelists de référence 
  cd $ref_exp_folder$i_cas
 
  for i_simu in `seq 1 ${nl}`
  do
    nom_simu_sansguill=`echo ${nom_simu[$i_simu]} | sed 's/"//g'`
    echo $nom_simu_sansguill

    cp -Rf REF/ $nom_simu_sansguill
    cd $nom_simu_sansguill

    # Remplacement des valeurs des paramètres dans la namelist
    cp -f $i_cas'_EXSEG1.nam' EXSEG1.nam
    cp -f $i_cas'_PRE_IDEA1.nam' PRE_IDEA1.nam
    sed -i 's/_XCEDIS_/'${val_var1[i_simu]}'/g' EXSEG1.nam 
    sed -i 's/_XVCTP_/'${val_var2[i_simu]}'/g' EXSEG1.nam 
    sed -i 's/_XVPHI_LIM_/'${val_var3[i_simu]}'/g' EXSEG1.nam 
    sed -i 's/_XVCET_/'${val_var4[i_simu]}'/g' EXSEG1.nam 
    sed -i 's/_XVCEP_/'${val_var5[i_simu]}'/g' EXSEG1.nam 
    sed -i 's/_XVLINI_/'${val_var6[i_simu]}'/g' EXSEG1.nam 

    #run MESONH
    ./run_prep_ideal_case
    ./run_mesonh_xyz  #Formattage des sorties NetCDF inclus ici
    
    #Copie des sorties de run formattées dans WAVEn/icas_REF/
    cp -f output.nc $curr_fold"/WAVE"$nWAVE"/"$i_cas"/REF/"$nom_simu_sansguill".nc"
    
    
    #Vérification que le run s'est bien passé techniquement
    nb_verif1=0
    nb_verif2=0
    nb_verif1=`grep "SUM(CALL)" OUTPUT_LISTING1 | wc -l`
    nb_verif2=`grep "COMPUTING TIME ANALYSIS in" OUTPUT_LISTING1 | wc -l`
    if [ $nb_verif1 -eq 2 ] && [ $nb_verif2 -eq 1 ]
    then
      echo $i_cas $nom_simu_sansguill " OK" >> ../../$output_n
    else
      echo $i_cas $nom_simu_sansguill " ERREUR" >> ../../$output_n
    fi
    rm -f OUTPUT_LISTING* 
    
    cd .. 
  done
  cd ..

done

