*IF DEF,A03_7A                                                             ACB1F405.3      
C *****************************COPYRIGHT******************************     EXFXTQ5B.3      
C (c) CROWN COPYRIGHT 1997, METEOROLOGICAL OFFICE, All Rights Reserved.    EXFXTQ5B.4      
C                                                                          EXFXTQ5B.5      
C Use, duplication or disclosure of this code is subject to the            EXFXTQ5B.6      
C restrictions as set forth in the contract.                               EXFXTQ5B.7      
C                                                                          EXFXTQ5B.8      
C                Meteorological Office                                     EXFXTQ5B.9      
C                London Road                                               EXFXTQ5B.10     
C                BRACKNELL                                                 EXFXTQ5B.11     
C                Berkshire UK                                              EXFXTQ5B.12     
C                RG12 2SZ                                                  EXFXTQ5B.13     
C                                                                          EXFXTQ5B.14     
C If no contract has been raised with this copy of the code, the use,      EXFXTQ5B.15     
C duplication or disclosure of it is strictly prohibited.  Permission      EXFXTQ5B.16     
C to do so must first be obtained in writing from the Head of Numerical    EXFXTQ5B.17     
C Modelling at the above address.                                          EXFXTQ5B.18     
C ******************************COPYRIGHT******************************    EXFXTQ5B.19     
!!!                                                                        EXFXTQ5B.20     
!!!  Purpose: Calculate explicit fluxes of TL and QT                       EXFXTQ5B.21     
!!!                                                                        EXFXTQ5B.22     
!!!  Suitable for single column use                                        EXFXTQ5B.23     
!!!                                                                        EXFXTQ5B.24     
!!!  Model           Modification history                                  EXFXTQ5B.25     
!!! version  Date                                                          EXFXTQ5B.26     
!!!  4.3    23/2/97   New deck                                             EXFXTQ5B.27     
!!!                                                                        EXFXTQ5B.28     
!!!  JJ  <- Programmers of some or all of previous code or changes         EXFXTQ5B.29     
!!!                                                                        EXFXTQ5B.30     
!!!                                                                        EXFXTQ5B.31     
!!!  Programming standard: UM Documentation Paper No 4, Version 2,         EXFXTQ5B.32     
!!!                        dated 18/1/90                                   EXFXTQ5B.33     
!!!                                                                        EXFXTQ5B.34     
!!!  System component covered: P244                                        EXFXTQ5B.35     
!!!                                                                        EXFXTQ5B.36     
!!!  Project task: P24                                                     EXFXTQ5B.37     
!!!                                                                        EXFXTQ5B.38     
!!!  Documentation: UM Documentation Paper No 24.                          EXFXTQ5B.39     
!!!                                                                        EXFXTQ5B.40     
!!!---------------------------------------------------------------------   EXFXTQ5B.41     
                                                                           EXFXTQ5B.42     
! SUBROUTINE EX_FLUX_TQ                                                    EXFXTQ5B.43     
                                                                           EXFXTQ5B.44     

      SUBROUTINE EX_FLUX_TQ (                                               2,4EXFXTQ5B.45     
     &  P_POINTS                                                           EXFXTQ5B.46     
     &, P_FIELD                                                            EXFXTQ5B.47     
     &, P1                                                                 EXFXTQ5B.48     
     &, BL_LEVELS                                                          EXFXTQ5B.49     
     &, TL                                                                 EXFXTQ5B.50     
     &, QW                                                                 EXFXTQ5B.51     
     &, RDZ                                                                EXFXTQ5B.52     
     &, FTL                                                                EXFXTQ5B.53     
     &, FQW                                                                EXFXTQ5B.54     
     &, RHOKH                                                              EXFXTQ5B.55     
     &, LTIMER                                                             EXFXTQ5B.56     
     &  )                                                                  EXFXTQ5B.57     
                                                                           EXFXTQ5B.58     
                                                                           EXFXTQ5B.59     
      IMPLICIT NONE                                                        EXFXTQ5B.60     
                                                                           EXFXTQ5B.61     
! ARGUMENTS WITH INTENT IN. IE: INPUT VARIABLES.                           EXFXTQ5B.62     
                                                                           EXFXTQ5B.63     
      LOGICAL                                                              EXFXTQ5B.64     
     &  LTIMER          ! IN Flag for TIMER diagnostics                    EXFXTQ5B.65     
                                                                           EXFXTQ5B.66     
      INTEGER                                                              EXFXTQ5B.67     
     & P_FIELD                ! IN No. of P-grid points in whole field     EXFXTQ5B.68     
     &,P1                     ! IN First P-grid point to be processed      EXFXTQ5B.69     
     &,P_POINTS               ! IN No. of P-grid points to be processed    EXFXTQ5B.70     
     &,BL_LEVELS              ! IN No. of atmospheric levels for which     EXFXTQ5B.71     
!                                boundary layer fluxes are calculated.     EXFXTQ5B.72     
!                                Assumed ! <=30 for dimensioning GAMMA()   EXFXTQ5B.73     
!                                in common deck C_GAMMA                    EXFXTQ5B.74     
                                                                           EXFXTQ5B.75     
      REAL                                                                 EXFXTQ5B.76     
     &  TL(P_FIELD, BL_LEVELS)   ! IN Liquid/frozen water temperature      EXFXTQ5B.77     
!                                     (K).                                 EXFXTQ5B.78     
     &, QW(P_FIELD, BL_LEVELS)   ! IN Total water content (kg/kg air)      EXFXTQ5B.79     
     &, RHOKH(P_FIELD, BL_LEVELS)! IN Exchange coeffs for moisture.        EXFXTQ5B.80     
     &, RDZ(P_FIELD, BL_LEVELS)  ! IN RDZ(,1) is the reciprocal of the     EXFXTQ5B.81     
!                                   height of level 1, i.e. of the         EXFXTQ5B.82     
!                                   middle of layer 1.  For K > 1,         EXFXTQ5B.83     
!                                   RDZ(,K) is the reciprocal of the       EXFXTQ5B.84     
!                                   vertical distance from level           EXFXTQ5B.85     
!                                   K-1 to level K.                        EXFXTQ5B.86     
                                                                           EXFXTQ5B.87     
                                                                           EXFXTQ5B.88     
                                                                           EXFXTQ5B.89     
! ARGUMENTS WITH INTENT OUT. IE: OUTPUT VARIABLES.                         EXFXTQ5B.90     
                                                                           EXFXTQ5B.91     
      REAL                                                                 EXFXTQ5B.92     
     &  FTL(P_FIELD, BL_LEVELS)  ! OUT FTL(,K) contains net turbulent      EXFXTQ5B.93     
!                                   sensible heat flux into layer K        EXFXTQ5B.94     
!                                   from below; so FTL(,1) is the          EXFXTQ5B.95     
!                                   surface sensible heat, H. (W/m2)       EXFXTQ5B.96     
     &, FQW(P_FIELD, BL_LEVELS)  ! OUT Moisture flux between layers        EXFXTQ5B.97     
!                                   (kg per square metre per sec).         EXFXTQ5B.98     
!                                   FQW(,1) is total water flux            EXFXTQ5B.99     
!                                   from surface, 'E'.                     EXFXTQ5B.100    
                                                                           EXFXTQ5B.101    
! LOCAL VARIABLES.                                                         EXFXTQ5B.102    
                                                                           EXFXTQ5B.103    
      INTEGER                                                              EXFXTQ5B.104    
     &  L, K                                                               EXFXTQ5B.105    
                                                                           EXFXTQ5B.106    
*CALL C_G                                                                  EXFXTQ5B.107    
*CALL C_R_CP                                                               EXFXTQ5B.108    
                                                                           EXFXTQ5B.109    
      REAL                                                                 EXFXTQ5B.110    
     & GRCP                                                                EXFXTQ5B.111    
                                                                           EXFXTQ5B.112    
      PARAMETER (                                                          EXFXTQ5B.113    
     & GRCP = G/CP                                                         EXFXTQ5B.114    
     & )                                                                   EXFXTQ5B.115    
                                                                           EXFXTQ5B.116    
      EXTERNAL TIMER                                                       EXFXTQ5B.117    
                                                                           EXFXTQ5B.118    
!-----------------------------------------------------------------------   EXFXTQ5B.119    
                                                                           EXFXTQ5B.120    
      IF (LTIMER) THEN                                                     EXFXTQ5B.121    
        CALL TIMER('EXFLUXTQ',3)                                           EXFXTQ5B.122    
      ENDIF                                                                EXFXTQ5B.123    
                                                                           EXFXTQ5B.124    
      DO K=2,BL_LEVELS                                                     EXFXTQ5B.125    
!-----------------------------------------------------------------------   EXFXTQ5B.126    
!! 1. "Explicit" fluxes of TL and QW, on P-grid.                           EXFXTQ5B.127    
!-----------------------------------------------------------------------   EXFXTQ5B.128    
        DO L=P1,P1+P_POINTS-1                                              EXFXTQ5B.129    
        FTL(L,K) = -RHOKH(L,K) *                                           EXFXTQ5B.130    
     &      ( ( ( TL(L,K) - TL(L,K-1) ) * RDZ(L,K) ) + GRCP )              EXFXTQ5B.131    
        FQW(L,K) = -RHOKH(L,K) * ( QW(L,K) - QW(L,K-1) ) * RDZ(L,K)        EXFXTQ5B.132    
        ENDDO                                                              EXFXTQ5B.133    
      ENDDO                                                                EXFXTQ5B.134    
                                                                           EXFXTQ5B.135    
      IF (LTIMER) THEN                                                     EXFXTQ5B.136    
        CALL TIMER('EXFLUXTQ',4)                                           EXFXTQ5B.137    
      ENDIF                                                                EXFXTQ5B.138    
                                                                           EXFXTQ5B.139    
      RETURN                                                               EXFXTQ5B.140    
      END                                                                  EXFXTQ5B.141    
*ENDIF                                                                     EXFXTQ5B.142