*IF DEF,A05_3B,OR,DEF,A05_3C                                               AJX1F405.184    
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.14606  
C                                                                          GTS2F400.14607  
C Use, duplication or disclosure of this code is subject to the            GTS2F400.14608  
C restrictions as set forth in the contract.                               GTS2F400.14609  
C                                                                          GTS2F400.14610  
C                Meteorological Office                                     GTS2F400.14611  
C                London Road                                               GTS2F400.14612  
C                BRACKNELL                                                 GTS2F400.14613  
C                Berkshire UK                                              GTS2F400.14614  
C                RG12 2SZ                                                  GTS2F400.14615  
C                                                                          GTS2F400.14616  
C If no contract has been raised with this copy of the code, the use,      GTS2F400.14617  
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.14618  
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.14619  
C Modelling at the above address.                                          GTS2F400.14620  
C ******************************COPYRIGHT******************************    GTS2F400.14621  
C                                                                          GTS2F400.14622  
CLL  SUBROUTINE LIFT_PAR-----------------------------------------------    LIFPAR3A.3      
CLL                                                                        LIFPAR3A.4      
CLL  PURPOSE : LIFTS THE PARCEL FROM LAYER K TO K+1                        LIFPAR3A.5      
CLL            TAKING ENTRAINEMNT AND MOIST PROCESSES INTO ACOUNT          LIFPAR3A.6      
CLL                                                                        LIFPAR3A.7      
CLL            SUBROUTINE LATENT_H CALCULATES THE MOIST PROCESSES          LIFPAR3A.8      
CLL                                                                        LIFPAR3A.9      
CLL  SUITABLE FOR SINGLE COLUMN MODEL USE                                  LIFPAR3A.10     
CLL                                                                        LIFPAR3A.11     
CLL                                                                        LIFPAR3A.12     
CLL  MODEL            MODIFICATION HISTORY FROM MODEL VERSION 3.0:         LIFPAR3A.13     
CLL VERSION  DATE                                                          LIFPAR3A.14     
CLL   4.0    5/05/95  : New deck for version 3A of convection scheme.      LIFPAR3A.15     
CLL                     Includes tracers and momentum in the convective    LIFPAR3A.16     
CLL                     parcel.                                            LIFPAR3A.17     
CLL                     Pete Inness.                                       LIFPAR3A.18     
CLL   4.5    Jul. 98  Kill the IBM specific lines (JCThil)                 AJC1F405.23     
CLL                                                                        LIFPAR3A.19     
CLL  PROGRAMMING STANDARDS : UNIFIED MODEL DOCUMENTATION PAPER NO. 4       LIFPAR3A.20     
CLL  VERSION NO. 1                                                         LIFPAR3A.21     
CLL                                                                        LIFPAR3A.22     
CLL  LOGICAL COMPONENTS COVERED: P27                                       LIFPAR3A.23     
CLL                                                                        LIFPAR3A.24     
CLL  DOCUMENTATION : UNIFIED MODEL DOCUMENTATION PAPER NO. ##              LIFPAR3A.25     
CLL                                                                        LIFPAR3A.26     
CLLEND-----------------------------------------------------------------    LIFPAR3A.27     
C                                                                          LIFPAR3A.28     
C*L  ARGUMENTS---------------------------------------------------------    LIFPAR3A.29     
C                                                                          LIFPAR3A.30     

      SUBROUTINE LIFT_PAR (NPNTS,NP_FULL,THPKP1,QPKP1,XSQKP1,BGMKP1,        10,6LIFPAR3A.31     
     *                     BWKP1,THPK,QPK,THEKP1,QEKP1,THEK,QEK,QSEKP1,    LIFPAR3A.32     
     *                     DQSKP1,PKP1,EXKP1,EKP14,EKP34,L_MOM,UPKP1,      LIFPAR3A.33     
     *                     VPKP1,UPK,VPK,UEK,UEKP1,VEK,VEKP1,L_TRACER,     LIFPAR3A.34     
     *                     NTRA,TRAPKP1,TRAPK,TRAEKP1,TRAEK,L_SHALLOW)     LIFPAR3A.35     
C                                                                          LIFPAR3A.36     
      IMPLICIT NONE                                                        LIFPAR3A.37     
C                                                                          LIFPAR3A.38     
C----------------------------------------------------------------------    LIFPAR3A.39     
C VECTOR LENGTHS AND LOOP COUNTERS                                         LIFPAR3A.40     
C----------------------------------------------------------------------    LIFPAR3A.41     
C                                                                          LIFPAR3A.42     
      INTEGER NPNTS          ! IN VECTOR LENGTH                            LIFPAR3A.46     
C                                                                          LIFPAR3A.47     
      INTEGER NP_FULL        ! IN FULL VECTOR LENGTH                       LIFPAR3A.48     
C                                                                          LIFPAR3A.49     
      INTEGER I,KTRA         ! LOOP COUNTERS                               LIFPAR3A.50     
C                                                                          LIFPAR3A.51     
      INTEGER NTRA           ! IN NUMBER OF TRACER VARIABLES               LIFPAR3A.52     
C                                                                          LIFPAR3A.53     
C----------------------------------------------------------------------    LIFPAR3A.54     
C VARIABLES WHICH ARE INPUT                                                LIFPAR3A.55     
C----------------------------------------------------------------------    LIFPAR3A.56     
C                                                                          LIFPAR3A.57     
      REAL THEK(NPNTS)       ! IN POTENTIAL TEMPERATURE OF CLOUD           LIFPAR3A.58     
                             !    ENVIRONMENT IN LAYER K (K)               LIFPAR3A.59     
C                                                                          LIFPAR3A.60     
      REAL THEKP1(NPNTS)     ! IN POTENTIAL TEMPERATURE OF CLOUD           LIFPAR3A.61     
                             !    ENVIRONMENT IN LAYER K+1 (K)             LIFPAR3A.62     
C                                                                          LIFPAR3A.63     
      REAL QEK(NPNTS)        ! IN MIXING RATIO OF CLOUD                    LIFPAR3A.64     
                             !    ENVIRONMENT IN LAYER K (KG/KG)           LIFPAR3A.65     
C                                                                          LIFPAR3A.66     
      REAL QEKP1(NPNTS)      ! IN MIXING RATIO OF CLOUD                    LIFPAR3A.67     
                             !    ENVIRONMENT IN LAYER K+1 (KG/KG)         LIFPAR3A.68     
C                                                                          LIFPAR3A.69     
      REAL UEK(NPNTS)        ! IN U OF ENVIRONMENT IN LAYER K (M/S)        LIFPAR3A.70     
C                                                                          LIFPAR3A.71     
      REAL UEKP1(NPNTS)      ! IN U OF ENVIRONMENT IN LAYER K+1 (M/S)      LIFPAR3A.72     
C                                                                          LIFPAR3A.73     
      REAL VEK(NPNTS)        ! IN V OF ENVIRONMENT IN LAYER K (M/S)        LIFPAR3A.74     
C                                                                          LIFPAR3A.75     
      REAL VEKP1(NPNTS)      ! IN V OF ENVIRONMENT IN LAYER K+1 (M/S)      LIFPAR3A.76     
C                                                                          LIFPAR3A.77     
      REAL TRAEK(NP_FULL,    ! IN TRACER CONTENT OF CLOUD                  LIFPAR3A.78     
     *           NTRA)       !    ENVIRONMENT IN LAYER K (KG/KG)           LIFPAR3A.79     
C                                                                          LIFPAR3A.80     
      REAL TRAEKP1(NP_FULL,  ! IN TRACER CONTENT OF CLOUD                  LIFPAR3A.81     
     *             NTRA)     !    ENVIRONMENT IN LAYER K+1 (KG/KG)         LIFPAR3A.82     
C                                                                          LIFPAR3A.83     
      REAL QSEKP1(NPNTS)     ! IN SATURATION MIXING RATIO OF CLOUD         LIFPAR3A.84     
                             !    ENVIRONMENT IN LAYER K+1 (KG/KG)         LIFPAR3A.85     
C                                                                          LIFPAR3A.86     
      REAL DQSKP1(NPNTS)     ! IN GRADIENT OF SATURATION MIXING RATIO      LIFPAR3A.87     
                             !    WITH POTENTIAL TEMPERATURE FOR THE       LIFPAR3A.88     
                             !    CLOUD ENVIRONMENT IN LAYER K+1           LIFPAR3A.89     
                             !    (KG/KG/K)                                LIFPAR3A.90     
C                                                                          LIFPAR3A.91     
      REAL THPK(NPNTS)       ! IN PARCEL POTENTIAL TEMPERATURE IN          LIFPAR3A.92     
                             !    LAYER K (K)                              LIFPAR3A.93     
C                                                                          LIFPAR3A.94     
      REAL QPK(NPNTS)        ! IN PARCEL MIXING RATIO IN LAYER K (KG/KG)   LIFPAR3A.95     
C                                                                          LIFPAR3A.96     
      REAL UPK(NPNTS)        ! IN PARCEL U IN LAYER K (M/S)                LIFPAR3A.97     
C                                                                          LIFPAR3A.98     
      REAL VPK(NPNTS)        ! IN PARCEL V IN LAYER K (M/S)                LIFPAR3A.99     
C                                                                          LIFPAR3A.100    
      REAL TRAPK(NP_FULL,    ! IN PARCEL TRACER CONTENT IN LAYER K         LIFPAR3A.101    
     *           NTRA)       !    (KG/KG)                                  LIFPAR3A.102    
C                                                                          LIFPAR3A.103    
      LOGICAL BWKP1(NPNTS)   ! IN MASK FOR WHETHER CONDENSATE IS           LIFPAR3A.104    
                             !    LIQUID IN LAYER K+1                      LIFPAR3A.105    
C                                                                          LIFPAR3A.106    
      REAL PKP1(NPNTS)       ! IN PRESSURE AT LEVEL K+1 (PA)               LIFPAR3A.107    
C                                                                          LIFPAR3A.108    
      REAL EXKP1(NPNTS)      ! IN EXNER RATIO AT MID-POINT OF LAYER K+1    LIFPAR3A.109    
C                                                                          LIFPAR3A.110    
      REAL EKP14(NPNTS)      ! IN ENTRAINMENT COEFFICIENT AT LEVEL         LIFPAR3A.111    
                             !    K+1/4 MULTIPLIED BY APPROPRIATE          LIFPAR3A.112    
                             !    LAYER THICKNESS                          LIFPAR3A.113    
C                                                                          LIFPAR3A.114    
      REAL EKP34(NPNTS)      ! IN ENTRAINMENT COEFFICIENT AT LEVEL         LIFPAR3A.115    
                             !    K+3/4 MULTIPLIED BY APPROPRIATE          LIFPAR3A.116    
                             !    LAYER THICKNESS                          LIFPAR3A.117    
C                                                                          LIFPAR3A.118    
      LOGICAL L_TRACER       ! IN LOGICAL SWITCH FOR INCLUSION OF          LIFPAR3A.119    
                             !    TRACERS                                  LIFPAR3A.120    
C                                                                          LIFPAR3A.121    
      LOGICAL L_MOM          ! IN LOGICAL SWITCH FOR INCLUSION OF          LIFPAR3A.122    
                             !    MOMENTUM TRANSPORTS                      LIFPAR3A.123    
C                                                                          LIFPAR3A.124    
      LOGICAL L_SHALLOW(NPNTS) ! IN LOGICAL INDICATOR OF WHETHER           LIFPAR3A.125    
                               !    CONVECTION AT A GRIDPOINT              LIFPAR3A.126    
                               !    TERMINATES IN THE BOUNDARY LAYER.      LIFPAR3A.127    
C                                                                          LIFPAR3A.128    
C----------------------------------------------------------------------    LIFPAR3A.129    
C VARIABLES WHICH ARE OUTPUT                                               LIFPAR3A.130    
C----------------------------------------------------------------------    LIFPAR3A.131    
C                                                                          LIFPAR3A.132    
      REAL THPKP1(NPNTS)     ! OUT PARCEL POTENTIAL TEMPERATURE IN         LIFPAR3A.133    
                             !     LAYER K+1 AFTER ENTRAINMENT AND         LIFPAR3A.134    
                             !     LATENT HEATING (K)                      LIFPAR3A.135    
C                                                                          LIFPAR3A.136    
      REAL QPKP1(NPNTS)      ! OUT PARCEL MIXING RATIO IN LAYER K+1        LIFPAR3A.137    
                             !     AFTER ENTRAINMENT AND LATENT HEATING    LIFPAR3A.138    
                             !     (KG/KG)                                 LIFPAR3A.139    
C                                                                          LIFPAR3A.140    
      REAL UPKP1(NPNTS)      ! OUT PARCEL U IN LAYER K+1 AFTER             LIFPAR3A.141    
                             !     ENTRAINMENT (M/S)                       LIFPAR3A.142    
C                                                                          LIFPAR3A.143    
      REAL VPKP1(NPNTS)      ! OUT PARCEL V IN LAYER K+1 AFTER             LIFPAR3A.144    
                             !     ENTRAINMENT (M/S)                       LIFPAR3A.145    
C                                                                          LIFPAR3A.146    
      REAL TRAPKP1(NP_FULL,  ! OUT PARCEL TRACER CONTENT IN LAYER          LIFPAR3A.147    
     *             NTRA)     !     K+1 AFTER ENTRAINMENT. (KG/KG)          LIFPAR3A.148    
C                                                                          LIFPAR3A.149    
      REAL XSQKP1(NPNTS)     ! OUT EXCESS PARCEL WATER AFTER               LIFPAR3A.150    
                             !     LIFTING FROM LAYER K TO K+1             LIFPAR3A.151    
                             !     (KG/KG)                                 LIFPAR3A.152    
C                                                                          LIFPAR3A.153    
      LOGICAL BGMKP1(NPNTS)  ! OUT MASK FOR PARCELS WHICH ARE              LIFPAR3A.154    
                             !     SATURATED IN LAYER K+1 AFTER            LIFPAR3A.155    
                             !     ENTRAINMENT AND LATENT HEATING          LIFPAR3A.156    
C                                                                          LIFPAR3A.157    
C                                                                          LIFPAR3A.158    
C----------------------------------------------------------------------    LIFPAR3A.159    
C VARIABLES WHICH ARE DEFINED LOCALLY                                      LIFPAR3A.160    
C                                                                          LIFPAR3A.161    
C ON THE IBM ARRAYS ARE ALLOCATED USING A PARAMETER STATEMENT              LIFPAR3A.162    
C                                                                          LIFPAR3A.163    
C ON THE CRAY ARRAYS ARE DYNAMICALLY ALLOCATED                             LIFPAR3A.164    
C----------------------------------------------------------------------    LIFPAR3A.165    
C                                                                          LIFPAR3A.166    
      REAL THPKP1T(NPNTS)    ! INITIAL ESTIMATE OF PARCEL TEMPERATURE      LIFPAR3A.178    
                             ! IN LAYER K+1 AFTER ENTRAINMENT (K)          LIFPAR3A.179    
C                                                                          LIFPAR3A.180    
      REAL TT(NPNTS)         ! TEMPORARY TEMPERATURE USED IN CALCULATION   LIFPAR3A.181    
                             ! OF SATURATION MIXING RATIO (K)              LIFPAR3A.182    
C                                                                          LIFPAR3A.183    
      REAL QSPKP1(NPNTS)     ! SATURATION MIXING RATIO OF PARCEL           LIFPAR3A.184    
                             ! AFTER DRY ASCENT (KG/KG)                    LIFPAR3A.185    
C                                                                          LIFPAR3A.186    
C                                                                          LIFPAR3A.188    
C----------------------------------------------------------------------    LIFPAR3A.189    
C EXTERNAL ROUTINES CALLED                                                 LIFPAR3A.190    
C----------------------------------------------------------------------    LIFPAR3A.191    
C                                                                          LIFPAR3A.192    
      EXTERNAL QSAT,LATENT_H                                               LIFPAR3A.193    
C                                                                          LIFPAR3A.194    
C*---------------------------------------------------------------------    LIFPAR3A.195    
C                                                                          LIFPAR3A.196    
      DO I=1,NPNTS                                                         LIFPAR3A.197    
CL                                                                         LIFPAR3A.198    
CL----------------------------------------------------------------------   LIFPAR3A.199    
CL  LIFT PARCEL MIXING RATIO, POTENTIAL TEMPERATURE, U, V AND TRACER       LIFPAR3A.200    
CL  TO THE NEXT LEVEL                                                      LIFPAR3A.201    
CL----------------------------------------------------------------------   LIFPAR3A.202    
CL                                                                         LIFPAR3A.203    
CL----------------------------------------------------------------------   LIFPAR3A.204    
CL  INITIAL 'DRY' ASCENT                                                   LIFPAR3A.205    
CL                                                                         LIFPAR3A.206    
CL  UM DOCUMENTATION PAPER P27                                             LIFPAR3A.207    
CL  SECTION (3), EQUATIONS (11B), (12B)                                    LIFPAR3A.208    
CL----------------------------------------------------------------------   LIFPAR3A.209    
CL                                                                         LIFPAR3A.210    
       THPKP1(I) = (  THPK(I)                                              LIFPAR3A.211    
     *             + EKP14(I)*THEK(I) + EKP34(I)*(1.+EKP14(I))*THEKP1(I)   LIFPAR3A.212    
     *             ) / ((1.+EKP14(I))*(1.+EKP34(I)))                       LIFPAR3A.213    
C                                                                          LIFPAR3A.214    
       QPKP1(I) = (  QPK(I)                                                LIFPAR3A.215    
     *             + EKP14(I)*QEK(I) + EKP34(I)*(1.+EKP14(I))*QEKP1(I)     LIFPAR3A.216    
     *             ) / ((1.+EKP14(I))*(1.+EKP34(I)))                       LIFPAR3A.217    
C                                                                          LIFPAR3A.218    
       END DO                                                              LIFPAR3A.219    
C                                                                          LIFPAR3A.220    
      IF(L_MOM)THEN                                                        LIFPAR3A.221    
C                                                                          LIFPAR3A.222    
      DO I=1,NPNTS                                                         LIFPAR3A.223    
       UPKP1(I) = (  UPK(I)                                                LIFPAR3A.224    
     *             + EKP14(I)*UEK(I) + EKP34(I)*(1.+EKP14(I))*UEKP1(I)     LIFPAR3A.225    
     *             ) / ((1.+EKP14(I))*(1.+EKP34(I)))                       LIFPAR3A.226    
C                                                                          LIFPAR3A.227    
       VPKP1(I) = (  VPK(I)                                                LIFPAR3A.228    
     *             + EKP14(I)*VEK(I) + EKP34(I)*(1.+EKP14(I))*VEKP1(I)     LIFPAR3A.229    
     *             ) / ((1.+EKP14(I))*(1.+EKP34(I)))                       LIFPAR3A.230    
C----------------------------------------------------------------------    LIFPAR3A.231    
C IF CONVECTION IS DEEP OR MID-LEVEL, ADD AN IN-CLOUD PRESSURE             LIFPAR3A.232    
C GRADIENT TERM TO THE MOMENTUM INCREMENTS                                 LIFPAR3A.233    
C----------------------------------------------------------------------    LIFPAR3A.234    
C                                                                          LIFPAR3A.235    
       IF(.NOT.L_SHALLOW(I))THEN                                           LIFPAR3A.236    
        UPKP1(I) = UPKP1(I) - (0.7*(UEK(I)-UEKP1(I))/(1.0+EKP34(I)))       LIFPAR3A.237    
        VPKP1(I) = VPKP1(I) - (0.7*(VEK(I)-VEKP1(I))/(1.0+EKP34(I)))       LIFPAR3A.238    
       END IF                                                              LIFPAR3A.239    
      END DO                                                               LIFPAR3A.240    
C                                                                          LIFPAR3A.241    
      END IF                                                               LIFPAR3A.242    
C                                                                          LIFPAR3A.243    
       IF(L_TRACER)THEN                                                    LIFPAR3A.244    
C                                                                          LIFPAR3A.245    
       DO KTRA = 1,NTRA                                                    LIFPAR3A.246    
       DO I = 1,NPNTS                                                      LIFPAR3A.247    
C                                                                          LIFPAR3A.248    
       TRAPKP1(I,KTRA) = ( TRAPK(I,KTRA)                                   LIFPAR3A.249    
     * + EKP14(I)*TRAEK(I,KTRA) + EKP34(I)*(1.+EKP14(I))*TRAEKP1(I,KTRA)   LIFPAR3A.250    
     *             ) / ((1.+EKP14(I))*(1.+EKP34(I)))                       LIFPAR3A.251    
C                                                                          LIFPAR3A.252    
       END DO                                                              LIFPAR3A.253    
       END DO                                                              LIFPAR3A.254    
C                                                                          LIFPAR3A.255    
       END IF                                                              LIFPAR3A.256    
C                                                                          LIFPAR3A.257    
C-----------------------------------------------------------------------   LIFPAR3A.258    
C   CALCULATE WHERE THE PARCEL IS SUPERSATURATED (IE WHERE GAMMA(K+1)=1    LIFPAR3A.259    
C   SEE DCTN 29 PAGE 123)                                                  LIFPAR3A.260    
C-----------------------------------------------------------------------   LIFPAR3A.261    
C                                                                          LIFPAR3A.262    
C                                                                          LIFPAR3A.263    
C-----------------------------------------------------------------------   LIFPAR3A.264    
C CONVERT POTENTIAL TEMPERATURE TO TEMPERATURE AND CALCULATE               LIFPAR3A.265    
C PRESSURE OF LAYER K FOR CALCULATION OF SATURATED                         LIFPAR3A.266    
C MIXING RATIO                                                             LIFPAR3A.267    
C-----------------------------------------------------------------------   LIFPAR3A.268    
C                                                                          LIFPAR3A.269    
      DO I=1,NPNTS                                                         LIFPAR3A.270    
       TT(I) = THPKP1(I)*EXKP1(I)                                          LIFPAR3A.271    
      END DO                                                               LIFPAR3A.272    
      CALL QSAT (QSPKP1,TT,PKP1,NPNTS)                                     LIFPAR3A.273    
C                                                                          LIFPAR3A.274    
      DO 20 I=1,NPNTS                                                      LIFPAR3A.275    
       BGMKP1(I) = QPKP1(I) .GT. QSPKP1(I)                                 LIFPAR3A.276    
CL                                                                         LIFPAR3A.277    
CL----------------------------------------------------------------------   LIFPAR3A.278    
CL  CONDENSATION CALCULATION                                               LIFPAR3A.279    
CL                                                                         LIFPAR3A.280    
CL  SUBROUTINE LATENT_H                                                    LIFPAR3A.281    
CL                                                                         LIFPAR3A.282    
CL  UM DOCUMENTATION PAPER P27                                             LIFPAR3A.283    
CL  SECTION (4)                                                            LIFPAR3A.284    
CL----------------------------------------------------------------------   LIFPAR3A.285    
CL                                                                         LIFPAR3A.286    
       THPKP1T(I) = THPKP1(I)                                              LIFPAR3A.287    
   20 CONTINUE                                                             LIFPAR3A.288    
C                                                                          LIFPAR3A.289    
      CALL LATENT_H (NPNTS,THPKP1T,QPKP1,THEKP1,QSEKP1,DQSKP1,             LIFPAR3A.290    
     *               BGMKP1,BWKP1,EXKP1)                                   LIFPAR3A.291    
C                                                                          LIFPAR3A.292    
C-----------------------------------------------------------------------   LIFPAR3A.293    
C   CALCULATE A MORE ACCURATE PARCEL SATURATED MIXING RATIO AND CONDENSE   LIFPAR3A.294    
C   OUT ANY EXCESS WATER VAPOUR. STORE THE EXCESS AMOUNTS IN 'XSQKP1'      LIFPAR3A.295    
C   FOR LATER.  SET PARCEL POTENTIAL TEMPERATURES TO THE PROVISIONAL       LIFPAR3A.296    
C   VALUES EXCEPT WHERE THE PARCEL IS NOT SUPERSATURATED WRT THE NEW       LIFPAR3A.297    
C   SATURATED MIXING RATIO. RECALCULATE BIT VECTOR 'BGMKP1'.               LIFPAR3A.298    
C-----------------------------------------------------------------------   LIFPAR3A.299    
C                                                                          LIFPAR3A.300    
C                                                                          LIFPAR3A.301    
C-----------------------------------------------------------------------   LIFPAR3A.302    
C CONVERT POTENTIAL TEMPERATURE TO TEMPERATURE AND CALCULATE               LIFPAR3A.303    
C PRESSURE OF LAYER K FOR CALCULATION OF SATURATED                         LIFPAR3A.304    
C MIXING RATIO                                                             LIFPAR3A.305    
C-----------------------------------------------------------------------   LIFPAR3A.306    
C                                                                          LIFPAR3A.307    
      DO 35 I = 1,NPNTS                                                    LIFPAR3A.308    
       TT(I) = THPKP1T(I)*EXKP1(I)                                         LIFPAR3A.309    
   35 CONTINUE                                                             LIFPAR3A.310    
      CALL QSAT (QSPKP1,TT,PKP1,NPNTS)                                     LIFPAR3A.311    
C                                                                          LIFPAR3A.312    
      DO 40 I=1,NPNTS                                                      LIFPAR3A.313    
       XSQKP1(I) = QPKP1(I) - QSPKP1(I)                                    LIFPAR3A.314    
C                                                                          LIFPAR3A.315    
       IF(XSQKP1(I) .LE. 0.0) THEN                                         LIFPAR3A.316    
         BGMKP1(I) = .FALSE.                                               LIFPAR3A.317    
         XSQKP1(I) = 0.0                                                   LIFPAR3A.318    
       ELSE                                                                LIFPAR3A.319    
         BGMKP1(I) = .TRUE.                                                LIFPAR3A.320    
         THPKP1(I) = THPKP1T(I)                                            LIFPAR3A.321    
       END IF                                                              LIFPAR3A.322    
C                                                                          LIFPAR3A.323    
       QPKP1(I) = QPKP1(I) - XSQKP1(I)                                     LIFPAR3A.324    
   40 CONTINUE                                                             LIFPAR3A.325    
C                                                                          LIFPAR3A.326    
      RETURN                                                               LIFPAR3A.327    
      END                                                                  LIFPAR3A.328    
*ENDIF                                                                     LIFPAR3A.329