*IF DEF,A05_2A                                                             AJX1F405.153    
C ******************************COPYRIGHT******************************    GTS2F400.1711   
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.1712   
C                                                                          GTS2F400.1713   
C Use, duplication or disclosure of this code is subject to the            GTS2F400.1714   
C restrictions as set forth in the contract.                               GTS2F400.1715   
C                                                                          GTS2F400.1716   
C                Meteorological Office                                     GTS2F400.1717   
C                London Road                                               GTS2F400.1718   
C                BRACKNELL                                                 GTS2F400.1719   
C                Berkshire UK                                              GTS2F400.1720   
C                RG12 2SZ                                                  GTS2F400.1721   
C                                                                          GTS2F400.1722   
C If no contract has been raised with this copy of the code, the use,      GTS2F400.1723   
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.1724   
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.1725   
C Modelling at the above address.                                          GTS2F400.1726   
C ******************************COPYRIGHT******************************    GTS2F400.1727   
C                                                                          GTS2F400.1728   
CLL  SUBROUTINE DD_CALL------------------------------------------------    DDCALL2A.3      
CLL                                                                        DDCALL2A.4      
CLL  PURPOSE : CALCULATE INITIAL DOWNDRAUGHT MASSFLUX                      DDCALL2A.5      
CLL                                                                        DDCALL2A.6      
CLL            RESET EN/DETRAINMENT RATES FOR DOWNDRAUGHT                  DDCALL2A.7      
CLL                                                                        DDCALL2A.8      
CLL            COMPRESS/EXPAND VARIABLES                                   DDCALL2A.9      
CLL                                                                        DDCALL2A.10     
CLL            INITIALISE DOWNDRAUGHT                                      DDCALL2A.11     
CLL                                                                        DDCALL2A.12     
CLL            CALL DOWNDRAUGHT ROUTINE                                    DDCALL2A.13     
CLL                                                                        DDCALL2A.14     
CLL  SUITABLE FOR SINGLE COLUMN MODEL USE                                  DDCALL2A.15     
CLL                                                                        DDCALL2A.16     
CLL  CODE REWORKED FOR CRAY Y-MP BY S.BETT AND D.GREGORY AUTUMN 1991       DDCALL2A.17     
CLL                                                                        DDCALL2A.18     
CLL  MODEL            MODIFICATION HISTORY FROM MODEL VERSION 3.0:         DDCALL2A.19     
CLL VERSION  DATE                                                          DDCALL2A.20     
CLL   3.3   23/12/93 : DG060893 : CORRECTION TO REDUCE OVER PREDICTION     DG060893.9      
CLL                               OF CONVECTIVE SNOW; TO PASS ADDITIONAL   DG060893.10     
CLL                               DATA DOWN TO DOWN2A AND PREVENT DD       DG060893.11     
CLL                               FORMING BELOW UPDRAUGHT BASE             DG060893.12     
CLL   4.2    Oct. 96  T3E migration: *DEF CRAY removed                     GSS1F402.94     
CLL                   (was used to switch on WHENIMD)                      GSS1F402.95     
CLL                                    S.J.Swarbrick                       GSS1F402.96     
CLL   4.3    Feb. 97  T3E migration: pass recip_pstar to LAYER_DD :        GSS1F403.247    
CLL                    recip_pstar is compressed in the same way as        GSS1F403.248    
CLL                    pstar before being passed to LAYER_DD.              GSS1F403.249    
CLL                                    S.J.Swarbrick                       GSS1F403.250    
CLL   4.5    Jul. 98  Kill the IBM specific lines (JCThil)                 AJC1F405.4      
!LL  4.5   20/02/98  Remove redundant code. A. Dickinson                   ADR1F405.46     
CLL                                                                        DG060893.13     
CLL                                                                        DDCALL2A.21     
CLL  PROGRAMMING STANDARDS : UNIFIED MODEL DOCUMENTATION PAPER NO. 3       DDCALL2A.22     
CLL  VERSION NO. 4  DATED 5/2/92                                           DDCALL2A.23     
CLL                                                                        DDCALL2A.24     
CLL  SYSTEM TASK : P27                                                     DDCALL2A.25     
CLL                                                                        DDCALL2A.26     
CLL  DOCUMENTATION : UNIFIED MODEL DOCUMENTATION PAPER P27                 DDCALL2A.27     
CLL                                                                        DDCALL2A.28     
CLLEND-----------------------------------------------------------------    DDCALL2A.29     
C                                                                          DDCALL2A.30     
C*L  ARGUMENTS---------------------------------------------------------    DDCALL2A.31     
C                                                                          DDCALL2A.32     

      SUBROUTINE DD_CALL (NP_FIELD,NPNTS,KCT,THP,QP,THE,QE,DTHBYDT,        DDCALL2A.33     
     *                    DQBYDT,FLX,PSTAR,AK,BK,AKM12,BKM12,DELAK,        DDCALL2A.34     
     *                    DELBK,EXNER,PRECIP,RAIN,SNOW,ICCB,ICCT,          DDCALL2A.35     
     *                    BWATER,BTERM,BGMK,TIMESTEP,CCA,NTERM,            GSS1F403.251    
     *                    recip_pstar)                                     GSS1F403.252    
C                                                                          DDCALL2A.37     
      IMPLICIT NONE                                                        DDCALL2A.38     
C                                                                          DDCALL2A.39     
C-----------------------------------------------------------------------   DDCALL2A.40     
C VECTOR LENGTHS AND LOOP COUNTERS                                         DDCALL2A.41     
C-----------------------------------------------------------------------   DDCALL2A.42     
C                                                                          DDCALL2A.43     
C                                                                          DDCALL2A.47     
      INTEGER I                  ! LOOP COUNTER                            DDCALL2A.48     
C                                                                          DDCALL2A.49     
      INTEGER K                  ! PRESENT MODEL LAYER                     DDCALL2A.50     
C                                                                          DDCALL2A.51     
      INTEGER NPNTS              ! IN NUMBER OF POINTS                     DDCALL2A.52     
C                                                                          DDCALL2A.53     
      INTEGER NDD,NTERM          ! COMPRESSED VECTOR LENGTH FOR            DDCALL2A.54     
                                 ! DOWNDRAUGHT CALCULATION                 DDCALL2A.55     
C                                                                          DDCALL2A.56     
      INTEGER NP_FIELD           ! IN FULL VECTOR LENGTH                   DDCALL2A.57     
C                                                                          DDCALL2A.58     
      INTEGER NDDON_TMP          ! NUMBER OF POINTS WITH ACTIVE            DDCALL2A.59     
                                 ! DOWNDRAUGHT                             DDCALL2A.60     
C                                                                          DDCALL2A.61     
C-----------------------------------------------------------------------   DDCALL2A.62     
C VARIABLES WHICH ARE INPUT                                                DDCALL2A.63     
C-----------------------------------------------------------------------   DDCALL2A.64     
C                                                                          DDCALL2A.65     
      INTEGER KCT                ! IN CONVECTIVE CLOUD TOP LAYER           DDCALL2A.66     
C                                                                          DDCALL2A.67     
      REAL AK(KCT+1)             ! IN ) HYBRID CO-ORDINATE VALUES AT       DDCALL2A.68     
      REAL BK(KCT+1)             ! IN ) MID-LAYER OF LAYER K               DDCALL2A.69     
C                                                                          DDCALL2A.70     
      REAL AKM12(KCT+2)          ! IN ) HYBRID CO-ORDINATE VALUES AT       DDCALL2A.71     
      REAL BKM12(KCT+2)          ! IN ) LOWER LAYER BOUNDARY OF LAYER K    DDCALL2A.72     
C                                                                          DDCALL2A.73     
      REAL DELAK(KCT+1)          ! IN ) HYBRID CO-ORDINATE VALUES FOR      DDCALL2A.74     
      REAL DELBK(KCT+1)          ! IN ) THICKNESS OF LAYER K               DDCALL2A.75     
C                                                                          DDCALL2A.76     
      REAL EXNER(NP_FIELD,KCT+2) ! IN EXNER FUNCTION AT LAYER BOUNDARIES   DDCALL2A.77     
                                 !    STARTING AT LEVEL K-1/2              DDCALL2A.78     
C                                                                          DDCALL2A.79     
      REAL THP(NPNTS,KCT+1)      ! IN POTENTIAL TEMPERATURE OF             DDCALL2A.80     
                                 !    PARCEL (K)                           DDCALL2A.81     
C                                                                          DDCALL2A.82     
      REAL QP(NPNTS,KCT+1)       ! IN MODEL MIXING RATIO (KG/KG)           DDCALL2A.83     
C                                                                          DDCALL2A.84     
      REAL THE(NP_FIELD,KCT+1)   ! IN MODEL ENVIRONMENTAL POTENTIAL        DDCALL2A.85     
                                 !    TEMPERATURE (K)                      DDCALL2A.86     
C                                                                          DDCALL2A.87     
      REAL QE(NP_FIELD,KCT+1)    ! IN ENVIRONMENT MIXING RATIO             DDCALL2A.88     
                                 !    (KG/KG)                              DDCALL2A.89     
C                                                                          DDCALL2A.90     
      REAL FLX(NPNTS,KCT+1)      ! IN CONVECTIVE MASSFLUX (PA/S)           DDCALL2A.91     
C                                                                          DDCALL2A.92     
      REAL PSTAR(NP_FIELD)       ! IN SURFACE PRESSURE (PA)                DDCALL2A.93     
C                                                                          DDCALL2A.94     
      REAL PRECIP(NPNTS,KCT+1)   ! IN PRECIPITATION ADDED WHEN             DDCALL2A.95     
                                 !    DESCENDING FROM LAYER K TO K-1       DDCALL2A.96     
                                 !    (KG/M**2/S)                          DDCALL2A.97     
C                                                                          DDCALL2A.98     
      INTEGER ICCB(NP_FIELD)     ! IN CLOUD BASE LEVEL                     DDCALL2A.99     
C                                                                          DDCALL2A.100    
      INTEGER ICCT(NP_FIELD)     ! IN CLOUD TOP LEVEL                      DDCALL2A.101    
C                                                                          DDCALL2A.102    
      REAL CCA(NP_FIELD)         ! IN CONVECTIVE CLOUD AMOUNT              DDCALL2A.103    
C                                                                          DDCALL2A.104    
      LOGICAL BWATER(NPNTS,2:KCT+1)!IN  MASK FOR THOSE POINTS AT WHICH     DDCALL2A.105    
                                   !     CONDENSATE IS WATER IN LAYER K    DDCALL2A.106    
C                                                                          DDCALL2A.107    
      LOGICAL BTERM(NPNTS)       ! IN MASK FOR THOSE POINTS WHERE          DDCALL2A.108    
                                 !    UPDRAUGHT IS TERMINATING             DDCALL2A.109    
C                                                                          DDCALL2A.110    
      LOGICAL BGMK(NPNTS)        ! IN MASK FOR POINTS WHERE PARCEL IN      DDCALL2A.111    
                                 !    LAYER K IS SATURATED                 DDCALL2A.112    
C                                                                          DDCALL2A.113    
      REAL TIMESTEP                                                        DDCALL2A.114    
      REAL recip_PSTAR(NP_FIELD)! Reciprocal of pstar array                GSS1F403.254    
C                                                                          DDCALL2A.115    
C-----------------------------------------------------------------------   DDCALL2A.116    
C VARIABLES WHICH ARE INPUT AND OUTPUT                                     DDCALL2A.117    
C-----------------------------------------------------------------------   DDCALL2A.118    
C                                                                          DDCALL2A.119    
      REAL DTHBYDT(NP_FIELD,KCT+1) ! INOUT                                 DDCALL2A.120    
                                 ! IN  INCREMENT TO MODEL POTENTIAL        DDCALL2A.121    
                                 !     TEMPERATURE (K/S)                   DDCALL2A.122    
                                 ! OUT UPDATED INCREMENT TO MODEL          DDCALL2A.123    
                                 !     POTENTIAL TEMPERATURE (K/S)         DDCALL2A.124    
C                                                                          DDCALL2A.125    
      REAL DQBYDT(NP_FIELD,KCT+1) ! INOUT                                  DDCALL2A.126    
                                 ! IN  INCREMENT TO MODEL MIXING           DDCALL2A.127    
                                 !     RATIO (KG/KG/S)                     DDCALL2A.128    
                                 ! OUT UPDATED INCREMENT TO MODEL          DDCALL2A.129    
                                 !     MIXING RATIO (KG/KG/S)              DDCALL2A.130    
C                                                                          DDCALL2A.131    
C-----------------------------------------------------------------------   DDCALL2A.132    
C VARIABLES WHICH ARE OUTPUT                                               DDCALL2A.133    
C-----------------------------------------------------------------------   DDCALL2A.134    
C                                                                          DDCALL2A.135    
      REAL RAIN(NP_FIELD)   ! OUT RAINFALL AT SURFACE (KG/M**2/S)          DDCALL2A.136    
C                                                                          DDCALL2A.137    
      REAL SNOW(NP_FIELD)   ! OUT SNOWFALL AT SURFACE (KG/M**2/S)          DDCALL2A.138    
C                                                                          DDCALL2A.139    
C-----------------------------------------------------------------------   DDCALL2A.140    
C VARIABLES WHICH ARE DEFINED LOCALLY                                      DDCALL2A.141    
C-----------------------------------------------------------------------   DDCALL2A.142    
C                                                                          DDCALL2A.143    
C                                                                          DDCALL2A.307    
      REAL EXNER_KM12_C(NTERM)   ! COMPRESSED EXNER FUNCTION AT            DDCALL2A.308    
                                 ! LAYER K                                 DDCALL2A.309    
C                                                                          DDCALL2A.310    
      REAL EXNER_KP12_C(NTERM)   ! COMPRESSED EXNER FUNCTION AT            DDCALL2A.311    
                                 ! LAYER K+1                               DDCALL2A.312    
C                                                                          DDCALL2A.313    
      REAL EXNER_KM32_C(NTERM)   ! COMPRESSED EXNER FUNCTION AT            DDCALL2A.314    
                                 ! LAYER K-1                               DDCALL2A.315    
C                                                                          DDCALL2A.316    
      REAL PK(NTERM)             ! PRESSURE OF LAYER K (PA)                DDCALL2A.317    
C                                                                          DDCALL2A.318    
      REAL P_KM1(NTERM)          ! PRESSURE OF LAYER K-1 (PA)              DDCALL2A.319    
C                                                                          DDCALL2A.320    
      REAL EXK(NTERM)            ! EXNER RATIO FOR LAYER K                 DDCALL2A.321    
C                                                                          DDCALL2A.322    
      REAL EXKM1(NTERM)          ! EXNER RATIO FOR LAYER K-1               DDCALL2A.323    
C                                                                          DDCALL2A.324    
      REAL DELPK(NTERM)          ! PRESSURE DIFFERENCE ACROSS LAYER K      DDCALL2A.325    
                                 ! (PA)                                    DDCALL2A.326    
C                                                                          DDCALL2A.327    
      REAL DELPKM1(NTERM)        ! PRESSURE DIFFERENCE ACROSS              DDCALL2A.328    
                                 ! LAYER K-1 (PA)                          DDCALL2A.329    
C                                                                          DDCALL2A.330    
      REAL AMDETK(NTERM)         ! MIXING DETRAINMENT AT LEVEL K           DDCALL2A.331    
                                 ! MULTIPLIED BY APPROPRIATE LAYER         DDCALL2A.332    
                                 ! THICKNESS                               DDCALL2A.333    
C                                                                          DDCALL2A.334    
      REAL EKM12(NTERM)          ! EXNER RATIO AT LAYER K-1/2              DDCALL2A.335    
C                                                                          DDCALL2A.336    
      REAL EKM14(NTERM)          ! EXNER RATIO AT LAYER K-1/4              DDCALL2A.337    
C                                                                          DDCALL2A.338    
      REAL EKM34(NTERM)          ! EXNER RATIO AT LAYER K-3/4              DDCALL2A.339    
C                                                                          DDCALL2A.340    
      LOGICAL BWATER_K_C(NTERM)  ! COMPRESSED MASK FOR THOSE               DDCALL2A.341    
                                 ! POINTS AT WHICH CONDENSATE              DDCALL2A.342    
                                 ! IS WATER IN LAYER K                     DDCALL2A.343    
C                                                                          DDCALL2A.344    
      REAL PRECIP_K_C(NTERM)     ! COMPRESSED PRECIPITATION                DDCALL2A.345    
                                 ! ADDED WHEN DESCENDING FROM              DDCALL2A.346    
                                 ! LAYER K TO K-1 (KG/M**2/S)              DDCALL2A.347    
C                                                                          DDCALL2A.348    
      REAL Q_K_C(NTERM)          ! COMPRESSED PARCEL MIXING RATIO          DDCALL2A.349    
                                 ! OF LAYER K (KG/KG)                      DDCALL2A.350    
C                                                                          DDCALL2A.351    
      REAL TH_K_C(NTERM)         ! COMPRESSED PARCEL POTENTIAL             DDCALL2A.352    
                                 ! TEMPERATURE OF LAYER K (K)              DDCALL2A.353    
C                                                                          DDCALL2A.354    
      REAL PSTAR_C(NTERM)        ! COMPRESSED SURFACE PRESSURE (PA)        DDCALL2A.355    
C                                                                          DDCALL2A.356    
      REAL recip_PSTAR_C(NTERM)  ! Reciprocal of comp. pstar array         GSS1F403.259    
C                                                                          GSS1F403.263    
      INTEGER ICCB_C(NTERM)      ! COMPRESSED CLOUD BASE LEVEL             DDCALL2A.357    
C                                                                          DDCALL2A.358    
      REAL DTHBYDT_K_C(NTERM)    ! COMPRESSED INCREMENT TO MODEL           DDCALL2A.359    
                                 ! POTENTIAL TEMPERATURE OF LAYER K        DDCALL2A.360    
                                 ! (K/S)                                   DDCALL2A.361    
C                                                                          DDCALL2A.362    
      REAL DTHBYDT_KM1_C(NTERM)  ! COMPRESSED INCREMENT TO MODEL           DDCALL2A.363    
                                 ! POTENTIAL TEMPERATURE OF LAYER K-1      DDCALL2A.364    
                                 ! (K/S)                                   DDCALL2A.365    
C                                                                          DDCALL2A.366    
      REAL DQBYDT_K_C(NTERM)     ! COMPRESSED INCREMENT TO MODEL           DDCALL2A.367    
                                 ! MIXING RATIO OF LAYER K (KG/KG/S)       DDCALL2A.368    
C                                                                          DDCALL2A.369    
      REAL DQBYDT_KM1_C(NTERM)   ! COMPRESSED INCREMENT TO MODEL           DDCALL2A.370    
                                 ! MIXING RATIO OF LAYER K-1 (KG/KG/S)     DDCALL2A.371    
C                                                                          DDCALL2A.372    
      REAL DELTD(NTERM)          ! COOLING NECESSARY TO                    DDCALL2A.373    
                                 ! ACHIEVE SATURATION (K)                  DDCALL2A.374    
C                                                                          DDCALL2A.375    
      REAL DELQD(NTERM)          ! MOISTENING NECESSARY TO                 DDCALL2A.376    
                                 ! ACHIEVE SATURATION (KG/KG)              DDCALL2A.377    
C                                                                          DDCALL2A.378    
      REAL QDD_K(NTERM)          ! MIXING RATIO OF DOWNDRAUGHT IN          DDCALL2A.379    
                                 ! LAYER K (KG/KG)                         DDCALL2A.380    
C                                                                          DDCALL2A.381    
      REAL THDD_K(NTERM)         ! MODEL POTENTIAL TEMPERATURE             DDCALL2A.382    
                                 ! OF DOWNDRAUGHT IN LAYER K (K)           DDCALL2A.383    
C                                                                          DDCALL2A.384    
      REAL FLX_DD_K(NPNTS)       ! DOWNDRAUGHT INITIAL MASS FLUX           DDCALL2A.385    
                                 ! (PA/S)                                  DDCALL2A.386    
C                                                                          DDCALL2A.387    
      REAL FLX_DD_K_C(NTERM)     ! COMPRESSED DOWNDRAUGHT INITIAL          DDCALL2A.388    
                                 ! MASS FLUX (PA/S)                        DDCALL2A.389    
C                                                                          DDCALL2A.390    
      LOGICAL BDDI(NPNTS)        ! MASK FOR POINTS WHERE DOWNDRAUGHT       DDCALL2A.391    
                                 ! MIGHT OCCUR                             DDCALL2A.392    
C                                                                          DDCALL2A.393    
      LOGICAL BDDI_C(NTERM)      ! COMPRESSED MASK FOR POINTS WHERE        DDCALL2A.394    
                                 ! DOWNDRAUGHT MAY INITIATE                DDCALL2A.395    
C                                                                          DDCALL2A.396    
      INTEGER INDEX1(NTERM)      ! INDEX FOR COMPRESS AND EXPAND           DDCALL2A.397    
C                                                                          DDCALL2A.398    
      REAL QE_K_C(NTERM)         ! COMPRESSED ENVIRONMENT MIXING           DDCALL2A.399    
                                 ! RATIO OF LAYER K (KG/KG)                DDCALL2A.400    
C                                                                          DDCALL2A.401    
      REAL QE_KM1_C(NTERM)       ! COMPRESSED ENVIRONMENT MIXING           DDCALL2A.402    
                                 ! RATIO OF LAYER K-1 (KG/KG)              DDCALL2A.403    
C                                                                          DDCALL2A.404    
      REAL THE_K_C(NTERM)        ! COMPRESSED POTENTIAL TEMPERATURE        DDCALL2A.405    
                                 ! OF ENVIRONMENT IN LAYER K (K)           DDCALL2A.406    
C                                                                          DDCALL2A.407    
      REAL THE_KM1_C(NTERM)      ! COMPRESSED POTENTIAL TEMPERATURE        DDCALL2A.408    
                                 ! OF ENVIRONMENT IN LAYER K-1 (K)         DDCALL2A.409    
C                                                                          DDCALL2A.410    
      REAL RAIN_C(NTERM)         ! COMPRESSED SURFACE RAINFALL             DDCALL2A.411    
                                 ! (KG/M**2/S)                             DDCALL2A.412    
C                                                                          DDCALL2A.413    
      REAL SNOW_C(NTERM)         ! COMPRESSED SURFACE SNOWFALL             DDCALL2A.414    
                                 ! (KG/M**2/S)                             DDCALL2A.415    
C                                                                          DDCALL2A.416    
      REAL FLX_UD_K_C(NTERM)     ! UPDRAUGHT MASS FLUX AT LAYER K          DDCALL2A.417    
C                                                                          DDCALL2A.418    
      REAL RAIN_ENV(NTERM)       ! AMOUNT OF RAINFALL PASSING THROUGH      DDCALL2A.419    
                                 ! ENVIRONMENT (KG/M**2/S)                 DDCALL2A.420    
C                                                                          DDCALL2A.421    
      REAL SNOW_ENV(NTERM)       ! AMOUNT OF SNOWFALL PASSING THROUGH      DDCALL2A.422    
                                 ! ENVIRONMENT (KG/M**2/S)                 DDCALL2A.423    
C                                                                          DDCALL2A.424    
      REAL RAIN_DD(NTERM)        ! AMOUNT OF RAINFALL PASSING THROUGH      DDCALL2A.425    
                                 ! DOWNDRAUGHT (KG/M**2/S)                 DDCALL2A.426    
C                                                                          DDCALL2A.427    
      REAL SNOW_DD(NTERM)        ! AMOUNT OF SNOWFALL PASSING THROUGH      DDCALL2A.428    
                                 ! DOWNDRAUGHT (KG/M**2/S)                 DDCALL2A.429    
C                                                                          DDCALL2A.430    
      LOGICAL BDD_START(NPNTS)   ! MASK FOR THOSE POINT WHERE              DDCALL2A.431    
                                 ! DOWNDRAUGHT IS ABLE TO START            DDCALL2A.432    
                                 ! FROM LEVEL K                            DDCALL2A.433    
C                                                                          DDCALL2A.434    
      LOGICAL BDD_START_C(NTERM) ! COMPRESSED MASK FOR THOSE POINT         DDCALL2A.435    
                                 ! WHERE DOWNDRAUGHT IS ABLE TO START      DDCALL2A.436    
                                 ! FROM LEVEL K                            DDCALL2A.437    
C                                                                          DDCALL2A.438    
      LOGICAL BDDWT_K(NPNTS)     ! MASK FOR POINTS IN DOWNDRAUGHT          DDCALL2A.439    
                                 ! WHERE PPT IN LAYER K IS LIQUID          DDCALL2A.440    
C                                                                          DDCALL2A.441    
      LOGICAL BDDWT_K_C(NTERM)   ! COMPRESSED MASK FOR POINTS IN DD        DDCALL2A.442    
                                 ! WHERE PPT IN LAYER K IS LIQUID          DDCALL2A.443    
C                                                                          DDCALL2A.444    
      LOGICAL BDDWT_KM1(NPNTS)   ! MASK FOR POINTS IN DOWNDRAUGHT          DDCALL2A.445    
                                 ! WHERE PPT IN LAYER K-1 IS LIQUID        DDCALL2A.446    
C                                                                          DDCALL2A.447    
      LOGICAL BDDWT_KM1_C(NTERM) ! COMPRESSED MASK FOR POINTS IN DD        DDCALL2A.448    
                                 ! WHERE PPT IN LAYER K-1 IS LIQUID        DDCALL2A.449    
C                                                                          DDCALL2A.450    
      LOGICAL BDD_ON(NPNTS)      ! MASK FOR THOSE POINTS WHERE DD          DDCALL2A.451    
                                 ! CONTINUES FROM LAYER K+1                DDCALL2A.452    
C                                                                          DDCALL2A.453    
      LOGICAL BDD_ON_C(NTERM)    ! COMPRESSED MASK FOR POINTS WHERE DD     DDCALL2A.454    
                                 ! CONTINUES FROM LAYER K+1                DDCALL2A.455    
C                                                                          DDCALL2A.456    
      INTEGER KMIN(NTERM)        ! FREEZING LEVEL WHERE ENTRAINMENT        DDCALL2A.457    
                                 ! RATES ARE INCREASED                     DDCALL2A.458    
C                                                                          DDCALL2A.459    
      REAL FLX_STRT(NPNTS)       ! MASSFLUX AT LEVEL WHERE DOWNDRAUGHT     DDCALL2A.460    
                                 ! STARTS (PA/S)                           DDCALL2A.461    
C                                                                          DDCALL2A.462    
      REAL FLX_STRT_C(NTERM)     ! COMPRESSED VALUE OF FLX_STRT            DDCALL2A.463    
C                                                                          DDCALL2A.464    
      REAL CCA_C(NTERM)          ! COMPRESSED CONVECTIVE CLOUD AMOUNT      DDCALL2A.465    
C                                                                          DDCALL2A.466    
      INTEGER INDEX2(NTERM)      ! INDEX OF WHERE ACTICE DOWNDRAUGHT       DDCALL2A.467    
                                 ! OCCURS                                  DDCALL2A.468    
C                                                                          DDCALL2A.469    
      REAL LR_UD_REF(NTERM)      ! PRECIPITATION MIXING RATIO AT LOWEST    DG060893.17     
                                 ! PRECIPITATING LEVEL OF UD               DG060893.18     
C                                                                          DG060893.19     
C                                                                          DDCALL2A.471    
C-----------------------------------------------------------------------   DDCALL2A.472    
C-----------------------------------------------------------------------   DDCALL2A.473    
C EXTERNAL ROUTINES CALLED                                                 DDCALL2A.474    
C-----------------------------------------------------------------------   DDCALL2A.475    
C                                                                          DDCALL2A.476    
      EXTERNAL FLX_INIT, LAYER_DD, DD_INIT, DOWND                          DDCALL2A.477    
C                                                                          DDCALL2A.481    
C-----------------------------------------------------------------------   DDCALL2A.482    
C CALCULATE INDEX FOR COMPRESS ON BASIS OF BTERM                           DDCALL2A.483    
C-----------------------------------------------------------------------   DDCALL2A.484    
C                                                                          DDCALL2A.485    
      NDD = 0                                                              DDCALL2A.486    
      DO I=1,NPNTS                                                         DDCALL2A.490    
       IF (BTERM(I)) THEN                                                  DDCALL2A.491    
          NDD = NDD+1                                                      DDCALL2A.492    
          INDEX1(NDD) = I                                                  DDCALL2A.493    
       END IF                                                              DDCALL2A.494    
      END DO                                                               DDCALL2A.495    
C                                                                          DDCALL2A.497    
C----------------------------------------------------------------------    DDCALL2A.498    
C INITIALISE LOGICAL ARRAYS AS FALSE                                       DDCALL2A.499    
C-----------------------------------------------------------------------   DDCALL2A.500    
C                                                                          DDCALL2A.501    
      DO I=1,NPNTS                                                         DDCALL2A.502    
       BDDI(I) = .FALSE.                                                   DDCALL2A.503    
       BDD_START(I) = .FALSE.                                              DDCALL2A.504    
       BDDWT_K(I) = .FALSE.                                                DDCALL2A.505    
       BDDWT_KM1(I) = .FALSE.                                              DDCALL2A.506    
       BDD_ON(I) = .FALSE.                                                 DDCALL2A.507    
C                                                                          DDCALL2A.508    
C-----------------------------------------------------------------------   DDCALL2A.509    
C CALCULATE MASK FOR THOSE POINT WHERE DOWNDRAUGHT MIGHT OCCUR             DDCALL2A.510    
C AND LEVEL AT WHICH IT MIGHT INITIATE                                     DDCALL2A.511    
C-----------------------------------------------------------------------   DDCALL2A.512    
C                                                                          DDCALL2A.513    
        IF (KCT .GE. 4 .AND. BTERM(I) .AND. BGMK(I) .AND. (KCT-ICCB(I))    DDCALL2A.514    
     &       .GT. 2)  BDDI(I) = .TRUE.                                     DDCALL2A.515    
      END DO                                                               DDCALL2A.516    
C                                                                          DDCALL2A.517    
C----------------------------------------------------------------------    DDCALL2A.518    
C CALCULATE INITIAL DOWNDRAUGHT MASS FLUX                                  DDCALL2A.519    
C-----------------------------------------------------------------------   DDCALL2A.520    
C                                                                          DDCALL2A.521    
      IF (KCT .GE. 4)                                                      DDCALL2A.522    
     *  CALL FLX_INIT (NPNTS,KCT,ICCB,ICCT,FLX,FLX_DD_K,BDDI,FLX_STRT)     DDCALL2A.523    
C                                                                          DDCALL2A.524    
C-----------------------------------------------------------------------   DDCALL2A.525    
C COMPRESS ALL INPUT ARRAYS FOR THE DOWNDRAUGHT CALCULATION                DDCALL2A.526    
C-----------------------------------------------------------------------   DDCALL2A.527    
C                                                                          DDCALL2A.528    
      DO 10 K = KCT+1,2,-1                                                 DDCALL2A.529    
C                                                                          DDCALL2A.530    
         DO I=1,NDD                                                        DDCALL2A.531    
            TH_K_C(I) = THP(INDEX1(I),K)                                   DDCALL2A.532    
            Q_K_C(I) = QP(INDEX1(I),K)                                     DDCALL2A.533    
            THE_K_C(I) = THE(INDEX1(I),K)                                  DDCALL2A.534    
            THE_KM1_C(I) = THE(INDEX1(I),K-1)                              DDCALL2A.535    
            QE_K_C(I) = QE(INDEX1(I),K)                                    DDCALL2A.536    
            QE_KM1_C(I) = QE(INDEX1(I),K-1)                                DDCALL2A.537    
            DTHBYDT_K_C(I) = DTHBYDT(INDEX1(I),K)                          DDCALL2A.538    
            DTHBYDT_KM1_C(I) = DTHBYDT(INDEX1(I),K-1)                      DDCALL2A.539    
            DQBYDT_K_C(I) = DQBYDT(INDEX1(I),K)                            DDCALL2A.540    
            DQBYDT_KM1_C(I) = DQBYDT(INDEX1(I),K-1)                        DDCALL2A.541    
            EXNER_KM12_C(I) = EXNER(INDEX1(I),K)                           DDCALL2A.542    
            EXNER_KP12_C(I) = EXNER(INDEX1(I),K+1)                         DDCALL2A.543    
            EXNER_KM32_C(I) = EXNER(INDEX1(I),K-1)                         DDCALL2A.544    
            PRECIP_K_C(I) = PRECIP(INDEX1(I),K)                            DDCALL2A.545    
            FLX_UD_K_C(I) = FLX(INDEX1(I),K)                               DDCALL2A.546    
            BWATER_K_C(I) = BWATER(INDEX1(I),K)                            DDCALL2A.547    
         END DO                                                            DDCALL2A.548    
         IF (K.EQ.KCT+1) THEN                                              DDCALL2A.549    
          DO I=1,NDD                                                       DDCALL2A.550    
            FLX_DD_K_C(I) = FLX_DD_K(INDEX1(I))                            DDCALL2A.551    
            FLX_STRT_C(I) = FLX_STRT(INDEX1(I))                            DDCALL2A.552    
            PSTAR_C(I) = PSTAR(INDEX1(I))                                  DDCALL2A.553    
            recip_pstar_c(I)=recip_pstar(index1(I))                        GSS1F403.265    
            ICCB_C(I) = ICCB(INDEX1(I))                                    DDCALL2A.554    
            BDDI_C(I) = BDDI(INDEX1(I))                                    DDCALL2A.555    
            BDD_START_C(I) = BDD_START(INDEX1(I))                          DDCALL2A.556    
            RAIN_C(I) = RAIN(INDEX1(I))                                    DDCALL2A.557    
            SNOW_C(I) = SNOW(INDEX1(I))                                    DDCALL2A.558    
            BDDWT_K_C(I) = BDDWT_K(INDEX1(I))                              DDCALL2A.559    
            BDDWT_KM1_C(I) = BDDWT_KM1(INDEX1(I))                          DDCALL2A.560    
            BDD_ON_C(I) = BDD_ON(INDEX1(I))                                DDCALL2A.561    
            CCA_C(I) = CCA(INDEX1(I))                                      DDCALL2A.562    
            LR_UD_REF(I) = 0.0                                             DG060893.20     
          END DO                                                           DDCALL2A.563    
         END IF                                                            DDCALL2A.564    
C                                                                          DDCALL2A.565    
C----------------------------------------------------------------------    DG060893.21     
C IF BELOW CONVECTIVE CLOUD BASE DOWNDRAUGHT NOT ALLOWED TO FORM           DG060893.22     
C----------------------------------------------------------------------    DG060893.23     
C                                                                          DG060893.24     
      DO I=1,NDD                                                           DG060893.25     
       IF (K.LT.ICCB_C(I)) BDDI_C(I)=.FALSE.                               DG060893.26     
      END DO                                                               DG060893.27     
C                                                                          DG060893.28     
C-----------------------------------------------------------------------   DDCALL2A.566    
C RESET EN/DETRAINMENT RATES FOR DOWNDRAUGHT                               DDCALL2A.567    
C-----------------------------------------------------------------------   DDCALL2A.568    
C                                                                          DDCALL2A.569    
      CALL LAYER_DD (NDD,K,KCT,THE_K_C,THE_KM1_C,FLX_STRT_C,AK,BK,         DDCALL2A.570    
     *               AKM12,BKM12,DELAK,DELBK,EXNER_KM12_C,EXNER_KP12_C,    DDCALL2A.571    
     *               EXNER_KM32_C,PSTAR_C,PK,P_KM1,DELPK,DELPKM1,EXK,      DDCALL2A.572    
     *               EXKM1,AMDETK,EKM14,EKM34,KMIN,BDDI_C,                 GSS1F403.267    
     *               recip_pstar_c)                                        GSS1F403.268    
C                                                                          DDCALL2A.574    
C-----------------------------------------------------------------------   DDCALL2A.575    
C INITIALISE DOWNDRAUGHT                                                   DDCALL2A.576    
C DOWNDRAUGHT NOT ALLOWED TO FORM FROM CLOUD TOP LAYER (KCT+1)             DG060893.29     
C OR FROM BELOW CLOUD BASE                                                 DG060893.30     
C-----------------------------------------------------------------------   DDCALL2A.577    
C                                                                          DDCALL2A.578    
      IF (KCT .GE. 4 .AND. K.LT.KCT+1)                                     DG060893.31     
     & CALL DD_INIT(NDD,TH_K_C,Q_K_C,THE_K_C,QE_K_C,PK,EXK,THDD_K,         DDCALL2A.580    
     &              QDD_K,DELTD,DELQD,BDD_START_C,K,BDDI_C,BDD_ON_C)       ARN2F304.348    
C                                                                          DDCALL2A.582    
C-----------------------------------------------------------------------   DDCALL2A.583    
C UPDATE MASK FOR WHERE DOWNDRAUGHT OCCURS                                 DDCALL2A.584    
C-----------------------------------------------------------------------   DDCALL2A.585    
C                                                                          DDCALL2A.586    
      DO I=1,NDD                                                           DDCALL2A.587    
        IF (BDD_START_C(I).OR.BDD_ON_C(I)) BDD_ON_C(I)=.TRUE.              DDCALL2A.588    
      END DO                                                               DDCALL2A.589    
C                                                                          DDCALL2A.590    
      NDDON_TMP = 0                                                        DDCALL2A.591    
      DO I=1,NDD                                                           DDCALL2A.595    
        IF (BDD_ON_C(I)) THEN                                              DDCALL2A.596    
          NDDON_TMP = NDDON_TMP+1                                          DDCALL2A.597    
        END IF                                                             DDCALL2A.598    
      END DO                                                               DDCALL2A.599    
C                                                                          DDCALL2A.601    
C-----------------------------------------------------------------------   DDCALL2A.602    
C CALL DOWNDRAUGHT ROUTINE                                                 DDCALL2A.603    
C-----------------------------------------------------------------------   DDCALL2A.604    
C                                                                          DDCALL2A.605    
                                                                           DDCALL2A.606    
      CALL DOWND(NDD,K,KCT,THDD_K,QDD_K,THE_K_C,THE_KM1_C,QE_K_C,          DDCALL2A.607    
     &           QE_KM1_C,DTHBYDT_K_C,DTHBYDT_KM1_C,DQBYDT_K_C,            DDCALL2A.608    
     &           DQBYDT_KM1_C,FLX_DD_K_C,P_KM1,DELPK,DELPKM1,EXK,          DDCALL2A.609    
     &           EXKM1,DELTD,DELQD,AMDETK,EKM14,EKM34,PRECIP_K_C,          DDCALL2A.610    
     &           RAIN_C,SNOW_C,ICCB_C,BWATER_K_C,BDD_START_C,              DDCALL2A.611    
     &           BDDWT_K_C,BDDWT_KM1_C,BDD_ON_C,RAIN_ENV,SNOW_ENV,         DDCALL2A.612    
     &           RAIN_DD,SNOW_DD,FLX_UD_K_C,TIMESTEP,CCA_C,NDDON_TMP,      DG060893.34     
     &           LR_UD_REF)                                                DG060893.35     
C                                                                          DDCALL2A.614    
C-----------------------------------------------------------------------   DDCALL2A.615    
C DECOMPRESS/EXPAND THOSE VARIABLES WHICH ARE TO BE OUTPUT                 DDCALL2A.616    
C-----------------------------------------------------------------------   DDCALL2A.617    
C                                                                          DDCALL2A.618    
CDIR$ IVDEP                                                                DDCALL2A.619    
! Fujitsu vectorization directive                                          GRB0F405.217    
!OCL NOVREC                                                                GRB0F405.218    
        DO I=1,NDD                                                         DDCALL2A.620    
         DTHBYDT(INDEX1(I),K) = DTHBYDT_K_C(I)                             DDCALL2A.621    
         DTHBYDT(INDEX1(I),K-1) = DTHBYDT_KM1_C(I)                         DDCALL2A.622    
         DQBYDT(INDEX1(I),K) = DQBYDT_K_C(I)                               DDCALL2A.623    
         DQBYDT(INDEX1(I),K-1) = DQBYDT_KM1_C(I)                           DDCALL2A.624    
         IF (K.EQ.2) THEN                                                  DDCALL2A.625    
          RAIN(INDEX1(I)) = RAIN_C(I)                                      DDCALL2A.626    
          SNOW(INDEX1(I)) = SNOW_C(I)                                      DDCALL2A.627    
         END IF                                                            DDCALL2A.628    
         PRECIP(INDEX1(I),K) = PRECIP_K_C(I)                               DDCALL2A.629    
        END DO                                                             DDCALL2A.630    
C                                                                          DDCALL2A.631    
C----------------------------------------------------------------------    DDCALL2A.632    
C   END OF MAIN K LOOP                                                     DDCALL2A.633    
C----------------------------------------------------------------------    DDCALL2A.634    
C                                                                          DDCALL2A.635    
 10   CONTINUE                                                             DDCALL2A.636    
C                                                                          DDCALL2A.637    
      RETURN                                                               DDCALL2A.638    
      END                                                                  DDCALL2A.639    
C                                                                          DDCALL2A.640    
*ENDIF                                                                     DDCALL2A.641