*IF DEF,A05_2A,OR,DEF,A05_2C,OR,DEF,A05_3B AJX1F405.131 C ******************************COPYRIGHT****************************** GTS2F400.5239 C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved. GTS2F400.5240 C GTS2F400.5241 C Use, duplication or disclosure of this code is subject to the GTS2F400.5242 C restrictions as set forth in the contract. GTS2F400.5243 C GTS2F400.5244 C Meteorological Office GTS2F400.5245 C London Road GTS2F400.5246 C BRACKNELL GTS2F400.5247 C Berkshire UK GTS2F400.5248 C RG12 2SZ GTS2F400.5249 C GTS2F400.5250 C If no contract has been raised with this copy of the code, the use, GTS2F400.5251 C duplication or disclosure of it is strictly prohibited. Permission GTS2F400.5252 C to do so must first be obtained in writing from the Head of Numerical GTS2F400.5253 C Modelling at the above address. GTS2F400.5254 C ******************************COPYRIGHT****************************** GTS2F400.5255 C GTS2F400.5256 CLL SUBROUTINE LAYER_CN----------------------------------------------- LAYCN1A.3 CLL LAYCN1A.4 CLL PURPOSE : CALCULATES LAYER DEPENDENT CONSTANTS FOR LAYER K LAYCN1A.5 CLL -PRESSURE LAYCN1A.6 CLL -LAYER THICKNESS LAYCN1A.7 CLL -ENTRAINMENT COEFFICIENTS LAYCN1A.8 CLL -DETRAINMENT COEFFICIENTS LAYCN1A.9 CLL LAYCN1A.10 CLL SUITABLE FOR SINGLE COLUMN MODEL USE LAYCN1A.11 CLL LAYCN1A.12 CLL C.W. , D.G. <- PROGRAMMER OF SOME OR ALL OF PREVIOUS CODE OR CHANGES LAYCN1A.13 CLL LAYCN1A.14 CLL MODEL MODIFICATION HISTORY FROM MODEL VERSION 3.0: LAYCN1A.15 CLL VERSION DATE LAYCN1A.16 CLL 4.3 Feb. 97 T3E optimisation: introduce recip_pstar to GSS1F403.192 CLL eliminate divisions by pstar. S.J.Swarbrick GSS1F403.193 !LL 4.5 20/02/98 Remove redundant code. A. Dickinson ADR1F405.49 CLL LAYCN1A.17 CLL PROGRAMMING STANDARDS : UNIFIED MODEL DOCUMENTATION PAPER NO. 4 LAYCN1A.18 CLL VERSION NO. 1 LAYCN1A.19 CLL LAYCN1A.20 CLL LOGICAL COMPONENTS COVERED:P27 LAYCN1A.21 CLL LAYCN1A.22 CLL DOCUMENTATION : UNIFIED MODEL DOCUMENTATION PAPER P27 LAYCN1A.23 CLL LAYCN1A.24 CLLEND----------------------------------------------------------------- LAYCN1A.25 C LAYCN1A.26 C*L ARGUMENTS--------------------------------------------------------- LAYCN1A.27 C LAYCN1A.28SUBROUTINE LAYER_CN(K,NP_FIELD,NPNTS,NLEV,EXNER,AK,BK,AKM12,BKM12, 4LAYCN1A.29 * DELAK,DELBK,PSTAR,PK,PKP1,DELPK,DELPKP1, LAYCN1A.30 * DELPKP12,EKP14,EKP34,AMDETK,EXK,EXKP1, LAYCN1A.31 * DELEXKP1,recip_PSTAR) GSS1F403.194 IMPLICIT NONE LAYCN1A.33 C LAYCN1A.34 C---------------------------------------------------------------------- LAYCN1A.35 C MODEL CONSTANTS LAYCN1A.36 C---------------------------------------------------------------------- LAYCN1A.37 C LAYCN1A.38 *CALL ENTCNST
LAYCN1A.39 *CALL C_R_CP
LAYCN1A.40 C LAYCN1A.41 C---------------------------------------------------------------------- LAYCN1A.42 C VECTOR LENGTHS AND LOOP COUNTER LAYCN1A.43 C---------------------------------------------------------------------- LAYCN1A.44 C LAYCN1A.45 INTEGER NP_FIELD ! IN FULL LENGTH OF DATA LAYCN1A.46 C LAYCN1A.47 INTEGER NPNTS ! IN VECTOR LENGTH LAYCN1A.48 C LAYCN1A.49 INTEGER NLEV ! IN NUMBER OF MODEL LEVELS LAYCN1A.50 C LAYCN1A.51 INTEGER K ! IN PRESENT MODEL LAYER LAYCN1A.52 C LAYCN1A.53 INTEGER I ! COUNTER FOR DO LOOPS LAYCN1A.54 C LAYCN1A.55 C LAYCN1A.56 C---------------------------------------------------------------------- LAYCN1A.57 C VARIABLES WHICH ARE INPUT LAYCN1A.58 C---------------------------------------------------------------------- LAYCN1A.59 C LAYCN1A.60 REAL AK(NLEV) ! IN ) HYBRID CO-ORDINATE VALUES AT LAYCN1A.61 REAL BK(NLEV) ! IN ) MID-LAYER OF LAYER K LAYCN1A.62 C LAYCN1A.63 REAL AKM12(NLEV+1) ! IN ) HYBRID CO-ORDINATE VALUES AT LAYCN1A.64 REAL BKM12(NLEV+1) ! IN ) LOWER LAYER BOUNDARY OF LAYER K LAYCN1A.65 C LAYCN1A.66 REAL DELAK(NLEV) ! IN ) HYBRID CO-ORDINATE VALUES FOR LAYCN1A.67 REAL DELBK(NLEV) ! IN ) FOR THICKNESS OF LAYER K LAYCN1A.68 C LAYCN1A.69 REAL PSTAR(NP_FIELD) ! IN SURFACE PRESSURE (PA) LAYCN1A.70 C LAYCN1A.71 REAL EXNER(NP_FIELD,NLEV+1) ! IN EXNER FUNCTION AT LAYER LAYCN1A.72 ! BOUNDARIES STARTING AT LEVEL K-1/2 LAYCN1A.73 C LAYCN1A.74 C LAYCN1A.75 C---------------------------------------------------------------------- LAYCN1A.76 C VARIABLES WHICH ARE OUTPUT LAYCN1A.77 C---------------------------------------------------------------------- LAYCN1A.78 C LAYCN1A.79 REAL PK(NPNTS) ! OUT PRESSURE AT LAYER K (PA) LAYCN1A.80 C LAYCN1A.81 REAL PKP1(NPNTS) ! OUT PRESSURE AT LAYER K+1 (PA) LAYCN1A.82 C LAYCN1A.83 REAL DELPK(NPNTS) ! OUT THICKNESS OF LAYER K (PA) LAYCN1A.84 C LAYCN1A.85 REAL DELPKP1(NPNTS) ! OUT THICHNESS OF LAYER K+1 (PA) LAYCN1A.86 C LAYCN1A.87 REAL DELPKP12(NPNTS) ! OUT THICKNESS BETWEEN LAYER K AND K+1 LAYCN1A.88 ! (PA) LAYCN1A.89 C LAYCN1A.90 REAL EKP14(NPNTS) ! OUT ENTRAINMENT COEFFICIENT AT LAYCN1A.91 ! LEVEL K+1/4 MULTIPLIED BY LAYCN1A.92 ! APPROPRIATE LAYER THICKNESS LAYCN1A.93 C LAYCN1A.94 REAL EKP34(NPNTS) ! OUT ENTRAINMENT COEFFICIENT AT LAYCN1A.95 ! LEVEL K+3/4 MULTIPLIED BY LAYCN1A.96 ! APPROPRIATE LAYER THICKNESS LAYCN1A.97 C LAYCN1A.98 REAL AMDETK(NPNTS) ! OUT MIXING DETRAINMENT COEFFICIENT LAYCN1A.99 ! AT LEVEL K MULTIPLIED BY LAYCN1A.100 ! APPROPRIATE LAYER THICKNESS LAYCN1A.101 C LAYCN1A.102 REAL EXK(NPNTS) ! EXNER FUNCTION AT LEVEL K LAYCN1A.103 C LAYCN1A.104 REAL EXKP1(NPNTS) ! EXNER FUNCTION AT LEVEL K+1 LAYCN1A.105 C LAYCN1A.106 REAL DELEXKP1(NPNTS) ! DIFFERENCE IN EXNER FUNCTION LAYCN1A.107 ! BETWEEN K+3/2 AND K+1/2 LAYCN1A.108 C LAYCN1A.109 C LAYCN1A.110 C---------------------------------------------------------------------- LAYCN1A.111 C VARIABLES WHICH ARE DEFINED LOCALLY LAYCN1A.112 C---------------------------------------------------------------------- LAYCN1A.113 C LAYCN1A.114 REAL AEKP14,AEKP34 ! USED IN CALCULATION OF ENTRAINMENT LAYCN1A.115 ! RATE LAYCN1A.116 C LAYCN1A.117 LAYCN1A.118 REAL LAYCN1A.119 & PU,PL LAYCN1A.120 REAL recip_PSTAR(NP_FIELD) ! Reciprocal of pstar array GSS1F403.196 *CALL P_EXNERC
LAYCN1A.121 LAYCN1A.122 C*--------------------------------------------------------------------- LAYCN1A.123 C LAYCN1A.124 C---------------------------------------------------------------------- LAYCN1A.125 C SET CONSTANT AE USED IN CALCULATION OF ENTARINMENT AND LAYCN1A.126 C DETRAINMENT RATES DEPENDING UPON LEVEL LAYCN1A.127 C---------------------------------------------------------------------- LAYCN1A.128 C LAYCN1A.129 IF(K.EQ.1)THEN LAYCN1A.130 AEKP14 = AE1 LAYCN1A.131 AEKP34 = AE2 LAYCN1A.132 ELSE LAYCN1A.133 AEKP14 = AE2 LAYCN1A.134 AEKP34 = AE2 LAYCN1A.135 END IF LAYCN1A.136 C LAYCN1A.137 DO 10 I=1,NPNTS LAYCN1A.138 CL LAYCN1A.139 CL--------------------------------------------------------------------- LAYCN1A.140 CL CALCULATE PK AND DELPK - IF K = 1 (LOWEST MODEL LAYER) THEN LAYCN1A.141 CL VALUES FOR PREVIOUS PASS THROUGH ROUTINE AT (K-1)+1 ARE TAKEN LAYCN1A.142 CL--------------------------------------------------------------------- LAYCN1A.143 CL LAYCN1A.144 IF(K.EQ.1)THEN LAYCN1A.145 PK(I) = AK(K) + BK(K)*PSTAR(I) LAYCN1A.146 DELPK(I) = -DELAK(K) - DELBK(K)*PSTAR(I) LAYCN1A.147 ELSE LAYCN1A.148 PK(I) = PKP1(I) LAYCN1A.149 DELPK(I) = DELPKP1(I) LAYCN1A.150 END IF LAYCN1A.151 CL LAYCN1A.152 CL--------------------------------------------------------------------- LAYCN1A.153 CL CALCULATE PKP1, DELPKP1 AND DELPK+1/2 LAYCN1A.154 CL--------------------------------------------------------------------- LAYCN1A.155 CL LAYCN1A.156 PKP1(I) = AK(K+1) + BK(K+1)*PSTAR(I) LAYCN1A.157 DELPKP1(I) = -DELAK(K+1) - DELBK(K+1)*PSTAR(I) LAYCN1A.158 DELPKP12(I) = PK(I) - PKP1(I) LAYCN1A.159 CL LAYCN1A.160 CL--------------------------------------------------------------------- LAYCN1A.161 CL CALCULATE EXNER FUNCTIONS AT MID-LAYES K AND K+1, AND LAYCN1A.162 CL DIFFERENCE OF EXNER FUNCTION ACROSS LAYER K LAYCN1A.163 CL--------------------------------------------------------------------- LAYCN1A.164 CL LAYCN1A.165 IF(K.EQ.1)THEN LAYCN1A.166 PU=PSTAR(I)*BKM12(K+1) + AKM12(K+1) LAYCN1A.167 PL=PSTAR(I)*BKM12(K) + AKM12(K) LAYCN1A.168 EXK(I) = P_EXNER_C(EXNER(I,K+1),EXNER(I,K),PU,PL,KAPPA) LAYCN1A.169 ELSE LAYCN1A.170 EXK(I) = EXKP1(I) LAYCN1A.171 END IF LAYCN1A.172 PU=PSTAR(I)*BKM12(K+2) + AKM12(K+2) LAYCN1A.173 PL=PSTAR(I)*BKM12(K+1) + AKM12(K+1) LAYCN1A.174 EXKP1(I) = P_EXNER_C(EXNER(I,K+2),EXNER(I,K+1),PU,PL,KAPPA) LAYCN1A.175 DELEXKP1(I) = EXNER(I,K+1)-EXNER(I,K+2) LAYCN1A.176 CL LAYCN1A.177 CL--------------------------------------------------------------------- LAYCN1A.178 CL CALCULATE ENTRAINMENT AND MIXING DETRAINMENT COEFFICIENTS LAYCN1A.179 CL--------------------------------------------------------------------- LAYCN1A.180 CL LAYCN1A.181 CL LAYCN1A.182 CL--------------------------------------------------------------------- LAYCN1A.183 CL CALCULATE ENTRAINMENT COEFFICIENTS MULTIPLIED BY LAYCN1A.184 CL APPROPRIATE LAYER THICKNESS LAYCN1A.185 CL LAYCN1A.186 CL UM DOCUMENTATION PAPER P27 LAYCN1A.187 CL SECTION (2C), EQUATION(14) LAYCN1A.188 CL--------------------------------------------------------------------- LAYCN1A.189 CL LAYCN1A.190 EKP14(I) = ENTCOEF * AEKP14 * PK(I) * GSS1F403.201 * (PK(I) - AKM12(K+1) - BKM12(K+1)*PSTAR(I)) * GSS1F403.202 * recip_PSTAR(I)*recip_PSTAR(I) GSS1F403.203 EKP34(I) = ENTCOEF * AEKP34 * (AKM12(K+1)+BKM12(K+1)*PSTAR(I)) * GSS1F403.204 * (AKM12(K+1) + BKM12(K+1)*PSTAR(I) - PKP1(I)) * GSS1F403.205 * recip_PSTAR(I)*recip_PSTAR(I) GSS1F403.206 CL LAYCN1A.197 CL--------------------------------------------------------------------- LAYCN1A.198 CL CALCULATE MIXING DETRAINMENT COEFFICIENT MULTIPLIED BY LAYCN1A.199 CL APPROPRIATE LAYER THICKNESS LAYCN1A.200 CL LAYCN1A.201 CL UM DOCUMENTATION PAPER P27 LAYCN1A.202 CL SECTION (2C), EQUATION(15) LAYCN1A.203 CL--------------------------------------------------------------------- LAYCN1A.204 CL LAYCN1A.205 IF(K.EQ.1)THEN LAYCN1A.206 AMDETK(I) = 0.0 LAYCN1A.207 ELSE LAYCN1A.208 AMDETK(I) = (EKP14(I) + EKP34(I)) * (1.0-1.0/AEKP34) LAYCN1A.209 END IF LAYCN1A.210 10 CONTINUE LAYCN1A.211 C LAYCN1A.212 RETURN LAYCN1A.213 END LAYCN1A.214 *ENDIF LAYCN1A.215