*IF DEF,A05_3C                                                             DDCALL3C.2      
C (c) CROWN COPYRIGHT 1997, METEOROLOGICAL OFFICE, All Rights Reserved.    DDCALL3C.3      
C                                                                          DDCALL3C.4      
C Use, duplication or disclosure of this code is subject to the            DDCALL3C.5      
C restrictions as set forth in the contract.                               DDCALL3C.6      
C                                                                          DDCALL3C.7      
C                Meteorological Office                                     DDCALL3C.8      
C                London Road                                               DDCALL3C.9      
C                BRACKNELL                                                 DDCALL3C.10     
C                Berkshire UK                                              DDCALL3C.11     
C                RG12 2SZ                                                  DDCALL3C.12     
C                                                                          DDCALL3C.13     
C If no contract has been raised with this copy of the code, the use,      DDCALL3C.14     
C duplication or disclosure of it is strictly prohibited.  Permission      DDCALL3C.15     
C to do so must first be obtained in writing from the Head of Numerical    DDCALL3C.16     
C Modelling at the above address.                                          DDCALL3C.17     
C ******************************COPYRIGHT******************************    DDCALL3C.18     
C                                                                          DDCALL3C.19     
CLL  SUBROUTINE DD_CALL------------------------------------------------    DDCALL3C.20     
CLL                                                                        DDCALL3C.21     
CLL  PURPOSE : CALCULATE INITIAL DOWNDRAUGHT MASSFLUX                      DDCALL3C.22     
CLL                                                                        DDCALL3C.23     
CLL            RESET EN/DETRAINMENT RATES FOR DOWNDRAUGHT                  DDCALL3C.24     
CLL                                                                        DDCALL3C.25     
CLL            COMPRESS/EXPAND VARIABLES                                   DDCALL3C.26     
CLL                                                                        DDCALL3C.27     
CLL            INITIALISE DOWNDRAUGHT                                      DDCALL3C.28     
CLL                                                                        DDCALL3C.29     
CLL            CALL DOWNDRAUGHT ROUTINE                                    DDCALL3C.30     
CLL                                                                        DDCALL3C.31     
CLL  SUITABLE FOR SINGLE COLUMN MODEL USE                                  DDCALL3C.32     
CLL                                                                        DDCALL3C.33     
CLL                                                                        DDCALL3C.34     
CLL  MODEL            MODIFICATION HISTORY:                                DDCALL3C.35     
CLL VERSION  DATE                                                          DDCALL3C.36     
!LL   4.4   11/08/97  New version optimised for T3E.                       DDCALL3C.37     
!LL                   Not bit-reproducible with DDCALL3A.                  DDCALL3C.38     
!LL                                                  Alan Dickinson        DDCALL3C.39     
!LL  4.4   17/10/97  Loop splitting by hand for T3E optimisation           DDCALL3C.40     
!LL                                                   D.Salmond            DDCALL3C.41     
!LL  4.5   19/05/98  Pass L_PHASE_LIM down to DOWND to determine           AJX1F405.39     
!LL                  treatment of precip below cloud base. Julie Gregory   AJX1F405.40     
CLL   4.5    Jul. 98  Kill the IBM specific lines (JCThil)                 AJC1F405.27     
CLL                                                                        DDCALL3C.42     
CLL                                                                        DDCALL3C.43     
CLL  PROGRAMMING STANDARDS : UNIFIED MODEL DOCUMENTATION PAPER NO. 3       DDCALL3C.44     
CLL  VERSION NO. 4  DATED 5/2/92                                           DDCALL3C.45     
CLL                                                                        DDCALL3C.46     
CLL  SYSTEM TASK : P27                                                     DDCALL3C.47     
CLL                                                                        DDCALL3C.48     
CLL  DOCUMENTATION : UNIFIED MODEL DOCUMENTATION PAPER 27                  DDCALL3C.49     
CLL                                                                        DDCALL3C.50     
CLLEND-----------------------------------------------------------------    DDCALL3C.51     
C                                                                          DDCALL3C.52     
C*L  ARGUMENTS---------------------------------------------------------    DDCALL3C.53     
C                                                                          DDCALL3C.54     

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