| 1 | ########################################################################### |
|---|
| 2 | # Environnement |
|---|
| 3 | local=`pwd -P` |
|---|
| 4 | |
|---|
| 5 | source ../env.sh |
|---|
| 6 | |
|---|
| 7 | module list |
|---|
| 8 | python=`which python` |
|---|
| 9 | echo PYTHON IS $python |
|---|
| 10 | |
|---|
| 11 | ulimit -s unlimited |
|---|
| 12 | ATLAS_DIR=${DODSDIR}/${login}/lmdz/atlas/Atlas$$ ; mkdir -p $ATLAS_DIR |
|---|
| 13 | STORAGE=${DODSDIR}/${login}/lmdz/STORE |
|---|
| 14 | dirpng=${DODSDIR}/${login}/lmdz/VLR |
|---|
| 15 | |
|---|
| 16 | if [ 1 == 0 ]; then |
|---|
| 17 | export PYTHONPATH=$PYTHONPATH:/home/fabric/users/denvil/climaf |
|---|
| 18 | export PATH=$PATH:/home/fabric/users/denvil/climaf/bin |
|---|
| 19 | fi |
|---|
| 20 | |
|---|
| 21 | #myCC=$DODSDIR/$login/IMclimafCache |
|---|
| 22 | #if [ 1 == 0 ]; then |
|---|
| 23 | myCC=/scratchu/${login}/climafCache041122run |
|---|
| 24 | #\rm -rf ${myCC} |
|---|
| 25 | mkdir -p ${myCC} |
|---|
| 26 | export CLIMAF_CACHE=${myCC} |
|---|
| 27 | echo CLIMAF_CACHE ${CLIMAF_CACHE} |
|---|
| 28 | mkdir -p ${CLIMAF_CACHE}/remote_data |
|---|
| 29 | export CLIMAF_REMOTE_CACHE=${CLIMAF_CACHE}/remote_data |
|---|
| 30 | #fi |
|---|
| 31 | #exit |
|---|
| 32 | #\rm -rf $DODSDIR/$login/climafCache$$ |
|---|
| 33 | #mkdir -p $DODSDIR/$login/climafCache$$ |
|---|
| 34 | #export CLIMAF_CACHE=$DODSDIR/$login/climafCache$$ |
|---|
| 35 | #echo CLIMAF_CACHE $DODSDIR/$login/climafCache$$ |
|---|
| 36 | ########################################################################### |
|---|
| 37 | vars="" |
|---|
| 38 | vars="sst" |
|---|
| 39 | #runstxt=/home/fabric/LMDZ/multi/runs.txt |
|---|
| 40 | |
|---|
| 41 | if [ $# = 1 ] ; then |
|---|
| 42 | opts="`echo $1 | sed -e 's/,/ /g'`" |
|---|
| 43 | for opt in $opts ; do |
|---|
| 44 | echo $opt |
|---|
| 45 | key=`echo $opt | cut -d= -f1` |
|---|
| 46 | val=`echo $opt | cut -d= -f2` |
|---|
| 47 | echo $key $val |
|---|
| 48 | if [ "$key" = "RUN" ] ; then sim=$val ; fi |
|---|
| 49 | if [ "$key" = "REF" ] ; then ref=$val ; fi |
|---|
| 50 | if [ "$key" = "SEASON" ] ; then seas=$val ; fi |
|---|
| 51 | if [ "$key" = "PROJ" ] ; then proj=$val ; fi |
|---|
| 52 | if [ "$key" = "OUTDIR" ] ; then OUT_D=$val ; fi |
|---|
| 53 | if [ "$key" = "RUNSTXT" ] ; then runstxt=$val ; fi |
|---|
| 54 | if [ "$key" = "VARS" ] ; then vars="`echo $val | sed -e 's/+/ /g'`" ; fi |
|---|
| 55 | if [ "$key" = "lonmin" ] ; then lonmin=$val ; fi |
|---|
| 56 | if [ "$key" = "lonmax" ] ; then lonmax=$val ; fi |
|---|
| 57 | if [ "$key" = "latmin" ] ; then latmin=$val ; fi |
|---|
| 58 | if [ "$key" = "latmax" ] ; then latmax=$val ; fi |
|---|
| 59 | if [ "$key" = "pmin" ] ; then pmin=$val ; fi |
|---|
| 60 | done |
|---|
| 61 | elif [ $# = 0 ] ; then |
|---|
| 62 | sim=$RUN |
|---|
| 63 | ref=$REF |
|---|
| 64 | seas=$SEASON |
|---|
| 65 | proj=$PROJ |
|---|
| 66 | OUT_D=$OUTDIR |
|---|
| 67 | runstxt=$RUNSTXT |
|---|
| 68 | vars=`echo $VARS | sed -e 's/+/ /g'` |
|---|
| 69 | lonmin=$lonmin |
|---|
| 70 | lonmax=$lonmax |
|---|
| 71 | latmin=$latmin |
|---|
| 72 | latmax=$latmax |
|---|
| 73 | pmin=$pmin |
|---|
| 74 | echo lonmin=$lonmin lonmax=$lonmax |
|---|
| 75 | echo latmin=$latmin latmax=$latmax |
|---|
| 76 | echo pmin=$pmin |
|---|
| 77 | else |
|---|
| 78 | echo USE |
|---|
| 79 | echo Job mode : |
|---|
| 80 | echo qsub -v RUN=NPv5.3_1982_1989,SEASON=YEAR,PROJ=GLOB,OUTDIR=$MULTIDIR/V5/ATLAS,VARS=pr+tas atlas.sh |
|---|
| 81 | echo interactif : |
|---|
| 82 | echo ./atlas.sh RUN=NPv5.3_1982_1989,SEASON=YEAR,PROJ=GLOB,OUTDIR=$MULTIDIR/V5/ATLAS,VARS=pr+tas |
|---|
| 83 | exit |
|---|
| 84 | fi |
|---|
| 85 | |
|---|
| 86 | if [ "$vars" = "" ] ; then |
|---|
| 87 | 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" |
|---|
| 88 | fi |
|---|
| 89 | |
|---|
| 90 | if [ "$sim" != "OBS" ]; then |
|---|
| 91 | echo sim $sim |
|---|
| 92 | srun=`echo $sim | sed -e 's/_[0-9][0-9][0-9][0-9]_[0-9][0-9][0-9][0-9]//'` |
|---|
| 93 | echo srun $srun |
|---|
| 94 | simdir=`grep -w "^$srun " $runstxt | awk ' { print $2 } '` |
|---|
| 95 | run=`basename $simdir ` |
|---|
| 96 | years=`echo $sim | sed -e 's/'$srun'//' | sed -e 's/_//'` |
|---|
| 97 | sim=${run}_${years} |
|---|
| 98 | |
|---|
| 99 | echo $run $years $sim $ref |
|---|
| 100 | echo ENTREES : $run, $years, $seas, $vars, $ref |
|---|
| 101 | echo simdir $simdir |
|---|
| 102 | |
|---|
| 103 | echo run $run |
|---|
| 104 | echo sim $sim |
|---|
| 105 | echo simdir $simdir |
|---|
| 106 | fi |
|---|
| 107 | |
|---|
| 108 | keys_strgv=$sim$seas$proj$vars$ref |
|---|
| 109 | keys_strg=$sim$seas$proj$ref |
|---|
| 110 | |
|---|
| 111 | mkdir -p $OUT_D |
|---|
| 112 | if [ -f $OUT_D/$keys_strg.ENCOURS ] ; then |
|---|
| 113 | echo $OUT_D/$keys_strg.ENCOURS |
|---|
| 114 | exit # Si le même atlas est deja en cours de realisation on sort |
|---|
| 115 | else |
|---|
| 116 | touch $OUT_D/$keys_strg.ENCOURS |
|---|
| 117 | fi |
|---|
| 118 | |
|---|
| 119 | if [ "$OUT_D" = "" ] ; then |
|---|
| 120 | $OUT_D=$STORAGE/NPV5LRL79/$run/ATLAS/SE_$years/ATM |
|---|
| 121 | fi |
|---|
| 122 | |
|---|
| 123 | cd $ATLAS_DIR |
|---|
| 124 | echo sim $sim seas $seas > atlas.sh.log |
|---|
| 125 | |
|---|
| 126 | case "$proj" in |
|---|
| 127 | "SH"|"NH") pyatlas="atlas_SH.py --projection $proj" ;; |
|---|
| 128 | "GLOB") Var3D=,ua,va,ta,hus,hur ; pyatlas=atlas_none.py ;; |
|---|
| 129 | *) Var3D=,ua,va,ta,hus,hur ; pyatlas=atlas_none.py ;; |
|---|
| 130 | esac |
|---|
| 131 | |
|---|
| 132 | html=index_example_"$seas"_"$sim".html |
|---|
| 133 | htmlopt=index_"${proj}"_"$seas"_"$sim".html |
|---|
| 134 | echo rm -f $htmlopt |
|---|
| 135 | # |
|---|
| 136 | for var in $vars; do |
|---|
| 137 | datevar=`date` |
|---|
| 138 | echo Creation repertoires *MAP* et check variables 3D |
|---|
| 139 | mkdir -p ${dirpng}/${seas}/${sim}/MAP |
|---|
| 140 | mkdir -p ${dirpng}/${seas}/${sim}/MAP/${proj} |
|---|
| 141 | # |
|---|
| 142 | mkdir -p ${dirpng}/${seas}/${ref}/MAP |
|---|
| 143 | mkdir -p ${dirpng}/${seas}/${ref}/MAP/${proj} |
|---|
| 144 | # |
|---|
| 145 | mkdir -p ${dirpng}/${seas}/${sim}/DMAP_${ref} |
|---|
| 146 | mkdir -p ${dirpng}/${seas}/${sim}/DMAP_${ref}/${proj} |
|---|
| 147 | |
|---|
| 148 | refok=${dirpng}/${seas}/${ref}/MAP/${proj}/${var}.pdf |
|---|
| 149 | mapok=${dirpng}/${seas}/${sim}/MAP/${proj}/${var}.pdf |
|---|
| 150 | dmapok=${dirpng}/${seas}/${sim}/DMAP_${ref}/${proj}/${var}.pdf |
|---|
| 151 | # |
|---|
| 152 | datevar=`date` |
|---|
| 153 | # |
|---|
| 154 | # for var3D check if pres exist |
|---|
| 155 | # echo ~/LMDZ/check/make_check_var3D_SE.sh $dirpng $seas $sim $ref $var |
|---|
| 156 | # ~/LMDZ/check/make_check_var3D_SE.sh $dirpng $seas $sim $ref $var > out_check_var3D_SE.log |
|---|
| 157 | |
|---|
| 158 | if [ ! -f ${refok} ] || [ ! -f ${mapok} ] || [ ! -f ${dmapok} ]; then |
|---|
| 159 | |
|---|
| 160 | echo Fabrication des cartes $var pour $ref $sim $sim-$ref |
|---|
| 161 | |
|---|
| 162 | if [ "$var" == "ua" ] || [ "$var" == "va" ] || [ "$var" == "ta" ] || [ "$var" == "hur" ] || [ "$var" == "hus" ]; then |
|---|
| 163 | echo $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} |
|---|
| 164 | $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} |
|---|
| 165 | if [ ! -f ${mapok} ]; then |
|---|
| 166 | echo $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} |
|---|
| 167 | $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} |
|---|
| 168 | echo $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} |
|---|
| 169 | $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} |
|---|
| 170 | elif [ ! -f ${refok} ]; then |
|---|
| 171 | echo $python ${local}/$pyatlas -v $var -s OBS -t $ref -p $seas -r $proj --dirpng ${dirpng} |
|---|
| 172 | $python ${local}/$pyatlas -v $var -s OBS -t $ref -p $seas -r $proj --dirpng ${dirpng} |
|---|
| 173 | echo $python ${local}/$pyatlas -v $var -s OBS -t $ref -p $seas -r $proj --dirpng ${dirpng} |
|---|
| 174 | $python ${local}/$pyatlas -v $var -s OBS -t $ref -p $seas -r $proj --dirpng ${dirpng} |
|---|
| 175 | elif [ ! -f ${dmapok} ]; then |
|---|
| 176 | echo $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} |
|---|
| 177 | $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} |
|---|
| 178 | echo $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} |
|---|
| 179 | $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} |
|---|
| 180 | fi |
|---|
| 181 | else |
|---|
| 182 | echo $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} --lonmin ${lonmin} --lonmax ${lonmax} --latmin ${latmin} --latmax ${latmax} |
|---|
| 183 | $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} --lonmin ${lonmin} --lonmax ${lonmax} --latmin ${latmin} --latmax ${latmax} |
|---|
| 184 | if [ ! -f ${mapok} ]; then |
|---|
| 185 | echo $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} |
|---|
| 186 | $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} |
|---|
| 187 | echo $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} |
|---|
| 188 | $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} |
|---|
| 189 | elif [ ! -f ${refok} ]; then |
|---|
| 190 | echo $python ${local}/$pyatlas -v $var -s OBS -t $ref -p $seas -r $proj --dirpng ${dirpng} |
|---|
| 191 | $python ${local}/$pyatlas -v $var -s OBS -t $ref -p $seas -r $proj --dirpng ${dirpng} |
|---|
| 192 | echo $python ${local}/$pyatlas -v $var -s OBS -t $ref -p $seas -r $proj --dirpng ${dirpng} |
|---|
| 193 | $python ${local}/$pyatlas -v $var -s OBS -t $ref -p $seas -r $proj --dirpng ${dirpng} |
|---|
| 194 | elif [ ! -f ${dmapok} ]; then |
|---|
| 195 | echo $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} |
|---|
| 196 | $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} |
|---|
| 197 | echo $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} |
|---|
| 198 | $python ${local}/$pyatlas -v $var -s $sim -t $ref -p $seas -r $proj --dirpng ${dirpng} |
|---|
| 199 | fi |
|---|
| 200 | fi |
|---|
| 201 | # |
|---|
| 202 | else |
|---|
| 203 | echo Les images $refok |
|---|
| 204 | echo $mapok et |
|---|
| 205 | echo $dmapok |
|---|
| 206 | echo existent deja |
|---|
| 207 | fi |
|---|
| 208 | # |
|---|
| 209 | echo Creation graphes png |
|---|
| 210 | ${local}/make_pdf2png.sh $dirpng $seas $proj $sim $ref $var > out_pdf2png.log |
|---|
| 211 | # |
|---|
| 212 | done |
|---|
| 213 | |
|---|
| 214 | if [ ! -f "$htmlopt" -o "`wc -l $htmlopt | awk ' { print $1 } '`" = "0" ] ; then |
|---|
| 215 | echo ECHEC ATLAS : $htmlopt inexistant ou vide | tee >> atlas.sh.log |
|---|
| 216 | echo ECHEC ATLAS : $htmlopt inexistant ou vide |
|---|
| 217 | else |
|---|
| 218 | pwd |
|---|
| 219 | \cp -f $htmlopt $OUT_D/ |
|---|
| 220 | sed -i -e "s:thredds\/IPSLFS:thredds\/fileServer\/ipsl_thredds:g" $OUT_D/$htmlopt |
|---|
| 221 | |
|---|
| 222 | echo NOUVEL ATLAS DISPONIBLE SUR $PathHtml | tee >> atlas.sh.log |
|---|
| 223 | echo NOUVEL ATLAS DISPONIBLE SUR $PathHtml |
|---|
| 224 | fi |
|---|
| 225 | |
|---|
| 226 | \rm -f $OUT_D/$keys_strg.ENCOURS |
|---|
| 227 | |
|---|
| 228 | #IM041122 \rm -rf $DODSDIR/$login/climafCache$$ |
|---|