1 | PROGRAM rforcmain |
---|
2 | |
---|
3 | use iophy |
---|
4 | use ioipsl |
---|
5 | use dimphy |
---|
6 | use mod_phys_lmdz_para |
---|
7 | |
---|
8 | IMPLICIT none |
---|
9 | |
---|
10 | c******************************************************************************* |
---|
11 | c Calcul du forcage radiatif avec ajustement stratospherique |
---|
12 | c A. Idelkadi le 6 mars 2007 |
---|
13 | c******************************************************************************* |
---|
14 | C |
---|
15 | ! JLD: 2009-07-12 |
---|
16 | ! + add the flux and the forcing at the surface |
---|
17 | C JLD 2008-11-29 |
---|
18 | C + propbleme de transfert de la grille de lecture à la grille |
---|
19 | C physique: debut de re-ecriture |
---|
20 | C + supression d'une lecture specifique pour l'albedo |
---|
21 | #include "dimensions.h" |
---|
22 | #include "temps.h" |
---|
23 | #include "clesphys.h" |
---|
24 | c====================================================================== |
---|
25 | |
---|
26 | INTEGER ngridmx |
---|
27 | PARAMETER( ngridmx = 2+(jjm-1)*iim - 1/jjm ) |
---|
28 | |
---|
29 | c fichier de sortie LMDz contenant les champs qui sera lu pour le calcul |
---|
30 | C des forcages |
---|
31 | CHARACTER*80 tapename,tapename_ref |
---|
32 | PARAMETER(tapename_ref="histmth_ref.nc",tapename="histmth.nc") |
---|
33 | INTEGER nvert ! ID vertical axis |
---|
34 | C |
---|
35 | |
---|
36 | INTEGER mois |
---|
37 | PARAMETER (mois=12) |
---|
38 | ! PARAMETER (mois=1) ! changer aussi les DATA de julien |
---|
39 | REAL dtime ! pas de l'iteration en secondes |
---|
40 | PARAMETER (dtime=86400.0) |
---|
41 | real rjour |
---|
42 | INTEGER jour, julien(mois) |
---|
43 | |
---|
44 | INTEGER i, k, j, itap, m, n |
---|
45 | |
---|
46 | REAL rlon_1d(iim),rlat_1d(jjm+1), presl_1d(llm) |
---|
47 | c Variables sur grille physique |
---|
48 | REAL tfi(ngridmx,llm),qfi(ngridmx,llm), |
---|
49 | $ tfi_adj(ngridmx,llm) ! adjusted 3D temp profile |
---|
50 | REAL paprsfi(ngridmx,llm+1),pplayfi(ngridmx,llm) |
---|
51 | integer read_climoz ! read ozone climatology |
---|
52 | Parameter (read_climoz=2) |
---|
53 | REAL ozone(ngridmx,llm),ozone_ref(ngridmx,llm) |
---|
54 | Real ozone_daylight(ngridmx,llm),ozone_daylight_ref(ngridmx,llm) |
---|
55 | REAL rlonfi(ngridmx),rlatfi(ngridmx) |
---|
56 | REAL cldliqfi(ngridmx,llm),cldfrafi(ngridmx,llm) |
---|
57 | REAL albsfi(ngridmx) |
---|
58 | REAL phisfi(ngridmx),airefi(ngridmx),tsolfi(ngridmx) |
---|
59 | |
---|
60 | c reference profile |
---|
61 | REAL tps_sw_ref(ngridmx),tps_lw_ref(ngridmx) |
---|
62 | REAL tps_sw_ref0(ngridmx),tps_lw_ref0(ngridmx) |
---|
63 | REAL toa_sw_ref(ngridmx),toa_lw_ref(ngridmx) |
---|
64 | REAL toa_sw_ref0(ngridmx),toa_lw_ref0(ngridmx) |
---|
65 | REAL srf_sw_ref(ngridmx),srf_lw_ref(ngridmx) |
---|
66 | REAL srf_sw_ref0(ngridmx),srf_lw_ref0(ngridmx) |
---|
67 | c initial values (with modofied PARAMETER, but no strato. adjustment) |
---|
68 | REAL tps_sw_ini(ngridmx),tps_lw_ini(ngridmx) |
---|
69 | REAL tps_sw_ini0(ngridmx),tps_lw_ini0(ngridmx) |
---|
70 | REAL toa_sw_ini(ngridmx),toa_lw_ini(ngridmx) |
---|
71 | REAL toa_sw_ini0(ngridmx),toa_lw_ini0(ngridmx) |
---|
72 | c initial anomalies |
---|
73 | REAL d_tps_sw_ini(ngridmx),d_tps_lw_ini(ngridmx) |
---|
74 | REAL d_tps_sw_ini0(ngridmx),d_tps_lw_ini0(ngridmx) |
---|
75 | REAL d_toa_sw_ini(ngridmx),d_toa_lw_ini(ngridmx) |
---|
76 | REAL d_toa_sw_ini0(ngridmx),d_toa_lw_ini0(ngridmx) |
---|
77 | c |
---|
78 | c adjusted values (with modofied PARAMETER, and strato. adjustment) |
---|
79 | c adjusted values (with modofied PARAMETER, and strato. adjustment) |
---|
80 | REAL tps_sw_adj(ngridmx),tps_lw_adj(ngridmx) |
---|
81 | REAL tps_sw_adj0(ngridmx),tps_lw_adj0(ngridmx) |
---|
82 | REAL toa_sw_adj(ngridmx),toa_lw_adj(ngridmx) |
---|
83 | REAL toa_sw_adj0(ngridmx),toa_lw_adj0(ngridmx) |
---|
84 | REAL srf_sw_adj(ngridmx),srf_lw_adj(ngridmx) |
---|
85 | REAL srf_sw_adj0(ngridmx),srf_lw_adj0(ngridmx) |
---|
86 | REAL d_tps_sw_adj(ngridmx),d_tps_lw_adj(ngridmx) |
---|
87 | REAL d_tps_sw_adj0(ngridmx),d_tps_lw_adj0(ngridmx) |
---|
88 | REAL d_toa_sw_adj(ngridmx),d_toa_lw_adj(ngridmx) |
---|
89 | REAL d_toa_sw_adj0(ngridmx),d_toa_lw_adj0(ngridmx) |
---|
90 | REAL d_srf_sw_adj(ngridmx),d_srf_lw_adj(ngridmx) |
---|
91 | REAL d_srf_sw_adj0(ngridmx),d_srf_lw_adj0(ngridmx) |
---|
92 | ! |
---|
93 | ! Bilan radiatif SW (heat) et LW (cool) des differentes couche de l'atmopshre |
---|
94 | REAL heat_ref(ngridmx,llm), heat0_ref(ngridmx,llm), |
---|
95 | $ cool_ref(ngridmx,llm), cool0_ref(ngridmx,llm) |
---|
96 | REAL d_heat_ini(ngridmx,llm), d_heat0_ini(ngridmx,llm), |
---|
97 | $ d_cool_ini(ngridmx,llm), d_cool0_ini(ngridmx,llm) |
---|
98 | REAL d_heat_adj(ngridmx,llm), d_heat0_adj(ngridmx,llm), |
---|
99 | $ d_cool_adj(ngridmx,llm), d_cool0_adj(ngridmx,llm) |
---|
100 | ! |
---|
101 | REAL dHrad_dT(ngridmx,llm) ! derivative the radiative heating with temperature |
---|
102 | REAL bilq_ref(ngridmx),bilq_ini(ngridmx),bilq_adj(ngridmx) |
---|
103 | |
---|
104 | DATA (julien(m),m=1,mois) /15, 45, 75, 105, 135, 165, |
---|
105 | . 195, 225, 255, 285, 315, 345/ |
---|
106 | C DATA (julien(m),m=1,mois) /75/ |
---|
107 | c |
---|
108 | C |
---|
109 | C Diagnostiques: Valeures moyennes, sur le globe |
---|
110 | C ================================================ |
---|
111 | C |
---|
112 | REAL aire_tot |
---|
113 | C Valeures mensuelles, moyenne sur le globe |
---|
114 | C |
---|
115 | C Bilan rad. de la stratosphere |
---|
116 | REAL bil_str_ref_m(mois), bil_str_ini_m(mois) |
---|
117 | $ ,bil_str_adj_m(mois) |
---|
118 | ! |
---|
119 | C Flux au sommet de l'atm |
---|
120 | REAL toa_sw_ref_m(mois), toa_sw_ref0_m(mois) |
---|
121 | $ , toa_lw_ref_m(mois), toa_lw_ref0_m(mois) |
---|
122 | C Forcage initial au sommet de l'atm |
---|
123 | REAL d_toa_sw_ini_m(mois), d_toa_sw_ini0_m(mois) |
---|
124 | $ ,d_toa_lw_ini_m(mois), d_toa_lw_ini0_m(mois) |
---|
125 | C Forcage ajuste au sommet de l'atm |
---|
126 | REAL d_toa_sw_adj_m(mois), d_toa_sw_adj0_m(mois) |
---|
127 | $ ,d_toa_lw_adj_m(mois), d_toa_lw_adj0_m(mois) |
---|
128 | ! |
---|
129 | C Flux a la tropopause |
---|
130 | REAL tps_sw_ref_m(mois), tps_sw_ref0_m(mois) |
---|
131 | $ , tps_lw_ref_m(mois), tps_lw_ref0_m(mois) |
---|
132 | C Forcage initial a la tropopause |
---|
133 | REAL d_tps_sw_ini_m(mois), d_tps_sw_ini0_m(mois) |
---|
134 | $ ,d_tps_lw_ini_m(mois), d_tps_lw_ini0_m(mois) |
---|
135 | C Forcage ajuste a la tropopause |
---|
136 | REAL d_tps_sw_adj_m(mois), d_tps_sw_adj0_m(mois) |
---|
137 | $ ,d_tps_lw_adj_m(mois), d_tps_lw_adj0_m(mois) |
---|
138 | ! |
---|
139 | C Flux a la surface |
---|
140 | REAL srf_sw_ref_m(mois), srf_sw_ref0_m(mois) |
---|
141 | $ , srf_lw_ref_m(mois), srf_lw_ref0_m(mois) |
---|
142 | C Forcage ajuste a la surface |
---|
143 | REAL d_srf_sw_adj_m(mois), d_srf_sw_adj0_m(mois) |
---|
144 | $ ,d_srf_lw_adj_m(mois), d_srf_lw_adj0_m(mois) |
---|
145 | ! Bilan radiatif de la stratosphere |
---|
146 | REAL bilq_ref_m(mois),bilq_ini_m(mois),bilq_adj_m(mois) |
---|
147 | C |
---|
148 | C Valeures annuelle, moyenne sur le globe |
---|
149 | C ================================================ |
---|
150 | C |
---|
151 | C bilan rad. de la stratosphere |
---|
152 | REAL bil_str_ref_yr, bil_str_ini_yr, bil_str_adj_yr |
---|
153 | C Flux au sommet de l'atm |
---|
154 | REAL toa_sw_ref_yr, toa_sw_ref0_yr |
---|
155 | $ , toa_lw_ref_yr, toa_lw_ref0_yr |
---|
156 | C Forcage initial au sommet de l'atm |
---|
157 | REAL d_toa_sw_ini_yr, d_toa_sw_ini0_yr |
---|
158 | $ ,d_toa_lw_ini_yr, d_toa_lw_ini0_yr |
---|
159 | C Forcage ajuste au sommet de l'atm |
---|
160 | REAL d_toa_sw_adj_yr, d_toa_sw_adj0_yr |
---|
161 | $ ,d_toa_lw_adj_yr, d_toa_lw_adj0_yr |
---|
162 | ! |
---|
163 | C Flux a la tropopause |
---|
164 | REAL tps_sw_ref_yr, tps_sw_ref0_yr |
---|
165 | $ , tps_lw_ref_yr, tps_lw_ref0_yr |
---|
166 | C Forcage initial a la tropopause |
---|
167 | REAL d_tps_sw_ini_yr, d_tps_sw_ini0_yr |
---|
168 | $ ,d_tps_lw_ini_yr, d_tps_lw_ini0_yr |
---|
169 | C Forcage ajuste a la tropopause |
---|
170 | REAL d_tps_sw_adj_yr, d_tps_sw_adj0_yr |
---|
171 | $ ,d_tps_lw_adj_yr, d_tps_lw_adj0_yr |
---|
172 | ! |
---|
173 | C Flux au sommet de l'atm |
---|
174 | REAL srf_sw_ref_yr, srf_sw_ref0_yr |
---|
175 | $ , srf_lw_ref_yr, srf_lw_ref0_yr |
---|
176 | C Forcage ajuste au sommet de l'atm |
---|
177 | REAL d_srf_sw_adj_yr, d_srf_sw_adj0_yr |
---|
178 | $ ,d_srf_lw_adj_yr, d_srf_lw_adj0_yr |
---|
179 | C == fin diagnostiques moyenne sur le globe |
---|
180 | C |
---|
181 | c Initialisation des sorties |
---|
182 | real zstophy,zstoday,zout,zjulian |
---|
183 | Cjld integer nhori,nid_day,day_ref |
---|
184 | integer nhori,nid_day |
---|
185 | save nid_day |
---|
186 | INTEGER ndex2d(iim*(jjm+1)) |
---|
187 | REAL zx_tmp_2d(iim,jjm+1) |
---|
188 | INTEGER ndex3d(iim*(jjm+1)*llm) |
---|
189 | REAL zx_tmp_3d(iim,jjm+1,llm) |
---|
190 | C |
---|
191 | LOGICAL aqua_planette |
---|
192 | PARAMETER (aqua_planette=.false.) |
---|
193 | C |
---|
194 | LOGICAL debug |
---|
195 | PARAMETER (debug=.false.) |
---|
196 | C |
---|
197 | REAL x_ave, x_std, x_min, x_max |
---|
198 | REAL undef |
---|
199 | DATA undef/9999./ |
---|
200 | c |
---|
201 | call Init_Phys_lmdz(iim,jjm+1,llm,1,(jjm-1)*iim+2) |
---|
202 | C |
---|
203 | C Initialisation des variables |
---|
204 | C |
---|
205 | C Diagnostiques en moyenne sur le globe |
---|
206 | DO m =1,mois |
---|
207 | C Flux au sommet de l'atmosphère |
---|
208 | toa_sw_ref_m(m) = 0. |
---|
209 | toa_sw_ref0_m(m) = 0. |
---|
210 | toa_lw_ref_m(m) = 0. |
---|
211 | toa_lw_ref0_m(m) = 0. |
---|
212 | C Forcage initial au sommet de l'atm |
---|
213 | d_toa_sw_ini_m(m) = 0. |
---|
214 | d_toa_sw_ini0_m(m) = 0. |
---|
215 | d_toa_lw_ini_m(m) = 0. |
---|
216 | d_toa_lw_ini0_m(m) = 0. |
---|
217 | C Forcage ajuste au sommet de l'atm |
---|
218 | d_toa_sw_adj_m(m) = 0. |
---|
219 | d_toa_sw_adj0_m(m) = 0. |
---|
220 | d_toa_lw_adj_m(m) = 0. |
---|
221 | d_toa_lw_adj0_m(m) = 0. |
---|
222 | C Flux a la tropopause |
---|
223 | tps_sw_ref_m(m) = 0. |
---|
224 | tps_sw_ref0_m(m) = 0. |
---|
225 | tps_lw_ref_m(m) = 0. |
---|
226 | tps_lw_ref0_m(m) = 0. |
---|
227 | C Forcage initial a la tropopause |
---|
228 | d_tps_sw_ini_m(m) = 0. |
---|
229 | d_tps_sw_ini0_m(m) = 0. |
---|
230 | d_tps_lw_ini_m(m) = 0. |
---|
231 | d_tps_lw_ini0_m(m) = 0. |
---|
232 | C Forcage ajuste a la tropopause |
---|
233 | d_tps_sw_adj_m(m) = 0. |
---|
234 | d_tps_sw_adj0_m(m) = 0. |
---|
235 | d_tps_lw_adj_m(m) = 0. |
---|
236 | d_tps_lw_adj0_m(m) = 0. |
---|
237 | C Flux a la surface |
---|
238 | srf_sw_ref_m(m) = 0. |
---|
239 | srf_sw_ref0_m(m) = 0. |
---|
240 | srf_lw_ref_m(m) = 0. |
---|
241 | srf_lw_ref0_m(m) = 0. |
---|
242 | C Forcage ajuste a la surface |
---|
243 | d_srf_sw_adj_m(m) = 0. |
---|
244 | d_srf_sw_adj0_m(m) = 0. |
---|
245 | d_srf_lw_adj_m(m) = 0. |
---|
246 | d_srf_lw_adj0_m(m) = 0. |
---|
247 | ! Bilan radiatif de la stratosphere |
---|
248 | bilq_ref_m(m) = 0. |
---|
249 | bilq_ini_m(m) = 0. |
---|
250 | bilq_adj_m(m) = 0. |
---|
251 | C |
---|
252 | END DO ! boucle sur les mois m |
---|
253 | C |
---|
254 | C moyenne annuelle |
---|
255 | C Flux au sommet de l'atmosphère |
---|
256 | toa_sw_ref_yr = 0. |
---|
257 | toa_sw_ref0_yr = 0. |
---|
258 | toa_lw_ref_yr = 0. |
---|
259 | toa_lw_ref0_yr = 0. |
---|
260 | C Forcage initial au sommet de l'atm |
---|
261 | d_toa_sw_ini_yr = 0. |
---|
262 | d_toa_sw_ini0_yr = 0. |
---|
263 | d_toa_lw_ini_yr = 0. |
---|
264 | d_toa_lw_ini0_yr = 0. |
---|
265 | C Forcage ajuste au sommet de l'atm |
---|
266 | d_toa_sw_adj_yr = 0. |
---|
267 | d_toa_sw_adj0_yr = 0. |
---|
268 | d_toa_lw_adj_yr = 0. |
---|
269 | d_toa_lw_adj0_yr = 0. |
---|
270 | C Flux a la tropopause |
---|
271 | tps_sw_ref_yr = 0. |
---|
272 | tps_sw_ref0_yr = 0. |
---|
273 | tps_lw_ref_yr = 0. |
---|
274 | tps_lw_ref0_yr = 0. |
---|
275 | C Forcage initial a la tropopause |
---|
276 | d_tps_sw_ini_yr = 0. |
---|
277 | d_tps_sw_ini0_yr = 0. |
---|
278 | d_tps_lw_ini_yr = 0. |
---|
279 | d_tps_lw_ini0_yr = 0. |
---|
280 | C Forcage ajuste a la tropopause |
---|
281 | d_tps_sw_adj_yr = 0. |
---|
282 | d_tps_sw_adj0_yr = 0. |
---|
283 | d_tps_lw_adj_yr = 0. |
---|
284 | d_tps_lw_adj0_yr = 0. |
---|
285 | C Flux a la surface |
---|
286 | srf_sw_ref_yr = 0. |
---|
287 | srf_sw_ref0_yr = 0. |
---|
288 | srf_lw_ref_yr = 0. |
---|
289 | srf_lw_ref0_yr = 0. |
---|
290 | C Forcage ajuste a la surface |
---|
291 | d_srf_sw_adj_yr = 0. |
---|
292 | d_srf_sw_adj0_yr = 0. |
---|
293 | d_srf_lw_adj_yr = 0. |
---|
294 | d_srf_lw_adj0_yr = 0. |
---|
295 | |
---|
296 | c lecture des variables a chaque mois |
---|
297 | C================================================================================ |
---|
298 | C*********DEBUT DE LA BOUCLE TEMPORELLE µµµµ************************************µ |
---|
299 | C================================================================================ |
---|
300 | DO 99999 m = 1, mois |
---|
301 | CJLD DO 99999 m = 1, 2 |
---|
302 | |
---|
303 | WRITE (*,*) 'Mois :',m |
---|
304 | c |
---|
305 | jour = julien(m) |
---|
306 | rjour=FLOAT(jour) |
---|
307 | IF (aqua_planette) rjour=75. |
---|
308 | |
---|
309 | print*,'Appel de lirehist, rjour=',rjour |
---|
310 | !!! Abderrahmane juin 2011 |
---|
311 | ! On lit dans le fichier de sortie histmth.nc l'ozone "perturbe" |
---|
312 | CALL lirehist(tapename_ref,iim,jjm+1,llm,ngridmx,mois,m, |
---|
313 | . read_climoz,tsolfi,paprsfi,pplayfi,tfi,qfi, |
---|
314 | . cldfrafi,cldliqfi,ozone,ozone_daylight, |
---|
315 | . rlonfi, rlatfi, phisfi, airefi, albsfi, |
---|
316 | . rlon_1d, rlat_1d, presl_1d) |
---|
317 | |
---|
318 | CALL lirehist(tapename,iim,jjm+1,llm, ngridmx,mois,m,read_climoz, |
---|
319 | . tsolfi,paprsfi,pplayfi,tfi,qfi,cldfrafi,cldliqfi,ozone_ref, |
---|
320 | . ozone_daylight_ref,rlonfi, rlatfi, phisfi, airefi, albsfi, |
---|
321 | . rlon_1d, rlat_1d, presl_1d) |
---|
322 | print*,'Apres lirehist' |
---|
323 | C |
---|
324 | IF (debug) print*,'Appel ozonecm, rjour=',rjour |
---|
325 | IF (debug) THEN |
---|
326 | PRINT *,'klon',klon |
---|
327 | CALL cstat(klon*klev,ozone,x_ave,x_std,x_min,x_max,undef) |
---|
328 | WRITE (*,9002) "ozone",x_ave,x_std,x_min,x_max |
---|
329 | END IF |
---|
330 | ! On lit l'ozone directement sur le histmth.nc |
---|
331 | ! CALL ozonecm(rjour, rlatfi, paprsfi, ozone) |
---|
332 | IF (debug) THEN |
---|
333 | PRINT *,'klon',klon |
---|
334 | CALL cstat(klon*klev,ozone,x_ave,x_std,x_min,x_max,undef) |
---|
335 | WRITE (*,9002) "ozone",x_ave,x_std,x_min,x_max |
---|
336 | END IF |
---|
337 | |
---|
338 | IF (debug) THEN |
---|
339 | |
---|
340 | WRITE (*,*) "ngridmx",ngridmx |
---|
341 | |
---|
342 | CALL cstat(ngridmx,tsolfi,x_ave,x_std,x_min,x_max,undef) |
---|
343 | WRITE (*,9002) "tsol",x_ave,x_std,x_min,x_max |
---|
344 | |
---|
345 | CALL cstat(ngridmx,rlonfi,x_ave,x_std,x_min,x_max,undef) |
---|
346 | WRITE (*,9002) "rlon",x_ave,x_std,x_min,x_max |
---|
347 | |
---|
348 | CALL cstat(ngridmx,rlatfi,x_ave,x_std,x_min,x_max,undef) |
---|
349 | WRITE (*,9002) "rlat",x_ave,x_std,x_min,x_max |
---|
350 | |
---|
351 | CALL cstat(ngridmx,phisfi,x_ave,x_std,x_min,x_max,undef) |
---|
352 | WRITE (*,9002) "phis",x_ave,x_std,x_min,x_max |
---|
353 | |
---|
354 | CALL cstat(ngridmx,airefi,x_ave,x_std,x_min,x_max,undef) |
---|
355 | WRITE (*,9002) "aire",x_ave,x_std,x_min,x_max |
---|
356 | |
---|
357 | CALL cstat(ngridmx,albsfi,x_ave,x_std,x_min,x_max,undef) |
---|
358 | WRITE (*,9002) "albs",x_ave,x_std,x_min,x_max |
---|
359 | |
---|
360 | CALL cstat(ngridmx*(llm+1),paprsfi,x_ave,x_std,x_min,x_max,undef) |
---|
361 | WRITE (*,9002) "paprs",x_ave,x_std,x_min,x_max |
---|
362 | |
---|
363 | CALL cstat(ngridmx*llm,pplayfi,x_ave,x_std,x_min,x_max,undef) |
---|
364 | WRITE (*,9002) "pplay",x_ave,x_std,x_min,x_max |
---|
365 | |
---|
366 | CALL cstat(ngridmx*llm,tfi,x_ave,x_std,x_min,x_max,undef) |
---|
367 | WRITE (*,9002) "temp",x_ave,x_std,x_min,x_max |
---|
368 | |
---|
369 | CALL cstat(ngridmx*llm,qfi,x_ave,x_std,x_min,x_max,undef) |
---|
370 | WRITE (*,9002) "ovap",x_ave,x_std,x_min,x_max |
---|
371 | |
---|
372 | CALL cstat(ngridmx*llm,cldfrafi,x_ave,x_std,x_min,x_max,undef) |
---|
373 | WRITE (*,9002) "cldfra",x_ave,x_std,x_min,x_max |
---|
374 | |
---|
375 | CALL cstat(ngridmx*llm,cldliqfi,x_ave,x_std,x_min,x_max,undef) |
---|
376 | WRITE (*,9002) "cldliq",x_ave,x_std,x_min,x_max |
---|
377 | |
---|
378 | CALL cstat(ngridmx*llm,ozone,x_ave,x_std,x_min,x_max,undef) |
---|
379 | WRITE (*,9002) "ozone",x_ave,x_std,x_min,x_max |
---|
380 | |
---|
381 | 9002 FORMAT (1x,A12,10(1pE13.6)) |
---|
382 | END IF |
---|
383 | if(m.eq.1)then |
---|
384 | #include "ini_histforcing.h" |
---|
385 | endif |
---|
386 | c |
---|
387 | heat_ref(:,:) = 0. |
---|
388 | heat0_ref(:,:) = 0. |
---|
389 | cool_ref(:,:) = 0. |
---|
390 | cool0_ref(:,:) = 0. |
---|
391 | ! |
---|
392 | d_heat_ini(:,:) = 0. |
---|
393 | d_heat0_ini(:,:) = 0. |
---|
394 | d_cool_ini(:,:) = 0. |
---|
395 | d_cool0_ini(:,:) = 0. |
---|
396 | ! |
---|
397 | d_heat_adj(:,:) = 0. |
---|
398 | d_heat0_adj(:,:) = 0. |
---|
399 | d_cool_adj(:,:) = 0. |
---|
400 | d_cool0_adj(:,:) = 0. |
---|
401 | ! |
---|
402 | CALL rforcing(m,rjour,read_climoz, |
---|
403 | $ tfi,qfi,ozone,ozone_daylight, |
---|
404 | $ ozone_ref,ozone_daylight_ref, |
---|
405 | $ pplayfi,paprsfi,cldfrafi,cldliqfi, |
---|
406 | $ tsolfi,albsfi,rlatfi, |
---|
407 | c outputs : |
---|
408 | $ tfi_adj, |
---|
409 | $ tps_sw_ref,tps_sw_ref0,tps_lw_ref,tps_lw_ref0, |
---|
410 | $ tps_sw_ini,tps_sw_ini0,tps_lw_ini,tps_lw_ini0, |
---|
411 | $ d_tps_sw_ini,d_tps_sw_ini0,d_tps_lw_ini,d_tps_lw_ini0, |
---|
412 | $ d_tps_sw_adj,d_tps_sw_adj0,d_tps_lw_adj,d_tps_lw_adj0, |
---|
413 | $ toa_sw_ref,toa_sw_ref0,toa_lw_ref,toa_lw_ref0, |
---|
414 | $ toa_sw_ini,toa_sw_ini0,toa_lw_ini,toa_lw_ini0, |
---|
415 | $ d_toa_sw_ini,d_toa_sw_ini0,d_toa_lw_ini,d_toa_lw_ini0, |
---|
416 | $ d_toa_sw_adj,d_toa_sw_adj0,d_toa_lw_adj,d_toa_lw_adj0, |
---|
417 | $ srf_sw_ref,srf_sw_ref0,srf_lw_ref,srf_lw_ref0, |
---|
418 | $ d_srf_sw_adj,d_srf_sw_adj0,d_srf_lw_adj,d_srf_lw_adj0, |
---|
419 | $ dHrad_dT,bilq_ref,bilq_ini,bilq_adj, |
---|
420 | $ heat_ref, heat0_ref, cool_ref, cool0_ref, |
---|
421 | $ d_heat_ini, d_heat0_ini, d_cool_ini, d_cool0_ini, |
---|
422 | $ d_heat_adj, d_heat0_adj, d_cool_adj, d_cool0_adj ) |
---|
423 | C |
---|
424 | IF (debug) THEN |
---|
425 | CALL cstat(ngridmx,toa_sw_ref,x_ave,x_std,x_min,x_max,undef) |
---|
426 | WRITE (*,9002) "toa_sw_ref",x_ave,x_std,x_min,x_max |
---|
427 | CALL cstat(ngridmx,toa_lw_ref,x_ave,x_std,x_min,x_max,undef) |
---|
428 | WRITE (*,9002) "toa_lw_ref",x_ave,x_std,x_min,x_max |
---|
429 | CALL cstat(ngridmx,tps_sw_ref,x_ave,x_std,x_min,x_max,undef) |
---|
430 | WRITE (*,9002) "tps_sw_ref",x_ave,x_std,x_min,x_max |
---|
431 | CALL cstat(ngridmx,tps_lw_ref,x_ave,x_std,x_min,x_max,undef) |
---|
432 | WRITE (*,9002) "tps_lw_ref",x_ave,x_std,x_min,x_max |
---|
433 | CALL cstat(ngridmx,srf_sw_ref,x_ave,x_std,x_min,x_max,undef) |
---|
434 | WRITE (*,9002) "srf_sw_ref",x_ave,x_std,x_min,x_max |
---|
435 | CALL cstat(ngridmx,srf_lw_ref,x_ave,x_std,x_min,x_max,undef) |
---|
436 | WRITE (*,9002) "srf_lw_ref",x_ave,x_std,x_min,x_max |
---|
437 | ! |
---|
438 | CALL cstat(ngridmx,toa_sw_ref0,x_ave,x_std,x_min,x_max,undef) |
---|
439 | WRITE (*,9002) "toa_sw_ref0",x_ave,x_std,x_min,x_max |
---|
440 | CALL cstat(ngridmx,toa_lw_ref0,x_ave,x_std,x_min,x_max,undef) |
---|
441 | WRITE (*,9002) "toa_lw_ref0",x_ave,x_std,x_min,x_max |
---|
442 | CALL cwstat(ngridmx,toa_lw_ref0,airefi,x_ave,x_std,x_min,x_max |
---|
443 | $ ,undef) |
---|
444 | WRITE (*,9002) "Atoa_lw_ref0",x_ave,x_std,x_min,x_max |
---|
445 | CALL cstat(ngridmx,tps_sw_ref0,x_ave,x_std,x_min,x_max,undef) |
---|
446 | WRITE (*,9002) "tps_sw_ref0",x_ave,x_std,x_min,x_max |
---|
447 | CALL cstat(ngridmx,tps_lw_ref0,x_ave,x_std,x_min,x_max,undef) |
---|
448 | WRITE (*,9002) "tps_lw_ref0",x_ave,x_std,x_min,x_max |
---|
449 | CALL cstat(ngridmx,srf_sw_ref0,x_ave,x_std,x_min,x_max,undef) |
---|
450 | WRITE (*,9002) "srf_sw_ref0",x_ave,x_std,x_min,x_max |
---|
451 | CALL cstat(ngridmx,srf_lw_ref0,x_ave,x_std,x_min,x_max,undef) |
---|
452 | WRITE (*,9002) "srf_lw_ref0",x_ave,x_std,x_min,x_max |
---|
453 | ! |
---|
454 | WRITE (*,*) |
---|
455 | ! |
---|
456 | CALL cstat(ngridmx,toa_sw_ini,x_ave,x_std,x_min,x_max,undef) |
---|
457 | WRITE (*,9002) "toa_sw_ini",x_ave,x_std,x_min,x_max |
---|
458 | CALL cstat(ngridmx,toa_lw_ini,x_ave,x_std,x_min,x_max,undef) |
---|
459 | WRITE (*,9002) "toa_lw_ini",x_ave,x_std,x_min,x_max |
---|
460 | CALL cstat(ngridmx,tps_sw_ini,x_ave,x_std,x_min,x_max,undef) |
---|
461 | WRITE (*,9002) "tps_sw_ini",x_ave,x_std,x_min,x_max |
---|
462 | CALL cstat(ngridmx,tps_lw_ini,x_ave,x_std,x_min,x_max,undef) |
---|
463 | WRITE (*,9002) "tps_lw_ini",x_ave,x_std,x_min,x_max |
---|
464 | ! |
---|
465 | CALL cstat(ngridmx,toa_sw_ini0,x_ave,x_std,x_min,x_max,undef) |
---|
466 | WRITE (*,9002) "toa_sw_ini0",x_ave,x_std,x_min,x_max |
---|
467 | CALL cstat(ngridmx,toa_lw_ini0,x_ave,x_std,x_min,x_max,undef) |
---|
468 | WRITE (*,9002) "toa_lw_ini0",x_ave,x_std,x_min,x_max |
---|
469 | CALL cwstat(ngridmx,toa_lw_ini0,airefi,x_ave,x_std,x_min,x_max |
---|
470 | $ ,undef) |
---|
471 | WRITE (*,9002) "Atoa_lw_ini0",x_ave,x_std,x_min,x_max |
---|
472 | CALL cstat(ngridmx,tps_sw_ini0,x_ave,x_std,x_min,x_max,undef) |
---|
473 | WRITE (*,9002) "tps_sw_ini0",x_ave,x_std,x_min,x_max |
---|
474 | CALL cstat(ngridmx,tps_lw_ini0,x_ave,x_std,x_min,x_max,undef) |
---|
475 | WRITE (*,9002) "tps_lw_ini0",x_ave,x_std,x_min,x_max |
---|
476 | ! |
---|
477 | CALL cwstat(ngridmx,d_toa_lw_ini0,airefi,x_ave,x_std,x_min,x_max |
---|
478 | $ ,undef) |
---|
479 | WRITE (*,9002) "d_toa_lw_ini0",x_ave,x_std,x_min,x_max |
---|
480 | |
---|
481 | END IF |
---|
482 | |
---|
483 | #include "write_histforcing.h" |
---|
484 | C |
---|
485 | |
---|
486 | C Diagnostiques en moyenne sur le globe |
---|
487 | aire_tot = 0. |
---|
488 | DO n =1, ngridmx |
---|
489 | aire_tot=aire_tot + airefi(n) |
---|
490 | END DO |
---|
491 | DO n =1, ngridmx |
---|
492 | C Flux au sommet de l'atmosphère |
---|
493 | toa_sw_ref_m(m) = toa_sw_ref_m(m) + toa_sw_ref(n) |
---|
494 | $ *airefi(n)/aire_tot |
---|
495 | toa_sw_ref0_m(m) = toa_sw_ref0_m(m) + toa_sw_ref0(n) |
---|
496 | $ *airefi(n)/aire_tot |
---|
497 | toa_lw_ref_m(m) = toa_lw_ref_m(m) + toa_lw_ref(n) |
---|
498 | $ *airefi(n)/aire_tot |
---|
499 | toa_lw_ref0_m(m) = toa_lw_ref0_m(m) + toa_lw_ref0(n) |
---|
500 | $ *airefi(n)/aire_tot |
---|
501 | C Forcage initial au sommet de l'atm |
---|
502 | d_toa_sw_ini_m(m) = d_toa_sw_ini_m(m) + d_toa_sw_ini(n) |
---|
503 | $ *airefi(n)/aire_tot |
---|
504 | d_toa_sw_ini0_m(m) = d_toa_sw_ini0_m(m) + d_toa_sw_ini0(n) |
---|
505 | $ *airefi(n)/aire_tot |
---|
506 | d_toa_lw_ini_m(m) = d_toa_lw_ini_m(m) + d_toa_lw_ini(n) |
---|
507 | $ *airefi(n)/aire_tot |
---|
508 | d_toa_lw_ini0_m(m) = d_toa_lw_ini0_m(m) + d_toa_lw_ini0(n) |
---|
509 | $ *airefi(n)/aire_tot |
---|
510 | C Forcage ajuste au sommet de l'atm |
---|
511 | d_toa_sw_adj_m(m) = d_toa_sw_adj_m(m) + d_toa_sw_adj(n) |
---|
512 | $ *airefi(n)/aire_tot |
---|
513 | d_toa_sw_adj0_m(m) = d_toa_sw_adj0_m(m) + d_toa_sw_adj0(n) |
---|
514 | $ *airefi(n)/aire_tot |
---|
515 | d_toa_lw_adj_m(m) = d_toa_lw_adj_m(m) + d_toa_lw_adj(n) |
---|
516 | $ *airefi(n)/aire_tot |
---|
517 | d_toa_lw_adj0_m(m) = d_toa_lw_adj0_m(m) + d_toa_lw_adj0(n) |
---|
518 | $ *airefi(n)/aire_tot |
---|
519 | C Flux a la tropopause |
---|
520 | tps_sw_ref_m(m) = tps_sw_ref_m(m) + tps_sw_ref(n) |
---|
521 | $ *airefi(n)/aire_tot |
---|
522 | tps_sw_ref0_m(m) = tps_sw_ref0_m(m) + tps_sw_ref0(n) |
---|
523 | $ *airefi(n)/aire_tot |
---|
524 | tps_lw_ref_m(m) = tps_lw_ref_m(m) + tps_lw_ref(n) |
---|
525 | $ *airefi(n)/aire_tot |
---|
526 | tps_lw_ref0_m(m) = tps_lw_ref0_m(m) + tps_lw_ref0(n) |
---|
527 | $ *airefi(n)/aire_tot |
---|
528 | C Forcage initial a la tropopause |
---|
529 | d_tps_sw_ini_m(m) = d_tps_sw_ini_m(m) + d_tps_sw_ini(n) |
---|
530 | $ *airefi(n)/aire_tot |
---|
531 | d_tps_sw_ini0_m(m) = d_tps_sw_ini0_m(m) + d_tps_sw_ini0(n) |
---|
532 | $ *airefi(n)/aire_tot |
---|
533 | d_tps_lw_ini_m(m) = d_tps_lw_ini_m(m) + d_tps_lw_ini(n) |
---|
534 | $ *airefi(n)/aire_tot |
---|
535 | d_tps_lw_ini0_m(m) = d_tps_lw_ini0_m(m) + d_tps_lw_ini0(n) |
---|
536 | $ *airefi(n)/aire_tot |
---|
537 | C Forcage ajuste a la tropopause |
---|
538 | d_tps_sw_adj_m(m) = d_tps_sw_adj_m(m) + d_tps_sw_adj(n) |
---|
539 | $ *airefi(n)/aire_tot |
---|
540 | d_tps_sw_adj0_m(m) = d_tps_sw_adj0_m(m) + d_tps_sw_adj0(n) |
---|
541 | $ *airefi(n)/aire_tot |
---|
542 | d_tps_lw_adj_m(m) = d_tps_lw_adj_m(m) + d_tps_lw_adj(n) |
---|
543 | $ *airefi(n)/aire_tot |
---|
544 | d_tps_lw_adj0_m(m) = d_tps_lw_adj0_m(m) + d_tps_lw_adj0(n) |
---|
545 | $ *airefi(n)/aire_tot |
---|
546 | C Flux a la surface |
---|
547 | srf_sw_ref_m(m) = srf_sw_ref_m(m) + srf_sw_ref(n) |
---|
548 | $ *airefi(n)/aire_tot |
---|
549 | srf_sw_ref0_m(m) = srf_sw_ref0_m(m) + srf_sw_ref0(n) |
---|
550 | $ *airefi(n)/aire_tot |
---|
551 | srf_lw_ref_m(m) = srf_lw_ref_m(m) + srf_lw_ref(n) |
---|
552 | $ *airefi(n)/aire_tot |
---|
553 | srf_lw_ref0_m(m) = srf_lw_ref0_m(m) + srf_lw_ref0(n) |
---|
554 | $ *airefi(n)/aire_tot |
---|
555 | C Forcage ajuste a la surface |
---|
556 | d_srf_sw_adj_m(m) = d_srf_sw_adj_m(m) + d_srf_sw_adj(n) |
---|
557 | $ *airefi(n)/aire_tot |
---|
558 | d_srf_sw_adj0_m(m) = d_srf_sw_adj0_m(m) + d_srf_sw_adj0(n) |
---|
559 | $ *airefi(n)/aire_tot |
---|
560 | d_srf_lw_adj_m(m) = d_srf_lw_adj_m(m) + d_srf_lw_adj(n) |
---|
561 | $ *airefi(n)/aire_tot |
---|
562 | d_srf_lw_adj0_m(m) = d_srf_lw_adj0_m(m) + d_srf_lw_adj0(n) |
---|
563 | $ *airefi(n)/aire_tot |
---|
564 | C Bilan radiatif de la stratosphere |
---|
565 | bilq_ref_m(m) = bilq_ref_m(m) + bilq_ref(n) |
---|
566 | $ *airefi(n)/aire_tot |
---|
567 | bilq_ini_m(m) = bilq_ini_m(m) + bilq_ini(n) |
---|
568 | $ *airefi(n)/aire_tot |
---|
569 | bilq_adj_m(m) = bilq_adj_m(m) + bilq_adj(n) |
---|
570 | $ *airefi(n)/aire_tot |
---|
571 | C |
---|
572 | END DO |
---|
573 | CALL cwstat(ngridmx,d_toa_lw_ini0,airefi,x_ave,x_std,x_min,x_max |
---|
574 | $ ,undef) |
---|
575 | d_toa_lw_ini0_m(m) = x_ave |
---|
576 | |
---|
577 | 99999 CONTINUE |
---|
578 | |
---|
579 | DO m =1, mois |
---|
580 | C Flux au sommet de l'atmosphère |
---|
581 | toa_sw_ref_yr = toa_sw_ref_yr + toa_sw_ref_m(m) |
---|
582 | $ / FLOAT(mois) |
---|
583 | toa_sw_ref0_yr = toa_sw_ref0_yr + toa_sw_ref0_m(m) |
---|
584 | $ / FLOAT(mois) |
---|
585 | toa_lw_ref_yr = toa_lw_ref_yr + toa_lw_ref_m(m) |
---|
586 | $ / FLOAT(mois) |
---|
587 | toa_lw_ref0_yr = toa_lw_ref0_yr + toa_lw_ref0_m(m) |
---|
588 | $ / FLOAT(mois) |
---|
589 | C Forcage initial au sommet de l'atm |
---|
590 | d_toa_sw_ini_yr = d_toa_sw_ini_yr + d_toa_sw_ini_m(m) |
---|
591 | $ / FLOAT(mois) |
---|
592 | d_toa_sw_ini0_yr = d_toa_sw_ini0_yr + d_toa_sw_ini0_m(m) |
---|
593 | $ / FLOAT(mois) |
---|
594 | d_toa_lw_ini_yr = d_toa_lw_ini_yr + d_toa_lw_ini_m(m) |
---|
595 | $ / FLOAT(mois) |
---|
596 | d_toa_lw_ini0_yr = d_toa_lw_ini0_yr + d_toa_lw_ini0_m(m) |
---|
597 | $ / FLOAT(mois) |
---|
598 | C Forcage ajuste au sommet de l'atm |
---|
599 | d_toa_sw_adj_yr = d_toa_sw_adj_yr + d_toa_sw_adj_m(m) |
---|
600 | $ / FLOAT(mois) |
---|
601 | d_toa_sw_adj0_yr = d_toa_sw_adj0_yr + d_toa_sw_adj0_m(m) |
---|
602 | $ / FLOAT(mois) |
---|
603 | d_toa_lw_adj_yr = d_toa_lw_adj_yr + d_toa_lw_adj_m(m) |
---|
604 | $ / FLOAT(mois) |
---|
605 | d_toa_lw_adj0_yr = d_toa_lw_adj0_yr + d_toa_lw_adj0_m(m) |
---|
606 | $ / FLOAT(mois) |
---|
607 | C Flux a la tropopause |
---|
608 | tps_sw_ref_yr = tps_sw_ref_yr + tps_sw_ref_m(m) |
---|
609 | $ / FLOAT(mois) |
---|
610 | tps_sw_ref0_yr = tps_sw_ref0_yr + tps_sw_ref0_m(m) |
---|
611 | $ / FLOAT(mois) |
---|
612 | tps_lw_ref_yr = tps_lw_ref_yr + tps_lw_ref_m(m) |
---|
613 | $ / FLOAT(mois) |
---|
614 | tps_lw_ref0_yr = tps_lw_ref0_yr + tps_lw_ref0_m(m) |
---|
615 | $ / FLOAT(mois) |
---|
616 | C Forcage initial a la tropopause |
---|
617 | d_tps_sw_ini_yr = d_tps_sw_ini_yr + d_tps_sw_ini_m(m) |
---|
618 | $ / FLOAT(mois) |
---|
619 | d_tps_sw_ini0_yr = d_tps_sw_ini0_yr + d_tps_sw_ini0_m(m) |
---|
620 | $ / FLOAT(mois) |
---|
621 | d_tps_lw_ini_yr = d_tps_lw_ini_yr + d_tps_lw_ini_m(m) |
---|
622 | $ / FLOAT(mois) |
---|
623 | d_tps_lw_ini0_yr = d_tps_lw_ini0_yr + d_tps_lw_ini0_m(m) |
---|
624 | $ / FLOAT(mois) |
---|
625 | C Forcage ajuste a la tropopause |
---|
626 | d_tps_sw_adj_yr = d_tps_sw_adj_yr + d_tps_sw_adj_m(m) |
---|
627 | $ / FLOAT(mois) |
---|
628 | d_tps_sw_adj0_yr = d_tps_sw_adj0_yr + d_tps_sw_adj0_m(m) |
---|
629 | $ / FLOAT(mois) |
---|
630 | d_tps_lw_adj_yr = d_tps_lw_adj_yr + d_tps_lw_adj_m(m) |
---|
631 | $ / FLOAT(mois) |
---|
632 | d_tps_lw_adj0_yr = d_tps_lw_adj0_yr + d_tps_lw_adj0_m(m) |
---|
633 | $ / FLOAT(mois) |
---|
634 | C Flux a la surface |
---|
635 | srf_sw_ref_yr = srf_sw_ref_yr + srf_sw_ref_m(m) |
---|
636 | $ / FLOAT(mois) |
---|
637 | srf_sw_ref0_yr = srf_sw_ref0_yr + srf_sw_ref0_m(m) |
---|
638 | $ / FLOAT(mois) |
---|
639 | srf_lw_ref_yr = srf_lw_ref_yr + srf_lw_ref_m(m) |
---|
640 | $ / FLOAT(mois) |
---|
641 | srf_lw_ref0_yr = srf_lw_ref0_yr + srf_lw_ref0_m(m) |
---|
642 | $ / FLOAT(mois) |
---|
643 | C Forcage ajuste a la surface |
---|
644 | d_srf_sw_adj_yr = d_srf_sw_adj_yr + d_srf_sw_adj_m(m) |
---|
645 | $ / FLOAT(mois) |
---|
646 | d_srf_sw_adj0_yr = d_srf_sw_adj0_yr + d_srf_sw_adj0_m(m) |
---|
647 | $ / FLOAT(mois) |
---|
648 | d_srf_lw_adj_yr = d_srf_lw_adj_yr + d_srf_lw_adj_m(m) |
---|
649 | $ / FLOAT(mois) |
---|
650 | d_srf_lw_adj0_yr = d_srf_lw_adj0_yr + d_srf_lw_adj0_m(m) |
---|
651 | $ / FLOAT(mois) |
---|
652 | END DO |
---|
653 | ! |
---|
654 | ! Diagnostiques en moyenne mensuelle |
---|
655 | ! |
---|
656 | 8001 FORMAT (1x,A10,12(F13.3)) |
---|
657 | WRITE (*,*) 'Stratosphrere radiative budget' |
---|
658 | WRITE (*,8001) 'Ref :', |
---|
659 | $ (bilq_ref_m(m),m=1,mois) |
---|
660 | WRITE (*,8001) 'Ini :', |
---|
661 | $ (bilq_ini_m(m),m=1,mois) |
---|
662 | WRITE (*,8001) 'Adj :', |
---|
663 | $ (bilq_adj_m(m),m=1,mois) |
---|
664 | WRITE (*,8001) 'Diff :', |
---|
665 | $ (bilq_adj_m(m)-bilq_ref_m(m),m=1,mois) |
---|
666 | ! |
---|
667 | WRITE (*,*) 'Forcing, adjusted, all sky' |
---|
668 | WRITE (*,8001) 'TOA SW ', |
---|
669 | $ (d_toa_sw_adj_m(m),m=1,mois) |
---|
670 | WRITE (*,8001) 'TOA LW ', |
---|
671 | $ (d_toa_lw_adj_m(m),m=1,mois) |
---|
672 | WRITE (*,8001) 'TOA NET', |
---|
673 | $ ((d_toa_sw_adj_m(m)+d_toa_lw_adj_m(m)),m=1,mois) |
---|
674 | WRITE (*,8001) 'TPS SW ', |
---|
675 | $ (d_tps_sw_adj_m(m),m=1,mois) |
---|
676 | WRITE (*,8001) 'TPS LW ', |
---|
677 | $ (d_tps_lw_adj_m(m),m=1,mois) |
---|
678 | WRITE (*,8001) 'TPS NET', |
---|
679 | $ ((d_tps_sw_adj_m(m)+d_tps_lw_adj_m(m)),m=1,mois) |
---|
680 | WRITE (*,8001) 'SRF SW ', |
---|
681 | $ (d_srf_sw_adj_m(m),m=1,mois) |
---|
682 | WRITE (*,8001) 'SRF LW ', |
---|
683 | $ (d_srf_lw_adj_m(m),m=1,mois) |
---|
684 | WRITE (*,8001) 'SRF NET', |
---|
685 | $ ((d_srf_sw_adj_m(m)+d_srf_lw_adj_m(m)),m=1,mois) |
---|
686 | ! |
---|
687 | ! Diagnostiques en moyenne annuelle |
---|
688 | ! |
---|
689 | 9000 FORMAT (1x,A18,3(A15)) |
---|
690 | C 9001 FORMAT (1x,3A9,3(1pEN15.6)) |
---|
691 | 9001 FORMAT (1x,A9,A5,A9,3(F13.3)) |
---|
692 | |
---|
693 | WRITE (*,*) |
---|
694 | WRITE (*,9000) ' ','SW','LW','NET' |
---|
695 | WRITE (*,9001) 'Bilan','TOA','All sky' |
---|
696 | $ ,toa_sw_ref_yr, toa_lw_ref_yr, toa_sw_ref_yr + toa_lw_ref_yr |
---|
697 | WRITE (*,9001) 'Bilan','TPS','All sky' |
---|
698 | $ ,tps_sw_ref_yr, tps_lw_ref_yr, tps_sw_ref_yr + tps_lw_ref_yr |
---|
699 | WRITE (*,9001) 'Bilan','SRF','All sky' |
---|
700 | $ ,srf_sw_ref_yr, srf_lw_ref_yr, srf_sw_ref_yr + srf_lw_ref_yr |
---|
701 | WRITE (*,*) |
---|
702 | WRITE (*,9001) 'Ini Forc','TOA','All sky', d_toa_sw_ini_yr |
---|
703 | $ , d_toa_lw_ini_yr, d_toa_sw_ini_yr + d_toa_lw_ini_yr |
---|
704 | WRITE (*,9001) 'Adj Forc','TOA','All sky', d_toa_sw_adj_yr |
---|
705 | $ , d_toa_lw_adj_yr, d_toa_sw_adj_yr + d_toa_lw_adj_yr |
---|
706 | WRITE (*,*) |
---|
707 | WRITE (*,9001) 'Ini Forc','TPS','All sky', d_tps_sw_ini_yr |
---|
708 | $ , d_tps_lw_ini_yr, d_tps_sw_ini_yr + d_tps_lw_ini_yr |
---|
709 | WRITE (*,9001) 'Adj Forc','TPS','All sky', d_tps_sw_adj_yr |
---|
710 | $ , d_tps_lw_adj_yr, d_tps_sw_adj_yr + d_tps_lw_adj_yr |
---|
711 | WRITE (*,*) |
---|
712 | WRITE (*,9001) 'Adj Forc','SRF','All sky', d_srf_sw_adj_yr |
---|
713 | $ , d_srf_lw_adj_yr, d_srf_sw_adj_yr + d_srf_lw_adj_yr |
---|
714 | |
---|
715 | WRITE (*,*) '-----------------------------' |
---|
716 | WRITE (*,9001) 'Bilan','TOA','Clr sky' |
---|
717 | $ ,toa_sw_ref0_yr, toa_lw_ref0_yr, toa_sw_ref0_yr + toa_lw_ref0_yr |
---|
718 | WRITE (*,9001) 'Bilan','TPS','Clr sky' |
---|
719 | $ ,tps_sw_ref0_yr, tps_lw_ref0_yr, tps_sw_ref0_yr + tps_lw_ref0_yr |
---|
720 | WRITE (*,9001) 'Bilan','SRF','Clr sky' |
---|
721 | $ ,srf_sw_ref0_yr, srf_lw_ref0_yr, srf_sw_ref0_yr + srf_lw_ref0_yr |
---|
722 | WRITE (*,*) |
---|
723 | WRITE (*,9001) 'Ini Forc','TOA','Clr sky', d_toa_sw_ini0_yr |
---|
724 | $ , d_toa_lw_ini0_yr, d_toa_sw_ini0_yr + d_toa_lw_ini0_yr |
---|
725 | WRITE (*,9001) 'Adj Forc','TOA','Clr sky', d_toa_sw_adj0_yr |
---|
726 | $ , d_toa_lw_adj0_yr, d_toa_sw_adj0_yr + d_toa_lw_adj0_yr |
---|
727 | WRITE (*,*) |
---|
728 | WRITE (*,9001) 'Ini Forc','TPS','Clr sky', d_tps_sw_ini0_yr |
---|
729 | $ , d_tps_lw_ini0_yr, d_tps_sw_ini0_yr + d_tps_lw_ini0_yr |
---|
730 | WRITE (*,9001) 'Adj Forc','TPS','Clr sky', d_tps_sw_adj0_yr |
---|
731 | $ , d_tps_lw_adj0_yr, d_tps_sw_adj0_yr + d_tps_lw_adj0_yr |
---|
732 | WRITE (*,*) |
---|
733 | WRITE (*,9001) 'Adj Forc','SRF','Clr sky', d_srf_sw_adj0_yr |
---|
734 | $ , d_srf_lw_adj0_yr, d_srf_sw_adj0_yr + d_srf_lw_adj0_yr |
---|
735 | |
---|
736 | c |
---|
737 | STOP |
---|
738 | END |
---|
739 | C |
---|