*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.4SUBROUTINE 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