*IF DEF,A06_3A                                                             GWLEE3A.2      
C ******************************COPYRIGHT******************************    GTS2F400.3601   
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.3602   
C                                                                          GTS2F400.3603   
C Use, duplication or disclosure of this code is subject to the            GTS2F400.3604   
C restrictions as set forth in the contract.                               GTS2F400.3605   
C                                                                          GTS2F400.3606   
C                Meteorological Office                                     GTS2F400.3607   
C                London Road                                               GTS2F400.3608   
C                BRACKNELL                                                 GTS2F400.3609   
C                Berkshire UK                                              GTS2F400.3610   
C                RG12 2SZ                                                  GTS2F400.3611   
C                                                                          GTS2F400.3612   
C If no contract has been raised with this copy of the code, the use,      GTS2F400.3613   
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.3614   
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.3615   
C Modelling at the above address.                                          GTS2F400.3616   
C ******************************COPYRIGHT******************************    GTS2F400.3617   
C                                                                          GTS2F400.3618   
!  SUBROUTINE GW_LEE TO CALCULATE ADDITIONAL TRAPPED LEE WAVE DRAG         GWLEE3A.3      
!                                                                          GWLEE3A.4      

      SUBROUTINE GW_LEE                                                     2GWLEE3A.5      
     1  (PSTAR,START_L,LEVELS,POINTS,AKH,BKH,DELTA_AK,DELTA_BK             GWLEE3A.6      
     2  ,U_S,V_S,RHO_S,L_LEE,LSQ,H_LEE,K_LEE,KAY_LEE                       ASW1F403.38     
     3  ,SIGMA_XX,SIGMA_XY,SIGMA_YY,DU_DT,DV_DT                            GWLEE3A.8      
! Diagnostics                                                              GWLEE3A.9      
     4  ,STRESS_UD,POINTS_STRESS_UD,STRESS_UD_ON                           GWLEE3A.10     
     5  ,STRESS_VD,POINTS_STRESS_VD,STRESS_VD_ON                           GWLEE3A.11     
     6  ,DU_DT_LEE,POINTS_DU_DT_LEE,DU_DT_LEE_ON                           GWLEE3A.12     
     7  ,DV_DT_LEE,POINTS_DV_DT_LEE,DV_DT_LEE_ON )                         GWLEE3A.13     
                                                                           GWLEE3A.14     
      IMPLICIT NONE                                                        GWLEE3A.15     
! Description:                                                             GWLEE3A.16     
!             TO CALCULATE DRAG/STRESS PROFILE DUE TO SUBGRID-SCALE        GWLEE3A.17     
!             OROGRAPHIC GRAVITY WAVES FOR TRAPPED LEE WAVE STATES         GWLEE3A.18     
!                                                                          GWLEE3A.19     
! Method: UNIFIED MODEL DOCUMENTATION PAPER NO. ?                          GWLEE3A.20     
!         THE EQUATIONS USED ARE (???) TO (???)                            GWLEE3A.21     
!                                                                          GWLEE3A.22     
! Current code owner: S.Webster                                            ASW1F403.39     
!                                                                          GWLEE3A.24     
! History:                                                                 GWLEE3A.25     
! Version  Date      Comment                                               GWLEE3A.26     
!  3.4   18/10/94   Original Code. J.R.Mitchell                            GWLEE3A.27     
!  4.3    7/03/97   KAY_LEE passed in from namelist. S.Webster             ASW1F403.40     
!  4.4   19/09/97   Remove *IF -DEF,CRAY compile options. S.Webster        ASW1F404.23     
!                                                                          GWLEE3A.28     
! Code Description:                                                        GWLEE3A.29     
! Language: Fortran 77 + common extensions                                 GWLEE3A.30     
! This code is written to UMDP3 v6 programming standards.                  GWLEE3A.31     
! System component covered: ORIGINAL VERSION FOR CRAY Y-MP                 GWLEE3A.32     
! System task covered: PART OF P22                                         GWLEE3A.33     
! SUITABLE FOR SINGLE COLUMN USE,ROTATED GRIDS                             GWLEE3A.34     
! FURTHER ALTERATIONS MAY BE REQUIRED FOR AUTOTASKING EFFICIENCY           GWLEE3A.35     
                                                                           GWLEE3A.36     
! Global Variables                                                         GWLEE3A.37     
*CALL C_G                                                                  GWLEE3A.38     
! Local constants                                                          GWLEE3A.39     
*CALL C_GWAVE                                                              GWLEE3A.40     
! Subroutine arguements;                                                   GWLEE3A.41     
      INTEGER                                                              GWLEE3A.42     
     * LEVELS              !IN    NUMBER OF MODEL LEVELS                   GWLEE3A.43     
     *,START_L             !IN    START LEVEL FOR WAVE-BREAKING TEST       GWLEE3A.44     
     *,POINTS              !IN    NUMBER OF POINTS                         GWLEE3A.45     
     *,POINTS_STRESS_UD    !IN    ) No of land points in diagnostic        GWLEE3A.46     
     *,POINTS_STRESS_VD    !IN    ) arrays for GW stress - u and v         GWLEE3A.47     
     *,POINTS_DU_DT_LEE    !IN    ) No of land points in diagnostic        GWLEE3A.48     
     *,POINTS_DV_DT_LEE    !IN    ) arrays for GW lee - du and dv          GWLEE3A.49     
     *,K_LEE(POINTS,2)     !IN    1. LEVEL OF LEE HEIGHT INTERFACE         GWLEE3A.50     
     *                     !      2. LEVEL OF LEE HEIGHT TOP               GWLEE3A.51     
                                                                           GWLEE3A.52     
      LOGICAL                                                              GWLEE3A.53     
     * L_LEE(POINTS)       !IN    TRUE IF POINT IS TO BE LINEARIZED        GWLEE3A.54     
     *,STRESS_UD_ON        !IN    U STRESS DIAGNOSTIC SWITCH               GWLEE3A.55     
     *,STRESS_VD_ON        !IN    V STRESS DIAGNOSTIC SWITCH               GWLEE3A.56     
     *,DU_DT_LEE_ON        !IN    U-ACCELN LEE WAVE COMPT SWITCH           GWLEE3A.57     
     *,DV_DT_LEE_ON        !IN    V-ACCELN LEE WAVE COMPT SWITCH           GWLEE3A.58     
                                                                           GWLEE3A.59     
      REAL                                                                 GWLEE3A.60     
     * PSTAR(POINTS)               !IN    PSTAR FIELD                      GWLEE3A.61     
     *,U_S(POINTS)                 !IN    'SURFACE' U FIELD                GWLEE3A.62     
     *,V_S(POINTS)                 !IN    'SURFACE' V FIELD                GWLEE3A.63     
     *,RHO_S(POINTS)               !IN    'SURFACE' LAYER DENSITY          GWLEE3A.64     
!      AKH,BKH  DEFINE HYBRID VERTICAL COORDINATES P=A+BP*-LAYER EDGES,    GWLEE3A.65     
!      DELTA_AK,DELTA_BK  DEFINE PRESSURE DIFFERENCES ACROSS LAYERS        GWLEE3A.66     
     *,AKH(LEVELS+1)          !IN    VALUE AT LAYER BOUNDARY               GWLEE3A.67     
     *,BKH(LEVELS+1)          !IN    VALUE AT LAYER BOUMDARY               GWLEE3A.68     
     *,DELTA_AK(LEVELS)       !IN    DIFFERENCE ACROSS LAYER               GWLEE3A.69     
     *,DELTA_BK(LEVELS)       !IN    DIFFERENCE ACROSS LAYER               GWLEE3A.70     
     *,DU_DT(POINTS,LEVELS)   !IN/OUT   U-ACCELERATION                     GWLEE3A.71     
     *,DV_DT(POINTS,LEVELS)   !IN/OUT   V-ACCELERATION                     GWLEE3A.72     
     *,H_LEE(POINTS)          !IN    LEE HEIGHT                            GWLEE3A.73     
     *,LSQ(POINTS,2)          !IN    SCORER PARAMETER ABOVE AND            GWLEE3A.74     
     *                        !IN    BELOW LEE HEIGHT                      GWLEE3A.75     
     *,KAY_LEE                !IN    TRAPPED LEE WAVE CONSTANT             ASW1F403.41     
     *,SIGMA_XX(POINTS)       !IN    OROGRAPHIC GRADIENT IN X-DIRN.        GWLEE3A.76     
     *,SIGMA_XY(POINTS)       !IN    OROGRAPHIC GRADIENT IN X/Y-DIRN       GWLEE3A.77     
     *,SIGMA_YY(POINTS)       !IN    OROGRAPHIC GRADIENT IN Y-DIRN.        GWLEE3A.78     
     *,STRESS_UD(POINTS_STRESS_UD,LEVELS+1) !U STRESS  DIAGNOSTIC          GWLEE3A.79     
     *,STRESS_VD(POINTS_STRESS_VD,LEVELS+1) !V STRESS  DIAGNOSTIC          GWLEE3A.80     
     *,DU_DT_LEE(POINTS_DU_DT_LEE,LEVELS)   !U-ACCELN LEE WAVE             GWLEE3A.81     
     *,DV_DT_LEE(POINTS_DV_DT_LEE,LEVELS)   !V-ACCELN LEE WAVE             GWLEE3A.82     
                                                                           GWLEE3A.83     
! Local parameters                                                         GWLEE3A.84     
! Local scalers                                                            GWLEE3A.85     
      REAL                                                                 GWLEE3A.86     
     * DELTA_P,DELTA_P1,DELTA_P2 ! DIFFERENCES IN PRESSURE                 GWLEE3A.87     
     *,PHASE                 ! PHASE ACROSS LEE INTERFACE (TUNABLE)        GWLEE3A.88     
     *,ALPHA_L               ! TANGENT OF PHASE                            GWLEE3A.89     
     *,AL_SQ                 ! ALPHA_L SQUARED                             GWLEE3A.90     
     *,AL_SQ_PLUS1           ! ALPHA_L SQUARED PLUS 1                      GWLEE3A.91     
     *,GAMMA                 ! PHASE OVER ALPHA                            GWLEE3A.92     
     *,CONST                 ! CALCULATION CONSTANT OVER POINTS            GWLEE3A.93     
     *,M2_SQ                 ! M_2 (UPPER VERTICAL WAVE NO) SQUARED        GWLEE3A.94     
     *,K_SQ                  ! HORIZONTAL WAVE NO. SQUARED                 GWLEE3A.95     
     *,CALC1,CALC2           ! CALCULATIONS                                GWLEE3A.96     
     *,SPEED_SQ,SPEED        ! 'SURFACE' WIND SPEED CALCULATIONS           GWLEE3A.97     
     *,COS,SIN               ! DIRECTION OF SURFACE WIND                   GWLEE3A.98     
     *,DELTA_PHI             ! ANGULAR WIDTH COEFFICIENT                   GWLEE3A.99     
     *,DELTA_AK_SUM ! DELTA_AK SUMMED OVER LOWEST LAYERS UP TO START_L     GWLEE3A.100    
     *,DELTA_BK_SUM ! DELTA_BK SUMMED OVER LOWEST LAYERS UP TO START_L     GWLEE3A.101    
     *,PU,PL                                                               GWLEE3A.102    
     *,KayLee_x_DeltaPhi                                                   ASW1F403.42     
      PARAMETER ( DELTA_PHI = 1.0 )                                        ASW1F403.43     
                                                                           GWLEE3A.103    
      INTEGER   I,K    ! LOOP COUNTER IN ROUTINE                           GWLEE3A.104    
      INTEGER   KK,KL,KU,KT ! LEVEL COUNTERS IN ROUTINE                    GWLEE3A.105    
                                                                           GWLEE3A.106    
! Local dynamic arrays                                                     GWLEE3A.107    
! LOCAL WORKSPACE ARRAYS: 12  ARRAYS OF FULL FIELD LENGTH                  GWLEE3A.108    
!                                                                          GWLEE3A.109    
                                                                           ASW1F404.24     
      REAL                                                                 GWLEE3A.116    
     * X_STRESS(POINTS,2)    ! X_STRESSES (LAYER BOUNDARIES)               GWLEE3A.117    
     *,Y_STRESS(POINTS,2)    ! Y_STRESSES (LAYER BOUNDARIES)               GWLEE3A.118    
     *,DP_X_STRESS(POINTS,2) ! STRESS X_GRADIENTS                          GWLEE3A.119    
     *                       ! 1.BELOW  2.ABOVE LEE HEIGHT INTERFACE       GWLEE3A.120    
     *,DP_Y_STRESS(POINTS,2) ! STRESS Y_GRADIENTS                          GWLEE3A.121    
     *,X_LEE_STRESS(POINTS)  ! LEE WAVE X-STRESS AT SURFACE                GWLEE3A.122    
     *,Y_LEE_STRESS(POINTS)  ! LEE WAVE Y-STRESS AT SURFACE                GWLEE3A.123    
     *,RATIO(POINTS)         ! RATIO OF STRESS AT LEE HEIGHT TO            GWLEE3A.124    
     *                       ! TRAPPED LEE WAVE STRESS AT SURF             GWLEE3A.125    
                                                                           GWLEE3A.127    
! Function and subroutine calls: NONE                                      GWLEE3A.128    
                                                                           GWLEE3A.129    
!-----------------------------------------------------------------         GWLEE3A.130    
!   1. PRELIMINARIES                                                       GWLEE3A.131    
!-----------------------------------------------------------------         GWLEE3A.132    
                                                                           GWLEE3A.133    
CFPP$ NOCONCUR L                                                           GWLEE3A.134    
!      TREAT LAYERS BELOW AND INCLUDING START_L AS ONE LAYER               GWLEE3A.135    
        DELTA_AK_SUM = 0.0                                                 GWLEE3A.136    
        DELTA_BK_SUM = 0.0                                                 GWLEE3A.137    
      DO K=2,START_L                                                       GWLEE3A.138    
        DELTA_AK_SUM = DELTA_AK_SUM + DELTA_AK(K)                          GWLEE3A.139    
        DELTA_BK_SUM = DELTA_BK_SUM + DELTA_BK(K)                          GWLEE3A.140    
      END DO                                                               GWLEE3A.141    
CFPP$ CONCUR                                                               GWLEE3A.142    
                                                                           GWLEE3A.143    
      KayLee_x_DeltaPhi = KAY_LEE * DELTA_PHI                              ASW1F403.44     
      PHASE= LEE_PHASE*3.14159                                             GWLEE3A.145    
                                                                           GWLEE3A.146    
      ALPHA_L    = TAN(PHASE)                                              GWLEE3A.147    
      AL_SQ      = ALPHA_L*ALPHA_L                                         GWLEE3A.148    
      AL_SQ_PLUS1= AL_SQ+1.0                                               GWLEE3A.149    
      GAMMA      = PHASE/ALPHA_L                                           GWLEE3A.150    
      CONST      = (GAMMA-1.) /(2*AL_SQ*GAMMA**3)                          GWLEE3A.151    
                                                                           GWLEE3A.152    
      KL=1                                                                 GWLEE3A.153    
      KU=2                                                                 GWLEE3A.154    
      KT=3                                                                 GWLEE3A.155    
!---------------------------------------------------------------------     GWLEE3A.156    
!   2. CALCULATE TRAPPED LEE WAVE SURFACE STRESS, UW(SURF)                 GWLEE3A.157    
!      CALCULATE INTERFACE STRESS RATIO  UW(Z=H)/UW(SURF)                  GWLEE3A.158    
!      CALCLATED STRESS GRADIENTS USING LINEAR INTERPOLATION               GWLEE3A.159    
!      BETWEEN UW(SURF)/UW(Z=H) AND UW(Z=H)/0.0(Z=2H)                      GWLEE3A.160    
!---------------------------------------------------------------------     GWLEE3A.161    
                                                                           GWLEE3A.162    
      DO I=1,POINTS                                                        GWLEE3A.163    
        IF( L_LEE(I) ) THEN                                                GWLEE3A.164    
                                                                           GWLEE3A.165    
! Calculate Ratio                                                          GWLEE3A.166    
          M2_SQ= (LSQ(I,1)-LSQ(I,2)) / AL_SQ_PLUS1                         GWLEE3A.167    
          RATIO(I)= AL_SQ*LSQ(I,2) /                                       GWLEE3A.168    
     *      ( (LSQ(I,1)+AL_SQ*LSQ(I,2))*(H_LEE(I)*SQRT(M2_SQ)+1.) )        GWLEE3A.169    
! Calculate surface lee wave stress                                        GWLEE3A.170    
          K_SQ = ( LSQ(I,1)+AL_SQ*LSQ(I,2) ) / AL_SQ_PLUS1                 GWLEE3A.171    
          CALC1= CONST*(H_LEE(I)**3)*(K_SQ**0.75)                          GWLEE3A.172    
          SPEED_SQ = U_S(I)*U_S(I)+V_S(I)*V_S(I)                           GWLEE3A.173    
          SPEED    = SQRT(SPEED_SQ)                                        GWLEE3A.174    
          IF( SPEED.LE.0.0 ) THEN                                          GWLEE3A.175    
             L_LEE(I)=.FALSE.                                              GWLEE3A.176    
          ELSE                                                             GWLEE3A.177    
            COS      = U_S(I)/SPEED                                        GWLEE3A.178    
            SIN      = V_S(I)/SPEED                                        GWLEE3A.179    
            CALC2= 0.75*(  SIGMA_XX(I)*(4.*COS*COS - 1.)                   GWLEE3A.180    
     *                  +  SIGMA_XY(I)*(8.*COS*SIN)                        GWLEE3A.181    
     *                  +  SIGMA_YY(I)*(4.*SIN*SIN - 1.)  )                GWLEE3A.182    
! If CALC2 is negavive then stress opposses surface wind                   GWLEE3A.183    
! This can occur in error if surface wind is at acute angle to a ridge.    GWLEE3A.184    
            IF ( CALC2.LT.0.0 ) THEN                                       GWLEE3A.185    
              CALC2 = 0.0                                                  GWLEE3A.186    
            ENDIF                                                          GWLEE3A.187    
            Y_LEE_STRESS(I)=                                               GWLEE3A.188    
     *          SPEED*RHO_S(I)*KayLee_x_DeltaPhi*CALC2/CALC1               ASW1F403.45     
            X_LEE_STRESS(I)= Y_LEE_STRESS(I)*U_S(I)                        GWLEE3A.190    
            Y_LEE_STRESS(I)= Y_LEE_STRESS(I)*V_S(I)                        GWLEE3A.191    
! Calculate stress gradients                                               GWLEE3A.192    
            PU=PSTAR(I)*BKH(K_LEE(I,1)+1) + AKH(K_LEE(I,1)+1)              GWLEE3A.193    
            PL=PSTAR(I)*BKH(START_L) + AKH(START_L)                        GWLEE3A.194    
            DELTA_P1= PL - PU                                              GWLEE3A.195    
            PL=PSTAR(I)*BKH(K_LEE(I,2)+1) + AKH(K_LEE(I,2)+1)              GWLEE3A.196    
            DELTA_P2= PU - PL                                              GWLEE3A.197    
            DP_X_STRESS(I,1) = (1.-RATIO(I))*X_LEE_STRESS(I)/              GWLEE3A.198    
     &                                   ( DELTA_P1 )                      GWLEE3A.199    
            DP_Y_STRESS(I,1) = (1.-RATIO(I))*Y_LEE_STRESS(I)/              GWLEE3A.200    
     &                                   ( DELTA_P1 )                      GWLEE3A.201    
            DP_X_STRESS(I,2) = (RATIO(I))*X_LEE_STRESS(I)/                 GWLEE3A.202    
     &                                   ( DELTA_P2 )                      GWLEE3A.203    
            DP_Y_STRESS(I,2) = (RATIO(I))*Y_LEE_STRESS(I)/                 GWLEE3A.204    
     &                                   ( DELTA_P2 )                      GWLEE3A.205    
                                                                           GWLEE3A.206    
          ENDIF ! Speed<=0                                                 GWLEE3A.207    
                                                                           GWLEE3A.208    
        ENDIF ! if L_LEE(I)                                                GWLEE3A.209    
                                                                           GWLEE3A.210    
      END DO  ! Points                                                     GWLEE3A.211    
                                                                           GWLEE3A.212    
      IF( STRESS_UD_ON ) THEN                                              GWLEE3A.213    
        DO I=1,POINTS                                                      GWLEE3A.214    
          IF( L_LEE(I) ) THEN                                              GWLEE3A.215    
            X_STRESS(I,KL) = X_LEE_STRESS(I)                               GWLEE3A.216    
            STRESS_UD(I,START_L) = STRESS_UD(I,START_L)+X_STRESS(I,KL)     GWLEE3A.217    
          ENDIF                                                            GWLEE3A.218    
        END DO                                                             GWLEE3A.219    
      ENDIF                                                                GWLEE3A.220    
                                                                           GWLEE3A.221    
      IF( STRESS_VD_ON ) THEN                                              GWLEE3A.222    
        DO I=1,POINTS                                                      GWLEE3A.223    
          IF( L_LEE(I) ) THEN                                              GWLEE3A.224    
            Y_STRESS(I,KL) = Y_LEE_STRESS(I)                               GWLEE3A.225    
            STRESS_VD(I,START_L) = STRESS_VD(I,START_L)+Y_STRESS(I,KL)     GWLEE3A.226    
          ENDIF                                                            GWLEE3A.227    
        END DO                                                             GWLEE3A.228    
      ENDIF                                                                GWLEE3A.229    
                                                                           GWLEE3A.230    
!------------------------------------------------------------------        GWLEE3A.231    
!    3 LOOP LEVELS                                                         GWLEE3A.232    
!------------------------------------------------------------------        GWLEE3A.233    
      DO K=START_L,LEVELS                                                  GWLEE3A.234    
                                                                           GWLEE3A.235    
                                                                           GWLEE3A.236    
        DO I=1,POINTS                                                      GWLEE3A.237    
          IF( L_LEE(I) .AND. K.LE.K_LEE(I,1) ) THEN                        GWLEE3A.238    
                                                                           GWLEE3A.239    
            IF( K .EQ. START_L ) THEN                                      GWLEE3A.240    
              DELTA_P =(DELTA_AK(START_L)+DELTA_BK(START_L)*PSTAR(I))      GWLEE3A.241    
     &               /( DELTA_AK_SUM     +DELTA_BK_SUM*PSTAR(I) )          GWLEE3A.242    
              DU_DT(I,START_L) = DU_DT(I,START_L) -                        GWLEE3A.243    
     &                           G*DP_X_STRESS(I,1)*DELTA_P                GWLEE3A.244    
              DV_DT(I,START_L) = DV_DT(I,START_L) -                        GWLEE3A.245    
     &                           G*DP_Y_STRESS(I,1)*DELTA_P                GWLEE3A.246    
            ELSE                                                           GWLEE3A.247    
              DU_DT(I,K) = DU_DT(I,K) - G*DP_X_STRESS(I,1)                 GWLEE3A.248    
              DV_DT(I,K) = DV_DT(I,K) - G*DP_Y_STRESS(I,1)                 GWLEE3A.249    
            ENDIF                                                          GWLEE3A.250    
                                                                           GWLEE3A.251    
          ELSE IF ( L_LEE(I) .AND. K.LE.K_LEE(I,2) ) THEN                  GWLEE3A.252    
                                                                           GWLEE3A.253    
            DU_DT(I,K) = DU_DT(I,K) - G*DP_X_STRESS(I,2)                   GWLEE3A.254    
            DV_DT(I,K) = DV_DT(I,K) - G*DP_Y_STRESS(I,2)                   GWLEE3A.255    
                                                                           GWLEE3A.256    
          ENDIF  ! if L_LEE .and. K<=K_LEE(I,1) .else. K<=K_LEE(I,2)       GWLEE3A.257    
        END DO ! points                                                    GWLEE3A.258    
                                                                           GWLEE3A.259    
! Diagnostics                                                              GWLEE3A.260    
        IF( DU_DT_LEE_ON ) THEN                                            GWLEE3A.261    
          DO I=1,POINTS                                                    GWLEE3A.262    
            IF( L_LEE(I) .AND. K.LE.K_LEE(I,1) ) THEN                      GWLEE3A.263    
              DU_DT_LEE(I,K) = -G*DP_X_STRESS(I,1)                         GWLEE3A.264    
              IF( K.EQ.START_L ) THEN                                      GWLEE3A.265    
               DELTA_P =(DELTA_AK(START_L)+DELTA_BK(START_L)*PSTAR(I))     GWLEE3A.266    
     &                /( DELTA_AK_SUM     +DELTA_BK_SUM*PSTAR(I) )         GWLEE3A.267    
                DU_DT_LEE(I,K)=DU_DT_LEE(I,K)*DELTA_P                      GWLEE3A.268    
              ENDIF                                                        GWLEE3A.269    
            ELSE IF ( L_LEE(I) .AND. K.LE.K_LEE(I,2) ) THEN                GWLEE3A.270    
              DU_DT_LEE(I,K) = -G*DP_X_STRESS(I,2)                         GWLEE3A.271    
            ENDIF                                                          GWLEE3A.272    
          END DO                                                           GWLEE3A.273    
        ENDIF                                                              GWLEE3A.274    
                                                                           GWLEE3A.275    
        IF( DV_DT_LEE_ON ) THEN                                            GWLEE3A.276    
          DO I=1,POINTS                                                    GWLEE3A.277    
            IF( L_LEE(I) .AND. K.LE.K_LEE(I,1) ) THEN                      GWLEE3A.278    
              DV_DT_LEE(I,K) = -G*DP_Y_STRESS(I,1)                         GWLEE3A.279    
              IF( K.EQ.START_L ) THEN                                      GWLEE3A.280    
               DELTA_P =(DELTA_AK(START_L)+DELTA_BK(START_L)*PSTAR(I))     GWLEE3A.281    
     &                /( DELTA_AK_SUM     +DELTA_BK_SUM*PSTAR(I) )         GWLEE3A.282    
                DV_DT_LEE(I,K)=DV_DT_LEE(I,K)*DELTA_P                      GWLEE3A.283    
              ENDIF                                                        GWLEE3A.284    
            ELSE IF ( L_LEE(I) .AND. K.LE.K_LEE(I,2) ) THEN                GWLEE3A.285    
              DV_DT_LEE(I,K) = -G*DP_Y_STRESS(I,2)                         GWLEE3A.286    
            ENDIF                                                          GWLEE3A.287    
          END DO                                                           GWLEE3A.288    
        ENDIF                                                              GWLEE3A.289    
                                                                           GWLEE3A.290    
! Calculate stress at upper boundary. NB DELTA_P is -ve                    GWLEE3A.291    
        IF( STRESS_UD_ON ) THEN                                            GWLEE3A.292    
          DO I=1,POINTS                                                    GWLEE3A.293    
            IF( L_LEE(I) .AND. K.LE.K_LEE(I,1) ) THEN                      GWLEE3A.294    
              DELTA_P = DELTA_AK(K)+DELTA_BK(K)*PSTAR(I)                   GWLEE3A.295    
              X_STRESS(I,KU)=X_STRESS(I,KL)+DP_X_STRESS(I,1)*DELTA_P       GWLEE3A.296    
              STRESS_UD(I,K+1) = STRESS_UD(I,K+1) + X_STRESS(I,KU)         GWLEE3A.297    
            ELSE IF ( L_LEE(I) .AND. K.LE.K_LEE(I,2) ) THEN                GWLEE3A.298    
              DELTA_P = DELTA_AK(K)+DELTA_BK(K)*PSTAR(I)                   GWLEE3A.299    
              X_STRESS(I,KU)=X_STRESS(I,KL)+DP_X_STRESS(I,2)*DELTA_P       GWLEE3A.300    
              STRESS_UD(I,K+1) = STRESS_UD(I,K+1) + X_STRESS(I,KU)         GWLEE3A.301    
            ENDIF                                                          GWLEE3A.302    
          END DO                                                           GWLEE3A.303    
        ENDIF                                                              GWLEE3A.304    
                                                                           GWLEE3A.305    
        IF( STRESS_VD_ON ) THEN                                            GWLEE3A.306    
          DO I=1,POINTS                                                    GWLEE3A.307    
            IF( L_LEE(I) .AND. K.LE.K_LEE(I,1) ) THEN                      GWLEE3A.308    
              DELTA_P = DELTA_AK(K)+DELTA_BK(K)*PSTAR(I)                   GWLEE3A.309    
              Y_STRESS(I,KU)=Y_STRESS(I,KL)+DP_Y_STRESS(I,1)*DELTA_P       GWLEE3A.310    
              STRESS_VD(I,K+1) = STRESS_VD(I,K+1) + Y_STRESS(I,KU)         GWLEE3A.311    
            ELSE IF ( L_LEE(I) .AND. K.LE.K_LEE(I,2) ) THEN                GWLEE3A.312    
              DELTA_P = DELTA_AK(K)+DELTA_BK(K)*PSTAR(I)                   GWLEE3A.313    
              Y_STRESS(I,KU)=Y_STRESS(I,KL)+DP_Y_STRESS(I,2)*DELTA_P       GWLEE3A.314    
              STRESS_VD(I,K+1) = STRESS_VD(I,K+1) + Y_STRESS(I,KU)         GWLEE3A.315    
            ENDIF                                                          GWLEE3A.316    
          END DO                                                           GWLEE3A.317    
        ENDIF                                                              GWLEE3A.318    
                                                                           GWLEE3A.319    
! Swap storage for lower and upper layers                                  GWLEE3A.320    
        KK=KL                                                              GWLEE3A.321    
        KL=KU                                                              GWLEE3A.322    
        KU=KK                                                              GWLEE3A.323    
                                                                           GWLEE3A.324    
      END DO  ! Levels                                                     GWLEE3A.325    
                                                                           GWLEE3A.326    
      RETURN                                                               GWLEE3A.327    
      END                                                                  GWLEE3A.328    
                                                                           GWLEE3A.329    
*ENDIF                                                                     GWLEE3A.330