*IF DEF,A70_1A,OR,DEF,A70_1B APB4F405.61 *IF DEF,A01_3A,OR,DEF,A02_3A OVLTRP3A.3 C *****************************COPYRIGHT****************************** OVLTRP3A.4 C (c) CROWN COPYRIGHT 1996, METEOROLOGICAL OFFICE, All Rights Reserved. OVLTRP3A.5 C OVLTRP3A.6 C Use, duplication or disclosure of this code is subject to the OVLTRP3A.7 C restrictions as set forth in the contract. OVLTRP3A.8 C OVLTRP3A.9 C Meteorological Office OVLTRP3A.10 C London Road OVLTRP3A.11 C BRACKNELL OVLTRP3A.12 C Berkshire UK OVLTRP3A.13 C RG12 2SZ OVLTRP3A.14 C OVLTRP3A.15 C If no contract has been raised with this copy of the code, the use, OVLTRP3A.16 C duplication or disclosure of it is strictly prohibited. Permission OVLTRP3A.17 C to do so must first be obtained in writing from the Head of Numerical OVLTRP3A.18 C Modelling at the above address. OVLTRP3A.19 C ******************************COPYRIGHT****************************** OVLTRP3A.20 C OVLTRP3A.21 !+ Subroutine to find energy transfer coefficients for triple overlap. OVLTRP3A.22 ! OVLTRP3A.23 ! Method: OVLTRP3A.24 ! Energy transfer coefficients for upward and downward radiation OVLTRP3A.25 ! at the edges of the layers are calculated assuming maximal OVLTRP3A.26 ! overlap of regions of the same nature and random overlap of OVLTRP3A.27 ! regions of a different nature. OVLTRP3A.28 ! OVLTRP3A.29 ! Current Owner of Code: J. M. Edwards OVLTRP3A.30 ! OVLTRP3A.31 ! History: OVLTRP3A.32 ! Version Date Comment OVLTRP3A.33 ! 4.2 24-05-96 Original Code OVLTRP3A.34 ! 4.3 20-02-97 Vector searching ADB1F405.1005 ! routine WHENFGT ADB5F403.2 ! replaced by IF-tests. ADB5F403.3 ! (J. M. Edwards) ADB1F405.1006 ! OVLTRP3A.36 ! Description of Code: OVLTRP3A.37 ! FORTRAN 77 with extensions listed in documentation. OVLTRP3A.38 ! OVLTRP3A.39 !- --------------------------------------------------------------------- OVLTRP3A.40SUBROUTINE OVERLAP_TRIPLE(N_PROFILE, N_LAYER, N_CLOUD_TOP 1OVLTRP3A.41 & , W_CLOUD, W_FREE, FRAC_REGION OVLTRP3A.42 & , CLOUD_OVERLAP OVLTRP3A.43 & , NPD_PROFILE, NPD_LAYER OVLTRP3A.44 & ) OVLTRP3A.45 ! OVLTRP3A.46 ! OVLTRP3A.47 ! OVLTRP3A.48 IMPLICIT NONE OVLTRP3A.49 ! OVLTRP3A.50 ! OVLTRP3A.51 ! SIZES OF DUMMY ARRAYS. OVLTRP3A.52 INTEGER !, INTENT(IN) OVLTRP3A.53 & NPD_PROFILE OVLTRP3A.54 ! MAXIMUM NUMBER OF PROFILES OVLTRP3A.55 & , NPD_LAYER OVLTRP3A.56 ! MAXIMUM NUMBER OF LAYERS OVLTRP3A.57 ! OVLTRP3A.58 ! INCLUDE COMDECKS. OVLTRP3A.59 *CALL DIMFIX3A
OVLTRP3A.60 *CALL STDIO3A
OVLTRP3A.61 *CALL PRMCH3A
OVLTRP3A.62 *CALL PRECSN3A
OVLTRP3A.63 *CALL ERROR3A
OVLTRP3A.64 *CALL CLDTYP3A
OVLTRP3A.65 *CALL CLCFPT3A
OVLTRP3A.66 *CALL CLREPP3A
OVLTRP3A.67 *CALL CLDREG3A
OVLTRP3A.68 ! OVLTRP3A.69 ! DUMMY ARGUMENTS. OVLTRP3A.70 INTEGER !, INTENT(IN) OVLTRP3A.71 & N_PROFILE OVLTRP3A.72 ! NUMBER OF PROFILES OVLTRP3A.73 & , N_LAYER OVLTRP3A.74 ! NUMBER OF LAYERS OVLTRP3A.75 & , N_CLOUD_TOP OVLTRP3A.76 ! TOPMOST CLOUDY LAYER OVLTRP3A.77 REAL !, INTENT(IN) OVLTRP3A.78 & W_CLOUD(NPD_PROFILE, NPD_LAYER) OVLTRP3A.79 ! CLOUD AMOUNTS OVLTRP3A.80 & , FRAC_REGION(NPD_PROFILE, NPD_LAYER, NPD_REGION) OVLTRP3A.81 ! FRACTIONS OF TOTAL CLOUD AMOUNT OCCUPIED BY OVLTRP3A.82 ! DIFFERENT REGIONS OVLTRP3A.83 ! OVLTRP3A.84 REAL !, INTENT(OUT) OVLTRP3A.85 & W_FREE(NPD_PROFILE, NPD_LAYER) OVLTRP3A.86 ! CLOUD-FREE AMOUNTS OVLTRP3A.87 & , CLOUD_OVERLAP(NPD_PROFILE, 0: NPD_LAYER, NPD_OVERLAP_COEFF) OVLTRP3A.88 ! COEFFICIENTS FOR TRANSFER OF ENERGY AT INTERFACE OVLTRP3A.89 ! OVLTRP3A.90 ! OVLTRP3A.91 ! LOCAL ARGUMENTS. OVLTRP3A.92 INTEGER OVLTRP3A.93 & I OVLTRP3A.94 ! LOOP VARIABLE OVLTRP3A.95 & , J OVLTRP3A.96 ! LOOP VARIABLE OVLTRP3A.97 & , L OVLTRP3A.98 ! LOOP VARIABLE OVLTRP3A.99 & , K OVLTRP3A.100 ! LOOP VARIABLE OVLTRP3A.101 ! OVLTRP3A.108 ! OVLTRP3A.109 ! FIXED LOCAL VALUES: OVLTRP3A.110 INTEGER OVLTRP3A.111 & N_REGION OVLTRP3A.112 ! NUMBER OF REGIONS OVLTRP3A.113 REAL OVLTRP3A.114 & AREA_LOWER(NPD_PROFILE, NPD_REGION) OVLTRP3A.115 ! AREAS OF REGIONS IN LOWER LAYER OVLTRP3A.116 & , AREA_UPPER(NPD_PROFILE, NPD_REGION) OVLTRP3A.117 ! AREAS OF REGIONS IN LOWER LAYER OVLTRP3A.118 & , AREA_OVERLAP(NPD_PROFILE, NPD_REGION, NPD_REGION) OVLTRP3A.119 ! AREAS OF REGIONS IN LOWER LAYER OVLTRP3A.120 & , AREA_RANDOM(NPD_PROFILE) OVLTRP3A.121 ! AREAS OF RANDOM OVERLAP OVLTRP3A.122 ! OVLTRP3A.132 ! OVLTRP3A.133 ! OVLTRP3A.134 ! SET THE FREE FRACTIONS IN EACH LAYER. OVLTRP3A.135 DO I=1, N_CLOUD_TOP-1 OVLTRP3A.136 DO L=1, N_PROFILE OVLTRP3A.137 W_FREE(L, I)=1.0E+00 OVLTRP3A.138 ENDDO OVLTRP3A.139 ENDDO OVLTRP3A.140 DO I=N_CLOUD_TOP, N_LAYER OVLTRP3A.141 DO L=1, N_PROFILE OVLTRP3A.142 W_FREE(L, I)=1.0E+00-W_CLOUD(L, I) OVLTRP3A.143 ENDDO OVLTRP3A.144 ENDDO OVLTRP3A.145 ! OVLTRP3A.146 ! OVLTRP3A.147 ! OVLTRP3A.148 ! SET NUMBER OF REGIONS FOR POSSIBLE FUTURE EXTENSION. OVLTRP3A.149 N_REGION=3 OVLTRP3A.150 ! OVLTRP3A.151 ! WE CONSIDER EACH BOUNDARY IN TURN, COMPARING THE FRACTIONS OVLTRP3A.152 ! OF EACH REGION IN THE LAYERS ABOVE AND BELOW THE BOUNDARY. OVLTRP3A.153 ! OVLTRP3A.154 ! INITIALIZE FOR THE LAYER ABOVE THE CLOUDS. OVLTRP3A.155 DO L=1, N_PROFILE OVLTRP3A.156 AREA_UPPER(L, IP_REGION_CLEAR)=1.0E+00 OVLTRP3A.157 AREA_UPPER(L, IP_REGION_STRAT)=0.0E+00 OVLTRP3A.158 AREA_UPPER(L, IP_REGION_CONV)=0.0E+00 OVLTRP3A.159 ENDDO OVLTRP3A.160 OVLTRP3A.161 DO I=N_CLOUD_TOP-1, N_LAYER OVLTRP3A.162 ! OVLTRP3A.163 ! SET AREAS OF THE REGIONS IN THE LOWER LAYER. OVLTRP3A.164 IF (I.LT.N_LAYER) THEN OVLTRP3A.165 DO L=1, N_PROFILE OVLTRP3A.166 AREA_LOWER(L, IP_REGION_CLEAR)=W_FREE(L, I+1) OVLTRP3A.167 AREA_LOWER(L, IP_REGION_STRAT)=W_CLOUD(L, I+1) OVLTRP3A.168 & *FRAC_REGION(L, I+1, IP_REGION_STRAT) OVLTRP3A.169 AREA_LOWER(L, IP_REGION_CONV)=W_CLOUD(L, I+1) OVLTRP3A.170 & *FRAC_REGION(L, I+1, IP_REGION_CONV) OVLTRP3A.171 ENDDO OVLTRP3A.172 ELSE OVLTRP3A.173 DO L=1, N_PROFILE OVLTRP3A.174 AREA_LOWER(L, IP_REGION_CLEAR)=1.0E+00 OVLTRP3A.175 AREA_LOWER(L, IP_REGION_STRAT)=0.0E+00 OVLTRP3A.176 AREA_LOWER(L, IP_REGION_CONV)=0.0E+00 OVLTRP3A.177 ENDDO OVLTRP3A.178 ENDIF OVLTRP3A.179 ! OVLTRP3A.180 ! SET THE AREAS OF OVERLAP BETWEEN LIKE REGIONS. OVLTRP3A.181 DO K=1, N_REGION OVLTRP3A.182 DO L=1, N_PROFILE OVLTRP3A.183 AREA_OVERLAP(L, K, K)=MIN(AREA_LOWER(L, K) OVLTRP3A.184 & , AREA_UPPER(L, K)) OVLTRP3A.185 ENDDO OVLTRP3A.186 ENDDO OVLTRP3A.187 ! OVLTRP3A.188 ! FIND THE AREAS OF OVERLAP BETWEEN UNLIKE REGIONS. THE OVERLAP OVLTRP3A.189 ! BETWEEN UNLIKE REGIONS IS ASSUMED TO BE RANDOM. THESE AREAS OVLTRP3A.190 ! ARE SET EQUAL TO 0 FOR THE CASE WHERE THERE IS NO SUCH AREA OVLTRP3A.191 ! AND ARE RESET WHEN SUCH AN AREA IS PRESENT. OVLTRP3A.192 DO K=1, N_REGION OVLTRP3A.193 DO J=1, K-1 OVLTRP3A.194 DO L=1, N_PROFILE OVLTRP3A.195 AREA_OVERLAP(L, K, J)=0.0E+00 OVLTRP3A.196 AREA_OVERLAP(L, J, K)=0.0E+00 OVLTRP3A.197 ENDDO OVLTRP3A.198 ENDDO OVLTRP3A.199 ENDDO OVLTRP3A.200 DO L=1, N_PROFILE OVLTRP3A.201 AREA_RANDOM(L)=1.0E+00 OVLTRP3A.202 ENDDO OVLTRP3A.203 DO K=1, N_REGION OVLTRP3A.204 DO L=1, N_PROFILE OVLTRP3A.205 AREA_RANDOM(L)=AREA_RANDOM(L)-AREA_OVERLAP(L, K, K) OVLTRP3A.206 ENDDO OVLTRP3A.207 ENDDO OVLTRP3A.208 DO K=1, N_REGION OVLTRP3A.211 DO J=1, K-1 OVLTRP3A.212 DO L=1, N_PROFILE ADB5F403.5 IF (AREA_RANDOM(L).GT.TOL_DIV) THEN ADB5F403.6 AREA_OVERLAP(L, K, J) ADB5F403.7 & =(AREA_UPPER(L, K)-AREA_OVERLAP(L, K, K)) ADB5F403.8 & *(AREA_LOWER(L, J)-AREA_OVERLAP(L, J, J)) ADB5F403.9 & /AREA_RANDOM(L) ADB5F403.10 AREA_OVERLAP(L, J, K) ADB5F403.11 & =(AREA_UPPER(L, J)-AREA_OVERLAP(L, J, J)) ADB5F403.12 & *(AREA_LOWER(L, K)-AREA_OVERLAP(L, K, K)) ADB5F403.13 & /AREA_RANDOM(L) ADB5F403.14 ENDIF ADB5F403.15 ENDDO OVLTRP3A.223 ENDDO OVLTRP3A.224 ENDDO OVLTRP3A.225 ! OVLTRP3A.226 ! NOW PROCEED TO FIND THE ENERGY TRANSFER COEFFICIENTS OVLTRP3A.227 ! BETWEEN THE VARIOUS REGIONS. OVLTRP3A.228 ! OVLTRP3A.229 ! COEFFICIENTS FOR THE DOWNWARD TRANSFER OF ENERGY: OVLTRP3A.230 ! OVLTRP3A.231 ! TO AVOID DIVISION BY 0 WE INITIALIZE TO DEFAULT VALUES OVLTRP3A.232 ! AND RESET. OVLTRP3A.233 DO L=1, N_PROFILE OVLTRP3A.234 CLOUD_OVERLAP(L, I, IP_CLOVLP_V11)=1.0E+00 OVLTRP3A.235 CLOUD_OVERLAP(L, I, IP_CLOVLP_V21)=0.0E+00 OVLTRP3A.236 CLOUD_OVERLAP(L, I, IP_CLOVLP_V31)=0.0E+00 OVLTRP3A.237 CLOUD_OVERLAP(L, I, IP_CLOVLP_V12)=0.0E+00 OVLTRP3A.238 CLOUD_OVERLAP(L, I, IP_CLOVLP_V22)=1.0E+00 OVLTRP3A.239 CLOUD_OVERLAP(L, I, IP_CLOVLP_V32)=0.0E+00 OVLTRP3A.240 CLOUD_OVERLAP(L, I, IP_CLOVLP_V13)=0.0E+00 OVLTRP3A.241 CLOUD_OVERLAP(L, I, IP_CLOVLP_V23)=0.0E+00 OVLTRP3A.242 CLOUD_OVERLAP(L, I, IP_CLOVLP_V33)=1.0E+00 OVLTRP3A.243 ENDDO OVLTRP3A.244 ! OVLTRP3A.245 ! TRANSFER FROM CLEAR-SKY REGION: OVLTRP3A.246 DO L=1, N_PROFILE ADB5F403.16 IF (AREA_UPPER(L, IP_REGION_CLEAR).GT.TOL_DIV) THEN ADB5F403.17 CLOUD_OVERLAP(L, I, IP_CLOVLP_V11) ADB5F403.18 & =AREA_OVERLAP(L, IP_REGION_CLEAR, IP_REGION_CLEAR) ADB5F403.19 & /AREA_UPPER(L, IP_REGION_CLEAR) ADB5F403.20 CLOUD_OVERLAP(L, I, IP_CLOVLP_V21) ADB5F403.21 & =AREA_OVERLAP(L, IP_REGION_CLEAR, IP_REGION_STRAT) ADB5F403.22 & /AREA_UPPER(L, IP_REGION_CLEAR) ADB5F403.23 CLOUD_OVERLAP(L, I, IP_CLOVLP_V31) ADB5F403.24 & =AREA_OVERLAP(L, IP_REGION_CLEAR, IP_REGION_CONV) ADB5F403.25 & /AREA_UPPER(L, IP_REGION_CLEAR) ADB5F403.26 ENDIF ADB5F403.27 ENDDO OVLTRP3A.260 ! OVLTRP3A.261 ! TRANSFER FROM STRATIFORM REGION: ADB5F403.28 DO L=1, N_PROFILE ADB5F403.29 IF (AREA_UPPER(L, IP_REGION_STRAT).GT.TOL_DIV) THEN ADB5F403.30 CLOUD_OVERLAP(L, I, IP_CLOVLP_V12) ADB5F403.31 & =AREA_OVERLAP(L, IP_REGION_STRAT, IP_REGION_CLEAR) ADB5F403.32 & /AREA_UPPER(L, IP_REGION_STRAT) ADB5F403.33 CLOUD_OVERLAP(L, I, IP_CLOVLP_V22) ADB5F403.34 & =AREA_OVERLAP(L, IP_REGION_STRAT, IP_REGION_STRAT) ADB5F403.35 & /AREA_UPPER(L, IP_REGION_STRAT) ADB5F403.36 CLOUD_OVERLAP(L, I, IP_CLOVLP_V32) ADB5F403.37 & =AREA_OVERLAP(L, IP_REGION_STRAT, IP_REGION_CONV) ADB5F403.38 & /AREA_UPPER(L, IP_REGION_STRAT) ADB5F403.39 ENDIF ADB5F403.40 ENDDO OVLTRP3A.276 ! OVLTRP3A.277 ! TRANSFER FROM CONVECTIVE REGION: OVLTRP3A.278 DO L=1, N_PROFILE ADB5F403.41 IF (AREA_UPPER(L, IP_REGION_CONV).GT.TOL_DIV) THEN ADB5F403.42 CLOUD_OVERLAP(L, I, IP_CLOVLP_V13) ADB5F403.43 & =AREA_OVERLAP(L, IP_REGION_CONV, IP_REGION_CLEAR) ADB5F403.44 & /AREA_UPPER(L, IP_REGION_CONV) ADB5F403.45 CLOUD_OVERLAP(L, I, IP_CLOVLP_V23) ADB5F403.46 & =AREA_OVERLAP(L, IP_REGION_CONV, IP_REGION_STRAT) ADB5F403.47 & /AREA_UPPER(L, IP_REGION_CONV) ADB5F403.48 CLOUD_OVERLAP(L, I, IP_CLOVLP_V33) ADB5F403.49 & =AREA_OVERLAP(L, IP_REGION_CONV, IP_REGION_CONV) ADB5F403.50 & /AREA_UPPER(L, IP_REGION_CONV) ADB5F403.51 ENDIF ADB5F403.52 ENDDO OVLTRP3A.292 ! OVLTRP3A.293 ! OVLTRP3A.294 ! TRANSFER COEFFICIENTS FOR UPWARD FLOW OF ENERGY: OVLTRP3A.295 ! OVLTRP3A.296 ! TO AVOID DIVISION BY 0 WE INITIALIZE TO DEFAULT VALUES OVLTRP3A.297 ! AND RESET. OVLTRP3A.298 DO L=1, N_PROFILE OVLTRP3A.299 CLOUD_OVERLAP(L, I, IP_CLOVLP_U11)=1.0E+00 OVLTRP3A.300 CLOUD_OVERLAP(L, I, IP_CLOVLP_U21)=0.0E+00 OVLTRP3A.301 CLOUD_OVERLAP(L, I, IP_CLOVLP_U31)=0.0E+00 OVLTRP3A.302 CLOUD_OVERLAP(L, I, IP_CLOVLP_U12)=0.0E+00 OVLTRP3A.303 CLOUD_OVERLAP(L, I, IP_CLOVLP_U22)=1.0E+00 OVLTRP3A.304 CLOUD_OVERLAP(L, I, IP_CLOVLP_U32)=0.0E+00 OVLTRP3A.305 CLOUD_OVERLAP(L, I, IP_CLOVLP_U13)=0.0E+00 OVLTRP3A.306 CLOUD_OVERLAP(L, I, IP_CLOVLP_U23)=0.0E+00 OVLTRP3A.307 CLOUD_OVERLAP(L, I, IP_CLOVLP_U33)=1.0E+00 OVLTRP3A.308 ENDDO OVLTRP3A.309 ! OVLTRP3A.310 ! TRANSFER FROM CLEAR-SKY REGION: OVLTRP3A.311 DO L=1, N_PROFILE ADB5F403.53 IF (AREA_LOWER(L, IP_REGION_CLEAR).GT.TOL_DIV) THEN ADB5F403.54 CLOUD_OVERLAP(L, I, IP_CLOVLP_U11) ADB5F403.55 & =AREA_OVERLAP(L, IP_REGION_CLEAR, IP_REGION_CLEAR) ADB5F403.56 & /AREA_LOWER(L, IP_REGION_CLEAR) ADB5F403.57 CLOUD_OVERLAP(L, I, IP_CLOVLP_U21) ADB5F403.58 & =AREA_OVERLAP(L, IP_REGION_STRAT, IP_REGION_CLEAR) ADB5F403.59 & /AREA_LOWER(L, IP_REGION_CLEAR) ADB5F403.60 CLOUD_OVERLAP(L, I, IP_CLOVLP_U31) ADB5F403.61 & =AREA_OVERLAP(L, IP_REGION_CONV, IP_REGION_CLEAR) ADB5F403.62 & /AREA_LOWER(L, IP_REGION_CLEAR) ADB5F403.63 ENDIF ADB5F403.64 ENDDO OVLTRP3A.325 ! OVLTRP3A.326 ! TRANSFER FROM STRATIFORM REGION: OVLTRP3A.327 DO L=1, N_PROFILE ADB5F403.65 IF (AREA_LOWER(L, IP_REGION_STRAT).GT.TOL_DIV) THEN ADB5F403.66 CLOUD_OVERLAP(L, I, IP_CLOVLP_U12) ADB5F403.67 & =AREA_OVERLAP(L, IP_REGION_CLEAR, IP_REGION_STRAT) ADB5F403.68 & /AREA_LOWER(L, IP_REGION_STRAT) ADB5F403.69 CLOUD_OVERLAP(L, I, IP_CLOVLP_U22) ADB5F403.70 & =AREA_OVERLAP(L, IP_REGION_STRAT, IP_REGION_STRAT) ADB5F403.71 & /AREA_LOWER(L, IP_REGION_STRAT) ADB5F403.72 CLOUD_OVERLAP(L, I, IP_CLOVLP_U32) ADB5F403.73 & =AREA_OVERLAP(L, IP_REGION_CONV, IP_REGION_STRAT) ADB5F403.74 & /AREA_LOWER(L, IP_REGION_STRAT) ADB5F403.75 ENDIF ADB5F403.76 ENDDO OVLTRP3A.341 ! OVLTRP3A.342 ! TRANSFER FROM CONVECTIVE REGION: OVLTRP3A.343 DO L=1, N_PROFILE ADB5F403.77 IF (AREA_LOWER(L, IP_REGION_CONV).GT.TOL_DIV) THEN ADB5F403.78 CLOUD_OVERLAP(L, I, IP_CLOVLP_U13) ADB5F403.79 & =AREA_OVERLAP(L, IP_REGION_CLEAR, IP_REGION_CONV) ADB5F403.80 & /AREA_LOWER(L, IP_REGION_CONV) ADB5F403.81 CLOUD_OVERLAP(L, I, IP_CLOVLP_U23) ADB5F403.82 & =AREA_OVERLAP(L, IP_REGION_STRAT, IP_REGION_CONV) ADB5F403.83 & /AREA_LOWER(L, IP_REGION_CONV) ADB5F403.84 CLOUD_OVERLAP(L, I, IP_CLOVLP_U33) ADB5F403.85 & =AREA_OVERLAP(L, IP_REGION_CONV, IP_REGION_CONV) ADB5F403.86 & /AREA_LOWER(L, IP_REGION_CONV) ADB5F403.87 ENDIF ADB5F403.88 ENDDO OVLTRP3A.357 ! OVLTRP3A.358 ! REASSIGN THE FRACTIONS IN THE UPPER LAYER TO STEP DOWN OVLTRP3A.359 ! THROUGH THE ATMOSPHERE. OVLTRP3A.360 IF (I.LT.N_LAYER) THEN OVLTRP3A.361 DO K=1, N_REGION OVLTRP3A.362 DO L=1, N_PROFILE OVLTRP3A.363 AREA_UPPER(L, K)=AREA_LOWER(L, K) OVLTRP3A.364 ENDDO OVLTRP3A.365 ENDDO OVLTRP3A.366 ENDIF OVLTRP3A.367 ! OVLTRP3A.368 ENDDO OVLTRP3A.369 ! OVLTRP3A.370 ! OVLTRP3A.371 ! OVLTRP3A.372 RETURN OVLTRP3A.373 END OVLTRP3A.374 *ENDIF DEF,A01_3A,OR,DEF,A02_3A OVLTRP3A.375 *ENDIF DEF,A70_1A,OR,DEF,A70_1B APB4F405.62