*IF DEF,A06_3B                                                             GWLEE3B.2      
C ******************************COPYRIGHT******************************    GWLEE3B.3      
C (c) CROWN COPYRIGHT 1998, METEOROLOGICAL OFFICE, All Rights Reserved.    GWLEE3B.4      
C                                                                          GWLEE3B.5      
C Use, duplication or disclosure of this code is subject to the            GWLEE3B.6      
C restrictions as set forth in the contract.                               GWLEE3B.7      
C                                                                          GWLEE3B.8      
C                Meteorological Office                                     GWLEE3B.9      
C                London Road                                               GWLEE3B.10     
C                BRACKNELL                                                 GWLEE3B.11     
C                Berkshire UK                                              GWLEE3B.12     
C                RG12 2SZ                                                  GWLEE3B.13     
C                                                                          GWLEE3B.14     
C If no contract has been raised with this copy of the code, the use,      GWLEE3B.15     
C duplication or disclosure of it is strictly prohibited.  Permission      GWLEE3B.16     
C to do so must first be obtained in writing from the Head of Numerical    GWLEE3B.17     
C Modelling at the above address.                                          GWLEE3B.18     
C ******************************COPYRIGHT******************************    GWLEE3B.19     
C                                                                          GWLEE3B.20     
!  SUBROUTINE GW_LEE TO CALCULATE ADDITIONAL TRAPPED LEE WAVE DRAG         GWLEE3B.21     
!                                                                          GWLEE3B.22     

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