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