*IF DEF,A05_2A,OR,DEF,A05_2C,OR,DEF,A05_3B,OR,DEF,A05_3C                   AJX1F405.118    
C ******************************COPYRIGHT******************************    GTS2F400.991    
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.992    
C                                                                          GTS2F400.993    
C Use, duplication or disclosure of this code is subject to the            GTS2F400.994    
C restrictions as set forth in the contract.                               GTS2F400.995    
C                                                                          GTS2F400.996    
C                Meteorological Office                                     GTS2F400.997    
C                London Road                                               GTS2F400.998    
C                BRACKNELL                                                 GTS2F400.999    
C                Berkshire UK                                              GTS2F400.1000   
C                RG12 2SZ                                                  GTS2F400.1001   
C                                                                          GTS2F400.1002   
C If no contract has been raised with this copy of the code, the use,      GTS2F400.1003   
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.1004   
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.1005   
C Modelling at the above address.                                          GTS2F400.1006   
C ******************************COPYRIGHT******************************    GTS2F400.1007   
C                                                                          GTS2F400.1008   
CLL  SUBROUTINE CLOUD_W------------------------------------------------    CLOUDW1A.3      
CLL                                                                        CLOUDW1A.4      
CLL  PURPOSE : CLOUD MICROPHYSICS ROUTINE                                  CLOUDW1A.5      
CLL                                                                        CLOUDW1A.6      
CLL            CALCULATES PRECIPITATION PRODUCED IN LIFTING PARCEL         CLOUDW1A.7      
CLL            FROM LAYER K TO K+1                                         CLOUDW1A.8      
CLL                                                                        CLOUDW1A.9      
CLL            CALL CON_RAD TO CALCULATE PARAMETERS FOR RADIATION          CLOUDW1A.10     
CLL            CALCULATION                                                 CLOUDW1A.11     
CLL                                                                        CLOUDW1A.12     
CLL  SUITABLE FOR SINGLE COLUMN MODEL USE                                  CLOUDW1A.13     
CLL                                                                        CLOUDW1A.14     
CLL  CODE REWORKED FOR CRAY Y-MP BY D.GREGORY AUTUMN/WINTER 1989/90        CLOUDW1A.15     
CLL                                                                        CLOUDW1A.16     
CLL  MODEL            MODIFICATION HISTORY FROM MODEL VERSION 3.0:         CLOUDW1A.17     
CLL VERSION  DATE                                                          CLOUDW1A.18     
CLL  3.2  8/07/93 : added convective cloud condensed water diagnostic      PI080793.56     
CLL               : P Inness                                               PI080793.57     
CLL  3.4  21/03/94  Add lowest conv.cloud diagnostics.  R.T.H.Barnes.      ARN2F304.3      
CLL  4.4  26/09/97  Logical L_CCW passed in to determine if convective     AJX0F404.318    
CLL                 precip is included in water path (no, if .T.)          AJX0F404.319    
CLL                                                                        CLOUDW1A.19     
CLL  PROGRAMMING STANDARDS : UNIFIED MODEL DOCUMENTATION PAPER NO. 4       CLOUDW1A.20     
CLL  VERSION NO. 1                                                         CLOUDW1A.21     
CLL                                                                        CLOUDW1A.22     
CLL  PROJECT TASK : P27                                                    CLOUDW1A.23     
CLL                                                                        CLOUDW1A.24     
CLL  DOCUMENTATION : UNIFIED MODEL DOCUMENTATION PAPER P27                 CLOUDW1A.25     
CLL                                                                        CLOUDW1A.26     
CLLEND-----------------------------------------------------------------    CLOUDW1A.27     
C                                                                          CLOUDW1A.28     
C*L  ARGUMENTS---------------------------------------------------------    CLOUDW1A.29     
C                                                                          CLOUDW1A.30     

      SUBROUTINE CLOUD_W (K,NPNTS,XPKP1,PREKP1,XSQKP1,BLOWST,               2,2CLOUDW1A.31     
     *                    FLXKP1,XPK,THEKP1,QEKP1,BWKP1,BLAND,             CLOUDW1A.32     
     *                    QSEKP1,BGMKP1,BTERM,CCA,ICCB,ICCT,TCW,DEPTH,     CLOUDW1A.33     
     *                    EKP14,EKP34,DELEXKP1,CCLWP,DELPKP1,CCW,          ARN2F304.4      
     *                    LCCA,LCBASE,LCTOP,LCCLWP,L_SHALLOW,              AJX0F404.320    
     *                    L_CCW                                            AJX0F404.321    
*IF DEF,A05_3B,OR,DEF,A05_3C                                               AJX1F405.119    
     &                   ,MPARWTR                                          AJX0F404.323    
*ENDIF                                                                     AJX0F404.324    
     &                   ,UD_FACTOR                                        AJX3F405.1      
     &                    )                                                AJX0F404.325    
C                                                                          CLOUDW1A.35     
      IMPLICIT NONE                                                        CLOUDW1A.36     
C                                                                          CLOUDW1A.37     
C----------------------------------------------------------------------    CLOUDW1A.38     
C MODEL CONSTANTS                                                          CLOUDW1A.39     
C----------------------------------------------------------------------    CLOUDW1A.40     
C                                                                          CLOUDW1A.41     
*CALL CRITDEP                                                              CLOUDW1A.42     
*CALL MPARWTR                                                              CLOUDW1A.43     
*CALL C_G                                                                  CLOUDW1A.44     
*CALL C_R_CP                                                               CLOUDW1A.45     
*CALL C_EPSLON                                                             CLOUDW1A.46     
C                                                                          CLOUDW1A.47     
C----------------------------------------------------------------------    CLOUDW1A.48     
C VECTOR LENGTH AND LOOP COUNTERS                                          CLOUDW1A.49     
C----------------------------------------------------------------------    CLOUDW1A.50     
C                                                                          CLOUDW1A.51     
      INTEGER NPNTS          ! IN VECTOR LENGTH                            CLOUDW1A.52     
C                                                                          CLOUDW1A.53     
      INTEGER K              ! IN PRESENT MODEL LAYER                      CLOUDW1A.54     
C                                                                          CLOUDW1A.55     
      INTEGER I              ! LOOP COUNTER                                CLOUDW1A.56     
C                                                                          CLOUDW1A.57     
C                                                                          CLOUDW1A.58     
C----------------------------------------------------------------------    CLOUDW1A.59     
C VARIABLES WHICH ARE INPUT                                                CLOUDW1A.60     
C----------------------------------------------------------------------    CLOUDW1A.61     
C                                                                          CLOUDW1A.62     
      REAL THEKP1(NPNTS)     ! IN POTENTIAL TEMPERATURE OF CLOUD           CLOUDW1A.63     
                             !    ENVIRONMENT IN LAYER K+1 (K)             CLOUDW1A.64     
C                                                                          CLOUDW1A.65     
      REAL QEKP1(NPNTS)      ! IN MIXING RATIO OF CLOUD ENVIRONMENT        CLOUDW1A.66     
                             !    IN LAYER K+1 (KG/KG)                     CLOUDW1A.67     
C                                                                          CLOUDW1A.68     
      REAL QSEKP1(NPNTS)     ! IN SATURATION MIXING RATIO OF CLOUD         CLOUDW1A.69     
                             !    ENVIRONMENT IN LAYER K+1 (KG/KG)         CLOUDW1A.70     
C                                                                          CLOUDW1A.71     
      REAL XPK(NPNTS)        ! IN PARCEL CLOUD WATER IN LAYER K (KG/KG)    CLOUDW1A.72     
C                                                                          CLOUDW1A.73     
      LOGICAL BWKP1(NPNTS)   ! IN MASK FOR WHETHER CONDENSATE IS           CLOUDW1A.74     
                             !    LIQUID IN LAYER K+1                      CLOUDW1A.75     
C                                                                          CLOUDW1A.76     
      LOGICAL BGMKP1(NPNTS)  ! IN MASK FOR PARCELS WHICH ARE               CLOUDW1A.77     
                             !    SATURATED IN LAYER K+1                   CLOUDW1A.78     
C                                                                          CLOUDW1A.79     
      LOGICAL BLAND(NPNTS)   ! IN LAND/SEA MASK                            CLOUDW1A.80     
C                                                                          CLOUDW1A.81     
      LOGICAL BTERM(NPNTS)   ! IN MASK FOR PARCELS WHICH TERMINATE IN      CLOUDW1A.82     
                             !    LAYER K+1                                CLOUDW1A.83     
C                                                                          CLOUDW1A.84     
      LOGICAL BLOWST(NPNTS)  ! IN MASK FOR THOSE POINTS AT WHICH           CLOUDW1A.85     
                             !    STABILITY IS LOW ENOUGH FOR              CLOUDW1A.86     
                             !    CONVECTION TO OCCUR                      CLOUDW1A.87     
C                                                                          CLOUDW1A.88     
      LOGICAL L_SHALLOW(NPNTS) ! IN MASK FOR POINTS WHERE SHALLOW          AJX0F404.326    
                               !    CONVECTION IS LIKELY                   AJX0F404.327    
      LOGICAL L_CCW            ! IN SWITCH FOR CLOUD WATER CHANGES:        AJX0F404.328    
                               !    (PRECIP NOT INC. IN WATER PATH)        AJX0F404.329    
C                                                                          AJX0F404.330    
      REAL FLXKP1(NPNTS)     ! IN PARCEL MASSFLUX IN LAYER K+1 (PA/S)      CLOUDW1A.89     
C                                                                          CLOUDW1A.90     
      REAL XSQKP1(NPNTS)     ! IN EXCESS PARCEL MIXING RATIO IN            CLOUDW1A.91     
                             !    LAYER K+1 (KG/KG)                        CLOUDW1A.92     
C                                                                          CLOUDW1A.93     
      REAL EKP14(NPNTS)      ! IN ENTRAINMENT RATE AT LEVEL K+1/4          CLOUDW1A.94     
                             !    MULTIPLIED BY APPROPRIATE LAYER          CLOUDW1A.95     
                             !    THICKNESS                                CLOUDW1A.96     
C                                                                          CLOUDW1A.97     
      REAL EKP34(NPNTS)      ! IN ENTRAINEMNT RATE AT LEVEL K+3/4          CLOUDW1A.98     
                             !    MULTIPLIED BY APPROPRIATE LAYER          CLOUDW1A.99     
                             !    THICKNESS                                CLOUDW1A.100    
C                                                                          CLOUDW1A.101    
      REAL DELEXKP1(NPNTS)   ! IN DIFFERENCE IN EXNER RATIO ACROSS         CLOUDW1A.102    
                             !    LAYER K+1 (PA)                           CLOUDW1A.103    
C                                                                          CLOUDW1A.104    
      REAL DELPKP1(NPNTS)    ! IN PRESSURE DIFFERENCE ACROSS LAYER K+1     CLOUDW1A.105    
C                                                                          CLOUDW1A.106    
C                                                                          CLOUDW1A.107    
C----------------------------------------------------------------------    CLOUDW1A.108    
C VARIABLES WHICH ARE INPUT AND OUTPUT                                     CLOUDW1A.109    
C----------------------------------------------------------------------    CLOUDW1A.110    
C                                                                          CLOUDW1A.111    
      REAL TCW(NPNTS)        ! INOUT                                       CLOUDW1A.112    
                             ! IN  TOTAL CONDENSED WATER SUMMED UPTO       CLOUDW1A.113    
                             !     LAYER K (KG/M**2/S)                     CLOUDW1A.114    
                             ! OUT TOTAL CONDENSED WATER SUMMED UPTO       CLOUDW1A.115    
                             !     LAYER K+1 (KG/M**2/S)                   CLOUDW1A.116    
C                                                                          CLOUDW1A.117    
      REAL DEPTH(NPNTS)      ! INOUT                                       CLOUDW1A.118    
                             ! IN  DEPTH OF CONVECTIVE CLOUD TO            CLOUDW1A.119    
                             !     LAYER K (M)                             CLOUDW1A.120    
                             ! OUT DEPTH OF CONVECTIVE CLOUD TO            CLOUDW1A.121    
                             !     LAYER K+1 (M)                           CLOUDW1A.122    
C                                                                          CLOUDW1A.123    
      REAL CCLWP(NPNTS)      ! INOUT                                       CLOUDW1A.124    
                             ! IN  CONDENSED WATER PATH SUMMED UPTO        CLOUDW1A.125    
                             !     LAYER K (KG/M**2)                       CLOUDW1A.126    
                             ! OUT CONDENSED WATER PATH SUMMED UPTO        CLOUDW1A.127    
                             !     LAYER K+1 (KG/M**2)                     CLOUDW1A.128    
C                                                                          CLOUDW1A.129    
C                                                                          CLOUDW1A.130    
C----------------------------------------------------------------------    CLOUDW1A.131    
C VARIABLES WHICH ARE OUTPUT                                               CLOUDW1A.132    
C----------------------------------------------------------------------    CLOUDW1A.133    
C                                                                          CLOUDW1A.134    
      REAL PREKP1(NPNTS)     ! OUT PRECIPITATION FROM PARCEL AS IT         CLOUDW1A.135    
                             !     RISES FROM LAYER K TO K+1 (KG/M**2/S)   CLOUDW1A.136    
C                                                                          CLOUDW1A.137    
      REAL XPKP1(NPNTS)      ! OUT PARCEL CLOUD WATER IN LAYER K+1         CLOUDW1A.138    
                             !     (KG/KG)                                 CLOUDW1A.139    
C                                                                          CLOUDW1A.140    
      REAL CCA(NPNTS)        ! OUT CONVECTIVE CLOUD AMOUNT (%)             CLOUDW1A.141    
C                                                                          CLOUDW1A.142    
      INTEGER ICCB(NPNTS)    ! OUT CONVECTIVE CLOUD BASE LEVEL             CLOUDW1A.143    
C                                                                          CLOUDW1A.144    
      INTEGER ICCT(NPNTS)    ! OUT CONVECTIVE CLOUD TOP LEVEL              CLOUDW1A.145    
C                                                                          CLOUDW1A.146    
      REAL CCW(NPNTS)        ! OUT CONVECTIVE CLOUD LIQUID WATER           PI080793.59     
                             ! (G/KG) ON MODEL LEVELS                      PI080793.60     
C                                                                          CLOUDW1A.147    
      REAL LCCA(NPNTS)       ! OUT LOWEST CONV.CLOUD AMOUNT (%)            ARN2F304.6      
C                                                                          PI080793.61     
      INTEGER LCBASE(NPNTS)  ! OUT LOWEST CONV.CLOUD BASE LEVEL            ARN2F304.7      
C                                                                          ARN2F304.8      
      INTEGER LCTOP(NPNTS)   ! OUT LOWEST CONV.CLOUD TOP LEVEL             ARN2F304.9      
C                                                                          ARN2F304.10     
      REAL LCCLWP(NPNTS)     ! OUT LOWEST CONV.CLOUD LIQ.WATER PATH        ARN2F304.11     
C                                                                          ARN2F304.12     
C                                                                          ARN2F304.13     
C----------------------------------------------------------------------    CLOUDW1A.148    
C VARIABLES WHICH ARE LOCALLY DEFINED                                      CLOUDW1A.149    
C----------------------------------------------------------------------    CLOUDW1A.150    
C                                                                          CLOUDW1A.151    
      REAL DCRIT             ! CRITICAL DEPTH AT WHICH PRECIPITATION       CLOUDW1A.152    
                             ! MAY FORM (M)                                CLOUDW1A.153    
C                                                                          CLOUDW1A.154    
      REAL XMIN              ! AMOUNT OF CLOUD WATER RETAINED BY THE       CLOUDW1A.155    
                             ! PARCEL ON PRECIPITATION (KG/KG)             CLOUDW1A.156    
C                                                                          CLOUDW1A.157    
      REAL EPSS              ! (1.0+EKP14)*(1.0+EKP34)                     CLOUDW1A.158    
C                                                                          CLOUDW1A.159    
      REAL CCW_UD(NPNTS)    ! Cloud water for radiation                    AJX3F405.2      
C                           !                                              AJX3F405.3      
      REAL UD_FACTOR        ! Factor to multiply ccw by                    AJX3F405.4      
C----------------------------------------------------------------------    CLOUDW1A.160    
C  EXTERNAL ROUTINES CALLED                                                CLOUDW1A.161    
C----------------------------------------------------------------------    CLOUDW1A.162    
C                                                                          CLOUDW1A.163    
      EXTERNAL CON_RAD                                                     CLOUDW1A.164    
C                                                                          CLOUDW1A.165    
C*---------------------------------------------------------------------    CLOUDW1A.166    
CL                                                                         CLOUDW1A.167    
CL----------------------------------------------------------------------   CLOUDW1A.168    
CL  CALCULATE CLOUD WATER BEFORE PRECIPITATION                             CLOUDW1A.169    
CL                                                                         CLOUDW1A.170    
CL UM DOCUMENTATION PAPER P27                                              CLOUDW1A.171    
CL SECTION (2B), EQUATION (13A)                                            CLOUDW1A.172    
CL----------------------------------------------------------------------   CLOUDW1A.173    
CL                                                                         CLOUDW1A.174    
      DO 10 I=1,NPNTS                                                      CLOUDW1A.175    
       EPSS = (1.+EKP14(I))*(1.+EKP34(I))                                  CLOUDW1A.176    
       XPKP1(I) = (XPK(I)/EPSS) + XSQKP1(I)                                CLOUDW1A.177    
   10 CONTINUE                                                             CLOUDW1A.178    
CL                                                                         PI080793.62     
CL----------------------------------------------------------------------   PI080793.63     
CL STORE CONVECTIVE CLOUD LIQUID WATER BEFORE PRECIPITATION                PI080793.64     
CL----------------------------------------------------------------------   PI080793.65     
CL                                                                         PI080793.66     
      DO I=1,NPNTS                                                         PI080793.67     
        CCW(I) = XPKP1(I)                                                  PI080793.68     
      END DO                                                               PI080793.69     
      IF (.NOT. L_CCW) THEN                                                AJX0F404.331    
CL                                                                         CLOUDW1A.179    
CL----------------------------------------------------------------------   CLOUDW1A.180    
CL CALCULATE CONVECTIVE CLOUD BASE, CONVECTIVE CLOUD TOP , TOTAL           CLOUDW1A.181    
CL CONDENSED WATER/ICE AND CONVECTIVE CLOUD AMOUNT                         CLOUDW1A.182    
CL                                                                         CLOUDW1A.183    
CL SUBROUTINE CON_RAD                                                      CLOUDW1A.184    
CL                                                                         CLOUDW1A.185    
CL UM DOCUMENTATION PAPER P27                                              CLOUDW1A.186    
CL SECTION (9)                                                             CLOUDW1A.187    
CL----------------------------------------------------------------------   CLOUDW1A.188    
CL                                                                         CLOUDW1A.189    
      CALL CON_RAD(K,XPK,XPKP1,FLXKP1,BTERM,CCA,ICCB,ICCT,                 CLOUDW1A.190    
     *       TCW,CCW,CCLWP,DELPKP1,LCCA,LCBASE,LCTOP,LCCLWP,NPNTS)         AJX0F404.332    
      ENDIF                                                                AJX0F404.333    
CL                                                                         CLOUDW1A.192    
CL----------------------------------------------------------------------   CLOUDW1A.193    
CL CALCULATE CLOUD DEPTH AND ASSIGN CRITICAL CLOUD DEPTHS                  CLOUDW1A.194    
CL                                                                         CLOUDW1A.195    
CL UM DOCUMENTATION PAPER P27                                              CLOUDW1A.196    
CL SECTION (8), EQUATION (34), (35)                                        CLOUDW1A.197    
CL----------------------------------------------------------------------   CLOUDW1A.198    
CL                                                                         CLOUDW1A.199    
      DO 30 I=1,NPNTS                                                      CLOUDW1A.200    
       IF ( BLOWST(I) ) DEPTH(I) = 0.                                      CLOUDW1A.201    
C                                                                          CLOUDW1A.202    
       IF ( BGMKP1(I) )                                                    CLOUDW1A.203    
     *   DEPTH(I) = DEPTH(I) + ( CP * THEKP1(I) *                          CLOUDW1A.204    
     *                             (1.0+C_VIRTUAL*QEKP1(I)) *              CLOUDW1A.205    
     *                                          DELEXKP1(I)/G )            CLOUDW1A.206    
C                                                                          CLOUDW1A.207    
       IF (.NOT.BWKP1(I)) THEN                                             CLOUDW1A.208    
          DCRIT = CRITDICE                                                 CLOUDW1A.209    
       ELSE IF (BLAND(I)) THEN                                             CLOUDW1A.210    
          DCRIT = CRITDLND                                                 CLOUDW1A.211    
       ELSE                                                                CLOUDW1A.212    
          DCRIT = CRITDSEA                                                 CLOUDW1A.213    
       ENDIF                                                               CLOUDW1A.214    
CL                                                                         CLOUDW1A.215    
CL----------------------------------------------------------------------   CLOUDW1A.216    
CL CALCULATE PRECIPITATION FROM LAYER K+1 AND ADJUST CLOUD WATER           CLOUDW1A.217    
CL                                                                         CLOUDW1A.218    
CL UM DOCUMENTATION PAPER P27                                              CLOUDW1A.219    
CL SECTION (8), EQUATION (36)                                              CLOUDW1A.220    
CL----------------------------------------------------------------------   CLOUDW1A.221    
CL                                                                         CLOUDW1A.222    
       XMIN = MIN (MPARWTR , 0.5*QSEKP1(I))                                CLOUDW1A.223    
       IF (     ( (DEPTH(I) .GT. DCRIT) .OR.                               AJX0F404.334    
     *            ((.NOT. L_SHALLOW(I)) .AND. (L_CCW)) )                   AJX0F404.335    
     *     .AND. (XPKP1(I) .GT. XMIN)) THEN                                CLOUDW1A.225    
          PREKP1(I) = (XPKP1(I) - XMIN) * FLXKP1(I) / G                    CLOUDW1A.226    
          XPKP1(I) = XMIN                                                  CLOUDW1A.227    
          CCW_UD(I)=XPKP1(I)*UD_FACTOR                                     AJX3F405.5      
       ELSE                                                                CLOUDW1A.228    
          PREKP1 (I) = 0.                                                  CLOUDW1A.229    
          CCW_UD(I)=XPKP1(I)                                               AJX3F405.6      
       ENDIF                                                               CLOUDW1A.230    
   30  CONTINUE                                                            CLOUDW1A.231    
      IF (L_CCW) THEN                                                      AJX0F404.336    
CL                                                                         AJX0F404.337    
CL----------------------------------------------------------------------   AJX0F404.338    
CL CALCULATE CONVECTIVE CLOUD BASE, CONVECTIVE CLOUD TOP , TOTAL           AJX0F404.339    
CL CONDENSED WATER/ICE AND CONVECTIVE CLOUD AMOUNT                         AJX0F404.340    
CL                                                                         AJX0F404.341    
CL SUBROUTINE CON_RAD - MOVED TO AFTER RAIN OUT HAS OCCURRED IF L_CCW      AJX0F404.342    
CL IS TRUE (SET IN UMUI).                                                  AJX0F404.343    
CL UM DOCUMENTATION PAPER P27                                              AJX0F404.344    
CL SECTION (9)                                                             AJX0F404.345    
CL----------------------------------------------------------------------   AJX0F404.346    
CL                                                                         AJX0F404.347    
        CALL CON_RAD(K,XPK,CCW_UD,FLXKP1,BTERM,CCA,ICCB,ICCT,              AJX3F405.7      
     *       TCW,CCW,CCLWP,DELPKP1,LCCA,LCBASE,LCTOP,LCCLWP,NPNTS)         AJX0F404.349    
CL                                                                         AJX0F404.350    
CL----------------------------------------------------------------------   AJX0F404.351    
CL STORE CONVECTIVE CLOUD LIQUID WATER AFTER PRECIPITATION                 AJX0F404.352    
CL----------------------------------------------------------------------   AJX0F404.353    
CL                                                                         AJX0F404.354    
        DO I=1,NPNTS                                                       AJX0F404.355    
          CCW(I) = CCW_UD(I)                                               AJX3F405.8      
        END DO                                                             AJX0F404.357    
      ENDIF                                                                AJX0F404.358    
C                                                                          CLOUDW1A.232    
      RETURN                                                               CLOUDW1A.233    
      END                                                                  CLOUDW1A.234    
*ENDIF                                                                     CLOUDW1A.235