*IF DEF,A05_3B AJX1F405.175
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved. GTS2F400.14674
C GTS2F400.14675
C Use, duplication or disclosure of this code is subject to the GTS2F400.14676
C restrictions as set forth in the contract. GTS2F400.14677
C GTS2F400.14678
C Meteorological Office GTS2F400.14679
C London Road GTS2F400.14680
C BRACKNELL GTS2F400.14681
C Berkshire UK GTS2F400.14682
C RG12 2SZ GTS2F400.14683
C GTS2F400.14684
C If no contract has been raised with this copy of the code, the use, GTS2F400.14685
C duplication or disclosure of it is strictly prohibited. Permission GTS2F400.14686
C to do so must first be obtained in writing from the Head of Numerical GTS2F400.14687
C Modelling at the above address. GTS2F400.14688
C ******************************COPYRIGHT****************************** GTS2F400.14689
C GTS2F400.14690
CLL SUBROUTINE DDRAUGHT----------------------------------------------- DDRAUG3A.3
CLL DDRAUG3A.4
CLL PURPOSE : DOWNDRAUGHT ROUTINE DDRAUG3A.5
CLL DDRAUG3A.6
CLL CONVECTIVE DOWNDRAUGHT BASED ON PARCEL THEORY DDRAUG3A.7
CLL DDRAUG3A.8
CLL CARRY OUT DRY DESCENT DDRAUG3A.9
CLL DDRAUG3A.10
CLL CALCULATE SUBSATURATION DDRAUG3A.11
CLL DDRAUG3A.12
CLL CALCULATE EFFECT ON THE ENVIRONMENT DDRAUG3A.13
CLL DDRAUG3A.14
CLL SUITABLE FOR SINGLE COLUMN MODEL USE DDRAUG3A.15
CLL DDRAUG3A.16
CLL DDRAUG3A.17
CLL MODEL MODIFICATION HISTORY FROM MODEL VERSION 3.0: DDRAUG3A.18
CLL VERSION DATE DDRAUG3A.19
CLL 4.0 5/5/95 New deck added for version 3A of convection DDRAUG3A.20
CLL scheme. Includes tracers and momentum in the DDRAUG3A.21
CLL downdraught. DDRAUG3A.22
CLL Pete Inness. DDRAUG3A.23
CLL 4.5 Jul. 98 Kill the IBM specific lines (JCThil) AJC1F405.7
CLL DDRAUG3A.24
CLL PROGRAMMING STANDARDS : UNIFIED MODEL DOCUMENTATION PAPER NO. 3 DDRAUG3A.25
CLL VERSION NO. 4 DATED 5/2/92 DDRAUG3A.26
CLL DDRAUG3A.27
CLL LOGICAL COMPONENTS COVERED: DDRAUG3A.28
CLL DDRAUG3A.29
CLL SYSTEM TASK : P27 DDRAUG3A.30
CLL DDRAUG3A.31
CLL DOCUMENTATION : UNIFIED MODEL DOCUMENTATION PAPER P27 DDRAUG3A.32
CLL DDRAUG3A.33
CLLEND----------------------------------------------------------------- DDRAUG3A.34
C DDRAUG3A.35
C*L ARGUMENTS--------------------------------------------------------- DDRAUG3A.36
C DDRAUG3A.37
SUBROUTINE DDRAUGHT (NPNTS,NP_FULL,K,KCT,THDD_K,QDD_K,THE_K, 4,21DDRAUG3A.38
& THE_KM1,QE_K,QE_KM1,DTHBYDT_K,DTHBYDT_KM1, DDRAUG3A.39
& DQBYDT_K,DQBYDT_KM1,FLX_DD_K,P_KM1,DELPK, DDRAUG3A.40
& DELPKM1,EXK,EXKM1,DELTD,DELQD,AMDETK,EKM14, DDRAUG3A.41
& EKM34,RAIN,SNOW,BDD_START,BDDWT_K,BDDWT_KM1, DDRAUG3A.42
& BDD_ON,B_DD_END,CCA,L_MOM,UDD_K,VDD_K, DDRAUG3A.43
& UE_K,VE_K,UE_KM1,VE_KM1,DUBYDT_K,DUBYDT_KM1, DDRAUG3A.44
& DVBYDT_K,DVBYDT_KM1,DELUD,DELVD,EFLUX_U_DD, DDRAUG3A.45
& EFLUX_V_DD,L_TRACER, DDRAUG3A.46
& NTRA,TRADD_K,TRAE_K,TRAE_KM1,DTRABYDT_K, DDRAUG3A.47
& DTRABYDT_KM1,DELTRAD) DDRAUG3A.48
C DDRAUG3A.49
IMPLICIT NONE DDRAUG3A.50
C DDRAUG3A.51
C----------------------------------------------------------------------- DDRAUG3A.52
C MODEL CONSTANTS DDRAUG3A.53
C----------------------------------------------------------------------- DDRAUG3A.54
C DDRAUG3A.55
*CALL C_0_DG_C
DDRAUG3A.56
*CALL DDKMDET
DDRAUG3A.57
C DDRAUG3A.58
C----------------------------------------------------------------------- DDRAUG3A.59
C VECTOR LENGTHS AND LOOP COUNTERS DDRAUG3A.60
C----------------------------------------------------------------------- DDRAUG3A.61
C DDRAUG3A.62
C DDRAUG3A.66
INTEGER I,KTRA ! LOOP COUNTERS DDRAUG3A.67
C DDRAUG3A.68
INTEGER NPNTS ! IN NUMBER OF POINTS DDRAUG3A.69
C DDRAUG3A.70
INTEGER NP_FULL ! IN FULL VECTOR LENGTH DDRAUG3A.71
C DDRAUG3A.72
INTEGER NTRA ! NUMBER OF TRACERS DDRAUG3A.73
C DDRAUG3A.74
INTEGER K ! IN PRESENT MODEL LAYER DDRAUG3A.75
C DDRAUG3A.76
C----------------------------------------------------------------------- DDRAUG3A.77
C VARIABLES WHICH ARE INPUT DDRAUG3A.78
C----------------------------------------------------------------------- DDRAUG3A.79
C DDRAUG3A.80
INTEGER KCT ! IN CONVECTIVE CLOUD TOP DDRAUG3A.81
C DDRAUG3A.82
REAL THE_KM1(NPNTS) ! IN POTENTIAL TEMPERATURE OF DDRAUG3A.83
! ENVIRONMENT IN LAYER K-1 (K) DDRAUG3A.84
C DDRAUG3A.85
REAL QE_KM1(NPNTS) ! IN MIXING RATIO OF ENVIRONMENT IN DDRAUG3A.86
! LAYER K-1 (KG/KG) DDRAUG3A.87
C DDRAUG3A.88
REAL UE_KM1(NPNTS) ! IN U OF ENVIRONMENT IN LAYER K-1 DDRAUG3A.89
! (M/S) DDRAUG3A.90
C DDRAUG3A.91
REAL VE_KM1(NPNTS) ! IN V OF ENVIRONMENT IN LAYER K-1 DDRAUG3A.92
! (M/S) DDRAUG3A.93
C DDRAUG3A.94
REAL TRAE_KM1(NP_FULL,NTRA) ! IN TRACER CONTENT OF ENVIRONMENT DDRAUG3A.95
! IN LAYER K-1 (KG/KG) DDRAUG3A.96
C DDRAUG3A.97
REAL P_KM1(NPNTS) ! IN PRESSURE OF LAYER K-1 (PA) DDRAUG3A.98
C DDRAUG3A.99
REAL DELPK(NPNTS) ! IN CHANGE IN PRESSURE ACROSS DDRAUG3A.100
! LAYER K (PA) DDRAUG3A.101
C DDRAUG3A.102
REAL DELPKM1(NPNTS) ! IN CHANGE IN PRESSURE ACROSS DDRAUG3A.103
! LAYER K-1 (PA) DDRAUG3A.104
C DDRAUG3A.105
REAL EXK(NPNTS) ! IN EXNER RATIO IN LAYER K DDRAUG3A.106
C DDRAUG3A.107
REAL EXKM1(NPNTS) ! IN EXNER RATIO IN LAYER K-1 DDRAUG3A.108
C DDRAUG3A.109
REAL AMDETK(NPNTS) ! IN MIXING DETRAINMENT RATE DDRAUG3A.110
C DDRAUG3A.111
REAL EKM14(NPNTS) ! IN EXNER RATIO AT LAYER K-1/4 DDRAUG3A.112
C DDRAUG3A.113
REAL EKM34(NPNTS) ! IN EXNER RATIO AT LAYER K-3/4 DDRAUG3A.114
C DDRAUG3A.115
REAL DELTD(NPNTS) ! IN COOLING NECESSARY TO ACHIEVE DDRAUG3A.116
! SATURATION (K) DDRAUG3A.117
C DDRAUG3A.118
REAL DELQD(NPNTS) ! IN MOISTENING NECESSARY TO ACHIEVE DDRAUG3A.119
! SATURATION (KG/KG) DDRAUG3A.120
C DDRAUG3A.121
REAL DELUD(NPNTS) ! IN CHANGE TO ENVIRONMENT U DUE TO DDRAUG3A.122
! DOWNDRAUGHT FORMATION (M/S) DDRAUG3A.123
C DDRAUG3A.124
REAL DELVD(NPNTS) ! IN CHANGE TO ENVIRONMENT V DUE TO DDRAUG3A.125
! DOWNDRAUGHT FORMATION (M/S) DDRAUG3A.126
C DDRAUG3A.127
REAL DELTRAD(NP_FULL,NTRA) ! IN DEPLETION OF ENV. TRACER DUE DDRAUG3A.128
! TO DOWNDRAUGHT FORMATION DDRAUG3A.129
C DDRAUG3A.130
LOGICAL BDDWT_K(NPNTS) ! IN MASK FOR THOSE POINTS IN DDRAUG3A.131
! DOWNDRAUGHT WHERE PRECIPITATION DDRAUG3A.132
! IS LIQUID IN LAYER K DDRAUG3A.133
C DDRAUG3A.134
LOGICAL BDDWT_KM1(NPNTS) ! IN MASK FOR THOSE POINTS IN DDRAUG3A.135
! DOWNDRAUGHT WHERE PRECIPITATION DDRAUG3A.136
! IS LIQUID IN LAYER K-1 DDRAUG3A.137
C DDRAUG3A.138
LOGICAL L_TRACER ! IN SWITCH FOR INCLUSION OF TRACERS DDRAUG3A.139
C DDRAUG3A.140
LOGICAL L_MOM ! IN SWITCH FOR INCLUSION DDRAUG3A.141
! OF MOMENTUM TRANSPORTS DDRAUG3A.142
C DDRAUG3A.143
REAL CCA(NPNTS) ! IN CONVECTIVE CLOUD AMOUNT DDRAUG3A.144
C DDRAUG3A.145
C----------------------------------------------------------------------- DDRAUG3A.146
C VARIABLES WHICH ARE INPUT AND OUTPUT DDRAUG3A.147
C----------------------------------------------------------------------- DDRAUG3A.148
C DDRAUG3A.149
REAL THDD_K(NPNTS) ! INOUT DDRAUG3A.150
! IN POTENTIAL TEMPERATURE OF DDRAUG3A.151
! DOWNDRAUGHT IN LAYER K (K) DDRAUG3A.152
! OUT POTENTIAL TEMPERATURE RESET DDRAUG3A.153
! FOR NEXT LAYER (K) DDRAUG3A.154
C DDRAUG3A.155
REAL QDD_K(NPNTS) ! INOUT DDRAUG3A.156
! IN DOWNDRAUGHT MIXING RATIO OF DDRAUG3A.157
! LAYER K (KG/KG) DDRAUG3A.158
! OUT MIXING RATIO RESET FOR NEXT DDRAUG3A.159
! LAYER (KG/KG) DDRAUG3A.160
C DDRAUG3A.161
REAL UDD_K(NPNTS) ! INOUT DDRAUG3A.162
! IN DOWNDRAUGHT U IN LAYER K DDRAUG3A.163
! (M/S) DDRAUG3A.164
! OUT U RESET FOR NEXT LAYER (M/S) DDRAUG3A.165
C DDRAUG3A.166
REAL VDD_K(NPNTS) ! INOUT DDRAUG3A.167
! IN DOWNDRAUGHT V IN LAYER K DDRAUG3A.168
! (M/S) DDRAUG3A.169
! OUT V RESET FOR NEXT LAYER (M/S) DDRAUG3A.170
C DDRAUG3A.171
REAL TRADD_K(NP_FULL,NTRA) ! INOUT DDRAUG3A.172
! IN DOWNDRAUGHT TRACER CONTENT OF DDRAUG3A.173
! LAYER K (KG/KG) DDRAUG3A.174
! OUT TRACER CONTENT RESET FOR NEXT DDRAUG3A.175
! LAYER (KG/KG) DDRAUG3A.176
C DDRAUG3A.177
REAL THE_K(NPNTS) ! INOUT DDRAUG3A.178
! IN POTENTIAL TEMPERATURE OF DDRAUG3A.179
! ENVIRONMENT IN LAYER K (K) DDRAUG3A.180
! OUT ENVIRONMENT POTENTIAL DDRAUG3A.181
! TEMPERATURE RESET FOR NEXT DDRAUG3A.182
! LAYER (K) DDRAUG3A.183
C DDRAUG3A.184
REAL QE_K(NPNTS) ! INOUT DDRAUG3A.185
! IN MIXING RATIO OF ENVIRONMENT DDRAUG3A.186
! LAYER K (KG/KG) DDRAUG3A.187
! OUT ENVIRONMENT MIXING RATIO DDRAUG3A.188
! RESET FOR NEXT LAYER (KG/KG) DDRAUG3A.189
C DDRAUG3A.190
REAL UE_K(NPNTS) ! INOUT DDRAUG3A.191
! IN U OF ENVIRONMENT IN LAYER K DDRAUG3A.192
! (M/S) DDRAUG3A.193
! OUT ENVIRONMENT U RESET FOR DDRAUG3A.194
! NEXT LAYER (M/S) DDRAUG3A.195
C DDRAUG3A.196
REAL VE_K(NPNTS) ! INOUT DDRAUG3A.197
! IN V OF ENVIRONMENT IN LAYER K DDRAUG3A.198
! (M/S) DDRAUG3A.199
! OUT ENVIRONMENT V RESET FOR DDRAUG3A.200
! NEXT LAYER (M/S) DDRAUG3A.201
C DDRAUG3A.202
REAL TRAE_K(NP_FULL,NTRA) ! INOUT DDRAUG3A.203
! IN TRACER CONTENT OF ENVIRONMENT DDRAUG3A.204
! IN LAYER K (KG/KG) DDRAUG3A.205
! OUT ENVIRONMENT TRACER CONTENT DDRAUG3A.206
! RESET FOR NEXT LAYER (KG/KG) DDRAUG3A.207
C DDRAUG3A.208
REAL FLX_DD_K(NPNTS) ! INOUT DDRAUG3A.209
! IN DOWNDRAUGHT MASS FLUX OF DDRAUG3A.210
! LAYER K (PA/S) DDRAUG3A.211
! OUT DOWNDRAUGHT MASS FLUX RESET DDRAUG3A.212
! FOR NEXT LAYER (PA/S) DDRAUG3A.213
C DDRAUG3A.214
REAL RAIN(NPNTS) ! INOUT DDRAUG3A.215
! IN AMOUNT OF RAIN (KG/M**2/S) DDRAUG3A.216
! OUT UPDATED RAINFALL (KG/M**2/S) DDRAUG3A.217
C DDRAUG3A.218
REAL SNOW(NPNTS) ! INOUT DDRAUG3A.219
! IN AMOUNT OF SNOW(KG/M**2/S) DDRAUG3A.220
! OUT UPDATED SNOWFALL (KG/M**2/S) DDRAUG3A.221
C DDRAUG3A.222
REAL DTHBYDT_K(NPNTS) ! INOUT DDRAUG3A.223
! IN INCREMENT TO MODEL POTENTIAL DDRAUG3A.224
! TEMPERATURE OF LAYER K (K/S) DDRAUG3A.225
! OUT UPDATED INCREMENT TO MODEL DDRAUG3A.226
! POTENTIAL TEMPERATURE IN DDRAUG3A.227
! LAYER K (K/S) DDRAUG3A.228
C DDRAUG3A.229
REAL DTHBYDT_KM1(NPNTS) ! INOUT DDRAUG3A.230
! IN INCREMENT TO MODEL POTENTIAL DDRAUG3A.231
! TEMPERATURE IN LAYER K-1 (K/S) DDRAUG3A.232
! OUT UPDATED INCREMENT TO MODEL DDRAUG3A.233
! POTENTIAL TEMPERATURE IN DDRAUG3A.234
! LAYER K-1 (K/S) DDRAUG3A.235
C DDRAUG3A.236
REAL DQBYDT_K(NPNTS) ! INOUT DDRAUG3A.237
! IN INCREMENT TO MODEL MIXING DDRAUG3A.238
! RATIO IN LAYER K (KG/KG/S) DDRAUG3A.239
! OUT UPDATED INCREMENT TO MODEL DDRAUG3A.240
! MIXING RATIO IN LAYER K DDRAUG3A.241
! (KG/KG/S) DDRAUG3A.242
C DDRAUG3A.243
REAL DQBYDT_KM1(NPNTS) ! INOUT DDRAUG3A.244
! IN INCREMENT TO MODEL MIXING DDRAUG3A.245
! RATIO IN LAYER K-1 (KG/KG/S) DDRAUG3A.246
! OUT UPDATED INCREMENT TO MODEL DDRAUG3A.247
! MIXING RATIO IN LAYER K-1 DDRAUG3A.248
! (KG/KG/S) DDRAUG3A.249
C DDRAUG3A.250
REAL DUBYDT_K(NPNTS) ! INOUT DDRAUG3A.251
! IN INCREMENT TO MODEL U IN DDRAUG3A.252
! LAYER K (M/S**2) DDRAUG3A.253
! OUT UPDATED INCREMENT TO MODEL DDRAUG3A.254
! U IN LAYER K (M/S**2) DDRAUG3A.255
C DDRAUG3A.256
REAL DUBYDT_KM1(NPNTS) ! INOUT DDRAUG3A.257
! IN INCREMENT TO MODEL U IN DDRAUG3A.258
! LAYER K-1 (M/S**2) DDRAUG3A.259
! OUT UPDATED INCREMENT TO MODEL DDRAUG3A.260
! U IN LAYER K-1 (M/S**2) DDRAUG3A.261
C DDRAUG3A.262
REAL DVBYDT_K(NPNTS) ! INOUT DDRAUG3A.263
! IN INCREMENT TO MODEL V IN DDRAUG3A.264
! LAYER K (M/S**2) DDRAUG3A.265
! OUT UPDATED INCREMENT TO MODEL DDRAUG3A.266
! V IN LAYER K (M/S**2) DDRAUG3A.267
C DDRAUG3A.268
REAL DVBYDT_KM1(NPNTS) ! INOUT DDRAUG3A.269
! IN INCREMENT TO MODEL V IN DDRAUG3A.270
! LAYER K-1 (M/S**2) DDRAUG3A.271
! OUT UPDATED INCREMENT TO MODEL DDRAUG3A.272
! V IN LAYER K-1 (M/S**2) DDRAUG3A.273
C DDRAUG3A.274
REAL DTRABYDT_K(NP_FULL,NTRA) ! INOUT DDRAUG3A.275
! IN INCREMENT TO MODEL TRACER DDRAUG3A.276
! CONTENTOF LAYER K (KG/KG/S) DDRAUG3A.277
! OUT UPDATED INCREMENT TO MODEL DDRAUG3A.278
! TRACER CONTENT IN LAYER K DDRAUG3A.279
! (KG/KG/S) DDRAUG3A.280
C DDRAUG3A.281
REAL DTRABYDT_KM1(NP_FULL, ! INOUT DDRAUG3A.282
* NTRA) ! IN INCREMENT TO MODEL TRACER DDRAUG3A.283
! CONTENT IN LAYER K-1 DDRAUG3A.284
! (KG/KG/S) DDRAUG3A.285
! OUT UPDATED INCREMENT TO MODEL DDRAUG3A.286
! TRACER CONTENT IN LAYER K-1 DDRAUG3A.287
! (KG/KG/S) DDRAUG3A.288
C DDRAUG3A.289
LOGICAL BDD_ON(NPNTS) ! INOUT DDRAUG3A.290
! IN MASK FOR THOSE POINTS WHERE DD DDRAUG3A.291
! HAS CONTINUED FROM LAYER K+1 DDRAUG3A.292
! OUT MASK FOR THOSE POINTS WHERE DD DDRAUG3A.293
! CONTINUES TO LAYER K-1 DDRAUG3A.294
C DDRAUG3A.295
REAL EFLUX_U_DD(NPNTS), ! INOUT DDRAUG3A.296
* EFLUX_V_DD(NPNTS) ! IN EDDY FLUX OF MOMENTUM DUE TO DDRAUG3A.297
! DD AT TOP OF A LAYER DDRAUG3A.298
! OUT EDDY FLUX OF MOMENTUM DUE TO DDRAUG3A.299
! DD AT BOTTOM OF A LAYER DDRAUG3A.300
C DDRAUG3A.301
C----------------------------------------------------------------------- DDRAUG3A.302
C VARIABLES WHICH ARE OUTPUT DDRAUG3A.303
C----------------------------------------------------------------------- DDRAUG3A.304
C DDRAUG3A.305
LOGICAL BDD_START(NPNTS) ! OUT MASK FOR THOSE POINTS WHERE DDRAUG3A.306
! DOWNDRAUGHT MAY START IN DDRAUG3A.307
! LAYER K-1 DDRAUG3A.308
C DDRAUG3A.309
LOGICAL B_DD_END(NPNTS) ! OUT MASK FOR THOSE POINTS WHERE DDRAUG3A.310
! DOWNDRAUGHT IS ENDING IN DDRAUG3A.311
! LAYER K-1 DDRAUG3A.312
C DDRAUG3A.313
C----------------------------------------------------------------------- DDRAUG3A.314
C VARIABLES WHICH ARE DEFINED LOCALLY DDRAUG3A.315
C----------------------------------------------------------------------- DDRAUG3A.316
C DDRAUG3A.317
C DDRAUG3A.353
REAL THDD_KM1(NPNTS) ! POTENTIAL TEMPERATURE OF DDRAUG3A.354
! DOWNDRAUGHT IN LAYER K-1 (K) DDRAUG3A.355
C DDRAUG3A.356
REAL QDD_KM1(NPNTS) ! DOWNDRAUGHT MIXING RATIO OF DDRAUG3A.357
! LAYER K-1 (KG/KG) DDRAUG3A.358
C DDRAUG3A.359
REAL UDD_KM1(NPNTS) ! DOWNDRAUGHT U IN LAYER K-1 (M/S) DDRAUG3A.360
C DDRAUG3A.361
REAL VDD_KM1(NPNTS) ! DOWNDRAUGHT V IN LAYER K-1 (M/S) DDRAUG3A.362
C DDRAUG3A.363
REAL TRADD_KM1(NPNTS,NTRA) ! TRACER CONTENT OF DOWNDRAUGHT DDRAUG3A.364
! IN LAYER K-1 (KG/KG) DDRAUG3A.365
C DDRAUG3A.366
REAL QSATDD(NPNTS) ! SATURATED DOWNDRAUGHT MIXING DDRAUG3A.367
! RATIO (KG/KG) DDRAUG3A.368
C DDRAUG3A.369
REAL TDD_KM1(NPNTS) ! TEMPERATURE OF DOWNDRAUGHT DDRAUG3A.370
! IN LAYER K-1 (K) DDRAUG3A.371
C DDRAUG3A.372
REAL THDDS(NPNTS) ! POTENTIAL TEMPERATURE OF DDRAUG3A.373
! SATURATED DOWNDRAUGHT (K) DDRAUG3A.374
C DDRAUG3A.375
REAL QDDS(NPNTS) ! SATURATED DOWNDRAUGHT MIXING DDRAUG3A.376
! RATIO (KG/KG) DDRAUG3A.377
C DDRAUG3A.378
REAL FLX_DD_KM1(NPNTS) ! DOWNDRAUGHT MASS FLUX IN DDRAUG3A.379
! LAYER K-1 (PA/S) DDRAUG3A.380
C DDRAUG3A.381
REAL RAIN_TMP(NPNTS) ! LIQUID PRECIPITATION STORE DDRAUG3A.382
C DDRAUG3A.383
REAL SNOW_TMP(NPNTS) ! SNOW STORE DDRAUG3A.384
C DDRAUG3A.385
C DDRAUG3A.387
C----------------------------------------------------------------------- DDRAUG3A.388
C EXTERNAL ROUTINES CALLED DDRAUG3A.389
C----------------------------------------------------------------------- DDRAUG3A.390
C DDRAUG3A.391
EXTERNAL SATCAL, CRS_FRZL, QSAT, DEVAP, TERMDD, DDRAUG3A.392
* DD_ENV, EVP DDRAUG3A.393
C DDRAUG3A.394
C----------------------------------------------------------------------- DDRAUG3A.395
C CALCULATE MASK FOR THOSE POINTS IN DOWNDRAUGHT WHERE PRECIPITATION DDRAUG3A.396
C IS LIQUID DDRAUG3A.397
C DDRAUG3A.398
C STORE PRECIPITATION IN LAYER K IN TEMPORARY VARIABLES DDRAUG3A.399
C----------------------------------------------------------------------- DDRAUG3A.400
C DDRAUG3A.401
DO I=1,NPNTS DDRAUG3A.402
IF (K .EQ. KCT+1 .OR. BDD_START(I)) THEN DDRAUG3A.403
BDDWT_K(I) = THDD_K(I) .GT. TM/EXK(I) DDRAUG3A.404
ELSE DDRAUG3A.405
BDDWT_K(I) = BDDWT_KM1(I) DDRAUG3A.406
END IF DDRAUG3A.407
RAIN_TMP(I) = RAIN(I) DDRAUG3A.408
SNOW_TMP(I) = SNOW(I) DDRAUG3A.409
C DDRAUG3A.410
C----------------------------------------------------------------------- DDRAUG3A.411
C DRY DESCENT FROM LAYER K TO K-1 DDRAUG3A.412
C DDRAUG3A.413
C ENTRAINMENT CALCULATION DDRAUG3A.414
C----------------------------------------------------------------------- DDRAUG3A.415
C DDRAUG3A.416
THDD_KM1(I) = (THDD_K(I)+(EKM14(I)*THE_K(I)) + DDRAUG3A.417
* (1.0+EKM14(I))*EKM34(I)*THE_KM1(I)) / DDRAUG3A.418
* ((1.0+EKM14(I))*(1.0+EKM34(I))) DDRAUG3A.419
QDD_KM1(I) = (QDD_K(I)+(EKM14(I)*QE_K(I)) + DDRAUG3A.420
* (1.0+EKM14(I))*EKM34(I)*QE_KM1(I))/ DDRAUG3A.421
* ((1.0+EKM14(I))*(1.0+EKM34(I))) DDRAUG3A.422
END DO DDRAUG3A.423
C DDRAUG3A.424
IF(L_MOM)THEN DDRAUG3A.425
DO I=1,NPNTS DDRAUG3A.426
C DDRAUG3A.427
UDD_KM1(I) = (UDD_K(I)+(EKM14(I)*UE_K(I)) + DDRAUG3A.428
* (1.0+EKM14(I))*EKM34(I)*UE_KM1(I))/ DDRAUG3A.429
* ((1.0+EKM14(I))*(1.0+EKM34(I))) DDRAUG3A.430
VDD_KM1(I) = (VDD_K(I)+(EKM14(I)*VE_K(I)) + DDRAUG3A.431
* (1.0+EKM14(I))*EKM34(I)*VE_KM1(I))/ DDRAUG3A.432
* ((1.0+EKM14(I))*(1.0+EKM34(I))) DDRAUG3A.433
C DDRAUG3A.434
C---------------------------------------------------------------------- DDRAUG3A.435
C ADD AN IN-CLOUD PRESSURE GRADIENT TERM TO THE MOMENTUM INCREMENTS DDRAUG3A.436
C---------------------------------------------------------------------- DDRAUG3A.437
C DDRAUG3A.438
UDD_KM1(I) = UDD_KM1(I) - (0.7*(UE_K(I)-UE_KM1(I))/ DDRAUG3A.439
* (1.0+EKM34(I))) DDRAUG3A.440
VDD_KM1(I) = VDD_KM1(I) - (0.7*(VE_K(I)-VE_KM1(I))/ DDRAUG3A.441
* (1.0+EKM34(I))) DDRAUG3A.442
END DO DDRAUG3A.443
END IF DDRAUG3A.444
C DDRAUG3A.445
C---------------------------------------------------------------------- DDRAUG3A.446
C DRY DESCENT FOR TRACERS DDRAUG3A.447
C---------------------------------------------------------------------- DDRAUG3A.448
C DDRAUG3A.449
IF(L_TRACER)THEN DDRAUG3A.450
C DDRAUG3A.451
DO KTRA=1,NTRA DDRAUG3A.452
DO I=1,NPNTS DDRAUG3A.453
C DDRAUG3A.454
TRADD_KM1(I,KTRA)=(TRADD_K(I,KTRA)+(EKM14(I)* DDRAUG3A.455
* TRAE_K(I,KTRA)) + DDRAUG3A.456
* (1.0+EKM14(I))*EKM34(I)*TRAE_KM1(I,KTRA))/ DDRAUG3A.457
* ((1.0+EKM14(I))*(1.0+EKM34(I))) DDRAUG3A.458
C DDRAUG3A.459
END DO DDRAUG3A.460
END DO DDRAUG3A.461
C DDRAUG3A.462
END IF DDRAUG3A.463
C----------------------------------------------------------------------- DDRAUG3A.464
C UPDATE MASS FLUX AND CALCULATE TEMPERATURE OF LAYER K-1 DDRAUG3A.465
C----------------------------------------------------------------------- DDRAUG3A.466
C DDRAUG3A.467
DO I=1,NPNTS DDRAUG3A.468
FLX_DD_KM1(I) = FLX_DD_K(I)*(1.0+EKM34(I))*(1.0+EKM14(I))* DDRAUG3A.469
* (1.0-AMDETK(I)) DDRAUG3A.470
C DDRAUG3A.471
TDD_KM1(I) = THDD_KM1(I)*EXKM1(I) DDRAUG3A.472
END DO DDRAUG3A.473
C DDRAUG3A.474
C----------------------------------------------------------------------- DDRAUG3A.475
C CALCULATE SUBSATURATION DDRAUG3A.476
C CALCULATE TEMPERATURE IF BROUGHT TO SATURATION DDRAUG3A.477
C----------------------------------------------------------------------- DDRAUG3A.478
C DDRAUG3A.479
CALL SATCAL
(NPNTS,TDD_KM1,THDD_KM1,P_KM1,QDDS,THDDS, DDRAUG3A.480
& K,EXKM1,QDD_KM1,THE_KM1) DDRAUG3A.481
C DDRAUG3A.482
DO I=1,NPNTS DDRAUG3A.483
BDDWT_KM1(I) = THDDS(I) .GT. TM/EXKM1(I) DDRAUG3A.484
END DO DDRAUG3A.485
C DDRAUG3A.486
C----------------------------------------------------------------------- DDRAUG3A.487
C CALCULATE CHANGE OF PHASE DUE TO DOWNDRAUGHT SATURATION TEMPERATURE DDRAUG3A.488
C----------------------------------------------------------------------- DDRAUG3A.489
C DDRAUG3A.490
CALL CRS_FRZL
(NPNTS,RAIN,SNOW,THDD_KM1,EXKM1,FLX_DD_KM1, DDRAUG3A.491
& BDDWT_KM1) DDRAUG3A.492
C DDRAUG3A.493
DO I=1,NPNTS DDRAUG3A.494
TDD_KM1(I) = THDD_KM1(I)*EXKM1(I) DDRAUG3A.495
END DO DDRAUG3A.496
C DDRAUG3A.497
C----------------------------------------------------------------------- DDRAUG3A.498
C RECALCULATE SUBSATURATION TEMPERATURE DDRAUG3A.499
C----------------------------------------------------------------------- DDRAUG3A.500
C DDRAUG3A.501
CALL SATCAL
(NPNTS,TDD_KM1,THDD_KM1,P_KM1,QDDS,THDDS, DDRAUG3A.502
& K,EXKM1,QDD_KM1,THE_KM1) DDRAUG3A.503
C DDRAUG3A.504
C----------------------------------------------------------------------- DDRAUG3A.505
C CALCULATE MOISTURE SUBSATURATION DDRAUG3A.506
C----------------------------------------------------------------------- DDRAUG3A.507
C DDRAUG3A.508
CALL QSAT
(QSATDD,TDD_KM1,P_KM1,NPNTS) DDRAUG3A.509
C DDRAUG3A.510
C----------------------------------------------------------------------- DDRAUG3A.511
C EVAPORATION CALCULATION AND ADJUSTMENT OF DOWNDRAUGHT TEMPERATURE DDRAUG3A.512
C AND MOISTURE DDRAUG3A.513
C----------------------------------------------------------------------- DDRAUG3A.514
C DDRAUG3A.515
CALL DEVAP
(NPNTS,THDD_K,THDD_KM1,QDD_KM1,THDDS,QDDS, DDRAUG3A.516
& FLX_DD_KM1,EXK,EXKM1,QSATDD,RAIN,SNOW, DDRAUG3A.517
& DELPKM1,BDDWT_KM1,CCA,P_KM1) DDRAUG3A.518
C DDRAUG3A.519
C----------------------------------------------------------------------- DDRAUG3A.520
C CHECK IF PARCEL STILL NEGATIVELY BUOYANT SUCH THAT DOWNDRAUGHT CAN DDRAUG3A.521
C CONTINUE TO K-1 DDRAUG3A.522
C----------------------------------------------------------------------- DDRAUG3A.523
C DDRAUG3A.524
CALL TERMDD
(NPNTS,BDD_START,THDD_KM1,QDD_KM1,THE_KM1, DDRAUG3A.525
& QE_KM1,K,B_DD_END,BDD_ON) DDRAUG3A.526
C DDRAUG3A.527
C----------------------------------------------------------------------- DDRAUG3A.528
C CALCULATE THE EFFECT ON THE ENVIRONMENT IN LAYER K DDRAUG3A.529
C----------------------------------------------------------------------- DDRAUG3A.530
C DDRAUG3A.531
CALL DD_ENV
(NPNTS,NP_FULL,THDD_K,THDD_KM1,QDD_K,QDD_KM1,THE_K, DDRAUG3A.532
& THE_KM1,QE_K,QE_KM1,DTHBYDT_K,DTHBYDT_KM1,DQBYDT_K, DDRAUG3A.533
& DQBYDT_KM1,FLX_DD_K,FLX_DD_KM1,DELPK,DELPKM1, DDRAUG3A.534
& DELTD,DELQD,AMDETK,EKM14,B_DD_END,BDD_START,BDD_ON, DDRAUG3A.535
& L_MOM,UDD_K,VDD_K,UDD_KM1,VDD_KM1,UE_K,VE_K,UE_KM1, DDRAUG3A.536
& VE_KM1,DUBYDT_K,DUBYDT_KM1,DVBYDT_K,DVBYDT_KM1, DDRAUG3A.537
& DELUD,DELVD,EFLUX_U_DD,EFLUX_V_DD, DDRAUG3A.538
& L_TRACER,NTRA,TRADD_K,TRADD_KM1,TRAE_K, DDRAUG3A.539
& TRAE_KM1,DTRABYDT_K,DTRABYDT_KM1,DELTRAD) DDRAUG3A.540
C DDRAUG3A.541
C----------------------------------------------------------------------- DDRAUG3A.542
C RESET DOWNDRAUGHT BIT VECTORS DDRAUG3A.543
C DDRAUG3A.544
C----------------------------------------------------------------------- DDRAUG3A.545
C DDRAUG3A.546
DO I=1,NPNTS DDRAUG3A.547
BDD_START(I) = .FALSE. DDRAUG3A.548
IF (.NOT. BDD_ON(I)) THEN DDRAUG3A.549
RAIN(I) = RAIN_TMP(I) DDRAUG3A.550
SNOW(I) = SNOW_TMP(I) DDRAUG3A.551
END IF DDRAUG3A.552
IF (B_DD_END(I)) BDD_ON(I) = .FALSE. DDRAUG3A.553
END DO DDRAUG3A.554
C DDRAUG3A.555
C----------------------------------------------------------------------- DDRAUG3A.556
C SWITCH POTENTIAL TEMPERATURE, MIXING RATIO, MOMENTUM, MASS FLUX DDRAUG3A.557
C AND TRACER READY FOR CALCULATION AT NEXT MODEL LAYER DDRAUG3A.558
C----------------------------------------------------------------------- DDRAUG3A.559
C DDRAUG3A.560
IF (K.GT.2) THEN DDRAUG3A.561
DO I=1,NPNTS DDRAUG3A.562
IF (BDD_ON(I)) THEN DDRAUG3A.563
THDD_K(I) = THDD_KM1(I) DDRAUG3A.564
QDD_K(I) = QDD_KM1(I) DDRAUG3A.565
FLX_DD_K(I) = FLX_DD_KM1(I) DDRAUG3A.566
END IF DDRAUG3A.567
END DO DDRAUG3A.568
C DDRAUG3A.569
IF(L_MOM)THEN DDRAUG3A.570
DO I=1,NPNTS DDRAUG3A.571
IF(BDD_ON(I))THEN DDRAUG3A.572
UDD_K(I) = UDD_KM1(I) DDRAUG3A.573
VDD_K(I) = VDD_KM1(I) DDRAUG3A.574
END IF DDRAUG3A.575
END DO DDRAUG3A.576
END IF DDRAUG3A.577
C DDRAUG3A.578
IF(L_TRACER)THEN DDRAUG3A.579
C DDRAUG3A.580
DO KTRA=1,NTRA DDRAUG3A.581
DO I=1,NPNTS DDRAUG3A.582
IF(BDD_ON(I))THEN DDRAUG3A.583
TRADD_K(I,KTRA) = TRADD_KM1(I,KTRA) DDRAUG3A.584
END IF DDRAUG3A.585
END DO DDRAUG3A.586
END DO DDRAUG3A.587
C DDRAUG3A.588
END IF DDRAUG3A.589
C DDRAUG3A.590
END IF DDRAUG3A.591
DDRAUG3A.592
RETURN DDRAUG3A.593
END DDRAUG3A.594
C DDRAUG3A.595
*ENDIF DDRAUG3A.596