1 | #!/usr/bin/ksh |
---|
2 | #PBS -q scalaire |
---|
3 | #PBS -N interp |
---|
4 | #PBS -j o |
---|
5 | #PBS -l memsz_job=2.0gb |
---|
6 | #PBS -l cputim_job=24:00:00 |
---|
7 | |
---|
8 | ##set -vx |
---|
9 | |
---|
10 | |
---|
11 | #################################################### |
---|
12 | ## Script permettant de regriller les fichiers |
---|
13 | ## de concentrations d'aerosols utilises par LMDZ |
---|
14 | ## |
---|
15 | ## il faut modifier : |
---|
16 | ## - la liste des annees a regriller |
---|
17 | ## - le path de la grille d'arrivee (fileresol) |
---|
18 | ## - le path des fichiers a regriller (cp /dmnfs/cont003/p86ipsl/IGCM/BC/ATM/IPSLCM5/LMD9695/AR5/.../aerosols_11YearsClim_${period}_v5.nc .... ) |
---|
19 | ## - les variables d_store et d_diag |
---|
20 | ## - le path sur dods |
---|
21 | #################################################### |
---|
22 | |
---|
23 | |
---|
24 | cas=20C3M |
---|
25 | |
---|
26 | if [ $cas = 20C3M ] ; then |
---|
27 | |
---|
28 | |
---|
29 | liste_period=" 2096 2097 2098 2099 2100 " |
---|
30 | |
---|
31 | else |
---|
32 | liste_period="2000 2010" |
---|
33 | fi |
---|
34 | |
---|
35 | |
---|
36 | # 144x142 - 192x192 - 280x280 |
---|
37 | resoln=144x142 |
---|
38 | fileresol=/dmnfs/cont003/p86denv/IPCC_AR5/OUTGRID/LMDZ${resoln}x19/histmth.nc |
---|
39 | |
---|
40 | if [ ! -f $fileresol ] ; then |
---|
41 | echo Il vous faut un fichier $fileresol |
---|
42 | exit |
---|
43 | fi |
---|
44 | |
---|
45 | D_work=$SCRATCHDIR/tmp_interp$$ |
---|
46 | rm -rf $D_work ; mkdir -p $D_work |
---|
47 | cp $fileresol $D_work/ |
---|
48 | |
---|
49 | for period in ${liste_period} ; do |
---|
50 | |
---|
51 | cp /dmnfs/cont003/p86ipsl/IGCM/BC/ATM/IPSLCM5/LMD9695/AR5/RCP45/aerosols_11YearsClim_${period}_v5.nc $D_work/climato_${period}.nc |
---|
52 | cd $D_work |
---|
53 | chmod 755 $D_work/climato_${period}.nc |
---|
54 | |
---|
55 | ########################################################################## |
---|
56 | # Pour que vos ferret s'y retrouve |
---|
57 | ########################################################################## |
---|
58 | |
---|
59 | ncatted -O -a units,lon,c,c,"degrees_east" climato_${period}.nc |
---|
60 | ncatted -O -a long_name,lon,c,c,"Longitude" climato_${period}.nc |
---|
61 | ncatted -O -a units,lat,c,c,"degrees_north" climato_${period}.nc |
---|
62 | ncatted -O -a long_name,lat,c,c,"Latitude" climato_${period}.nc |
---|
63 | |
---|
64 | ########################################################################## |
---|
65 | # Liste des variables dans chaque fichier |
---|
66 | ########################################################################## |
---|
67 | #rm -f $var.liste |
---|
68 | #for type in float double ; do |
---|
69 | #ncdump -h climato_${period}.nc | grep $type | awk ' { print $2 } ' | awk -F\( ' { print $1 } '>> $var.liste |
---|
70 | #done |
---|
71 | #cat $var.liste |
---|
72 | |
---|
73 | 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" |
---|
74 | |
---|
75 | liste_aer="AIPOMM ASBCM AIBCM ASPOMM CSSSM ASSSM CIDUSTM SO4 SSSSM CSSO4M" |
---|
76 | |
---|
77 | file=climato_${period}.nc |
---|
78 | |
---|
79 | cat << eod >> tmp.jnl |
---|
80 | SET MEMORY/SIZE=100 |
---|
81 | use $file |
---|
82 | use histmth.nc |
---|
83 | define grid/like=SO4[d=1]/x=precip[d=2]/y=precip[d=2] grille_T |
---|
84 | eod |
---|
85 | |
---|
86 | ########################################################################## |
---|
87 | # Boucle sur la liste des variables = debut des noms de fichiers |
---|
88 | for var in ${liste_all} ; do |
---|
89 | |
---|
90 | echo $var |
---|
91 | |
---|
92 | ########################################################################## |
---|
93 | # Interpollations horizontale des variables $var load_$var et ps |
---|
94 | ########################################################################## |
---|
95 | filen=climato_$period.$resoln.nc |
---|
96 | |
---|
97 | #rm -f $filen |
---|
98 | cat << eod >> tmp.jnl |
---|
99 | save/file=$filen/a $var[d=1,g=grille_T] |
---|
100 | eod |
---|
101 | |
---|
102 | done |
---|
103 | |
---|
104 | ferret -nojnl <<eod |
---|
105 | go tmp.jnl |
---|
106 | quit |
---|
107 | eod |
---|
108 | |
---|
109 | mv tmp.jnl tmp$period.jnl |
---|
110 | |
---|
111 | #Correction eventuelle de certain noms de variables |
---|
112 | ncrename -O --hst -d LON1,lon -v LON1,lon $filen |
---|
113 | ncrename -O --hst -d LON,lon -v LON,lon $filen |
---|
114 | ncrename -O --hst -d LAT,lat -v LAT,lat $filen |
---|
115 | ncrename -O --hst -d LAT1,lat -v LAT1,lat $filen |
---|
116 | ncrename -O --hst -d LEV,lev -v LEV,lev $filen |
---|
117 | ncrename -O --hst -v PS,ps $filen |
---|
118 | for var in ${liste_aer} ; do |
---|
119 | ncrename -O --hst -v LOAD_$var,load_$var $filen |
---|
120 | done |
---|
121 | # Ajout des autres variables necessaires |
---|
122 | ncks -A --hst -v ap,b,p0 $file $filen |
---|
123 | |
---|
124 | #ncdump $filen | more |
---|
125 | #pwd ; ls -lrt ; exit |
---|
126 | |
---|
127 | ########################################################################## |
---|
128 | # Comparaisons graphiques des fichiers originaux et interpolles |
---|
129 | ########################################################################## |
---|
130 | |
---|
131 | for var in ${liste_aer} ; do |
---|
132 | |
---|
133 | cat << eod >> tmpload.jnl |
---|
134 | can d/a |
---|
135 | can w/a |
---|
136 | set w/n |
---|
137 | use $file |
---|
138 | use $filen |
---|
139 | set v ul |
---|
140 | shade load_$var[d=1,l=3] ; go land |
---|
141 | set v ur |
---|
142 | shade load_$var[d=2,l=3] ; go land |
---|
143 | set v ll |
---|
144 | plot load_$var[d=1,l=3,i=@ave] |
---|
145 | plot/o load_$var[d=2,l=3,i=@ave] |
---|
146 | set v lr |
---|
147 | plot/title=VERIF2 load_$var[d=1,l=12,i=@ave] |
---|
148 | plot/o load_$var[d=2,l=12,i=@ave] |
---|
149 | frame/file=load$var.$period.gif |
---|
150 | eod |
---|
151 | |
---|
152 | cat << eod >> tmp3D.jnl |
---|
153 | can d/a |
---|
154 | set w/n |
---|
155 | use $file |
---|
156 | use $filen |
---|
157 | set v ul |
---|
158 | shade $var[d=1,l=3,k=19] ; go land |
---|
159 | set v ur |
---|
160 | shade $var[d=2,l=3,k=19] ; go land |
---|
161 | set v ll |
---|
162 | contour/title=VERIF2 log($var[d=1,l=3,k=19]) ; go land |
---|
163 | contour/o log($var[d=2,l=3,k=19]) ; go land |
---|
164 | set v lr |
---|
165 | contour log($var[d=1,l=12,i=@ave]) |
---|
166 | contour/o log($var[d=2,l=12,i=@ave]) |
---|
167 | frame/file=3D$var.$period.gif |
---|
168 | eod |
---|
169 | |
---|
170 | for type in 3D load ; do |
---|
171 | echo SORTIES 3D |
---|
172 | ferret -gif -nojnl <<eod >| out.$type |
---|
173 | go tmp$type.jnl |
---|
174 | quit |
---|
175 | eod |
---|
176 | |
---|
177 | mv tmp$type.jnl tmp$type.$var.jnl |
---|
178 | done |
---|
179 | done |
---|
180 | |
---|
181 | ########################################################################## |
---|
182 | # Sauvegarde des fichiers |
---|
183 | ########################################################################## |
---|
184 | |
---|
185 | D_store=${DMFDIR}/IPCC_AR5_RCP45_v5/R$resoln/$cas |
---|
186 | D_diag=${DMFDIR}/IPCC_AR5_RCP45_v5/DIAGS/R$resoln/$cas |
---|
187 | mkdir -p $D_store |
---|
188 | mkdir -p $D_diag |
---|
189 | cp $filen $D_store |
---|
190 | cp *.gif $D_diag |
---|
191 | |
---|
192 | #rm -f *gif |
---|
193 | |
---|
194 | done |
---|
195 | |
---|
196 | cd $DMFDIR |
---|
197 | dods_rm public/p86cozic/IPCC_AR5_RCP45_v5 |
---|
198 | dods_cp IPCC_AR5_RCP45_v5 public/p86cozic |
---|