#!/bin/bash
#####################################################
#
if [ -d  ./output/3Danalysis/ ];then
echo  ./output/3Danalysis exists
else
mkdir -p ./output/3Danalysis/
fi
#
  Fileinf=./input/3Dinfo
{
read comment
read var
read comment
read bottm
read comment
read surf
read comment
read comment
read comment
read comment
read comment
read comment
read comment
read act
read comment
read comment
read comment
read comment
read comment
read comment
read comment
read comment
read comment
read gnup
read comment
read gmin
read comment
read gmax
} < $Fileinf
#

#
diva3dlog='./output/3Danalysis/'$var'.diva3D.log'
#
echo 'diva3Drefiltr:' 
echo 'diva3Drefiltr:' 'Start a 3D analysis with background filtering '
echo 'diva3Drefiltr:' 'on '$var
echo 'diva3Drefiltr:' 'level '$bottm' to level '$surf
echo 'diva3Drefiltr:'
#
echo 'diva3Drefiltr:' >> $diva3dlog
echo 'diva3Drefiltr:' 'Start data cleaning flag number: '$datop >> $diva3dlog
echo 'diva3Drefiltr:' ' on '$var >> $diva3dlog
echo 'diva3Drefiltr:' 'level '$bottm' to level '$surf >> $diva3dlog
echo 'diva3Drefiltr:' >> $diva3dlog
#
#
##if [ "$act" == "3" ];then
#####################################
#
if [ -d ./input/divarefe ];then
echo '>>>WARNING: ./input/divarefe exists.' >> $diva3dlog
else
mkdir -p ./input/divarefe
fi
##fi
#########################fi "$act" == "3"
#
if [ -f ./input/dvtransinfo ];then
#############################
echo 'transforming input data:' $bottm $surf $var >> $diva3dlog
  Fileinf=./input/dvtransinfo
{
read ntrans
} < $Fileinf

echo 'going to trans data files, ntrans = '$ntrans

echo diva3Drefiltr: ////////////////////////////////////////// >> ./output/diva.log
echo diva3Drefiltr:                 dvdatatransf   >> ./output/diva.log
echo diva3Drefiltr: ////////////////////////////////////////// >> ./output/diva.log
echo ' '  >> ./output/diva.log
 ./dvdatatransf $bottm $surf $var $ntrans
    cat $diva3log './output/3Danalysis/'$var'_dvdatatransf.log' > bidon
    mv bidon $diva3dlog

echo 'dvdatatransf finished ' >> $diva3dlog
fi
#############################fi -f ./input/dvtransinfo
#
if [ -f ./input/dvlaymixinfo ];then
#############################
echo 'mixing layers input data:' $bottm $surf $var >> $diva3dlog
cp -r ./input/divadata ./input/divadata_ORI
  Fileinf=./input/dvlaymixinfo
{
read ntrans
} < $Fileinf
 ./dv3Ddatamix $bottm $surf $var $ntrans
mv ./input/dvlaymixinfo  ./input/laymixbidon
fi
##############################fi -f ./input/dvlaymixinfo
#
#echo 'ooooooooooooooooooooooooooooooooooo'
#echo 'diva3Drefiltr: '$var
#echo 'ooooooooooooooooooooooooooooooooooo'
#
# Write averages data  file
#################################
dep=$bottm
rm -f ./3DWORK/fort.44
while [ $dep -le $surf ]
do
let level=10000+$dep
#
cd ./input/divadata
  file=$var.$level
  nbcl=$(head -n 1 $file | wc -w)
  nbln=$(cat $file |wc -l)
  echo $var > ../../3DWORK/fort.44
  echo $nbln >> ../../3DWORK/fort.44
  echo $nbcl >> ../../3DWORK/fort.44
  echo $dep >> ../../3DWORK/fort.44
cd ../../3DWORK/
../../bin/datacalmoy.a
cd ../
dep=`expr $dep + 1`
done
#
echo Write filtered averages data file >> $diva3dlog
echo '####################################' >> $diva3dlog
#
if [ -f './input/divadata/MOY_'$var'.dat' ];then
llll=`cat './input/divadata/MOY_'$var'.dat' |wc -l` 
if [ "$llll" -gt "0" ]
then
echo 'Filtering file MOY_'${var}'.dat'
awkfilter './input/divadata/MOY_'${var}'.dat' > ./output/bidon
mv ./output/bidon ./output/${var}.AVREF.dat
echo Finished filtering >> $diva3dlog
fi
cp -v './output/'${var}'.AVREF.dat' './input/divadata/'${var}'.AVREF.dat'
mv './input/divadata/MOY_'$var'.dat' './input/divadata/'$var'.AVREF.dat.notfiltered'
fi
#
# Write reference fields
#####################################

#ecrire le 3Difo avec isdoanalysis = 2

if [ -d  ./output/3Danalysis/ ];then
echo  ./output/3Danalysis exists >> $diva3dlog
else
mkdir -p ./output/3Danalysis/
fi
#
  Fileinf=./input/3Dinfo
{
read commVariable 
read var
read commNumberfirstlevel
read minlevel
read commNumberlastlevel
read upperlevel
read commcoastcontour
read iscontour
read commdatacleaning
read isdataclean
read commparoptimisation
read isoptimise
read commperformanalysis
read isanalysis
read commMincorlenght
read CLMIN 
read commMaxcorlenght
read CLMAX
read commMinSN
read SNMIN
read commMaxSN
read SNMAX
read commgp1
read isplot
read commmingp
read GMIN
read commaxgp
read GMAX
read titlecomm
read titlestr
read commVarlongname
read longvarname
read commvarunits
read longvarunit
read commpararamclim
read pararamclim
read reftimecomm
read reftimestr
read valtimecomm
read valtimestr
read cellmethcomm
read cellmethstr
read institcomm
read institstr
read produccomm
read producstr
read sourcecomm
read sourcestr
read commentcomm
read commentstr
} < $Fileinf
#
mv ./input/3Dinfo ./input/3Dinfo_save
echo $commVariable > ./input/3Dinfo 
echo $var >> ./input/3Dinfo
echo $commNumberfirstlevel >> ./input/3Dinfo
echo $minlevel >> ./input/3Dinfo
echo $commNumberlastlevel >> ./input/3Dinfo
echo $upperlevel >> ./input/3Dinfo
echo $commcoastcontour >> ./input/3Dinfo
echo $iscontour >> ./input/3Dinfo
echo $commdatacleaning >> ./input/3Dinfo
echo $isdataclean >> ./input/3Dinfo
echo $commparoptimisation >> ./input/3Dinfo
echo $isoptimise >> ./input/3Dinfo
echo $commperformanalysis >> ./input/3Dinfo
echo 2 >> ./input/3Dinfo
echo $commMincorlenght >> ./input/3Dinfo
echo $CLMIN  >> ./input/3Dinfo
echo $commMaxcorlenght >> ./input/3Dinfo
echo $CLMAX >> ./input/3Dinfo
echo $commMinSN >> ./input/3Dinfo
echo $SNMIN >> ./input/3Dinfo
echo $commMaxSN >> ./input/3Dinfo
echo $SNMAX >> ./input/3Dinfo
echo $commgp1 >> ./input/3Dinfo
echo $isplot >> ./input/3Dinfo
echo $commmingp >> ./input/3Dinfo
echo $GMIN >> ./input/3Dinfo
echo $commaxgp >> ./input/3Dinfo
echo $GMAX >> ./input/3Dinfo
echo $titlecomm >> ./input/3Dinfo
echo $titlestr >> ./input/3Dinfo
echo $commVarlongname >> ./input/3Dinfo
echo $longvarname >> ./input/3Dinfo
echo $commvarunits >> ./input/3Dinfo
echo $longvarunit >> ./input/3Dinfo
echo $commpararamclim >> ./input/3Dinfo
echo $pararamclim >> ./input/3Dinfo
echo $reftimecomm >> ./input/3Dinfo
echo $reftimestr >> ./input/3Dinfo
echo $valtimecomm >> ./input/3Dinfo
echo $valtimestr >> ./input/3Dinfo
echo $cellmethcomm >> ./input/3Dinfo
echo $cellmethstr >> ./input/3Dinfo
echo $institcomm >> ./input/3Dinfo
echo $institstr >> ./input/3Dinfo
echo $produccomm >> ./input/3Dinfo
echo $producstr >> ./input/3Dinfo
echo $sourcecomm >> ./input/3Dinfo
echo $sourcestr >> ./input/3Dinfo
echo $commentcomm >> ./input/3Dinfo
echo $commentstr >> ./input/3Dinfo
#
./diva3Dsub
#
#
echo Write filtered mean data as reference field files >> $diva3dlog
###################################################
ls -l './input/divadata/'${var}'.AVREF.dat'
#
  Fileinf='./input/divadata/'${var}'.AVREF.dat'
{

dep=$bottm
rm -f ./3DWORK/fort.44
while [ $dep -le $surf ]
do
let lev=10000+$dep
#
read val
########

echo '?????????????????? '$lev' === '$val >> $diva3dlog


flag=1
if [ -f './output/3Danalysis/Fields/'$var'.'$lev'.datapoint.ref' ];then
cp -v ./output/3Danalysis/Fields/$var'.'$lev'.datapoint.ref' ./output/3Danalysis/Fields/$var'.'$lev'.datapoint.ref.ORI'
flag=0
fi
if [ -f './output/3Danalysis/Fields/'$var'.'$lev'.ref' ];then
cp -v './output/3Danalysis/Fields/'$var'.'$lev'.ref' './output/3Danalysis/Fields/'$var'.'$lev'.ref_ORI'
flag=0
fi
if [ "$flag" == "1" ];then
echo ' did not find '$var'.'$lev' 2D ncfile (reference field file)' >> $diva3dlog
echo ' did not find '$var'.'$lev' 2D ncfile (reference field file)'
exit
fi
binfile=$var'.'$lev'.ref'
dtpfile='./output/3Danalysis/Fields/'$var'.'$lev'.datapoint.ref'
dtplines=`cat $dtpfile |wc -l` 
ascfile=$var'.'$lev'.ascii.ref'
dtpfile=$var'.'$lev'.datapoint.ref'
mkdir -p ./3DWORK
echo 'filling ref for  '$var'.'$lev >> $diva3dlog
#
echo $binfile > ./3DWORK/refinfo
echo $dtpfile >> ./3DWORK/refinfo
echo $dtplines >> ./3DWORK/refinfo
echo $val >> ./3DWORK/refinfo
#
#######################################
#
cd ./3DWORK
echo ' write filtered average background '$var.$lev >> ../$diva3dlog
../../bin/fillfilavref.a
cd ../
#
if [ -d './input/divarefe_all' ] ;then
if [ -f './output/3Danalysis/Fields/'$var'.'$lev'.datapoint.ref' ];then
cp -v './output/3Danalysis/Fields/'$var'.'$lev'.datapoint.ref' './input/divarefe_all/.'
fi
if [ -f './output/3Danalysis/Fields/'$var'.'$lev'.ref' ];then
cp -v './output/3Danalysis/Fields/'$var'.'$lev'.ref' ./input/divarefe_all/.
fi
fi
#
if [ -f './output/3Danalysis/Fields/'$var'.'$lev'.ref' ];then
cp -v './output/3Danalysis/Fields/'$var'.'$lev'.ref' ./input/divarefe/.
fi
if [ -f './output/3Danalysis/Fields/'$var'.'$lev'.datapoint.ref' ];then
cp -v './output/3Danalysis/Fields/'$var'.'$lev'.datapoint.ref' ./input/divarefe/.
fi
#
dep=`expr $dep + 1`
done
} < $Fileinf
