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