*IF DEF,A05_2A,OR,DEF,A05_2C                                               AJX1F405.128    
C ******************************COPYRIGHT******************************    GTS2F400.2431   
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.2432   
C                                                                          GTS2F400.2433   
C Use, duplication or disclosure of this code is subject to the            GTS2F400.2434   
C restrictions as set forth in the contract.                               GTS2F400.2435   
C                                                                          GTS2F400.2436   
C                Meteorological Office                                     GTS2F400.2437   
C                London Road                                               GTS2F400.2438   
C                BRACKNELL                                                 GTS2F400.2439   
C                Berkshire UK                                              GTS2F400.2440   
C                RG12 2SZ                                                  GTS2F400.2441   
C                                                                          GTS2F400.2442   
C If no contract has been raised with this copy of the code, the use,      GTS2F400.2443   
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.2444   
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.2445   
C Modelling at the above address.                                          GTS2F400.2446   
C ******************************COPYRIGHT******************************    GTS2F400.2447   
C                                                                          GTS2F400.2448   
CLL  SUBROUTINE ENVIRON------------------------------------------------    ENVIRO1A.3      
CLL                                                                        ENVIRO1A.4      
CLL  PURPOSE : CALCULATE THE EFFECT OF CONVECTION UPON THE                 ENVIRO1A.5      
CLL            LARGE-SCALE ATMOSPHERE                                      ENVIRO1A.6      
CLL                                                                        ENVIRO1A.7      
CLL  SUITABLE FOR SINGLE COLUMN MODEL USE                                  ENVIRO1A.8      
CLL                                                                        ENVIRO1A.9      
CLL  CODE REWORKED FOR CRAY Y-MP BY D.GREGORY AUTUMN/WINTER 1989/90        ENVIRO1A.10     
CLL                                                                        ENVIRO1A.11     
CLL  MODEL            MODIFICATION HISTORY FROM MODEL VERSION 3.0:         ENVIRO1A.12     
CLL VERSION  DATE                                                          ENVIRO1A.13     
CLL                                                                        ENVIRO1A.14     
CLL  PROGRAMMING STANDARDS : UNIFIED MODEL DOCUMENTATION PAPER NO. 4       ENVIRO1A.15     
CLL  VERSION NO. 1                                                         ENVIRO1A.16     
CLL                                                                        ENVIRO1A.17     
CLL  LOGICAL COMPONENTS COVERED: P27                                       ENVIRO1A.18     
CLL                                                                        ENVIRO1A.19     
CLL  SYSTEM TASK :                                                         ENVIRO1A.20     
CLL                                                                        ENVIRO1A.21     
CLL  DOCUMENTATION : UNIFIED MODEL DOCUMENTATION PAPER P27                 ENVIRO1A.22     
CLL                                                                        ENVIRO1A.23     
CLLEND-----------------------------------------------------------------    ENVIRO1A.24     
C                                                                          ENVIRO1A.25     
C*L  ARGUMENTS---------------------------------------------------------    ENVIRO1A.26     
C                                                                          ENVIRO1A.27     

      SUBROUTINE ENVIRON (NPNTS,DTHEK,DQEK,DTHEKP1,DQEKP1,                  3ENVIRO1A.28     
     *                    THEK,QEK,DELTAK,FLXK,THPK,QPK,                   ENVIRO1A.29     
     *                    THRK,QRK,THEKP1,QEKP1,BTERM,THPKP1,              ENVIRO1A.30     
     *                    QPKP1,XPK,XPKP1,BWKP1,FLXKP1,BLOWST,             ENVIRO1A.31     
     *                    EKP14,EXK,EXKP1,DELPK,DELPKP1,AMDETK)            ENVIRO1A.32     
C                                                                          ENVIRO1A.33     
      IMPLICIT NONE                                                        ENVIRO1A.34     
C                                                                          ENVIRO1A.35     
C-----------------------------------------------------------------------   ENVIRO1A.36     
C MODEL CONSTANTS                                                          ENVIRO1A.37     
C-----------------------------------------------------------------------   ENVIRO1A.38     
C                                                                          ENVIRO1A.39     
*CALL C_R_CP                                                               ENVIRO1A.40     
*CALL C_LHEAT                                                              ENVIRO1A.41     
*CALL PARXS                                                                ENVIRO1A.42     
C                                                                          ENVIRO1A.43     
C-----------------------------------------------------------------------   ENVIRO1A.44     
C VECTOR LENGTHS AND LOOP COUNTERS                                         ENVIRO1A.45     
C-----------------------------------------------------------------------   ENVIRO1A.46     
C                                                                          ENVIRO1A.47     
      INTEGER NPNTS          ! IN VECTOR LENGTH                            ENVIRO1A.48     
C                                                                          ENVIRO1A.49     
      INTEGER I              ! LOOP COUNTER                                ENVIRO1A.50     
C                                                                          ENVIRO1A.51     
C                                                                          ENVIRO1A.52     
C-----------------------------------------------------------------------   ENVIRO1A.53     
C VARIABLES THAT ARE INPUT                                                 ENVIRO1A.54     
C-----------------------------------------------------------------------   ENVIRO1A.55     
C                                                                          ENVIRO1A.56     
      REAL THEK(NPNTS)       ! IN POTENTIAL TEMPERATURE OF CLOUD           ENVIRO1A.57     
                             !    ENVIRONMENT IN LAYER K (K)               ENVIRO1A.58     
C                                                                          ENVIRO1A.59     
      REAL THEKP1(NPNTS)     ! IN POTENTIAL TEMPERATURE OF CLOUD           ENVIRO1A.60     
                             !    ENVIRONMENT IN LAYER K+1 (K)             ENVIRO1A.61     
C                                                                          ENVIRO1A.62     
      REAL QEK(NPNTS)        ! IN MIXING RATIO OF CLOUD                    ENVIRO1A.63     
                             !    ENVIRONMENT IN LAYER K (KG/KG)           ENVIRO1A.64     
C                                                                          ENVIRO1A.65     
      REAL QEKP1(NPNTS)      ! IN MIXING RATIO OF CLOUD                    ENVIRO1A.66     
                             !    ENVIRONMENT IN LAYER K+1 (KG/KG)         ENVIRO1A.67     
C                                                                          ENVIRO1A.68     
      REAL THPK(NPNTS)       ! IN PARCEL POTENTIAL TEMPERATURE IN          ENVIRO1A.69     
                             !    LAYER K (K)                              ENVIRO1A.70     
C                                                                          ENVIRO1A.71     
      REAL QPK(NPNTS)        ! IN PARCEL MIXING RATIO IN LAYER K (KG/KG)   ENVIRO1A.72     
C                                                                          ENVIRO1A.73     
      REAL THPKP1(NPNTS)     ! IN PARCEL POTENTIAL TEMPERATURE IN          ENVIRO1A.74     
                             !    LAYER K+1 (K)                            ENVIRO1A.75     
C                                                                          ENVIRO1A.76     
      REAL QPKP1(NPNTS)      ! IN PARCEL MIXING RATIO IN LAYER K+1         ENVIRO1A.77     
                             !    (KG/KG)                                  ENVIRO1A.78     
C                                                                          ENVIRO1A.79     
      REAL XPK(NPNTS)        ! IN PARCEL CLOUD WATER IN LAYER K (KG/KG)    ENVIRO1A.80     
C                                                                          ENVIRO1A.81     
      REAL FLXK(NPNTS)       ! IN PARCEL MASSFLUX IN LAYER K (PA/S)        ENVIRO1A.82     
C                                                                          ENVIRO1A.83     
      LOGICAL BWKP1(NPNTS)   ! IN MASK FOR WHETHER CONDENSATE IS           ENVIRO1A.84     
                             !    LIQUID IN LAYER K+1                      ENVIRO1A.85     
C                                                                          ENVIRO1A.86     
      LOGICAL BTERM(NPNTS)   ! IN MASK FOR PARCELS WHICH TERMINATE IN      ENVIRO1A.87     
                             !    LAYER K+1                                ENVIRO1A.88     
C                                                                          ENVIRO1A.89     
      LOGICAL BLOWST(NPNTS)  ! IN MASK FOR THOSE POINTS AT WHICH           ENVIRO1A.90     
                             !    STABILITY IS LOW ENOUGH FOR              ENVIRO1A.91     
                             !    CONVECTION TO OCCUR                      ENVIRO1A.92     
C                                                                          ENVIRO1A.93     
      REAL THRK(NPNTS)       ! IN PARCEL DETRAINMENT POTENTIAL             ENVIRO1A.94     
                             !    TEMPERATURE IN LAYER K (K)               ENVIRO1A.95     
C                                                                          ENVIRO1A.96     
      REAL QRK(NPNTS)        ! IN PARCEL DETRAINMENT MIXING RATIO          ENVIRO1A.97     
                             !    IN LAYER K (KG/KG)                       ENVIRO1A.98     
C                                                                          ENVIRO1A.99     
      REAL XPKP1(NPNTS)      ! IN PARCEL CLOUD WATER IN LAYER K+1          ENVIRO1A.100    
                             !    (KG/KG)                                  ENVIRO1A.101    
C                                                                          ENVIRO1A.102    
      REAL FLXKP1(NPNTS)     ! IN PARCEL MASSFLUX IN LAYER K+1 (PA/S)      ENVIRO1A.103    
C                                                                          ENVIRO1A.104    
      REAL DELTAK(NPNTS)     ! IN PARCEL FORCED DETRAINMENT RATE           ENVIRO1A.105    
                             !    IN LAYER K MULTIPLIED BY APPROPRIATE     ENVIRO1A.106    
                             !    LAYER THICKNESS                          ENVIRO1A.107    
C                                                                          ENVIRO1A.108    
      REAL EKP14(NPNTS)      ! IN ENTRAINMENT RATE FOR LEVEL K+1/4         ENVIRO1A.109    
                             !    MULTIPLIED BY APPROPRIATE LAYER          ENVIRO1A.110    
                             !    THICKNESS                                ENVIRO1A.111    
C                                                                          ENVIRO1A.112    
      REAL EXK(NPNTS)        ! IN EXNER RATIO FOR MID-POINT OF LAYER K     ENVIRO1A.113    
C                                                                          ENVIRO1A.114    
      REAL EXKP1(NPNTS)      ! IN EXNER RATIO FOR MID-POINT OF             ENVIRO1A.115    
                             !    LAYER K+1                                ENVIRO1A.116    
C                                                                          ENVIRO1A.117    
      REAL DELPK(NPNTS)      ! IN PRESSURE DIFFERENCE ACROSS LAYER K       ENVIRO1A.118    
                             !    (PA)                                     ENVIRO1A.119    
C                                                                          ENVIRO1A.120    
      REAL DELPKP1(NPNTS)    ! IN PRESSURE DIFFERENCE ACROSS LAYER K+1     ENVIRO1A.121    
                             !    (PA)                                     ENVIRO1A.122    
C                                                                          ENVIRO1A.123    
      REAL AMDETK(NPNTS)     ! IN MIXING DETRIANMENT AT LEVEL K            ENVIRO1A.124    
                             !    MULTIPLIED BY APPROPRIATE LAYER          ENVIRO1A.125    
                             !    THICKNESS                                ENVIRO1A.126    
C                                                                          ENVIRO1A.127    
C                                                                          ENVIRO1A.128    
C-----------------------------------------------------------------------   ENVIRO1A.129    
C VARIABLES THAT ARE INPUT AND OUTPUT                                      ENVIRO1A.130    
C-----------------------------------------------------------------------   ENVIRO1A.131    
C                                                                          ENVIRO1A.132    
      REAL DTHEK(NPNTS)      ! INOUT                                       ENVIRO1A.133    
                             ! IN  INCREMENT TO MODEL POTENTIAL            ENVIRO1A.134    
                             !     TEMPERATURE IN LAYER K DUE TO           ENVIRO1A.135    
                             !     CONVECTION (MAY BE NONE ZERO            ENVIRO1A.136    
                             !     DUE TO A PREVIOUS SPLIT FINAL           ENVIRO1A.137    
                             !     DETRAINMENT CALCULATION) (K/S)          ENVIRO1A.138    
                             ! OUT UPDATED INCREMENT TO MODEL POTENTIAL    ENVIRO1A.139    
                             !     TEMPERATURE IN LAYER K DUE TO           ENVIRO1A.140    
                             !     CONVECTION (K/S)                        ENVIRO1A.141    
C                                                                          ENVIRO1A.142    
      REAL DQEK(NPNTS)       ! INOUT                                       ENVIRO1A.143    
                             ! IN  INCREMENT TO MODEL MIXING RATIO         ENVIRO1A.144    
                             !     IN LAYER K DUE TO CONVECTION            ENVIRO1A.145    
                             !     (MAY BE NONE ZERO                       ENVIRO1A.146    
                             !     DUE TO A PREVIOUS SPLIT FINAL           ENVIRO1A.147    
                             !     DETRAINMENT CALCULATION) (KG/KG/S)      ENVIRO1A.148    
                             ! OUT UPDATED INCREMENT TO MODEL MIXING       ENVIRO1A.149    
                             !     RATIO IN LAYER K DUE TO                 ENVIRO1A.150    
                             !     CONVECTION (KG/KG/S)                    ENVIRO1A.151    
C                                                                          ENVIRO1A.152    
C                                                                          ENVIRO1A.153    
C-----------------------------------------------------------------------   ENVIRO1A.154    
C VARIABLES THAT ARE OUTPUT                                                ENVIRO1A.155    
C-----------------------------------------------------------------------   ENVIRO1A.156    
C                                                                          ENVIRO1A.157    
      REAL DTHEKP1(NPNTS)    ! OUT INCREMENT TO MODEL POTENTIAL            ENVIRO1A.158    
                             !     TEMPERATURE IN LAYER K+1 DUE TO         ENVIRO1A.159    
                             !     CONVECTION (K/S)                        ENVIRO1A.160    
C                                                                          ENVIRO1A.161    
      REAL DQEKP1(NPNTS)     ! OUT INCREMENT TO MODEL MIXING RATIO         ENVIRO1A.162    
                             !     IN LAYER K+1 DUE TO CONVECTION          ENVIRO1A.163    
                             !     (KG/KG/S)                               ENVIRO1A.164    
C                                                                          ENVIRO1A.165    
C                                                                          ENVIRO1A.166    
C-----------------------------------------------------------------------   ENVIRO1A.167    
C VARIABLES THAT ARE DEFINED LOCALLY                                       ENVIRO1A.168    
C-----------------------------------------------------------------------   ENVIRO1A.169    
C                                                                          ENVIRO1A.170    
      REAL EL                ! LATENT HEAT OF CONDENSATION OR              ENVIRO1A.171    
                             ! (CONDENSATION + FUSION) (J/KG)              ENVIRO1A.172    
C                                                                          ENVIRO1A.173    
      REAL TEMPRY            ! TEMPORARY ARRAY                             ENVIRO1A.174    
C                                                                          ENVIRO1A.175    
C*---------------------------------------------------------------------    ENVIRO1A.176    
C                                                                          ENVIRO1A.177    
      DO 10 I=1,NPNTS                                                      ENVIRO1A.178    
C                                                                          ENVIRO1A.179    
C-----------------------------------------------------------------------   ENVIRO1A.180    
C   CREATE A VECTOR OF LATENT HEATS                                        ENVIRO1A.181    
C-----------------------------------------------------------------------   ENVIRO1A.182    
C                                                                          ENVIRO1A.183    
       IF (BWKP1(I)) THEN                                                  ENVIRO1A.184    
          EL = LC                                                          ENVIRO1A.185    
       ELSE                                                                ENVIRO1A.186    
          EL = LC + LF                                                     ENVIRO1A.187    
       ENDIF                                                               ENVIRO1A.188    
C                                                                          ENVIRO1A.189    
C----------------------------------------------------------------------    ENVIRO1A.190    
C CALCULATE PARCEL MASSFLUX DIVIDED BY THE THICKNESS OF LAYER K            ENVIRO1A.191    
C THIS VALUE IS USED IN SEVERAL PLACES IN THE SUBROUTINE                   ENVIRO1A.192    
C----------------------------------------------------------------------    ENVIRO1A.193    
C                                                                          ENVIRO1A.194    
       TEMPRY = FLXK(I)/DELPK(I)                                           ENVIRO1A.195    
C                                                                          ENVIRO1A.196    
       IF (BLOWST(I)) THEN                                                 ENVIRO1A.197    
CL                                                                         ENVIRO1A.198    
CL----------------------------------------------------------------------   ENVIRO1A.199    
CL AT THE LOWEST CONVECTIVE LAYER, THE PARCEL MASS FLUX IS A FLUX FROM     ENVIRO1A.200    
CL THE ENVIRONMENT. IE. THE INITIAL MASS FLUX IS ENTRAINED WITH EXCESS     ENVIRO1A.201    
CL POTENTIAL TEMPERATURE AND MIXING RATIO TPIXS, QPIXS                     ENVIRO1A.202    
CL                                                                         ENVIRO1A.203    
CL UM DOCUMENTATIO PAPER P27                                               ENVIRO1A.204    
CL SECTION (10), EQUATION (39)                                             ENVIRO1A.205    
CL----------------------------------------------------------------------   ENVIRO1A.206    
CL                                                                         ENVIRO1A.207    
         DTHEK(I) = DTHEK(I) - TEMPRY*THPIXS                               ENVIRO1A.208    
         DQEK(I) = DQEK(I) - TEMPRY*QPIXS                                  ENVIRO1A.209    
       ENDIF                                                               ENVIRO1A.210    
CL                                                                         ENVIRO1A.211    
CL---------------------------------------------------------------------    ENVIRO1A.212    
CL EFFECT OF CONVECTION UPON POTENTIAL TEMPERATURE OF LAYER K              ENVIRO1A.213    
CL                                                                         ENVIRO1A.214    
CL UM DOCUMENTATION PAPER P27                                              ENVIRO1A.215    
CL SECTION (10), EQUATION (38A)                                            ENVIRO1A.216    
CL--------------------------------------------------------------------     ENVIRO1A.217    
CL                                                                         ENVIRO1A.218    
       DTHEK(I) = DTHEK(I) + TEMPRY * (                                    ENVIRO1A.219    
     *                                                                     ENVIRO1A.220    
     *           (1+EKP14(I)) * (1.0-DELTAK(I)) *        ! COMPENSATING    ENVIRO1A.221    
     *           (1-AMDETK(I)) * (THEKP1(I)-THEK(I))     ! SUBSIDENCE      ENVIRO1A.222    
     *         +                                                           ENVIRO1A.223    
     *           DELTAK(I) * (1.0-AMDETK(I)) *           ! FORCED          ENVIRO1A.224    
     *           (THRK(I)-THEK(I)-                       ! DETRAINMENT     ENVIRO1A.225    
     *                    ((EL/CP)*XPK(I)/EXK(I)))                         ENVIRO1A.226    
     *         +                                                           ENVIRO1A.227    
     *           AMDETK(I) * (THPK(I)-THEK(I)-           ! MIXING          ENVIRO1A.228    
     *                    ((EL/CP)*XPK(I)/EXK(I)))       ! DETRAINMENT     ENVIRO1A.229    
     *         )                                                           ENVIRO1A.230    
CL                                                                         ENVIRO1A.231    
CL---------------------------------------------------------------------    ENVIRO1A.232    
CL EFFECT OF CONVECTION UPON MIXING RATIO OF LAYER K                       ENVIRO1A.233    
CL                                                                         ENVIRO1A.234    
CL UM DOCUMENTATION PAPER P27                                              ENVIRO1A.235    
CL SECTION (10), EQUATION (38B)                                            ENVIRO1A.236    
CL--------------------------------------------------------------------     ENVIRO1A.237    
CL                                                                         ENVIRO1A.238    
       DQEK(I) = DQEK(I) + TEMPRY * (                                      ENVIRO1A.239    
     *                                                                     ENVIRO1A.240    
     *           (1+EKP14(I)) * (1.0-DELTAK(I)) *        ! COMPENSATING    ENVIRO1A.241    
     *           (1-AMDETK(I)) * (QEKP1(I)-QEK(I))       ! SUBSIDENCE      ENVIRO1A.242    
     *         +                                                           ENVIRO1A.243    
     *           DELTAK(I) * (1.0-AMDETK(I)) *           ! FORCED          ENVIRO1A.244    
     *           (QRK(I)-QEK(I)+XPK(I))                  ! DETRAINMENT     ENVIRO1A.245    
     *         +                                                           ENVIRO1A.246    
     *           AMDETK(I) * (QPK(I)-QEK(I)+             ! MIXING          ENVIRO1A.247    
     *                                XPK(I))            ! DETRAINMENT     ENVIRO1A.248    
     *         )                                                           ENVIRO1A.249    
CL                                                                         ENVIRO1A.250    
CL----------------------------------------------------------------------   ENVIRO1A.251    
CL TERMINAL DETRAINMENT AND SUBSIDENCE IN TERMINAL LAYER                   ENVIRO1A.252    
CL                                                                         ENVIRO1A.253    
CL UM DOCUMENTATION PAPER P27                                              ENVIRO1A.254    
CL SECTION (10), EQUATION (40)                                             ENVIRO1A.255    
CL--------------------------------------------------------------------     ENVIRO1A.256    
CL                                                                         ENVIRO1A.257    
       IF ( BTERM(I) ) THEN                                                ENVIRO1A.258    
          TEMPRY = FLXKP1(I)/DELPKP1(I)                                    ENVIRO1A.259    
          DTHEKP1(I) = DTHEKP1(I) + TEMPRY*((THPKP1(I)-THEKP1(I))          ENVIRO1A.260    
     *                                   - EL*XPKP1(I)/(EXKP1(I)*CP))      ENVIRO1A.261    
          DQEKP1(I)  = DQEKP1(I) + TEMPRY*(QPKP1(I)-QEKP1(I)               ENVIRO1A.262    
     *                                                + XPKP1(I))          ENVIRO1A.263    
       ENDIF                                                               ENVIRO1A.264    
  10   CONTINUE                                                            ENVIRO1A.265    
C                                                                          ENVIRO1A.266    
      RETURN                                                               ENVIRO1A.267    
      END                                                                  ENVIRO1A.268    
*ENDIF                                                                     ENVIRO1A.269