*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.40     

      SUBROUTINE 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