*IF DEF,C90_1A,OR,DEF,C90_2A,OR,DEF,C90_2B                                 AAD2F404.297    
C ******************************COPYRIGHT******************************    GTS2F400.1963   
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.1964   
C                                                                          GTS2F400.1965   
C Use, duplication or disclosure of this code is subject to the            GTS2F400.1966   
C restrictions as set forth in the contract.                               GTS2F400.1967   
C                                                                          GTS2F400.1968   
C                Meteorological Office                                     GTS2F400.1969   
C                London Road                                               GTS2F400.1970   
C                BRACKNELL                                                 GTS2F400.1971   
C                Berkshire UK                                              GTS2F400.1972   
C                RG12 2SZ                                                  GTS2F400.1973   
C                                                                          GTS2F400.1974   
C If no contract has been raised with this copy of the code, the use,      GTS2F400.1975   
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.1976   
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.1977   
C Modelling at the above address.                                          GTS2F400.1978   
C ******************************COPYRIGHT******************************    GTS2F400.1979   
C                                                                          GTS2F400.1980   
C*LL  SUBROUTINE DEWPNT-------------------------------------------------   DEWPNT1A.3      
CLL                                                                        DEWPNT1A.4      
CLL  Purpose: Calculates the 1.5 metre dewpoint from 1.5 metre specific    DEWPNT1A.5      
CLL           humidity, 1.5 metre temperature and 1.5 metre pressure.      DEWPNT1A.6      
CLL                                                                        DEWPNT1A.7      
CLL  Suitable for single column usage.                                     DEWPNT1A.8      
CLL                                                                        DEWPNT1A.9      
CLL  Model            Modification history:                                DEWPNT1A.10     
CLL version  Date                                                          DEWPNT1A.11     
CLL                                                                        DEWPNT1A.12     
CLL    3.3  28/04/94 Created by Steve Woltering                            DEWPNT1A.13     
CLL    4.4  Sept 97  Avoid crash if negative Q input. Damian Wilson.       ADM2F404.1      
CLL                                                                        DEWPNT1A.14     
CLL  Programming standard:  Unified Model Documentation Paper No 3,        DEWPNT1A.15     
CLL                         Version 5, dated 08/12/92                      DEWPNT1A.16     
CLL Documentation:  To be added to UM Doc Paper ?                          DEWPNT1A.17     
CLL                                                                        DEWPNT1A.18     
CLLEND-----------------------------------------------------------------    DEWPNT1A.19     
C                                                                          DEWPNT1A.20     
C*L                                                                        DEWPNT1A.21     
C*LArguments:----------------------------------------------------------    DEWPNT1A.22     

      SUBROUTINE DEWPNT(                                                    1,1DEWPNT1A.23     
     + Q, P, T,      ! IN                                                  DEWPNT1A.24     
     + P_FIELD,      ! IN                                                  DEWPNT1A.25     
     + TD            ! OUT                                                 DEWPNT1A.26     
     +)                                                                    DEWPNT1A.27     
      IMPLICIT NONE                                                        DEWPNT1A.28     
*CALL C_EPSLON                                                             DEWPNT1A.29     
*CALL C_R_CP                                                               DEWPNT1A.30     
*CALL C_LHEAT                                                              DEWPNT1A.31     
*CALL C_0_DG_C                                                             DEWPNT1A.32     
      INTEGER P_FIELD         ! IN Size of field arrays.                   DEWPNT1A.33     
      REAL P(P_FIELD),        ! IN Pressure.                               DEWPNT1A.34     
     +     Q(P_FIELD),        ! IN Specific humidity.                      DEWPNT1A.35     
     +     T(P_FIELD)         ! IN Temperature.                            DEWPNT1A.36     
      REAL RV,                ! LOCAL Gas constant for water vapour.       DEWPNT1A.37     
     +     RL1,               ! LOCAL Latent heat of evaporation.          DEWPNT1A.38     
     +     RT,                ! LOCAL.                                     DEWPNT1A.39     
     +     P1(P_FIELD),       ! LOCAL Pressure.                            DEWPNT1A.40     
C                               j/Kg at 0 deg C.                           DEWPNT1A.41     
     +     RL(P_FIELD),       ! LOCAL.                                     DEWPNT1A.42     
     +     Q0(P_FIELD),       ! LOCAL local SH.                            DEWPNT1A.43     
     +     ES0,               ! LOCAL Saturated vapour pressure.           DEWPNT1A.44     
     +     V_PRES(P_FIELD)    ! LOCAL Vapour pressure.                     DEWPNT1A.45     
      INTEGER I               ! LOCAL loop variable.                       DEWPNT1A.46     
      REAL TD(P_FIELD)        ! OUT Dew point.                             DEWPNT1A.47     
      PARAMETER ( RV = R / EPSILON )                                       DEWPNT1A.48     
      PARAMETER ( RL1 = -2.73E3 )                                          DEWPNT1A.49     
C*----------------------------------------------------------------------   DEWPNT1A.50     
C*L EXTERNAL SUBROUTINES CALLED-----------------------------------------   DEWPNT1A.51     
      EXTERNAL  QSAT_WAT                                                   DEWPNT1A.52     
C----------------------------------------------------------------------    DEWPNT1A.53     
C  Calculate P in HPa.                                                     DEWPNT1A.54     
C                                                                          DEWPNT1A.55     
      DO I=1,P_FIELD                                                       DEWPNT1A.56     
        P1(I) = P(I) / 100.0                                               DEWPNT1A.57     
C----------------------------------------------------------------------    DEWPNT1A.58     
C  Calculate RL - The latent heat of evaporation.                          DEWPNT1A.59     
        RL(I) = LC + RL1 * ( T(I) - TM )                                   DEWPNT1A.60     
C----------------------------------------------------------------------    DEWPNT1A.61     
C  Calculate Vapour pressure, and from that the dewpoint in Kelvins.       DEWPNT1A.62     
        V_PRES(I) = Q(I) * P1(I) / ( EPSILON + Q(I))                       DEWPNT1A.63     
      ENDDO                                                                DEWPNT1A.64     
      CALL QSAT_WAT(Q0,T,P,P_FIELD)                                        DEWPNT1A.65     
      DO I=1,P_FIELD                                                       DEWPNT1A.66     
        IF (V_PRES(I) .GT. 0.0) THEN                                       ADM2F404.2      
          ES0=(Q0(I) * P1(I)) / (EPSILON + Q0(I))                          ADM2F404.3      
          RT = (1 / T(I)) - ( RV * ALOG(V_PRES(I)/ES0) )/RL(I)             ADM2F404.4      
          TD(I)=1.0/RT                                                     ADM2F404.5      
          IF (TD(I) .GT. T(I)) TD(I) = T(I)                                ADM2F404.6      
        ELSE                                                               ADM2F404.7      
          TD(I)=0.0                                                        ADM2F404.8      
!         print*,'WARNING. Neg or zero Q in dewpoint calc.'                ADM2F404.9      
        ENDIF                                                              ADM2F404.10     
      ENDDO                                                                DEWPNT1A.71     
      RETURN                                                               DEWPNT1A.72     
      END                                                                  DEWPNT1A.73     
*ENDIF                                                                     DEWPNT1A.74