Changeset 967 for LMDZ4/trunk/libf/phylmd/phys_state_var_mod.F90
- Timestamp:
- Jun 11, 2008, 1:14:41 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/trunk/libf/phylmd/phys_state_var_mod.F90
r959 r967 10 10 INTEGER, PARAMETER :: nout=3 11 11 INTEGER, PARAMETER :: napisccp=1 12 INTEGER, SAVE :: radpas 12 13 REAL, SAVE :: dtime, co2_ppm_etat0, solaire_etat0 14 !$OMP THREADPRIVATE(radpas) 15 !$OMP THREADPRIVATE(dtime, co2_ppm_etat0, solaire_etat0) 16 13 17 REAL, ALLOCATABLE, SAVE :: rlat(:), rlon(:), pctsrf(:,:) 18 !$OMP THREADPRIVATE(rlat, rlon, pctsrf) 14 19 REAL, ALLOCATABLE, SAVE :: ftsol(:,:) 15 character(len=6), SAVE :: ocean 16 logical, SAVE :: ok_veget 20 !$OMP THREADPRIVATE(ftsol) 21 ! character(len=6), SAVE :: ocean 22 !!!!!!$OMP THREADPRIVATE(ocean) 23 ! logical, SAVE :: ok_veget 24 !!!!!!$OMP THREADPRIVATE(ok_veget) 17 25 REAL, ALLOCATABLE, SAVE :: falb1(:,:), falb2(:,:) 26 !$OMP THREADPRIVATE(falb1, falb2) 18 27 REAL, ALLOCATABLE, SAVE :: rain_fall(:), snow_fall(:) 28 !$OMP THREADPRIVATE( rain_fall, snow_fall) 19 29 REAL, ALLOCATABLE, SAVE :: solsw(:), sollw(:) 30 !$OMP THREADPRIVATE(solsw, sollw) 20 31 REAL, ALLOCATABLE, SAVE :: radsol(:) 32 !$OMP THREADPRIVATE(radsol) 33 21 34 !clesphy0 param physiq 22 35 ! … … 24 37 ! 25 38 REAL, ALLOCATABLE, SAVE :: zmea(:), zstd(:), zsig(:), zgam(:) 39 !$OMP THREADPRIVATE(zmea, zstd, zsig, zgam) 26 40 REAL, ALLOCATABLE, SAVE :: zthe(:), zpic(:), zval(:) 41 !$OMP THREADPRIVATE(zthe, zpic, zval) 27 42 ! REAL tabcntr0(100) 28 43 REAL, ALLOCATABLE, SAVE :: rugoro(:) 44 !$OMP THREADPRIVATE(rugoro) 29 45 REAL, ALLOCATABLE, SAVE :: t_ancien(:,:), q_ancien(:,:) 46 !$OMP THREADPRIVATE(t_ancien, q_ancien) 30 47 LOGICAL, SAVE :: ancien_ok 48 !$OMP THREADPRIVATE(ancien_ok) 31 49 REAL, ALLOCATABLE, SAVE :: clwcon(:,:),rnebcon(:,:) 50 !$OMP THREADPRIVATE(clwcon,rnebcon) 32 51 REAL, ALLOCATABLE, SAVE :: ratqs(:,:) 52 !$OMP THREADPRIVATE(ratqs) 33 53 REAL, ALLOCATABLE, SAVE :: pbl_tke(:,:,:) ! turb kinetic energy 54 !$OMP THREADPRIVATE(pbl_tke) 34 55 REAL, ALLOCATABLE, SAVE :: zmax0(:), f0(:) ! 56 !$OMP THREADPRIVATE(zmax0,f0) 35 57 REAL, ALLOCATABLE, SAVE :: ema_work1(:,:), ema_work2(:,:) 58 !$OMP THREADPRIVATE(ema_work1,ema_work2) 36 59 REAL, ALLOCATABLE, SAVE :: entr_therm(:,:), fm_therm(:,:) 60 !$OMP THREADPRIVATE(entr_therm,fm_therm) 37 61 REAL, ALLOCATABLE, SAVE :: detr_therm(:,:) 62 !$OMP THREADPRIVATE(detr_therm) 38 63 !IM 150408 39 64 ! pour phsystoke avec thermiques 40 65 REAL,ALLOCATABLE,SAVE :: clwcon0th(:,:),rnebcon0th(:,:) 66 !$OMP THREADPRIVATE(clwcon0th,rnebcon0th) 41 67 ! radiation outputs 42 68 REAL,ALLOCATABLE,SAVE :: swdn0(:,:), swdn(:,:) 69 !$OMP THREADPRIVATE(swdn0,swdn) 43 70 REAL,ALLOCATABLE,SAVE :: swup0(:,:), swup(:,:) 71 !$OMP THREADPRIVATE(swup0,swup) 44 72 REAL,ALLOCATABLE,SAVE :: SWdn200clr(:), SWdn200(:) 73 !$OMP THREADPRIVATE(SWdn200clr,SWdn200) 45 74 REAL,ALLOCATABLE,SAVE :: SWup200clr(:), SWup200(:) 75 !$OMP THREADPRIVATE(SWup200clr,SWup200) 46 76 REAL,ALLOCATABLE,SAVE :: lwdn0(:,:), lwdn(:,:) 77 !$OMP THREADPRIVATE(lwdn0,lwdn) 47 78 REAL,ALLOCATABLE,SAVE :: lwup0(:,:), lwup(:,:) 79 !$OMP THREADPRIVATE(lwup0,lwup) 48 80 REAL,ALLOCATABLE,SAVE :: LWdn200clr(:), LWdn200(:) 81 !$OMP THREADPRIVATE(LWdn200clr,LWdn200) 49 82 REAL,ALLOCATABLE,SAVE :: LWup200clr(:), LWup200(:) 83 !$OMP THREADPRIVATE(LWup200clr,LWup200) 50 84 REAL,ALLOCATABLE,SAVE :: LWdnTOA(:), LWdnTOAclr(:) 85 !$OMP THREADPRIVATE(LWdnTOA,LWdnTOAclr) 51 86 ! pressure level 52 87 REAL,ALLOCATABLE,SAVE :: tsumSTD(:,:,:) 88 !$OMP THREADPRIVATE(tsumSTD) 53 89 REAL,ALLOCATABLE,SAVE :: usumSTD(:,:,:), vsumSTD(:,:,:) 90 !$OMP THREADPRIVATE(usumSTD,vsumSTD) 54 91 REAL,ALLOCATABLE,SAVE :: wsumSTD(:,:,:), phisumSTD(:,:,:) 92 !$OMP THREADPRIVATE(wsumSTD,phisumSTD) 55 93 REAL,ALLOCATABLE,SAVE :: qsumSTD(:,:,:), rhsumSTD(:,:,:) 94 !$OMP THREADPRIVATE(qsumSTD,rhsumSTD) 56 95 REAL,ALLOCATABLE,SAVE :: tnondef(:,:,:) 96 !$OMP THREADPRIVATE(tnondef) 57 97 REAL,ALLOCATABLE,SAVE :: uvsumSTD(:,:,:) 98 !$OMP THREADPRIVATE(uvsumSTD) 58 99 REAL,ALLOCATABLE,SAVE :: vqsumSTD(:,:,:) 100 !$OMP THREADPRIVATE(vqsumSTD) 59 101 REAL,ALLOCATABLE,SAVE :: vTsumSTD(:,:,:) 102 !$OMP THREADPRIVATE(vTsumSTD) 60 103 REAL,ALLOCATABLE,SAVE :: wqsumSTD(:,:,:) 104 !$OMP THREADPRIVATE(wqsumSTD) 61 105 REAL,ALLOCATABLE,SAVE :: vphisumSTD(:,:,:) 106 !$OMP THREADPRIVATE(vphisumSTD) 62 107 REAL,ALLOCATABLE,SAVE :: wTsumSTD(:,:,:) 108 !$OMP THREADPRIVATE(wTsumSTD) 63 109 REAL,ALLOCATABLE,SAVE :: u2sumSTD(:,:,:) 110 !$OMP THREADPRIVATE(u2sumSTD) 64 111 REAL,ALLOCATABLE,SAVE :: v2sumSTD(:,:,:) 112 !$OMP THREADPRIVATE(v2sumSTD) 65 113 REAL,ALLOCATABLE,SAVE :: T2sumSTD(:,:,:) 114 !$OMP THREADPRIVATE(T2sumSTD) 66 115 INTEGER,ALLOCATABLE,SAVE :: seed_old(:,:) 116 !$OMP THREADPRIVATE(seed_old) 67 117 REAL,ALLOCATABLE,SAVE :: zuthe(:),zvthe(:) 118 !$OMP THREADPRIVATE(zuthe,zvthe) 68 119 REAL,ALLOCATABLE,SAVE :: alb_neig(:) 120 !$OMP THREADPRIVATE(alb_neig) 69 121 !cloud base mass flux 70 122 REAL,ALLOCATABLE,SAVE :: ema_workcbmf(:), ema_cbmf(:) 123 !$OMP THREADPRIVATE(ema_workcbmf,ema_cbmf) 71 124 !cloud base pressure & cloud top pressure 72 125 REAL,ALLOCATABLE,SAVE :: ema_pcb(:), ema_pct(:) 126 !$OMP THREADPRIVATE(ema_pcb,ema_pct) 73 127 REAL,ALLOCATABLE,SAVE :: Ma(:,:) ! undilute upward mass flux 128 !$OMP THREADPRIVATE(Ma) 74 129 REAL,ALLOCATABLE,SAVE :: qcondc(:,:) ! in-cld water content from convect 130 !$OMP THREADPRIVATE(qcondc) 75 131 REAL,ALLOCATABLE,SAVE :: wd(:) ! sb 132 !$OMP THREADPRIVATE(wd) 76 133 REAL,ALLOCATABLE,SAVE :: sigd(:) 134 !$OMP THREADPRIVATE(sigd) 77 135 ! 78 136 REAL,ALLOCATABLE,SAVE :: cin(:) 137 !$OMP THREADPRIVATE(cin) 79 138 ! ftd : differential heating between wake and environment 80 139 REAL,ALLOCATABLE,SAVE :: ftd(:,:) 140 !$OMP THREADPRIVATE(ftd) 81 141 ! fqd : differential moistening between wake and environment 82 142 REAL,ALLOCATABLE,SAVE :: fqd(:,:) 143 !$OMP THREADPRIVATE(fqd) 83 144 !34EK 84 145 ! -- Variables de controle de ALE et ALP … … 86 147 ! convection d'Emanuel pour le declenchement et la regulation 87 148 REAL,ALLOCATABLE,SAVE :: ALE(:) 149 !$OMP THREADPRIVATE(ALE) 88 150 !ALP : Puissance disponible pour soulevement 89 151 REAL,ALLOCATABLE,SAVE :: ALP(:) 152 !$OMP THREADPRIVATE(ALP) 90 153 ! 91 154 ! nouvelles variables pour le couplage convection-couche limite 92 155 REAL,ALLOCATABLE,SAVE :: Ale_bl(:) 156 !$OMP THREADPRIVATE(Ale_bl) 93 157 REAL,ALLOCATABLE,SAVE :: Alp_bl(:) 158 !$OMP THREADPRIVATE(Alp_bl) 94 159 INTEGER,ALLOCATABLE,SAVE :: lalim_conv(:) 160 !$OMP THREADPRIVATE(lalim_conv) 95 161 REAL,ALLOCATABLE,SAVE :: wght_th(:,:) 162 !$OMP THREADPRIVATE(wght_th) 96 163 ! 97 164 ! variables de la wake … … 103 170 ! dt_wake, dq_wake: LS tendencies due to wake 104 171 REAL,ALLOCATABLE,SAVE :: wake_deltat(:,:) 172 !$OMP THREADPRIVATE(wake_deltat) 105 173 REAL,ALLOCATABLE,SAVE :: wake_deltaq(:,:) 174 !$OMP THREADPRIVATE(wake_deltaq) 106 175 REAL,ALLOCATABLE,SAVE :: wake_Cstar(:) 176 !$OMP THREADPRIVATE(wake_Cstar) 107 177 REAL,ALLOCATABLE,SAVE :: wake_s(:) 178 !$OMP THREADPRIVATE(wake_s) 108 179 REAL,ALLOCATABLE,SAVE :: wake_fip(:) 180 !$OMP THREADPRIVATE(wake_fip) 109 181 REAL,ALLOCATABLE,SAVE :: dt_wake(:,:) 182 !$OMP THREADPRIVATE(dt_wake) 110 183 REAL,ALLOCATABLE,SAVE :: dq_wake(:,:) 184 !$OMP THREADPRIVATE(dq_wake) 111 185 ! 112 186 ! pfrac_impa : Produits des coefs lessivage impaction … … 114 188 ! pfrac_1nucl: Produits des coefs lessi nucl (alpha = 1) 115 189 REAL,ALLOCATABLE,SAVE :: pfrac_impa(:,:), pfrac_nucl(:,:) 190 !$OMP THREADPRIVATE(pfrac_impa,pfrac_nucl) 116 191 REAL,ALLOCATABLE,SAVE :: pfrac_1nucl(:,:) 192 !$OMP THREADPRIVATE(pfrac_1nucl) 117 193 ! 118 194 REAL,ALLOCATABLE,SAVE :: total_rain(:), nday_rain(:) 195 !$OMP THREADPRIVATE(total_rain,nday_rain) 119 196 REAL,ALLOCATABLE,SAVE :: paire_ter(:) 197 !$OMP THREADPRIVATE(paire_ter) 120 198 ! albsol1: albedo du sol total pour SW visible 121 199 ! albsol2: albedo du sol total pour SW proche IR 122 200 REAL,ALLOCATABLE,SAVE :: albsol1(:), albsol2(:) 201 !$OMP THREADPRIVATE(albsol1,albsol2) 123 202 REAL,ALLOCATABLE,SAVE :: wo(:,:) 203 !$OMP THREADPRIVATE(wo) 124 204 ! 125 205 ! heat : chauffage solaire … … 132 212 ! toplwdownclr : downward CS LW flux at TOA 133 213 REAL,ALLOCATABLE,SAVE :: clwcon0(:,:),rnebcon0(:,:) 214 !$OMP THREADPRIVATE(clwcon0,rnebcon0) 134 215 REAL,ALLOCATABLE,SAVE :: heat(:,:) 216 !$OMP THREADPRIVATE(heat) 135 217 REAL,ALLOCATABLE,SAVE :: heat0(:,:) 218 !$OMP THREADPRIVATE(heat0) 136 219 REAL,ALLOCATABLE,SAVE :: cool(:,:) 220 !$OMP THREADPRIVATE(cool) 137 221 REAL,ALLOCATABLE,SAVE :: cool0(:,:) 222 !$OMP THREADPRIVATE(cool0) 138 223 REAL,ALLOCATABLE,SAVE :: topsw(:), toplw(:) 224 !$OMP THREADPRIVATE(topsw,toplw) 139 225 REAL,ALLOCATABLE,SAVE :: sollwdown(:) 226 !$OMP THREADPRIVATE(sollwdown) 140 227 REAL,ALLOCATABLE,SAVE :: sollwdownclr(:) 228 !$OMP THREADPRIVATE(sollwdownclr) 141 229 REAL,ALLOCATABLE,SAVE :: toplwdown(:) 230 !$OMP THREADPRIVATE(toplwdown) 142 231 REAL,ALLOCATABLE,SAVE :: toplwdownclr(:) 232 !$OMP THREADPRIVATE(toplwdownclr) 143 233 REAL,ALLOCATABLE,SAVE :: topsw0(:),toplw0(:),solsw0(:),sollw0(:) 234 !$OMP THREADPRIVATE(topsw0,toplw0,solsw0,sollw0) 144 235 REAL,ALLOCATABLE,SAVE :: albpla(:) 236 !$OMP THREADPRIVATE(albpla) 145 237 ! pbase : cloud base pressure 146 238 ! bbase : cloud base buoyancy 147 239 REAL,ALLOCATABLE,SAVE :: cape(:) 240 !$OMP THREADPRIVATE(cape) 148 241 REAL,ALLOCATABLE,SAVE :: pbase(:) 242 !$OMP THREADPRIVATE(pbase) 149 243 REAL,ALLOCATABLE,SAVE :: bbase(:) 244 !$OMP THREADPRIVATE(bbase) 150 245 ! 151 246 REAL,SAVE,ALLOCATABLE :: zqasc(:,:) 247 !$OMP THREADPRIVATE( zqasc) 152 248 INTEGER,ALLOCATABLE,SAVE :: ibas_con(:), itop_con(:) 249 !$OMP THREADPRIVATE(ibas_con,itop_con) 153 250 REAL,SAVE,ALLOCATABLE :: rain_con(:) 251 !$OMP THREADPRIVATE(rain_con) 154 252 REAL,SAVE,ALLOCATABLE :: snow_con(:) 253 !$OMP THREADPRIVATE(snow_con) 155 254 ! 156 255 ! sulfate_pi : SO4 aerosol concentration [ug/m3] (pre-industrial value) 157 256 158 257 REAL,SAVE,ALLOCATABLE :: sulfate_pi(:, :) 258 !$OMP THREADPRIVATE(sulfate_pi) 159 259 REAL,SAVE,ALLOCATABLE :: rlonPOS(:) 260 !$OMP THREADPRIVATE(rlonPOS) 160 261 REAL,SAVE,ALLOCATABLE :: newsst(:) 262 !$OMP THREADPRIVATE(newsst) 161 263 REAL,SAVE,ALLOCATABLE :: u10m(:,:), v10m(:,:) 264 !$OMP THREADPRIVATE(u10m,v10m) 162 265 ! 163 266 ! ok_ade=T -ADE=topswad-topsw … … 168 271 !topswad, solswad : Aerosol direct effect 169 272 REAL,SAVE,ALLOCATABLE :: topswad(:), solswad(:) 273 !$OMP THREADPRIVATE(topswad,solswad) 170 274 !topswai, solswai : Aerosol indirect effect 171 275 REAL,SAVE,ALLOCATABLE :: topswai(:), solswai(:) 276 !$OMP THREADPRIVATE(topswai,solswai) 172 277 REAL,SAVE,ALLOCATABLE :: tau_ae(:,:,:), piz_ae(:,:,:) 278 !$OMP THREADPRIVATE(tau_ae,piz_ae) 173 279 REAL,SAVE,ALLOCATABLE :: cg_ae(:,:,:) 280 !$OMP THREADPRIVATE(cg_ae) 174 281 175 282 ! Les variables suivants uniquement pour un configuration avec INCA 176 283 ! topswad_inca, solswad_inca : Aerosol direct effect 177 284 REAL,SAVE,ALLOCATABLE :: topswad_inca(:), solswad_inca(:) 285 !$OMP THREADPRIVATE(topswad_inca,solswad_inca) 178 286 ! topswad0_inca, solswad0_inca : Aerosol direct effect 179 287 REAL,SAVE,ALLOCATABLE :: topswad0_inca(:), solswad0_inca(:) 288 !$OMP THREADPRIVATE(topswad0_inca,solswad0_inca) 180 289 ! topswai_inca, solswai_inca : Aerosol indirect effect 181 290 REAL,SAVE,ALLOCATABLE :: topswai_inca(:), solswai_inca(:) 291 !$OMP THREADPRIVATE(topswai_inca,solswai_inca) 182 292 REAL,SAVE,ALLOCATABLE :: topsw_inca(:,:), solsw_inca(:,:) 293 !$OMP THREADPRIVATE(topsw_inca,solsw_inca) 183 294 REAL,SAVE,ALLOCATABLE :: topsw0_inca(:,:), solsw0_inca(:,:) 295 !$OMP THREADPRIVATE(topsw0_inca,solsw0_inca) 184 296 REAL,SAVE,ALLOCATABLE :: tau_inca(:,:,:,:) 297 !$OMP THREADPRIVATE(tau_inca) 185 298 REAL,SAVE,ALLOCATABLE :: piz_inca(:,:,:,:) 299 !$OMP THREADPRIVATE(piz_inca) 186 300 REAL,SAVE,ALLOCATABLE :: cg_inca(:,:,:,:) 301 !$OMP THREADPRIVATE(cg_inca) 187 302 REAL,SAVE,ALLOCATABLE :: ccm(:,:,:) 303 !$OMP THREADPRIVATE(ccm) 188 304 189 305 CONTAINS
Note: See TracChangeset
for help on using the changeset viewer.