source: TOOLS/CMIP6_FORCING/AER_TROP_CONCENTRATIONS/aerosols_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.6 KB
Line 
1# Script prenant en entrÃe les outputs des simulations historical gÃnÃrant les forÃages aÃrosols tropo
2# Une moyenne glissante sur 3 ans est effectuÃe, avec pondÃration [0.25 ; 0.5 ; 0.25].
3# Un fichier climato 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_aerosols_from_inca.nc
70fileyear=${chemin}${nomsimu}_${year}0101_${year}1230_1M_aerosols_from_inca.nc
71filesuiv=${chemin}${nomsimu}_${suiv}0101_${suiv}1230_1M_aerosols_from_inca.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_aerosols_from_inca.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_aerosols_from_inca.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
104cdo mulc,.75 ${fileprec} ${pondprec}
105cdo mulc,1.5 ${fileyear} ${pondyear}
106cdo mulc,.75 ${filesuiv} ${pondsuiv}
107
108# Fix du vecteur temps pour les cas 1849 et 2015 : comme ils sont issus d'une duplication de fichier, il faut lui faire croire
109# que l'on a le vecteur temps de l'annee precedente/suivante
110if [ ${year} = 1850 ]
111then
112tmp=${workchemin}${nomsimu}_tmp.nc
113mv ${pondprec} ${tmp}
114cdo shifttime,-1year ${tmp} ${pondprec}
115rm -f ${tmp}
116fi
117if [ ${year} = 2014 ]
118then
119tmp=${workchemin}${nomsimu}_tmp.nc
120mv ${pondsuiv} ${tmp}
121cdo shifttime,1year ${tmp} ${pondsuiv}
122rm -f ${tmp}
123fi
124
125# Alignement de tout le monde sur 1850
126ncatted -O -a units,time_counter,o,c,"seconds since 1850-01-01 00:00:00" ${pondyear}
127ncatted -O -a units,time_counter,o,c,"seconds since 1850-01-01 00:00:00" ${pondprec}
128ncatted -O -a units,time_counter,o,c,"seconds since 1850-01-01 00:00:00" ${pondsuiv}
129
130# Fix du vecteur temps pour les annees-charnieres : chacune des cinq parties de simulation a sa propre origine des temps
131# partA commence en 1847, partB en 1880, partC en 1913, partD en 1946 et partE en 1979
132# si on est en fin de periode, on doit decaler l'axe des temps du fichier (n+1) de 33 ans
133if [ ${year} = 1882 ] || [ ${year} = 1915 ] || [ ${year} = 1948 ] || [ ${year} = 1981 ]
134then
135tmp=${workchemin}${suiv}_tmp.nc
136mv ${pondsuiv} ${tmp}
137cdo shifttime,33years ${tmp} ${pondsuiv}
138fi
139# si on est en debut de periode, on doit decaler l'axe des temps du fichier (n-1) de -33 ans
140# (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)
141if [ ${year} = 1883 ] || [ ${year} = 1916 ] || [ ${year} = 1949 ] || [ ${year} = 1982 ]
142then
143tmp=${workchemin}${prec}_tmp.nc
144mv ${pondprec} ${tmp}
145cdo shifttime,-33years ${tmp} ${pondprec}
146fi
147
148pondtroisans=${workchemin}aerosols_${prec}0101_${suiv}1230_pond.nc
149
150# Override pour les cas 1850 et 2014, renommage propre du fichier trois ans
151if [ ${year} = 1850 ]
152then
153pondtroisans=${workchemin}aerosols_18490101_18511230_pond.nc
154fi
155if [ ${year} = 2014 ]
156then
157pondtroisans=${workchemin}aerosols_20130101_20151230_pond.nc
158fi
159
160cdo mergetime ${pondprec} ${pondyear} ${pondsuiv} ${pondtroisans}
161rm -f ${pondprec} ${pondyear} ${pondsuiv}
162
163fileout=${workchemin}final_AER/aerosols${year}_from_inca.nc
164
165cdo ymonmean ${pondtroisans} ${fileout}
166rm -f ${pondtroisans}
167
168# Fix du vecteur temps : ymonmean s'aligne sur la derniere annee, ici (n+1)
169# on recule donc d'un an pour bien avoir l'annee (n)
170tmp=${workchemin}${nomsimu}_tmp.nc
171mv ${fileout} ${tmp}
172cdo shifttime,-1year ${tmp} ${fileout}
173rm -f ${tmp}
174
175# Dernier point : on s'aligne sur 1850 pour l'origine des temps de tout le monde
176tmp=${workchemin}tmp.nc
177mv ${fileout} ${tmp}
178if [ ${lettre} = 'A' ]
179then
180cdo shifttime,-3years ${tmp} ${fileout}
181elif [ ${lettre} = 'B' ]
182then
183cdo shifttime,30years ${tmp} ${fileout}
184elif [ ${lettre} = 'C' ]
185then
186cdo shifttime,63years ${tmp} ${fileout}
187elif [ ${lettre} = 'D' ]
188then
189cdo shifttime,96years ${tmp} ${fileout}
190elif [ ${lettre} = 'E' ]
191then
192cdo shifttime,129years ${tmp} ${fileout}
193fi
194rm -f ${tmp}
195
196# Fin de boucle sur les années
197done
Note: See TracBrowser for help on using the repository browser.