1 | #!/usr/bin/ksh |
---|
2 | # script for new INCAparallel LMDZ4 output files |
---|
3 | set -ex |
---|
4 | |
---|
5 | user=p86cozic |
---|
6 | producer=p86cozic |
---|
7 | |
---|
8 | config=LMDZORINCA |
---|
9 | model=LOI_01 |
---|
10 | |
---|
11 | set -A ANN 2000 |
---|
12 | set -A MTH '01' '02' '03' '04' '05' '06' '07' '08' '09' '10' '11' '12' |
---|
13 | firstmth='01' |
---|
14 | lastmth='12' |
---|
15 | lastday=29 # =30 si time_counter=31 / =29 si time_counter=30 |
---|
16 | |
---|
17 | compute_budgetfiles=1 |
---|
18 | |
---|
19 | |
---|
20 | dirout=/dmnfs/cont003/${producer}/IGCM_OUT/${config}/${model}/CHM/Output/MO |
---|
21 | dirscr=/scratchdir/cont003/${producer}/INCA_OUTPUT/${model} |
---|
22 | |
---|
23 | dirproc=/scratchdir/cont003/${user}/INCA_OUTPUT/${model} |
---|
24 | mkdir -p $dirproc |
---|
25 | cd $dirproc |
---|
26 | |
---|
27 | for AN in ${ANN[*]} ; do |
---|
28 | im=0 |
---|
29 | for IMTH in ${MTH[*]} ; do |
---|
30 | |
---|
31 | |
---|
32 | tagname=_${AN}${IMTH}01_${AN}${IMTH}30_1M_ |
---|
33 | infile=${dirproc}/${AN}${IMTH}/MM_${model}${tagname}inca_avgr.nc |
---|
34 | moy_file=${dirout}/MM_${model}${tagname}inca_avgr.nc |
---|
35 | |
---|
36 | if [ ! -f ${moy_file} ] ; then |
---|
37 | if [ ! -f ${infile} ]; then |
---|
38 | cd ${dirproc}/ |
---|
39 | mkdir -p ${AN}${IMTH} |
---|
40 | cd ${dirproc}/${AN}${IMTH}/ |
---|
41 | cp ${dirout}/${model}${tagname}inca_avgr.nc . |
---|
42 | ncra -O ${model}${tagname}inca_avgr.nc MM_${model}${tagname}inca_avgr.nc |
---|
43 | fi |
---|
44 | cp MM_${model}${tagname}inca_avgr.nc ${moy_file} |
---|
45 | fi |
---|
46 | cd $dirproc |
---|
47 | |
---|
48 | file=bcpombudget_${model}.an${AN}.m${IMTH}.nc |
---|
49 | |
---|
50 | if [ 1 = $compute_budgetfiles ] ; then |
---|
51 | ncks -O -v area,lat,lon,presnivs,time_counter,AIRMASS,\ |
---|
52 | 'Emi_.*BCM','Emi_.*POMM','DRY.*POMM','WET.*POMM','DRY.*BCM','SED.*BCM','SED.*POMM','WET.*BCM',\ |
---|
53 | 'Emi_.*CIDUSTM','DRY.*CIDUSTM','SED.*CIDUSTM','WET.*CIDUSTM',\ |
---|
54 | 'Emi_.*SSM','DRY.*SSM','SED.*SSM','WET.*SSM',\ |
---|
55 | AIPOMM,ASPOMM,AIBCM,ASBCM,CIDUSTM,ASSSM,CSSSM,SSSSM $infile $file |
---|
56 | |
---|
57 | ncwa -O -a presnivs -y ttl -v 'Emi_alt.*' $file tmp.nc |
---|
58 | ncks -O -x -v 'Emi_alt.*' $file $file |
---|
59 | ncks -A -v 'Emi_alt.*' tmp.nc $file |
---|
60 | ncap -O -s "\ |
---|
61 | EMI_BC=Emi_alt_AIBCM+Emi_alt_ASBCM+Emi_AIBCM+Emi_ASBCM;\ |
---|
62 | EMI_POM=Emi_alt_AIPOMM+Emi_alt_ASPOMM+Emi_AIPOMM+Emi_ASPOMM;\ |
---|
63 | EMI_AIBC=Emi_alt_AIBCM+Emi_AIBCM;\ |
---|
64 | EMI_ASBC=Emi_alt_ASBCM+Emi_ASBCM;\ |
---|
65 | EMI_AIPOM=Emi_alt_AIPOMM+Emi_AIPOMM;\ |
---|
66 | EMI_ASPOM=Emi_alt_ASPOMM+Emi_ASPOMM;\ |
---|
67 | EMI_DUST=Emi_CIDUSTM;\ |
---|
68 | EMI_SS=Emi_ASSSM+Emi_CSSSM;\ |
---|
69 | EMI_CSS=Emi_CSSSM;\ |
---|
70 | EMI_ASS=Emi_ASSSM;\ |
---|
71 | EMI_SSS=Emi_SSSSM;\ |
---|
72 | WET_POM=WET_AIPOMM+WET_ASPOMM;\ |
---|
73 | WET_BC=WET_AIBCM+WET_ASBCM;\ |
---|
74 | WET_DUST=WET_CIDUSTM;\ |
---|
75 | WET_SS=WET_ASSSM+WET_CSSSM;\ |
---|
76 | SEDDRY_POM=DRY_AIPOMM+DRY_ASPOMM+SED_AIPOMM+SED_ASPOMM;\ |
---|
77 | SEDDRY_BC=DRY_AIBCM+DRY_ASBCM+SED_AIBCM+SED_ASBCM;\ |
---|
78 | SEDDRY_AIPOM=SED_AIPOMM+DRY_AIPOMM;\ |
---|
79 | SEDDRY_ASPOM=SED_ASPOMM+DRY_ASPOMM;\ |
---|
80 | SEDDRY_AIBC=SED_AIBCM+DRY_AIBCM;\ |
---|
81 | SEDDRY_ASBC=SED_ASBCM+DRY_ASBCM;\ |
---|
82 | SEDDRY_DUST=SED_CIDUSTM+DRY_CIDUSTM;\ |
---|
83 | SEDDRY_SS=SED_ASSSM+DRY_ASSSM+SED_CSSSM+DRY_CSSSM;\ |
---|
84 | " $file $file |
---|
85 | |
---|
86 | ncap -O -s "LOAD_BC[time_counter,presnivs,lat,lon]=(AIBCM+ASBCM)*AIRMASS/area;\ |
---|
87 | LOAD_POM[time_counter,presnivs,lat,lon]=(AIPOMM+ASPOMM)*AIRMASS/area;\ |
---|
88 | LOAD_AIBC[time_counter,presnivs,lat,lon]=AIBCM*AIRMASS/area;\ |
---|
89 | LOAD_AIPOM[time_counter,presnivs,lat,lon]=AIPOMM*AIRMASS/area;\ |
---|
90 | LOAD_ASBC[time_counter,presnivs,lat,lon]=ASBCM*AIRMASS/area;\ |
---|
91 | LOAD_ASPOM[time_counter,presnivs,lat,lon]=ASPOMM*AIRMASS/area;\ |
---|
92 | LOAD_DUST[time_counter,presnivs,lat,lon]=CIDUSTM*AIRMASS/area;\ |
---|
93 | LOAD_SS[time_counter,presnivs,lat,lon]=(ASSSM+CSSSM)*AIRMASS/area;\ |
---|
94 | LOAD_CSS[time_counter,presnivs,lat,lon]=CSSSM*AIRMASS/area;\ |
---|
95 | LOAD_ASS[time_counter,presnivs,lat,lon]=ASSSM*AIRMASS/area;\ |
---|
96 | LOAD_SSS[time_counter,presnivs,lat,lon]=SSSSM*AIRMASS/area;\ |
---|
97 | " $file tmp.nc |
---|
98 | ncwa -O -a presnivs -y ttl -v 'LOAD.*' tmp.nc tmp.nc |
---|
99 | ncks -A -v 'LOAD.*' tmp.nc $file |
---|
100 | |
---|
101 | fi |
---|
102 | ((im=$im+1)) |
---|
103 | done |
---|
104 | |
---|
105 | # accumulation during run |
---|
106 | infilestart=${dirout}/${model}_${AN}${firstmth}01_${AN}${firstmth}30_1M_inca_avgr.nc |
---|
107 | infileend=${dirout}/${model}_${AN}${lastmth}01_${AN}${lastmth}30_1M_inca_avgr.nc |
---|
108 | ncks -O -d time_counter,0 -v area,AIRMASS,AIPOMM,ASPOMM,AIBCM,ASBCM,CIDUSTM,ASSSM,CSSSM,SSSSM $infilestart accu.nc |
---|
109 | ncrename -v AIPOMM,AIPOMMST -v ASPOMM,ASPOMMST -v AIBCM,AIBCMST -v ASBCM,ASBCMST \ |
---|
110 | -v CIDUSTM,CIDUSTMST -v ASSSM,ASSSMST -v CSSSM,CSSSMST -v SSSSM,SSSSMST accu.nc |
---|
111 | ncks -A -d time_counter,$lastday -v AIPOMM,ASPOMM,AIBCM,ASBCM,CIDUSTM,ASSSM,CSSSM,SSSSM $infileend accu.nc |
---|
112 | ncap -O -s "ACCU_BC[time_counter,presnivs,lat,lon]=(AIBCM+ASBCM-AIBCMST-ASBCMST)*AIRMASS/area;\ |
---|
113 | ACCU_POM[time_counter,presnivs,lat,lon]=(AIPOMM+ASPOMM-AIPOMMST-ASPOMMST)*AIRMASS/area;\ |
---|
114 | ACCU_AIBC[time_counter,presnivs,lat,lon]=(AIBCM-AIBCMST)*AIRMASS/area;\ |
---|
115 | ACCU_AIPOM[time_counter,presnivs,lat,lon]=(AIPOMM-AIPOMMST)*AIRMASS/area;\ |
---|
116 | ACCU_ASBC[time_counter,presnivs,lat,lon]=(ASBCM-ASBCMST)*AIRMASS/area;\ |
---|
117 | ACCU_ASPOM[time_counter,presnivs,lat,lon]=(ASPOMM-ASPOMMST)*AIRMASS/area;\ |
---|
118 | ACCU_DUST[time_counter,presnivs,lat,lon]=(CIDUSTM-CIDUSTMST)*AIRMASS/area;\ |
---|
119 | ACCU_SS[time_counter,presnivs,lat,lon]=(ASSSM+CSSSM-ASSSMST-CSSSMST)*AIRMASS/area;\ |
---|
120 | ACCU_CSS[time_counter,presnivs,lat,lon]=(CSSSM-CSSSMST)*AIRMASS/area;\ |
---|
121 | ACCU_ASS[time_counter,presnivs,lat,lon]=(ASSSM-ASSSMST)*AIRMASS/area;\ |
---|
122 | ACCU_SSS[time_counter,presnivs,lat,lon]=(SSSSM-SSSSMST)*AIRMASS/area;\ |
---|
123 | " accu.nc accu.nc |
---|
124 | ncwa -O -a lat,lon -w area -v 'ACCU.*' accu.nc tmp0.nc |
---|
125 | ncap -O -s "FAC=1.e6f" tmp0.nc tmp0.nc |
---|
126 | ncwa -O -N -w FAC tmp0.nc tmp0.nc |
---|
127 | |
---|
128 | filean=bcpombudget_${model}.an${AN}.nc |
---|
129 | ncra -O bcpombudget_${model}.an${AN}.m??.nc $filean |
---|
130 | |
---|
131 | ncwa -O -a lat,lon -w area -v 'SEDDRY.*','WET.*','EMI.*' $filean tmp.nc |
---|
132 | |
---|
133 | ncap -O -s "FAC=86400.f*365.f*1e6f" tmp.nc tmp.nc |
---|
134 | ncwa -O -N -w FAC tmp.nc tmp.nc |
---|
135 | |
---|
136 | |
---|
137 | ncwa -O -a lat,lon -w area -v 'LOAD.*BC$','LOAD.*POM$','LOAD.*DUST$','LOAD.*SS$' $filean t.nc |
---|
138 | ncap -O -s "FAC=1.e6f" t.nc t.nc |
---|
139 | ncwa -O -N -w FAC t.nc t.nc |
---|
140 | ncks -A -v 'LOAD.*BC$','LOAD.*POM$','LOAD.*DUST$','LOAD.*SS$' t.nc tmp.nc |
---|
141 | |
---|
142 | ncks -O -x -v FAC tmp.nc tmp.nc |
---|
143 | ncks -A -v 'ACCU.*' tmp0.nc tmp.nc |
---|
144 | |
---|
145 | echo "fluxes in mg m-2 y-1 // loads in mg m-2" |
---|
146 | echo ${model} |
---|
147 | ncks -H tmp.nc |
---|
148 | |
---|
149 | done |
---|
150 | |
---|
151 | exit |
---|
152 | |
---|
153 | |
---|
154 | |
---|
155 | |
---|
156 | |
---|
157 | |
---|
158 | |
---|
159 | |
---|
160 | |
---|
161 | |
---|
162 | |
---|
163 | |
---|
164 | |
---|
165 | |
---|
166 | |
---|
167 | |
---|
168 | |
---|
169 | |
---|
170 | |
---|
171 | |
---|
172 | |
---|
173 | |
---|
174 | |
---|
175 | |
---|
176 | |
---|
177 | |
---|
178 | |
---|
179 | |
---|
180 | |
---|
181 | |
---|
182 | |
---|
183 | |
---|
184 | |
---|
185 | |
---|
186 | |
---|
187 | |
---|
188 | |
---|
189 | |
---|
190 | |
---|
191 | |
---|
192 | |
---|
193 | |
---|
194 | |
---|
195 | |
---|
196 | |
---|
197 | |
---|
198 | |
---|
199 | |
---|
200 | |
---|
201 | |
---|
202 | |
---|
203 | |
---|
204 | |
---|
205 | |
---|
206 | |
---|
207 | |
---|
208 | |
---|
209 | |
---|
210 | |
---|
211 | |
---|
212 | |
---|
213 | |
---|
214 | |
---|
215 | |
---|
216 | |
---|
217 | |
---|
218 | |
---|
219 | |
---|
220 | |
---|
221 | |
---|
222 | |
---|
223 | |
---|
224 | |
---|
225 | |
---|
226 | |
---|
227 | |
---|
228 | |
---|
229 | |
---|
230 | |
---|
231 | |
---|
232 | |
---|
233 | |
---|
234 | |
---|
235 | |
---|
236 | |
---|
237 | |
---|
238 | |
---|
239 | |
---|
240 | |
---|
241 | |
---|
242 | |
---|
243 | |
---|
244 | |
---|
245 | |
---|
246 | |
---|
247 | |
---|
248 | |
---|
249 | |
---|
250 | |
---|
251 | |
---|
252 | |
---|
253 | |
---|
254 | |
---|
255 | |
---|
256 | |
---|
257 | |
---|
258 | |
---|
259 | |
---|
260 | |
---|
261 | |
---|
262 | |
---|
263 | |
---|
264 | |
---|
265 | |
---|
266 | |
---|
267 | |
---|
268 | |
---|
269 | |
---|
270 | |
---|
271 | |
---|
272 | |
---|