*IF DEF,A05_3B,OR,DEF,A05_3C AJX1F405.173
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved. GTS2F400.14640
C GTS2F400.14641
C Use, duplication or disclosure of this code is subject to the GTS2F400.14642
C restrictions as set forth in the contract. GTS2F400.14643
C GTS2F400.14644
C Meteorological Office GTS2F400.14645
C London Road GTS2F400.14646
C BRACKNELL GTS2F400.14647
C Berkshire UK GTS2F400.14648
C RG12 2SZ GTS2F400.14649
C GTS2F400.14650
C If no contract has been raised with this copy of the code, the use, GTS2F400.14651
C duplication or disclosure of it is strictly prohibited. Permission GTS2F400.14652
C to do so must first be obtained in writing from the Head of Numerical GTS2F400.14653
C Modelling at the above address. GTS2F400.14654
C ******************************COPYRIGHT****************************** GTS2F400.14655
C GTS2F400.14656
CLL SUBROUTINE DD_INIT------------------------------------------------ DDINIT3A.3
CLL DDINIT3A.4
CLL PURPOSE : ROUTINE TO INITIALISE THE DOWNDRAUGHT DDINIT3A.5
CLL DDINIT3A.6
CLL SUITABLE FOR SINGLE COLUMN MODEL USE DDINIT3A.7
CLL DDINIT3A.8
CLL DDINIT3A.9
CLL MODEL MODIFICATION HISTORY FROM MODEL VERSION 3.0: DDINIT3A.10
CLL VERSION DATE DDINIT3A.11
CLL 4.0 5/5/95 New deck added for version 3A of convection DDINIT3A.12
CLL scheme. Includes tracers and momentum in the DDINIT3A.13
CLL convective parcel. removes model level DDINIT3A.14
CLL dependence in initiation of downdraught. DDINIT3A.15
CLL Pete Inness. DDINIT3A.16
! 4.2 10/01/97 Split up IF statement to prevent use of ADR2F402.42
! uninitialised values in BUOY array. D. Robinson. ADR2F402.43
! 4.3 19/03/97 Split up another IF statement to prevent use of ADR4F403.5
! uninitialised values in BUOY array. D. Robinson. ADR4F403.6
CLL 4.5 Jul. 98 Kill the IBM specific lines (JCThil) AJC1F405.25
CLL DDINIT3A.17
CLL PROGRAMMING STANDARDS : UNIFIED MODEL DOCUMENTATION PAPER NO. 3 DDINIT3A.18
CLL VERSION NO. 4 DATED 5/2/92 DDINIT3A.19
CLL DDINIT3A.20
CLL LOGICAL COMPONENTS COVERED: DDINIT3A.21
CLL DDINIT3A.22
CLL SYSTEM TASK : P27 DDINIT3A.23
CLL DDINIT3A.24
CLL DOCUMENTATION : UNIFIED MODEL DOCUMENTATION PAPER P27 DDINIT3A.25
CLL DDINIT3A.26
CLLEND----------------------------------------------------------------- DDINIT3A.27
C DDINIT3A.28
C*L ARGUMENTS--------------------------------------------------------- DDINIT3A.29
C DDINIT3A.30
SUBROUTINE DD_INIT(NPNTS,NP_FULL,TH_UD_K,Q_UD_K,THE_K,QE_K,PK, 4,2DDINIT3A.31
& EXK,THDD_K,QDD_K,DELTD,DELQD,BDD_START,K,BDDI, DDINIT3A.32
& BDD_ON,L_MOM,U_UD_K,V_UD_K,UE_K,VE_K,UDD_K, DDINIT3A.33
& VDD_K,DELUD,DELVD,L_TRACER,NTRA,TRA_UD_K, DDINIT3A.34
& TRAE_K,TRADD_K,DELTRAD) DDINIT3A.35
C DDINIT3A.36
IMPLICIT NONE DDINIT3A.37
C DDINIT3A.38
C----------------------------------------------------------------------- DDINIT3A.39
C MODEL CONSTANTS DDINIT3A.40
C----------------------------------------------------------------------- DDINIT3A.41
*CALL C_EPSLON
DDINIT3A.42
C----------------------------------------------------------------------- DDINIT3A.43
C VECTOR LENGTHS AND LOOP COUNTERS DDINIT3A.44
C----------------------------------------------------------------------- DDINIT3A.45
C DDINIT3A.46
C DDINIT3A.50
INTEGER I,KTRA ! LOOP COUNTERS DDINIT3A.51
C DDINIT3A.52
INTEGER NPNTS ! VECTOR LENGTH DDINIT3A.53
C DDINIT3A.54
INTEGER NP_FULL ! FULL VECTOR LENGTH DDINIT3A.55
C DDINIT3A.56
INTEGER NTRA ! NUMBER OF TRACER VARIABLES DDINIT3A.57
C DDINIT3A.58
INTEGER K ! IN PRESENT MODEL LAYER DDINIT3A.59
C DDINIT3A.60
C----------------------------------------------------------------------- DDINIT3A.61
C VARIABLES WHICH ARE INPUT DDINIT3A.62
C----------------------------------------------------------------------- DDINIT3A.63
C DDINIT3A.64
REAL THE_K(NPNTS) ! IN POTENTIAL TEMPERATURE OF DDINIT3A.65
! ENVIRONMENT IN LAYER K (K) DDINIT3A.66
C DDINIT3A.67
REAL TH_UD_K(NPNTS) ! IN PARCEL POTENTIAL TEMPERATURE OF DDINIT3A.68
! UPDRAUGHT, LAYER K (K) DDINIT3A.69
C DDINIT3A.70
REAL QE_K(NPNTS) ! IN MIXING RATIO OF ENVIRONMENT IN DDINIT3A.71
! LAYER K (KG/KG) DDINIT3A.72
C DDINIT3A.73
REAL Q_UD_K(NPNTS) ! IN PARCEL MIXING RATIO OF UPDRAUGHT, DDINIT3A.74
! LAYER K (KG/KG) DDINIT3A.75
C DDINIT3A.76
REAL UE_K(NPNTS) ! IN U IN ENVIRONMENT IN LAYER K (M/S) DDINIT3A.77
C DDINIT3A.78
REAL U_UD_K(NPNTS) ! IN PARCEL U OF UPDRAUGHT IN LAYER K DDINIT3A.79
! (M/S) DDINIT3A.80
C DDINIT3A.81
REAL VE_K(NPNTS) ! IN V IN ENVIRONMENT IN LAYER K (M/S) DDINIT3A.82
C DDINIT3A.83
REAL V_UD_K(NPNTS) ! IN PARCEL V OF UPDRAUGHT IN LAYER K DDINIT3A.84
! (M/S) DDINIT3A.85
C DDINIT3A.86
REAL TRAE_K(NP_FULL,NTRA) ! IN TRACER CONTENT OF ENVIRONMENT DDINIT3A.87
! IN LAYER K (KG/KG) DDINIT3A.88
C DDINIT3A.89
REAL TRA_UD_K(NP_FULL, ! IN PARCEL TRACER CONTENT OF DDINIT3A.90
* NTRA) ! UPDRAUGHT IN LAYER K (KG/KG) DDINIT3A.91
C DDINIT3A.92
REAL EXK(NPNTS) ! IN EXNER RATIO OF LAYER K DDINIT3A.93
C DDINIT3A.94
REAL PK(NPNTS) ! IN PRESSURE OF LAYER K (PA) DDINIT3A.95
C DDINIT3A.96
LOGICAL BDDI(NPNTS) ! IN MASK FOR THOSE POINTS WHERE DDINIT3A.97
! DOWNDRAUGHT MAY INITIATE DDINIT3A.98
C DDINIT3A.99
LOGICAL BDD_ON(NPNTS) ! IN MASK FOR THOSE POINTS WHERE DDINIT3A.100
! DOWNDRAUGHT IS ON DDINIT3A.101
C DDINIT3A.102
LOGICAL L_TRACER ! IN SWITCH FOR INCLUSION OF TRACERS DDINIT3A.103
C DDINIT3A.104
LOGICAL L_MOM ! IN SWITCH FOR INCLUSION OF DDINIT3A.105
! MOMENTUM TRANSPORTS DDINIT3A.106
C DDINIT3A.107
C----------------------------------------------------------------------- DDINIT3A.108
C VARIABLES WHICH ARE INPUT AND OUTPUT DDINIT3A.109
C----------------------------------------------------------------------- DDINIT3A.110
C DDINIT3A.111
LOGICAL BDD_START(NPNTS) ! INOUT DDINIT3A.112
! IN MASK FOR THOSE POINT WHERE DDINIT3A.113
! DOWNDRAUGHT MAY START DDINIT3A.114
! OUT MASK FOR THOSE POINTS WHERE DDINIT3A.115
! DDINIT3A.116
C DDINIT3A.117
C----------------------------------------------------------------------- DDINIT3A.118
C VARIABLES WHICH ARE OUTPUT DDINIT3A.119
C----------------------------------------------------------------------- DDINIT3A.120
C DDINIT3A.121
REAL THDD_K(NPNTS) ! OUT DOWNDRAUGHT POTENTIAL TEMPERATURE DDINIT3A.122
! OF LAYER K DDINIT3A.123
C DDINIT3A.124
REAL QDD_K(NPNTS) ! OUT DOWNDRAUGHT MIXING RATIO OF DDINIT3A.125
! LAYER K DDINIT3A.126
C DDINIT3A.127
REAL UDD_K(NPNTS) ! OUT DOWNDRAUGHT U IN LAYER K (M/S) DDINIT3A.128
C DDINIT3A.129
REAL VDD_K(NPNTS) ! OUT DOWNDRAUGHT V IN LAYER K (M/S) DDINIT3A.130
C DDINIT3A.131
REAL TRADD_K(NP_FULL, ! OUT DOWNDRAUGHT TRACER CONTENT OF DDINIT3A.132
* NTRA) ! LAYER K DDINIT3A.133
C DDINIT3A.134
REAL DELTD(NPNTS) ! OUT COOLING NECESSARY TO ACHIEVE DDINIT3A.135
! SATURATION DDINIT3A.136
C DDINIT3A.137
REAL DELQD(NPNTS) ! OUT MOISTENING NECESSARY TO ACHIEVE DDINIT3A.138
! SATURATION DDINIT3A.139
C DDINIT3A.140
REAL DELUD(NPNTS) ! OUT CHANGE TO ENVIRONMENT U DUE TO DDINIT3A.141
! DOWNDRAUGHT FORMATION (M/S) DDINIT3A.142
C DDINIT3A.143
REAL DELVD(NPNTS) ! OUT CHANGE TO ENVIRONMENT V DUE TO DDINIT3A.144
! DOWNDRAUGHT FORMATION (M/S) DDINIT3A.145
C DDINIT3A.146
REAL DELTRAD(NP_FULL,NTRA)! OUT DEPLETION OF ENVIRONMENT TRACER DDINIT3A.147
! DUE TO FORMATION OF DOWNDRAUGHT DDINIT3A.148
C DDINIT3A.149
C----------------------------------------------------------------------- DDINIT3A.150
C VARIABLES WHICH ARE DEFINED LOCALLY DDINIT3A.151
C----------------------------------------------------------------------- DDINIT3A.152
C DDINIT3A.153
C DDINIT3A.187
REAL TH_MEAN(NPNTS) ! MEAN POTENTIAL TEMPERATURE USED IN DDINIT3A.188
! CALCULATION OF SATURATED DOWNDRAUGHT DDINIT3A.189
! POTENTIAL TEMPERATURE IN LAYER K DDINIT3A.190
C DDINIT3A.191
REAL Q_MEAN(NPNTS) ! MEAN MIXING RATIO USED IN CALCULATION DDINIT3A.192
! OF SATURATED DOWNDRAUGHT DDINIT3A.193
! MIXING RATIO FOR LAYER K DDINIT3A.194
C DDINIT3A.195
REAL U_MEAN(NPNTS) ! MEAN U USED IN CALCULATION OF DELUD DDINIT3A.196
! FOR LAYER K DDINIT3A.197
C DDINIT3A.198
REAL V_MEAN(NPNTS) ! MEAN V USED IN CALCULATION OF DELVD DDINIT3A.199
! FOR LAYER K DDINIT3A.200
C DDINIT3A.201
REAL TRA_MEAN(NPNTS,NTRA) ! MEAN TRACER USED AS INITIAL TRACER DDINIT3A.202
! CONTENT OF DOWNDRAUGHT IN LAYER K DDINIT3A.203
! (KG/KG) DDINIT3A.204
C DDINIT3A.205
REAL T_MEAN(NPNTS) ! MEAN TEMPERATURE USED IN CALCULATION DDINIT3A.206
! OF SATURATED DOWNDRAUGHT POTENTIAL DDINIT3A.207
! TEMPERATURE OF LAYER K (K) DDINIT3A.208
C DDINIT3A.209
REAL THDDS(NPNTS) ! SATURATED DOWNDRAUGHT POTENTIAL DDINIT3A.210
! TEMPERATURE IN LAYER K (K) DDINIT3A.211
C DDINIT3A.212
REAL QDDS(NPNTS) ! SATURATED DOWNDRAUGHT MIXING RATIO DDINIT3A.213
! IN LAYER K (KG/KG) DDINIT3A.214
C DDINIT3A.215
REAL BUOY(NPNTS) ! BUOYANCY OF PARCEL IN LAYER K DDINIT3A.216
C DDINIT3A.217
C DDINIT3A.219
REAL THDD_V ! VIRTUAL POTENTIAL TEMPERATURE OF DDINIT3A.220
! PARCEL IN LAYER K DDINIT3A.221
C DDINIT3A.222
REAL THE_V ! VIRTUAL POTENTIAL TEMPERATURE OF DDINIT3A.223
! ENVIRONMENT IN LAYER K DDINIT3A.224
C DDINIT3A.225
C----------------------------------------------------------------------- DDINIT3A.226
C EXTERNAL ROUTINES CALLED DDINIT3A.227
C----------------------------------------------------------------------- DDINIT3A.228
C DDINIT3A.229
EXTERNAL SATCAL DDINIT3A.230
C DDINIT3A.231
C----------------------------------------------------------------------- DDINIT3A.232
C CALCULATE MEAN TEMPERATURE, MIXING RATIO, U, V AND TRACER DDINIT3A.233
C----------------------------------------------------------------------- DDINIT3A.234
C DDINIT3A.235
DO I=1,NPNTS DDINIT3A.236
TH_MEAN(I) = (THE_K(I)+TH_UD_K(I))*0.5 DDINIT3A.237
Q_MEAN(I) = (QE_K(I)+Q_UD_K(I))*0.5 DDINIT3A.238
T_MEAN(I) = TH_MEAN(I)*EXK(I) DDINIT3A.239
END DO DDINIT3A.240
C DDINIT3A.241
IF(L_MOM)THEN DDINIT3A.242
DO I=1,NPNTS DDINIT3A.243
U_MEAN(I) = (UE_K(I)+U_UD_K(I))*0.5 DDINIT3A.244
V_MEAN(I) = (VE_K(I)+V_UD_K(I))*0.5 DDINIT3A.245
END DO DDINIT3A.246
END IF DDINIT3A.247
IF(L_TRACER)THEN DDINIT3A.248
C DDINIT3A.249
DO KTRA=1,NTRA DDINIT3A.250
DO I=1,NPNTS DDINIT3A.251
TRA_MEAN(I,KTRA) = (TRAE_K(I,KTRA)+TRA_UD_K(I,KTRA))*0.5 DDINIT3A.252
END DO DDINIT3A.253
END DO DDINIT3A.254
C DDINIT3A.255
END IF DDINIT3A.256
C DDINIT3A.257
C DDINIT3A.258
C----------------------------------------------------------------------- DDINIT3A.259
C CALCULATE SATURATED DOWNDRAUGHT POTENTIAL TEMPERATURE FOR LAYER K DDINIT3A.260
C----------------------------------------------------------------------- DDINIT3A.261
C DDINIT3A.262
CALL SATCAL
(NPNTS,T_MEAN,TH_MEAN,PK,QDDS,THDDS,K,EXK,Q_MEAN, DDINIT3A.263
* THE_K) DDINIT3A.264
C DDINIT3A.265
C----------------------------------------------------------------------- DDINIT3A.266
C IS SATURATED PARCEL NEGATIVELY BUOYANT COMPARED TO ENVIRONMENT DDINIT3A.267
C----------------------------------------------------------------------- DDINIT3A.268
C DDINIT3A.269
DO I=1,NPNTS DDINIT3A.270
IF (.NOT. BDD_ON(I) .AND. BDDI(I) ) THEN DDINIT3A.271
THDD_V = THDDS(I)*(1.0+C_VIRTUAL*QDDS(I)) DDINIT3A.272
THE_V = THE_K(I)*(1.0+C_VIRTUAL*QE_K(I)) DDINIT3A.273
BUOY(I) = THDD_V - THE_V DDINIT3A.274
C DDINIT3A.275
IF (BUOY(I) .LT. 0.5 ) THEN DDINIT3A.276
C DDINIT3A.277
C----------------------------------------------------------------------- DDINIT3A.278
C INITIATE DOWNDRAUGHT DDINIT3A.279
C----------------------------------------------------------------------- DDINIT3A.280
C DDINIT3A.281
THDD_K(I) = THDDS(I) DDINIT3A.282
QDD_K(I) = QDDS(I) DDINIT3A.283
BDD_START(I) = .TRUE. DDINIT3A.284
C DDINIT3A.285
C----------------------------------------------------------------------- DDINIT3A.286
C CALCULATE COOLING AND MOISTENING TO ACHIEVE SATURATION DDINIT3A.287
C----------------------------------------------------------------------- DDINIT3A.288
C DDINIT3A.289
DELTD(I) = THDDS(I)-THE_K(I) DDINIT3A.290
DELQD(I) = QDDS(I)-QE_K(I) DDINIT3A.291
END IF DDINIT3A.292
END IF DDINIT3A.293
END DO DDINIT3A.294
C DDINIT3A.295
IF(L_MOM)THEN DDINIT3A.296
DO I=1,NPNTS DDINIT3A.297
IF(.NOT.BDD_ON(I).AND.BDDI(I))THEN ADR2F402.44
IF(BUOY(I).LT.0.5)THEN ADR2F402.45
UDD_K(I) = U_MEAN(I) DDINIT3A.299
VDD_K(I) = V_MEAN(I) DDINIT3A.300
DELUD(I) = UDD_K(I)-UE_K(I) DDINIT3A.301
DELVD(I) = VDD_K(I)-VE_K(I) DDINIT3A.302
END IF ADR2F402.46
END IF DDINIT3A.303
END DO DDINIT3A.304
END IF DDINIT3A.305
C DDINIT3A.306
C DDINIT3A.307
IF(L_TRACER)THEN DDINIT3A.308
C DDINIT3A.309
DO KTRA=1,NTRA DDINIT3A.310
DO I=1,NPNTS DDINIT3A.311
IF(.NOT.BDD_ON(I).AND.BDDI(I).AND.K.GE.4)THEN ADR4F403.7
IF(BUOY(I).LT.0.5)THEN ADR4F403.8
TRADD_K(I,KTRA) = TRA_MEAN(I,KTRA) DDINIT3A.314
DELTRAD(I,KTRA) = TRADD_K(I,KTRA)-TRAE_K(I,KTRA) DDINIT3A.315
END IF ADR4F403.9
END IF DDINIT3A.316
END DO DDINIT3A.317
END DO DDINIT3A.318
C DDINIT3A.319
END IF DDINIT3A.320
RETURN DDINIT3A.321
END DDINIT3A.322
C DDINIT3A.323
*ENDIF DDINIT3A.324