*IF DEF,A05_3B DOWND3B.2 C ******************************COPYRIGHT****************************** DOWND3B.3 C (c) CROWN COPYRIGHT 1997, METEOROLOGICAL OFFICE, All Rights Reserved. DOWND3B.4 C DOWND3B.5 C Use, duplication or disclosure of this code is subject to the DOWND3B.6 C restrictions as set forth in the contract. DOWND3B.7 C DOWND3B.8 C Meteorological Office DOWND3B.9 C London Road DOWND3B.10 C BRACKNELL DOWND3B.11 C Berkshire UK DOWND3B.12 C RG12 2SZ DOWND3B.13 C DOWND3B.14 C If no contract has been raised with this copy of the code, the use, DOWND3B.15 C duplication or disclosure of it is strictly prohibited. Permission DOWND3B.16 C to do so must first be obtained in writing from the Head of Numerical DOWND3B.17 C Modelling at the above address. DOWND3B.18 C ******************************COPYRIGHT****************************** DOWND3B.19 C DOWND3B.20 CLL SUBROUTINE DOWND-------------------------------------------------- DOWND3B.21 CLL DOWND3B.22 CLL PURPOSE : CALL DOWNDRAUGHT CALCULATION DOWND3B.23 CLL DOWND3B.24 CLL CHANGE OF PHASE CALCULATION WHERE NO DOWNDRAUGHT OCCURS DOWND3B.25 CLL DOWND3B.26 CLL SUITABLE FOR SINGLE COLUMN MODEL USE DOWND3B.27 CLL DOWND3B.28 CLL DOWND3B.29 CLL MODEL MODIFICATION HISTORY: DOWND3B.30 CLL VERSION DATE DOWND3B.31 CLL 4.3 03/02/97 As DOWND3A (vn4.2) except TIMESTEP passed to DOWND3B.32 CLL CHG_PHSE DOWND3B.33 CLL R.N.B.Smith DOWND3B.34 CLL 4.5 20/7/98 : Type of ICCB changed to INTEGER AJC1F405.30 CLL Kill the IBM specific lines (JCThil) AJC1F405.31 CLL DOWND3B.35 CLL PROGRAMMING STANDARDS : UNIFIED MODEL DOCUMENTATION PAPER NO. 3 DOWND3B.36 CLL VERSION NO. 4 DATED 5/2/92 DOWND3B.37 CLL DOWND3B.38 CLL SYSTEM TASK : P27 DOWND3B.39 CLL DOWND3B.40 CLL DOCUMENTATION : UNIFIED MODEL DOCUMENTATION PAPER 27 DOWND3B.41 CLL DOWND3B.42 CLLEND----------------------------------------------------------------- DOWND3B.43 C DOWND3B.44 C*L ARGUMENTS--------------------------------------------------------- DOWND3B.45 C DOWND3B.46SUBROUTINE DOWND (NPNTS,NP_FULL,K,KCT,THDD_K,QDD_K,THE_K,THE_KM1, 4,12DOWND3B.47 & QE_K,QE_KM1,DTHBYDT_K,DTHBYDT_KM1,DQBYDT_K, DOWND3B.48 & DQBYDT_KM1,FLX_DD_K,P_KM1,DELPK,DELPKM1,EXK, DOWND3B.49 & EXKM1,DELTD,DELQD,AMDETK,EKM14,EKM34,PRECIP_K, DOWND3B.50 & RAIN,SNOW,ICCB,BWATER_K,BDD_START, DOWND3B.51 & BDDWT_K,BDDWT_KM1,BDD_ON,RAIN_ENV,SNOW_ENV, DOWND3B.52 & RAIN_DD,SNOW_DD,FLX_UD_K,TIMESTEP,CCA,NDDON_A, DOWND3B.53 & LR_UD_REF,L_MOM,UDD_K,VDD_K,UE_K,VE_K,UE_KM1, DOWND3B.54 & VE_KM1,DUBYDT_K,DVBYDT_K,DUBYDT_KM1,DVBYDT_KM1, DOWND3B.55 & DELUD,DELVD,EFLUX_U_DD,EFLUX_V_DD, DOWND3B.56 & L_TRACER,NTRA,TRADD_K,TRAE_K, DOWND3B.57 & TRAE_KM1,DTRABYDT_K,DTRABYDT_KM1,DELTRAD) DOWND3B.58 C DOWND3B.59 IMPLICIT NONE DOWND3B.60 C DOWND3B.61 C----------------------------------------------------------------------- DOWND3B.62 C MODEL CONSTANTS DOWND3B.63 C----------------------------------------------------------------------- DOWND3B.64 C DOWND3B.65 *CALL C_0_DG_C
DOWND3B.66 *CALL C_G
DOWND3B.67 C DOWND3B.68 C----------------------------------------------------------------------- DOWND3B.69 C VECTOR LENGTHS AND LOOP COUNTERS DOWND3B.70 C----------------------------------------------------------------------- DOWND3B.71 C DOWND3B.72 C DOWND3B.76 INTEGER I,KTRA ! LOOP COUNTERS DOWND3B.77 C DOWND3B.78 INTEGER K ! IN PRESENT MODEL LAYER DOWND3B.79 C DOWND3B.80 INTEGER NPNTS ! IN NUMBER OF POINTS DOWND3B.81 C DOWND3B.82 INTEGER NDDON,NDDON_A ! NUMBER OF POINTS AT WHICH DOWND3B.83 ! DOWNDRAUGHT DOES OCCUR DOWND3B.84 C DOWND3B.85 INTEGER NP_FULL ! IN FULL VECTOR LENGTH DOWND3B.86 C DOWND3B.87 INTEGER NTRA ! NUMBER OF TRACERS DOWND3B.88 C DOWND3B.89 C----------------------------------------------------------------------- DOWND3B.90 C VARIABLES WHICH ARE INPUT DOWND3B.91 C----------------------------------------------------------------------- DOWND3B.92 C DOWND3B.93 INTEGER KCT ! IN CONVECTIVE CLOUD TOP LAYER DOWND3B.94 C DOWND3B.95 REAL THDD_K(NPNTS) ! IN MODEL POTENTIAL TEMPERATURE DOWND3B.96 ! OF DOWNDRAUGHT IN LAYER K (K) DOWND3B.97 C DOWND3B.98 REAL QDD_K(NPNTS) ! IN MIXING RATIO OF DOWNDRAUGHT IN DOWND3B.99 ! LAYER K (KG/KG) DOWND3B.100 C DOWND3B.101 REAL UDD_K(NPNTS) ! IN U IN DOWNDRAUGHT IN LAYER K (M/S) DOWND3B.102 C DOWND3B.103 REAL VDD_K(NPNTS) ! IN V IN DOWNDRAUGHT IN LAYER K (M/S) DOWND3B.104 C DOWND3B.105 REAL TRADD_K(NP_FULL,NTRA) ! IN TRACER CONTENT OF DOWNDRAUGHT DOWND3B.106 ! IN LAYER K (KG/KG) DOWND3B.107 C DOWND3B.108 REAL THE_K(NPNTS) ! IN POTENTIAL TEMPERATURE OF DOWND3B.109 ! ENVIRONMENT IN LAYER K (K) DOWND3B.110 C DOWND3B.111 REAL THE_KM1(NPNTS) ! IN POTENTIAL TEMPERATURE OF DOWND3B.112 ! ENVIRONMENT IN LAYER K-1 (K) DOWND3B.113 C DOWND3B.114 REAL QE_K(NPNTS) ! IN MIXING RATIO OF ENVIRONMENT IN DOWND3B.115 ! LAYER K (KG/KG) DOWND3B.116 C DOWND3B.117 REAL QE_KM1(NPNTS) ! IN MIXING RATIO OF ENVIRONMENT IN DOWND3B.118 ! LAYER K-1 (KG/KG) DOWND3B.119 C DOWND3B.120 REAL UE_K(NPNTS) ! IN U OF ENVIRONMENT IN LAYER K (M/S) DOWND3B.121 C DOWND3B.122 REAL UE_KM1(NPNTS) ! IN U OF ENVIRONMENT IN LAYER K-1 DOWND3B.123 ! (M/S) DOWND3B.124 C DOWND3B.125 REAL VE_K(NPNTS) ! IN V OF ENVIRONMENT IN LAYER K (M/S) DOWND3B.126 C DOWND3B.127 REAL VE_KM1(NPNTS) ! IN V OF ENVIRONMENT IN LAYER K-1 DOWND3B.128 ! (M/S) DOWND3B.129 C DOWND3B.130 REAL TRAE_K(NP_FULL,NTRA) ! IN TRACER CONTENT OF ENVIRONMENT DOWND3B.131 ! IN LAYER K (KG/KG) DOWND3B.132 C DOWND3B.133 REAL TRAE_KM1(NP_FULL,NTRA)! IN TRACER CONTENT OF ENVIRONMENT DOWND3B.134 ! IN LAYER K-1 (KG/KG) DOWND3B.135 C DOWND3B.136 REAL FLX_DD_K(NPNTS) ! IN DOWNDRAUGHT MASS FLUX OF LAYER K DOWND3B.137 ! (PA/S) DOWND3B.138 C DOWND3B.139 REAL P_KM1(NPNTS) ! IN PRESSURE OF LAYER K-1 (PA) DOWND3B.140 C DOWND3B.141 REAL DELPK(NPNTS) ! IN PRESSURE DIFFERENCE ACROSS DOWND3B.142 ! LAYER K (PA) DOWND3B.143 C DOWND3B.144 REAL DELPKM1(NPNTS) ! IN PRESSURE DIFFERENCE ACROSS DOWND3B.145 ! LAYER K-1 (PA) DOWND3B.146 C DOWND3B.147 REAL EXK(NPNTS) ! IN EXNER RATIO FOR LAYER K DOWND3B.148 C DOWND3B.149 REAL EXKM1(NPNTS) ! IN EXNER RATIO FOR LAYER K-1 DOWND3B.150 C DOWND3B.151 REAL PRECIP_K(NPNTS) ! IN PRECIPITATION ADDED WHEN DOWND3B.152 ! DESCENDING FROM LAYER K TO K-1 DOWND3B.153 ! (KG/M**2/S) DOWND3B.154 C DOWND3B.155 REAL AMDETK(NPNTS) ! IN MIXING DETRAINMENT AT LEVEL K DOWND3B.156 ! MULTIPLIED BY APPROPRIATE LAYER DOWND3B.157 ! THICKNESS DOWND3B.158 C DOWND3B.159 REAL EKM14(NPNTS) ! IN EXNER RATIO AT LAYER K-1/4 DOWND3B.160 C DOWND3B.161 REAL EKM34(NPNTS) ! IN EXNER RATIO AT LAYER K-3/4 DOWND3B.162 C DOWND3B.163 REAL DELTD(NPNTS) ! IN COOLING NECESSARY TO DOWND3B.164 ! ACHIEVE SATURATION (K) DOWND3B.165 C DOWND3B.166 REAL DELQD(NPNTS) ! IN MOISTENING NECESSARY TO DOWND3B.167 ! ACHIEVE SATURATION (KG/KG) DOWND3B.168 C DOWND3B.169 REAL DELUD(NPNTS) ! IN CHANGE IN ENVIRONMENT U DUE TO DOWND3B.170 ! DOWNDRAUGHT FORMATION (M/S) DOWND3B.171 C DOWND3B.172 REAL DELVD(NPNTS) ! IN CHANGE IN ENVIRONMENT V DUE TO DOWND3B.173 ! DOWNDRAUGHT FORMATION (M/S) DOWND3B.174 C DOWND3B.175 REAL DELTRAD(NP_FULL,NTRA) ! IN DEPLETION OF ENVIRONMENT TRACER DOWND3B.176 ! DUE TO DOWNDRAUGHT FORMATION DOWND3B.177 C DOWND3B.178 INTEGER ICCB(NPNTS) ! IN CLOUD BASE LEVEL AJC1F405.32 C DOWND3B.180 LOGICAL BWATER_K(NPNTS) ! IN MASK FOR THOSE POINTS AT WHICH DOWND3B.181 ! CONDENSATE IS WATER IN LAYER K DOWND3B.182 C DOWND3B.183 LOGICAL BDDWT_K(NPNTS) ! IN MASK FOR THOSE POINTS IN DOWND3B.184 ! DOWNDRAUGHT WHERE PRECIPITATION DOWND3B.185 ! IS LIQUID IN LAYER K DOWND3B.186 C DOWND3B.187 LOGICAL BDDWT_KM1(NPNTS) ! IN MASK FOR THOSE POINTS IN DOWND3B.188 ! DOWNDRAUGHT WHERE PRECIPITATION DOWND3B.189 ! IS LIQUID IN LAYER K-1 DOWND3B.190 C DOWND3B.191 LOGICAL L_TRACER ! IN SWITCH FOR INCLUSION OF TRACERS DOWND3B.192 C DOWND3B.193 LOGICAL L_MOM ! IN SWITCH FOR INCLUSION OF DOWND3B.194 ! MOMENTUM TRANSPORTS DOWND3B.195 C DOWND3B.196 REAL RAIN_ENV(NPNTS) ! IN AMOUNT OF RAIN FALLING THROUGH DOWND3B.197 ! THE ENVIRONMENT DOWND3B.198 C DOWND3B.199 REAL SNOW_ENV(NPNTS) ! IN AMOUNT OF SNOW FALLING THROUGH DOWND3B.200 ! THE ENVIRONMENT DOWND3B.201 C DOWND3B.202 REAL RAIN_DD(NPNTS) ! IN AMOUNT OF RAIN FALLING THROUGH DOWND3B.203 ! THE DOWNDRAUGHT DOWND3B.204 C DOWND3B.205 REAL SNOW_DD(NPNTS) ! IN AMOUNT OF SNOW FALLING THROUGH DOWND3B.206 ! THE DOWNDRAUGHT DOWND3B.207 C DOWND3B.208 REAL FLX_UD_K(NPNTS) ! IN UPDRAUGHT MASSFLUX AT LAYER K DOWND3B.209 C DOWND3B.210 REAL TIMESTEP ! IN MODEL TIMESTEP (S) DOWND3B.211 C DOWND3B.212 REAL CCA(NPNTS) ! IN CONVECTIVE CLOUD AMOUNT DOWND3B.213 C DOWND3B.214 REAL LR_UD_REF(NPNTS) ! IN UD PPN MIXING RATION IN LOWEST DOWND3B.215 ! PRECIPITATING LAYER IN UD DOWND3B.216 C DOWND3B.217 C----------------------------------------------------------------------- DOWND3B.218 C VARIABLES WHICH ARE INPUT AND OUTPUT DOWND3B.219 C----------------------------------------------------------------------- DOWND3B.220 C DOWND3B.221 LOGICAL BDD_START(NPNTS) ! INOUT DOWND3B.222 ! IN MASK FOR THOSE POINTS WHERE DOWND3B.223 ! DOWNDRAUGHT MAY FORM IN LAYER K DOWND3B.224 ! OUT MASK FOR THOSE POINTS WHERE DOWND3B.225 ! DOWNDRAUGHT MAY FORM IN LAYER DOWND3B.226 ! K-1 DOWND3B.227 C DOWND3B.228 REAL DTHBYDT_K(NPNTS) ! INOUT DOWND3B.229 ! IN INCREMENT TO MODEL POTENTIAL DOWND3B.230 ! TEMPERATURE OF LAYER K (K/S) DOWND3B.231 ! OUT UPDATED INCREMENT TO MODEL DOWND3B.232 ! POTENTIAL TEMPERATURE OF LAYER K DOWND3B.233 ! (K/S) DOWND3B.234 C DOWND3B.235 REAL DTHBYDT_KM1(NPNTS) ! INOUT DOWND3B.236 ! IN INCREMENT TO MODEL POTENTIAL DOWND3B.237 ! TEMPERATURE OF LAYER K-1 (K/S) DOWND3B.238 ! OUT UPDATED INCREMENT TO MODEL DOWND3B.239 ! POTENTIAL TEMPERATURE OF DOWND3B.240 ! LAYER K-1 (K/S) DOWND3B.241 C DOWND3B.242 REAL DQBYDT_K(NPNTS) ! INOUT DOWND3B.243 ! IN INCREMENT TO MODEL MIXING DOWND3B.244 ! RATIO OF LAYER K (KG/KG/S) DOWND3B.245 ! OUT UPDATED INCREMENT TO MODEL DOWND3B.246 ! MIXING RATIO OF LAYER K (KG/KG/S) DOWND3B.247 C DOWND3B.248 REAL DQBYDT_KM1(NPNTS) ! INOUT DOWND3B.249 ! IN INCREMENT TO MODEL MIXING DOWND3B.250 ! RATIO OF LAYER K-1 (KG/KG/S) DOWND3B.251 ! OUT UPDATED INCREMENT TO MODEL DOWND3B.252 ! MIXING RATIO OF DOWND3B.253 ! LAYER K-1 (KG/KG/S) DOWND3B.254 C DOWND3B.255 REAL DUBYDT_K(NPNTS) ! INOUT DOWND3B.256 ! IN INCREMENT TO MODEL U IN DOWND3B.257 ! LAYER K (M/S**2) DOWND3B.258 ! OUT UPDATED INCREMENT TO MODEL DOWND3B.259 ! U IN LAYER K (M/S**2) DOWND3B.260 C DOWND3B.261 REAL DUBYDT_KM1(NPNTS) ! INOUT DOWND3B.262 ! IN INCREMENT TO MODEL U DOWND3B.263 ! IN LAYER K-1 (KG/KG/S) DOWND3B.264 ! OUT UPDATED INCREMENT TO MODEL DOWND3B.265 ! U IN LAYER K-1 (M/S**2) DOWND3B.266 C DOWND3B.267 REAL DVBYDT_K(NPNTS) ! INOUT DOWND3B.268 ! IN INCREMENT TO MODEL V IN DOWND3B.269 ! LAYER K (M/S**2) DOWND3B.270 ! OUT UPDATED INCREMENT TO MODEL DOWND3B.271 ! V IN LAYER K (M/S**2) DOWND3B.272 C DOWND3B.273 REAL DVBYDT_KM1(NPNTS) ! INOUT DOWND3B.274 ! IN INCREMENT TO MODEL V DOWND3B.275 ! IN LAYER K-1 (KG/KG/S) DOWND3B.276 ! OUT UPDATED INCREMENT TO MODEL DOWND3B.277 ! V IN LAYER K-1 (M/S**2) DOWND3B.278 C DOWND3B.279 REAL DTRABYDT_K(NP_FULL, ! INOUT DOWND3B.280 * NTRA) ! IN INCREMENT TO MODEL TRACER OF DOWND3B.281 ! LAYER K (KG/KG/S) DOWND3B.282 ! OUT UPDATED INCREMENT TO MODEL DOWND3B.283 DOWND3B.284 C DOWND3B.285 REAL DTRABYDT_KM1(NP_FULL, ! INOUT DOWND3B.286 * NTRA) ! IN INCREMENT TO MODEL TRACER OF DOWND3B.287 ! LAYER K-1 (KG/KG/S) DOWND3B.288 ! OUT UPDATED INCREMENT TO MODEL DOWND3B.289 ! TRACER IN LAYER K-1 DOWND3B.290 ! (KG/KG/S) DOWND3B.291 C DOWND3B.292 REAL RAIN (NPNTS) ! INOUT DOWND3B.293 ! IN INITIALISED RAINFALL (KG/M**2/S) DOWND3B.294 ! OUT SURFACE RAINFALL (KG/M**2/S) DOWND3B.295 C DOWND3B.296 REAL SNOW(NPNTS) ! INOUT DOWND3B.297 ! IN INITIALISED SNOWFALL (KG/M**2/S) DOWND3B.298 ! OUT SURFACE SNOWFALL (KG/M**2/S) DOWND3B.299 C DOWND3B.300 LOGICAL BDD_ON(NPNTS) ! INOUT DOWND3B.301 ! IN MASK FOR THOSE POINTS WHERE DD DOWND3B.302 ! HAS CONTINUED FROM PREVIOUS LAYER DOWND3B.303 ! OUT MASK FOR THOSE POINTS WHERE DD DOWND3B.304 ! CONTINUES TO LAYER K-1 DOWND3B.305 C DOWND3B.306 REAL EFLUX_U_DD(NPNTS), ! INOUT DOWND3B.307 * EFLUX_V_DD(NPNTS) ! IN EDDY FLUX OF MOMENTUM DUE TO DD DOWND3B.308 ! AT TOP OF A LAYER DOWND3B.309 ! OUT EDDY FLUX OF MOMENTUM DUE TO DD DOWND3B.310 ! AT BOTTOM OF A LAYER DOWND3B.311 C DOWND3B.312 C----------------------------------------------------------------------- DOWND3B.313 C VARIABLES WHICH ARE DEFINED LOCALLY DOWND3B.314 C----------------------------------------------------------------------- DOWND3B.315 C DOWND3B.316 C DOWND3B.350 REAL WORK(NDDON_A,38) ! WORK SPACE DOWND3B.351 C DOWND3B.352 LOGICAL BWORK(NDDON_A,5) ! WORK SPACE FOR 'BIT' MASKS DOWND3B.353 C DOWND3B.354 INTEGER INDEX1(NDDON_A) ! INDEX FOR COMPRESS AND DOWND3B.355 C DOWND3B.356 LOGICAL B_DD_END(NPNTS) ! MASK FOR POINTS WHERE DOWNDRAUGHT DOWND3B.357 ! HAS ENDED DOWND3B.358 C DOWND3B.359 REAL TRADD_K_C(NDDON_A, ! TRACER CONTENT IN DOWNDRAUGHT AT DOWND3B.360 * NTRA) ! LAYER K - COMPRESSED (KG/KG) DOWND3B.361 C DOWND3B.362 REAL TRAE_K_C(NDDON_A,NTRA)! TRACER CONTENT OF ENVIRONMENT AT DOWND3B.363 ! LAYER K - COMPRESSED (KG/KG) DOWND3B.364 C DOWND3B.365 REAL TRAE_KM1_C(NDDON_A, ! TRACER CONTENT OF ENVIRONMENT IN DOWND3B.366 * NTRA) ! LAYER K-1 - COMPRESSED (KG/KG) DOWND3B.367 C DOWND3B.368 REAL DTRA_K_C(NDDON_A,NTRA)! INCREMENT TO MODEL TRACER IN LAYER DOWND3B.369 ! K - COMPRESSED (KG/KG/S) DOWND3B.370 C DOWND3B.371 REAL DTRA_KM1_C(NDDON_A, ! INCREMENT TO MODEL TRACER IN LAYER DOWND3B.372 * NTRA) ! K-1 - COMPRESSED (KG/KG/S) DOWND3B.373 C DOWND3B.374 REAL DELTRAD_C(NDDON_A, ! DEPLETION OF ENVIRONMENT TRACER DOWND3B.375 * NTRA) ! DUE TO DOWNDRAUGHT FORMATION DOWND3B.376 ! COMPRESSED DOWND3B.377 C DOWND3B.378 C DOWND3B.380 REAL FACTOR ! PROPORTION OF RAINFALL GOING INTO DOWND3B.381 ! DOWNDRAUGHT FROM UD DOWND3B.382 C DOWND3B.383 REAL FACTOR_ENV ! PROPORTION OF RAINFALL GOING INTO DOWND3B.384 ! DD FROM FALLING PPN DOWND3B.385 C DOWND3B.386 REAL PPN_DD_REF ! REFERENCE DD PPN MASS DOWND3B.387 C DOWND3B.388 C----------------------------------------------------------------------- DOWND3B.389 C EXTERNAL ROUTINES CALLED DOWND3B.390 C----------------------------------------------------------------------- DOWND3B.391 C DOWND3B.392 EXTERNAL CHG_PHSE, PEVP_BCB, DDRAUGHT DOWND3B.393 C DOWND3B.394 C----------------------------------------------------------------------- DOWND3B.395 C START OF MAIN LOOP DOWND3B.396 C UPDATE PRECIPITATION AND CALCULATE MASK FOR WHERE PRECIPITATION DOWND3B.397 C IS LIQUID DOWND3B.398 C----------------------------------------------------------------------- DOWND3B.399 C DOWND3B.400 DO I=1,NPNTS DOWND3B.401 B_DD_END(I) = .FALSE. DOWND3B.402 END DO DOWND3B.403 C DOWND3B.404 IF (K.EQ.KCT+1) THEN DOWND3B.405 DO I=1,NPNTS DOWND3B.406 RAIN_DD(I) = 0.0 DOWND3B.407 RAIN_ENV(I) = 0.0 DOWND3B.408 SNOW_DD(I) = 0.0 DOWND3B.409 SNOW_ENV(I) = 0.0 DOWND3B.410 END DO DOWND3B.411 END IF DOWND3B.412 C DOWND3B.413 C---------------------------------------------------------------------- DOWND3B.414 C INJECTION OF PRECIPITATION FROM UD AT LEVEL K DOWND3B.415 C---------------------------------------------------------------------- DOWND3B.416 C DOWND3B.417 DO I=1,NPNTS DOWND3B.418 FACTOR= 0.0 DOWND3B.419 IF (BDD_ON(I) .AND. FLX_UD_K(I).GT.0.0) THEN DOWND3B.420 FACTOR = G * FLX_DD_K(I)/FLX_UD_K(I) DOWND3B.421 FACTOR = AMIN1(FACTOR,1.0) DOWND3B.422 END IF DOWND3B.423 c DOWND3B.424 IF (BWATER_K(I)) THEN DOWND3B.425 RAIN_DD(I) = RAIN_DD(I) + PRECIP_K(I)*FACTOR DOWND3B.426 RAIN_ENV(I) = RAIN_ENV(I) + PRECIP_K(I)*(1.0-FACTOR) DOWND3B.427 ELSE DOWND3B.428 SNOW_DD(I) = SNOW_DD(I) + PRECIP_K(I)*FACTOR DOWND3B.429 SNOW_ENV(I) = SNOW_ENV(I) + PRECIP_K(I)*(1.0-FACTOR) DOWND3B.430 END IF DOWND3B.431 c DOWND3B.432 END DO DOWND3B.433 C DOWND3B.434 C---------------------------------------------------------------------- DOWND3B.435 C INTERACTION OF DOWNDRAUGHT WITH RESERVE OF PRECIPITATION OUTSIDE DOWND3B.436 C DOWNDRAUGHT DOWND3B.437 C DOWND3B.438 C BASED UPON CONTINUITY OF PRECIPITATION MIXING RATIO WITHIN DOWND3B.439 C DOWNDRAUGHT - EITHER AFTER INJECTION OF RAIN FROM UD IN LEVEL DOWND3B.440 C K OR WITH PPN MIXING RATIO IN LOWEST PRECIPITATING LAYER DOWND3B.441 C DOWND3B.442 C IF DOWNDRAUGHT INCREASES IN MASS THEN WATER INJECTED DOWND3B.443 C IF DOWNDRAUGHT DECREASES IN MASS THEN WATER IS REMOVED DOWND3B.444 C DOWND3B.445 C---------------------------------------------------------------------- DOWND3B.446 C DOWND3B.447 DO I=1,NPNTS DOWND3B.448 C DOWND3B.449 IF (BDD_ON(I)) THEN DOWND3B.450 C DOWND3B.451 FACTOR_ENV = 0.0 DOWND3B.452 IF (PRECIP_K(I).GT.0.0) THEN DOWND3B.453 C DOWND3B.454 C--------------------------------------------------------------------- DOWND3B.455 C CALCULATE NEW REFERENCE PPN MIXING RATIO DOWND3B.456 C DD PPN MIXING RATIO IN LAYER KM1 BASED ON CONTINUITY DOWND3B.457 C WITH THAT IN LAYER K DOWND3B.458 C--------------------------------------------------------------------- DOWND3B.459 C DOWND3B.460 LR_UD_REF(I) = G * PRECIP_K(I)/FLX_UD_K(I) DOWND3B.461 PPN_DD_REF = RAIN_DD(I)+SNOW_DD(I) DOWND3B.462 ELSE DOWND3B.463 C DOWND3B.464 C--------------------------------------------------------------------- DOWND3B.465 C DD PPN MIXING RATIO IN LAYER KM1 BASED ON CONTINUITY DOWND3B.466 C WITH THAT IN LAST PRECIPITATING UD LAYER DOWND3B.467 C--------------------------------------------------------------------- DOWND3B.468 C DOWND3B.469 PPN_DD_REF = LR_UD_REF(I) * FLX_DD_K(I) DOWND3B.470 END IF DOWND3B.471 C DOWND3B.472 C-------------------------------------------------------------------- DOWND3B.473 C INJECT PPN INTO DD FROM PPN FALLING OUTSIDE OF THE DD DOWND3B.474 C-------------------------------------------------------------------- DOWND3B.475 C DOWND3B.476 IF ((RAIN_ENV(I) + SNOW_ENV(I)) .GT. 0.0) THEN DOWND3B.477 !-------Already inside IF ( BDD_ON(I)) block---------------------------- DOWND3B.478 FACTOR_ENV = ( (PPN_DD_REF * (1.0+EKM14(I))* DOWND3B.479 * (1.0+EKM34(I))*(1.0-AMDETK(I))) - DOWND3B.480 * (RAIN_DD(I)+SNOW_DD(I)) ) / DOWND3B.481 * (RAIN_ENV(I)+SNOW_ENV(I)) DOWND3B.482 FACTOR_ENV = AMIN1(FACTOR_ENV,1.0) DOWND3B.483 FACTOR_ENV = AMAX1(FACTOR_ENV,-1.0) DOWND3B.484 END IF DOWND3B.485 C DOWND3B.486 IF (FACTOR_ENV.GT.0.0) THEN DOWND3B.487 RAIN_DD(I) = RAIN_DD(I) + RAIN_ENV(I)*FACTOR_ENV DOWND3B.488 RAIN_ENV(I) = RAIN_ENV(I) * (1.0-FACTOR_ENV) DOWND3B.489 SNOW_DD(I) = SNOW_DD(I) + SNOW_ENV(I)*FACTOR_ENV DOWND3B.490 SNOW_ENV(I) = SNOW_ENV(I) * (1.0-FACTOR_ENV) DOWND3B.491 ELSE DOWND3B.492 RAIN_ENV(I) = RAIN_ENV(I) - RAIN_DD(I)*FACTOR_ENV DOWND3B.493 RAIN_DD(I) = RAIN_DD(I) * (1.0+FACTOR_ENV) DOWND3B.494 SNOW_ENV(I) = SNOW_ENV(I) - SNOW_DD(I)*FACTOR_ENV DOWND3B.495 SNOW_DD(I) = SNOW_DD(I) * (1.0+FACTOR_ENV) DOWND3B.496 END IF DOWND3B.497 C DOWND3B.498 END IF DOWND3B.499 C DOWND3B.500 C-------------------------------------------------------------------- DOWND3B.501 C ZERO PRECIPITATION RATE IN LAYER K DOWND3B.502 C-------------------------------------------------------------------- DOWND3B.503 C DOWND3B.504 PRECIP_K(I) = 0.0 DOWND3B.505 C DOWND3B.506 END DO DOWND3B.507 C DOWND3B.508 C DOWND3B.509 C----------------------------------------------------------------------- DOWND3B.510 C COMPRESS OUT ON BASIS OF BIT VECTOR BDDON - THOSE POINTS WITH A DOWND3B.511 C DOWNDRAUGHT DOWND3B.512 C----------------------------------------------------------------------- DOWND3B.513 C DOWND3B.514 NDDON=0 DOWND3B.515 C DOWND3B.516 DO I=1,NPNTS DOWND3B.517 IF (BDD_ON(I)) THEN DOWND3B.518 NDDON = NDDON+1 DOWND3B.519 INDEX1(NDDON) = I DOWND3B.520 END IF DOWND3B.521 END DO DOWND3B.522 C DOWND3B.523 IF (NDDON .NE. 0) THEN DOWND3B.524 DO I=1,NDDON DOWND3B.525 WORK(I,1) = THDD_K(INDEX1(I)) DOWND3B.526 WORK(I,2) = QDD_K(INDEX1(I)) DOWND3B.527 WORK(I,3) = THE_K(INDEX1(I)) DOWND3B.528 WORK(I,4) = THE_KM1(INDEX1(I)) DOWND3B.529 WORK(I,5) = QE_K(INDEX1(I)) DOWND3B.530 WORK(I,6) = QE_KM1(INDEX1(I)) DOWND3B.531 WORK(I,7) = DTHBYDT_K(INDEX1(I)) DOWND3B.532 WORK(I,8) = DTHBYDT_KM1(INDEX1(I)) DOWND3B.533 WORK(I,9) = DQBYDT_K(INDEX1(I)) DOWND3B.534 WORK(I,10) = DQBYDT_KM1(INDEX1(I)) DOWND3B.535 WORK(I,11) = FLX_DD_K(INDEX1(I)) DOWND3B.536 WORK(I,12) = P_KM1(INDEX1(I)) DOWND3B.537 WORK(I,13) = DELPK(INDEX1(I)) DOWND3B.538 WORK(I,14) = DELPKM1(INDEX1(I)) DOWND3B.539 WORK(I,15) = EXK(INDEX1(I)) DOWND3B.540 WORK(I,16) = EXKM1(INDEX1(I)) DOWND3B.541 WORK(I,17) = DELTD(INDEX1(I)) DOWND3B.542 WORK(I,18) = DELQD(INDEX1(I)) DOWND3B.543 WORK(I,19) = AMDETK(INDEX1(I)) DOWND3B.544 WORK(I,20) = EKM14(INDEX1(I)) DOWND3B.545 WORK(I,21) = EKM34(INDEX1(I)) DOWND3B.546 WORK(I,22) = RAIN_DD(INDEX1(I)) DOWND3B.547 WORK(I,23) = SNOW_DD(INDEX1(I)) DOWND3B.548 WORK(I,24) = CCA(INDEX1(I)) DOWND3B.549 BWORK(I,1) = BDD_START(INDEX1(I)) DOWND3B.550 BWORK(I,2) = BDDWT_K(INDEX1(I)) DOWND3B.551 BWORK(I,3) = BDDWT_KM1(INDEX1(I)) DOWND3B.552 BWORK(I,4) = BDD_ON(INDEX1(I)) DOWND3B.553 BWORK(I,5) = B_DD_END(INDEX1(I)) DOWND3B.554 END DO DOWND3B.555 C DOWND3B.556 IF(L_MOM)THEN DOWND3B.557 DO I=1,NDDON DOWND3B.558 WORK(I,25) = UDD_K(INDEX1(I)) DOWND3B.559 WORK(I,26) = VDD_K(INDEX1(I)) DOWND3B.560 WORK(I,27) = UE_K(INDEX1(I)) DOWND3B.561 WORK(I,28) = VE_K(INDEX1(I)) DOWND3B.562 WORK(I,29) = UE_KM1(INDEX1(I)) DOWND3B.563 WORK(I,30) = VE_KM1(INDEX1(I)) DOWND3B.564 WORK(I,31) = DUBYDT_K(INDEX1(I)) DOWND3B.565 WORK(I,32) = DUBYDT_KM1(INDEX1(I)) DOWND3B.566 WORK(I,33) = DVBYDT_K(INDEX1(I)) DOWND3B.567 WORK(I,34) = DVBYDT_KM1(INDEX1(I)) DOWND3B.568 WORK(I,35) = DELUD(INDEX1(I)) DOWND3B.569 WORK(I,36) = DELVD(INDEX1(I)) DOWND3B.570 WORK(I,37) = EFLUX_U_DD(INDEX1(I)) DOWND3B.571 WORK(I,38) = EFLUX_V_DD(INDEX1(I)) DOWND3B.572 END DO DOWND3B.573 END IF DOWND3B.574 C DOWND3B.575 IF(L_TRACER)THEN DOWND3B.576 C DOWND3B.577 DO KTRA=1,NTRA DOWND3B.578 DO I=1,NDDON DOWND3B.579 TRADD_K_C(I,KTRA) = TRADD_K(INDEX1(I),KTRA) DOWND3B.580 TRAE_K_C(I,KTRA) = TRAE_K(INDEX1(I),KTRA) DOWND3B.581 TRAE_KM1_C(I,KTRA) = TRAE_KM1(INDEX1(I),KTRA) DOWND3B.582 DTRA_K_C(I,KTRA) = DTRABYDT_K(INDEX1(I),KTRA) DOWND3B.583 DTRA_KM1_C(I,KTRA) = DTRABYDT_KM1(INDEX1(I),KTRA) DOWND3B.584 DELTRAD_C(I,KTRA) = DELTRAD(INDEX1(I),KTRA) DOWND3B.585 END DO DOWND3B.586 END DO DOWND3B.587 C DOWND3B.588 END IF DOWND3B.589 C DOWND3B.590 C DOWND3B.591 C----------------------------------------------------------------------- DOWND3B.592 C START DOWNDRAUGHT CALCULATION DOWND3B.593 C----------------------------------------------------------------------- DOWND3B.594 C DOWND3B.595 C DOWND3B.596 CALL DDRAUGHT
(NDDON,NDDON_A,K,KCT,WORK(1,1),WORK(1,2), DOWND3B.597 & WORK(1,3),WORK(1,4),WORK(1,5),WORK(1,6), DOWND3B.598 & WORK(1,7),WORK(1,8),WORK(1,9),WORK(1,10), DOWND3B.599 & WORK(1,11),WORK(1,12),WORK(1,13),WORK(1,14), DOWND3B.600 & WORK(1,15),WORK(1,16),WORK(1,17),WORK(1,18), DOWND3B.601 & WORK(1,19),WORK(1,20),WORK(1,21),WORK(1,22), DOWND3B.602 & WORK(1,23),BWORK(1,1),BWORK(1,2),BWORK(1,3), DOWND3B.603 & BWORK(1,4),BWORK(1,5),WORK(1,24),L_MOM, DOWND3B.604 & WORK(1,25),WORK(1,26),WORK(1,27),WORK(1,28), DOWND3B.605 & WORK(1,29),WORK(1,30),WORK(1,31),WORK(1,32), DOWND3B.606 & WORK(1,33),WORK(1,34),WORK(1,35),WORK(1,36), DOWND3B.607 & WORK(1,37),WORK(1,38), DOWND3B.608 & L_TRACER,NTRA,TRADD_K_C,TRAE_K_C,TRAE_KM1_C, DOWND3B.609 & DTRA_K_C,DTRA_KM1_C,DELTRAD_C) DOWND3B.610 C DOWND3B.611 C----------------------------------------------------------------------- DOWND3B.612 C EXPAND REQUIRED VECTORS BACK TO FULL FIELDS DOWND3B.613 C----------------------------------------------------------------------- DOWND3B.614 C DOWND3B.615 DO I=1,NDDON DOWND3B.616 THDD_K(INDEX1(I)) = WORK(I,1) DOWND3B.617 QDD_K(INDEX1(I)) = WORK(I,2) DOWND3B.618 DTHBYDT_K(INDEX1(I)) = WORK(I,7) DOWND3B.619 DTHBYDT_KM1(INDEX1(I)) = WORK(I,8) DOWND3B.620 DQBYDT_K(INDEX1(I)) = WORK(I,9) DOWND3B.621 DQBYDT_KM1(INDEX1(I)) = WORK(I,10) DOWND3B.622 FLX_DD_K(INDEX1(I)) = WORK(I,11) DOWND3B.623 RAIN_DD(INDEX1(I)) = WORK(I,22) DOWND3B.624 SNOW_DD(INDEX1(I)) = WORK(I,23) DOWND3B.625 BDD_START(INDEX1(I)) = BWORK(I,1) DOWND3B.626 BDDWT_K(INDEX1(I)) = BWORK(I,2) DOWND3B.627 BDDWT_KM1(INDEX1(I)) = BWORK(I,3) DOWND3B.628 BDD_ON(INDEX1(I)) = BWORK(I,4) DOWND3B.629 B_DD_END(INDEX1(I)) = BWORK(I,5) DOWND3B.630 END DO DOWND3B.631 C DOWND3B.632 IF(L_MOM)THEN DOWND3B.633 DO I=1,NDDON DOWND3B.634 UDD_K(INDEX1(I)) = WORK(I,25) DOWND3B.635 VDD_K(INDEX1(I)) = WORK(I,26) DOWND3B.636 DUBYDT_K(INDEX1(I)) = WORK(I,31) DOWND3B.637 DUBYDT_KM1(INDEX1(I)) = WORK(I,32) DOWND3B.638 DVBYDT_K(INDEX1(I)) = WORK(I,33) DOWND3B.639 DVBYDT_KM1(INDEX1(I)) = WORK(I,34) DOWND3B.640 EFLUX_U_DD(INDEX1(I)) = WORK(I,37) DOWND3B.641 EFLUX_V_DD(INDEX1(I)) = WORK(I,38) DOWND3B.642 END DO DOWND3B.643 END IF DOWND3B.644 C DOWND3B.645 IF(L_TRACER)THEN DOWND3B.646 C DOWND3B.647 DO KTRA=1,NTRA DOWND3B.648 DO I=1,NDDON DOWND3B.649 TRADD_K(INDEX1(I),KTRA) = TRADD_K_C(I,KTRA) DOWND3B.650 DTRABYDT_K(INDEX1(I),KTRA) = DTRA_K_C(I,KTRA) DOWND3B.651 DTRABYDT_KM1(INDEX1(I),KTRA) = DTRA_KM1_C(I,KTRA) DOWND3B.652 END DO DOWND3B.653 END DO DOWND3B.654 C DOWND3B.655 END IF DOWND3B.656 C DOWND3B.657 END IF DOWND3B.658 C DOWND3B.659 C----------------------------------------------------------------------- DOWND3B.660 C RESET PRECIPITATION FALLING THROUGH ENVIRONMENT IF DOWNDRAUGHT DOWND3B.661 C DID NOT FORM DOWND3B.662 C----------------------------------------------------------------------- DOWND3B.663 C DOWND3B.664 DO I=1,NPNTS DOWND3B.665 IF (.NOT.BDD_ON(I).AND..NOT.B_DD_END(I)) THEN DOWND3B.666 RAIN_ENV(I) = RAIN_ENV(I)+RAIN_DD(I) DOWND3B.667 SNOW_ENV(I) = SNOW_ENV(I)+SNOW_DD(I) DOWND3B.668 RAIN_DD(I) = 0.0 DOWND3B.669 SNOW_DD(I) = 0.0 DOWND3B.670 END IF DOWND3B.671 END DO DOWND3B.672 C DOWND3B.673 C----------------------------------------------------------------------- DOWND3B.674 C CARRY OUT CHANGE OF PHASE CALCULATION FOR PRECIPITATION FALLING DOWND3B.675 C THROUGH ENVIRONMENT DOWND3B.676 C----------------------------------------------------------------------- DOWND3B.677 C DOWND3B.678 CALL CHG_PHSE
(NPNTS,K,RAIN_ENV,SNOW_ENV,DTHBYDT_KM1, DOWND3B.679 & EXK,EXKM1,DELPKM1,THE_K,THE_KM1, DOWND3B.680 & TIMESTEP,CCA) DOWND3B.681 C DOWND3B.682 C----------------------------------------------------------------------- DOWND3B.683 C EVAPORATE RAIN FALLING THROUGH ENVIRONMENT IF LAYER K BELOW DOWND3B.684 C CLOUD BASE DOWND3B.685 C----------------------------------------------------------------------- DOWND3B.686 C DOWND3B.687 CALL PEVP_BCB
(NPNTS,K-1,ICCB,THE_KM1,P_KM1,QE_KM1,DELPKM1, DOWND3B.688 & RAIN_ENV,SNOW_ENV,DTHBYDT_KM1,DQBYDT_KM1, DOWND3B.689 & EXKM1,TIMESTEP,CCA) DOWND3B.690 C DOWND3B.691 C----------------------------------------------------------------------- DOWND3B.692 C RESET PRECIPITATION FALLING THROUGH ENVIRONMENT IF DOWNDRAUGHT DOWND3B.693 C TERMINATES DOWND3B.694 C----------------------------------------------------------------------- DOWND3B.695 C DOWND3B.696 DO I=1,NPNTS DOWND3B.697 IF (B_DD_END(I)) THEN DOWND3B.698 RAIN_ENV(I) = RAIN_ENV(I)+RAIN_DD(I) DOWND3B.699 SNOW_ENV(I) = SNOW_ENV(I)+SNOW_DD(I) DOWND3B.700 RAIN_DD(I) = 0.0 DOWND3B.701 SNOW_DD(I) = 0.0 DOWND3B.702 END IF DOWND3B.703 END DO DOWND3B.704 C DOWND3B.705 C----------------------------------------------------------------------- DOWND3B.706 C UPDATE RAIN AND SNOW DOWND3B.707 C----------------------------------------------------------------------- DOWND3B.708 C DOWND3B.709 IF (K.EQ.2) THEN DOWND3B.710 DO I=1,NPNTS DOWND3B.711 RAIN(I) = RAIN(I)+RAIN_DD(I)+RAIN_ENV(I) DOWND3B.712 SNOW(I) = SNOW(I)+SNOW_DD(I)+SNOW_ENV(I) DOWND3B.713 END DO DOWND3B.714 END IF DOWND3B.715 C DOWND3B.716 RETURN DOWND3B.717 END DOWND3B.718 C DOWND3B.719 *ENDIF DOWND3B.720