[1547] | 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 |
---|