*IF DEF,A05_2A,OR,DEF,A05_3B AJX1F405.183 C ******************************COPYRIGHT****************************** GTS2F400.5257 C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved. GTS2F400.5258 C GTS2F400.5259 C Use, duplication or disclosure of this code is subject to the GTS2F400.5260 C restrictions as set forth in the contract. GTS2F400.5261 C GTS2F400.5262 C Meteorological Office GTS2F400.5263 C London Road GTS2F400.5264 C BRACKNELL GTS2F400.5265 C Berkshire UK GTS2F400.5266 C RG12 2SZ GTS2F400.5267 C GTS2F400.5268 C If no contract has been raised with this copy of the code, the use, GTS2F400.5269 C duplication or disclosure of it is strictly prohibited. Permission GTS2F400.5270 C to do so must first be obtained in writing from the Head of Numerical GTS2F400.5271 C Modelling at the above address. GTS2F400.5272 C ******************************COPYRIGHT****************************** GTS2F400.5273 C GTS2F400.5274 CLL SUBROUTINE LAYER_DD-------------------------------------------- LAYERD2A.3 CLL LAYERD2A.4 CLL PURPOSE : CALCULATES LAYER DEPENDENT CONSTANTS FOR LAYER K LAYERD2A.5 CLL -PRESSURE LAYERD2A.6 CLL -LAYER THICKNESS LAYERD2A.7 CLL -ENTRAINMENT COEFFICIENTS LAYERD2A.8 CLL -DETRAINMENT COEFFICIENTS LAYERD2A.9 CLL LAYERD2A.10 CLL SUITABLE FOR SINGLE COLUMN MODEL USE LAYERD2A.11 CLL LAYERD2A.12 CLL CODE WRITTEN FOR CRAY Y-MP BY S.BETT & D.GREGORY SUMMER 1992 LAYERD2A.13 CLL LAYERD2A.14 CLL MODEL MODIFICATION HISTORY FROM MODEL VERSION 3.0: LAYERD2A.15 CLL VERSION DATE LAYERD2A.16 CLL 3.3 23/12/93 : DG060893 : CORRECTION TO PREVENT OVER PREDICTION DG060893.143 CLL OF SNOW SHOWERS; REARRANGEMENT OF DG060893.144 CLL ENTRAINMENT RATES DG060893.145 CLL 4.3 Feb. 97 T3E optimisation: introduce recip_pstar to GSS1F403.209 CLL eliminate divisions by pstar. S.J.Swarbrick GSS1F403.210 !LL 4.5 20/02/98 Remove redundant code. A. Dickinson ADR1F405.50 CLL DG060893.146 CLL LAYERD2A.17 CLL PROGRAMMING STANDARDS : UNIFIED MODEL DOCUMENTATION PAPER NO. 3 LAYERD2A.18 CLL VERSION NO. 4 DATED 5/2/92 LAYERD2A.19 CLL LAYERD2A.20 CLL SYSTEM TASK : P27 LAYERD2A.21 CLL LAYERD2A.22 CLL DOCUMENTATION : UNIFIED MODEL DOCUMENTATION PAPER P27 LAYERD2A.23 CLL LAYERD2A.24 CLLEND----------------------------------------------------------------- LAYERD2A.25 C LAYERD2A.26 C*L ARGUMENTS--------------------------------------------------------- LAYERD2A.27 C LAYERD2A.28SUBROUTINE LAYER_DD(NPNTS,K,KCT,THE_K,THE_KM1,FLX_STRT,AK, 4LAYERD2A.29 * BK,AKM12,BKM12,DELAK,DELBK,EXNER_KM12, LAYERD2A.30 * EXNER_KP12,EXNER_KM32,PSTAR,PK,PKM1,DELPK, LAYERD2A.31 * DELPKM1,EXK,EXKM1,AMDETK,EKM14,EKM34,KMIN, LAYERD2A.32 * BDDI,recip_pstar) GSS1F403.211 C LAYERD2A.34 IMPLICIT NONE LAYERD2A.35 C LAYERD2A.36 C---------------------------------------------------------------------- LAYERD2A.37 C MODEL CONSTANTS LAYERD2A.38 C---------------------------------------------------------------------- LAYERD2A.39 C LAYERD2A.40 *CALL C_0_DG_C
LAYERD2A.41 *CALL C_R_CP
LAYERD2A.42 *CALL ENTCNST
LAYERD2A.43 *CALL ENTDD
LAYERD2A.44 *CALL DDKMDET
LAYERD2A.45 C LAYERD2A.46 C---------------------------------------------------------------------- LAYERD2A.47 C VECTOR LENGTHS AND LOOP COUNTER LAYERD2A.48 C---------------------------------------------------------------------- LAYERD2A.49 C LAYERD2A.50 INTEGER NPNTS ! IN VECTOR LENGTH LAYERD2A.51 C LAYERD2A.52 INTEGER K ! IN PRESENT MODEL LAYER LAYERD2A.53 C LAYERD2A.54 INTEGER I ! COUNTER FOR DO LOOPS LAYERD2A.55 C LAYERD2A.56 INTEGER KCT ! IN CONVECTIVE CLOUD TOP LAYER LAYERD2A.57 C LAYERD2A.58 C---------------------------------------------------------------------- LAYERD2A.59 C VARIABLES WHICH ARE INPUT LAYERD2A.60 C---------------------------------------------------------------------- LAYERD2A.61 C LAYERD2A.62 REAL AK(K) ! IN ) HYBRID CO-ORDINATE VALUES AT LAYERD2A.63 REAL BK(K) ! IN ) MID-LAYER OF LAYER K LAYERD2A.64 C LAYERD2A.65 REAL AKM12(K+1) ! IN ) HYBRID CO-ORDINATE VALUES AT LAYERD2A.66 REAL BKM12(K+1) ! IN ) LOWER LAYER BOUNDARY OF LAYER K LAYERD2A.67 C LAYERD2A.68 REAL DELAK(K) ! IN ) HYBRID CO-ORDINATE VALUES FOR LAYERD2A.69 REAL DELBK(K) ! IN ) FOR THICKNESS OF LAYER K LAYERD2A.70 C LAYERD2A.71 REAL PSTAR(NPNTS) ! IN SURFACE PRESSURE (PA) LAYERD2A.72 C LAYERD2A.73 REAL EXNER_KM12(NPNTS) ! IN EXNER FUNCTION AT LAYER K-1/2 LAYERD2A.74 C LAYERD2A.75 REAL EXNER_KP12(NPNTS) ! IN EXNER FUNCTION AT LAYER K+1/2 LAYERD2A.76 C LAYERD2A.77 REAL EXNER_KM32(NPNTS) ! IN EXNER FUNCTION AT LAYER K-3/2 LAYERD2A.78 C LAYERD2A.79 REAL FLX_STRT(NPNTS) ! IN UPDRAUGHT MASSFLUX AT LEVEL WHERE LAYERD2A.80 ! DOWNDRAUGHT STARTS (PA/S) LAYERD2A.81 C LAYERD2A.82 REAL THE_K(NPNTS) ! IN POTENTIAL TEMPERATURE OF LAYERD2A.83 ! ENVIRONMENT IN LAYER K (K) LAYERD2A.84 C LAYERD2A.85 REAL THE_KM1(NPNTS) ! IN POTENTIAL TEMPERATURE OF LAYERD2A.86 ! ENVIRONMENT IN LAYER K-1 (K) LAYERD2A.87 C LAYERD2A.88 LOGICAL BDDI(NPNTS) ! IN MASK FOR POINTS WHERE DOWNDRAUGHT LAYERD2A.89 ! MAY INITIATE LAYERD2A.90 REAL recip_PSTAR(NPNTS) ! Reciprocal of pstar array GSS1F403.213 C LAYERD2A.91 C---------------------------------------------------------------------- LAYERD2A.92 C VARIABLES WHICH ARE INPUT AND OUTPUT LAYERD2A.93 C---------------------------------------------------------------------- LAYERD2A.94 C LAYERD2A.95 INTEGER KMIN(NPNTS) ! INOUT LAYERD2A.96 ! FREEZING LEVEL LAYERD2A.97 C LAYERD2A.98 C---------------------------------------------------------------------- LAYERD2A.99 C VARIABLES WHICH ARE OUTPUT LAYERD2A.100 C---------------------------------------------------------------------- LAYERD2A.101 C LAYERD2A.102 REAL PK(NPNTS) ! OUT PRESSURE AT LAYER K (PA) LAYERD2A.103 C LAYERD2A.104 REAL PKM1(NPNTS) ! OUT PRESSURE AT LAYER K-1 (PA) LAYERD2A.105 C LAYERD2A.106 REAL DELPK(NPNTS) ! OUT THICKNESS OF LAYER K (PA) LAYERD2A.107 C LAYERD2A.108 REAL DELPKM1(NPNTS) ! OUT THICHNESS OF LAYER K-1 (PA) LAYERD2A.109 C LAYERD2A.110 REAL EKM14(NPNTS) ! OUT ENTRAINMENT COEFFICIENT AT LAYERD2A.111 ! LEVEL K-1/4 MULTIPLIED BY LAYERD2A.112 ! APPROPRIATE LAYER THICKNESS LAYERD2A.113 C LAYERD2A.114 REAL EKM34(NPNTS) ! OUT ENTRAINMENT COEFFICIENT AT LAYERD2A.115 ! LEVEL K-3/4 MULTIPLIED BY LAYERD2A.116 ! APPROPRIATE LAYER THICKNESS LAYERD2A.117 C LAYERD2A.118 REAL AMDETK(NPNTS) ! OUT MIXING DETRAINMENT COEFFICIENT LAYERD2A.119 ! AT LEVEL K MULTIPLIED BY LAYERD2A.120 ! APPROPRIATE LAYER THICKNESS LAYERD2A.121 C LAYERD2A.122 REAL EXK(NPNTS) ! OUT EXNER FUNCTION AT LEVEL K LAYERD2A.123 C LAYERD2A.124 REAL EXKM1(NPNTS) ! OUT EXNER FUNCTION AT LEVEL K-1 LAYERD2A.125 C LAYERD2A.126 C---------------------------------------------------------------------- LAYERD2A.127 C VARIABLES WHICH ARE DEFINED LOCALLY LAYERD2A.128 C---------------------------------------------------------------------- LAYERD2A.129 C LAYERD2A.130 REAL TTK ! TEMPERATURE STORE AT LAYER K LAYERD2A.131 C LAYERD2A.132 REAL TTKM1 ! TEMPERATURE STORE AT LAYER K-1 LAYERD2A.133 C LAYERD2A.134 REAL THKM12 ! POTENTIAL TEMPERATURE STORE AT LAYERD2A.135 ! LAYER K-1/2 LAYERD2A.136 C LAYERD2A.137 REAL TTKM12 ! TEMPERATURE STORE AT LAYER K-1/2 LAYERD2A.138 C LAYERD2A.139 REAL INCR_FAC ! INCREMENT FACTOR FOR ENTRAINMENT LAYERD2A.140 ! RATES AT FREEZING LEVEL LAYERD2A.141 C LAYERD2A.142 REAL LAYERD2A.143 & PU,PL LAYERD2A.144 *CALL P_EXNERC
LAYERD2A.145 LAYERD2A.146 C---------------------------------------------------------------------- LAYERD2A.147 C SET KMIN TO INITIAL VALUE LAYERD2A.148 CL CALCULATE PK, DELPK AND EXNER FUNCTION - IF K = KCT THEN LAYERD2A.149 CL VALUES FOR PREVIOUS PASS THROUGH ROUTINE AT (K-1)+1 ARE TAKEN LAYERD2A.150 C---------------------------------------------------------------------- LAYERD2A.151 C LAYERD2A.152 IF (K.EQ.KCT+1) THEN LAYERD2A.153 DO I=1,NPNTS LAYERD2A.154 KMIN(I) = KCT+2 LAYERD2A.155 PK(I) = AK(K) + BK(K)*PSTAR(I) LAYERD2A.156 DELPK(I) = - DELAK(K) - DELBK(K)*PSTAR(I) LAYERD2A.157 PU=PSTAR(I)*BKM12(K+1) + AKM12(K+1) LAYERD2A.158 PL=PSTAR(I)*BKM12(K) + AKM12(K) LAYERD2A.159 EXK(I) = P_EXNER_C(EXNER_KP12(I),EXNER_KM12(I),PU,PL,KAPPA) LAYERD2A.160 END DO LAYERD2A.161 ELSE LAYERD2A.162 DO I=1,NPNTS LAYERD2A.163 PK(I) = PKM1(I) LAYERD2A.164 DELPK(I) = DELPKM1(I) LAYERD2A.165 EXK(I) = EXKM1(I) LAYERD2A.166 END DO LAYERD2A.167 END IF LAYERD2A.168 CL LAYERD2A.169 CL--------------------------------------------------------------------- LAYERD2A.170 CL CALCULATE PKM1, DELPKM1 LAYERD2A.171 CL CALCULATE EXNER FUNCTIONS AT MID-LAYES K AND K-1, AND LAYERD2A.172 CL DIFFERENCE OF EXNER FUNCTION ACROSS LAYER K LAYERD2A.173 CL--------------------------------------------------------------------- LAYERD2A.174 CL LAYERD2A.175 DO I=1,NPNTS LAYERD2A.176 PKM1(I) = AK(K-1) + BK(K-1)*PSTAR(I) LAYERD2A.177 DELPKM1(I) = - DELAK(K-1) - DELBK(K-1)*PSTAR(I) LAYERD2A.178 PU=PSTAR(I)*BKM12(K) + AKM12(K) LAYERD2A.179 PL=PSTAR(I)*BKM12(K-1) + AKM12(K-1) LAYERD2A.180 EXKM1(I) = P_EXNER_C(EXNER_KM12(I),EXNER_KM32(I),PU,PL,KAPPA) LAYERD2A.181 C LAYERD2A.182 CL LAYERD2A.183 CL--------------------------------------------------------------------- LAYERD2A.184 CL CALCULATE FREEZING LEVEL : CHECK IF FREEZING LEVEL IN THIS LAYER LAYERD2A.185 CL--------------------------------------------------------------------- LAYERD2A.186 CL LAYERD2A.187 IF (KMIN(I).EQ.KCT+2) THEN LAYERD2A.188 TTK = THE_K(I)*EXK(I) LAYERD2A.189 TTKM1 = THE_KM1(I)*EXKM1(I) LAYERD2A.190 THKM12 = (THE_KM1(I)+THE_K(I))*0.5 LAYERD2A.191 TTKM12 = THKM12*EXNER_KM12(I) LAYERD2A.192 IF (TTKM12 .GE. TM .AND. TTK .LT. TM) THEN LAYERD2A.193 KMIN(I) = K LAYERD2A.194 ELSE IF (TTKM1 .GE. TM .AND. TTKM12 .LT. TM) THEN LAYERD2A.195 KMIN(I) = K-1 LAYERD2A.196 END IF LAYERD2A.197 END IF LAYERD2A.198 C LAYERD2A.199 CL LAYERD2A.200 CL--------------------------------------------------------------------- LAYERD2A.201 CL CALCULATE ENTRAINMENT COEFFICIENTS MULTIPLIED BY LAYERD2A.202 CL APPROPRIATE LAYER THICKNESS LAYERD2A.203 CL LAYERD2A.204 CL CALCULATE MIXING DETRAINMENT COEFFICIENT MULTIPLIED BY LAYERD2A.205 CL APPROPRIATE LAYER THICKNESS LAYERD2A.206 CL LAYERD2A.207 CL UM DOCUMENTATION PAPER P27 LAYERD2A.208 CL SECTION (2C), EQUATION(14) LAYERD2A.209 CL--------------------------------------------------------------------- LAYERD2A.210 CL LAYERD2A.211 IF (PK(I).LT.PSTAR(I)-DET_LYR) THEN LAYERD2A.215 EKM14(I) = AE2 * (AKM12(K)+BKM12(K)*PSTAR(I)-PK(I)) * GSS1F403.218 & recip_PSTAR(I) GSS1F403.219 EKM34(I) = AE2 * (PKM1(I)-AKM12(K)-BKM12(K)*PSTAR(I)) * GSS1F403.220 & recip_PSTAR(I) GSS1F403.221 AMDETK(I) = (EKM14(I)+EKM34(I)) * (1.0-1.0/AE2) DG060893.149 ELSE LAYERD2A.217 EKM14(I) = 0.0 DG060893.150 EKM34(I) = 0.0 DG060893.151 AMDETK(I) = DELPK(I) / (PSTAR(I)*(1.0-BKM12(K+1))-AKM12(K+1)) DG060893.152 END IF LAYERD2A.219 C LAYERD2A.220 IF (BDDI(I)) THEN LAYERD2A.221 C LAYERD2A.222 IF (K.EQ.KMIN(I) .AND. PK(I).LT.PSTAR(I)-DET_LYR) THEN LAYERD2A.223 INCR_FAC = FLX_STRT(I)*DDCOEF1*recip_PSTAR(I) GSS1F403.225 IF (INCR_FAC.GT.6.0) INCR_FAC=6.0 LAYERD2A.225 EKM14(I) = EKM14(I)*INCR_FAC LAYERD2A.226 EKM34(I) = EKM34(I)*INCR_FAC LAYERD2A.227 ELSE LAYERD2A.228 EKM14(I) = EKM14(I)*DDCOEF2 LAYERD2A.229 EKM34(I) = EKM34(I)*DDCOEF2 LAYERD2A.230 IF (KMIN(I).NE.KCT+2 .AND. K.LT.KMIN(I) .AND. PK(I).LT. LAYERD2A.231 * PSTAR(I)-DET_LYR) AMDETK(I) = AMDETK(I)*DDCOEF2 LAYERD2A.232 END IF LAYERD2A.233 C LAYERD2A.234 END IF LAYERD2A.235 END DO LAYERD2A.236 C LAYERD2A.237 RETURN LAYERD2A.238 END LAYERD2A.239 C LAYERD2A.240 *ENDIF LAYERD2A.241