#!/bin/bash # AI mai 2020 # A REFAIRE PROPREMENT # A NETTOYER, ADAPTER AUX AUTRES MACHINES ########################################################################### ########################################################################### # Traitement d'une serie d'experiences se trouvant sur le repertoire # $ROOTSTORAGE/$EXPNAME # L'organisation des fichiers suit celle de libIGCM # Une simulation sera par exemple stokÃee sur # $ROOTSTORAGE/$EXPNAME/${run}/ATM/Analyse/${run}_SE_1980_1986_1M_hitsmth.nc # /ATLAS/Analyse/SE/${run}_base # le script cree eventuellement les atlas si ils n'existent pas # calcule les valeurs inglobales (flux au sommet, prÃecip ...) # publie l'ensemble sur DODS # et cree un fichier html pointant vers cette arborescence dods. ########################################################################### ########################################################################### module load ferret #set -x comp=COMP helptext=" --help Ce manuel --run Nom de la simulation --id Nom du repertoire contenant la simuation a partir de $STORAGE --wd Nom du repetoire temporaire --origwww Au cas ou les simulations viennent d ailleurs " while test -n "${1}"; do case "${1}" in --help) echo "$helptext"; exit 0;; --comp) comp="${2}" shift;; --id) CONFIGNAME="${2}" shift;; --wd) ROOTWORK="${2}" shift;; --origwww) ROOTWEBORIG="${2}" shift;; *) echo "make_se.sh: argument non reconnu ${1}"; exit 1;; esac shift done local=`pwd -P` login=`whoami` hostname=`hostname` if [ ${hostname:0:5} = cicla ] ; then DODSDIR=/thredds/ipsl HTML=http://vesg.ipsl.upmc.fr/thredds/fileServer/IPSLFS/$login/lmdz/MultiSimu/$comp machine=ciclad fi if [ ${hostname:0:5} = camel ] ; then DODSDIR=/thredds/ipsl fi if [ ${hostname:0:5} = irene ] ; then DODSDIR= fi if [ ${hostname:0:5} = jean- ] ; then DODSDIR= fi tmpdir=$DODSDIR/$login/lmdz EXPNAME=B96x95x39/V20090611.dev/ ROOTWORK=$tmpdir ROOTWEBORIG="" EXPNAME=IGCM_OUT/$CONFIGNAME/DEVT/clim STORAGE=$ARCHIVE put=mfput ROOTWEBatlas=http://dods.idris.fr/$LOGNAME/$EXPNAME HTML_D=$ROOTSTORAGE/HTML if [ "$machine" = "ciclad" ] ; then EXPNAME=NPV5LRL79 put=cp CICLAD=$DODSDIR/$login/lmdz ARCHIVE=$CICLAD/STORE workdir=$CICLAD/WORK STORAGE=$CICLAD ROOTWEBatlas=http://vesg.ipsl.upmc.fr/thredds/fileServer/IPSLFS/$login/lmdz/STORE/$EXPNAME MULTIDIR=$DODSDIR/$login/lmdz/MultiSimu COMP_D=$MULTIDIR/$comp DEF_FILE=$COMP_D/def.txt HTML_D=$COMP_D runstxt=$local/runs.txt fi ROOTSTORAGE=$ARCHIVE/$EXPNAME ROOTDODS=DODS/pub/$LOGNAME/$CONFIGNAME ROOTWEB="http://dodsp.idris.fr/$LOGNAME/$EXPNAME" ROOTWEB_PRODout=https://vesg.ipsl.upmc.fr/thredds/catalog/store_thredds/aidel/LMDZOR/DEVT/clim STOREWEB_PROD=http://esgf.extra.cea.fr/thredds/catalog/store_thredds/aidel/IGCM_OUT/LMDZOR/DEVT/clim STOREWEB_PRODold=http://esgf.extra.cea.fr/thredds/catalog/store/aidel/IGCM_OUT/LMDZOR/DEVT/clim if [ "$ROOTWEBORIG" = "" ] ; then ROOTWEBORIG=ROOTWEBlibigcm fi echo ROOTSTORAGE $ROOTSTORAGE ROOTWEB $ROOTWEB glob=1 # Version Abderrahmane/centres de caclcul listevar="bils fnet tops topl topl0 crfsw crflw crfnet eva pr prw " # Version ciclad multi-atlas listevar="bils rt rst rlut rlutcs crest crelt cret eva pr prw " listevalvar="7.097 0.7823 240.4 239.6 269.4 -47.05 29.84 -17.21 3.415 2.61 27.46 " ########################################################################### # CREATION DE L'ENTETE DU FICHIER html ########################################################################### # Horrible astuce pour controler a peu pres la longueur des chaines # de caractere pour la description des simus longn=`wc -lc $DEF_FILE | awk ' { print int ( $2 / $1 / 2 ) } '` longc="" ; i=0 ; while [ $i != $longn ] ; do (( i = $i + 1 )) ; longc="$longc"_ ; done if [ ! -d $STORAGE/HTML ] ; then mkdir -p $STORAGE/HTML ; fi htmlfile=$STORAGE/HTML/tmp.html ; rm -f $htmlfile ; touch $htmlfile errfile=$STORAGE/HTML/tmphtml$$.err ; rm -f $errfile ; touch $errfile D_work=$ROOTWORK/tmp_makehtml$$ ; rm -rf $D_work ; mkdir -p $D_work emptyelt='
RUN (link to outputs) | Atlas YEAR | Atlas --DJF-- | Atlas --JJA-- | Description of the simulation $longc | Period | Name (link to parameters) | eod if [ $glob = 1 ] ; then for var in $listevar ; do echo ''$var' | ' >> $htmlfile done fi ################CLIMATOS################################################## echo '||||
CLIMATOS | " >> $htmlfile echo "" >> $htmlfile echo " | " >> $htmlfile echo " | " >> $htmlfile echo " | " >> $htmlfile echo " | " >> $htmlfile echo " | " >> $htmlfile if [ $glob = 1 ] ; then for var in $listevalvar ; do echo ' | '$var' | ' >> $htmlfile done fi echo '||||
"$sim" | " >> $htmlfile D_SE=$run/ATM/Analyse/SE echo OK0 # if [ -f "$ROOTSTORAGE/$D_SE/$NCFILE" ] ; then if [ 1 = 1 ] ; then for SEAS in YEAR DJF JJA ; do echo '' >> $htmlfile for PROJ in GLOB NH SH ; do atlas=index_${PROJ}_${SEAS}_${run}_$years.html echo Chemin atlas echo $COMP_D/ATLAS/$atlas if [ -f $COMP_D/ATLAS/$atlas ] ; then atlasf=$COMP_D/ATLAS/$atlas else # Ancienne version des scripts d'atlas : atlasf=$ROOTSTORAGE/$run/ATLAS/SE_$years/ATM/$atlas fi # ATTENTION A REFAIRE EN FONCTION DE LA MACHINE atlas_html=`echo $atlasf | sed -e 's:/thredds/ipsl/:http\://vesg.ipsl.upmc.fr/thredds/fileServer/IPSLFS/:'` echo atlas_html $atlas_html echo atlasf $atlasf if [ -f $atlasf ] ; then echo " ${PROJ:0:1} " echo " ${PROJ:0:1} " >> $htmlfile else echo "-" >> $htmlfile echo Le fichier $atlas_html n\'existe pas fi done echo ' | ' >> $htmlfile done #-------------------------------------------------------------------------- else # Cas ou le fichier histmth.nc n est pas present #-------------------------------------------------------------------------- echo Le fichier $ROOTSTORAGE/"$run"/$D_SE/$NCFILE n\'existe pas >> $errfile for i in 1 2 3 ; do echo "$emptyelt" >> $htmlfile done fi # Parametres testes par rapport a la simulation de Ref grep "^$sim " $DEF_FILE | grep $years | sed -e 's/'$years'//' -e 's/'$sim'//' -e 's/$/<\/td>/' >> $htmlfile echo ' | '$years' | ' >> $htmlfile echo ""$sim" | " >> $htmlfile #-------------------------------------------------------------------------- # Parametres globaux #-------------------------------------------------------------------------- echo OK0 if [ $glob = 1 ] ; then echo OK GGGGGGGGGGGGG $glob listeval="" echo LISTEVAR $listevar for var in $listevar ; do echo $ROOTWORK/VLR/YEAR/${sim}_$years/METRICS/glob if [ -f "$ROOTWORK/VLR/YEAR/${sim}_$years/METRICS/glob" ] ; then val=`grep "^$var " $ROOTWORK/VLR/YEAR/${sim}_$years/METRICS/glob | awk ' { print $2 }' ` echo $val else val=. fi listeval="$listeval$val | " done echo $listeval echo $listeval >> $htmlfile fi # glob echo LISTEVAL $listeval ########################################################################### # FIN DE LA BOUCLE SUR LES SIMULATIONS ########################################################################### echo '||||||
$cmp | " >> $htmlfile echo "X | " >> $htmlfile echo "X | " >> $htmlfile echo "X | " >> $htmlfile echo ""X" | " >> $htmlfile echo ""X" | " >> $htmlfile echo "X | " >> $htmlfile echo "X | " >> $htmlfile echo "X | " >> $htmlfile echo "X | " >> $htmlfile echo "X | " >> $htmlfile echo "$descr | " >> $htmlfile echo '