*IF DEF,A05_2A,OR,DEF,A05_2C,OR,DEF,A05_3B,OR,DEF,A05_3C                   AJX1F405.189    
C ******************************COPYRIGHT******************************    GTS2F400.10135  
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.10136  
C                                                                          GTS2F400.10137  
C Use, duplication or disclosure of this code is subject to the            GTS2F400.10138  
C restrictions as set forth in the contract.                               GTS2F400.10139  
C                                                                          GTS2F400.10140  
C                Meteorological Office                                     GTS2F400.10141  
C                London Road                                               GTS2F400.10142  
C                BRACKNELL                                                 GTS2F400.10143  
C                Berkshire UK                                              GTS2F400.10144  
C                RG12 2SZ                                                  GTS2F400.10145  
C                                                                          GTS2F400.10146  
C If no contract has been raised with this copy of the code, the use,      GTS2F400.10147  
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.10148  
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.10149  
C Modelling at the above address.                                          GTS2F400.10150  
C ******************************COPYRIGHT******************************    GTS2F400.10151  
C                                                                          GTS2F400.10152  
CLL  SUBROUTINE TERMDD-------------------------------------------------    TERMDD2A.3      
CLL                                                                        TERMDD2A.4      
CLL  PURPOSE : CALCULATE WHETHER DOWNDRAUGHT IS ABLE TO CONTINUE           TERMDD2A.5      
CLL                                                                        TERMDD2A.6      
CLL            CALCULATE BUOYANCY                                          TERMDD2A.7      
CLL                                                                        TERMDD2A.8      
CLL  SUITABLE FOR SINGLE COLUMN MODEL USE                                  TERMDD2A.9      
CLL                                                                        TERMDD2A.10     
CLL  CODE WRITTEN FOR CRAY Y-MP BY S.BETT AND D.GREGORY                    TERMDD2A.11     
CLL                                                                        TERMDD2A.12     
CLL  MODEL            MODIFICATION HISTORY FROM MODEL VERSION 3.0:         TERMDD2A.13     
CLL VERSION  DATE                                                          TERMDD2A.14     
CLL                                                                        TERMDD2A.15     
CLL  PROGRAMMING STANDARDS : UNIFIED MODEL DOCUMENTATION PAPER NO. 3       TERMDD2A.16     
CLL  VERSION NO. 4  DATED 5/2/92                                           TERMDD2A.17     
CLL                                                                        TERMDD2A.18     
CLL  SYSTEM TASK : P27                                                     TERMDD2A.19     
CLL                                                                        TERMDD2A.20     
CLL  DOCUMENTATION : UNIFIED MODEL DOCUMENTATION PAPER P27                 TERMDD2A.21     
CLL                                                                        TERMDD2A.22     
CLLEND-----------------------------------------------------------------    TERMDD2A.23     
C                                                                          TERMDD2A.24     
C*L  ARGUMENTS---------------------------------------------------------    TERMDD2A.25     
C                                                                          TERMDD2A.26     

      SUBROUTINE TERMDD (NPNTS,BDD_START,THDD_K,QDD_K,THE_K,QE_K,K,         3TERMDD2A.27     
     *                   B_DD_END,BDD_ON)                                  TERMDD2A.28     
C                                                                          TERMDD2A.29     
      IMPLICIT NONE                                                        TERMDD2A.30     
C                                                                          TERMDD2A.31     
C-----------------------------------------------------------------------   TERMDD2A.32     
C MODEL CONSTANTS USED IN THIS ROUTINE                                     TERMDD2A.33     
C-----------------------------------------------------------------------   TERMDD2A.34     
C                                                                          TERMDD2A.35     
*CALL C_EPSLON                                                             TERMDD2A.36     
*CALL DDKMDET                                                              TERMDD2A.37     
C                                                                          TERMDD2A.38     
C-----------------------------------------------------------------------   TERMDD2A.39     
C VECTOR LENGTHS AND LOOP COUNTERS                                         TERMDD2A.40     
C-----------------------------------------------------------------------   TERMDD2A.41     
C                                                                          TERMDD2A.42     
      INTEGER NPNTS                ! IN VECTOR LENGTH                      TERMDD2A.43     
C                                                                          TERMDD2A.44     
      INTEGER I                    ! LOOP COUNTER                          TERMDD2A.45     
C                                                                          TERMDD2A.46     
      INTEGER K                    ! IN PRESENT MODEL LAYER                TERMDD2A.47     
C                                                                          TERMDD2A.48     
C-----------------------------------------------------------------------   TERMDD2A.49     
C VARIABLES WHICH ARE INPUT                                                TERMDD2A.50     
C-----------------------------------------------------------------------   TERMDD2A.51     
C                                                                          TERMDD2A.52     
      REAL THDD_K(NPNTS)           ! IN MODEL POTENTIAL TEMPERATURE        TERMDD2A.53     
                                   !    OF DOWNDRAUGHT AT LAYER K (K)      TERMDD2A.54     
C                                                                          TERMDD2A.55     
      REAL QDD_K(NPNTS)            ! IN MODEL MIXING RATIO OF              TERMDD2A.56     
                                   !    DOWNDRAUGHT AT LAYER K             TERMDD2A.57     
C                                                                          TERMDD2A.58     
      REAL THE_K(NPNTS)            ! IN POTENTIAL TEMPERATURE OF           TERMDD2A.59     
                                   !    ENVIRONMENTAL AIR IN LAYER K       TERMDD2A.60     
C                                                                          TERMDD2A.61     
      REAL QE_K(NPNTS)             ! IN MODEL MIXING RATIO AT LAYER K      TERMDD2A.62     
C                                                                          TERMDD2A.63     
      LOGICAL BDD_START(NPNTS)     ! IN MASK FOR THOSE POINTS WHERE        TERMDD2A.64     
                                   !    DOWNDRAUGHT MAY OCCUR IN           TERMDD2A.65     
                                   !    LAYER K-1                          TERMDD2A.66     
C                                                                          TERMDD2A.67     
C-----------------------------------------------------------------------   TERMDD2A.68     
C VARIABLES WHICH ARE OUTPUT                                               TERMDD2A.69     
C-----------------------------------------------------------------------   TERMDD2A.70     
C                                                                          TERMDD2A.71     
      LOGICAL B_DD_END(NPNTS)      ! OUT MASK FOR THOSE POINTS WHERE       TERMDD2A.72     
                                   !     DOWNDRAUGHT IS TERMINATING        TERMDD2A.73     
C                                                                          TERMDD2A.74     
      LOGICAL BDD_ON(NPNTS)        ! OUT MASK FOR THOSE POINTS WHERE       TERMDD2A.75     
                                   !     DOWNDRAUGHT CONTINUES TO LAYER    TERMDD2A.76     
                                   !     K-1 (AS BDD_START HERE)           TERMDD2A.77     
C                                                                          TERMDD2A.78     
C-----------------------------------------------------------------------   TERMDD2A.79     
C VARIABLES WHICH ARE DEFINED LOCALLY                                      TERMDD2A.80     
C-----------------------------------------------------------------------   TERMDD2A.81     
C                                                                          TERMDD2A.82     
      REAL BUOY1                   ! BUOYANCY OF PARCEL                    TERMDD2A.83     
C                                                                          TERMDD2A.84     
      REAL THDD_V                  ! USED IN CALCULATION OF BUOYANCY       TERMDD2A.85     
C                                                                          TERMDD2A.86     
      REAL THE_V                   ! USED IN CALCULATION OF BUOYANCY       TERMDD2A.87     
C                                                                          TERMDD2A.88     
C-----------------------------------------------------------------------   TERMDD2A.89     
C CHECK IF PARCEL STILL NEGATIVELY BUOYANT SUCH THAT DOWNDRAUGHT           TERMDD2A.90     
C CAN CONTINUE TO NEXT LAYER                                               TERMDD2A.91     
C-----------------------------------------------------------------------   TERMDD2A.92     
C                                                                          TERMDD2A.93     
      DO I=1,NPNTS                                                         TERMDD2A.94     
         THDD_V = THDD_K(I)*(1.0+C_VIRTUAL*QDD_K(I))                       TERMDD2A.95     
         THE_V = THE_K(I)*(1.0+C_VIRTUAL*QE_K(I))                          TERMDD2A.96     
         BUOY1 = THDD_V - THE_V                                            TERMDD2A.97     
C                                                                          TERMDD2A.98     
C-----------------------------------------------------------------------   TERMDD2A.99     
C CALCULATE STATE OF DOWNDRAUGHT                                           TERMDD2A.100    
C-----------------------------------------------------------------------   TERMDD2A.101    
C                                                                          TERMDD2A.102    
         IF (BDD_START(I) .AND. BUOY1.GT.0.5) THEN                         TERMDD2A.103    
            BDD_ON(I) = .FALSE.                                            TERMDD2A.104    
         ELSE IF (BUOY1.GT.0.5 .OR. K.EQ.2) THEN                           TERMDD2A.105    
            B_DD_END(I) = .TRUE.                                           TERMDD2A.106    
         END IF                                                            TERMDD2A.107    
      END DO                                                               TERMDD2A.108    
C                                                                          TERMDD2A.109    
      RETURN                                                               TERMDD2A.110    
      END                                                                  TERMDD2A.111    
C                                                                          TERMDD2A.112    
*ENDIF                                                                     TERMDD2A.113