#!/usr/bin/ksh
#PBS -q scalaire
#PBS -N interp
#PBS -j o   
#PBS -l memsz_job=2.0gb 
#PBS -l cputim_job=24:00:00 

##set -vx


####################################################
## Script permettant de regriller les fichiers 
## de concentrations d'aerosols utilises par LMDZ
## 
## il faut modifier : 
## - la liste des annees a regriller
## - le path de la grille d'arrivee (fileresol) 
## - le path des fichiers a regriller (cp /dmnfs/cont003/p86ipsl/IGCM/BC/ATM/IPSLCM5/LMD9695/AR5/.../aerosols_11YearsClim_${period}_v5.nc .... ) 
## - les variables d_store et d_diag 
## - le path sur dods 
####################################################


cas=20C3M

if [ $cas = 20C3M ] ; then


   liste_period=" 2096 2097 2098 2099 2100   "

else
   liste_period="2000 2010"
fi


# 144x142 - 192x192 - 280x280
resoln=144x142
fileresol=/dmnfs/cont003/p86denv/IPCC_AR5/OUTGRID/LMDZ${resoln}x19/histmth.nc

if [ ! -f $fileresol ] ; then
   echo Il vous faut un fichier $fileresol
   exit
fi

D_work=$SCRATCHDIR/tmp_interp$$
rm -rf $D_work ; mkdir -p $D_work
cp $fileresol $D_work/

for period in ${liste_period} ; do

    cp /dmnfs/cont003/p86ipsl/IGCM/BC/ATM/IPSLCM5/LMD9695/AR5/RCP45/aerosols_11YearsClim_${period}_v5.nc $D_work/climato_${period}.nc
    cd $D_work
    chmod 755 $D_work/climato_${period}.nc

    ##########################################################################
    # Pour que vos ferret s'y retrouve
    ##########################################################################

    ncatted -O -a units,lon,c,c,"degrees_east" climato_${period}.nc 
    ncatted -O -a long_name,lon,c,c,"Longitude" climato_${period}.nc 
    ncatted -O -a units,lat,c,c,"degrees_north" climato_${period}.nc 
    ncatted -O -a long_name,lat,c,c,"Latitude" climato_${period}.nc 

    ##########################################################################
    # Liste des variables dans chaque fichier
    ##########################################################################
    #rm -f $var.liste
    #for type in float double ; do
    #ncdump -h climato_${period}.nc | grep $type | awk ' { print $2 } ' | awk -F\( ' { print $1 } '>> $var.liste
    #done
    #cat $var.liste

    liste_all="AIPOMM ASBCM AIBCM ASPOMM CSSSM ASSSM CIDUSTM SO4 SSSSM CSSO4M load_AIBCM load_AIPOMM load_ASBCM load_ASPOMM load_SO4 load_ASSSM load_CIDUSTM load_CSSO4M load_CSSSM load_SSSSM O3 pmid temp ps zrho"

    liste_aer="AIPOMM ASBCM AIBCM ASPOMM CSSSM ASSSM CIDUSTM SO4 SSSSM CSSO4M"

    file=climato_${period}.nc

    cat << eod >> tmp.jnl
SET MEMORY/SIZE=100
use $file
use histmth.nc
define grid/like=SO4[d=1]/x=precip[d=2]/y=precip[d=2] grille_T
eod

    ##########################################################################
    # Boucle sur la liste des variables = debut des noms de fichiers
    for var in ${liste_all} ; do

	echo $var

        ##########################################################################
        # Interpollations horizontale des variables $var load_$var et ps
        ##########################################################################
	filen=climato_$period.$resoln.nc

	#rm -f $filen
	cat << eod >> tmp.jnl
save/file=$filen/a $var[d=1,g=grille_T]
eod

    done

    ferret -nojnl <<eod
go tmp.jnl
quit
eod

    mv tmp.jnl tmp$period.jnl

    #Correction eventuelle de certain noms de variables
    ncrename -O --hst -d LON1,lon -v LON1,lon $filen
    ncrename -O --hst -d LON,lon -v LON,lon $filen
    ncrename -O --hst -d LAT,lat -v LAT,lat $filen
    ncrename -O --hst -d LAT1,lat -v LAT1,lat $filen
    ncrename -O --hst -d LEV,lev -v LEV,lev $filen
    ncrename -O --hst -v PS,ps $filen
    for var in ${liste_aer} ; do
	ncrename -O --hst -v LOAD_$var,load_$var $filen
    done
    # Ajout des autres variables necessaires
    ncks -A --hst -v ap,b,p0 $file $filen

    #ncdump $filen | more 
    #pwd ; ls -lrt ; exit

    ##########################################################################
    # Comparaisons graphiques des fichiers originaux et interpolles
    ##########################################################################

    for var in ${liste_aer} ; do

	cat << eod >>  tmpload.jnl
can d/a
can w/a
set w/n
use $file
use $filen
set v ul
shade load_$var[d=1,l=3] ; go land
set v ur
shade load_$var[d=2,l=3] ; go land
set v ll
plot load_$var[d=1,l=3,i=@ave]
plot/o load_$var[d=2,l=3,i=@ave]
set v lr
plot/title=VERIF2 load_$var[d=1,l=12,i=@ave]
plot/o load_$var[d=2,l=12,i=@ave]
frame/file=load$var.$period.gif
eod

	cat << eod >> tmp3D.jnl
can d/a
set w/n
use $file
use $filen
set v ul
shade $var[d=1,l=3,k=19] ; go land
set v ur
shade $var[d=2,l=3,k=19] ; go land
set v ll
contour/title=VERIF2 log($var[d=1,l=3,k=19]) ; go land
contour/o log($var[d=2,l=3,k=19]) ; go land
set v lr
contour log($var[d=1,l=12,i=@ave])
contour/o log($var[d=2,l=12,i=@ave])
frame/file=3D$var.$period.gif
eod

	for type in 3D load ; do
	    echo SORTIES 3D
	    ferret -gif -nojnl <<eod >| out.$type
   go tmp$type.jnl
   quit
eod

	    mv tmp$type.jnl tmp$type.$var.jnl
	done
    done

    ##########################################################################
    # Sauvegarde des fichiers
    ##########################################################################

    D_store=${DMFDIR}/IPCC_AR5_RCP45_v5/R$resoln/$cas
    D_diag=${DMFDIR}/IPCC_AR5_RCP45_v5/DIAGS/R$resoln/$cas
    mkdir -p $D_store
    mkdir -p $D_diag
    cp $filen $D_store
    cp *.gif $D_diag

    #rm -f *gif

done

cd $DMFDIR
dods_rm public/p86cozic/IPCC_AR5_RCP45_v5
dods_cp IPCC_AR5_RCP45_v5 public/p86cozic
