#!/bin/bash
#
# $1 = level number
# $2 = variable name.
#================================
lev=$1
var=$2
action=1
PARAMDir=./input/divaparam
DATADir=./input/divadata/
#
if [ -f ./input/divaparam/param.par.$var'.'$lev ];then
 echo '!!!!!!!!!!!!! diva3Dsub param.par.'$var'.'$lev' found '
 cp -f ./input/divaparam/param.par.$var'.'$lev ./input/param.par
else
 if [ -f ./input/divaparam/param.par ];then
   echo '!!!!!!!!!!!!! diva3Dsub using param.par from ./input/divaparam '
   cp -f ./input/divaparam/param.par ./input/.
 else
   if [ -f ./input/param.par ];then
       echo '!!!!!!!!!!!!! diva3Dsub using param.par found in ./input '
   fi
 fi
fi
if [ -f ./input/param.par ];then
 runflag=0
else
 runflag=1
fi
#
#####################################################################
#
if [ -f ./input/divadata/$var.$lev ];then
 cp -f ./input/divadata/$var.$lev  ./input/data.dat
 nbdat=`cat './input/data.dat' |wc -l` 
 if [ "$nbdat" == "0" ] ; then
  runflag=4
 fi
else
 echo '!!!!! diva3Dsub did not find '$var'.'$lev' in divadata/ !!!!!'
 runflag=2
fi
#
if [ -f ./input/divarefe/$var'.'$lev'.datapoint.ref' ];then
 cp -v ./input/divarefe/$var'.'$lev'.datapoint.ref' ./output/fieldatdatapoint.anl.ref
   cp -v ./input/divarefe/$var'.'$lev'.ref' ./output/fieldgher.anl.ref
   cp -v ./input/divarefe/$var'.'$lev'.ascii.ref' ./output/fieldascii.anl.ref
   cp -v ./input/divarefe/GridInfo.dat  ./output/ghertonetcdf/GridInfo.dat
   refanl=0
else
  if [ -f ./input/divarefe/$var'.'$lev'.ref' ];then
   cp -v ./input/divarefe/$var'.'$lev'.ref' ./output/fieldgher.anl.ref
   cp -v ./input/divarefe/$var'.'$lev'.ascii.ref' ./output/fieldascii.anl.ref
   cp -v ./input/divarefe/GridInfo.dat  ./output/ghertonetcdf/GridInfo.dat
   refanl=0
  else
   refanl=1
  fi
fi
#
if [ -f ./input/divadata/$var.$lev.anom ];then
 datanom=1
 cp -f ./input/divadata/$var.$lev.anom  ./input/data.dat
else
 datanom=0
 if [ -f './input/divadata/'$var'.'$lev ];then
  cp -f './input/divadata/'$var'.'$lev  ./input/data.dat
 else
  echo '!!!!! diva3Dsub did not find '$var'.'$lev' in divadata/ !!!!!'
  runflag=2
 fi
fi
#
########################################################################
#
if [ -f ./input/divaparam/coast.cont.$lev ];then
 cp -f ./input/divaparam/coast.cont.$lev  ./input/coast.cont
else
 echo '!!!!! diva3Dsub did not find coast.cont.'$lev' in divaparam/ !!!!!'
 runflag=3
fi
#
#################
cp -f $PARAMDir/valatxy.coord ./input/valatxy.coord
#################
#
if [ "$runflag" -eq "0" ];then
#
if [ -f ./input/divaparam/3Dconstraint ]
then
dep=10001
  Fileinf=./input/divaparam/3Dconstraint
{
while [ $dep -le $lev ]
do
read constvals
dep=`expr $dep + 1`
done
} < $Fileinf
echo $constvals > ./input/constraint.dat
fi
if [ -f ./input/constraint.dat ]
then
 if [ -f ./input/divaUVcons/UVinfo.$var.$lev ];then
  cp -f ./input/divaUVcons/UVinfo.$var.$lev ./input/UVinfo.dat
 else
  if [ -f ./input/divaUVcons/UVinfo.$lev ];then
   cp -f ./input/divaUVcons/UVinfo.$lev ./input/UVinfo.dat
  else
   if [ -f ./input/divaUVcons/UVinfo.dat ];then
    cp -f ./input/divaUVcons/UVinfo.dat ./input/UVinfo.dat
   fi
  fi
 fi
#
 if [ -f ./input/divaUVcons/Uvel.$var.$lev ];then
  cp -f ./input/divaUVcons/Uvel.$var.$lev ./input/Uvel.dat
 else
  if [ -f ./input/divaUVcons/Uvel.$lev ];then
   cp -f ./input/divaUVcons/Uvel.$lev ./input/Uvel.dat
  else
   if [ -f ./input/divaUVcons/Uvel.dat ];then
    cp -f ./input/divaUVcons/Uvel.dat ./input/Uvel.dat
   fi
  fi
 fi
#
 if [ -f ./input/divaUVcons/Vvel.$var.$lev ];then
  cp -f ./input/divaUVcons/Vvel.$var.$lev ./input/Vvel.dat
 else
  if [ -f ./input/divaUVcons/Vvel.$lev ];then
   cp -f ./input/divaUVcons/Vvel.$lev ./input/Vvel.dat
  else
   if [ -f ./input/divaUVcons/Vvel.dat ];then
    cp -f ./input/divaUVcons/Vvel.dat ./input/Vvel.dat
   fi
  fi
 fi
fi
#
if [ -f ./input/divaparam/RLinfo.$var.$lev ];then
 cp -f ./input/divaparam/RLinfo.$var..$lev ./input/RLinfo.dat
else
 if [ -f ./input/divaparam/RLinfo.$lev ];then
  cp -f ./input/divaparam/RLinfo.$lev ./input/RLinfo.dat
 else
  if [ -f ./input/divaparam/RLinfo.dat ];then
   cp -f ./input/divaparam/RLinfo.dat ./input/RLinfo.dat
  fi
 fi
fi
if [ -f ./input/RLinfo.dat ];then
 if [ -f ./input/divaparam/RL.$var.$lev ];then
  cp -f ./input/divaparam/RL.$var.$lev ./input/RL.dat 
 else
  if [ -f ./input/divaparam/RL.$lev ];then
   cp -f ./input/divaparam/RL.$lev ./input/RL.dat 
  else
   if [ -f ./input/divaparam/RL.dat ];then
    cp -f ./input/divaparam/RL.dat ./input/RL.dat
   fi
  fi
 fi
fi
#------------------------------------------------------------
#
if [ "$action" == "1" ];then
echo '%%%%%%%%%%%%  analysis for '$var'.'$lev' %%%%%%%%%%'
if [ "$refanl" == "1" ];then
#echo Cleaning up the mess
divaclean
#echo Gridding
if [ -f ./input/divamesh/meshtopo.$lev ]; then
 cp -v ./input/divamesh/meshtopo.$lev ./output/meshvisu/fort.22
 cp -v ./input/divamesh/mesh.dat.$lev ./output/meshvisu/fort.23
 cp -v ./input/divaparam/coast.cont.$lev ./output/meshvisu/fort.10
 fmesh=1
else
 echo '>>>>>>>>>>>>  regenerating a mesh for '$var'.'$lev
divamesh
 fmesh=0
fi
#
#echo Analysing
#
divacalc
########
#
else
 echo '>>>>>>>>>>>>  making anomalies for '$var'.'$lev
./divaanom
if [ -f ./input/divamesh/meshtopo.$lev ]; then
 cp -v ./input/divamesh/meshtopo.$lev ./output/meshvisu/fort.22
 cp -v ./input/divamesh/mesh.dat.$lev ./output/meshvisu/fort.23
 cp -v ./input/divaparam/coast.cont.$lev ./output/meshvisu/fort.10
 fmesh=1
else
 echo '>>>>>>>>>>>>  regenerating a mesh for '$var'.'$lev
 ./divamesh
 fmesh=0
fi
 echo '>>>>>>>>>>>>  analysing anomalies for '$var'.'$lev
#
./divacalc
##########
#
echo '>>>>>>>>>>>>  sum up anomalies and reference field for '$var'.'$lev' '
./divasumup
###########
#
fi
#
#
fi
if [ "$fmesh" == "0" ]; then
## cp -v ./output/meshvisu/fort.22 ./input/divamesh/meshtopo.$lev
## cp -v ./output/meshvisu/fort.23 ./input/divamesh/mesh.dat.$lev
if [ -d ./input/divamesh ]
then
 cp -v ./output/meshvisu/fort.22 ./input/divamesh/meshtopo.$lev
 cp -v ./output/meshvisu/fort.23 ./input/divamesh/mesh.dat.$lev
else
 mkdir ./input/divamesh
 cp -v ./output/meshvisu/fort.22 ./input/divamesh/meshtopo.$lev
 cp -v ./output/meshvisu/fort.23 ./input/divamesh/mesh.dat.$lev
fi
fi
#
cp -v ./output/ghertonetcdf/fort.84 ./output/3Danalysis/STABOUT/analysis/$var'.'$lev'.anl'
##################################################################
else
if [ "$runflag" -eq "1" ];then
echo '!!!!!!!!!!!!!diva3Dsub WARNING: !!!!!!!!!!!!!!!!!!'
echo '!!!!!!!!DID NOT FIND param.par FILE FOR '$var $lev'!' 
echo '!!!!!!!!!!!!!THE ANALYSIS WAS NOT PERFORMED !'
echo '!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
else
if [ "$runflag" -eq "2" ];then
echo '!!!!!!!!!!!!!diva3Dsub WARNING: !!!!!!!!!!!!!!!!!!'
echo '!!!!!!!!!!!!!DID NOT FIND DATA FILE FOR '$var $lev'!' 
echo '!!!!!!!!!!!!!THE ANALYSIS WAS NOT PERFORMED !'
echo '!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
else
if [ "$runflag" -eq "3" ];then
echo '!!!!!!!!!!!!!diva3Dsub WARNING: !!!!!!!!!!!!!!!!!!'
echo '!!!!!!!!!!!!!DID NOT FIND CONTOUR FILE FOR '$var $lev'!' 
echo '!!!!!!!!!!!!!THE ANALYSIS WAS NOT PERFORMED !'
echo '!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
else
if [ "$runflag" -eq "4" ];then
echo '!!!!!!!!!!!!!diva3Dsub WARNING: !!!!!!!!!!!!!!!!!!'
echo '!!!!!!!!!!!!!DATA FILE '$var $lev' IS EMPTY!' 
echo '!!!!!!!!!!!!!THE ANALYSIS WAS NOT PERFORMED !'
echo '!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
fi
fi
fi
fi
fi
