*IF DEF,A05_2C CONVEC2C.2
C ******************************COPYRIGHT****************************** CONVEC2C.3
C (c) CROWN COPYRIGHT 1996, METEOROLOGICAL OFFICE, All Rights Reserved. CONVEC2C.4
C CONVEC2C.5
C Use, duplication or disclosure of this code is subject to the CONVEC2C.6
C restrictions as set forth in the contract. CONVEC2C.7
C CONVEC2C.8
C Meteorological Office CONVEC2C.9
C London Road CONVEC2C.10
C BRACKNELL CONVEC2C.11
C Berkshire UK CONVEC2C.12
C RG12 2SZ CONVEC2C.13
C CONVEC2C.14
C If no contract has been raised with this copy of the code, the use, CONVEC2C.15
C duplication or disclosure of it is strictly prohibited. Permission CONVEC2C.16
C to do so must first be obtained in writing from the Head of Numerical CONVEC2C.17
C Modelling at the above address. CONVEC2C.18
C ******************************COPYRIGHT****************************** CONVEC2C.19
C CONVEC2C.20
CLL SUBROUTINE CONVECT------------------------------------------------ CONVEC2C.21
CLL CONVEC2C.22
CLL PURPOSE : TOP LEVEL OF THE MASS FLUX CONVECTION SCHEME. CONVEC2C.23
CLL LOOPS ROUND MODEL LEVELS FORM SURFACE UPWARDS CONVEC2C.24
CLL A STABILITY TEST IS CARRIED OUT TO DETERMINE WHICH CONVEC2C.25
CLL POINTS ARE TOO STABLE FOR CONVECTION TO OCCUR CONVEC2C.26
CLL SUBROUTINE LIFTP AND CONVC2 ARE CALLED TO CALCULATE CONVEC2C.27
CLL THE PARCEL ASCENT CONVEC2C.28
CLL SUBROUTINE POUR IS CALLED TO CALCULATE THE EVAPORATION CONVEC2C.29
CLL OF FALLING PRECIPITATION CONVEC2C.30
CLL SUBROUTINE DD_CALL CALLS THE DOWNDRAUGHT CODE CONVEC2C.31
CLL SUBROUTINE CORNRG IS CALLED TO CONSERVE MOIST STATIC CONVEC2C.32
CLL ENERGY ONCE OTHER CALCULATIONS ARE COMPLETE CONVEC2C.33
CLL CONVEC2C.34
CLL SUITABLE FOR SINGLE COLUMN MODEL USE CONVEC2C.35
CLL CONVEC2C.36
CLL MODEL MODIFICATION HISTORY: CONVEC2C.37
CLL VERSION DATE CONVEC2C.38
CLL 4.2 1/11/96 New deck version based on CONVEC2A with HADCM2 CONVEC2C.39
CLL specific modifications: R Jones CONVEC2C.40
CLL 4.3 Feb. 97 T3E optimisation: introduce recip_pstar, GSS1F403.119
CLL eliminate copying into workspace arrays GSS1F403.120
CLL for CORENG call. S.J.Swarbrick GSS1F403.121
CLL 4.3 12.5.97 Correction to argument list for consistency with AJG1F403.1
CLL a change to the glue routine at 4.2 AJG1F403.2
!LL 4.4 Oct 97 Add halo mask to stop redundant calculations AAD2F404.182
!LL Alan Dickinson AAD2F404.183
!LL 4.5 20/02/98 Remove redundant code. A. Dickinson ADR1F405.6
!LL 23/02/98 Call comdecks. D. Robinson. ADR1F405.7
CLL CONVEC2C.41
CLL PROGRAMMING STANDARDS : UNIFIED MODEL DOCUMENTATION PAPER NO. 3 CONVEC2C.42
CLL VERSION NO. 4 Dated 05/02/92 CONVEC2C.43
CLL CONVEC2C.44
CLL LOGICAL COMPONENTS INCLUDED: CONVEC2C.45
CLL CONVEC2C.46
CLL SYSTEM TASK : P27 CONVEC2C.47
CLL CONVEC2C.48
CLL DOCUMENTATION : UNIFIED MODEL DOCUMENTATION PAPER 27 CONVEC2C.49
CLL CONVEC2C.50
CLLEND----------------------------------------------------------------- CONVEC2C.51
C CONVEC2C.52
C*L ARGUMENTS--------------------------------------------------------- CONVEC2C.53
C CONVEC2C.54
SUBROUTINE CONVECT (NP_FIELD,NPNTS,NLEV,TH,Q,PSTAR,BLAND,DTHBYDT, 3,46CONVEC2C.55
& DQBYDT,RAIN,SNOW,CCA,ICCB,ICCT,CCLWP, CONVEC2C.56
& CCW,ICCBPxCCA,ICCTPxCCA,GBMCCWP,GBMCCW, AJG1F403.3
& LCBASE,LCTOP,LCCA,LCCLWP,CAPE_OUT, AJG1F403.4
& EXNER,AK,BK,AKM12,BKM12,DELAK,DELBK,TIMESTEP AAD2F404.184
*IF DEF,MPP AAD2F404.185
& ,l_halo AAD2F404.186
*ENDIF AAD2F404.187
& ) AAD2F404.188
C CONVEC2C.59
IMPLICIT NONE CONVEC2C.60
C CONVEC2C.61
C CONVEC2C.62
C-------------------------------------------------------------------- CONVEC2C.63
C MODEL CONSTANTS CONVEC2C.64
C-------------------------------------------------------------------- CONVEC2C.65
*CALL PARXS
ADR1F405.8
*CALL C_EPSLON
ADR1F405.9
*CALL C_R_CP
ADR1F405.10
*CALL XSBMIN
ADR1F405.11
*CALL MPARB
ADR1F405.12
*CALL DELTHST
ADR1F405.13
*CALL C_LHEAT
ADR1F405.14
*CALL MASSFC
ADR1F405.15
C CONVEC2C.116
C--------------------------------------------------------------------- CONVEC2C.117
C VECTOR LENGTHS AND LOOP COUNTERS CONVEC2C.118
C--------------------------------------------------------------------- CONVEC2C.119
C CONVEC2C.120
INTEGER NP_FIELD ! LENGTH OF DATA (ALSO USED TO CONVEC2C.121
! SPECIFY STARTING POINT OF CONVEC2C.122
! DATA PASSED IN) CONVEC2C.123
C CONVEC2C.124
INTEGER NPNTS ! IN FULL VECTOR LENGTH CONVEC2C.125
C CONVEC2C.126
INTEGER NLEV ! IN NUMBER OF MODEL LAYERS CONVEC2C.127
C CONVEC2C.128
INTEGER NCONV ! NUMBER OF POINTS WHICH PASS CONVEC2C.129
! INITIAL STABILITY TEST IN LAYER K CONVEC2C.130
C CONVEC2C.131
INTEGER NINIT ! NUMBER OF POINTS AT WHICH CONVEC2C.132
! CONVECTION OCCURS IN LAYER K CONVEC2C.133
C CONVEC2C.134
INTEGER NTERM ! NUMBER OF CONVECTING POINTS IN CONVEC2C.135
! LAYER K AT WHICH CONVECTION IS CONVEC2C.136
! TERMINATING CONVEC2C.137
C CONVEC2C.138
INTEGER NCNLV ! NUMBER OF POINTS AT WHICH CONVECTION CONVEC2C.139
! OCCURS AT SOME LAYER OF THE DOMAIN CONVEC2C.140
C CONVEC2C.141
INTEGER I,K,KC ! LOOP COUNTERS CONVEC2C.142
C CONVEC2C.143
C CONVEC2C.144
C--------------------------------------------------------------------- CONVEC2C.145
C VARIABLES WHICH ARE INPUT CONVEC2C.146
C--------------------------------------------------------------------- CONVEC2C.147
C CONVEC2C.148
LOGICAL BLAND(NP_FIELD) ! IN LAND/SEA MASK CONVEC2C.149
C CONVEC2C.150
REAL PSTAR(NP_FIELD) ! IN SURFACE PRESSURE (PA) CONVEC2C.151
C CONVEC2C.152
REAL EXNER(NP_FIELD,NLEV+1) ! IN EXNER RATIO CONVEC2C.153
C CONVEC2C.154
REAL AK(NLEV), ! IN HYBRID CO-ORDINATE COEFFICIENTS CONVEC2C.155
* BK(NLEV) ! DEFINE PRESSURE AT MID-POINT CONVEC2C.156
! OF LAYER K CONVEC2C.157
C CONVEC2C.158
REAL AKM12(NLEV+1), ! IN HYBRID CO-ORDINATE COEFFICIENTS CONVEC2C.159
* BKM12(NLEV+1) ! TO DEFINE PRESSURE AT CONVEC2C.160
! LEVEL K-1/2 CONVEC2C.161
C CONVEC2C.162
REAL DELAK(NLEV), ! IN DIFFERENCE IN HYBRID CO-ORDINATE CONVEC2C.163
* DELBK(NLEV) ! COEFFICIENTS ACROSS LAYER K CONVEC2C.164
C CONVEC2C.165
REAL TIMESTEP ! IN MODEL TIMESTEP (SECS) CONVEC2C.166
*IF DEF,MPP AAD2F404.189
LOGICAL l_halo(NP_FIELD) ! IN: Mask for halos AAD2F404.190
*ENDIF AAD2F404.191
C CONVEC2C.167
C CONVEC2C.168
C--------------------------------------------------------------------- CONVEC2C.169
C VARIABLES WHICH ARE INPUT AND OUTPUT CONVEC2C.170
C--------------------------------------------------------------------- CONVEC2C.171
C CONVEC2C.172
REAL TH(NP_FIELD,NLEV) ! INOUT CONVEC2C.173
! IN MODEL POTENTIAL TEMPERATURE (K) CONVEC2C.174
! OUT MODEL POTENTIAL TEMPERATURE CONVEC2C.175
! AFTER CONVECTION (K) CONVEC2C.176
C CONVEC2C.177
REAL Q(NP_FIELD,NLEV) ! INOUT CONVEC2C.178
! IN MODEL MIXING RATIO (KG/KG) CONVEC2C.179
! OUT MODEL MIXING RATIO AFTER CONVEC2C.180
! AFTER CONVECTION (KG/KG) CONVEC2C.181
C CONVEC2C.182
C CONVEC2C.183
C---------------------------------------------------------------------- CONVEC2C.184
C VARIABLES WHICH ARE OUTPUT CONVEC2C.185
C---------------------------------------------------------------------- CONVEC2C.186
C CONVEC2C.187
REAL DTHBYDT(NP_FIELD,NLEV) ! OUT INCREMENTS TO POTENTIAL CONVEC2C.188
! TEMPERATURE DUE TO CONVECTION CONVEC2C.189
! (K/S) CONVEC2C.190
C CONVEC2C.191
REAL DQBYDT(NP_FIELD,NLEV) ! OUT INCREMENTS TO MIXING RATIO CONVEC2C.192
! DUE TO CONVECTION (KG/KG/S) CONVEC2C.193
C CONVEC2C.194
REAL RAIN(NP_FIELD) ! OUT SURFACE CONVECTIVE RAINFALL CONVEC2C.195
! (KG/M**2/S) CONVEC2C.196
C CONVEC2C.197
REAL SNOW(NP_FIELD) ! OUT SURFACE CONVECTIVE SNOWFALL CONVEC2C.198
! (KG/M**2/S) CONVEC2C.199
C CONVEC2C.200
REAL CCA(NP_FIELD) ! OUT CONVECTIVE CLOUD AMOUNT (%) CONVEC2C.201
C CONVEC2C.202
INTEGER ICCB(NP_FIELD) ! OUT CONVECTIVE CLOUD BASE LEVEL CONVEC2C.203
C CONVEC2C.204
INTEGER ICCT(NP_FIELD) ! OUT CONVECTIVE CLOUD TOP LEVEL CONVEC2C.205
C CONVEC2C.206
REAL CCLWP(NP_FIELD) ! OUT CONDENSED WATER PATH (KG/M**2) CONVEC2C.207
C CONVEC2C.208
REAL CCW(NP_FIELD,NLEV) ! OUT CONVECTIVE CLOUD LIQUID WATER CONVEC2C.209
! (G/KG) ON MODEL LEVELS CONVEC2C.210
C CONVEC2C.211
REAL CAPE_OUT(NPNTS) ! OUT SAVED VALUES OF CONVECTIVE CONVEC2C.212
! AVAILABLE POTENTIAL ENERGY CONVEC2C.213
! FOR DIAGNOSTIC OUTPUT (J/KG) CONVEC2C.214
C CONVEC2C.215
REAL LCCA(NP_FIELD) ! OUT LOWEST CONV.CLOUD AMOUNT (%) CONVEC2C.216
C CONVEC2C.217
INTEGER LCBASE(NP_FIELD) ! OUT LOWEST CONV.CLOUD BASE LEVEL CONVEC2C.218
C CONVEC2C.219
INTEGER LCTOP(NP_FIELD) ! OUT LOWEST CONV.CLOUD TOP LEVEL CONVEC2C.220
C CONVEC2C.221
REAL LCCLWP(NP_FIELD) ! OUT CONDENSED WATER PATH (KG/M**2) CONVEC2C.222
! FOR LOWEST CONV.CLOUD CONVEC2C.223
C AJG1F403.5
C Dummy diagnostics expected by 2A glue routine but not calculated AJG1F403.6
C by this version of convection AJG1F403.7
C AJG1F403.8
REAL ICCBPxCCA(NP_FIELD) ! dummy AJG1F403.9
REAL ICCTPxCCA(NP_FIELD) ! dummy AJG1F403.10
REAL GBMCCWP(NP_FIELD) ! dummy AJG1F403.11
REAL GBMCCW(NP_FIELD,NLEV) ! dummy AJG1F403.12
C CONVEC2C.224
C---------------------------------------------------------------------- CONVEC2C.225
C VARIABLES DEFINED LOCALLY CONVEC2C.226
C CONVEC2C.227
C ON THE IBM ARRAYS ARE ALLOCATED USING A PARAMETER STATEMENT CONVEC2C.228
C CONVEC2C.229
C ON THE CRAY ARRAYS ARE DYNAMICALLY ALLOCATED CONVEC2C.230
C---------------------------------------------------------------------- CONVEC2C.231
C CONVEC2C.232
C CONVEC2C.233
C---------------------------------------------------------------------- CONVEC2C.234
C NOTE THAT THE BELOW WORK SPACE ALLOCATION ASSUMES THAT LEVPAR>=11 CONVEC2C.235
C---------------------------------------------------------------------- CONVEC2C.236
C CONVEC2C.237
REAL WORK(NPNTS,NLEV*2), ! WORK SPACE CONVEC2C.238
* WORK2(NPNTS,NLEV*2) CONVEC2C.239
LOGICAL BWORK(NPNTS,4), ! WORK SPACE FOR 'BIT' MASKS CONVEC2C.240
* BWORK2(NPNTS,4) CONVEC2C.241
C CONVEC2C.242
REAL CAPE(NPNTS) ! CONVECTIVE AVAILABLE POTENTIAL CONVEC2C.243
! ENERGY (J/KG) CONVEC2C.244
C CONVEC2C.245
REAL CAPE_C(NPNTS) ! CAPE - COMPRESSED CONVEC2C.246
C CONVEC2C.247
C CONVEC2C.248
LOGICAL BCONV(NPNTS) ! MASK FOR POINTS WHERE STABILITY CONVEC2C.249
! LOW ENOUGH FOR CONVECTION CONVEC2C.250
! TO OCCUR CONVEC2C.251
C CONVEC2C.252
REAL QSE(NPNTS,NLEV) ! SATURATION MIXING RATIO OF CLOUD CONVEC2C.253
! ENVIRONMENT (KG/KG) CONVEC2C.254
C CONVEC2C.255
REAL TT(NPNTS) ! TEMPORARY STORE FOR TEMPERATURE CONVEC2C.256
! IN CALCULATION OF SATURATION CONVEC2C.257
! MIXING RATIO (K) CONVEC2C.258
C CONVEC2C.259
REAL PT(NPNTS) ! TEMPORARY STORE FOR PRESSURE CONVEC2C.260
! IN CALCULATION OF SATURATION CONVEC2C.261
! MIXING RATIO (PA) CONVEC2C.262
C CONVEC2C.263
REAL CCAC(NPNTS) ! COMPRESSED VALUES OF CCA CONVEC2C.264
C CONVEC2C.265
INTEGER ICCBC(NPNTS) ! COMPRESSED VALUES OF CCB CONVEC2C.266
C CONVEC2C.267
INTEGER ICCTC(NPNTS) ! COMPRESSED VALUES OF CCT CONVEC2C.268
C CONVEC2C.269
REAL TCW(NPNTS) ! TOTAL CONDENSED WATER (KG/M**2/S) CONVEC2C.270
C CONVEC2C.271
REAL TCWC(NPNTS) ! COMPRESSED VALUES OF TCW CONVEC2C.272
C CONVEC2C.273
REAL CCLWPC(NPNTS) ! COMPRESSED VALUE OF CCLWP CONVEC2C.274
C CONVEC2C.275
REAL LCCAC(NPNTS) ! COMPRESSED VALUES OF LCCA CONVEC2C.276
C CONVEC2C.277
INTEGER LCBASEC(NPNTS) ! COMPRESSED VALUES OF LCBASE CONVEC2C.278
C CONVEC2C.279
INTEGER LCTOPC(NPNTS) ! COMPRESSED VALUES OF LCTOP CONVEC2C.280
C CONVEC2C.281
REAL LCCLWPC(NPNTS) ! COMPRESSED VALUE OF LCCLWP CONVEC2C.282
C CONVEC2C.283
REAL DQSTHK(NPNTS) ! GRADIENT OF SATURATION MIXING CONVEC2C.284
! RATIO OF CLOUD ENVIRONMENT WITH CONVEC2C.285
! POTENTIAL TEMPERATURE IN LAYER K CONVEC2C.286
! (KG/KG/K) CONVEC2C.287
C CONVEC2C.288
REAL DQSTHKP1(NPNTS) ! GRADIENT OF SATURATION MIXING CONVEC2C.289
! RATIO OF CLOUD ENVIRONMENT WITH CONVEC2C.290
! POTENTIAL TEMPERATURE IN LAYER K+1 CONVEC2C.291
! (KG/KG/K) CONVEC2C.292
C CONVEC2C.293
REAL PRECIP(NPNTS,NLEV) ! AMOUNT OF PRECIPITATION CONVEC2C.294
! FROM EACH LAYER (KG/M*:2/S) CONVEC2C.295
C CONVEC2C.296
REAL THPI(NPNTS) ! INITIAL PARCEL POTENTIAL TEMPERATURE CONVEC2C.297
! (K) CONVEC2C.298
C CONVEC2C.299
REAL QPI(NPNTS) ! INITIAL PARCEL MIXING RATIO CONVEC2C.300
! (KG/KG) CONVEC2C.301
C CONVEC2C.302
REAL THP(NPNTS,NLEV) ! PARCEL POTENTIAL TEMPERATURE CONVEC2C.303
! IN LAYER K (K) CONVEC2C.304
C CONVEC2C.305
REAL QP(NPNTS,NLEV) ! PARCEL MIXING RATIO IN LAYER K CONVEC2C.306
! (KG/KG) CONVEC2C.307
C CONVEC2C.308
REAL XPK(NPNTS) ! PARCEL CLOUD WATER IN LAYER K CONVEC2C.309
! (KG/KG) CONVEC2C.310
C CONVEC2C.311
REAL FLX(NPNTS,NLEV) ! PARCEL MASSFLUX IN LAYER K (PA/S) CONVEC2C.312
C CONVEC2C.313
LOGICAL BINIT(NPNTS) ! MASK FOR POINTS WHERE CONVECTION CONVEC2C.314
! IS OCCURING CONVEC2C.315
C CONVEC2C.316
LOGICAL BTERM(NPNTS) ! MASK FOR POINTS WHERE CONVECTION CONVEC2C.317
! TERMINATES IN LAYER K+1 CONVEC2C.318
C CONVEC2C.319
LOGICAL BWATER(NPNTS,2:NLEV) ! MASK FOR POINTS AT WHICH CONVEC2C.320
! PRECIPITATION IS LIQUID CONVEC2C.321
C CONVEC2C.322
LOGICAL BGMK(NPNTS) ! MASK FOR POINTS WHERE PARCEL IN CONVEC2C.323
! LAYER K IS SATURATED CONVEC2C.324
C CONVEC2C.325
LOGICAL BCNLV(NPNTS) ! MASK FOR THOSE POINTS AT WHICH CONVEC2C.326
! CONVECTION HAS OCCURED AT SOME CONVEC2C.327
! LEVEL OF THE MODEL CONVEC2C.328
C CONVEC2C.329
REAL DEPTH(NPNTS) ! DEPTH OF CONVECTIVE CLOUD (M) CONVEC2C.330
C CONVEC2C.331
REAL FLXMAXK(NPNTS) ! MAXIMUM INITIL CONVECTIVE MASSFLUX CONVEC2C.332
! (PA/S) CONVEC2C.333
C CONVEC2C.334
REAL FLXMAX2(NPNTS) ! MAXIMUM INITIL CONVECTIVE MASSFLUX CONVEC2C.335
! (PA/S) CONVEC2C.336
C CONVEC2C.337
REAL PK(NPNTS) ! PRESSURE AT MID-POINT OF LAYER K CONVEC2C.338
! (PA) CONVEC2C.339
C CONVEC2C.340
REAL PKP1(NPNTS) ! PRESSURE AT MID-POINT OF LAYER K+1 CONVEC2C.341
! (PA) CONVEC2C.342
C CONVEC2C.343
REAL DELPK(NPNTS) ! PRESSURE DIFFERENCE ACROSS LAYER K CONVEC2C.344
! (PA) CONVEC2C.345
C CONVEC2C.346
REAL DELPKP1(NPNTS) ! PRESSURE DIFFERENCE ACROSS LAYER K+1 CONVEC2C.347
! (PA) CONVEC2C.348
C CONVEC2C.349
REAL DELPKP12(NPNTS) ! PRESSURE DIFFERENCE BETWEEN CONVEC2C.350
! LEVELS K AND K+1 (PA) CONVEC2C.351
C CONVEC2C.352
REAL EKP14(NPNTS), ! ENTRAINMENT COEFFICIENTS AT LEVELS CONVEC2C.353
* EKP34(NPNTS) ! K+1/4 AND K+3/4 MULTIPLIED BY CONVEC2C.354
! APPROPRIATE LAYER THICKNESS CONVEC2C.355
C CONVEC2C.356
REAL AMDETK(NPNTS) ! MIXING DETRAINMENT COEFFICIENT AT CONVEC2C.357
! LEVEL K MULTIPLIED BY APPROPRIATE CONVEC2C.358
! LAYER THICKNESS CONVEC2C.359
C CONVEC2C.360
REAL EXK(NPNTS) ! EXNER RATIO AT LEVEL K CONVEC2C.361
C CONVEC2C.362
REAL EXKP1(NPNTS) ! EXNER RATIO AT LEVEL K+1 CONVEC2C.363
C CONVEC2C.364
REAL DELEXKP1(NPNTS) ! DIFFERENCE IN EXNER RATIO CONVEC2C.365
! ACROSS LAYER K+1 CONVEC2C.366
C CONVEC2C.367
REAL EMINDS(NPNTS) ! CONVEC2C.368
C CONVEC2C.369
INTEGER INDEX1(NPNTS), ! INDEX FOR COMPRESS AND CONVEC2C.370
* INDEX2(NPNTS), ! EXPAND CONVEC2C.371
* INDEX3(NPNTS), CONVEC2C.372
* INDEX4(NPNTS) CONVEC2C.373
C CONVEC2C.374
C CONVEC2C.375
REAL FLX2 ! TEMPORARY STORE FOR MASS FLUX CONVEC2C.376
REAL recip_PSTAR(NP_FIELD) ! Reciprocal of pstar array GSS1F403.123
C CONVEC2C.377
C---------------------------------------------------------------------- CONVEC2C.378
C EXTERNAL ROUTINES CALLED CONVEC2C.379
C---------------------------------------------------------------------- CONVEC2C.380
C CONVEC2C.381
EXTERNAL QSAT,FLAG_WET,LIFT_PAR,CONVEC2,LAYER_CN, CONVEC2C.382
* DQS_DTH,COR_ENGY,DD_CALL CONVEC2C.383
C CONVEC2C.384
CONVEC2C.385
REAL CONVEC2C.386
& PU,PL CONVEC2C.387
*CALL P_EXNERC
ADR1F405.16
CONVEC2C.399
CONVEC2C.400
C*--------------------------------------------------------------------- CONVEC2C.401
C CONVEC2C.402
CL CONVEC2C.403
CL--------------------------------------------------------------------- CONVEC2C.404
CL CALCULATE AN ARRAY OF SATURATION MIXING RATIOS CONVEC2C.405
CL FIRST CONVERT POTENTIAL TEMPERATURE TO TEMPERATURE AND CALCULATE CONVEC2C.406
CL PRESSURE OF LAYER K CONVEC2C.407
CL CONVEC2C.408
CL SUBROUTINE QSAT CONVEC2C.409
CL UM DOCUMENTATION PAPER P282 CONVEC2C.410
CL--------------------------------------------------------------------- CONVEC2C.411
CL CONVEC2C.412
C Calculate reciprocal of pstar ADR1F405.17
DO I=1,NPNTS ADR1F405.18
RECIP_PSTAR(I)=1./PSTAR(I) ADR1F405.19
ENDDO ADR1F405.20
C GSS1F403.131
DO 20 K=1,NLEV CONVEC2C.413
DO 25 I = 1,NPNTS CONVEC2C.414
PU=PSTAR(I)*BKM12(K+1) + AKM12(K+1) CONVEC2C.415
PL=PSTAR(I)*BKM12(K) + AKM12(K) CONVEC2C.416
TT(I) = TH(I,K)* P_EXNER_C(EXNER(I,K+1),EXNER(I,K),PU,PL,KAPPA) CONVEC2C.417
PT(I) = AK(K)+BK(K)*PSTAR(I) CONVEC2C.418
25 CONTINUE CONVEC2C.419
C CONVEC2C.420
CALL QSAT
(QSE(1,K),TT,PT,NPNTS) CONVEC2C.421
C CONVEC2C.422
20 CONTINUE CONVEC2C.423
CL CONVEC2C.424
CL--------------------------------------------------------------------- CONVEC2C.425
CL CALCULATE BIT VECTOR WHERE WATER WILL CONDENSE RATHER THAN ICE CONVEC2C.426
CL SUBROUTINE FLAG_WET CONVEC2C.427
CL CONVEC2C.428
CL UM DOCUMENTATION PAPER P27 CONVEC2C.429
CL SECTION (2B) CONVEC2C.430
CL--------------------------------------------------------------------- CONVEC2C.431
CL CONVEC2C.432
CALL FLAG_WET
(BWATER,TH,EXNER,PSTAR,AKM12,BKM12, CONVEC2C.433
& NP_FIELD,NPNTS,NLEV) CONVEC2C.434
C CONVEC2C.435
C---------------------------------------------------------------------- CONVEC2C.436
C INITIALISE PRECIPITATION, DTH/DT, DQ/DT, CCW ARRAYS CONVEC2C.437
C---------------------------------------------------------------------- CONVEC2C.438
C CONVEC2C.439
DO 40 K=1,NLEV CONVEC2C.440
DO 40 I=1,NPNTS CONVEC2C.441
PRECIP(I,K) = 0.0 CONVEC2C.442
CCW(I,K) = 0.0 CONVEC2C.443
DTHBYDT(I,K) = 0.0 CONVEC2C.444
40 DQBYDT(I,K) = 0.0 CONVEC2C.445
DO 50 I=1,NPNTS CONVEC2C.446
C CONVEC2C.447
C---------------------------------------------------------------------- CONVEC2C.448
C INITIALISE BIT VECTORS FOR POINTS WHICH ARE ALREADY CONVECTING CONVEC2C.449
C AND FOR POINTS AT WHICH CONVECTION OCCURS AT SOME LEVEL OF CONVEC2C.450
C THE ATMOSPHERE CONVEC2C.451
C---------------------------------------------------------------------- CONVEC2C.452
C CONVEC2C.453
BINIT(I) = .FALSE. CONVEC2C.454
BCNLV(I) = .FALSE. CONVEC2C.455
BTERM(I) = .FALSE. CONVEC2C.456
C CONVEC2C.457
C---------------------------------------------------------------------- CONVEC2C.458
C INITIALISE RADIATION DIAGNOSTICS CONVEC2C.459
C---------------------------------------------------------------------- CONVEC2C.460
C CONVEC2C.461
CCA(I) = 0.0 CONVEC2C.462
ICCB(I) = 0 CONVEC2C.463
ICCT(I) = 0 CONVEC2C.464
CCLWP(I) = 0.0 CONVEC2C.465
CONVEC2C.466
TCW(I) = 0.0 CONVEC2C.467
C CONVEC2C.468
CL------------------------------------------------------------------- CONVEC2C.469
CL INITIALISE CAPE DIAGNOSTIC CONVEC2C.470
CL------------------------------------------------------------------- CONVEC2C.471
C CONVEC2C.472
CAPE(I) = 0.0 CONVEC2C.473
CAPE_OUT(I) = 0.0 CONVEC2C.474
CAPE_C(I) = 0.0 CONVEC2C.475
C CONVEC2C.476
C--------------------------------------------------------------------- CONVEC2C.477
C INITIALISE SURFACE PRECIPITATION ARRAYS CONVEC2C.478
C--------------------------------------------------------------------- CONVEC2C.479
C CONVEC2C.480
RAIN(I) = 0.0 CONVEC2C.481
50 SNOW(I) = 0.0 CONVEC2C.482
CL CONVEC2C.483
CL===================================================================== CONVEC2C.484
CL MAIN LOOP OVER LEVELS - FROM SURFACE TO TOP CONVEC2C.485
CL===================================================================== CONVEC2C.486
CL CONVEC2C.487
DO 60 K=1,NLEV-1 CONVEC2C.488
CL CONVEC2C.489
CL--------------------------------------------------------------------- CONVEC2C.490
CL CALCULATE LEVEL PRESSURES, EXNER RATIO FOR MID POINTS, ENTRAINMENT CONVEC2C.491
CL RATES, DETRAINMENTS RATES AND PRESSURE DIFFERENCE ACROS LAYERS AS CONVEC2C.492
CL A FUNCTION OF GRID-POINT CONVEC2C.493
CL CONVEC2C.494
CL SUBROUTINE LAYER_CN CONVEC2C.495
CL--------------------------------------------------------------------- CONVEC2C.496
CL CONVEC2C.497
CALL LAYER_CN
(K,NP_FIELD,NPNTS,NLEV,EXNER,AK,BK,AKM12,BKM12, CONVEC2C.498
* DELAK,DELBK,PSTAR,PK,PKP1,DELPK,DELPKP1, CONVEC2C.499
* DELPKP12,EKP14,EKP34,AMDETK,EXK,EXKP1, CONVEC2C.500
* DELEXKP1,recip_PSTAR) GSS1F403.132
CL CONVEC2C.502
CL--------------------------------------------------------------------- CONVEC2C.503
CL CALCULATE DQS/DTH FOR LAYERS K AND K+1 CONVEC2C.504
CL CONVEC2C.505
CL SUBROUTINE DQS_DTH CONVEC2C.506
CL--------------------------------------------------------------------- CONVEC2C.507
CL CONVEC2C.508
IF (K.EQ.1) THEN CONVEC2C.509
CALL DQS_DTH
(DQSTHK,K,TH(1,K),QSE(1,K),EXK,NPNTS) CONVEC2C.510
ELSE CONVEC2C.511
DO 65 I=1,NPNTS CONVEC2C.512
DQSTHK(I) = DQSTHKP1(I) CONVEC2C.513
65 CONTINUE CONVEC2C.514
END IF CONVEC2C.515
C CONVEC2C.516
CALL DQS_DTH
(DQSTHKP1,K+1,TH(1,K+1),QSE(1,K+1),EXKP1,NPNTS) CONVEC2C.517
C CONVEC2C.518
DO 70 I=1,NPNTS CONVEC2C.519
C CONVEC2C.520
C--------------------------------------------------------------------- CONVEC2C.521
C SET OTHER GIRD-POINT DEPENDENT CONSTANTS CONVEC2C.522
C--------------------------------------------------------------------- CONVEC2C.523
C CONVEC2C.524
C--------------------------------------------------------------------- CONVEC2C.525
C MAXIMUM INITIAL CONVECTIVE MASSFLUX CONVEC2C.526
C--------------------------------------------------------------------- CONVEC2C.527
C CONVEC2C.528
FLXMAXK(I) = DELPK(I)/((1.0 + EKP14(I)) * TIMESTEP) CONVEC2C.529
C CONVEC2C.530
C--------------------------------------------------------------------- CONVEC2C.531
C MAXIMUM CONVECTIVE MASSFLUX AT MID-POINT OF LAYER 2 CONVEC2C.532
C--------------------------------------------------------------------- CONVEC2C.533
C CONVEC2C.534
IF (K.EQ.1) FLXMAX2(I) = (PSTAR(I)-PKP1(I)) / TIMESTEP CONVEC2C.535
C CONVEC2C.536
C--------------------------------------------------------------------- CONVEC2C.537
C MINIMUM BUOYANCY FOR CONVECTION TO START FROM LAYER K CONVEC2C.538
C--------------------------------------------------------------------- CONVEC2C.539
C CONVEC2C.540
EMINDS(I) = MPARB*DELPKP12(I)*recip_pstar(I) GSS1F403.134
C CONVEC2C.542
C---------------------------------------------------------------------- CONVEC2C.543
C SET BIT VECTOR FOR POINTS WHERE CONVECTION HAS OCCURRED AT SOME CONVEC2C.544
C LEVEL OF THE ATMOSPHERE CONVEC2C.545
C----------------------------------------------------------------------- CONVEC2C.546
C CONVEC2C.547
BCNLV(I) = BCNLV(I) .OR. BINIT(I) CONVEC2C.548
CL CONVEC2C.549
CL--------------------------------------------------------------------- CONVEC2C.550
CL SET INITIAL VALUES FOR POINTS NOT ALREADY INITIATED CONVEC2C.551
CL CONVEC2C.552
CL UM DOCUMENTATION PAPER P27 CONVEC2C.553
CL SECTION (3), EQUATION(17) CONVEC2C.554
CL--------------------------------------------------------------------- CONVEC2C.555
CL CONVEC2C.556
IF (.NOT.BINIT(I)) THEN CONVEC2C.557
THPI(I) = TH(I,K) + THPIXS CONVEC2C.558
QPI(I) = Q(I,K) + QPIXS CONVEC2C.559
THP(I,K) = TH(I,K) + THPIXS CONVEC2C.560
QP(I,K) = Q(I,K) + QPIXS CONVEC2C.561
XPK(I) = 0.0 CONVEC2C.562
FLX(I,K) = 0.0 CONVEC2C.563
BGMK(I) = .FALSE. CONVEC2C.564
DEPTH(I) = 0.0 CONVEC2C.565
END IF CONVEC2C.566
CL CONVEC2C.567
CL---------------------------------------------------------------------- CONVEC2C.568
CL FORM A BIT VECTOR OF POINTS FOR WHICH CONVECTION MAY BE POSSIBLE CONVEC2C.569
CL FROM LAYER K TO K-1 EITHER BECAUSE STABILITY IS LOW ENOUGH CONVEC2C.570
CL OR BECAUSE CONVECTION OCCURRING FROM LAYER K+1 TO K CONVEC2C.571
CL THIS BIT VECTOR IS USED IN THE FIRST COMPREE OF THE DATA CONVEC2C.572
CL TO CALCULATE PARCEL BUOYANCY IN LAYER K-1 CONVEC2C.573
CL CONVEC2C.574
CL UM DOCUMENTATION PAPER P27 CONVEC2C.575
CL SECTION(3), EQUATION(16) CONVEC2C.576
CL---------------------------------------------------------------------- CONVEC2C.577
CL CONVEC2C.578
BCONV(I) = BINIT(I) .OR. CONVEC2C.579
* ((TH(I,K) - TH(I,K+1) + DELTHST CONVEC2C.580
* + MAX(0.0,(Q(I,K)-QSE(I,K+1)))*(LC/(CP*EXKP1(I)))) CONVEC2C.581
* .GT. 0.) CONVEC2C.582
*IF DEF,MPP AAD2F404.192
BCONV(I) = l_halo(I).AND.BCONV(I) AAD2F404.193
*ENDIF AAD2F404.194
70 CONTINUE CONVEC2C.583
CL CONVEC2C.584
CL---------------------------------------------------------------------- CONVEC2C.585
CL COMPRESS DOWN POINTS ON THE BASIS OF BIT VECTOR BCONV CONVEC2C.586
CL---------------------------------------------------------------------- CONVEC2C.587
CL CONVEC2C.588
NCONV = 0 CONVEC2C.589
DO 75 I=1,NPNTS CONVEC2C.590
IF(BCONV(I))THEN CONVEC2C.591
NCONV = NCONV + 1 CONVEC2C.592
INDEX1(NCONV) = I CONVEC2C.593
END IF CONVEC2C.594
75 CONTINUE CONVEC2C.595
C CONVEC2C.596
C---------------------------------------------------------------------- CONVEC2C.597
C WORK SPACE USAGE FOR FIRST COMPRESS ON BASIS OF SIMPLE CONVEC2C.598
C STABILITY TEST (SECTION (3), EQN(16)) CONVEC2C.599
C CONVEC2C.600
C REFERENCES TO WORK AND BWORK REFER TO STARTING ADDRESS CONVEC2C.601
C CONVEC2C.602
C LENGTH OF COMPRESSES DATA = NCONV CONVEC2C.603
C CONVEC2C.604
C WORK(1,1) = TH(#,K) CONVEC2C.605
C WORK(1,2) = TH(#,K+1) CONVEC2C.606
C WORK(1,3) = Q(#,K) CONVEC2C.607
C WORK(1,4) = Q(#,K+1) CONVEC2C.608
C WORK(1,5) = QSE(#,K+1) CONVEC2C.609
C WORK(1,6) = DQSTHKP1(#) CONVEC2C.610
C WORK(1,7) = THP(#,K) CONVEC2C.611
C WORK(1,8) = QP(#,K) CONVEC2C.612
C WORK(1,9) = PKP1(#) CONVEC2C.613
C WORK(1,10) = EXKP1(#) CONVEC2C.614
C WORK(1,11) = EKP14(#) CONVEC2C.615
C WORK(1,12) = EKP34(#) CONVEC2C.616
C WORK(1,13) = PARCEL POT. TEMPERATURE IN LAYER K+1 CONVEC2C.617
C WORK(1,14) = PARCEL MIXING RATIO IN LAYER K+1 CONVEC2C.618
C WORK(1,15) = EXCESS WATER VAPOUR IN PARCEL ABOVE CONVEC2C.619
C SATURATION AFTER DRY ASCENT CONVEC2C.620
C WORK(1,16) = PARCEL BUOYANCY IN LAYER K+1 CONVEC2C.621
C WORK(1,17) = DELPKP12(#) CONVEC2C.622
C WORK(1,18) = PSTAR(#) CONVEC2C.623
C WORK(1,19) = FLX(#,K) CONVEC2C.624
C WORK(1,20) = EMINDS(#) CONVEC2C.625
C WORK(1,21) = FLXMAXK(#) CONVEC2C.626
C WORK(1,22) = FLXMAX2(#) CONVEC2C.627
C CONVEC2C.628
C BWORK(1,1) = BWATER(INDEX1(I),K+1) CONVEC2C.629
C BWORK(1,2) = .TRUE. IF PARCEL SATURATED IN LAYER K+1 CONVEC2C.630
C BWORK(1,3) = .TRUE. IF CONVECTION INITIATE FROM LAYER K+1 CONVEC2C.631
C BWORK(1,4) = BINIT(INDEX1(I)) CONVEC2C.632
C---------------------------------------------------------------------- CONVEC2C.633
C CONVEC2C.634
IF (NCONV .NE. 0) THEN CONVEC2C.635
DO 80 I=1,NCONV CONVEC2C.636
WORK(I,1) = TH(INDEX1(I),K) CONVEC2C.637
WORK(I,2) = TH(INDEX1(I),K+1) CONVEC2C.638
WORK(I,3) = Q(INDEX1(I),K) CONVEC2C.639
WORK(I,4) = Q(INDEX1(I),K+1) CONVEC2C.640
WORK(I,5) = QSE(INDEX1(I),K+1) CONVEC2C.641
WORK(I,6) = DQSTHKP1(INDEX1(I)) CONVEC2C.642
WORK(I,7) = THP(INDEX1(I),K) CONVEC2C.643
WORK(I,8) = QP(INDEX1(I),K) CONVEC2C.644
WORK(I,9) = PKP1(INDEX1(I)) CONVEC2C.645
WORK(I,10) = EXKP1(INDEX1(I)) CONVEC2C.646
WORK(I,11) = EKP14(INDEX1(I)) CONVEC2C.647
WORK(I,12) = EKP34(INDEX1(I)) CONVEC2C.648
WORK(I,17) = DELPKP12(INDEX1(I)) CONVEC2C.649
WORK(I,18) = PSTAR(INDEX1(I)) CONVEC2C.650
WORK(I,19) = FLX(INDEX1(I),K) CONVEC2C.651
WORK(I,20) = EMINDS(INDEX1(I)) CONVEC2C.652
WORK(I,21) = FLXMAXK(INDEX1(I)) CONVEC2C.653
WORK(I,22) = FLXMAX2(INDEX1(I)) CONVEC2C.654
BWORK(I,1) = BWATER(INDEX1(I),K+1) CONVEC2C.655
BWORK(I,4) = BINIT(INDEX1(I)) CONVEC2C.656
C CONVEC2C.657
C CONVEC2C.658
80 CONTINUE CONVEC2C.659
CL CONVEC2C.660
CL--------------------------------------------------------------------- CONVEC2C.661
CL LIFT PARCEL FROM LAYER K TO K-1 CONVEC2C.662
CL CONVEC2C.663
CL UM DOCUMENTATION PAPER P27 CONVEC2C.664
CL SECTION (3) AND (4) CONVEC2C.665
CL--------------------------------------------------------------------- CONVEC2C.666
CL CONVEC2C.667
CALL LIFT_PAR
(NCONV,WORK(1,13),WORK(1,14),WORK(1,15), CONVEC2C.668
* BWORK(1,2),BWORK(1,1),WORK(1,7),WORK(1,8), CONVEC2C.669
* WORK(1,2),WORK(1,4),WORK(1,1),WORK(1,3), CONVEC2C.670
* WORK(1,5),WORK(1,6),WORK(1,9), CONVEC2C.671
* WORK(1,10),WORK(1,11),WORK(1,12)) CONVEC2C.672
C CONVEC2C.673
DO 110 I=1,NCONV CONVEC2C.674
CL CONVEC2C.675
CL--------------------------------------------------------------------- CONVEC2C.676
CL CALCULATE BUOYANCY OF PARCEL IN LAYER K-1 CONVEC2C.677
CL--------------------------------------------------------------------- CONVEC2C.678
CL CONVEC2C.679
WORK(I,16) = WORK(I,13)*(1.0 + CONVEC2C.680
* C_VIRTUAL * WORK(I,14)) CONVEC2C.681
* - WORK(I,2)*(1.0 + CONVEC2C.682
* C_VIRTUAL * WORK(I,4)) CONVEC2C.683
C CONVEC2C.684
C---------------------------------------------------------------------- CONVEC2C.685
C INITIATE CONVECTION WHERE BUOYANCY IS LARGE ENOUGH CONVEC2C.686
C---------------------------------------------------------------------- CONVEC2C.687
C CONVEC2C.688
BWORK(I,3) = .NOT.BWORK(I,4) .AND. WORK(I,16) .GT. CONVEC2C.689
* (WORK(I,20)+ XSBMIN) CONVEC2C.690
C CONVEC2C.691
C---------------------------------------------------------------------- CONVEC2C.692
C CALCULATE INITIAL MASSFLUX FROM LAYER K CONVEC2C.693
C---------------------------------------------------------------------- CONVEC2C.694
C CONVEC2C.695
IF (BWORK(I,3)) CONVEC2C.696
1 WORK(I,19) = 1.0E-3 * WORK(I,18) * (D + C * WORK(I,18) * CONVEC2C.697
2 ((WORK(I,16) - XSBMIN) / WORK(I,17))) CONVEC2C.698
110 CONTINUE CONVEC2C.699
C CONVEC2C.700
C---------------------------------------------------------------------- CONVEC2C.701
C LIMIT MASSFLUX IN LOWEST CONVECTING LAYER TO BE <= MASS OF LAYER CONVEC2C.702
C OR CONVEC2C.703
C IF K=1 ADJUST ENTRAINMENT RATE IN BOTTOM HALF OF LAYER 2 SO CONVEC2C.704
C NOT TO AFFECT THE MASS FLUX AT MID-POINT OF LAYER 2 CONVEC2C.705
C---------------------------------------------------------------------- CONVEC2C.706
C CONVEC2C.707
IF ( K .EQ. 1 ) THEN CONVEC2C.708
C CONVEC2C.709
DO I=1,NCONV CONVEC2C.710
C CONVEC2C.711
C-------------------------------------------------------------------- CONVEC2C.712
C CARRY OUT CALCULATION IF CONVECTION WAS INITIATED FROM LAYER 1 CONVEC2C.713
C-------------------------------------------------------------------- CONVEC2C.714
C CONVEC2C.715
IF ( BWORK(I,3) ) THEN CONVEC2C.716
C CONVEC2C.717
C-------------------------------------------------------------------- CONVEC2C.718
C CALCULATE MASS FLUX AT MID-POINT OF LAYER 2 USING STANDARD CONVEC2C.719
C ENTRAINMENT RATES CONVEC2C.720
C-------------------------------------------------------------------- CONVEC2C.721
C CONVEC2C.722
FLX2 = WORK(I,19) * (1.0 + WORK(I,11)) * (1.0 + WORK(I,12)) CONVEC2C.723
C CONVEC2C.724
C-------------------------------------------------------------------- CONVEC2C.725
C IF MASS FLUX IN LAYER 2 EXCEEDS MASS OF LAYER THEN LIMIT MASS FLUX CONVEC2C.726
C OVER A TIMESTEP TO MASS OF LAYER CONVEC2C.727
C-------------------------------------------------------------------- CONVEC2C.728
C CONVEC2C.729
IF (WORK(I,19) .GT. WORK(I,21)) THEN CONVEC2C.730
C CONVEC2C.731
WORK(I,19) = WORK(I,21) CONVEC2C.732
C CONVEC2C.733
C-------------------------------------------------------------------- CONVEC2C.734
C IF MASS FLUX AT MID-POINT OF LAYER 2 EXCEEDS THE MASS OF THE COLUMN CONVEC2C.735
C DOWN TO THE SURFACE OVER THE TIMESTEP THEN LIMIT MASS FLUX CONVEC2C.736
C-------------------------------------------------------------------- CONVEC2C.737
C CONVEC2C.738
IF ( FLX2 .GT. WORK(I,22)) FLX2 = WORK(I,22) CONVEC2C.739
C CONVEC2C.740
C-------------------------------------------------------------------- CONVEC2C.741
C ADJUST ENTRAINMENT RATE IN BOTTOM HALF OF LAYER 2 CONVEC2C.742
C-------------------------------------------------------------------- CONVEC2C.743
C CONVEC2C.744
WORK(I,12) = (FLX2/(WORK(I,19) * (1.0 + WORK(I,11)))) - 1.0 CONVEC2C.745
END IF CONVEC2C.746
C CONVEC2C.747
END IF CONVEC2C.748
END DO CONVEC2C.749
C CONVEC2C.750
C--------------------------------------------------------------------- CONVEC2C.751
C RECALCULATE ASCENT FROM LAYER 1 TO 2 USING ADJUSTED ENTRAINMENT RATE CONVEC2C.752
C--------------------------------------------------------------------- CONVEC2C.753
C CONVEC2C.754
CALL LIFT_PAR
(NCONV,WORK(1,13),WORK(1,14),WORK(1,15), CONVEC2C.755
* BWORK(1,2),BWORK(1,1),WORK(1,7),WORK(1,8), CONVEC2C.756
* WORK(1,2),WORK(1,4),WORK(1,1),WORK(1,3), CONVEC2C.757
* WORK(1,5),WORK(1,6),WORK(1,9), CONVEC2C.758
* WORK(1,10),WORK(1,11),WORK(1,12)) CONVEC2C.759
C CONVEC2C.760
DO I=1,NCONV CONVEC2C.761
C CONVEC2C.762
IF ( BWORK(I,3) ) THEN CONVEC2C.763
CL CONVEC2C.764
CL--------------------------------------------------------------------- CONVEC2C.765
CL RECALCULATE BUOYANCY OF PARCEL IN LAYER K-1 CONVEC2C.766
CL--------------------------------------------------------------------- CONVEC2C.767
CL CONVEC2C.768
WORK(I,16) = WORK(I,13)*(1.0 + CONVEC2C.769
* C_VIRTUAL * WORK(I,14)) CONVEC2C.770
* - WORK(I,2)*(1.0 + CONVEC2C.771
* C_VIRTUAL * WORK(I,4)) CONVEC2C.772
C CONVEC2C.773
C---------------------------------------------------------------------- CONVEC2C.774
C RESET MASK TO INITIATE CONVECTION WHERE BUOYANCY IS LARGE ENOUGH CONVEC2C.775
C---------------------------------------------------------------------- CONVEC2C.776
C CONVEC2C.777
BWORK(I,3) = .NOT.BWORK(I,4) .AND. WORK(I,16) .GT. CONVEC2C.778
* (WORK(I,20)+ XSBMIN) CONVEC2C.779
C CONVEC2C.780
BWORK(I,4) = BWORK(I,4) .OR. BWORK(I,3) CONVEC2C.781
C CONVEC2C.782
END IF CONVEC2C.783
C CONVEC2C.784
FLX(INDEX1(I),K) = WORK(I,19) CONVEC2C.785
C CONVEC2C.786
END DO CONVEC2C.787
C CONVEC2C.788
C---------------------------------------------------------------------- CONVEC2C.789
C END OF CALCULATION FOR LAYER 1 CONVEC2C.790
C---------------------------------------------------------------------- CONVEC2C.791
C CONVEC2C.792
ELSE CONVEC2C.793
C CONVEC2C.794
DO I=1,NCONV CONVEC2C.795
C CONVEC2C.796
C---------------------------------------------------------------------- CONVEC2C.797
C IF MASS FLUX OUT OF THE INITIAL LAYER IS GREATER THAN THE MASS OF CONVEC2C.798
C THE LAYER OVER THE TIMESTEP THEN LIMIT MASS FLUX TO MASSS OF LAYER CONVEC2C.799
C---------------------------------------------------------------------- CONVEC2C.800
C CONVEC2C.801
IF (BWORK(I,3) .AND. WORK(I,19).GT.WORK(I,21)) CONVEC2C.802
1 WORK(I,19) = WORK(I,21) CONVEC2C.803
C CONVEC2C.804
BWORK(I,4) = BWORK(I,4) .OR. BWORK(I,3) CONVEC2C.805
C CONVEC2C.806
FLX(INDEX1(I),K) = WORK(I,19) CONVEC2C.807
C CONVEC2C.808
END DO CONVEC2C.809
C CONVEC2C.810
END IF CONVEC2C.811
C CONVEC2C.812
CL CONVEC2C.813
CL-------------------------------------------------------------------- CONVEC2C.814
CL ZERO MIXING DETRAINMENT RATE WHEN CONVECTION STARTS FROM LAYER K CONVEC2C.815
CL-------------------------------------------------------------------- CONVEC2C.816
CL CONVEC2C.817
DO I=1,NCONV CONVEC2C.818
IF ( BWORK(I,3) ) AMDETK(INDEX1(I))=0.0 CONVEC2C.819
END DO CONVEC2C.820
CL CONVEC2C.821
CL-------------------------------------------------------------------- CONVEC2C.822
CL COMPRESS DOWN THOSE POINTS WHICH ARE NOT BUOYANT IN LAYER K-1 CONVEC2C.823
CL-------------------------------------------------------------------- CONVEC2C.824
CL CONVEC2C.825
NINIT = 0 CONVEC2C.826
DO 115 I=1,NCONV CONVEC2C.827
IF(BWORK(I,4))THEN CONVEC2C.828
NINIT = NINIT + 1 CONVEC2C.829
INDEX2(NINIT) = I CONVEC2C.830
END IF CONVEC2C.831
115 CONTINUE CONVEC2C.832
C CONVEC2C.833
C CONVEC2C.834
C---------------------------------------------------------------------- CONVEC2C.835
C WORK SPACE USAGE FOR SECOND COMPRESS ON BASIS OF WHETHER CONVEC2C.836
C PARCEL A PARCEL STARTING FROM LAYER K IS BUOYANT IN LAYER CONVEC2C.837
C K+1 OR IF CONVECTION ALREADY EXISTS IN LAYER K CONVEC2C.838
C CONVEC2C.839
C REFERENCES TO WORK, WORK2, BWORK AND BWORK2 CONVEC2C.840
C REFER TO STARTING ADDRESS CONVEC2C.841
C CONVEC2C.842
C LENGTH OF COMPRESSES DATA = NINIT CONVEC2C.843
C CONVEC2C.844
C WORK2 AND BWORK2 ARE COMPRESSED DOWN FROM COMPRESSED CONVEC2C.845
C ARRAYS STORED IN WORK AND BWORK AFTER FIST COMPRESS CONVEC2C.846
C CONVEC2C.847
C WORK2(1,1) = TH(#,K) CONVEC2C.848
C WORK2(1,2) = TH(#,K+1) CONVEC2C.849
C WORK2(1,3) = Q(#,K) CONVEC2C.850
C WORK2(1,4) = Q(#,K+1) CONVEC2C.851
C WORK2(1,5) = QSE(#,K+1) CONVEC2C.852
C WORK2(1,6) = DQSTHKP1(#) CONVEC2C.853
C WORK2(1,7) = THP(#,K) CONVEC2C.854
C WORK2(1,8) = QP(#,K) CONVEC2C.855
C WORK2(1,9) = PKP1(#) CONVEC2C.856
C WORK2(1,10) = EXKP1(#) CONVEC2C.857
C WORK2(1,11) = EKP14(#) CONVEC2C.858
C WORK2(1,12) = EKP34(#) CONVEC2C.859
C WORK2(1,13) = PARCEL POT. TEMPERATURE IN LAYER K+1 CONVEC2C.860
C WORK2(1,14) = PARCEL MIXING RATIO IN LAYER K+1 CONVEC2C.861
C WORK2(1,15) = EXCESS WATER VAPOUR IN PARCEL ABOVE CONVEC2C.862
C SATURATION AFTER DRY ASCENT CONVEC2C.863
C WORK2(1,16) = PARCEL BUOYANCY IN LAYER K+1 CONVEC2C.864
C WORK2(1,17) = NOT USED IN THIS SECTION CONVEC2C.865
C WORK2(1,18) = PSTAR(#) CONVEC2C.866
C WORK2(1,19) = FLX(#,K) CONVEC2C.867
C CONVEC2C.868
C BWORK2(1,1) = BWATER(INDEX1(I),K+1) CONVEC2C.869
C BWORK2(1,2) = .TRUE. IF PARCEL SATURATED IN LAYER K+1 CONVEC2C.870
C BWORK2(1,3) = .TRUE. IF CONVECTION INITIATE FROM LAYER K+1 CONVEC2C.871
C CONVEC2C.872
C WORK AND BWORK NOW CONTAIN DATA COMPRESSED DOWN CONVEC2C.873
C FROM FULL LENGTH VECTORS CONVEC2C.874
C CONVEC2C.875
C WORK(1,1) = not used in this section CONVEC2C.876
C WORK(1,2) = QSE(#,K) CONVEC2C.877
C WORK(1,3) = DQSTHK(#) CONVEC2C.878
C WORK(1,4) = THPI(#) CONVEC2C.879
C WORK(1,5) = QPI(#) CONVEC2C.880
C WORK(1,6) = XPK(#) CONVEC2C.881
C WORK(1,7) = not used in this section CONVEC2C.882
C WORK(1,8) = DEPTH(#) CONVEC2C.883
C WORK(1,9) = PRECIP(#,K+1) CONVEC2C.884
C WORK(1,10) = DTHBYDT(#,K) CONVEC2C.885
C WORK(1,11) = DQBYDT(#,K) CONVEC2C.886
C WORK(1,12) = DTHBYDT(#,K+1) CONVEC2C.887
C WORK(1,13) = DQBYDT(#,K+1) CONVEC2C.888
C WORK(1,14) = AMDETK(#) CONVEC2C.889
C WORK(1,15) = NOY USED IN THIS SECTION CONVEC2C.890
C WORK(1,16) = PK(#) CONVEC2C.891
C WORK(1,17) = EXK(#) CONVEC2C.892
C WORK(1,18) = DELEXKP1(#) CONVEC2C.893
C WORK(1,19) = DELPK(#) CONVEC2C.894
C WORK(1,20) = DELPKP1(#) CONVEC2C.895
C WORK(1,21) = CCW(#,K+1) CONVEC2C.896
C CONVEC2C.897
C BWORK(1,1) = BGMK(#) CONVEC2C.898
C BWORK(1,2) = BLAND(#) CONVEC2C.899
C BWORK(1,3) = BTERM(#) CONVEC2C.900
C BWORK(1,2) = BLAND(#) CONVEC2C.901
C---------------------------------------------------------------------- CONVEC2C.902
C CONVEC2C.903
IF (NINIT .NE. 0) THEN CONVEC2C.904
C CONVEC2C.905
C----------------------------------------------------------------------- CONVEC2C.906
C FIRST COMPRESS DOWN QUANTITIES FROM PREVIOUSLY COMPRESSED ARRAY CONVEC2C.907
C----------------------------------------------------------------------- CONVEC2C.908
C CONVEC2C.909
DO 120 I=1,NINIT CONVEC2C.910
WORK2(I,1) = WORK(INDEX2(I),1) CONVEC2C.911
WORK2(I,2) = WORK(INDEX2(I),2) CONVEC2C.912
WORK2(I,3) = WORK(INDEX2(I),3) CONVEC2C.913
WORK2(I,4) = WORK(INDEX2(I),4) CONVEC2C.914
WORK2(I,5) = WORK(INDEX2(I),5) CONVEC2C.915
WORK2(I,6) = WORK(INDEX2(I),6) CONVEC2C.916
WORK2(I,7) = WORK(INDEX2(I),7) CONVEC2C.917
WORK2(I,8) = WORK(INDEX2(I),8) CONVEC2C.918
WORK2(I,9) = WORK(INDEX2(I),9) CONVEC2C.919
WORK2(I,10) = WORK(INDEX2(I),10) CONVEC2C.920
WORK2(I,11) = WORK(INDEX2(I),11) CONVEC2C.921
WORK2(I,12) = WORK(INDEX2(I),12) CONVEC2C.922
WORK2(I,13) = WORK(INDEX2(I),13) CONVEC2C.923
WORK2(I,14) = WORK(INDEX2(I),14) CONVEC2C.924
WORK2(I,15) = WORK(INDEX2(I),15) CONVEC2C.925
WORK2(I,16) = WORK(INDEX2(I),16) CONVEC2C.926
WORK2(I,17) = WORK(INDEX2(I),17) CONVEC2C.927
WORK2(I,18) = WORK(INDEX2(I),18) CONVEC2C.928
WORK2(I,19) = WORK(INDEX2(I),19) CONVEC2C.929
BWORK2(I,1) = BWORK(INDEX2(I),1) CONVEC2C.930
BWORK2(I,2) = BWORK(INDEX2(I),2) CONVEC2C.931
BWORK2(I,3) = BWORK(INDEX2(I),3) CONVEC2C.932
120 CONTINUE CONVEC2C.933
C CONVEC2C.934
C---------------------------------------------------------------------- CONVEC2C.935
C COMPRESS DOWN REST OF DATA FROM FULL ARRAYS CONVEC2C.936
C CONVEC2C.937
C FIRST EXPAND BACK BWORK(1,2) (=BINIT) BACK TO FULL VECTORS CONVEC2C.938
C---------------------------------------------------------------------- CONVEC2C.939
C CONVEC2C.940
CDIR$ IVDEP CONVEC2C.941
! Fujitsu vectorization directive GRB0F405.207
!OCL NOVREC GRB0F405.208
DO 130 I=1,NCONV CONVEC2C.942
BINIT(INDEX1(I)) = BWORK(I,4) CONVEC2C.943
130 CONTINUE CONVEC2C.944
C CONVEC2C.945
NINIT = 0 CONVEC2C.946
DO 135 I=1,NPNTS CONVEC2C.947
IF(BINIT(I))THEN CONVEC2C.948
NINIT = NINIT + 1 CONVEC2C.949
INDEX3(NINIT) = I CONVEC2C.950
END IF CONVEC2C.951
135 CONTINUE CONVEC2C.952
C CONVEC2C.953
DO 140 I=1,NINIT CONVEC2C.954
WORK(I,2) = QSE(INDEX3(I),K) CONVEC2C.955
WORK(I,3) = DQSTHK(INDEX3(I)) CONVEC2C.956
WORK(I,4) = THPI(INDEX3(I)) CONVEC2C.957
WORK(I,5) = QPI(INDEX3(I)) CONVEC2C.958
WORK(I,6) = XPK(INDEX3(I)) CONVEC2C.959
WORK(I,8) = DEPTH(INDEX3(I)) CONVEC2C.960
CCAC(I) = CCA(INDEX3(I)) CONVEC2C.961
ICCBC(I) = ICCB(INDEX3(I)) CONVEC2C.962
ICCTC(I) = ICCT(INDEX3(I)) CONVEC2C.963
TCWC(I) = TCW(INDEX3(I)) CONVEC2C.964
CCLWPC(I) = CCLWP(INDEX3(I)) CONVEC2C.965
LCCAC(I) = LCCA(INDEX3(I)) ! beware - LCCAC & LCBASEC CONVEC2C.966
LCBASEC(I) = LCBASE(INDEX3(I)) ! are IN/OUT to lower levels CONVEC2C.967
LCTOPC(I) = LCTOP(INDEX3(I)) CONVEC2C.968
LCCLWPC(I) = LCCLWP(INDEX3(I)) CONVEC2C.969
BWORK(I,1) = BGMK(INDEX3(I)) CONVEC2C.970
BWORK(I,2) = BLAND(INDEX3(I)) CONVEC2C.971
WORK(I,10) = DTHBYDT(INDEX3(I),K) CONVEC2C.972
WORK(I,11) = DQBYDT(INDEX3(I),K) CONVEC2C.973
WORK(I,12) = DTHBYDT(INDEX3(I),K+1) CONVEC2C.974
WORK(I,13) = DQBYDT(INDEX3(I),K+1) CONVEC2C.975
WORK(I,14) = AMDETK(INDEX3(I)) CONVEC2C.976
WORK(I,16) = PK(INDEX3(I)) CONVEC2C.977
WORK(I,17) = EXK(INDEX3(I)) CONVEC2C.978
WORK(I,18) = DELEXKP1(INDEX3(I)) CONVEC2C.979
WORK(I,19) = DELPK(INDEX3(I)) CONVEC2C.980
WORK(I,20) = DELPKP1(INDEX3(I)) CONVEC2C.981
CAPE_C(I) = CAPE(INDEX3(I)) CONVEC2C.982
C CONVEC2C.983
BWORK(I,4) = .TRUE. CONVEC2C.984
140 CONTINUE CONVEC2C.985
CL CONVEC2C.986
CL---------------------------------------------------------------------- CONVEC2C.987
CL CALCULATE REST OF PARCEL ASCENT AND EFFECT OF CONVECTION CONVEC2C.988
CL UPON THE LARGE-SCALE ATMOSPHERE CONVEC2C.989
CL CONVEC2C.990
CL SUBROUTINE CONVEC2 CONVEC2C.991
CL CONVEC2C.992
CL UM DOCUMENTATION PAPER P27 CONVEC2C.993
CL SECTIONS (5),(6),(7),(8),(9),(10) CONVEC2C.994
CL---------------------------------------------------------------------- CONVEC2C.995
CL CONVEC2C.996
CALL CONVEC2
(NINIT,NLEV,K,WORK2(1,1),WORK2(1,2),WORK2(1,3), CONVEC2C.997
* WORK2(1,4),WORK2(1,5),WORK2(1,6),WORK2(1,18), CONVEC2C.998
* WORK2(1,7),WORK2(1,8),WORK2(1,13),WORK2(1,14), CONVEC2C.999
* WORK2(1,15),WORK2(1,16),WORK(1,2),WORK(1,3), CONVEC2C.1000
* WORK(1,4),WORK(1,5),WORK(1,6),WORK2(1,19), CONVEC2C.1001
* BWORK2(1,1),BWORK2(1,2),BWORK(1,1),BWORK2(1,3), CONVEC2C.1002
* BWORK(1,2),BWORK(1,3),WORK(1,8),WORK(1,9), CONVEC2C.1003
* WORK(1,10),WORK(1,11),WORK(1,12),WORK(1,13), CONVEC2C.1004
* BWORK(1,4),CCAC,ICCBC,ICCTC,TCWC, CONVEC2C.1005
* WORK2(1,11),WORK2(1,12),WORK(1,14), CONVEC2C.1006
* WORK(1,16),WORK2(1,9),WORK(1,17),WORK2(1,10), CONVEC2C.1007
* WORK(1,18),WORK(1,19),WORK(1,20), CONVEC2C.1008
* CCLWPC,WORK(1,21),LCCAC,LCBASEC,LCTOPC,LCCLWPC, CONVEC2C.1009
* CAPE_C) CONVEC2C.1010
CL CONVEC2C.1011
CL--------------------------------------------------------------------- CONVEC2C.1012
CL EXPAND REQUIRED VECTORS BACK TO FULL FIELDS CONVEC2C.1013
CL---------------------------------------------------------------------- CONVEC2C.1014
CL CONVEC2C.1015
DO 145 I=1,NPNTS CONVEC2C.1016
THP(I,K+1) = 0.0 CONVEC2C.1017
QP(I,K+1) = 0.0 CONVEC2C.1018
XPK(I) = 0.0 CONVEC2C.1019
FLX(I,K+1)= 0.0 CONVEC2C.1020
DEPTH(I) = 0.0 CONVEC2C.1021
PRECIP(I,K+1) = 0.0 CONVEC2C.1022
BGMK(I) = .FALSE. CONVEC2C.1023
BTERM(I) = .FALSE. CONVEC2C.1024
BINIT(I) = .FALSE. CONVEC2C.1025
145 CONTINUE CONVEC2C.1026
C CONVEC2C.1027
CDIR$ IVDEP CONVEC2C.1028
! Fujitsu vectorization directive GRB0F405.209
!OCL NOVREC GRB0F405.210
DO 150 I=1,NINIT CONVEC2C.1029
THP(INDEX3(I),K+1) = WORK2(I,7) CONVEC2C.1030
QP(INDEX3(I),K+1) = WORK2(I,8) CONVEC2C.1031
XPK(INDEX3(I)) = WORK(I,6) CONVEC2C.1032
FLX(INDEX3(I),K+1) = WORK2(I,19) CONVEC2C.1033
DEPTH(INDEX3(I)) = WORK(I,8) CONVEC2C.1034
PRECIP(INDEX3(I),K+1) = WORK(I,9) CONVEC2C.1035
DTHBYDT(INDEX3(I),K) = WORK(I,10) CONVEC2C.1036
DQBYDT(INDEX3(I),K) = WORK(I,11) CONVEC2C.1037
DTHBYDT(INDEX3(I),K+1) = WORK(I,12) CONVEC2C.1038
DQBYDT(INDEX3(I),K+1) = WORK(I,13) CONVEC2C.1039
CCA(INDEX3(I)) = CCAC(I) CONVEC2C.1040
ICCB(INDEX3(I)) = ICCBC(I) CONVEC2C.1041
ICCT(INDEX3(I)) = ICCTC(I) CONVEC2C.1042
TCW(INDEX3(I)) = TCWC(I) CONVEC2C.1043
CCLWP(INDEX3(I)) = CCLWPC(I) CONVEC2C.1044
LCCA(INDEX3(I)) = LCCAC(I) CONVEC2C.1045
LCBASE(INDEX3(I)) = LCBASEC(I) CONVEC2C.1046
LCTOP(INDEX3(I)) = LCTOPC(I) CONVEC2C.1047
LCCLWP(INDEX3(I)) = LCCLWPC(I) CONVEC2C.1048
CCW(INDEX3(I),K+1) = WORK(I,21) CONVEC2C.1049
CAPE(INDEX3(I)) = CAPE_C(I) CONVEC2C.1050
C CONVEC2C.1051
BGMK(INDEX3(I)) = BWORK(I,1) CONVEC2C.1052
BTERM(INDEX3(I)) = BWORK(I,3) CONVEC2C.1053
BINIT(INDEX3(I)) = BWORK(I,4) CONVEC2C.1054
150 CONTINUE CONVEC2C.1055
C CONVEC2C.1056
END IF CONVEC2C.1057
C CONVEC2C.1058
END IF CONVEC2C.1059
C------------------------------------------------------------------- CONVEC2C.1060
C IF CONVECTION IS TERMINATING, READ VALUE OF CAPE INTO DIAGNOSTIC CONVEC2C.1061
C OUTPUT ARRAY AND RESET TO ZERO CONVEC2C.1062
C------------------------------------------------------------------- CONVEC2C.1063
C CONVEC2C.1064
DO I=1,NPNTS CONVEC2C.1065
IF(BTERM(I))THEN CONVEC2C.1066
CAPE_OUT(I)=CAPE(I) CONVEC2C.1067
CAPE(I)=0.0 CONVEC2C.1068
END IF CONVEC2C.1069
END DO CONVEC2C.1070
C CONVEC2C.1071
CL CONVEC2C.1072
CL--------------------------------------------------------------------- CONVEC2C.1073
CL DOWNDRAUGHT CALCULATION CONVEC2C.1074
CL CONVEC2C.1075
CL CARRIED OUT FOR THOSE CLOUD WHICH ARE TERMINATING CONVEC2C.1076
CL CONVEC2C.1077
CL SUBROUTINE DD_CALL CONVEC2C.1078
CL CONVEC2C.1079
CL UM DOCUMENTATION PAPER P27 CONVEC2C.1080
CL SECTION (11) CONVEC2C.1081
CL--------------------------------------------------------------------- CONVEC2C.1082
CL CONVEC2C.1083
C CONVEC2C.1084
NTERM = 0 CONVEC2C.1085
DO 160 I=1,NPNTS CONVEC2C.1086
IF (BTERM(I)) THEN CONVEC2C.1087
NTERM = NTERM + 1 CONVEC2C.1088
END IF CONVEC2C.1089
160 CONTINUE CONVEC2C.1090
C CONVEC2C.1091
IF (NTERM .NE. 0) THEN CONVEC2C.1092
C CONVEC2C.1093
CALL DD_CALL
(NP_FIELD,NPNTS,K,THP(1,1),QP(1,1),TH(1,1),Q(1,1), CONVEC2C.1094
* DTHBYDT(1,1),DQBYDT(1,1),FLX(1,1),PSTAR, CONVEC2C.1095
* AK,BK,AKM12,BKM12,DELAK,DELBK,EXNER(1,1), CONVEC2C.1096
* PRECIP(1,1),RAIN,SNOW,ICCB,ICCT,BWATER(1,2), CONVEC2C.1097
* BTERM,BGMK,TIMESTEP,CCA,NTERM,recip_pstar) GSS1F403.137
C CONVEC2C.1099
C--------------------------------------------------------------------- CONVEC2C.1100
C ADJUSTMENT TO CLOUD BASE, TOP AND AMOUNT CONVEC2C.1101
C CONVEC2C.1102
C IF CLOUD BASE AND TOP ARE EQUAL THEN ERRORS OCCUR IN RADIATION SCHEME CONVEC2C.1103
C CONVEC2C.1104
C ONLY OCCURS IF CONVECTION SATURATES UPON FORCED DETRAINMENT CONVEC2C.1105
C CONVEC2C.1106
C WHEN OCCURS ZERO CLOUD BASE, TOP AND AMOUNT CONVEC2C.1107
C CONVEC2C.1108
C--------------------------------------------------------------------- CONVEC2C.1109
C CONVEC2C.1110
DO I=1,NPNTS CONVEC2C.1111
IF (BTERM(I) .AND. ICCB(I) .EQ. ICCT(I)) THEN CONVEC2C.1112
ICCB(I) = 0.0 CONVEC2C.1113
ICCT(I) = 0.0 CONVEC2C.1114
CCA(I) = 0.0 CONVEC2C.1115
TCW(I) = 0.0 CONVEC2C.1116
CCLWP(I) = 0.0 CONVEC2C.1117
END IF CONVEC2C.1118
IF (BTERM(I) .AND. LCBASE(I) .EQ. LCTOP(I)) THEN CONVEC2C.1119
LCBASE(I) = 0 CONVEC2C.1120
LCTOP(I) = 0 CONVEC2C.1121
LCCA(I) = 0.0 CONVEC2C.1122
LCCLWP(I) = 0.0 CONVEC2C.1123
END IF CONVEC2C.1124
END DO CONVEC2C.1125
C CONVEC2C.1126
C--------------------------------------------------------------------- CONVEC2C.1127
C RESET BTERM TO FALSE CONVEC2C.1128
C--------------------------------------------------------------------- CONVEC2C.1129
C CONVEC2C.1130
DO 200 I=1,NPNTS CONVEC2C.1131
200 BTERM(I) = .FALSE. CONVEC2C.1132
C CONVEC2C.1133
END IF CONVEC2C.1134
CL CONVEC2C.1135
CL===================================================================== CONVEC2C.1136
CL END OF MAIN LOOP CONVEC2C.1137
CL===================================================================== CONVEC2C.1138
CL CONVEC2C.1139
60 CONTINUE CONVEC2C.1140
CL CONVEC2C.1141
CL--------------------------------------------------------------------- CONVEC2C.1142
CL BALANCE ENERGY BUDGET BY APPLYING CORRECTION TO THE TEMPERATURES CONVEC2C.1143
CL CONVEC2C.1144
CL SUBROUTINE COR_ENGY CONVEC2C.1145
CL CONVEC2C.1146
CL UM DOCUMENTATION PAPER P27 CONVEC2C.1147
CL SECTION (12) CONVEC2C.1148
CL--------------------------------------------------------------------- CONVEC2C.1149
CL CONVEC2C.1150
NCNLV = 0 CONVEC2C.1151
DO 210 I=1,NPNTS CONVEC2C.1152
IF(BCNLV(I))THEN CONVEC2C.1153
NCNLV = NCNLV + 1 CONVEC2C.1154
INDEX4(NCNLV) = I CONVEC2C.1155
END IF CONVEC2C.1156
210 CONTINUE CONVEC2C.1157
C CONVEC2C.1158
C CONVEC2C.1159
C---------------------------------------------------------------------- CONVEC2C.1160
C WORK SPACE USAGE FOR ENERGY CORRECTION CALCULATION CONVEC2C.1161
C CONVEC2C.1162
C REFERENCES TO WORK AND WORK2 CONVEC2C.1163
C REFER TO STARTING ADDRESS CONVEC2C.1164
C CONVEC2C.1165
C LENGTH OF COMPRESSES DATA = NCNLV CONVEC2C.1166
C CONVEC2C.1167
C WORK(1,1 TO NLEV) = DTHBYDT(#,1 TO NLEV) CONVEC2C.1168
C WORK(1,NLEV+1 TO 2*NLEV) = DQBYDT(#,1 TO NLEV) CONVEC2C.1169
C WORK2(1,1 TO NLEV+1) = EXNER(#,1 TO NLEV+1) CONVEC2C.1170
C WORK2(1,NLEV+2) = TH(#,1) CONVEC2C.1171
C WORK2(1,NLEV+3) = PSTAR(#) CONVEC2C.1172
C---------------------------------------------------------------------- CONVEC2C.1173
C CONVEC2C.1174
IF (NCNLV .NE. 0)THEN CONVEC2C.1175
CALL COR_ENGY
(NP_FIELD,NPNTS,NCNLV,NLEV,DTHBYDT,DQBYDT,SNOW, GSS1F403.138
* EXNER,PSTAR,DELAK,DELBK,AKM12,BKM12,INDEX4) GSS1F403.139
CL CONVEC2C.1199
CL--------------------------------------------------------------------- CONVEC2C.1200
CL UPDATE MODEL POTENTIAL TEMPERATURE AND MIXING RATIO CONVEC2C.1201
CL WITH INCREMENTS DUE TO CONVECTION CONVEC2C.1202
CL--------------------------------------------------------------------- CONVEC2C.1203
CL CONVEC2C.1204
DO 250 K=1,NLEV CONVEC2C.1205
DO 250 I=1,NPNTS CONVEC2C.1206
TH(I,K) = TH(I,K) + DTHBYDT(I,K) * TIMESTEP CONVEC2C.1207
Q(I,K) = Q(I,K) + DQBYDT(I,K) * TIMESTEP CONVEC2C.1208
250 CONTINUE CONVEC2C.1209
C CONVEC2C.1210
END IF CONVEC2C.1211
C CONVEC2C.1212
RETURN CONVEC2C.1213
END CONVEC2C.1214
C CONVEC2C.1215
*ENDIF CONVEC2C.1216