*IF DEF,A06_1A GWRICH1A.2 C ******************************COPYRIGHT****************************** GTS2F400.3637 C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved. GTS2F400.3638 C GTS2F400.3639 C Use, duplication or disclosure of this code is subject to the GTS2F400.3640 C restrictions as set forth in the contract. GTS2F400.3641 C GTS2F400.3642 C Meteorological Office GTS2F400.3643 C London Road GTS2F400.3644 C BRACKNELL GTS2F400.3645 C Berkshire UK GTS2F400.3646 C RG12 2SZ GTS2F400.3647 C GTS2F400.3648 C If no contract has been raised with this copy of the code, the use, GTS2F400.3649 C duplication or disclosure of it is strictly prohibited. Permission GTS2F400.3650 C to do so must first be obtained in writing from the Head of Numerical GTS2F400.3651 C Modelling at the above address. GTS2F400.3652 C ******************************COPYRIGHT****************************** GTS2F400.3653 C GTS2F400.3654 CLL SUBROUTINE GW_RICH------------------------------------------ GWRICH1A.3 CLL GWRICH1A.4 CLL PURPOSE: TO CALCULATE STRESS PROFILE DUE TO SUBGRID-SCALE GWRICH1A.5 CLL OROGRAPHIC GRAVITY WAVES AND HENCE DRAG ON MEAN FLOW. GWRICH1A.6 CLL THE WAVES PROPOGATE VERTICALLY WITH STRESS INDEPENDENT GWRICH1A.7 CLL HEIGHT UNLESS A CRITICAL LEVEL OR WAVE BREAKING IS GWRICH1A.8 CLL DIAGNOSED. A MINIMUM RICHARDSON NUMBER CRITERION GWRICH1A.9 CLL DETERMINES WHERE THIS OCCURS AND THE WAVE AMPLITUDE GWRICH1A.10 CLL AND STRESS REDUCED SO THAT THE WAVES ARE MAINTAINED GWRICH1A.11 CLL AT MARGINAL STABILITY. GWRICH1A.12 CLL SUITABLE FOR SINGLE COLUMN USE GWRICH1A.13 CLL GWRICH1A.14 CLL SUITABLE FOR ROTATED GRIDS GWRICH1A.15 CLL GWRICH1A.16 CLL ORIGINAL VERSION FOR CRAY Y-MP GWRICH1A.17 CLL WRITTEN BY C. WILSON GWRICH1A.18 CLL FURTHER ALTERATIONS MAY BE REQUIRED FOR AUTOTASKING EFFICIENCY GWRICH1A.19 CLL GWRICH1A.20 CLL MODEL MODIFICATION HISTORY FROM MODEL VERSION 3.0: GWRICH1A.21 CLL VERSION DATE GWRICH1A.22 CLL GWRICH1A.23 CLL 3.3 25/10/93 Removal of DIAG06 directive. New arguments to DR251093.89 CLL dimension diagnostic arrays. D. Robinson. DR251093.90 CLL 3.4 24/09/94 Test correct diagnostic switch for GW Stress ADR4F304.1 CLL v component. D. Robinson. ADR4F304.2 CLL DR251093.91 CLL 4.4 19/09/97 Remove *IF -DEF,CRAY compile options. S.Webster ASW1F404.3 CLL ASW1F404.4 CLL PROGRAMMING STANDARD: UNIFIED MODEL DOCUMENTATION PAPER NO. 4, GWRICH1A.24 CLL VERSION 1, DATED 12/09/89 GWRICH1A.25 CLL GWRICH1A.26 CLL logical components covered: P22 GWRICH1A.27 CLL GWRICH1A.28 CLL SYSTEM TASK: PART OF P22 GWRICH1A.29 CLL GWRICH1A.30 CLL DOCUMENTATION: THE EQUATIONS USED ARE (2.6) TO (2.10) GWRICH1A.31 CLL IN UNIFIED MODEL DOCUMENTATION PAPER NO 22 GWRICH1A.32 CLL C. A. WILSON AND R. SWINBANK GWRICH1A.33 CLL VERSION 1,DATED 15/12/89 GWRICH1A.34 CLLEND------------------------------------------------------------- GWRICH1A.35 GWRICH1A.36 C GWRICH1A.37 C*L ARGUMENTS:--------------------------------------------------- GWRICH1A.38SUBROUTINE GW_RICH 1GWRICH1A.39 1 (PSTAR,PEXNER,THETA,U,V,S_STRESS,START_L,LEVELS,POINTS, GWRICH1A.40 2 AKH,BKH,DELTA_AK,DELTA_BK,KAY,SIN_A,COS_A, GWRICH1A.41 3 DU_DT,DV_DT, DR251093.92 4 STRESS_UD_LAND,LAND_POINTS_UD,STRESS_UD_ON, DR251093.93 5 STRESS_VD_LAND,LAND_POINTS_VD,STRESS_VD_ON) DR251093.94 GWRICH1A.53 IMPLICIT NONE GWRICH1A.54 GWRICH1A.55 INTEGER GWRICH1A.56 * LEVELS !IN NUMBER OF MODEL LEVELS GWRICH1A.57 *,START_L !IN START LEVEL FOR WAVE-BREAKING TEST GWRICH1A.58 *,POINTS !IN NUMBER OF POINTS GWRICH1A.59 *,LAND_POINTS_UD !IN ) No of land points in diagnostic DR251093.95 *,LAND_POINTS_VD !IN ) arrays for GW stress - u and v. DR251093.96 GWRICH1A.61 REAL GWRICH1A.62 * PSTAR(POINTS) !IN PSTAR FIELD GWRICH1A.63 *,PEXNER(POINTS,LEVELS+1) !IN PEXNER GWRICH1A.64 *,THETA(POINTS,LEVELS) !IN THETA FIELD GWRICH1A.65 *,U(POINTS,LEVELS) !IN U FIELD GWRICH1A.66 *,V(POINTS,LEVELS) !IN V FIELD GWRICH1A.67 *,S_STRESS(POINTS) !IN 'SURFACE' STRESS GWRICH1A.68 C AKH,BKH DEFINE HYBRID VERTICAL COORDINATES P=A+BP*-LAYER EDGES, GWRICH1A.69 C DELTA_AK,DELTA_BK DEFINE PRESSURE DIFFERENCES ACROSS LAYERS GWRICH1A.70 REAL GWRICH1A.71 * AKH(LEVELS+1) !IN VALUE AT LAYER BOUNDARY GWRICH1A.72 *,BKH(LEVELS+1) !IN VALUE AT LAYER BOUMDARY GWRICH1A.73 *,DELTA_AK (LEVELS) !IN DIFFERENCE ACROSS LAYER GWRICH1A.74 *,DELTA_BK (LEVELS) !IN DIFFERENCE ACROSS LAYER GWRICH1A.75 *,KAY !IN stress constant (m-1) GWRICH1A.76 *,SIN_A(POINTS) !IN SIN (STRESS DIRECTION FROM NORTH) GWRICH1A.77 *,COS_A(POINTS) !IN COS (STRESS DIRECTION FROM NORTH) GWRICH1A.78 *,DU_DT(POINTS,LEVELS) !OUT U-ACCELERATION GWRICH1A.79 *,DV_DT(POINTS,LEVELS) !OUT V-ACCELERATION GWRICH1A.80 *,STRESS_UD_LAND(LAND_POINTS_UD,LEVELS+1) !U STRESS DIAGNOSTIC DR251093.97 *,STRESS_VD_LAND(LAND_POINTS_VD,LEVELS+1) !V STRESS DIAGNOSTIC DR251093.98 GWRICH1A.81 LOGICAL DR251093.99 + STRESS_UD_ON ! ) Diagnostic switches for GW stress - DR251093.100 + ,STRESS_VD_ON ! ) u and v (Item Nos 201 and 202) DR251093.101 GWRICH1A.89 C*--------------------------------------------------------------------- GWRICH1A.90 GWRICH1A.91 C*L WORKSPACE USAGE:------------------------------------------------- GWRICH1A.92 C DEFINE LOCAL WORKSPACE ARRAYS: GWRICH1A.93 C 10 REAL ARRAYS OF FULL FIELD LENGTH REQUIRED GWRICH1A.94 C GWRICH1A.95 GWRICH1A.101 REAL GWRICH1A.102 * DZ(POINTS,3) ! HEIGHT DIFFERENCES IN EACH HALF LAYER GWRICH1A.103 *,T(POINTS,2) ! TEMPERATURES (LEVELS) GWRICH1A.104 *,SPEED(POINTS,2) ! WIND SPEEDS (LEVELS) GWRICH1A.105 *,STRESS(POINTS,2) ! STRESSES (LAYER BOUNDARIES) GWRICH1A.106 *,DRAG(POINTS) ! DRAG EXERTED ON LAYER(IN DIRECTION OF GWRICH1A.107 * ! SURFACE STRESS GWRICH1A.108 GWRICH1A.110 C*--------------------------------------------------------------------- GWRICH1A.111 C GWRICH1A.112 C*L EXTERNAL SUBROUTINES CALLED--------------------------------------- GWRICH1A.113 C NONE GWRICH1A.114 C*------------------------------------------------------------------ GWRICH1A.115 CL MAXIMUM VECTOR LENGTH ASSUMED = POINTS GWRICH1A.116 CL--------------------------------------------------------------------- GWRICH1A.117 C---------------------------------------------------------------------- GWRICH1A.118 C GWRICH1A.119 C DEFINE LOCAL VARIABLES GWRICH1A.120 C LOCAL VARIABLES: GWRICH1A.121 C GWRICH1A.122 REAL GWRICH1A.123 * RHO ! DENSITY AT LAYER BOUNDARY GWRICH1A.124 *,TB ! TEMPERATURE AT LAYER BOUNDARY GWRICH1A.125 *,SPEEDB ! WIND SPEEDS AT LAYER BOUNDARY GWRICH1A.126 *,DZB ! HEIGHT DIFFERENCE ACROSS LAYER BOUNDARY GWRICH1A.127 *,N ! BRUNT_VAISALA FREQUENCY GWRICH1A.128 *,N_SQ ! SQUARE OF BRUNT_VAISALA FREQUENCY GWRICH1A.129 *,AMPL ! WAVE-AMPLITUDE GWRICH1A.130 *,DV_DZ ! MAGNITUDE OF WIND SHEAR GWRICH1A.131 *,RI ! MINIMUM RICHARDSON NUMBER GWRICH1A.132 *,EPSILON ! MAX WAVE-AMPLITUDE*N**2/WIND SPEED GWRICH1A.133 *,DELTA_P ! DIFFERENCE IN PRESSURE ACROSS LAYER GWRICH1A.134 REAL GWRICH1A.135 * DELTA_AK_SUM ! DELTA_AK SUMMED OVER LOWEST LAYERS UP TO START_L GWRICH1A.136 *,DELTA_BK_SUM ! DELTA_BK SUMMED OVER LOWEST LAYERS UP TO START_L GWRICH1A.137 INTEGER I,K ! LOOP COUNTER IN ROUTINE GWRICH1A.138 INTEGER KK,KL,KU,KT ! LEVEL COUNTERS IN ROUTINE GWRICH1A.139 C GWRICH1A.140 C INCLUDE PHYSICAL CONSTANTS GWRICH1A.141 *CALL C_G
GWRICH1A.142 *CALL C_R_CP
GWRICH1A.143 GWRICH1A.144 C LOCAL CONSTANTS GWRICH1A.145 *CALL C_GWAVE
GWRICH1A.146 GWRICH1A.147 REAL CPBYG GWRICH1A.148 PARAMETER(CPBYG=CP/G) GWRICH1A.149 GWRICH1A.150 REAL GWRICH1A.151 & PU,PL,P_EXNER_CENTRE GWRICH1A.152 *CALL P_EXNERC
GWRICH1A.153 GWRICH1A.154 C------------------------------------------------------------------- GWRICH1A.155 CL INTERNAL STRUCTURE INCLUDING SUBROUTINE CALLS: GWRICH1A.156 CL 1. START LEVEL PRELIMINARIES GWRICH1A.157 C------------------------------------------ GWRICH1A.158 GWRICH1A.159 CFPP$ NOCONCUR L GWRICH1A.160 C TREAT LAYERS BELOW AND INCLUDING START_L AS ONE LAYER GWRICH1A.161 DELTA_AK_SUM = 0.0 GWRICH1A.162 DELTA_BK_SUM = 0.0 GWRICH1A.163 DO K=1,START_L GWRICH1A.164 DELTA_AK_SUM = DELTA_AK_SUM + DELTA_AK(K) GWRICH1A.165 DELTA_BK_SUM = DELTA_BK_SUM + DELTA_BK(K) GWRICH1A.166 END DO GWRICH1A.167 CFPP$ CONCUR GWRICH1A.168 GWRICH1A.169 KL=1 GWRICH1A.170 KU=2 GWRICH1A.171 KT=3 GWRICH1A.172 GWRICH1A.173 DO I=1,POINTS GWRICH1A.174 GWRICH1A.175 SPEED(I,KL) = U(I,START_L)*SIN_A(I) + V(I,START_L)*COS_A(I) GWRICH1A.176 STRESS(I,KL) = S_STRESS(I) GWRICH1A.177 GWRICH1A.178 PU=PSTAR(I)*BKH(START_L+1) + AKH(START_L+1) GWRICH1A.179 PL=PSTAR(I)*BKH(START_L) + AKH(START_L) GWRICH1A.180 P_EXNER_CENTRE= GWRICH1A.181 & P_EXNER_C( PEXNER(I,START_L+1),PEXNER(I,START_L),PU,PL,KAPPA) GWRICH1A.182 GWRICH1A.183 DZ(I,KL) = (P_EXNER_CENTRE - PEXNER(I,START_L+1)) GWRICH1A.184 * *THETA(I,START_L)*CPBYG GWRICH1A.185 T(I,KL) = P_EXNER_CENTRE*THETA(I,START_L) GWRICH1A.186 GWRICH1A.193 END DO GWRICH1A.194 DR251093.102 IF (STRESS_UD_ON) THEN DR251093.103 DO I=1,POINTS DR251093.104 STRESS_UD_LAND(I,START_L) = STRESS(I,KL)*SIN_A(I) DR251093.105 ENDDO DR251093.106 ENDIF DR251093.107 IF (STRESS_VD_ON) THEN ADR4F304.3 DO I=1,POINTS DR251093.109 STRESS_VD_LAND(I,START_L) = STRESS(I,KL)*COS_A(I) DR251093.110 ENDDO DR251093.111 ENDIF DR251093.112 GWRICH1A.195 C------------------------------------------------------------------ GWRICH1A.196 CL 2 LOOP LEVELS GWRICH1A.197 C------------------------------------------------------------------ GWRICH1A.198 GWRICH1A.199 DO K=START_L+1,LEVELS GWRICH1A.200 GWRICH1A.201 GWRICH1A.202 DO I=1,POINTS GWRICH1A.203 STRESS(I,KU) = STRESS(I,KL) GWRICH1A.204 IF(STRESS(I,KL) .GT. 0.0) THEN GWRICH1A.205 SPEED(I,KU) = U(I,K)*SIN_A(I) + V(I,K)*COS_A(I) GWRICH1A.206 GWRICH1A.207 PU=PSTAR(I)*BKH(K+1) + AKH(K+1) GWRICH1A.208 PL=PSTAR(I)*BKH(K) + AKH(K) GWRICH1A.209 P_EXNER_CENTRE= GWRICH1A.210 & P_EXNER_C( PEXNER(I,K+1),PEXNER(I,K),PU,PL,KAPPA) GWRICH1A.211 GWRICH1A.212 C lower half height of upper layer GWRICH1A.213 DZ(I,KU) = (PEXNER(I,K) - P_EXNER_CENTRE)*THETA(I,K) GWRICH1A.214 * *CPBYG GWRICH1A.215 C upper half height of upper layer GWRICH1A.216 DZ(I,KT) = (P_EXNER_CENTRE - PEXNER(I,K+1))*THETA(I,K) GWRICH1A.217 * *CPBYG GWRICH1A.218 C model level height difference GWRICH1A.219 DZB = DZ(I,KU) + DZ(I,KL) GWRICH1A.220 SPEEDB = (DZ(I,KU)*SPEED(I,KL)+DZ(I,KL)*SPEED(I,KU))/ GWRICH1A.221 * DZB GWRICH1A.222 GWRICH1A.223 C------------------------------------------------------------------ GWRICH1A.224 CL 2.1 TEST FOR CRITICAL LEVEL V < or = 0 GWRICH1A.225 C------------------------------------------------------------------ GWRICH1A.226 GWRICH1A.227 IF( SPEEDB .LE. 0.0) THEN GWRICH1A.228 STRESS(I,KU) = 0.0 GWRICH1A.229 ELSE GWRICH1A.230 T(I,KU) = P_EXNER_CENTRE*THETA(I,K) GWRICH1A.231 TB = (DZ(I,KU)*T(I,KL) + DZ(I,KL)*T(I,KU))/DZB GWRICH1A.232 RHO = ( AKH(K) + BKH(K)*PSTAR(I) )/(R*TB) GWRICH1A.233 GWRICH1A.234 C------------------------------------------------------------------ GWRICH1A.235 CL 2.2 CALCULATE BRUNT-VAISALA FREQUENCY GWRICH1A.236 C------------------------------------------------------------------ GWRICH1A.237 GWRICH1A.238 N_SQ = G*( THETA(I,K) - THETA(I,K-1) )*PEXNER(I,K)/ GWRICH1A.239 * ( TB*DZB ) GWRICH1A.240 GWRICH1A.241 IF( N_SQ .LE.0.0 ) THEN GWRICH1A.242 CL SET STRESS TO ZERO IF UNSTABLE GWRICH1A.243 N_SQ = 0.0 GWRICH1A.244 STRESS(I,KU) = 0.0 GWRICH1A.245 ELSE GWRICH1A.246 N = SQRT( N_SQ ) GWRICH1A.247 GWRICH1A.248 C------------------------------------------------------------------ GWRICH1A.249 CL 2.2 CALCULATE MINIMUM RICHARDSON NO. DUE TO GRAVITY GWRICH1A.250 CL WAVES EQNS 2.6 AND 2.8 GWRICH1A.251 C------------------------------------------------------------------ GWRICH1A.252 GWRICH1A.253 AMPL = GWRICH1A.254 * SQRT(STRESS(I,KU)/( KAY*RHO*SPEEDB*N ) ) GWRICH1A.255 DV_DZ = SQRT( (U(I,K)-U(I,K-1))*(U(I,K)-U(I,K-1)) + GWRICH1A.256 * (V(I,K)-V(I,K-1))*(V(I,K)-V(I,K-1)) )/DZB GWRICH1A.257 RI = N_SQ*(1. - N*AMPL/SPEEDB)/ GWRICH1A.258 * ((DV_DZ + N_SQ*AMPL/SPEEDB)*(DV_DZ + N_SQ*AMPL/SPEEDB)) GWRICH1A.259 GWRICH1A.260 C------------------------------------------------------------------ GWRICH1A.261 CL 2.3 TEST FOR WAVE-BREAKING (RI < RIC ) GWRICH1A.262 CL AND MODIFY STRESS AT UPPER LAYER BOUNDARY GWRICH1A.263 CL EQNS 2.9 , 2.10 AND 2.6 GWRICH1A.264 C------------------------------------------------------------------ GWRICH1A.265 GWRICH1A.266 IF( RI.LT.RIC ) THEN GWRICH1A.267 EPSILON = GWRICH1A.268 * ( SQRT(4.*RIC*DV_DZ*N + N_SQ*(1.+4.*RIC)) GWRICH1A.269 * -(2.*RIC*DV_DZ + N ) )/(2.*RIC) GWRICH1A.270 AMPL = EPSILON*SPEEDB/ N_SQ GWRICH1A.271 IF( AMPL.LT.0.0 ) THEN GWRICH1A.272 STRESS(I,KU) = 0.0 GWRICH1A.273 ELSE GWRICH1A.274 STRESS(I,KU) = KAY*RHO*N*SPEEDB*AMPL*AMPL GWRICH1A.275 GWRICH1A.276 END IF ! AMPL < 0 ELSE AMPL > 0 GWRICH1A.277 GWRICH1A.278 END IF ! RI < RIC GWRICH1A.279 GWRICH1A.280 END IF ! N_SQ < 0 ELSE N_SQ > 0 GWRICH1A.281 GWRICH1A.282 END IF ! SPEED < 0 ELSE SPEED >0 GWRICH1A.283 GWRICH1A.284 END IF ! STRESS >0 GWRICH1A.285 GWRICH1A.286 IF( K .EQ. START_L+1 ) THEN GWRICH1A.287 DELTA_P = DELTA_AK_SUM+DELTA_BK_SUM*PSTAR(I) GWRICH1A.288 ELSE GWRICH1A.289 DELTA_P = DELTA_AK(K-1)+DELTA_BK(K-1)*PSTAR(I) GWRICH1A.290 END IF GWRICH1A.291 GWRICH1A.292 C------------------------------------------------------------------ GWRICH1A.293 CL 2.4 CALCULATE DRAG FROM VERTICAL STRESS CONVERGENCE GWRICH1A.294 CL AND ACCELERATIONS FOR WIND COMPONENTS GWRICH1A.295 CL EQN 2.1 GWRICH1A.296 C------------------------------------------------------------------ GWRICH1A.297 GWRICH1A.298 DRAG(I) = G*(STRESS(I,KU) - STRESS(I,KL) )/DELTA_P GWRICH1A.299 DU_DT(I,K-1) = -DRAG(I)*SIN_A(I) GWRICH1A.300 DV_DT(I,K-1) = -DRAG(I)*COS_A(I) GWRICH1A.301 GWRICH1A.302 END DO GWRICH1A.309 GWRICH1A.310 IF (STRESS_UD_ON) THEN DR251093.113 DO I=1,POINTS DR251093.114 STRESS_UD_LAND(I,K) = STRESS(I,KU)*SIN_A(I) DR251093.115 ENDDO DR251093.116 ENDIF DR251093.117 IF (STRESS_VD_ON) THEN DR251093.118 DO I=1,POINTS DR251093.119 STRESS_VD_LAND(I,K) = STRESS(I,KU)*COS_A(I) DR251093.120 ENDDO DR251093.121 ENDIF DR251093.122 GWRICH1A.311 IF( K .EQ. START_L+1 .AND. START_L .GT.1 ) THEN GWRICH1A.312 C SET ACCELERATION SAME IN ALL LAYERS UP TO START_L GWRICH1A.313 DO KK=1,START_L-1 GWRICH1A.314 DO I=1,POINTS GWRICH1A.315 DU_DT(I,KK) = DU_DT(I,START_L) GWRICH1A.316 DV_DT(I,KK) = DV_DT(I,START_L) GWRICH1A.317 END DO GWRICH1A.318 END DO GWRICH1A.319 END IF GWRICH1A.320 GWRICH1A.321 C Swap storage for lower and upper layers GWRICH1A.322 KK=KL GWRICH1A.323 KL=KU GWRICH1A.324 KU=KK GWRICH1A.325 GWRICH1A.326 C Replace top half height of lower layer ready for next pass GWRICH1A.327 DO I=1,POINTS GWRICH1A.328 DZ(I,KL)=DZ(I,KT) GWRICH1A.329 ENDDO GWRICH1A.330 GWRICH1A.331 END DO GWRICH1A.332 CL END LOOP LEVELS GWRICH1A.333 GWRICH1A.334 C------------------------------------------------------------------ GWRICH1A.335 CL 3 TOP OF MODEL. SET ACCELERATION SAME AS PENULTIMATE LAYER GWRICH1A.336 CL WITH PROVISO THAT STRESS >= 0 GWRICH1A.337 C------------------------------------------------------------------ GWRICH1A.338 GWRICH1A.339 DO I=1,POINTS GWRICH1A.340 DELTA_P = DELTA_AK(LEVELS) + DELTA_BK(LEVELS)*PSTAR(I) GWRICH1A.341 STRESS(I,KU) = STRESS(I,KL) + DRAG(I)*DELTA_P/G GWRICH1A.342 IF( STRESS(I,KU) .LT. 0.0) STRESS(I,KU) = 0.0 GWRICH1A.343 DRAG(I) = G*(STRESS(I,KU) - STRESS(I,KL) )/DELTA_P GWRICH1A.344 DU_DT(I,LEVELS) = -DRAG(I)*SIN_A(I) GWRICH1A.345 DV_DT(I,LEVELS) = -DRAG(I)*COS_A(I) GWRICH1A.346 END DO DR251093.123 GWRICH1A.347 IF (STRESS_UD_ON) THEN DR251093.124 DO I=1,POINTS DR251093.125 STRESS_UD_LAND(I,LEVELS+1) = STRESS(I,KU)*SIN_A(I) DR251093.126 END DO DR251093.127 ENDIF DR251093.128 IF (STRESS_VD_ON) THEN DR251093.129 DO I=1,POINTS DR251093.130 STRESS_VD_LAND(I,LEVELS+1) = STRESS(I,KU)*COS_A(I) DR251093.131 END DO DR251093.132 ENDIF DR251093.133 GWRICH1A.355 RETURN GWRICH1A.356 END GWRICH1A.357 GWRICH1A.358 *ENDIF GWRICH1A.359