# Script preparant les aerosols pour Scenarios
# a partir des sorties de AER-ssp***
# en raccordant avec les redos -PATCH
# sur les annees 2080 a 2100
# Th. Lurton IPSL oct. 2018

#!/bin/sh

for ssp in ssp119 ssp126 ssp245 ssp370 ssp434 ssp460 ssp534-over ssp585
do

newchemin=/ccc/store/cont003/gencmip6/lurtont/IGCM_OUT/LMDZORINCA/PROD/scenarioAER/AER-${ssp}-PATCH/CHM/Output/MO/
oldchemin=/ccc/store/cont003/gencmip6/lurtont/IGCM_OUT/LMDZORINCA/PROD/scenarioAER/AER-${ssp}/CHM/Output/MO/
# --- Target path above, to be customised as wanted
workchemin=/ccc/work/cont003/gencmip6/lurtont/aerosols_from_inca/AER_for_Scenarios/${ssp}/

if [ ! -d ${workchemin} ] ; then mkdir -p ${workchemin} ; fi

histchemin=/ccc/store/cont003/gencmip6/lurtont/IGCM_OUT/LMDZORINCA/PROD/historicalAER/LOI6012-histAER-partE/CHM/Output/MO/

for year in {2015..2100}
do

echo "******* Scenario "${ssp}" : je traite l'annee ${year} **********"

# On effectue une moyenne glissante sur trois ans, centree en l'annee d'interet, et de poids [0.25 ; 0.5 ; 0.25].
# Pour 2015, on ira chercher le 2014 chez les AER-historicals.

prec=$((${year}-1))
suiv=$((${year}+1))

# Adresses generiques des fichiers-sources
if [ ${year} -lt 2079 ]
then
   fileprec=${oldchemin}AER-${ssp}_${prec}0101_${prec}1230_1M_aerosols_from_inca.nc
   fileyear=${oldchemin}AER-${ssp}_${year}0101_${year}1230_1M_aerosols_from_inca.nc
   filesuiv=${oldchemin}AER-${ssp}_${suiv}0101_${suiv}1230_1M_aerosols_from_inca.nc
fi
if [ ${year} -gt 2080 ]
then
   fileprec=${newchemin}AER-${ssp}-PATCH_${prec}0101_${prec}1230_1M_aerosols_from_inca.nc
   fileyear=${newchemin}AER-${ssp}-PATCH_${year}0101_${year}1230_1M_aerosols_from_inca.nc
   filesuiv=${newchemin}AER-${ssp}-PATCH_${suiv}0101_${suiv}1230_1M_aerosols_from_inca.nc
fi

# Override pour le cas 2015, vers le chemin de la simulation historical.
if [ ${year} = 2015 ]
then
   echo "On est en 2015, je vais chercher 2014 chez les historiques..."
   fileprec=${histchemin}LOI6012-histAER-partE_20140101_20141230_1M_aerosols_from_inca.nc
fi

# Overrides pour 2079 et 2080 : charniere entre runs ssp et runs ssp-PATCH.
if [ ${year} = 2079 ]
then
   echo "On est en 2079, je fais la charniere entre 2078 et 2079 du run "${ssp}" et 2080 du run "${ssp}"-PATCH."
   fileprec=${oldchemin}AER-${ssp}_${prec}0101_${prec}1230_1M_aerosols_from_inca.nc
   fileyear=${oldchemin}AER-${ssp}_${year}0101_${year}1230_1M_aerosols_from_inca.nc
   filesuiv=${newchemin}AER-${ssp}-PATCH_${suiv}0101_${suiv}1230_1M_aerosols_from_inca.nc
fi
if [ ${year} = 2080 ]
then
   echo "On est en 2080, je fais la charniere entre 2079 du run "${ssp}" et 2080 et 2081 du run "${ssp}"-PATCH."
   fileprec=${oldchemin}AER-${ssp}_${prec}0101_${prec}1230_1M_aerosols_from_inca.nc
   fileyear=${newchemin}AER-${ssp}-PATCH_${year}0101_${year}1230_1M_aerosols_from_inca.nc
   filesuiv=${newchemin}AER-${ssp}-PATCH_${suiv}0101_${suiv}1230_1M_aerosols_from_inca.nc
fi

# Override pour le cas 2100 : duplicata de 2100 pour 2101.
if [ ${year} = 2100 ]
then
   echo "On est en 2100, je prends donc 2100 aussi pour 2101."
   filesuiv=${newchemin}AER-${ssp}-PATCH_${year}0101_${year}1230_1M_aerosols_from_inca.nc
fi

# Fichiers temporaires avec ponderation (cas generique).
pondprec=${workchemin}AER-${ssp}_${prec}0101_${prec}1230_pond.nc
pondyear=${workchemin}AER-${ssp}_${year}0101_${year}1230_pond.nc
pondsuiv=${workchemin}AER-${ssp}_${suiv}0101_${suiv}1230_pond.nc

# Pondération des trois années successives par 1/4 ; 1/2 ; 1/4 ]
# et multiplication par un facteur 3 qui disparaitra lors de la moyenne.
cdo mulc,.75 ${fileprec} ${pondprec}
cdo mulc,1.5 ${fileyear} ${pondyear}
cdo mulc,.75 ${filesuiv} ${pondsuiv}

# Fichier recevant trois ans consecutifs
pondtroisans=${workchemin}aerosols_${prec}0101_${suiv}1230_pond.nc

cdo mergetime ${pondprec} ${pondyear} ${pondsuiv} ${pondtroisans}
rm -f ${pondprec} ${pondyear} ${pondsuiv}

fileout=${workchemin}aerosols${year}_from_inca.nc

# Moyenne sur les trois ans, par mois
cdo ymonmean ${pondtroisans} ${fileout}
rm -f ${pondtroisans}

# Fix du vecteur-temps
ncks -A -v time_counter,time_centered,time_counter_bounds,time_centered_bounds ${fileyear} ${fileout}

# Fin de boucle sur les annees
done

# Fin de boucle sur ssp's
done
