*IF DEF,A05_2C DDCALL2C.2
C ******************************COPYRIGHT****************************** DDCALL2C.3
C (c) CROWN COPYRIGHT 1996, METEOROLOGICAL OFFICE, All Rights Reserved. DDCALL2C.4
C DDCALL2C.5
C Use, duplication or disclosure of this code is subject to the DDCALL2C.6
C restrictions as set forth in the contract. DDCALL2C.7
C DDCALL2C.8
C Meteorological Office DDCALL2C.9
C London Road DDCALL2C.10
C BRACKNELL DDCALL2C.11
C Berkshire UK DDCALL2C.12
C RG12 2SZ DDCALL2C.13
C DDCALL2C.14
C If no contract has been raised with this copy of the code, the use, DDCALL2C.15
C duplication or disclosure of it is strictly prohibited. Permission DDCALL2C.16
C to do so must first be obtained in writing from the Head of Numerical DDCALL2C.17
C Modelling at the above address. DDCALL2C.18
C ******************************COPYRIGHT****************************** DDCALL2C.19
C DDCALL2C.20
CLL SUBROUTINE DD_CALL------------------------------------------------ DDCALL2C.21
CLL DDCALL2C.22
CLL PURPOSE : CALCULATE INITIAL DOWNDRAUGHT MASSFLUX DDCALL2C.23
CLL DDCALL2C.24
CLL RESET EN/DETRAINMENT RATES FOR DOWNDRAUGHT DDCALL2C.25
CLL DDCALL2C.26
CLL COMPRESS/EXPAND VARIABLES DDCALL2C.27
CLL DDCALL2C.28
CLL INITIALISE DOWNDRAUGHT DDCALL2C.29
CLL DDCALL2C.30
CLL CALL DOWNDRAUGHT ROUTINE DDCALL2C.31
CLL DDCALL2C.32
CLL SUITABLE FOR SINGLE COLUMN MODEL USE DDCALL2C.33
CLL DDCALL2C.34
CLL CODE REWORKED FOR CRAY Y-MP BY S.BETT AND D.GREGORY AUTUMN 1991 DDCALL2C.35
CLL DDCALL2C.36
CLL MODEL MODIFICATION HISTORY: DDCALL2C.37
CLL VERSION DATE DDCALL2C.38
CLL 4.2 1/11/96 New deck version based on DDCALL2A with HADCM2 DDCALL2C.39
CLL specific modifications: R Jones DDCALL2C.40
CLL 4.3 Feb. 97 T3E migration: pass recip_pstar to LAYER_DD : GSS1F403.269
CLL recip_pstar is compressed in the same way as GSS1F403.270
CLL pstar before being passed to LAYER_DD. GSS1F403.271
CLL S.J.Swarbrick GSS1F403.272
!LL 4.5 20/02/98 Remove redundant code. A. Dickinson ADR1F405.47
CLL DDCALL2C.41
CLL PROGRAMMING STANDARDS : UNIFIED MODEL DOCUMENTATION PAPER NO. 3 DDCALL2C.42
CLL VERSION NO. 4 DATED 5/2/92 DDCALL2C.43
CLL DDCALL2C.44
CLL SYSTEM TASK : P27 DDCALL2C.45
CLL DDCALL2C.46
CLL DOCUMENTATION : UNIFIED MODEL DOCUMENTATION PAPER 27 DDCALL2C.47
CLL DDCALL2C.48
CLLEND----------------------------------------------------------------- DDCALL2C.49
C DDCALL2C.50
C*L ARGUMENTS--------------------------------------------------------- DDCALL2C.51
C DDCALL2C.52
SUBROUTINE DD_CALL (
NP_FIELD,NPNTS,KCT,THP,QP,THE,QE,DTHBYDT, DDCALL2C.53
* DQBYDT,FLX,PSTAR,AK,BK,AKM12,BKM12,DELAK, DDCALL2C.54
* DELBK,EXNER,PRECIP,RAIN,SNOW,ICCB,ICCT, DDCALL2C.55
* BWATER,BTERM,BGMK,TIMESTEP,CCA,NTERM, GSS1F403.273
* recip_pstar) GSS1F403.274
C DDCALL2C.57
IMPLICIT NONE DDCALL2C.58
C DDCALL2C.59
C----------------------------------------------------------------------- DDCALL2C.60
C VECTOR LENGTHS AND LOOP COUNTERS DDCALL2C.61
C----------------------------------------------------------------------- DDCALL2C.62
C DDCALL2C.63
C DDCALL2C.64
INTEGER I ! LOOP COUNTER DDCALL2C.65
C DDCALL2C.66
INTEGER K ! PRESENT MODEL LAYER DDCALL2C.67
C DDCALL2C.68
INTEGER NPNTS ! IN NUMBER OF POINTS DDCALL2C.69
C DDCALL2C.70
INTEGER NDD,NTERM ! COMPRESSED VECTOR LENGTH FOR DDCALL2C.71
! DOWNDRAUGHT CALCULATION DDCALL2C.72
C DDCALL2C.73
INTEGER NP_FIELD ! IN FULL VECTOR LENGTH DDCALL2C.74
C DDCALL2C.75
INTEGER NDDON_TMP ! NUMBER OF POINTS WITH ACTIVE DDCALL2C.76
! DOWNDRAUGHT DDCALL2C.77
C DDCALL2C.78
C----------------------------------------------------------------------- DDCALL2C.79
C VARIABLES WHICH ARE INPUT DDCALL2C.80
C----------------------------------------------------------------------- DDCALL2C.81
C DDCALL2C.82
INTEGER KCT ! IN CONVECTIVE CLOUD TOP LAYER DDCALL2C.83
C DDCALL2C.84
REAL AK(KCT+1) ! IN ) HYBRID CO-ORDINATE VALUES AT DDCALL2C.85
REAL BK(KCT+1) ! IN ) MID-LAYER OF LAYER K DDCALL2C.86
C DDCALL2C.87
REAL AKM12(KCT+2) ! IN ) HYBRID CO-ORDINATE VALUES AT DDCALL2C.88
REAL BKM12(KCT+2) ! IN ) LOWER LAYER BOUNDARY OF LAYER K DDCALL2C.89
C DDCALL2C.90
REAL DELAK(KCT+1) ! IN ) HYBRID CO-ORDINATE VALUES FOR DDCALL2C.91
REAL DELBK(KCT+1) ! IN ) THICKNESS OF LAYER K DDCALL2C.92
C DDCALL2C.93
REAL EXNER(NP_FIELD,KCT+2) ! IN EXNER FUNCTION AT LAYER BOUNDARIES DDCALL2C.94
! STARTING AT LEVEL K-1/2 DDCALL2C.95
C DDCALL2C.96
REAL THP(NPNTS,KCT+1) ! IN POTENTIAL TEMPERATURE OF DDCALL2C.97
! PARCEL (K) DDCALL2C.98
C DDCALL2C.99
REAL QP(NPNTS,KCT+1) ! IN MODEL MIXING RATIO (KG/KG) DDCALL2C.100
C DDCALL2C.101
REAL THE(NP_FIELD,KCT+1) ! IN MODEL ENVIRONMENTAL POTENTIAL DDCALL2C.102
! TEMPERATURE (K) DDCALL2C.103
C DDCALL2C.104
REAL QE(NP_FIELD,KCT+1) ! IN ENVIRONMENT MIXING RATIO DDCALL2C.105
! (KG/KG) DDCALL2C.106
C DDCALL2C.107
REAL FLX(NPNTS,KCT+1) ! IN CONVECTIVE MASSFLUX (PA/S) DDCALL2C.108
C DDCALL2C.109
REAL PSTAR(NP_FIELD) ! IN SURFACE PRESSURE (PA) DDCALL2C.110
C DDCALL2C.111
REAL PRECIP(NPNTS,KCT+1) ! IN PRECIPITATION ADDED WHEN DDCALL2C.112
! DESCENDING FROM LAYER K TO K-1 DDCALL2C.113
! (KG/M**2/S) DDCALL2C.114
C DDCALL2C.115
INTEGER ICCB(NP_FIELD) ! IN CLOUD BASE LEVEL DDCALL2C.116
C DDCALL2C.117
INTEGER ICCT(NP_FIELD) ! IN CLOUD TOP LEVEL DDCALL2C.118
C DDCALL2C.119
REAL CCA(NP_FIELD) ! IN CONVECTIVE CLOUD AMOUNT DDCALL2C.120
C DDCALL2C.121
LOGICAL BWATER(NPNTS,2:KCT+1)!IN MASK FOR THOSE POINTS AT WHICH DDCALL2C.122
! CONDENSATE IS WATER IN LAYER K DDCALL2C.123
C DDCALL2C.124
LOGICAL BTERM(NPNTS) ! IN MASK FOR THOSE POINTS WHERE DDCALL2C.125
! UPDRAUGHT IS TERMINATING DDCALL2C.126
C DDCALL2C.127
LOGICAL BGMK(NPNTS) ! IN MASK FOR POINTS WHERE PARCEL IN DDCALL2C.128
! LAYER K IS SATURATED DDCALL2C.129
C DDCALL2C.130
REAL TIMESTEP DDCALL2C.131
REAL recip_PSTAR(NP_FIELD)! Reciprocal of pstar array GSS1F403.276
C DDCALL2C.132
C----------------------------------------------------------------------- DDCALL2C.133
C VARIABLES WHICH ARE INPUT AND OUTPUT DDCALL2C.134
C----------------------------------------------------------------------- DDCALL2C.135
C DDCALL2C.136
REAL DTHBYDT(NP_FIELD,KCT+1) ! INOUT DDCALL2C.137
! IN INCREMENT TO MODEL POTENTIAL DDCALL2C.138
! TEMPERATURE (K/S) DDCALL2C.139
! OUT UPDATED INCREMENT TO MODEL DDCALL2C.140
! POTENTIAL TEMPERATURE (K/S) DDCALL2C.141
C DDCALL2C.142
REAL DQBYDT(NP_FIELD,KCT+1) ! INOUT DDCALL2C.143
! IN INCREMENT TO MODEL MIXING DDCALL2C.144
! RATIO (KG/KG/S) DDCALL2C.145
! OUT UPDATED INCREMENT TO MODEL DDCALL2C.146
! MIXING RATIO (KG/KG/S) DDCALL2C.147
C DDCALL2C.148
C----------------------------------------------------------------------- DDCALL2C.149
C VARIABLES WHICH ARE OUTPUT DDCALL2C.150
C----------------------------------------------------------------------- DDCALL2C.151
C DDCALL2C.152
REAL RAIN(NP_FIELD) ! OUT RAINFALL AT SURFACE (KG/M**2/S) DDCALL2C.153
C DDCALL2C.154
REAL SNOW(NP_FIELD) ! OUT SNOWFALL AT SURFACE (KG/M**2/S) DDCALL2C.155
C DDCALL2C.156
C----------------------------------------------------------------------- DDCALL2C.157
C VARIABLES WHICH ARE DEFINED LOCALLY DDCALL2C.158
C----------------------------------------------------------------------- DDCALL2C.159
C DDCALL2C.160
C DDCALL2C.161
REAL EXNER_KM12_C(NTERM) ! COMPRESSED EXNER FUNCTION AT DDCALL2C.162
! LAYER K DDCALL2C.163
C DDCALL2C.164
REAL EXNER_KP12_C(NTERM) ! COMPRESSED EXNER FUNCTION AT DDCALL2C.165
! LAYER K+1 DDCALL2C.166
C DDCALL2C.167
REAL EXNER_KM32_C(NTERM) ! COMPRESSED EXNER FUNCTION AT DDCALL2C.168
! LAYER K-1 DDCALL2C.169
C DDCALL2C.170
REAL PK(NTERM) ! PRESSURE OF LAYER K (PA) DDCALL2C.171
C DDCALL2C.172
REAL P_KM1(NTERM) ! PRESSURE OF LAYER K-1 (PA) DDCALL2C.173
C DDCALL2C.174
REAL EXK(NTERM) ! EXNER RATIO FOR LAYER K DDCALL2C.175
C DDCALL2C.176
REAL EXKM1(NTERM) ! EXNER RATIO FOR LAYER K-1 DDCALL2C.177
C DDCALL2C.178
REAL DELPK(NTERM) ! PRESSURE DIFFERENCE ACROSS LAYER K DDCALL2C.179
! (PA) DDCALL2C.180
C DDCALL2C.181
REAL DELPKM1(NTERM) ! PRESSURE DIFFERENCE ACROSS DDCALL2C.182
! LAYER K-1 (PA) DDCALL2C.183
C DDCALL2C.184
REAL AMDETK(NTERM) ! MIXING DETRAINMENT AT LEVEL K DDCALL2C.185
! MULTIPLIED BY APPROPRIATE LAYER DDCALL2C.186
! THICKNESS DDCALL2C.187
C DDCALL2C.188
REAL EKM12(NTERM) ! EXNER RATIO AT LAYER K-1/2 DDCALL2C.189
C DDCALL2C.190
REAL EKM14(NTERM) ! EXNER RATIO AT LAYER K-1/4 DDCALL2C.191
C DDCALL2C.192
REAL EKM34(NTERM) ! EXNER RATIO AT LAYER K-3/4 DDCALL2C.193
C DDCALL2C.194
LOGICAL BWATER_K_C(NTERM) ! COMPRESSED MASK FOR THOSE DDCALL2C.195
! POINTS AT WHICH CONDENSATE DDCALL2C.196
! IS WATER IN LAYER K DDCALL2C.197
C DDCALL2C.198
REAL PRECIP_K_C(NTERM) ! COMPRESSED PRECIPITATION DDCALL2C.199
! ADDED WHEN DESCENDING FROM DDCALL2C.200
! LAYER K TO K-1 (KG/M**2/S) DDCALL2C.201
C DDCALL2C.202
REAL Q_K_C(NTERM) ! COMPRESSED PARCEL MIXING RATIO DDCALL2C.203
! OF LAYER K (KG/KG) DDCALL2C.204
C DDCALL2C.205
REAL TH_K_C(NTERM) ! COMPRESSED PARCEL POTENTIAL DDCALL2C.206
! TEMPERATURE OF LAYER K (K) DDCALL2C.207
C DDCALL2C.208
REAL PSTAR_C(NTERM) ! COMPRESSED SURFACE PRESSURE (PA) DDCALL2C.209
C DDCALL2C.210
REAL recip_PSTAR_C(NTERM) ! Reciprocal of comp. pstar array GSS1F403.281
C GSS1F403.285
INTEGER ICCB_C(NTERM) ! COMPRESSED CLOUD BASE LEVEL DDCALL2C.211
C DDCALL2C.212
REAL DTHBYDT_K_C(NTERM) ! COMPRESSED INCREMENT TO MODEL DDCALL2C.213
! POTENTIAL TEMPERATURE OF LAYER K DDCALL2C.214
! (K/S) DDCALL2C.215
C DDCALL2C.216
REAL DTHBYDT_KM1_C(NTERM) ! COMPRESSED INCREMENT TO MODEL DDCALL2C.217
! POTENTIAL TEMPERATURE OF LAYER K-1 DDCALL2C.218
! (K/S) DDCALL2C.219
C DDCALL2C.220
REAL DQBYDT_K_C(NTERM) ! COMPRESSED INCREMENT TO MODEL DDCALL2C.221
! MIXING RATIO OF LAYER K (KG/KG/S) DDCALL2C.222
C DDCALL2C.223
REAL DQBYDT_KM1_C(NTERM) ! COMPRESSED INCREMENT TO MODEL DDCALL2C.224
! MIXING RATIO OF LAYER K-1 (KG/KG/S) DDCALL2C.225
C DDCALL2C.226
REAL DELTD(NTERM) ! COOLING NECESSARY TO DDCALL2C.227
! ACHIEVE SATURATION (K) DDCALL2C.228
C DDCALL2C.229
REAL DELQD(NTERM) ! MOISTENING NECESSARY TO DDCALL2C.230
! ACHIEVE SATURATION (KG/KG) DDCALL2C.231
C DDCALL2C.232
REAL QDD_K(NTERM) ! MIXING RATIO OF DOWNDRAUGHT IN DDCALL2C.233
! LAYER K (KG/KG) DDCALL2C.234
C DDCALL2C.235
REAL THDD_K(NTERM) ! MODEL POTENTIAL TEMPERATURE DDCALL2C.236
! OF DOWNDRAUGHT IN LAYER K (K) DDCALL2C.237
C DDCALL2C.238
REAL FLX_DD_K(NPNTS) ! DOWNDRAUGHT INITIAL MASS FLUX DDCALL2C.239
! (PA/S) DDCALL2C.240
C DDCALL2C.241
REAL FLX_DD_K_C(NTERM) ! COMPRESSED DOWNDRAUGHT INITIAL DDCALL2C.242
! MASS FLUX (PA/S) DDCALL2C.243
C DDCALL2C.244
LOGICAL BDDI(NPNTS) ! MASK FOR POINTS WHERE DOWNDRAUGHT DDCALL2C.245
! MIGHT OCCUR DDCALL2C.246
C DDCALL2C.247
LOGICAL BDDI_C(NTERM) ! COMPRESSED MASK FOR POINTS WHERE DDCALL2C.248
! DOWNDRAUGHT MAY INITIATE DDCALL2C.249
C DDCALL2C.250
INTEGER INDEX1(NTERM) ! INDEX FOR COMPRESS AND EXPAND DDCALL2C.251
C DDCALL2C.252
REAL QE_K_C(NTERM) ! COMPRESSED ENVIRONMENT MIXING DDCALL2C.253
! RATIO OF LAYER K (KG/KG) DDCALL2C.254
C DDCALL2C.255
REAL QE_KM1_C(NTERM) ! COMPRESSED ENVIRONMENT MIXING DDCALL2C.256
! RATIO OF LAYER K-1 (KG/KG) DDCALL2C.257
C DDCALL2C.258
REAL THE_K_C(NTERM) ! COMPRESSED POTENTIAL TEMPERATURE DDCALL2C.259
! OF ENVIRONMENT IN LAYER K (K) DDCALL2C.260
C DDCALL2C.261
REAL THE_KM1_C(NTERM) ! COMPRESSED POTENTIAL TEMPERATURE DDCALL2C.262
! OF ENVIRONMENT IN LAYER K-1 (K) DDCALL2C.263
C DDCALL2C.264
REAL RAIN_C(NTERM) ! COMPRESSED SURFACE RAINFALL DDCALL2C.265
! (KG/M**2/S) DDCALL2C.266
C DDCALL2C.267
REAL SNOW_C(NTERM) ! COMPRESSED SURFACE SNOWFALL DDCALL2C.268
! (KG/M**2/S) DDCALL2C.269
C DDCALL2C.270
REAL FLX_UD_K_C(NTERM) ! UPDRAUGHT MASS FLUX AT LAYER K DDCALL2C.271
C DDCALL2C.272
REAL RAIN_ENV(NTERM) ! AMOUNT OF RAINFALL PASSING THROUGH DDCALL2C.273
! ENVIRONMENT (KG/M**2/S) DDCALL2C.274
C DDCALL2C.275
REAL SNOW_ENV(NTERM) ! AMOUNT OF SNOWFALL PASSING THROUGH DDCALL2C.276
! ENVIRONMENT (KG/M**2/S) DDCALL2C.277
C DDCALL2C.278
REAL RAIN_DD(NTERM) ! AMOUNT OF RAINFALL PASSING THROUGH DDCALL2C.279
! DOWNDRAUGHT (KG/M**2/S) DDCALL2C.280
C DDCALL2C.281
REAL SNOW_DD(NTERM) ! AMOUNT OF SNOWFALL PASSING THROUGH DDCALL2C.282
! DOWNDRAUGHT (KG/M**2/S) DDCALL2C.283
C DDCALL2C.284
LOGICAL BDD_START(NPNTS) ! MASK FOR THOSE POINT WHERE DDCALL2C.285
! DOWNDRAUGHT IS ABLE TO START DDCALL2C.286
! FROM LEVEL K DDCALL2C.287
C DDCALL2C.288
LOGICAL BDD_START_C(NTERM) ! COMPRESSED MASK FOR THOSE POINT DDCALL2C.289
! WHERE DOWNDRAUGHT IS ABLE TO START DDCALL2C.290
! FROM LEVEL K DDCALL2C.291
C DDCALL2C.292
LOGICAL BDDWT_K(NPNTS) ! MASK FOR POINTS IN DOWNDRAUGHT DDCALL2C.293
! WHERE PPT IN LAYER K IS LIQUID DDCALL2C.294
C DDCALL2C.295
LOGICAL BDDWT_K_C(NTERM) ! COMPRESSED MASK FOR POINTS IN DD DDCALL2C.296
! WHERE PPT IN LAYER K IS LIQUID DDCALL2C.297
C DDCALL2C.298
LOGICAL BDDWT_KM1(NPNTS) ! MASK FOR POINTS IN DOWNDRAUGHT DDCALL2C.299
! WHERE PPT IN LAYER K-1 IS LIQUID DDCALL2C.300
C DDCALL2C.301
LOGICAL BDDWT_KM1_C(NTERM) ! COMPRESSED MASK FOR POINTS IN DD DDCALL2C.302
! WHERE PPT IN LAYER K-1 IS LIQUID DDCALL2C.303
C DDCALL2C.304
LOGICAL BDD_ON(NPNTS) ! MASK FOR THOSE POINTS WHERE DD DDCALL2C.305
! CONTINUES FROM LAYER K+1 DDCALL2C.306
C DDCALL2C.307
LOGICAL BDD_ON_C(NTERM) ! COMPRESSED MASK FOR POINTS WHERE DD DDCALL2C.308
! CONTINUES FROM LAYER K+1 DDCALL2C.309
C DDCALL2C.310
INTEGER KMIN(NTERM) ! FREEZING LEVEL WHERE ENTRAINMENT DDCALL2C.311
! RATES ARE INCREASED DDCALL2C.312
C DDCALL2C.313
REAL FLX_STRT(NPNTS) ! MASSFLUX AT LEVEL WHERE DOWNDRAUGHT DDCALL2C.314
! STARTS (PA/S) DDCALL2C.315
C DDCALL2C.316
REAL FLX_STRT_C(NTERM) ! COMPRESSED VALUE OF FLX_STRT DDCALL2C.317
C DDCALL2C.318
REAL CCA_C(NTERM) ! COMPRESSED CONVECTIVE CLOUD AMOUNT DDCALL2C.319
C DDCALL2C.320
INTEGER INDEX2(NTERM) ! INDEX OF WHERE ACTICE DOWNDRAUGHT DDCALL2C.321
! OCCURS DDCALL2C.322
C DDCALL2C.323
C DDCALL2C.324
C----------------------------------------------------------------------- DDCALL2C.325
C----------------------------------------------------------------------- DDCALL2C.326
C EXTERNAL ROUTINES CALLED DDCALL2C.327
C----------------------------------------------------------------------- DDCALL2C.328
C DDCALL2C.329
EXTERNAL FLX_INIT, LAYER_DD, DD_INIT, DOWND DDCALL2C.330
C DDCALL2C.331
C----------------------------------------------------------------------- DDCALL2C.332
C CALCULATE INDEX FOR COMPRESS ON BASIS OF BTERM DDCALL2C.333
C----------------------------------------------------------------------- DDCALL2C.334
C DDCALL2C.335
NDD = 0 DDCALL2C.336
DO I=1,NPNTS DDCALL2C.337
IF (BTERM(I)) THEN DDCALL2C.338
NDD = NDD+1 DDCALL2C.339
INDEX1(NDD) = I DDCALL2C.340
END IF DDCALL2C.341
END DO DDCALL2C.342
C DDCALL2C.343
C---------------------------------------------------------------------- DDCALL2C.344
C INITIALISE LOGICAL ARRAYS AS FALSE DDCALL2C.345
C----------------------------------------------------------------------- DDCALL2C.346
C DDCALL2C.347
DO I=1,NPNTS DDCALL2C.348
BDDI(I) = .FALSE. DDCALL2C.349
BDD_START(I) = .FALSE. DDCALL2C.350
BDDWT_K(I) = .FALSE. DDCALL2C.351
BDDWT_KM1(I) = .FALSE. DDCALL2C.352
BDD_ON(I) = .FALSE. DDCALL2C.353
C DDCALL2C.354
C----------------------------------------------------------------------- DDCALL2C.355
C CALCULATE MASK FOR THOSE POINT WHERE DOWNDRAUGHT MIGHT OCCUR DDCALL2C.356
C AND LEVEL AT WHICH IT MIGHT INITIATE DDCALL2C.357
C----------------------------------------------------------------------- DDCALL2C.358
C DDCALL2C.359
IF (KCT .GE. 4 .AND. BTERM(I) .AND. BGMK(I) .AND. (KCT-ICCB(I)) DDCALL2C.360
& .GT. 2) BDDI(I) = .TRUE. DDCALL2C.361
END DO DDCALL2C.362
C DDCALL2C.363
C---------------------------------------------------------------------- DDCALL2C.364
C CALCULATE INITIAL DOWNDRAUGHT MASS FLUX DDCALL2C.365
C----------------------------------------------------------------------- DDCALL2C.366
C DDCALL2C.367
IF (KCT .GE. 4) DDCALL2C.368
* CALL FLX_INIT
(NPNTS,KCT,ICCB,ICCT,FLX,FLX_DD_K,BDDI,FLX_STRT) DDCALL2C.369
C DDCALL2C.370
C----------------------------------------------------------------------- DDCALL2C.371
C COMPRESS ALL INPUT ARRAYS FOR THE DOWNDRAUGHT CALCULATION DDCALL2C.372
C----------------------------------------------------------------------- DDCALL2C.373
C DDCALL2C.374
DO 10 K = KCT+1,2,-1 DDCALL2C.375
C DDCALL2C.376
DO I=1,NDD DDCALL2C.377
TH_K_C(I) = THP(INDEX1(I),K) DDCALL2C.378
Q_K_C(I) = QP(INDEX1(I),K) DDCALL2C.379
THE_K_C(I) = THE(INDEX1(I),K) DDCALL2C.380
THE_KM1_C(I) = THE(INDEX1(I),K-1) DDCALL2C.381
QE_K_C(I) = QE(INDEX1(I),K) DDCALL2C.382
QE_KM1_C(I) = QE(INDEX1(I),K-1) DDCALL2C.383
DTHBYDT_K_C(I) = DTHBYDT(INDEX1(I),K) DDCALL2C.384
DTHBYDT_KM1_C(I) = DTHBYDT(INDEX1(I),K-1) DDCALL2C.385
DQBYDT_K_C(I) = DQBYDT(INDEX1(I),K) DDCALL2C.386
DQBYDT_KM1_C(I) = DQBYDT(INDEX1(I),K-1) DDCALL2C.387
EXNER_KM12_C(I) = EXNER(INDEX1(I),K) DDCALL2C.388
EXNER_KP12_C(I) = EXNER(INDEX1(I),K+1) DDCALL2C.389
EXNER_KM32_C(I) = EXNER(INDEX1(I),K-1) DDCALL2C.390
PRECIP_K_C(I) = PRECIP(INDEX1(I),K) DDCALL2C.391
FLX_UD_K_C(I) = FLX(INDEX1(I),K) DDCALL2C.392
BWATER_K_C(I) = BWATER(INDEX1(I),K) DDCALL2C.393
END DO DDCALL2C.394
IF (K.EQ.KCT+1) THEN DDCALL2C.395
DO I=1,NDD DDCALL2C.396
FLX_DD_K_C(I) = FLX_DD_K(INDEX1(I)) DDCALL2C.397
FLX_STRT_C(I) = FLX_STRT(INDEX1(I)) DDCALL2C.398
PSTAR_C(I) = PSTAR(INDEX1(I)) DDCALL2C.399
recip_pstar_c(I)=recip_pstar(index1(I)) GSS1F403.287
ICCB_C(I) = ICCB(INDEX1(I)) DDCALL2C.400
BDDI_C(I) = BDDI(INDEX1(I)) DDCALL2C.401
BDD_START_C(I) = BDD_START(INDEX1(I)) DDCALL2C.402
RAIN_C(I) = RAIN(INDEX1(I)) DDCALL2C.403
SNOW_C(I) = SNOW(INDEX1(I)) DDCALL2C.404
BDDWT_K_C(I) = BDDWT_K(INDEX1(I)) DDCALL2C.405
BDDWT_KM1_C(I) = BDDWT_KM1(INDEX1(I)) DDCALL2C.406
BDD_ON_C(I) = BDD_ON(INDEX1(I)) DDCALL2C.407
CCA_C(I) = CCA(INDEX1(I)) DDCALL2C.408
END DO DDCALL2C.409
END IF DDCALL2C.410
C DDCALL2C.411
C----------------------------------------------------------------------- DDCALL2C.412
C RESET EN/DETRAINMENT RATES FOR DOWNDRAUGHT DDCALL2C.413
C----------------------------------------------------------------------- DDCALL2C.414
C DDCALL2C.415
CALL LAYER_DD
(NDD,K,KCT,THE_K_C,THE_KM1_C,FLX_STRT_C,AK,BK, DDCALL2C.416
* AKM12,BKM12,DELAK,DELBK,EXNER_KM12_C,EXNER_KP12_C, DDCALL2C.417
* EXNER_KM32_C,PSTAR_C,PK,P_KM1,DELPK,DELPKM1,EXK, DDCALL2C.418
* EXKM1,AMDETK,EKM14,EKM34,KMIN,BDDI_C, GSS1F403.289
* recip_pstar_c) GSS1F403.290
C DDCALL2C.420
C----------------------------------------------------------------------- DDCALL2C.421
C INITIALISE DOWNDRAUGHT DDCALL2C.422
C----------------------------------------------------------------------- DDCALL2C.423
C DDCALL2C.424
IF (KCT .GE. 4) DDCALL2C.425
& CALL DD_INIT
(NDD,TH_K_C,Q_K_C,THE_K_C,QE_K_C,PK,EXK,THDD_K, DDCALL2C.426
& QDD_K,DELTD,DELQD,BDD_START_C,K,BDDI_C,BDD_ON_C) DDCALL2C.427
C DDCALL2C.428
C----------------------------------------------------------------------- DDCALL2C.429
C UPDATE MASK FOR WHERE DOWNDRAUGHT OCCURS DDCALL2C.430
C----------------------------------------------------------------------- DDCALL2C.431
C DDCALL2C.432
DO I=1,NDD DDCALL2C.433
IF (BDD_START_C(I).OR.BDD_ON_C(I)) BDD_ON_C(I)=.TRUE. DDCALL2C.434
END DO DDCALL2C.435
C DDCALL2C.436
NDDON_TMP = 0 DDCALL2C.437
DO I=1,NDD DDCALL2C.438
IF (BDD_ON_C(I)) THEN DDCALL2C.439
NDDON_TMP = NDDON_TMP+1 DDCALL2C.440
END IF DDCALL2C.441
END DO DDCALL2C.442
C DDCALL2C.443
C----------------------------------------------------------------------- DDCALL2C.444
C CALL DOWNDRAUGHT ROUTINE DDCALL2C.445
C----------------------------------------------------------------------- DDCALL2C.446
C DDCALL2C.447
DDCALL2C.448
CALL DOWND
(NDD,K,KCT,THDD_K,QDD_K,THE_K_C,THE_KM1_C,QE_K_C, DDCALL2C.449
& QE_KM1_C,DTHBYDT_K_C,DTHBYDT_KM1_C,DQBYDT_K_C, DDCALL2C.450
& DQBYDT_KM1_C,FLX_DD_K_C,P_KM1,DELPK,DELPKM1,EXK, DDCALL2C.451
& EXKM1,DELTD,DELQD,AMDETK,EKM14,EKM34,PRECIP_K_C, DDCALL2C.452
& RAIN_C,SNOW_C,ICCB_C,BWATER_K_C,BDD_START_C, DDCALL2C.453
& BDDWT_K_C,BDDWT_KM1_C,BDD_ON_C,RAIN_ENV,SNOW_ENV, DDCALL2C.454
& RAIN_DD,SNOW_DD,FLX_UD_K_C,TIMESTEP,CCA_C,NDDON_TMP) DDCALL2C.455
C DDCALL2C.456
C----------------------------------------------------------------------- DDCALL2C.457
C DECOMPRESS/EXPAND THOSE VARIABLES WHICH ARE TO BE OUTPUT DDCALL2C.458
C----------------------------------------------------------------------- DDCALL2C.459
C DDCALL2C.460
CDIR$ IVDEP DDCALL2C.461
! Fujitsu vectorization directive GRB0F405.219
!OCL NOVREC GRB0F405.220
DO I=1,NDD DDCALL2C.462
DTHBYDT(INDEX1(I),K) = DTHBYDT_K_C(I) DDCALL2C.463
DTHBYDT(INDEX1(I),K-1) = DTHBYDT_KM1_C(I) DDCALL2C.464
DQBYDT(INDEX1(I),K) = DQBYDT_K_C(I) DDCALL2C.465
DQBYDT(INDEX1(I),K-1) = DQBYDT_KM1_C(I) DDCALL2C.466
IF (K.EQ.2) THEN DDCALL2C.467
RAIN(INDEX1(I)) = RAIN_C(I) DDCALL2C.468
SNOW(INDEX1(I)) = SNOW_C(I) DDCALL2C.469
END IF DDCALL2C.470
PRECIP(INDEX1(I),K) = PRECIP_K_C(I) DDCALL2C.471
END DO DDCALL2C.472
C DDCALL2C.473
C---------------------------------------------------------------------- DDCALL2C.474
C END OF MAIN K LOOP DDCALL2C.475
C---------------------------------------------------------------------- DDCALL2C.476
C DDCALL2C.477
10 CONTINUE DDCALL2C.478
C DDCALL2C.479
RETURN DDCALL2C.480
END DDCALL2C.481
C DDCALL2C.482
*ENDIF DDCALL2C.483