Changeset 952
- Timestamp:
- Apr 18, 2008, 6:20:30 PM (17 years ago)
- Location:
- LMDZ4/trunk/libf/phylmd
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/trunk/libf/phylmd/phys_state_var_mod.F90
r942 r952 7 7 ! Declaration des variables 8 8 USE dimphy 9 INTEGER, PARAMETER :: nlevSTD=17 10 INTEGER, PARAMETER :: nout=3 11 INTEGER, PARAMETER :: napisccp=1 9 12 REAL, SAVE :: dtime, co2_ppm_etat0, solaire_etat0 10 13 REAL, ALLOCATABLE, SAVE :: rlat(:), rlon(:), pctsrf(:,:) … … 32 35 REAL, ALLOCATABLE, SAVE :: ema_work1(:,:), ema_work2(:,:) 33 36 REAL, ALLOCATABLE, SAVE :: entr_therm(:,:), fm_therm(:,:) 37 REAL, ALLOCATABLE, SAVE :: detr_therm(:,:) 38 !IM 150408 39 ! pour phsystoke avec thermiques 40 REAL,ALLOCATABLE,SAVE :: clwcon0th(:,:),rnebcon0th(:,:) 41 ! radiation outputs 42 REAL,ALLOCATABLE,SAVE :: swdn0(:,:), swdn(:,:) 43 REAL,ALLOCATABLE,SAVE :: swup0(:,:), swup(:,:) 44 REAL,ALLOCATABLE,SAVE :: SWdn200clr(:), SWdn200(:) 45 REAL,ALLOCATABLE,SAVE :: SWup200clr(:), SWup200(:) 46 REAL,ALLOCATABLE,SAVE :: lwdn0(:,:), lwdn(:,:) 47 REAL,ALLOCATABLE,SAVE :: lwup0(:,:), lwup(:,:) 48 REAL,ALLOCATABLE,SAVE :: LWdn200clr(:), LWdn200(:) 49 REAL,ALLOCATABLE,SAVE :: LWup200clr(:), LWup200(:) 50 REAL,ALLOCATABLE,SAVE :: LWdnTOA(:), LWdnTOAclr(:) 51 ! pressure level 52 REAL,ALLOCATABLE,SAVE :: tsumSTD(:,:,:) 53 REAL,ALLOCATABLE,SAVE :: usumSTD(:,:,:), vsumSTD(:,:,:) 54 REAL,ALLOCATABLE,SAVE :: wsumSTD(:,:,:), phisumSTD(:,:,:) 55 REAL,ALLOCATABLE,SAVE :: qsumSTD(:,:,:), rhsumSTD(:,:,:) 56 REAL,ALLOCATABLE,SAVE :: tnondef(:,:,:) 57 REAL,ALLOCATABLE,SAVE :: uvsumSTD(:,:,:) 58 REAL,ALLOCATABLE,SAVE :: vqsumSTD(:,:,:) 59 REAL,ALLOCATABLE,SAVE :: vTsumSTD(:,:,:) 60 REAL,ALLOCATABLE,SAVE :: wqsumSTD(:,:,:) 61 REAL,ALLOCATABLE,SAVE :: vphisumSTD(:,:,:) 62 REAL,ALLOCATABLE,SAVE :: wTsumSTD(:,:,:) 63 REAL,ALLOCATABLE,SAVE :: u2sumSTD(:,:,:) 64 REAL,ALLOCATABLE,SAVE :: v2sumSTD(:,:,:) 65 REAL,ALLOCATABLE,SAVE :: T2sumSTD(:,:,:) 66 INTEGER,ALLOCATABLE,SAVE :: seed_old(:,:) 67 REAL,ALLOCATABLE,SAVE :: zuthe(:),zvthe(:) 68 REAL,ALLOCATABLE,SAVE :: alb_neig(:) 69 !cloud base mass flux 70 REAL,ALLOCATABLE,SAVE :: ema_workcbmf(:), ema_cbmf(:) 71 !cloud base pressure & cloud top pressure 72 REAL,ALLOCATABLE,SAVE :: ema_pcb(:), ema_pct(:) 73 REAL,ALLOCATABLE,SAVE :: Ma(:,:) ! undilute upward mass flux 74 REAL,ALLOCATABLE,SAVE :: qcondc(:,:) ! in-cld water content from convect 75 REAL,ALLOCATABLE,SAVE :: wd(:) ! sb 76 REAL,ALLOCATABLE,SAVE :: sigd(:) 77 ! 78 REAL,ALLOCATABLE,SAVE :: cin(:) 79 ! ftd : differential heating between wake and environment 80 REAL,ALLOCATABLE,SAVE :: ftd(:,:) 81 ! fqd : differential moistening between wake and environment 82 REAL,ALLOCATABLE,SAVE :: fqd(:,:) 83 !34EK 84 ! -- Variables de controle de ALE et ALP 85 !ALE : Energie disponible pour soulevement : utilisee par la 86 ! convection d'Emanuel pour le declenchement et la regulation 87 REAL,ALLOCATABLE,SAVE :: ALE(:) 88 !ALP : Puissance disponible pour soulevement 89 REAL,ALLOCATABLE,SAVE :: ALP(:) 90 ! 91 ! nouvelles variables pour le couplage convection-couche limite 92 REAL,ALLOCATABLE,SAVE :: Ale_bl(:) 93 REAL,ALLOCATABLE,SAVE :: Alp_bl(:) 94 INTEGER,ALLOCATABLE,SAVE :: lalim_conv(:) 95 REAL,ALLOCATABLE,SAVE :: wght_th(:,:) 96 ! 97 ! variables de la wake 98 ! wake_deltat : ecart de temperature avec la zone non perturbee 99 ! wake_deltaq : ecart d'humidite avec la zone non perturbee 100 ! wake_Cstar : vitesse d'etalement de la poche 101 ! wake_s : fraction surfacique occupee par la poche froide 102 ! wake_fip : Gust Front Impinging power - ALP 103 ! dt_wake, dq_wake: LS tendencies due to wake 104 REAL,ALLOCATABLE,SAVE :: wake_deltat(:,:) 105 REAL,ALLOCATABLE,SAVE :: wake_deltaq(:,:) 106 REAL,ALLOCATABLE,SAVE :: wake_Cstar(:) 107 REAL,ALLOCATABLE,SAVE :: wake_s(:) 108 REAL,ALLOCATABLE,SAVE :: wake_fip(:) 109 REAL,ALLOCATABLE,SAVE :: dt_wake(:,:) 110 REAL,ALLOCATABLE,SAVE :: dq_wake(:,:) 111 ! 112 ! pfrac_impa : Produits des coefs lessivage impaction 113 ! pfrac_nucl : Produits des coefs lessivage nucleation 114 ! pfrac_1nucl: Produits des coefs lessi nucl (alpha = 1) 115 REAL,ALLOCATABLE,SAVE :: pfrac_impa(:,:), pfrac_nucl(:,:) 116 REAL,ALLOCATABLE,SAVE :: pfrac_1nucl(:,:) 117 ! 118 REAL,ALLOCATABLE,SAVE :: total_rain(:), nday_rain(:) 119 REAL,ALLOCATABLE,SAVE :: paire_ter(:) 120 ! albsol1: albedo du sol total pour SW visible 121 ! albsol2: albedo du sol total pour SW proche IR 122 REAL,ALLOCATABLE,SAVE :: albsol1(:), albsol2(:) 123 REAL,ALLOCATABLE,SAVE :: wo(:,:) 124 ! 125 ! heat : chauffage solaire 126 ! heat0: chauffage solaire ciel clair 127 ! cool : refroidissement infrarouge 128 ! cool0 : refroidissement infrarouge ciel clair 129 ! sollwdown : downward LW flux at surface 130 ! sollwdownclr : downward CS LW flux at surface 131 ! toplwdown : downward CS LW flux at TOA 132 ! toplwdownclr : downward CS LW flux at TOA 133 REAL,ALLOCATABLE,SAVE :: clwcon0(:,:),rnebcon0(:,:) 134 REAL,ALLOCATABLE,SAVE :: heat(:,:) 135 REAL,ALLOCATABLE,SAVE :: heat0(:,:) 136 REAL,ALLOCATABLE,SAVE :: cool(:,:) 137 REAL,ALLOCATABLE,SAVE :: cool0(:,:) 138 REAL,ALLOCATABLE,SAVE :: topsw(:), toplw(:) 139 REAL,ALLOCATABLE,SAVE :: sollwdown(:) 140 REAL,ALLOCATABLE,SAVE :: sollwdownclr(:) 141 REAL,ALLOCATABLE,SAVE :: toplwdown(:) 142 REAL,ALLOCATABLE,SAVE :: toplwdownclr(:) 143 REAL,ALLOCATABLE,SAVE :: topsw0(:),toplw0(:),solsw0(:),sollw0(:) 144 REAL,ALLOCATABLE,SAVE :: albpla(:) 145 ! pbase : cloud base pressure 146 ! bbase : cloud base buoyancy 147 REAL,ALLOCATABLE,SAVE :: cape(:) 148 REAL,ALLOCATABLE,SAVE :: pbase(:) 149 REAL,ALLOCATABLE,SAVE :: bbase(:) 150 ! 151 REAL,SAVE,ALLOCATABLE :: zqasc(:,:) 152 INTEGER,ALLOCATABLE,SAVE :: ibas_con(:), itop_con(:) 153 REAL,SAVE,ALLOCATABLE :: rain_con(:) 154 REAL,SAVE,ALLOCATABLE :: snow_con(:) 155 ! 156 ! sulfate_pi : SO4 aerosol concentration [ug/m3] (pre-industrial value) 157 158 REAL,SAVE,ALLOCATABLE :: sulfate_pi(:, :) 159 REAL,SAVE,ALLOCATABLE :: rlonPOS(:) 160 REAL,SAVE,ALLOCATABLE :: newsst(:) 161 REAL,SAVE,ALLOCATABLE :: u10m(:,:), v10m(:,:) 162 ! 163 ! ok_ade=T -ADE=topswad-topsw 164 ! ok_aie=T -> 165 ! ok_ade=T -AIE=topswai-topswad 166 ! ok_ade=F -AIE=topswai-topsw 167 ! 168 !topswad, solswad : Aerosol direct effect 169 REAL,SAVE,ALLOCATABLE :: topswad(:), solswad(:) 170 !topswai, solswai : Aerosol indirect effect 171 REAL,SAVE,ALLOCATABLE :: topswai(:), solswai(:) 172 #ifdef INCA_AER 173 #ifdef CPP_COUPLE 174 ! topswad_inca, solswad_inca : Aerosol direct effect 175 REAL,SAVE,ALLOCATABLE :: topswad_inca(:), solswad_inca(:) 176 ! topswad0_inca, solswad0_inca : Aerosol direct effect 177 REAL,SAVE,ALLOCATABLE :: topswad0_inca(:), solswad0_inca(:) 178 !topswai_inca, solswai_inca : Aerosol indirect effect 179 REAL,SAVE,ALLOCATABLE :: topswai_inca(:), solswai_inca(:) 180 REAL,SAVE,ALLOCATABLE :: topsw_inca(:,:), solsw_inca(:,:) 181 REAL,SAVE,ALLOCATABLE :: topsw0_inca(:,:), solsw0_inca(:,:) 182 REAL,SAVE,ALLOCATABLE :: tau_inca(:,:,:,:) 183 REAL,SAVE,ALLOCATABLE :: piz_inca(:,:,:,:) 184 REAL,SAVE,ALLOCATABLE :: cg_inca(:,:,:,:) 185 REAL,SAVE,ALLOCATABLE :: ccm(:,:,:) 186 #endif 187 #endif 188 REAL,SAVE,ALLOCATABLE :: tau_ae(:,:,:), piz_ae(:,:,:) 189 REAL,SAVE,ALLOCATABLE :: cg_ae(:,:,:) 190 34 191 CONTAINS 35 192 … … 40 197 #include "indicesol.h" 41 198 42 ALLOCATE( rlat(klon)) 43 ALLOCATE( rlon(klon)) 44 ALLOCATE( pctsrf(klon,nbsrf)) 45 ALLOCATE( ftsol(klon,nbsrf)) 46 ALLOCATE( falb1(klon,nbsrf)) 47 ALLOCATE( falb2(klon,nbsrf)) 48 ALLOCATE( rain_fall(klon) ) 49 ALLOCATE( snow_fall(klon) ) 199 ALLOCATE(rlat(klon), rlon(klon)) 200 ALLOCATE(pctsrf(klon,nbsrf)) 201 ALLOCATE(ftsol(klon,nbsrf)) 202 ALLOCATE(falb1(klon,nbsrf)) 203 ALLOCATE(falb2(klon,nbsrf)) 204 ALLOCATE(rain_fall(klon)) 205 ALLOCATE(snow_fall(klon)) 50 206 ALLOCATE(solsw(klon), sollw(klon)) 51 ALLOCATE( 52 ALLOCATE( zmea(klon), zstd(klon), zsig(klon), zgam(klon))53 ALLOCATE( zthe(klon), zpic(klon), zval(klon))54 55 ALLOCATE( 56 ALLOCATE( 57 ALLOCATE( 58 ALLOCATE( 207 ALLOCATE(radsol(klon)) 208 ALLOCATE(zmea(klon), zstd(klon), zsig(klon), zgam(klon)) 209 ALLOCATE(zthe(klon), zpic(klon), zval(klon)) 210 211 ALLOCATE(rugoro(klon)) 212 ALLOCATE(t_ancien(klon,klev), q_ancien(klon,klev)) 213 ALLOCATE(clwcon(klon,klev),rnebcon(klon,klev)) 214 ALLOCATE(ratqs(klon,klev)) 59 215 ALLOCATE(pbl_tke(klon,klev+1,nbsrf)) 60 216 ALLOCATE(zmax0(klon), f0(klon)) 61 217 ALLOCATE(ema_work1(klon,klev), ema_work2(klon,klev)) 62 218 ALLOCATE(entr_therm(klon,klev), fm_therm(klon,klev+1)) 219 ALLOCATE(detr_therm(klon,klev)) 220 ! pour phsystoke avec thermiques 221 ALLOCATE(clwcon0th(klon,klev),rnebcon0th(klon,klev)) 222 ! radiation outputs 223 ALLOCATE(swdn0(klon,klevp1), swdn(klon,klevp1)) 224 ALLOCATE(swup0(klon,klevp1), swup(klon,klevp1)) 225 ALLOCATE(lwdn0(klon,klevp1), lwdn(klon,klevp1)) 226 ALLOCATE(lwup0(klon,klevp1), lwup(klon,klevp1)) 227 ALLOCATE(SWdn200clr(klon), SWdn200(klon)) 228 ALLOCATE(SWup200clr(klon), SWup200(klon)) 229 ALLOCATE(LWdn200clr(klon), LWdn200(klon)) 230 ALLOCATE(LWup200clr(klon), LWup200(klon)) 231 ALLOCATE(LWdnTOA(klon), LWdnTOAclr(klon)) 232 ! pressure level 233 ALLOCATE(tsumSTD(klon,nlevSTD,nout)) 234 ALLOCATE(usumSTD(klon,nlevSTD,nout), vsumSTD(klon,nlevSTD,nout)) 235 ALLOCATE(wsumSTD(klon,nlevSTD,nout), phisumSTD(klon,nlevSTD,nout)) 236 ALLOCATE(qsumSTD(klon,nlevSTD,nout), rhsumSTD(klon,nlevSTD,nout)) 237 ALLOCATE(tnondef(klon,nlevSTD,nout)) 238 ALLOCATE(uvsumSTD(klon,nlevSTD,nout)) 239 ALLOCATE(vqsumSTD(klon,nlevSTD,nout)) 240 ALLOCATE(vTsumSTD(klon,nlevSTD,nout)) 241 ALLOCATE(wqsumSTD(klon,nlevSTD,nout)) 242 ALLOCATE(vphisumSTD(klon,nlevSTD,nout)) 243 ALLOCATE(wTsumSTD(klon,nlevSTD,nout)) 244 ALLOCATE(u2sumSTD(klon,nlevSTD,nout)) 245 ALLOCATE(v2sumSTD(klon,nlevSTD,nout)) 246 ALLOCATE(T2sumSTD(klon,nlevSTD,nout)) 247 ALLOCATE(seed_old(klon,napisccp)) 248 ALLOCATE(zuthe(klon),zvthe(klon)) 249 ALLOCATE(alb_neig(klon)) 250 !cloud base mass flux 251 ALLOCATE(ema_workcbmf(klon), ema_cbmf(klon)) 252 !cloud base pressure & cloud top pressure 253 ALLOCATE(ema_pcb(klon), ema_pct(klon)) 254 ! 255 ALLOCATE(Ma(klon,klev)) 256 ALLOCATE(qcondc(klon,klev)) 257 ALLOCATE(wd(klon)) 258 ALLOCATE(sigd(klon)) 259 ALLOCATE(cin(klon), ALE(klon), ALP(klon)) 260 ALLOCATE(ftd(klon,klev), fqd(klon,klev)) 261 ALLOCATE(Ale_bl(klon)) 262 ALLOCATE(Alp_bl(klon)) 263 ALLOCATE(lalim_conv(klon)) 264 ALLOCATE(wght_th(klon,klev)) 265 ALLOCATE(wake_deltat(klon,klev), wake_deltaq(klon,klev)) 266 ALLOCATE(wake_Cstar(klon), wake_s(klon), wake_fip(klon)) 267 ALLOCATE(dt_wake(klon,klev), dq_wake(klon,klev)) 268 ALLOCATE(pfrac_impa(klon,klev), pfrac_nucl(klon,klev)) 269 ALLOCATE(pfrac_1nucl(klon,klev)) 270 ALLOCATE(total_rain(klon), nday_rain(klon)) 271 ALLOCATE(paire_ter(klon)) 272 ALLOCATE(albsol1(klon), albsol2(klon)) 273 ALLOCATE(wo(klon,klev)) 274 ALLOCATE(clwcon0(klon,klev),rnebcon0(klon,klev)) 275 ALLOCATE(heat(klon,klev), heat0(klon,klev)) 276 ALLOCATE(cool(klon,klev), cool0(klon,klev)) 277 ALLOCATE(topsw(klon), toplw(klon)) 278 ALLOCATE(sollwdown(klon), sollwdownclr(klon)) 279 ALLOCATE(toplwdown(klon), toplwdownclr(klon)) 280 ALLOCATE(topsw0(klon),toplw0(klon),solsw0(klon),sollw0(klon)) 281 ALLOCATE(albpla(klon)) 282 ALLOCATE(cape(klon)) 283 ALLOCATE(pbase(klon),bbase(klon)) 284 ALLOCATE(zqasc(klon,klev)) 285 ALLOCATE(ibas_con(klon), itop_con(klon)) 286 ALLOCATE(rain_con(klon), snow_con(klon)) 287 ! 288 ALLOCATE(sulfate_pi(klon, klev)) 289 ALLOCATE(rlonPOS(klon)) 290 ALLOCATE(newsst(klon)) 291 ALLOCATE(u10m(klon,nbsrf), v10m(klon,nbsrf)) 292 ALLOCATE(topswad(klon), solswad(klon)) 293 ALLOCATE(topswai(klon), solswai(klon)) 294 #ifdef INCA_AER 295 #ifdef CPP_COUPLE 296 ALLOCATE(topswad_inca(klon), solswad_inca(klon)) 297 ALLOCATE(topswad0_inca(klon), solswad0_inca(klon)) 298 ALLOCATE(topswai_inca(klon), solswai_inca(klon)) 299 ALLOCATE(topsw_inca(klon,9), solsw_inca(klon,9)) 300 ALLOCATE(topsw0_inca(klon,9), solsw0_inca(klon,9)) 301 ALLOCATE(tau_inca(klon,klev,9,2)) 302 ALLOCATE(piz_inca(klon,klev,9,2)) 303 ALLOCATE(cg_inca(klon,klev,9,2)) 304 ALLOCATE(ccm(klon,klev,2)) 305 #endif 306 #endif 307 ALLOCATE(tau_ae(klon,klev,2), piz_ae(klon,klev,2)) 308 ALLOCATE(cg_ae(klon,klev,2)) 63 309 64 310 END SUBROUTINE phys_state_var_init … … 69 315 IMPLICIT NONE 70 316 #include "indicesol.h" 71 ! deallocate(t_seri,q_seri,ql_seri,qs_seri) 72 73 deallocate( rlat, rlon, pctsrf, ftsol, falb1, falb2 ) 74 deallocate( rain_fall, snow_fall, solsw, sollw, radsol ) 75 deallocate( zmea, zstd, zsig, zgam ) 76 deallocate( zthe, zpic, zval ) 77 deallocate( rugoro, t_ancien, q_ancien, clwcon, rnebcon ) 78 deallocate( ratqs, pbl_tke ) 79 deallocate( zmax0, f0 ) 80 deallocate( ema_work1, ema_work2 ) 81 deallocate( entr_therm, fm_therm ) 82 317 318 deallocate(rlat, rlon, pctsrf, ftsol, falb1, falb2) 319 deallocate(rain_fall, snow_fall, solsw, sollw, radsol) 320 deallocate(zmea, zstd, zsig, zgam) 321 deallocate(zthe, zpic, zval) 322 deallocate(rugoro, t_ancien, q_ancien, clwcon, rnebcon) 323 deallocate(ratqs, pbl_tke) 324 deallocate(zmax0, f0) 325 deallocate(ema_work1, ema_work2) 326 deallocate(entr_therm, fm_therm) 327 deallocate(detr_therm) 328 deallocate(clwcon0th, rnebcon0th) 329 ! radiation outputs 330 deallocate(swdn0, swdn) 331 deallocate(swup0, swup) 332 deallocate(lwdn0, lwdn) 333 deallocate(lwup0, lwup) 334 deallocate(SWdn200clr, SWdn200) 335 deallocate(SWup200clr, SWup200) 336 deallocate(LWdn200clr, LWdn200) 337 deallocate(LWup200clr, LWup200) 338 deallocate(LWdnTOA, LWdnTOAclr) 339 ! pressure level 340 deallocate(tsumSTD) 341 deallocate(usumSTD, vsumSTD) 342 deallocate(wsumSTD, phisumSTD) 343 deallocate(tnondef) 344 deallocate(uvsumSTD) 345 deallocate(vqsumSTD) 346 deallocate(vTsumSTD) 347 deallocate(wqsumSTD) 348 deallocate(vphisumSTD) 349 deallocate(wTsumSTD) 350 deallocate(u2sumSTD) 351 deallocate(v2sumSTD) 352 deallocate(T2sumSTD) 353 deallocate(seed_old) 354 deallocate(zuthe, zvthe) 355 deallocate(alb_neig) 356 deallocate(ema_workcbmf, ema_cbmf) 357 deallocate(ema_pcb, ema_pct) 358 deallocate(Ma, qcondc) 359 deallocate(wd, sigd) 360 deallocate(cin, ALE, ALP) 361 deallocate(ftd, fqd) 362 deallocate(Ale_bl, Alp_bl) 363 deallocate(lalim_conv, wght_th) 364 deallocate(wake_deltat, wake_deltaq) 365 deallocate(wake_Cstar, wake_s, wake_fip) 366 deallocate(dt_wake, dq_wake) 367 deallocate(pfrac_impa, pfrac_nucl) 368 deallocate(pfrac_1nucl) 369 deallocate(total_rain, nday_rain) 370 deallocate(paire_ter) 371 deallocate(albsol1, albsol2) 372 deallocate(wo) 373 deallocate(clwcon0,rnebcon0) 374 deallocate(heat, heat0) 375 deallocate(cool, cool0) 376 deallocate(topsw, toplw) 377 deallocate(sollwdown, sollwdownclr) 378 deallocate(toplwdown, toplwdownclr) 379 deallocate(topsw0,toplw0,solsw0,sollw0) 380 deallocate(albpla) 381 deallocate(cape) 382 deallocate(pbase,bbase) 383 deallocate(zqasc) 384 deallocate(ibas_con, itop_con) 385 deallocate(rain_con, snow_con) 386 ! 387 deallocate(sulfate_pi) 388 deallocate(rlonPOS) 389 deallocate(newsst) 390 deallocate(u10m, v10m) 391 deallocate(topswad, solswad) 392 deallocate(topswai, solswai) 393 #ifdef INCA_AER 394 #ifdef CPP_COUPLE 395 deallocate(topswad_inca, solswad_inca) 396 deallocate(topswad0_inca, solswad0_inca) 397 deallocate(topswai_inca, solswai_inca) 398 deallocate(topsw_inca, solsw_inca) 399 deallocate(topsw0_inca, solsw0_inca) 400 deallocate(tau_inca) 401 deallocate(piz_inca) 402 deallocate(cg_inca) 403 deallocate(ccm) 404 #endif 405 #endif 406 deallocate(tau_ae, piz_ae) 407 deallocate(cg_ae) 408 83 409 END SUBROUTINE phys_state_var_end 84 410 -
LMDZ4/trunk/libf/phylmd/physiq.F
r950 r952 171 171 PARAMETER (ok_region=.FALSE.) 172 172 c====================================================================== 173 c pour phsystoke avec thermiques174 real,allocatable,save :: clwcon0th(:,:),rnebcon0th(:,:)175 c$OMP THREADPRIVATE(clwcon0th,rnebcon0th)176 177 173 real weak_inversion(klon),dthmin(klon) 178 174 real seuil_inversion … … 254 250 cym#include "raddim.h" 255 251 c 256 257 REAL,allocatable,save :: swdn0(:,:), swdn(:,:)258 REAL,allocatable,save :: swup0(:,:), swup(:,:)259 c$OMP THREADPRIVATE(swdn0 , swdn, swup0, swup)260 c261 REAL,allocatable,save :: SWdn200clr(:), SWdn200(:)262 REAL,allocatable,save :: SWup200clr(:), SWup200(:)263 c$OMP THREADPRIVATE(SWdn200clr, SWdn200, SWup200clr, SWup200)264 c265 REAL,allocatable,save :: lwdn0(:,:), lwdn(:,:)266 REAL,allocatable,save :: lwup0(:,:), lwup(:,:)267 c$OMP THREADPRIVATE(lwdn0 , lwdn, lwup0, lwup)268 c269 REAL,allocatable,save :: LWdn200clr(:), LWdn200(:)270 REAL,allocatable,save :: LWup200clr(:), LWup200(:)271 c$OMP THREADPRIVATE(LWdn200clr, LWdn200, LWup200clr, LWup200)272 c273 REAL,allocatable,save :: LWdnTOA(:), LWdnTOAclr(:)274 c$OMP THREADPRIVATE(LWdnTOA, LWdnTOAclr)275 252 c 276 253 cIM Amip2 277 254 c variables a une pression donnee 278 255 c 279 integer nlevSTD280 PARAMETER(nlevSTD=17)281 256 real rlevSTD(nlevSTD) 282 257 DATA rlevSTD/100000., 92500., 85000., 70000., … … 284 259 .15000., 10000., 7000., 5000., 3000., 2000., 1000./ 285 260 SAVE rlevstd 286 c$OMP THREADPRIVATE(rlevSTD)287 261 CHARACTER*4 clevSTD(nlevSTD) 288 262 DATA clevSTD/'1000','925 ','850 ','700 ','600 ', … … 290 264 .'70 ','50 ','30 ','20 ','10 '/ 291 265 SAVE clevSTD 292 c$OMP THREADPRIVATE(clevSTD)293 266 c 294 267 CHARACTER*4 bb2 … … 301 274 c 302 275 c nout : niveau de output des variables a une pression donnee 303 INTEGER nout304 PARAMETER(nout=3) !nout=1 : day; =2 : mth; =3 : NMC305 c306 REAL,SAVE,ALLOCATABLE :: tsumSTD(:,:,:)307 REAL,SAVE,ALLOCATABLE :: usumSTD(:,:,:), vsumSTD(:,:,:)308 REAL,SAVE,ALLOCATABLE :: wsumSTD(:,:,:), phisumSTD(:,:,:)309 REAL,SAVE,ALLOCATABLE :: qsumSTD(:,:,:), rhsumSTD(:,:,:)310 c$OMP THREADPRIVATE(tsumSTD, usumSTD, vsumSTD, wsumSTD, phisumSTD)311 c$OMP THREADPRIVATE(qsumSTD, rhsumSTD)312 c313 276 logical oknondef(klon,nlevSTD,nout) 314 real,SAVE,ALLOCATABLE :: tnondef(:,:,:)315 c$OMP THREADPRIVATE(tnondef)316 277 c 317 278 c les produits uvSTD, vqSTD, .., T2STD sont calcules … … 323 284 real vTSTD(klon,nlevSTD) 324 285 real wqSTD(klon,nlevSTD) 325 c326 real,save,allocatable :: uvsumSTD(:,:,:)327 real,save,allocatable :: vqsumSTD(:,:,:)328 real,save,allocatable :: vTsumSTD(:,:,:)329 real,save,allocatable :: wqsumSTD(:,:,:)330 286 c 331 287 real vphiSTD(klon,nlevSTD) … … 334 290 real v2STD(klon,nlevSTD) 335 291 real T2STD(klon,nlevSTD) 336 c337 real,save,allocatable :: vphisumSTD(:,:,:)338 real,save,allocatable :: wTsumSTD(:,:,:)339 real,save,allocatable :: u2sumSTD(:,:,:)340 real,save,allocatable :: v2sumSTD(:,:,:)341 real,save,allocatable :: T2sumSTD(:,:,:)342 c343 c$OMP THREADPRIVATE(uvsumSTD, vqsumSTD, vTsumSTD, wqsumSTD)344 c$OMP THREADPRIVATE(vphisumSTD, wTsumSTD, u2sumSTD, v2sumSTD, T2sumSTD)345 346 cMI Amip2347 292 c 348 293 #include "radepsi.h" … … 393 338 ! PARAMETER(isccppas=6) !appel du simulateurs tous les 6pas de temps de la physique 394 339 ! !i.e. toutes les 3 heures 395 INTEGER n, napisccp 396 c PARAMETER(napisccp=3) 397 PARAMETER(napisccp=1) 340 INTEGER n 398 341 INTEGER ifreq_isccp(napisccp), freqin_pdt(napisccp) 399 342 DATA ifreq_isccp/3/ … … 414 357 REAL t1, aa 415 358 REAL seed_re(klon,napisccp) 416 INTEGER,ALLOCATABLE,SAVE :: seed_old(:,:)417 c$OMP THREADPRIVATE(seed_old)418 359 cym !!!! A voir plus tard 419 360 cym INTEGER iphy(iim,jjmp1) … … 488 429 REAL o500(klon) 489 430 c 490 cIM: nbregdyn = nbre regions pour calculs statistiques sur output du ISCCP 491 cIM: dynamiques 492 INTEGER nreg, nbregdyn 493 PARAMETER(nbregdyn=5) 494 495 INTEGER,ALLOCATABLE,SAVE :: pct_ocean(:,:) 496 c$OMP THREADPRIVATE(pct_ocean) 497 cym SAVE pct_ocean 498 431 499 432 c sorties ISCCP 500 433 … … 516 449 c$OMP THREADPRIVATE(cldtopres,cldtopres3) 517 450 cIM 051005 BEG 518 REAL tmp_his1_3d(iwmax,kmaxm1,lmaxm1,nbregdyn,napisccp)519 REAL tmp_his2_3d(iwmax,kmaxm1,lmaxm1,nbregdyn,napisccp)520 REAL tmp_his3_3d(iwmax,kmaxm1,lmaxm1,nbregdyn,napisccp)521 451 INTEGER komega, nhoriRD 522 452 … … 622 552 c$OMP THREADPRIVATE(radpas) 623 553 c 624 REAL,SAVE,ALLOCATABLE :: rlonPOS(:)625 c$OMP THREADPRIVATE(rlonPOS)626 cym SAVE rlonPOS ! longitudes > 0. pour chaque point627 c628 554 cc INTEGER iflag_con 629 555 cc SAVE iflag_con ! indicateur de la convection … … 634 560 c 635 561 real slp(klon) ! sea level pressure 636 637 cIM638 REAL,SAVE,ALLOCATABLE :: newsst(:) !temperature de l'ocean639 c$OMP THREADPRIVATE(newsst)640 cym SAVE newsst641 562 c 642 563 REAL fevap(klon,nbsrf) 643 564 REAL fluxlat(klon,nbsrf) 644 565 c 645 REAL,allocatable,save :: deltat(:)646 c$OMP THREADPRIVATE(deltat)647 cym SAVE deltat ! ecart avec la SST de reference648 c649 566 REAL qsol(klon) 650 567 REAL,save :: solarlong0 … … 655 572 REAL zulow(klon),zvlow(klon) 656 573 c 657 REAL,allocatable,save :: zuthe(:),zvthe(:)658 c$OMP THREADPRIVATE(zuthe,zvthe)659 cym SAVE zuthe660 cym SAVE zvthe661 574 INTEGER igwd,idx(klon),itest(klon) 662 575 c 663 576 REAL agesno(klon,nbsrf) 664 c665 REAL,allocatable,save :: alb_neig(:)666 c$OMP THREADPRIVATE(alb_neig)667 cym SAVE alb_neig ! albedo de la neige668 577 c 669 578 c REAL,allocatable,save :: run_off_lic_0(:) … … 673 582 c Variables liees a la convection de K. Emanuel (sb): 674 583 c 675 REAL,allocatable,save :: ema_workcbmf(:) ! cloud base mass flux676 c$OMP THREADPRIVATE(ema_workcbmf)677 cym SAVE ema_workcbmf678 679 REAL,allocatable,save :: ema_cbmf(:) ! cloud base mass flux680 c$OMP THREADPRIVATE(ema_cbmf)681 cym SAVE ema_cbmf682 683 REAL,allocatable,save :: ema_pcb(:) ! cloud base pressure684 c$OMP THREADPRIVATE(ema_pcb)685 cym SAVE ema_pcb686 687 REAL,allocatable,save :: ema_pct(:) ! cloud top pressure688 c$OMP THREADPRIVATE(ema_pct)689 cym SAVE ema_pct690 691 584 REAL bas, top ! cloud base and top levels 692 585 SAVE bas … … 694 587 c$OMP THREADPRIVATE(bas, top) 695 588 696 REAL,allocatable,save :: Ma(:,:) ! undilute upward mass flux697 c$OMP THREADPRIVATE(Ma)698 cym SAVE Ma699 REAL,allocatable,save :: qcondc(:,:) ! in-cld water content from convect700 c$OMP THREADPRIVATE(qcondc)701 cym SAVE qcondc702 589 REAL wdn(klon), tdn(klon), qdn(klon) 703 704 REAL,allocatable,save :: wd(:) ! sb705 c$OMP THREADPRIVATE(wd)706 cym SAVE wd ! sb707 708 REAL,allocatable,save :: sigd(:)709 590 c 710 591 c================================================================================================= … … 714 595 REAL mip(klon,klev) ! mass flux shed by the adiab ascent at each level 715 596 REAL Vprecip(klon,klev) ! precipitation vertical profile 716 REAL,allocatable,save :: cin(:) ! CIN717 REAL,allocatable,save :: ftd(:,:) ! differential heating between wake and environment718 REAL,allocatable,save :: fqd(:,:) ! differential moistening between wake and environment719 c34EK720 c -- Variables de controle de ALE et ALP721 REAL,allocatable,save :: ALE(:) ! Energie disponible pour soulevement : utilisee par la722 c convection d'Emanuel pour le declenchement et la regulation723 REAL,allocatable,save :: ALP(:) ! Puissance disponible pour soulevement !724 597 c 725 598 REAL wape_prescr, fip_prescr … … 731 604 REAL ment(klon,klev,klev),sij(klon,klev,klev) 732 605 REAL dd_t(klon,klev),dd_q(klon,klev) 733 cnouvelles variables pour le couplage convection-couche limite734 real,allocatable,save :: Ale_bl(:)735 real,allocatable,save :: Alp_bl(:)736 integer,allocatable,save :: lalim_conv(:)737 real,allocatable,save :: wght_th(:,:)738 606 real alp_bl_prescr 739 607 save alp_bl_prescr … … 748 616 REAL t_wake(klon,klev),q_wake(klon,klev) ! wake pour la convection 749 617 750 REAL,allocatable,save :: wake_deltat(:,:) ! Wake : ecart de temperature avec la751 c zone non perturbee752 REAL,allocatable,save :: wake_deltaq(:,:) ! Wake : ecart d'humidite avec la753 c zone non perturbee754 618 REAL wake_dth(klon,klev) ! wake : temp pot difference 755 619 … … 765 629 REAL wake_dp_deltomg(klon,klev) ! Wake : gradient vertical de wake_omg 766 630 REAL wake_spread(klon,klev) ! spreading term in wake_delt 767 REAL,allocatable,save :: wake_Cstar(:) ! vitesse d'etalement de la poche 631 c 768 632 cpourquoi y'a pas de save?? 769 633 REAL wake_h(klon) ! Wake : hauteur de la poche froide 770 REAL,allocatable,save :: wake_s(:) ! Wake : fraction surfacique occupee par 771 c la poche froide 634 c 772 635 INTEGER wake_k(klon) ! Wake sommet 773 636 c … … 776 639 c 777 640 REAL wake_pe(klon) ! Wake potential energy - WAPE 778 REAL,allocatable,save :: wake_fip(:) ! Gust Front Impinging power - ALP779 641 780 642 REAL wake_gfl(klon) ! Gust Front Length 781 643 REAL wake_dens(klon) 782 644 c 783 REAL,allocatable,save :: dt_wake(:,:)784 REAL,allocatable,save :: dq_wake(:,:) ! LS tendencies due to wake785 645 c 786 646 REAL dt_dwn(klon,klev) … … 820 680 c@$$ PARAMETER (offline=.false.) 821 681 c@$$ INTEGER physid 822 REAL,allocatable,save :: pfrac_impa(:,:)! Produits des coefs lessivage impaction823 c$OMP THREADPRIVATE(pfrac_impa)824 cym save pfrac_impa825 REAL,allocatable,save :: pfrac_nucl(:,:)! Produits des coefs lessivage nucleation826 c$OMP THREADPRIVATE(pfrac_nucl)827 cym save pfrac_nucl828 REAL,allocatable,save :: pfrac_1nucl(:,:)! Produits des coefs lessi nucl (alpha = 1)829 c$OMP THREADPRIVATE(pfrac_1nucl)830 cym save pfrac_1nucl831 682 REAL frac_impa(klon,klev) ! fractions d'aerosols lessivees (impaction) 832 683 REAL frac_nucl(klon,klev) ! idem (nucleation) … … 839 690 REAL rain_tiedtke(klon),snow_tiedtke(klon) 840 691 c 841 842 REAL,allocatable,save :: total_rain(:), nday_rain(:)843 c$OMP THREADPRIVATE(total_rain,nday_rain)844 cym save total_rain, nday_rain845 692 cIM 050204 END 846 693 REAL evap(klon), devap(klon) ! evaporation et sa derivee … … 871 718 REAL pctsrf_new(klon,nbsrf) !pourcentage surfaces issus d'ORCHIDEE 872 719 873 cym REAL paire_ter(klon) !surfaces terre874 REAL,allocatable,save :: paire_ter(:) !surfaces terre875 c$OMP THREADPRIVATE(paire_ter)876 877 cIM878 720 cym SAVE pctsrf ! sous-fraction du sol 879 880 REAL,allocatable,save :: albsol1(:) ! albedo du sol total pour SW visible881 c$OMP THREADPRIVATE(albsol1)882 REAL,allocatable,save :: albsol2(:) ! albedo du sol total pour SW proche IR883 c$OMP THREADPRIVATE(albsol2)884 885 REAL,allocatable,save :: wo(:,:)886 c$OMP THREADPRIVATE(wo)887 cym SAVE wo ! ozone888 721 889 722 cIM sorties … … 932 765 c Variables locales 933 766 c 934 real,allocatable,save :: clwcon0(:,:),rnebcon0(:,:)935 cym save rnebcon, clwcon936 c$OMP THREADPRIVATE(clwcon0,rnebcon0)937 767 REAL rhcl(klon,klev) ! humiditi relative ciel clair 938 768 REAL dialiq(klon,klev) ! eau liquide nuageuse … … 954 784 REAL zxfluxv(klon, klev) 955 785 CXXX 956 REAL,allocatable,save :: heat(:,:) ! chauffage solaire 957 c$OMP THREADPRIVATE(heat) 958 REAL,allocatable,save :: heat0(:,:) ! chauffage solaire ciel clair 959 c$OMP THREADPRIVATE(heat0) 960 REAL,allocatable,save :: cool(:,:) ! refroidissement infrarouge 961 c$OMP THREADPRIVATE(cool) 962 REAL,allocatable,save :: cool0(:,:) ! refroidissement infrarouge ciel clair 963 c$OMP THREADPRIVATE(cool0) 964 REAL,allocatable,save :: topsw(:), toplw(:) 965 c$OMP THREADPRIVATE(topsw,toplw) 966 real,allocatable,save :: sollwdown(:) ! downward LW flux at surface 967 c$OMP THREADPRIVATE(sollwdown) 968 cIM BEG 969 real,allocatable,save :: sollwdownclr(:) ! downward CS LW flux at surface 970 c$OMP THREADPRIVATE(sollwdownclr) 971 real,allocatable,save :: toplwdown(:) ! downward CS LW flux at TOA 972 c$OMP THREADPRIVATE(toplwdown) 973 real,allocatable,save :: toplwdownclr(:) ! downward CS LW flux at TOA 974 c$OMP THREADPRIVATE(toplwdownclr) 975 cIM END 976 REAL,allocatable,save :: topsw0(:),toplw0(:),solsw0(:),sollw0(:) 977 c$OMP THREADPRIVATE( topsw0,toplw0,solsw0,sollw0) 978 REAL,allocatable,save :: albpla(:) 979 c$OMP THREADPRIVATE(albpla) 786 c 980 787 REAL fsollw(klon, nbsrf) ! bilan flux IR pour chaque sous surface 981 788 REAL fsolsw(klon, nbsrf) ! flux solaire absorb. pour chaque sous surface … … 1033 840 REAL dnwd0(klon,klev) ! unsaturated downdraft mass flux 1034 841 REAL tvp(klon,klev) ! virtual temp of lifted parcel 1035 REAL,allocatable,save :: cape(:) ! CAPE1036 c$OMP THREADPRIVATE(cape)1037 cym SAVE cape1038 842 CHARACTER*40 capemaxcels !max(CAPE) 1039 843 1040 REAL,allocatable,save :: pbase(:) ! cloud base pressure1041 c$OMP THREADPRIVATE(pbase)1042 cym SAVE pbase1043 REAL,allocatable,save :: bbase(:) ! cloud base buoyancy1044 c$OMP THREADPRIVATE(bbase)1045 cym SAVE bbase1046 844 REAL rflag(klon) ! flag fonctionnement de convect 1047 845 INTEGER iflagctrl(klon) ! flag fonctionnement de convect … … 1073 871 ********************************************************* 1074 872 * declarations 1075 real,save,allocatable :: zqasc(:,:)1076 c$OMP THREADPRIVATE(zqasc)1077 cym save zqasc1078 873 1079 874 ********************************************************* … … 1087 882 REAL prfl(klon,klev+1), psfl(klon,klev+1) 1088 883 c 1089 INTEGER,allocatable,save :: ibas_con(:), itop_con(:)1090 c$OMP THREADPRIVATE(ibas_con,itop_con)1091 cym1092 cym SAVE ibas_con,itop_con1093 cym1094 REAL,SAVE,ALLOCATABLE :: rain_con(:)1095 c$OMP THREADPRIVATE(rain_con)1096 884 REAL rain_lsc(klon) 1097 REAL,SAVE,ALLOCATABLE :: snow_con(:)1098 c$OMP THREADPRIVATE(snow_con)1099 885 REAL snow_lsc(klon) 1100 886 c 1101 887 REAL ratqss(klon,klev),ratqsc(klon,klev) 1102 888 real ratqsbas,ratqshaut 1103 cym save ratqsbas,ratqshaut, ratqs1104 889 save ratqsbas,ratqshaut 1105 c$OMP THREADPRIVATE(ratqsbas,ratqshaut)1106 890 real zpt_conv(klon,klev) 1107 891 … … 1275 1059 1276 1060 cIM: t2m, q2m, u10m, v10m et t2mincels, t2maxcels 1277 REAL,SAVE,ALLOCATABLE :: u10m(:,:), v10m(:,:) !vents a 10m1278 c$OMP THREADPRIVATE(u10m,v10m)1279 1061 REAL zt2m(klon), zq2m(klon) !temp., hum. 2m moyenne s/ 1 maille 1280 1062 REAL zu10m(klon), zv10m(klon) !vents a 10m moyennes s/1 maille … … 1283 1065 cjq Aerosol effects (Johannes Quaas, 27/11/2003) 1284 1066 REAL sulfate(klon, klev) ! SO4 aerosol concentration [ug/m3] 1285 REAL,allocatable,save :: sulfate_pi(:,:) ! SO4 aerosol concentration [ug/m3] (pre-industrial value)1286 c$OMP THREADPRIVATE(sulfate_pi)1287 cym SAVE sulfate_pi1288 1067 1289 1068 REAL cldtaupi(klon,klev) ! Cloud optical thickness for pre-industrial (pi) aerosols … … 1295 1074 1296 1075 ! Aerosol optical properties 1297 REAL,SAVE,ALLOCATABLE :: tau_ae(:,:,:), piz_ae(:,:,:)1298 c$OMP THREADPRIVATE(tau_ae,piz_ae)1299 REAL,SAVE,ALLOCATABLE :: cg_ae(:,:,:)1300 c$OMP THREADPRIVATE(cg_ae)1301 1302 1076 #ifdef INCA_AER 1303 1077 #ifdef CPP_COUPLE 1304 1078 ! Aerosol optical properties by INCA model 1305 REAL, SAVE, ALLOCATABLE :: tau_inca(:,:,:,:)1306 REAL, SAVE, ALLOCATABLE :: piz_inca(:,:,:,:)1307 REAL, SAVE, ALLOCATABLE :: cg_inca(:,:,:,:)1308 REAL, SAVE, ALLOCATABLE :: ccm(:,:,:)1309 1079 CHARACTER*4 :: rfname(9) 1310 1080 1311 REAL,SAVE,ALLOCATABLE :: topswad_inca(:), solswad_inca(:) ! Aerosol direct effect.1312 REAL,SAVE,ALLOCATABLE :: topswad0_inca(:), solswad0_inca(:) ! Aerosol direct effect.1313 REAL,SAVE,ALLOCATABLE :: topswai_inca(:), solswai_inca(:) ! Aerosol indirect effect.1314 REAL,SAVE,ALLOCATABLE :: topsw_inca(:,:), solsw_inca(:,:)1315 REAL,SAVE,ALLOCATABLE :: topsw0_inca(:,:), solsw0_inca(:,:)1316 1081 #endif 1317 1082 #endif 1318 REAL,SAVE,ALLOCATABLE :: topswad(:), solswad(:) ! Aerosol direct effect.1319 c$OMP THREADPRIVATE(topswad,solswad)1320 ! ok_ade=T -ADE=topswad-topsw1321 1322 REAL,SAVE,ALLOCATABLE :: topswai(:), solswai(:) ! Aerosol indirect effect.1323 c$OMP THREADPRIVATE(topswai,solswai)1324 ! ok_aie=T ->1325 ! ok_ade=T -AIE=topswai-topswad1326 ! ok_ade=F -AIE=topswai-topsw1327 1328 1083 REAL aerindex(klon) ! POLDER aerosol index 1329 1084 … … 1388 1143 if (first) then 1389 1144 1390 allocate( swdn0(klon,klevp1), swdn(klon,klevp1))1391 allocate( swup0(klon,klevp1), swup(klon,klevp1))1392 allocate( SWdn200clr(klon), SWdn200(klon))1393 allocate( SWup200clr(klon), SWup200(klon))1394 allocate( lwdn0(klon,klevp1), lwdn(klon,klevp1))1395 allocate( lwup0(klon,klevp1), lwup(klon,klevp1))1396 allocate( LWdn200clr(klon), LWdn200(klon))1397 allocate( LWup200clr(klon), LWup200(klon))1398 allocate( LWdnTOA(klon), LWdnTOAclr(klon))1399 allocate( deltat(klon))1400 allocate( zuthe(klon),zvthe(klon))1401 allocate( alb_neig(klon))1402 allocate( ema_workcbmf(klon))1403 1145 cCR:nvelles variables convection/poches froides 1404 allocate( sigd(klon))1405 allocate( cin(klon))1406 allocate( ftd(klon,klev))1407 allocate( fqd(klon,klev))1408 allocate( ALE(klon))1409 allocate( ALP(klon))1410 allocate( Ale_bl(klon))1411 allocate( Alp_bl(klon))1412 allocate( lalim_conv(klon))1413 allocate( wght_th(klon,klev))1414 allocate( wake_deltat(klon,klev))1415 allocate( wake_deltaq(klon,klev))1416 allocate( wake_Cstar(klon))1417 allocate( wake_s(klon))1418 allocate( wake_fip(klon))1419 allocate( dt_wake(klon,klev))1420 allocate( dq_wake(klon,klev))1421 cfinCR1422 allocate( ema_cbmf(klon))1423 allocate( ema_pcb(klon))1424 allocate( ema_pct(klon))1425 allocate( Ma(klon,klev) )1426 allocate( qcondc(klon,klev))1427 allocate( wd(klon) )1428 allocate( pfrac_impa(klon,klev))1429 allocate( pfrac_nucl(klon,klev))1430 allocate( pfrac_1nucl(klon,klev))1431 allocate( total_rain(klon), nday_rain(klon))1432 allocate( albsol1(klon))1433 allocate( albsol2(klon))1434 allocate( wo(klon,klev))1435 allocate( heat(klon,klev) )1436 allocate( heat0(klon,klev) )1437 allocate( cool(klon,klev) )1438 allocate( cool0(klon,klev) )1439 allocate( topsw(klon), toplw(klon))1440 allocate( sollwdown(klon) )1441 allocate( sollwdownclr(klon) )1442 allocate( toplwdown(klon) )1443 allocate( toplwdownclr(klon) )1444 allocate( topsw0(klon), toplw0(klon), solsw0(klon), sollw0(klon))1445 allocate( albpla(klon))1446 allocate( cape(klon) )1447 allocate( pbase(klon) )1448 allocate( bbase(klon) )1449 allocate( ibas_con(klon), itop_con(klon))1450 allocate( sulfate_pi(klon, klev))1451 allocate( paire_ter(klon))1452 allocate(tsumSTD(klon,nlevSTD,nout))1453 allocate(usumSTD(klon,nlevSTD,nout))1454 allocate(vsumSTD(klon,nlevSTD,nout))1455 allocate(wsumSTD(klon,nlevSTD,nout))1456 allocate(phisumSTD(klon,nlevSTD,nout))1457 allocate(qsumSTD(klon,nlevSTD,nout))1458 allocate(rhsumSTD(klon,nlevSTD,nout))1459 allocate(uvsumSTD(klon,nlevSTD,nout))1460 allocate(vqsumSTD(klon,nlevSTD,nout))1461 allocate(vTsumSTD(klon,nlevSTD,nout))1462 allocate(wqsumSTD(klon,nlevSTD,nout))1463 allocate( vphisumSTD(klon,nlevSTD,nout))1464 allocate( wTsumSTD(klon,nlevSTD,nout))1465 allocate( u2sumSTD(klon,nlevSTD,nout))1466 allocate( v2sumSTD(klon,nlevSTD,nout))1467 allocate( T2sumSTD(klon,nlevSTD,nout))1468 allocate( seed_old(klon,napisccp))1469 allocate( pct_ocean(klon,nbregdyn))1470 allocate( rlonPOS(klon))1471 allocate( newsst(klon))1472 allocate( zqasc(klon,klev))1473 allocate( rain_con(klon))1474 allocate( u10m(klon,nbsrf), v10m(klon,nbsrf))1475 allocate( topswad(klon), solswad(klon))1476 allocate( topswai(klon), solswai(klon) )1477 #ifdef INCA_AER1478 #ifdef CPP_COUPLE1479 allocate( topswad_inca(klon), solswad_inca(klon))1480 allocate( topswad0_inca(klon), solswad0_inca(klon))1481 allocate( topswai_inca(klon), solswai_inca(klon))1482 allocate( topsw_inca(klon,9), solsw_inca(klon,9))1483 allocate( topsw0_inca(klon,9), solsw0_inca(klon,9))1484 allocate( tau_inca(klon,klev,9,2))1485 allocate( piz_inca(klon,klev,9,2))1486 allocate( cg_inca(klon,klev,9,2))1487 allocate( ccm(klon,klev,2) )1488 #endif1489 #endif1490 allocate( clwcon0(klon,klev),rnebcon0(klon,klev))1491 allocate( clwcon0th(klon,klev),rnebcon0th(klon,klev))1492 allocate( tau_ae(klon,klev,2), piz_ae(klon,klev,2))1493 allocate( cg_ae(klon,klev,2))1494 allocate( snow_con(klon))1495 allocate( tnondef(klon,nlevSTD,nout))1496 1146 1497 1147 print*, '=================================================' … … 1583 1233 rnebcon(:,:) = 0.0 1584 1234 clwcon(:,:) = 0.0 1585 paire_ter(:) = 0.01586 c nhistoW(:,:,:,:) = 0.01587 c histoW(:,:,:,:) = 0.01588 1235 ! fin anne 1589 1236 … … 1621 1268 PRINT*, "Using method MELLOR&YAMADA" 1622 1269 endif 1623 pbl_tke(:,:,:) = 1.e-81624 1625 1270 1626 1271 CALL phyetat0 ("startphy.nc",dtime,co2_ppm_etat0,solaire_etat0,
Note: See TracChangeset
for help on using the changeset viewer.