*IF DEF,A05_3B                                                             AJX1F405.167    
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.14623  
C                                                                          GTS2F400.14624  
C Use, duplication or disclosure of this code is subject to the            GTS2F400.14625  
C restrictions as set forth in the contract.                               GTS2F400.14626  
C                                                                          GTS2F400.14627  
C                Meteorological Office                                     GTS2F400.14628  
C                London Road                                               GTS2F400.14629  
C                BRACKNELL                                                 GTS2F400.14630  
C                Berkshire UK                                              GTS2F400.14631  
C                RG12 2SZ                                                  GTS2F400.14632  
C                                                                          GTS2F400.14633  
C If no contract has been raised with this copy of the code, the use,      GTS2F400.14634  
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.14635  
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.14636  
C Modelling at the above address.                                          GTS2F400.14637  
C ******************************COPYRIGHT******************************    GTS2F400.14638  
C                                                                          GTS2F400.14639  
CLL  SUBROUTINE DD_CALL------------------------------------------------    DDCALL3A.3      
CLL                                                                        DDCALL3A.4      
CLL  PURPOSE : CALCULATE INITIAL DOWNDRAUGHT MASSFLUX                      DDCALL3A.5      
CLL                                                                        DDCALL3A.6      
CLL            RESET EN/DETRAINMENT RATES FOR DOWNDRAUGHT                  DDCALL3A.7      
CLL                                                                        DDCALL3A.8      
CLL            COMPRESS/EXPAND VARIABLES                                   DDCALL3A.9      
CLL                                                                        DDCALL3A.10     
CLL            INITIALISE DOWNDRAUGHT                                      DDCALL3A.11     
CLL                                                                        DDCALL3A.12     
CLL            CALL DOWNDRAUGHT ROUTINE                                    DDCALL3A.13     
CLL                                                                        DDCALL3A.14     
CLL  SUITABLE FOR SINGLE COLUMN MODEL USE                                  DDCALL3A.15     
CLL                                                                        DDCALL3A.16     
CLL                                                                        DDCALL3A.17     
CLL  MODEL            MODIFICATION HISTORY FROM MODEL VERSION 3.0:         DDCALL3A.18     
CLL VERSION  DATE                                                          DDCALL3A.19     
CLL   4.0    5/05/95 : New deck added for version 3A of convection         DDCALL3A.20     
CLL                    scheme.                                             DDCALL3A.21     
CLL                    Includes tracer and momentum transports.            DDCALL3A.22     
CLL                    Removes model level dependency in initiation of     DDCALL3A.23     
CLL                    downdraught (pressure used instead).                DDCALL3A.24     
CLL                    Pete Inness.                                        DDCALL3A.25     
CLL   4.1    10/6/96 : Changed dimension of momentum arrays to be          API4F401.65     
CLL                    consistent with sizes required for splitting        API4F401.66     
CLL                    convection into segments.                           API4F401.67     
CLL                       Pete Inness.                                     API4F401.68     
CLL   4.2    Oct. 96  T3E migration: *DEF CRAY removed                     GSS2F402.275    
CLL                   (was used to switch on WHENIMD)                      GSS2F402.276    
CLL                                    S.J.Swarbrick                       GSS2F402.277    
CLL   4.3    Feb. 97  T3E migration: pass recip_pstar to LAYER_DD:         GSS1F403.291    
CLL                    recip_pstar is compressed in the same way as        GSS1F403.292    
CLL                    pstar before being passed to LAYER_DD.              GSS1F403.293    
CLL                                    S.J.Swarbrick                       GSS1F403.294    
CLL  4.4  26/11/97  Middle dimension should be NLEV not TRLEV for          ARB0F404.29     
CCL                 arrays TRAP and DTRABYDT.  RTHBarnes.                  ARB0F404.30     
CCL   4.5    22/7/98 : Kill the IBM specific lines (JCThil)                AJC1F405.24     
!LL  4.5   20/02/98  Remove redundant code. A. Dickinson                   ADR1F405.48     
CLL                                                                        DDCALL3A.26     
CLL                                                                        DDCALL3A.27     
CLL  PROGRAMMING STANDARDS : UNIFIED MODEL DOCUMENTATION PAPER NO. 3       DDCALL3A.28     
CLL  VERSION NO. 4  DATED 5/2/92                                           DDCALL3A.29     
CLL                                                                        DDCALL3A.30     
CLL  SYSTEM TASK : P27                                                     DDCALL3A.31     
CLL                                                                        DDCALL3A.32     
CLL  DOCUMENTATION : UNIFIED MODEL DOCUMENTATION PAPER P27                 DDCALL3A.33     
CLL                                                                        DDCALL3A.34     
CLLEND-----------------------------------------------------------------    DDCALL3A.35     
C                                                                          DDCALL3A.36     
C*L  ARGUMENTS---------------------------------------------------------    DDCALL3A.37     
C                                                                          DDCALL3A.38     

      SUBROUTINE DD_CALL (NP_FIELD,NPNTS,KCT,THP,QP,THE,QE,DTHBYDT,        DDCALL3A.39     
     *                    DQBYDT,FLX,PSTAR,AK,BK,AKM12,BKM12,DELAK,        DDCALL3A.40     
     *                    DELBK,EXNER,PRECIP,RAIN,SNOW,ICCB,ICCT,          DDCALL3A.41     
     *                    BWATER,BTERM,BGMK,TIMESTEP,CCA,NTERM,L_MOM,      DDCALL3A.42     
     *                    UP,VP,UE,VE,DUBYDT,DVBYDT,EFLUX_U_DD,            DDCALL3A.43     
     *                    EFLUX_V_DD,L_TRACER,NTRA,                        DDCALL3A.44     
     &                    TRAP,TRAE,DTRABYDT,NLEV,TRLEV,recip_pstar,       API2F405.289    
     &                    DD_FLUX,FLG_DWN_FLX,ENTRAIN_DWN,                 API2F405.290    
     &                    FLG_ENTR_DWN,DETRAIN_DWN,FLG_DETR_DWN)           API2F405.291    
C                                                                          DDCALL3A.46     
      IMPLICIT NONE                                                        DDCALL3A.47     
C                                                                          DDCALL3A.48     
C-----------------------------------------------------------------------   DDCALL3A.49     
C VECTOR LENGTHS AND LOOP COUNTERS                                         DDCALL3A.50     
C-----------------------------------------------------------------------   DDCALL3A.51     
C                                                                          DDCALL3A.52     
C                                                                          DDCALL3A.56     
      INTEGER I,KTRA             ! LOOP COUNTERS                           DDCALL3A.57     
C                                                                          DDCALL3A.58     
      INTEGER K                  ! PRESENT MODEL LAYER                     DDCALL3A.59     
C                                                                          DDCALL3A.60     
      INTEGER NPNTS              ! IN NUMBER OF POINTS                     DDCALL3A.61     
C                                                                          DDCALL3A.62     
      INTEGER NDD,NTERM          ! COMPRESSED VECTOR LENGTH FOR            DDCALL3A.63     
                                 ! DOWNDRAUGHT CALCULATION                 DDCALL3A.64     
C                                                                          DDCALL3A.65     
      INTEGER NP_FIELD           ! IN FULL VECTOR LENGTH                   DDCALL3A.66     
C                                                                          DDCALL3A.67     
      INTEGER NDDON_TMP          ! NUMBER OF POINTS WITH ACTIVE            DDCALL3A.68     
                                 ! DOWNDRAUGHT                             DDCALL3A.69     
C                                                                          DDCALL3A.70     
      INTEGER NTRA               ! NUMBER OF TRACER VARIABLES              DDCALL3A.71     
C                                                                          DDCALL3A.72     
      INTEGER NLEV               ! NUMBER OF MODEL LEVELS                  DDCALL3A.73     
C                                                                          DDCALL3A.74     
      INTEGER TRLEV              ! NUMBER OF TRACER LEVELS                 DDCALL3A.75     
C                                                                          DDCALL3A.76     
C                                                                          DDCALL3A.77     
C-----------------------------------------------------------------------   DDCALL3A.78     
C VARIABLES WHICH ARE INPUT                                                DDCALL3A.79     
C-----------------------------------------------------------------------   DDCALL3A.80     
C                                                                          DDCALL3A.81     
      INTEGER KCT                ! IN CONVECTIVE CLOUD TOP LAYER           DDCALL3A.82     
C                                                                          DDCALL3A.83     
      REAL AK(KCT+1)             ! IN ) HYBRID CO-ORDINATE VALUES AT       DDCALL3A.84     
      REAL BK(KCT+1)             ! IN ) MID-LAYER OF LAYER K               DDCALL3A.85     
C                                                                          DDCALL3A.86     
      REAL AKM12(KCT+2)          ! IN ) HYBRID CO-ORDINATE VALUES AT       DDCALL3A.87     
      REAL BKM12(KCT+2)          ! IN ) LOWER LAYER BOUNDARY OF LAYER K    DDCALL3A.88     
C                                                                          DDCALL3A.89     
      REAL DELAK(KCT+1)          ! IN ) HYBRID CO-ORDINATE VALUES FOR      DDCALL3A.90     
      REAL DELBK(KCT+1)          ! IN ) THICKNESS OF LAYER K               DDCALL3A.91     
C                                                                          DDCALL3A.92     
      REAL EXNER(NP_FIELD,KCT+2) ! IN EXNER FUNCTION AT LAYER BOUNDARIES   DDCALL3A.93     
                                 !    STARTING AT LEVEL K-1/2              DDCALL3A.94     
C                                                                          DDCALL3A.95     
      REAL THP(NPNTS,KCT+1)      ! IN POTENTIAL TEMPERATURE OF             DDCALL3A.96     
                                 !    PARCEL (K)                           DDCALL3A.97     
C                                                                          DDCALL3A.98     
      REAL QP(NPNTS,KCT+1)       ! IN MODEL MIXING RATIO (KG/KG)           DDCALL3A.99     
C                                                                          DDCALL3A.100    
      REAL UP(NPNTS,KCT+1)       ! IN PARCEL U (M/S)                       DDCALL3A.101    
C                                                                          DDCALL3A.102    
      REAL VP(NPNTS,KCT+1)       ! IN PARCEL V (M/S)                       DDCALL3A.103    
C                                                                          DDCALL3A.104    
      REAL TRAP(NPNTS,NLEV,      ! IN PARCEL TRACER (KG/KG)                ARB0F404.31     
     *          NTRA)                                                      DDCALL3A.106    
C                                                                          DDCALL3A.107    
      REAL THE(NP_FIELD,KCT+1)   ! IN MODEL ENVIRONMENTAL POTENTIAL        DDCALL3A.108    
                                 !    TEMPERATURE (K)                      DDCALL3A.109    
C                                                                          DDCALL3A.110    
      REAL QE(NP_FIELD,KCT+1)    ! IN ENVIRONMENT MIXING RATIO             DDCALL3A.111    
                                 !    (KG/KG)                              DDCALL3A.112    
C                                                                          DDCALL3A.113    
      REAL UE(NP_FIELD,KCT+1)    ! IN ENVIRONMENT U (M/S)                  API4F401.69     
C                                                                          DDCALL3A.115    
      REAL VE(NP_FIELD,KCT+1)    ! IN ENVIRONMENT V (M/S)                  API4F401.70     
C                                                                          DDCALL3A.117    
      REAL TRAE(NP_FIELD,TRLEV,  ! IN ENVIRONMENT TRACER (KG/KG)           DDCALL3A.118    
     *          NTRA)                                                      DDCALL3A.119    
C                                                                          DDCALL3A.120    
      REAL FLX(NPNTS,KCT+1)      ! IN CONVECTIVE MASSFLUX (PA/S)           DDCALL3A.121    
C                                                                          DDCALL3A.122    
      REAL PSTAR(NP_FIELD)       ! IN SURFACE PRESSURE (PA)                DDCALL3A.123    
C                                                                          DDCALL3A.124    
      REAL PRECIP(NPNTS,KCT+1)   ! IN PRECIPITATION ADDED WHEN             DDCALL3A.125    
                                 !    DESCENDING FROM LAYER K TO K-1       DDCALL3A.126    
                                 !    (KG/M**2/S)                          DDCALL3A.127    
C                                                                          DDCALL3A.128    
      INTEGER ICCB(NP_FIELD)     ! IN CLOUD BASE LEVEL                     DDCALL3A.129    
C                                                                          DDCALL3A.130    
      INTEGER ICCT(NP_FIELD)     ! IN CLOUD TOP LEVEL                      DDCALL3A.131    
C                                                                          DDCALL3A.132    
      REAL CCA(NP_FIELD)         ! IN CONVECTIVE CLOUD AMOUNT              DDCALL3A.133    
C                                                                          DDCALL3A.134    
      LOGICAL BWATER(NPNTS,2:KCT+1)!IN  MASK FOR THOSE POINTS AT WHICH     DDCALL3A.135    
                                   !     CONDENSATE IS WATER IN LAYER K    DDCALL3A.136    
C                                                                          DDCALL3A.137    
      LOGICAL BTERM(NPNTS)       ! IN MASK FOR THOSE POINTS WHERE          DDCALL3A.138    
                                 !    UPDRAUGHT IS TERMINATING             DDCALL3A.139    
C                                                                          DDCALL3A.140    
      LOGICAL BGMK(NPNTS)        ! IN MASK FOR POINTS WHERE PARCEL IN      DDCALL3A.141    
                                 !    LAYER K IS SATURATED                 DDCALL3A.142    
C                                                                          DDCALL3A.143    
      LOGICAL L_TRACER           ! IN SWITCH FOR INCLUSION OF TRACERS      DDCALL3A.144    
C                                                                          DDCALL3A.145    
      LOGICAL L_MOM              ! IN SWITCH FOR INCLUSION OF              DDCALL3A.146    
                                 !    MOMENTUM TRANSPORTS                  DDCALL3A.147    
      LOGICAL FLG_DWN_FLX        ! STASH FLAG FOR DOWNDRAUGHT MASS FLUX    API2F405.292    
C                                                                          DDCALL3A.148    
      LOGICAL FLG_ENTR_DWN       ! STASH FLAG FOR DOWNDRAUGHT ENTRAINMNT   API2F405.293    
C                                                                          API2F405.294    
      LOGICAL FLG_DETR_DWN       ! STASH FLAG FOR DOWNDRAIGHT DETRANMNT    API2F405.295    
C                                                                          API2F405.296    
      REAL TIMESTEP                                                        DDCALL3A.149    
      REAL recip_PSTAR(NP_FIELD)! Reciprocal of pstar array                GSS1F403.297    
C                                                                          DDCALL3A.150    
C-----------------------------------------------------------------------   DDCALL3A.151    
C VARIABLES WHICH ARE INPUT AND OUTPUT                                     DDCALL3A.152    
C-----------------------------------------------------------------------   DDCALL3A.153    
C                                                                          DDCALL3A.154    
      REAL DTHBYDT(NP_FIELD,KCT+1) ! INOUT                                 DDCALL3A.155    
                                   ! IN  INCREMENT TO MODEL POTENTIAL      DDCALL3A.156    
                                   !     TEMPERATURE (K/S)                 DDCALL3A.157    
                                   ! OUT UPDATED INCREMENT TO MODEL        DDCALL3A.158    
                                   !     POTENTIAL TEMPERATURE (K/S)       DDCALL3A.159    
C                                                                          DDCALL3A.160    
      REAL DQBYDT(NP_FIELD,KCT+1)  ! INOUT                                 DDCALL3A.161    
                                   ! IN  INCREMENT TO MODEL MIXING         DDCALL3A.162    
                                   !     RATIO (KG/KG/S)                   DDCALL3A.163    
                                   ! OUT UPDATED INCREMENT TO MODEL        DDCALL3A.164    
                                   !     MIXING RATIO (KG/KG/S)            DDCALL3A.165    
C                                                                          DDCALL3A.166    
      REAL DUBYDT(NP_FIELD,KCT+1)  ! INOUT                                 API4F401.71     
                                   ! IN  INCREMENT TO MODEL U (M/S)        DDCALL3A.168    
                                   ! OUT UPDATED INCREMENT TO MODEL U      DDCALL3A.169    
                                   !     (M/S)                             DDCALL3A.170    
C                                                                          DDCALL3A.171    
      REAL DVBYDT(NP_FIELD,KCT+1)  ! INOUT                                 API4F401.72     
                                   ! IN  INCREMENT TO MODEL V (M/S)        DDCALL3A.173    
                                   ! OUT UPDATED INCREMENT TO MODEL V      DDCALL3A.174    
                                   !     (M/S)                             DDCALL3A.175    
C                                                                          DDCALL3A.176    
      REAL DTRABYDT(NPNTS,NLEV,    ! INOUT                                 ARB0F404.32     
     *              NTRA)          ! IN  INCREMENT TO MODEL                DDCALL3A.178    
                                   !     TRACER (KG/KG/S)                  DDCALL3A.179    
                                   ! OUT UPDATED INCREMENT TO              DDCALL3A.180    
                                   !     MODEL TRACER (KG/KG/S)            DDCALL3A.181    
C                                                                          DDCALL3A.182    
      REAL EFLUX_U_DD(NPNTS),       ! INOUT                                DDCALL3A.183    
     *     EFLUX_V_DD(NPNTS)        ! IN  EDDY FLUX OF MOMENTUM DUE TO     DDCALL3A.184    
                                    !     DD AT TOP OF A LAYER             DDCALL3A.185    
                                    ! OUT EDDY FLUX OF MOMENTUM DUE TO     DDCALL3A.186    
                                    !     DD AT BOTTOM OF A LAYER          DDCALL3A.187    
C                                                                          DDCALL3A.188    
C                                                                          DDCALL3A.189    
C-----------------------------------------------------------------------   DDCALL3A.190    
C VARIABLES WHICH ARE OUTPUT                                               DDCALL3A.191    
C-----------------------------------------------------------------------   DDCALL3A.192    
C                                                                          DDCALL3A.193    
      REAL RAIN(NP_FIELD)   ! OUT RAINFALL AT SURFACE (KG/M**2/S)          DDCALL3A.194    
C                                                                          DDCALL3A.195    
      REAL SNOW(NP_FIELD)   ! OUT SNOWFALL AT SURFACE (KG/M**2/S)          DDCALL3A.196    
C                                                                          DDCALL3A.197    
      REAL DD_FLUX(NP_FIELD,KCT+1) ! OUT DOWN DRAUGHT MASS FLUX            API2F405.297    
C                                                                          API2F405.298    
      REAL ENTRAIN_DWN(NP_FIELD,KCT+1) ! OUT FRACTIONAL ENTRAINMENT        API2F405.299    
                                       ! RATE FOR DOWN DRAUGHT             API2F405.300    
C                                                                          API2F405.301    
      REAL DETRAIN_DWN(NP_FIELD,KCT+1) ! OUT FRACTIONAL DETRAINMENT        API2F405.302    
                                       ! RATE FOR DOWNDRAUGHT              API2F405.303    
C-----------------------------------------------------------------------   DDCALL3A.198    
C VARIABLES WHICH ARE DEFINED LOCALLY                                      DDCALL3A.199    
C-----------------------------------------------------------------------   DDCALL3A.200    
C                                                                          DDCALL3A.201    
      REAL EXNER_KM12_C(NTERM)   ! COMPRESSED EXNER FUNCTION AT            DDCALL3A.436    
                                 ! LAYER K                                 DDCALL3A.437    
C                                                                          DDCALL3A.438    
      REAL EXNER_KP12_C(NTERM)   ! COMPRESSED EXNER FUNCTION AT            DDCALL3A.439    
                                 ! LAYER K+1                               DDCALL3A.440    
C                                                                          DDCALL3A.441    
      REAL EXNER_KM32_C(NTERM)   ! COMPRESSED EXNER FUNCTION AT            DDCALL3A.442    
                                 ! LAYER K-1                               DDCALL3A.443    
C                                                                          DDCALL3A.444    
      REAL PK(NTERM)             ! PRESSURE OF LAYER K (PA)                DDCALL3A.445    
C                                                                          DDCALL3A.446    
      REAL P_KM1(NTERM)          ! PRESSURE OF LAYER K-1 (PA)              DDCALL3A.447    
C                                                                          DDCALL3A.448    
      REAL EXK(NTERM)            ! EXNER RATIO FOR LAYER K                 DDCALL3A.449    
C                                                                          DDCALL3A.450    
      REAL EXKM1(NTERM)          ! EXNER RATIO FOR LAYER K-1               DDCALL3A.451    
C                                                                          DDCALL3A.452    
      REAL DELPK(NTERM)          ! PRESSURE DIFFERENCE ACROSS LAYER K      DDCALL3A.453    
                                 ! (PA)                                    DDCALL3A.454    
C                                                                          DDCALL3A.455    
      REAL DELPKM1(NTERM)        ! PRESSURE DIFFERENCE ACROSS              DDCALL3A.456    
                                 ! LAYER K-1 (PA)                          DDCALL3A.457    
C                                                                          DDCALL3A.458    
      REAL AMDETK(NTERM)         ! MIXING DETRAINMENT AT LEVEL K           DDCALL3A.459    
                                 ! MULTIPLIED BY APPROPRIATE LAYER         DDCALL3A.460    
                                 ! THICKNESS                               DDCALL3A.461    
C                                                                          DDCALL3A.462    
      REAL EKM14(NTERM)          ! EXNER RATIO AT LAYER K-1/4              DDCALL3A.463    
C                                                                          DDCALL3A.464    
      REAL EKM34(NTERM)          ! EXNER RATIO AT LAYER K-3/4              DDCALL3A.465    
C                                                                          DDCALL3A.466    
      LOGICAL BWATER_K_C(NTERM)  ! COMPRESSED MASK FOR THOSE               DDCALL3A.467    
                                 ! POINTS AT WHICH CONDENSATE              DDCALL3A.468    
                                 ! IS WATER IN LAYER K                     DDCALL3A.469    
C                                                                          DDCALL3A.470    
      REAL PRECIP_K_C(NTERM)     ! COMPRESSED PRECIPITATION                DDCALL3A.471    
                                 ! ADDED WHEN DESCENDING FROM              DDCALL3A.472    
                                 ! LAYER K TO K-1 (KG/M**2/S)              DDCALL3A.473    
C                                                                          DDCALL3A.474    
      REAL Q_K_C(NTERM)          ! COMPRESSED PARCEL MIXING RATIO          DDCALL3A.475    
                                 ! OF LAYER K (KG/KG)                      DDCALL3A.476    
C                                                                          DDCALL3A.477    
      REAL TH_K_C(NTERM)         ! COMPRESSED PARCEL POTENTIAL             DDCALL3A.478    
                                 ! TEMPERATURE OF LAYER K (K)              DDCALL3A.479    
C                                                                          DDCALL3A.480    
      REAL U_K_C(NTERM)          ! COMPRESSED PARCEL U IN LAYER K (M/S)    DDCALL3A.481    
C                                                                          DDCALL3A.482    
      REAL V_K_C(NTERM)          ! COMPRESSED PARCEL V IN LAYER K (M/S)    DDCALL3A.483    
C                                                                          DDCALL3A.484    
      REAL TRA_K_C(NTERM,NTRA)   ! COMPRESSED PARCEL TRACER IN             DDCALL3A.485    
                                 ! LAYER K (KG/KG)                         DDCALL3A.486    
C                                                                          DDCALL3A.487    
      REAL PSTAR_C(NTERM)        ! COMPRESSED SURFACE PRESSURE (PA)        DDCALL3A.488    
C                                                                          DDCALL3A.489    
      REAL recip_PSTAR_C(NTERM)  ! Reciprocal of comp. pstar array         GSS1F403.302    
C                                                                          GSS1F403.306    
      INTEGER ICCB_C(NTERM)      ! COMPRESSED CLOUD BASE LEVEL             DDCALL3A.490    
C                                                                          DDCALL3A.491    
      REAL DTHBYDT_K_C(NTERM)    ! COMPRESSED INCREMENT TO MODEL           DDCALL3A.492    
                                 ! POTENTIAL TEMPERATURE OF LAYER K        DDCALL3A.493    
                                 ! (K/S)                                   DDCALL3A.494    
C                                                                          DDCALL3A.495    
      REAL DTHBYDT_KM1_C(NTERM)  ! COMPRESSED INCREMENT TO MODEL           DDCALL3A.496    
                                 ! POTENTIAL TEMPERATURE OF LAYER K-1      DDCALL3A.497    
                                 ! (K/S)                                   DDCALL3A.498    
C                                                                          DDCALL3A.499    
      REAL DQBYDT_K_C(NTERM)     ! COMPRESSED INCREMENT TO MODEL           DDCALL3A.500    
                                 ! MIXING RATIO OF LAYER K (KG/KG/S)       DDCALL3A.501    
C                                                                          DDCALL3A.502    
      REAL DQBYDT_KM1_C(NTERM)   ! COMPRESSED INCREMENT TO MODEL           DDCALL3A.503    
                                 ! MIXING RATIO OF LAYER K-1 (KG/KG/S)     DDCALL3A.504    
C                                                                          DDCALL3A.505    
      REAL DUBYDT_K_C(NTERM)     ! COMPRESSED INCREMENT TO MODEL           DDCALL3A.506    
                                 ! U IN  LAYER K (M/S)                     DDCALL3A.507    
C                                                                          DDCALL3A.508    
      REAL DUBYDT_KM1_C(NTERM)   ! COMPRESSED INCREMENT TO MODEL           DDCALL3A.509    
                                 ! U IN LAYER K-1 (M/S)                    DDCALL3A.510    
C                                                                          DDCALL3A.511    
      REAL DVBYDT_K_C(NTERM)     ! COMPRESSED INCREMENT TO MODEL           DDCALL3A.512    
                                 ! V IN  LAYER K (M/S)                     DDCALL3A.513    
C                                                                          DDCALL3A.514    
      REAL DVBYDT_KM1_C(NTERM)   ! COMPRESSED INCREMENT TO MODEL           DDCALL3A.515    
                                 ! V IN LAYER K-1 (M/S)                    DDCALL3A.516    
C                                                                          DDCALL3A.517    
      REAL DTRA_K_C(NTERM,NTRA)  ! COMPRESSED INCREMENT TO MODEL           DDCALL3A.518    
                                 ! TRACER OF LAYER K (KG/KG/S)             DDCALL3A.519    
C                                                                          DDCALL3A.520    
      REAL DTRA_KM1_C(NTERM,NTRA)! COMPRESSED INCREMENT TO MODEL           DDCALL3A.521    
                                 ! TRACER OF LAYER K-1 (KG/KG/S)           DDCALL3A.522    
C                                                                          DDCALL3A.523    
      REAL DELTD(NTERM)          ! COOLING NECESSARY TO                    DDCALL3A.524    
                                 ! ACHIEVE SATURATION (K)                  DDCALL3A.525    
C                                                                          DDCALL3A.526    
      REAL DELQD(NTERM)          ! MOISTENING NECESSARY TO                 DDCALL3A.527    
                                 ! ACHIEVE SATURATION (KG/KG)              DDCALL3A.528    
C                                                                          DDCALL3A.529    
      REAL DELUD(NTERM)          ! CHANGE TO ENVIRONMENT U DUE TO          DDCALL3A.530    
                                 ! DOWNDRAUGHT FORMATION (M/S)             DDCALL3A.531    
C                                                                          DDCALL3A.532    
      REAL DELVD(NTERM)          ! CHANGE TO ENVIRONMENT V DUE TO          DDCALL3A.533    
                                 ! DOWNDRAUGHT FORMATION (M/S)             DDCALL3A.534    
C                                                                          DDCALL3A.535    
      REAL DELTRAD(NTERM,NTRA)   ! DEPLETION OF ENVIRONMENT TRACER         DDCALL3A.536    
                                 ! DUE TO DOWNDRAUGHT FORMATION (KG/KG)    DDCALL3A.537    
C                                                                          DDCALL3A.538    
      REAL QDD_K(NTERM)          ! MIXING RATIO OF DOWNDRAUGHT IN          DDCALL3A.539    
                                 ! LAYER K (KG/KG)                         DDCALL3A.540    
C                                                                          DDCALL3A.541    
      REAL THDD_K(NTERM)         ! MODEL POTENTIAL TEMPERATURE             DDCALL3A.542    
                                 ! OF DOWNDRAUGHT IN LAYER K (K)           DDCALL3A.543    
C                                                                          DDCALL3A.544    
      REAL UDD_K(NTERM)          ! MODEL U IN DOWNDRAUGHT IN LAYER         DDCALL3A.545    
                                 ! K (M/S)                                 DDCALL3A.546    
C                                                                          DDCALL3A.547    
      REAL VDD_K(NTERM)          ! MODEL V IN DOWNDRAUGHT IN LAYER         DDCALL3A.548    
                                 ! K (M/S)                                 DDCALL3A.549    
C                                                                          DDCALL3A.550    
      REAL TRADD_K(NTERM,NTRA)   ! MODEL TRACER OF DOWNDRAUGHT             DDCALL3A.551    
                                 ! IN LAYER K (KG/KG)                      DDCALL3A.552    
C                                                                          DDCALL3A.553    
      REAL FLX_DD_K(NPNTS)       ! DOWNDRAUGHT INITIAL MASS FLUX           DDCALL3A.554    
                                 ! (PA/S)                                  DDCALL3A.555    
C                                                                          DDCALL3A.556    
      REAL FLX_DD_K_C(NTERM)     ! COMPRESSED DOWNDRAUGHT INITIAL          DDCALL3A.557    
                                 ! MASS FLUX (PA/S)                        DDCALL3A.558    
C                                                                          DDCALL3A.559    
      LOGICAL BDDI(NPNTS)        ! MASK FOR POINTS WHERE DOWNDRAUGHT       DDCALL3A.560    
                                 ! MIGHT OCCUR                             DDCALL3A.561    
C                                                                          DDCALL3A.562    
      LOGICAL BDDI_C(NTERM)      ! COMPRESSED MASK FOR POINTS WHERE        DDCALL3A.563    
                                 ! DOWNDRAUGHT MAY INITIATE                DDCALL3A.564    
C                                                                          DDCALL3A.565    
      INTEGER INDEX1(NTERM)      ! INDEX FOR COMPRESS AND EXPAND           DDCALL3A.566    
C                                                                          DDCALL3A.567    
      REAL QE_K_C(NTERM)         ! COMPRESSED ENVIRONMENT MIXING           DDCALL3A.568    
                                 ! RATIO OF LAYER K (KG/KG)                DDCALL3A.569    
C                                                                          DDCALL3A.570    
      REAL QE_KM1_C(NTERM)       ! COMPRESSED ENVIRONMENT MIXING           DDCALL3A.571    
                                 ! RATIO OF LAYER K-1 (KG/KG)              DDCALL3A.572    
C                                                                          DDCALL3A.573    
      REAL THE_K_C(NTERM)        ! COMPRESSED POTENTIAL TEMPERATURE        DDCALL3A.574    
                                 ! OF ENVIRONMENT IN LAYER K (K)           DDCALL3A.575    
C                                                                          DDCALL3A.576    
      REAL THE_KM1_C(NTERM)      ! COMPRESSED POTENTIAL TEMPERATURE        DDCALL3A.577    
                                 ! OF ENVIRONMENT IN LAYER K-1 (K)         DDCALL3A.578    
C                                                                          DDCALL3A.579    
      REAL UE_K_C(NTERM)         ! COMPRESSED U OF ENVIRONMENT IN          DDCALL3A.580    
                                 ! LAYER K (M/S)                           DDCALL3A.581    
C                                                                          DDCALL3A.582    
      REAL UE_KM1_C(NTERM)       ! COMPRESSED U OF ENVIRONMENT IN          DDCALL3A.583    
                                 ! LAYER K-1 (M/S)                         DDCALL3A.584    
C                                                                          DDCALL3A.585    
      REAL VE_K_C(NTERM)         ! COMPRESSED V OF ENVIRONMENT IN          DDCALL3A.586    
                                 ! LAYER K (M/S)                           DDCALL3A.587    
C                                                                          DDCALL3A.588    
      REAL VE_KM1_C(NTERM)       ! COMPRESSED V OF ENVIRONMENT IN          DDCALL3A.589    
                                 ! LAYER K-1 (M/S)                         DDCALL3A.590    
C                                                                          DDCALL3A.591    
      REAL EFLUX_U_DD_C(NTERM),  ! COMPRESSED EDDY MOMENTUM FLUX AT        DDCALL3A.592    
     *     EFLUX_V_DD_C(NTERM)   ! TOP OF LAYER DUE TO DD                  DDCALL3A.593    
C                                                                          DDCALL3A.594    
      REAL TRAE_K_C(NTERM,NTRA)  ! COMPRESSED TRACER OF ENVIRONMENT        DDCALL3A.595    
                                 ! IN LAYER K (KG/KG)                      DDCALL3A.596    
C                                                                          DDCALL3A.597    
      REAL TRAE_KM1_C(NTERM,NTRA)! COMPRESSED TRACER OF ENVIRONMENT        DDCALL3A.598    
                                 ! IN LAYER K-1 (KG/KG)                    DDCALL3A.599    
C                                                                          DDCALL3A.600    
      REAL RAIN_C(NTERM)         ! COMPRESSED SURFACE RAINFALL             DDCALL3A.601    
                                 ! (KG/M**2/S)                             DDCALL3A.602    
C                                                                          DDCALL3A.603    
      REAL SNOW_C(NTERM)         ! COMPRESSED SURFACE SNOWFALL             DDCALL3A.604    
                                 ! (KG/M**2/S)                             DDCALL3A.605    
C                                                                          DDCALL3A.606    
      REAL FLX_UD_K_C(NTERM)     ! UPDRAUGHT MASS FLUX AT LAYER K          DDCALL3A.607    
C                                                                          DDCALL3A.608    
      REAL RAIN_ENV(NTERM)       ! AMOUNT OF RAINFALL PASSING THROUGH      DDCALL3A.609    
                                 ! ENVIRONMENT (KG/M**2/S)                 DDCALL3A.610    
C                                                                          DDCALL3A.611    
      REAL SNOW_ENV(NTERM)       ! AMOUNT OF SNOWFALL PASSING THROUGH      DDCALL3A.612    
                                 ! ENVIRONMENT (KG/M**2/S)                 DDCALL3A.613    
C                                                                          DDCALL3A.614    
      REAL RAIN_DD(NTERM)        ! AMOUNT OF RAINFALL PASSING THROUGH      DDCALL3A.615    
                                 ! DOWNDRAUGHT (KG/M**2/S)                 DDCALL3A.616    
C                                                                          DDCALL3A.617    
      REAL SNOW_DD(NTERM)        ! AMOUNT OF SNOWFALL PASSING THROUGH      DDCALL3A.618    
                                 ! DOWNDRAUGHT (KG/M**2/S)                 DDCALL3A.619    
C                                                                          DDCALL3A.620    
      LOGICAL BDD_START(NPNTS)   ! MASK FOR THOSE POINT WHERE              DDCALL3A.621    
                                 ! DOWNDRAUGHT IS ABLE TO START            DDCALL3A.622    
                                 ! FROM LEVEL K                            DDCALL3A.623    
C                                                                          DDCALL3A.624    
      LOGICAL BDD_START_C(NTERM) ! COMPRESSED MASK FOR THOSE POINT         DDCALL3A.625    
                                 ! WHERE DOWNDRAUGHT IS ABLE TO START      DDCALL3A.626    
                                 ! FROM LEVEL K                            DDCALL3A.627    
C                                                                          DDCALL3A.628    
      LOGICAL BDDWT_K(NPNTS)     ! MASK FOR POINTS IN DOWNDRAUGHT          DDCALL3A.629    
                                 ! WHERE PPT IN LAYER K IS LIQUID          DDCALL3A.630    
C                                                                          DDCALL3A.631    
      LOGICAL BDDWT_K_C(NTERM)   ! COMPRESSED MASK FOR POINTS IN DD        DDCALL3A.632    
                                 ! WHERE PPT IN LAYER K IS LIQUID          DDCALL3A.633    
C                                                                          DDCALL3A.634    
      LOGICAL BDDWT_KM1(NPNTS)   ! MASK FOR POINTS IN DOWNDRAUGHT          DDCALL3A.635    
                                 ! WHERE PPT IN LAYER K-1 IS LIQUID        DDCALL3A.636    
C                                                                          DDCALL3A.637    
      LOGICAL BDDWT_KM1_C(NTERM) ! COMPRESSED MASK FOR POINTS IN DD        DDCALL3A.638    
                                 ! WHERE PPT IN LAYER K-1 IS LIQUID        DDCALL3A.639    
C                                                                          DDCALL3A.640    
      LOGICAL BDD_ON(NPNTS)      ! MASK FOR THOSE POINTS WHERE DD          DDCALL3A.641    
                                 ! CONTINUES FROM LAYER K+1                DDCALL3A.642    
C                                                                          DDCALL3A.643    
      LOGICAL BDD_ON_C(NTERM)    ! COMPRESSED MASK FOR POINTS WHERE DD     DDCALL3A.644    
                                 ! CONTINUES FROM LAYER K+1                DDCALL3A.645    
C                                                                          DDCALL3A.646    
      INTEGER KMIN(NTERM)        ! FREEZING LEVEL WHERE ENTRAINMENT        DDCALL3A.647    
                                 ! RATES ARE INCREASED                     DDCALL3A.648    
C                                                                          DDCALL3A.649    
      REAL FLX_STRT(NPNTS)       ! MASSFLUX AT LEVEL WHERE DOWNDRAUGHT     DDCALL3A.650    
                                 ! STARTS (PA/S)                           DDCALL3A.651    
C                                                                          DDCALL3A.652    
      REAL FLX_STRT_C(NTERM)     ! COMPRESSED VALUE OF FLX_STRT            DDCALL3A.653    
C                                                                          DDCALL3A.654    
      REAL CCA_C(NTERM)          ! COMPRESSED CONVECTIVE CLOUD AMOUNT      DDCALL3A.655    
C                                                                          DDCALL3A.656    
      INTEGER INDEX2(NTERM)      ! INDEX OF WHERE ACTICE DOWNDRAUGHT       DDCALL3A.657    
                                 ! OCCURS                                  DDCALL3A.658    
C                                                                          DDCALL3A.659    
      REAL LR_UD_REF(NTERM)      ! PRECIPITATION MIXING RATIO AT LOWEST    DDCALL3A.660    
                                 ! PRECIPITATING LEVEL OF UD               DDCALL3A.661    
C                                                                          DDCALL3A.662    
C                                                                          DDCALL3A.664    
      REAL P_CLD_TOP             ! PRESSURE AT CLOUD TOP (PA)              DDCALL3A.665    
C                                                                          DDCALL3A.666    
      REAL P_CLD_BASE            ! PRESSURE AT CLOUD BASE (PA)             DDCALL3A.667    
C-----------------------------------------------------------------------   DDCALL3A.668    
C-----------------------------------------------------------------------   DDCALL3A.669    
C EXTERNAL ROUTINES CALLED                                                 DDCALL3A.670    
C-----------------------------------------------------------------------   DDCALL3A.671    
C                                                                          DDCALL3A.672    
      EXTERNAL FLX_INIT, LAYER_DD, DD_INIT, DOWND                          DDCALL3A.673    
C                                                                          DDCALL3A.677    
C-----------------------------------------------------------------------   DDCALL3A.678    
C CALCULATE INDEX FOR COMPRESS ON BASIS OF BTERM                           DDCALL3A.679    
C-----------------------------------------------------------------------   DDCALL3A.680    
C                                                                          DDCALL3A.681    
      NDD = 0                                                              DDCALL3A.682    
      DO I=1,NPNTS                                                         DDCALL3A.686    
       IF (BTERM(I)) THEN                                                  DDCALL3A.687    
          NDD = NDD+1                                                      DDCALL3A.688    
          INDEX1(NDD) = I                                                  DDCALL3A.689    
       END IF                                                              DDCALL3A.690    
      END DO                                                               DDCALL3A.691    
C                                                                          DDCALL3A.693    
C----------------------------------------------------------------------    DDCALL3A.694    
C INITIALISE LOGICAL ARRAYS AS FALSE                                       DDCALL3A.695    
C-----------------------------------------------------------------------   DDCALL3A.696    
C                                                                          DDCALL3A.697    
      DO I=1,NPNTS                                                         DDCALL3A.698    
       BDDI(I) = .FALSE.                                                   DDCALL3A.699    
       BDD_START(I) = .FALSE.                                              DDCALL3A.700    
       BDDWT_K(I) = .FALSE.                                                DDCALL3A.701    
       BDDWT_KM1(I) = .FALSE.                                              DDCALL3A.702    
       BDD_ON(I) = .FALSE.                                                 DDCALL3A.703    
C                                                                          DDCALL3A.704    
C-----------------------------------------------------------------------   DDCALL3A.705    
C CALCULATE MASK FOR THOSE POINTS WHERE DOWNDRAUGHT MIGHT OCCUR            DDCALL3A.706    
C AND LEVEL AT WHICH IT MIGHT INITIATE                                     DDCALL3A.707    
C-----------------------------------------------------------------------   DDCALL3A.708    
C                                                                          DDCALL3A.709    
        P_CLD_TOP =AK(KCT) + BK(KCT)*PSTAR(I)                              DDCALL3A.710    
        IF (ICCB(I).GT.0) THEN                                             DDCALL3A.711    
          P_CLD_BASE = AK(ICCB(I)) + BK(ICCB(I))*PSTAR(I)                  DDCALL3A.712    
        ELSE                                                               DDCALL3A.713    
          P_CLD_BASE = P_CLD_TOP                                           DDCALL3A.714    
        END IF                                                             DDCALL3A.715    
C                                                                          DDCALL3A.716    
        IF (P_CLD_TOP.LT.(PSTAR(I)-15000.0) .AND.                          DDCALL3A.717    
     &   BTERM(I) .AND. BGMK(I) .AND. (P_CLD_BASE-P_CLD_TOP)               DDCALL3A.718    
     &       .GT. 15000.0)  BDDI(I) = .TRUE.                               DDCALL3A.719    
      END DO                                                               DDCALL3A.720    
C                                                                          DDCALL3A.721    
C----------------------------------------------------------------------    DDCALL3A.722    
C CALCULATE INITIAL DOWNDRAUGHT MASS FLUX                                  DDCALL3A.723    
C-----------------------------------------------------------------------   DDCALL3A.724    
C                                                                          DDCALL3A.725    
        CALL FLX_INIT (NPNTS,KCT,ICCB,ICCT,FLX,FLX_DD_K,BDDI,FLX_STRT)     DDCALL3A.726    
C                                                                          DDCALL3A.727    
C-----------------------------------------------------------------------   DDCALL3A.728    
C COMPRESS ALL INPUT ARRAYS FOR THE DOWNDRAUGHT CALCULATION                DDCALL3A.729    
C-----------------------------------------------------------------------   DDCALL3A.730    
C                                                                          DDCALL3A.731    
      DO 10 K = KCT+1,2,-1                                                 DDCALL3A.732    
C                                                                          DDCALL3A.733    
         DO I=1,NDD                                                        DDCALL3A.734    
            TH_K_C(I) = THP(INDEX1(I),K)                                   DDCALL3A.735    
            Q_K_C(I) = QP(INDEX1(I),K)                                     DDCALL3A.736    
            THE_K_C(I) = THE(INDEX1(I),K)                                  DDCALL3A.737    
            THE_KM1_C(I) = THE(INDEX1(I),K-1)                              DDCALL3A.738    
            QE_K_C(I) = QE(INDEX1(I),K)                                    DDCALL3A.739    
            QE_KM1_C(I) = QE(INDEX1(I),K-1)                                DDCALL3A.740    
            DTHBYDT_K_C(I) = DTHBYDT(INDEX1(I),K)                          DDCALL3A.741    
            DTHBYDT_KM1_C(I) = DTHBYDT(INDEX1(I),K-1)                      DDCALL3A.742    
            DQBYDT_K_C(I) = DQBYDT(INDEX1(I),K)                            DDCALL3A.743    
            DQBYDT_KM1_C(I) = DQBYDT(INDEX1(I),K-1)                        DDCALL3A.744    
            EXNER_KM12_C(I) = EXNER(INDEX1(I),K)                           DDCALL3A.745    
            EXNER_KP12_C(I) = EXNER(INDEX1(I),K+1)                         DDCALL3A.746    
            EXNER_KM32_C(I) = EXNER(INDEX1(I),K-1)                         DDCALL3A.747    
            PRECIP_K_C(I) = PRECIP(INDEX1(I),K)                            DDCALL3A.748    
            FLX_UD_K_C(I) = FLX(INDEX1(I),K)                               DDCALL3A.749    
            BWATER_K_C(I) = BWATER(INDEX1(I),K)                            DDCALL3A.750    
         END DO                                                            DDCALL3A.751    
C                                                                          DDCALL3A.752    
         IF(L_MOM)THEN                                                     DDCALL3A.753    
          DO I=1,NDD                                                       DDCALL3A.754    
            U_K_C(I) = UP(INDEX1(I),K)                                     DDCALL3A.755    
            V_K_C(I) = VP(INDEX1(I),K)                                     DDCALL3A.756    
            UE_K_C(I) = UE(INDEX1(I),K)                                    DDCALL3A.757    
            UE_KM1_C(I) = UE(INDEX1(I),K-1)                                DDCALL3A.758    
            VE_K_C(I) = VE(INDEX1(I),K)                                    DDCALL3A.759    
            VE_KM1_C(I) = VE(INDEX1(I),K-1)                                DDCALL3A.760    
            DUBYDT_K_C(I) = DUBYDT(INDEX1(I),K)                            DDCALL3A.761    
            DUBYDT_KM1_C(I) = DUBYDT(INDEX1(I),K-1)                        DDCALL3A.762    
            DVBYDT_K_C(I) = DVBYDT(INDEX1(I),K)                            DDCALL3A.763    
            DVBYDT_KM1_C(I) = DVBYDT(INDEX1(I),K-1)                        DDCALL3A.764    
            EFLUX_U_DD_C(I) = EFLUX_U_DD(INDEX1(I))                        DDCALL3A.765    
            EFLUX_V_DD_C(I) = EFLUX_V_DD(INDEX1(I))                        DDCALL3A.766    
          END DO                                                           DDCALL3A.767    
         END IF                                                            DDCALL3A.768    
C                                                                          DDCALL3A.769    
         IF(L_TRACER)THEN                                                  DDCALL3A.770    
C                                                                          DDCALL3A.771    
         DO KTRA=1,NTRA                                                    DDCALL3A.772    
           DO I=1,NDD                                                      DDCALL3A.773    
             TRA_K_C(I,KTRA) = TRAP(INDEX1(I),K,KTRA)                      DDCALL3A.774    
             TRAE_K_C(I,KTRA) = TRAE(INDEX1(I),K,KTRA)                     DDCALL3A.775    
             TRAE_KM1_C(I,KTRA) = TRAE(INDEX1(I),K-1,KTRA)                 DDCALL3A.776    
             DTRA_K_C(I,KTRA) = DTRABYDT(INDEX1(I),K,KTRA)                 DDCALL3A.777    
             DTRA_KM1_C(I,KTRA) = DTRABYDT(INDEX1(I),K-1,KTRA)             DDCALL3A.778    
           END DO                                                          DDCALL3A.779    
         END DO                                                            DDCALL3A.780    
C                                                                          DDCALL3A.781    
         END IF                                                            DDCALL3A.782    
C                                                                          DDCALL3A.783    
         IF (K.EQ.KCT+1) THEN                                              DDCALL3A.784    
          DO I=1,NDD                                                       DDCALL3A.785    
            FLX_DD_K_C(I) = FLX_DD_K(INDEX1(I))                            DDCALL3A.786    
            FLX_STRT_C(I) = FLX_STRT(INDEX1(I))                            DDCALL3A.787    
            PSTAR_C(I) = PSTAR(INDEX1(I))                                  DDCALL3A.788    
            recip_pstar_c(I)=recip_pstar(index1(I))                        GSS1F403.308    
            ICCB_C(I) = ICCB(INDEX1(I))                                    DDCALL3A.789    
            BDDI_C(I) = BDDI(INDEX1(I))                                    DDCALL3A.790    
            BDD_START_C(I) = BDD_START(INDEX1(I))                          DDCALL3A.791    
            RAIN_C(I) = RAIN(INDEX1(I))                                    DDCALL3A.792    
            SNOW_C(I) = SNOW(INDEX1(I))                                    DDCALL3A.793    
            BDDWT_K_C(I) = BDDWT_K(INDEX1(I))                              DDCALL3A.794    
            BDDWT_KM1_C(I) = BDDWT_KM1(INDEX1(I))                          DDCALL3A.795    
            BDD_ON_C(I) = BDD_ON(INDEX1(I))                                DDCALL3A.796    
            CCA_C(I) = CCA(INDEX1(I))                                      DDCALL3A.797    
            LR_UD_REF(I) = 0.0                                             DDCALL3A.798    
          END DO                                                           DDCALL3A.799    
         END IF                                                            DDCALL3A.800    
C                                                                          DDCALL3A.801    
C----------------------------------------------------------------------    DDCALL3A.802    
C IF BELOW CONVECTIVE CLOUD BASE DOWNDRAUGHT NOT ALLOWED TO FORM           DDCALL3A.803    
C----------------------------------------------------------------------    DDCALL3A.804    
C                                                                          DDCALL3A.805    
      DO I=1,NDD                                                           DDCALL3A.806    
       IF (K.LT.ICCB_C(I)) BDDI_C(I)=.FALSE.                               DDCALL3A.807    
      END DO                                                               DDCALL3A.808    
C                                                                          DDCALL3A.809    
C-----------------------------------------------------------------------   DDCALL3A.810    
C RESET EN/DETRAINMENT RATES FOR DOWNDRAUGHT                               DDCALL3A.811    
C-----------------------------------------------------------------------   DDCALL3A.812    
C                                                                          DDCALL3A.813    
      CALL LAYER_DD (NDD,K,KCT,THE_K_C,THE_KM1_C,FLX_STRT_C,AK,BK,         DDCALL3A.814    
     *               AKM12,BKM12,DELAK,DELBK,EXNER_KM12_C,EXNER_KP12_C,    DDCALL3A.815    
     *               EXNER_KM32_C,PSTAR_C,PK,P_KM1,DELPK,DELPKM1,EXK,      DDCALL3A.816    
     *               EXKM1,AMDETK,EKM14,EKM34,KMIN,BDDI_C,                 GSS1F403.310    
     *               recip_pstar_c)                                        GSS1F403.311    
C----------------------------------------------------------------------    DDCALL3A.818    
C IF LEVEL K WITHIN 150MB OF SURFACE THEN DOWNDRAUGHT NOT ALLOWED TO       DDCALL3A.819    
C FORM                                                                     DDCALL3A.820    
C----------------------------------------------------------------------    DDCALL3A.821    
C                                                                          DDCALL3A.822    
      DO I=1,NDD                                                           DDCALL3A.823    
       IF (PK(I).GT.(PSTAR_C(I)-15000.0)) BDDI_C(I)=.FALSE.                DDCALL3A.824    
      END DO                                                               DDCALL3A.825    
C                                                                          DDCALL3A.826    
C                                                                          DDCALL3A.827    
C-----------------------------------------------------------------------   DDCALL3A.828    
C INITIALISE DOWNDRAUGHT                                                   DDCALL3A.829    
C DOWNDRAUGHT NOT ALLOWED TO FORM FROM CLOUD TOP LAYER (KCT+1)             DDCALL3A.830    
C OR FROM BELOW CLOUD BASE                                                 DDCALL3A.831    
C-----------------------------------------------------------------------   DDCALL3A.832    
C                                                                          DDCALL3A.833    
       CALL DD_INIT(NDD,NTERM,TH_K_C,Q_K_C,THE_K_C,QE_K_C,PK,EXK,          DDCALL3A.834    
     &              THDD_K,QDD_K,DELTD,DELQD,BDD_START_C,K,BDDI_C,         DDCALL3A.835    
     &              BDD_ON_C,L_MOM,U_K_C,V_K_C,UE_K_C,VE_K_C,UDD_K,        DDCALL3A.836    
     &              VDD_K,DELUD,DELVD,L_TRACER,NTRA,TRA_K_C,               DDCALL3A.837    
     &              TRAE_K_C,TRADD_K,DELTRAD)                              DDCALL3A.838    
C                                                                          DDCALL3A.839    
C-----------------------------------------------------------------------   DDCALL3A.840    
C UPDATE MASK FOR WHERE DOWNDRAUGHT OCCURS                                 DDCALL3A.841    
C-----------------------------------------------------------------------   DDCALL3A.842    
C                                                                          DDCALL3A.843    
      DO I=1,NDD                                                           DDCALL3A.844    
        IF (BDD_START_C(I).OR.BDD_ON_C(I)) BDD_ON_C(I)=.TRUE.              DDCALL3A.845    
      END DO                                                               DDCALL3A.846    
C                                                                          DDCALL3A.847    
      NDDON_TMP = 0                                                        DDCALL3A.848    
      DO I=1,NDD                                                           DDCALL3A.852    
        IF (BDD_ON_C(I)) THEN                                              DDCALL3A.853    
          NDDON_TMP = NDDON_TMP+1                                          DDCALL3A.854    
          IF(FLG_DWN_FLX) DD_FLUX(INDEX1(I),K)=FLX_DD_K(INDEX1(I))         API2F405.304    
        END IF                                                             DDCALL3A.855    
      END DO                                                               DDCALL3A.856    
C                                                                          DDCALL3A.858    
C-----------------------------------------------------------------------   DDCALL3A.859    
C CALL DOWNDRAUGHT ROUTINE                                                 DDCALL3A.860    
C-----------------------------------------------------------------------   DDCALL3A.861    
C                                                                          DDCALL3A.862    
                                                                           DDCALL3A.863    
      CALL DOWND(NDD,NTERM,K,KCT,THDD_K,QDD_K,THE_K_C,THE_KM1_C,           DDCALL3A.864    
     &           QE_K_C,QE_KM1_C,DTHBYDT_K_C,DTHBYDT_KM1_C,DQBYDT_K_C,     DDCALL3A.865    
     &           DQBYDT_KM1_C,FLX_DD_K_C,P_KM1,DELPK,DELPKM1,EXK,          DDCALL3A.866    
     &           EXKM1,DELTD,DELQD,AMDETK,EKM14,EKM34,PRECIP_K_C,          DDCALL3A.867    
     &           RAIN_C,SNOW_C,ICCB_C,BWATER_K_C,BDD_START_C,              DDCALL3A.868    
     &           BDDWT_K_C,BDDWT_KM1_C,BDD_ON_C,RAIN_ENV,SNOW_ENV,         DDCALL3A.869    
     &           RAIN_DD,SNOW_DD,FLX_UD_K_C,TIMESTEP,CCA_C,NDDON_TMP,      DDCALL3A.870    
     &           LR_UD_REF,L_MOM,UDD_K,VDD_K,UE_K_C,VE_K_C,UE_KM1_C,       DDCALL3A.871    
     &           VE_KM1_C,DUBYDT_K_C,DVBYDT_K_C,DUBYDT_KM1_C,              DDCALL3A.872    
     &           DVBYDT_KM1_C,DELUD,DELVD,EFLUX_U_DD_C,EFLUX_V_DD_C,       DDCALL3A.873    
     &           L_TRACER,NTRA,TRADD_K,                                    DDCALL3A.874    
     &           TRAE_K_C,TRAE_KM1_C,DTRA_K_C,DTRA_KM1_C,DELTRAD)          DDCALL3A.875    
C                                                                          DDCALL3A.876    
C-----------------------------------------------------------------------   DDCALL3A.877    
C DECOMPRESS/EXPAND THOSE VARIABLES WHICH ARE TO BE OUTPUT                 DDCALL3A.878    
C-----------------------------------------------------------------------   DDCALL3A.879    
C                                                                          DDCALL3A.880    
CDIR$ IVDEP                                                                DDCALL3A.881    
! Fujitsu vectorization directive                                          GRB0F405.221    
!OCL NOVREC                                                                GRB0F405.222    
        DO I=1,NDD                                                         DDCALL3A.882    
         DTHBYDT(INDEX1(I),K) = DTHBYDT_K_C(I)                             DDCALL3A.883    
         DTHBYDT(INDEX1(I),K-1) = DTHBYDT_KM1_C(I)                         DDCALL3A.884    
         DQBYDT(INDEX1(I),K) = DQBYDT_K_C(I)                               DDCALL3A.885    
         DQBYDT(INDEX1(I),K-1) = DQBYDT_KM1_C(I)                           DDCALL3A.886    
         IF (K.EQ.2) THEN                                                  DDCALL3A.887    
          RAIN(INDEX1(I)) = RAIN_C(I)                                      DDCALL3A.888    
          SNOW(INDEX1(I)) = SNOW_C(I)                                      DDCALL3A.889    
         END IF                                                            DDCALL3A.890    
         PRECIP(INDEX1(I),K) = PRECIP_K_C(I)                               DDCALL3A.891    
        END DO                                                             DDCALL3A.892    
!                                                                          API2F405.305    
! NEED TO CHECK THAT POINT WOULD BE SELECTED IN S.R DOWND OR ELSE          API2F405.306    
! NOT SENSIBLE TO SET DIAGNOSTICS                                          API2F405.307    
!                                                                          API2F405.308    
        IF(FLG_DWN_FLX) THEN                                               API2F405.309    
         DO I=1,NDD                                                        API2F405.310    
          IF(BDD_ON_C(I)) THEN                                             API2F405.311    
           DD_FLUX(INDEX1(I),K-1) = FLX_DD_K_C(I)                          API2F405.312    
          ENDIF                                                            API2F405.313    
         END DO                                                            API2F405.314    
        ENDIF                                                              API2F405.315    
        IF(FLG_ENTR_DWN) THEN                                              API2F405.316    
         DO I=1,NDD                                                        API2F405.317    
          IF(BDD_ON_C(I)) THEN                                             API2F405.318    
           ENTRAIN_DWN(INDEX1(I),K)=(1.0-AMDETK(I))*                       API2F405.319    
     &                           (EKM14(I)+EKM34(I)*(1.0+EKM14(I)))*       API2F405.320    
     &                           DD_FLUX(INDEX1(I),K)                      API2F405.321    
          ENDIF                                                            API2F405.322    
         END DO                                                            API2F405.323    
        ENDIF                                                              API2F405.324    
        IF(FLG_DETR_DWN) THEN                                              API2F405.325    
         DO I=1,NDD                                                        API2F405.326    
          IF(BDD_ON_C(I)) THEN                                             API2F405.327    
           DETRAIN_DWN(INDEX1(I),K)=-AMDETK(I)*DD_FLUX(INDEX1(I),K)        API2F405.328    
          ENDIF                                                            API2F405.329    
         END DO                                                            API2F405.330    
        ENDIF                                                              API2F405.331    
                                                                           API2F405.332    
C                                                                          DDCALL3A.893    
        IF(L_MOM)THEN                                                      DDCALL3A.894    
         DO I=1,NDD                                                        DDCALL3A.895    
          DUBYDT(INDEX1(I),K) = DUBYDT_K_C(I)                              DDCALL3A.896    
          DUBYDT(INDEX1(I),K-1) = DUBYDT_KM1_C(I)                          DDCALL3A.897    
          DVBYDT(INDEX1(I),K) = DVBYDT_K_C(I)                              DDCALL3A.898    
          DVBYDT(INDEX1(I),K-1) = DVBYDT_KM1_C(I)                          DDCALL3A.899    
         END DO                                                            DDCALL3A.900    
        END IF                                                             DDCALL3A.901    
C                                                                          DDCALL3A.902    
       IF(L_TRACER)THEN                                                    DDCALL3A.903    
C                                                                          DDCALL3A.904    
        DO KTRA=1,NTRA                                                     DDCALL3A.905    
          DO I=1,NDD                                                       DDCALL3A.906    
            DTRABYDT(INDEX1(I),K,KTRA) = DTRA_K_C(I,KTRA)                  DDCALL3A.907    
            DTRABYDT(INDEX1(I),K-1,KTRA) = DTRA_KM1_C(I,KTRA)              DDCALL3A.908    
          END DO                                                           DDCALL3A.909    
        END DO                                                             DDCALL3A.910    
C                                                                          DDCALL3A.911    
       END IF                                                              DDCALL3A.912    
C                                                                          DDCALL3A.913    
C----------------------------------------------------------------------    DDCALL3A.914    
C   END OF MAIN K LOOP                                                     DDCALL3A.915    
C----------------------------------------------------------------------    DDCALL3A.916    
C                                                                          DDCALL3A.917    
 10   CONTINUE                                                             DDCALL3A.918    
C                                                                          DDCALL3A.919    
      RETURN                                                               DDCALL3A.920    
      END                                                                  DDCALL3A.921    
C                                                                          DDCALL3A.922    
*ENDIF                                                                     DDCALL3A.923