###########################################################################
# Environnement
local=`pwd -P`

source ~/env_Multi_atlas.sh

module list
python=`which python`
echo PYTHON IS $python

ulimit -s unlimited
ATLAS_DIR=${DODSDIR}/${login}/lmdz/atlas/Atlas$$ ; mkdir -p $ATLAS_DIR
STORAGE=${DODSDIR}/${login}/lmdz/STORE
dirpng=${DODSDIR}/${login}/lmdz/VLR

if [ 1 == 0 ]; then
export PYTHONPATH=$PYTHONPATH:/home/fabric/users/denvil/climaf
export PATH=$PATH:/home/fabric/users/denvil/climaf/bin
fi

#myCC=$DODSDIR/$login/IMclimafCache
#if [ 1 == 0 ]; then
#myCC=/scratchu/${login}/climafCache041122run
myCC=/scratchu/${login}/climafCache$$
\rm -rf ${myCC} 
mkdir -p ${myCC}
export CLIMAF_CACHE=${myCC}
echo CLIMAF_CACHE ${CLIMAF_CACHE}
mkdir -p ${CLIMAF_CACHE}/remote_data
export CLIMAF_REMOTE_CACHE=${CLIMAF_CACHE}/remote_data
#fi
#exit
#\rm -rf $DODSDIR/$login/climafCache$$
#mkdir -p $DODSDIR/$login/climafCache$$
#export CLIMAF_CACHE=$DODSDIR/$login/climafCache$$
#echo CLIMAF_CACHE $DODSDIR/$login/climafCache$$
###########################################################################
vars=""
vars="sst"
#runstxt=/home/fabric/LMDZ/multi/runs.txt

if [ $# = 1 ] ; then
   opts="`echo $1 | sed -e 's/,/ /g'`"
   for opt in $opts ; do
       echo $opt
       key=`echo $opt | cut -d= -f1`
       val=`echo $opt | cut -d= -f2`
       echo $key $val
       if [ "$key" = "RUN" ] ; then sim=$val ; fi
       if [ "$key" = "REF" ] ; then ref=$val ; fi
       if [ "$key" = "SEASON" ] ; then seas=$val ; fi
       if [ "$key" = "PROJ" ] ; then proj=$val ; fi
       if [ "$key" = "OUTDIR" ] ; then OUT_D=$val ; fi
       if [ "$key" = "RUNSTXT" ] ; then runstxt=$val ; fi
       if [ "$key" = "VARS" ] ; then vars="`echo $val | sed -e 's/+/ /g'`" ; fi
       if [ "$key" = "lonmin" ] ; then lonmin=$val ; fi
       if [ "$key" = "lonmax" ] ; then lonmax=$val ; fi
       if [ "$key" = "latmin" ] ; then latmin=$val ; fi
       if [ "$key" = "latmax" ] ; then latmax=$val ; fi
       if [ "$key" = "pmin" ] ; then pmin=$val ; fi
   done
elif [ $# = 0 ] ; then
   sim=$RUN
   ref=$REF
   seas=$SEASON
   proj=$PROJ
   OUT_D=$OUTDIR
   runstxt=$RUNSTXT
   vars=`echo $VARS | sed -e 's/+/ /g'`
   lonmin=$lonmin
   lonmax=$lonmax
   latmin=$latmin
   latmax=$latmax
   pmin=$pmin
   echo lonmin=$lonmin lonmax=$lonmax
   echo latmin=$latmin latmax=$latmax
   echo pmin=$pmin
else
  echo USE
  echo Job mode :
  echo qsub -v RUN=NPv5.3_1982_1989,SEASON=YEAR,PROJ=GLOB,OUTDIR=$MULTIDIR/V5/ATLAS,VARS=pr+tas atlas.sh
  echo interactif :
  echo ./atlas.sh RUN=NPv5.3_1982_1989,SEASON=YEAR,PROJ=GLOB,OUTDIR=$MULTIDIR/V5/ATLAS,VARS=pr+tas
  exit
fi

if [ "$vars" = "" ] ; then
   vars="pr tas hurs hfls hfss albt albtcs albs rldscs rlds rlus rsdscs rsds rsuscs rsus rsutcs rsut rlut rlutcs psl prw sst pme tasmax tasmin"
fi

if [ "$sim" != "OBS" ]; then
echo sim $sim
srun=`echo $sim | sed -e 's/_[0-9][0-9][0-9][0-9]_[0-9][0-9][0-9][0-9]//'`
echo srun $srun
simdir=`grep -w "^$srun " $runstxt | awk ' { print $2 } '`
run=`basename $simdir `
years=`echo $sim | sed -e 's/'$srun'//' | sed -e 's/_//'`
sim=${run}_${years}

echo $run $years $sim $ref
echo ENTREES : $run, $years, $seas, $vars, $ref
echo simdir $simdir

echo run $run 
echo sim $sim
echo simdir $simdir
fi

keys_strgv=$sim$seas$proj$vars$ref
keys_strg=$sim$seas$proj$ref

mkdir -p $OUT_D
if [ -f $OUT_D/$keys_strg.ENCOURS ] ; then 
   echo $OUT_D/$keys_strg.ENCOURS
   exit # Si le même atlas est deja en cours de realisation on sort
else
   touch $OUT_D/$keys_strg.ENCOURS
fi

if [ "$OUT_D" = "" ] ; then
   $OUT_D=$STORAGE/NPV5LRL79/$run/ATLAS/SE_$years/ATM
fi

cd $ATLAS_DIR
echo sim $sim seas $seas > atlas.sh.log

case "$proj" in
   "SH"|"NH") pyatlas="atlas_SH.py --projection $proj" ;;
   "GLOB") Var3D=,ua,va,ta,hus,hur ; pyatlas=atlas_none.py ;;
   *) Var3D=,ua,va,ta,hus,hur ; pyatlas=atlas_none.py ;;
esac

   html=index_example_"$seas"_"$sim".html
   htmlopt=index_"${proj}"_"$seas"_"$sim".html
   echo rm -f $htmlopt
#
   for var in $vars; do
   datevar=`date`
   echo Creation repertoires *MAP* et check variables 3D
   mkdir -p ${dirpng}/${seas}/${sim}/MAP
   mkdir -p ${dirpng}/${seas}/${sim}/MAP/${proj}
#
   mkdir -p ${dirpng}/${seas}/${ref}/MAP
   mkdir -p ${dirpng}/${seas}/${ref}/MAP/${proj}
#
   mkdir -p ${dirpng}/${seas}/${sim}/DMAP_${ref}
   mkdir -p ${dirpng}/${seas}/${sim}/DMAP_${ref}/${proj}

   refok=${dirpng}/${seas}/${ref}/MAP/${proj}/${var}.pdf
   mapok=${dirpng}/${seas}/${sim}/MAP/${proj}/${var}.pdf
   dmapok=${dirpng}/${seas}/${sim}/DMAP_${ref}/${proj}/${var}.pdf
#
    datevar=`date`
#
# for var3D check if pres exist
#   echo ~/LMDZ/check/make_check_var3D_SE.sh $dirpng $seas $sim $ref $var 
#   ~/LMDZ/check/make_check_var3D_SE.sh $dirpng $seas $sim $ref $var > out_check_var3D_SE.log

if [ ! -f ${refok} ] || [ ! -f ${mapok} ] || [ ! -f ${dmapok} ]; then

 echo Fabrication des cartes $var pour $ref $sim $sim-$ref
###
 echo 4 call to climaf instead of 1 to get rid of cache issue
###
 if [ "$var" == "ua" ] || [ "$var" == "va" ] || [ "$var" == "ta" ] || [ "$var" == "hur" ] || [ "$var" == "hus" ]; then
### 
    echo $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} 
    $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} 
###
    echo $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} 
    $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} 
#
    echo $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} 
    $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} 
###
    echo $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} 
    $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} 

 else
    echo $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} --lonmin ${lonmin} --lonmax ${lonmax} --latmin ${latmin} --latmax ${latmax} --pmin ${pmin}
    $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} --lonmin ${lonmin} --lonmax ${lonmax} --latmin ${latmin} --latmax ${latmax} --pmin ${pmin}
#
    echo $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} --lonmin ${lonmin} --lonmax ${lonmax} --latmin ${latmin} --latmax ${latmax} --pmin ${pmin}
    $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} --lonmin ${lonmin} --lonmax ${lonmax} --latmin ${latmin} --latmax ${latmax} --pmin ${pmin}
#
    echo $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} --lonmin ${lonmin} --lonmax ${lonmax} --latmin ${latmin} --latmax ${latmax} --pmin ${pmin}
    $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} --lonmin ${lonmin} --lonmax ${lonmax} --latmin ${latmin} --latmax ${latmax} --pmin ${pmin}
#
    echo $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} --lonmin ${lonmin} --lonmax ${lonmax} --latmin ${latmin} --latmax ${latmax} --pmin ${pmin}
    $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} --lonmin ${lonmin} --lonmax ${lonmax} --latmin ${latmin} --latmax ${latmax} --pmin ${pmin}
#
 fi
#
else
 echo Les images $refok
 echo            $mapok et
 echo            $dmapok 
 echo existent deja
fi
#
   echo Creation graphes png
   ${local}/make_pdf2png.sh $dirpng $seas $proj $sim $ref $var > out_pdf2png.log
#
   done

   if [ ! -f "$htmlopt"  -o "`wc -l $htmlopt | awk ' { print $1 } '`" = "0" ] ; then
      echo ECHEC ATLAS : $htmlopt inexistant ou vide | tee >>  atlas.sh.log
      echo ECHEC ATLAS : $htmlopt inexistant ou vide
   else
      pwd
      \cp -f $htmlopt $OUT_D/
      sed -i -e "s:thredds\/IPSLFS:thredds\/fileServer\/ipsl_thredds:g" $OUT_D/$htmlopt

      echo NOUVEL ATLAS DISPONIBLE SUR $PathHtml | tee >>  atlas.sh.log
      echo NOUVEL ATLAS DISPONIBLE SUR $PathHtml
   fi

\rm -f $OUT_D/$keys_strg.ENCOURS

#IM041122 \rm -rf $DODSDIR/$login/climafCache$$
\rm -rf ${myCC}
