source: TOOLS/CMIP6_FORCING/AER_TROP_CONCENTRATIONS/dep_from_inca.sh @ 4226

Last change on this file since 4226 was 3495, checked in by tlurton, 6 years ago

Ajout de deux scripts aerosols_from_inca.sh et dep_from_inca.sh, prenant les sorties des runs historiques aerosols LMDZORINCA, et generant les fichiers climato aerosols annee par annee (forcage tropospherique) pour le premier, les fichiers de depots annee par annee pour l'autre. Dans les deux scripts, une moyenne glissante, ponderee sur trois ans, est effectuee.

  • Property svn:executable set to *
File size: 6.8 KB
Line 
1# Script prenant en entrée les outputs des simulations historicl generant les aerosols tropo.
2# Une moyenne glissante sur 3 ans est effectuée, avec pondération [0.25 ; 0.5 ; 0.25].
3# Un fichier dÃpÃŽts par an est généré au final.
4# Th. Lurton IPSL nov. 2017
5
6#!/bin/sh
7
8for year in {1850..2014}
9do
10
11if [ ${year} -ge 1850 ] && [ ${year} -le 1882 ]
12then
13 lettreprec=''
14 lettre=A
15 lettresuiv=B
16elif [ ${year} -ge 1883 ] && [ ${year} -le 1915 ]
17then
18 lettreprec=A
19 lettre=B
20 lettresuiv=C
21elif [ ${year} -ge 1916 ] && [ ${year} -le 1948 ]
22then
23 lettreprec=B
24 lettre=C
25 lettresuiv=D
26elif [ ${year} -ge 1949 ] && [ ${year} -le 1981 ]
27then
28 lettreprec=C
29 lettre=D
30 lettresuiv=E
31elif [ ${year} -ge 1982 ] && [ ${year} -le 2014 ]
32then
33 lettreprec=D
34 lettre=E
35 lettresuiv=''
36fi
37
38nomsimu=LOI6012-histAER-part${lettre}
39nomsimuprec=LOI6012-histAER-part${lettreprec}
40nomsimusuiv=LOI6012-histAER-part${lettresuiv}
41
42# Chemins
43chemin=/ccc/store/cont003/gencmip6/lurtont/IGCM_OUT/LMDZORINCA/PROD/historicalAER/${nomsimu}/CHM/Output/MO/
44cheminprec=/ccc/store/cont003/gencmip6/lurtont/IGCM_OUT/LMDZORINCA/PROD/historicalAER/${nomsimuprec}/CHM/Output/MO/
45cheminsuiv=/ccc/store/cont003/gencmip6/lurtont/IGCM_OUT/LMDZORINCA/PROD/historicalAER/${nomsimusuiv}/CHM/Output/MO/
46
47workchemin=/ccc/scratch/cont003/gencmip6/lurtont/aerosols_from_inca/
48
49# On effectue une moyenne glissante sur trois années, centrée en l'année d'intérêt,
50# et de poids [ 1/4 ; 1/2 ; 1/4 ].
51prec=$((${year}-1))
52suiv=$((${year}+1))
53
54# Override des années précédente pour 1850, et suivante pour 2014 :
55if [ ${year} = 1850 ]
56then
57   prec=1850
58   echo '*** Comme on est en 1850, je prends aussi 1850 pour an (n-1).'
59fi
60if [ ${year} = 2014 ]
61then
62   suiv=2014
63   echo '*** Comme on est en 2014, je prends aussi 2014 pour an (n+1).'
64fi
65
66echo '***** Annee '${year}' : Moyenne glissante sur ans '${prec}', '${year}', et '${suiv}'.'
67
68# Adresses generiques des fichiers a traiter
69fileprec=${chemin}${nomsimu}_${prec}0101_${prec}1230_1M_inca_dep.nc
70fileyear=${chemin}${nomsimu}_${year}0101_${year}1230_1M_inca_dep.nc
71filesuiv=${chemin}${nomsimu}_${suiv}0101_${suiv}1230_1M_inca_dep.nc
72
73# Override pour les cas des annees-charnieres
74# Si l'on est en fin de periode (sauf la derniere), il faut regarder dans la simulation suivante pour le fichier (n+1)
75if [ ${year} = 1882 ] || [ ${year} = 1915 ] || [ ${year} = 1948 ] || [ ${year} = 1981 ]
76then
77   filesuiv=${cheminsuiv}${nomsimusuiv}_${suiv}0101_${suiv}1230_1M_inca_dep.nc
78# si l'on est en debut de periode (sauf la premiere), on regarde dans la simulation precedente pour le fichier (n-1)
79fi
80if [ ${year} = 1883 ] || [ ${year} = 1916 ] || [ ${year} = 1949 ] || [ ${year} = 1982 ]
81then
82   fileprec=${cheminprec}${nomsimuprec}_${prec}0101_${prec}1230_1M_inca_dep.nc
83fi
84
85# Fichiers temporaires avec ponderation (cas generique)
86pondprec=${workchemin}${nomsimu}_${prec}0101_${prec}1230_pond.nc
87pondyear=${workchemin}${nomsimu}_${year}0101_${year}1230_pond.nc
88pondsuiv=${workchemin}${nomsimu}_${suiv}0101_${suiv}1230_pond.nc
89
90# Cas particulier pour 1850 : il ne faut pas que ${pondprec} et ${pondyear} s'écrivent l'un sur l'autre
91if [ ${year} = 1850 ]
92then
93   pondprec=${workchemin}${nomsimu}_18490101_18491230_pond.nc
94fi
95# Cas particulier pour 2014 : il ne faut pas que ${pondsuiv} et ${pondyear} s'écrivent l'un sur l'autre
96if [ ${year} = 2014 ]
97then
98   pondsuiv=${workchemin}${nomsimu}_20150101_20151230_pond.nc
99fi
100
101# Pondération des trois années successives par 1/4 ; 1/2 ; 1/4 ]
102# et multiplication par un facteur 3 qui disparaîtr lors de la moyenne par mois.
103# (je procede en deux etapes, l'enchainement cdo ne fonctionne pas)
104tmp=${workchemin}temp.nc
105cdo selname,seddustci,wetdustci,drydustci ${fileprec} ${tmp}
106cdo mulc,.75 ${tmp} ${pondprec}
107rm -f ${tmp}
108cdo selname,seddustci,wetdustci,drydustci ${fileyear} ${tmp}
109cdo mulc,1.5 ${tmp} ${pondyear}
110rm -f ${tmp}
111cdo selname,seddustci,wetdustci,drydustci ${filesuiv} ${tmp}
112cdo mulc,.75 ${tmp} ${pondsuiv}
113rm -f ${tmp}
114
115# Fix du vecteur temps pour les cas 1849 et 2015 : comme ils sont issus d'une duplication de fichier, il faut lui faire croire
116# que l'on a le vecteur temps de l'annee precedente/suivante
117if [ ${year} = 1850 ]
118then
119tmp=${workchemin}${nomsimu}_tmp.nc
120mv ${pondprec} ${tmp}
121cdo shifttime,-1year ${tmp} ${pondprec}
122rm -f ${tmp}
123fi
124if [ ${year} = 2014 ]
125then
126tmp=${workchemin}${nomsimu}_tmp.nc
127mv ${pondsuiv} ${tmp}
128cdo shifttime,1year ${tmp} ${pondsuiv}
129rm -f ${tmp}
130fi
131
132# Alignement de tout le monde sur 1850
133ncatted -O -a units,time_counter,o,c,"seconds since 1850-01-01 00:00:00" ${pondyear}
134ncatted -O -a units,time_counter,o,c,"seconds since 1850-01-01 00:00:00" ${pondprec}
135ncatted -O -a units,time_counter,o,c,"seconds since 1850-01-01 00:00:00" ${pondsuiv}
136
137# Fix du vecteur temps pour les annees-charnieres : chacune des cinq parties de simulation a sa propre origine des temps
138# partA commence en 1847, partB en 1880, partC en 1913, partD en 1946 et partE en 1979
139# si on est en fin de periode, on doit decaler l'axe des temps du fichier (n+1) de 33 ans
140if [ ${year} = 1882 ] || [ ${year} = 1915 ] || [ ${year} = 1948 ] || [ ${year} = 1981 ]
141then
142tmp=${workchemin}${suiv}_tmp.nc
143mv ${pondsuiv} ${tmp}
144cdo shifttime,33years ${tmp} ${pondsuiv}
145rm -f ${tmp}
146fi
147# si on est en debut de periode, on doit decaler l'axe des temps du fichier (n-1) de -33 ans
148# (normalement on reste en positif, car la simu fait 36 ans au total en incluant le spin-up de 3 ans, et on regarde la derniere annee)
149if [ ${year} = 1883 ] || [ ${year} = 1916 ] || [ ${year} = 1949 ] || [ ${year} = 1982 ]
150then
151tmp=${workchemin}${prec}_tmp.nc
152mv ${pondprec} ${tmp}
153cdo shifttime,-33years ${tmp} ${pondprec}
154rm -f ${tmp}
155fi
156
157pondtroisans=${workchemin}dep_${prec}0101_${suiv}1230_pond.nc
158
159# Override pour les cas 1850 et 2014, renommage propre du fichier trois ans
160if [ ${year} = 1850 ]
161then
162pondtroisans=${workchemin}dep_18490101_18511230_pond.nc
163fi
164if [ ${year} = 2014 ]
165then
166pondtroisans=${workchemin}dep_20130101_20151230_pond.nc
167fi
168
169cdo mergetime ${pondprec} ${pondyear} ${pondsuiv} ${pondtroisans}
170rm -f ${pondprec} ${pondyear} ${pondsuiv}
171
172fileout=${workchemin}final_DEP/DUST_INCA_LOI6012-histAER_1M_${year}.nc
173
174cdo ymonmean ${pondtroisans} ${fileout}
175rm -f ${pondtroisans}
176
177# Fix du vecteur temps : ymonmean s'aligne sur la derniere annee, ici (n+1)
178# on recule donc d'un an pour bien avoir l'annee (n)
179tmp=${workchemin}${nomsimu}_tmp.nc
180mv ${fileout} ${tmp}
181cdo shifttime,-1year ${tmp} ${fileout}
182rm -f ${tmp}
183
184# Dernier point : on s'aligne sur 1850 pour l'origine des temps de tout le monde
185tmp=${workchemin}tmp.nc
186mv ${fileout} ${tmp}
187if [ ${lettre} = 'A' ]
188then
189cdo shifttime,-3years ${tmp} ${fileout}
190elif [ ${lettre} = 'B' ]
191then
192cdo shifttime,30years ${tmp} ${fileout}
193elif [ ${lettre} = 'C' ]
194then
195cdo shifttime,63years ${tmp} ${fileout}
196elif [ ${lettre} = 'D' ]
197then
198cdo shifttime,96years ${tmp} ${fileout}
199elif [ ${lettre} = 'E' ]
200then
201cdo shifttime,129years ${tmp} ${fileout}
202fi
203rm -f ${tmp}
204
205# Fin de boucle sur les années
206done
Note: See TracBrowser for help on using the repository browser.