*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.28     

      SUBROUTINE 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