*IF DEF,A70_1A,OR,DEF,A70_1B                                               APB4F405.81     
*IF DEF,A01_3A,OR,DEF,A02_3A                                               SBRV3A.2      
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.13807  
C                                                                          GTS2F400.13808  
C Use, duplication or disclosure of this code is subject to the            GTS2F400.13809  
C restrictions as set forth in the contract.                               GTS2F400.13810  
C                                                                          GTS2F400.13811  
C                Meteorological Office                                     GTS2F400.13812  
C                London Road                                               GTS2F400.13813  
C                BRACKNELL                                                 GTS2F400.13814  
C                Berkshire UK                                              GTS2F400.13815  
C                RG12 2SZ                                                  GTS2F400.13816  
C                                                                          GTS2F400.13817  
C If no contract has been raised with this copy of the code, the use,      GTS2F400.13818  
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.13819  
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.13820  
C Modelling at the above address.                                          GTS2F400.13821  
C ******************************COPYRIGHT******************************    GTS2F400.13822  
C                                                                          GTS2F400.13823  
!+ Subroutine to calculate the fluxes assuming random overlap.             SBRV3A.3      
!                                                                          SBRV3A.4      
! Method:                                                                  SBRV3A.5      
!       Monochromatic calculations are performed for each                  SBRV3A.6      
!       combination of ESFT terms and the results are summed.              SBRV3A.7      
!                                                                          SBRV3A.8      
! Current Owner of Code: J. M. Edwards                                     SBRV3A.9      
!                                                                          SBRV3A.10     
! History:                                                                 SBRV3A.11     
!       Version         Date                    Comment                    SBRV3A.12     
!       4.0             27-07-95                Original Code              SBRV3A.13     
!                                               (J. M. Edwards)            SBRV3A.14     
!       4.1             08-05-96                Rescaling of absorbers     ADB1F401.906    
!                                               extended to treat          ADB1F401.907    
!                                               separate scaling for       ADB1F401.908    
!                                               each ESFT term.            ADB1F401.909    
!       4.2             08-08-96                Code for vertically        ADB1F402.664    
!                                               coherent convective        ADB1F402.665    
!                                               cloud added.               ADB1F402.666    
!                                               (J. M. Edwards)            ADB1F402.667    
!       4.5             18-05-98                Variable for obsolete      ADB1F405.584    
!                                               solver removed.            ADB1F405.585    
!                                               (J. M. Edwards)            ADB1F405.586    
!                                                                          SBRV3A.15     
! Description of Code:                                                     SBRV3A.16     
!   FORTRAN 77  with extensions listed in documentation.                   SBRV3A.17     
!                                                                          SBRV3A.18     
!- ---------------------------------------------------------------------   SBRV3A.19     

      SUBROUTINE SOLVE_BAND_RANDOM_OVERLAP(IERR                             1,6SBRV3A.20     
!                       Atmospheric Column                                 SBRV3A.21     
     &   , N_PROFILE, N_LAYER, L_LAYER, I_TOP, P, T, D_MASS                SBRV3A.22     
!                       Angular Integration                                SBRV3A.23     
     &   , I_ANGULAR_INTEGRATION, I_2STREAM, L_2_STREAM_CORRECT            SBRV3A.24     
     &   , L_RESCALE, N_ORDER_GAUSS                                        SBRV3A.25     
!                       Treatment of Scattering                            SBRV3A.26     
     &   , I_SCATTER_METHOD_BAND                                           SBRV3A.27     
!                       Options for solver                                 SBRV3A.28     
     &   , I_SOLVER, L_NET, N_AUGMENT                                      ADB1F405.587    
!                       Gaseous Properties                                 SBRV3A.30     
     &   , I_BAND, N_GAS                                                   SBRV3A.31     
     &   , INDEX_ABSORB, I_BAND_ESFT, I_SCALE_ESFT, I_SCALE_FNC            SBRV3A.32     
     &   , K_ESFT, W_ESFT, SCALE_VECTOR                                    SBRV3A.33     
     &   , P_REFERENCE, T_REFERENCE                                        SBRV3A.34     
     &   , GAS_MIX_RATIO, GAS_FRAC_RESCALED                                SBRV3A.35     
     &   , L_DOPPLER, DOPPLER_CORRECTION                                   SBRV3A.36     
!                       Spectral Region                                    SBRV3A.37     
     &   , ISOLIR                                                          SBRV3A.38     
!                       Solar Properties                                   SBRV3A.39     
     &   , SEC_0, SOLAR_FLUX                                               SBRV3A.40     
!                       Infra-red Properties                               SBRV3A.41     
     &   , PLANCK_SOURCE_TOP, PLANCK_SOURCE_BOTTOM                         SBRV3A.42     
     &   , DIFF_PLANCK_BAND                                                SBRV3A.43     
     &   , L_IR_SOURCE_QUAD, DIFF_PLANCK_BAND_2                            SBRV3A.44     
!                       Surface Properties                                 SBRV3A.45     
     &   , ALBEDO_SURFACE_DIFF, ALBEDO_SURFACE_DIR, THERMAL_GROUND_BAND    SBRV3A.46     
!                       Clear-sky Optical Properties                       SBRV3A.47     
     &   , K_GREY_TOT_FREE, K_EXT_SCAT_FREE, ASYMMETRY_FREE                SBRV3A.48     
     &   , FORWARD_SCATTER_FREE                                            SBRV3A.49     
!                       Cloudy Properties                                  SBRV3A.50     
     &   , L_CLOUD, I_CLOUD                                                SBRV3A.51     
!                       Cloud Geometry                                     SBRV3A.52     
     &   , N_CLOUD_TOP                                                     SBRV3A.53     
     &   , N_CLOUD_TYPE, FRAC_CLOUD                                        SBRV3A.54     
     &   , I_REGION_CLOUD, FRAC_REGION                                     ADB1F402.668    
     &   , W_FREE, N_FREE_PROFILE, I_FREE_PROFILE                          SBRV3A.55     
     &   , W_CLOUD, N_CLOUD_PROFILE, I_CLOUD_PROFILE                       SBRV3A.56     
     &   , CLOUD_OVERLAP                                                   SBRV3A.57     
     &   , N_COLUMN, L_COLUMN, AREA_COLUMN                                 SBRV3A.58     
!                       Cloudy Optical Properties                          SBRV3A.59     
     &   , K_GREY_TOT_CLOUD, K_EXT_SCAT_CLOUD                              SBRV3A.60     
     &   , ASYMMETRY_CLOUD, FORWARD_SCATTER_CLOUD                          SBRV3A.61     
!                       Fluxes Calculated                                  SBRV3A.62     
     &   , FLUX_DIRECT_BAND, FLUX_TOTAL_BAND                               SBRV3A.63     
!                       Flags for Clear-sky Fluxes                         SBRV3A.64     
     &   , L_CLEAR, I_SOLVER_CLEAR                                         SBRV3A.65     
!                       Clear-sky Fluxes                                   SBRV3A.66     
     &   , FLUX_DIRECT_CLEAR_BAND, FLUX_TOTAL_CLEAR_BAND                   SBRV3A.67     
!                       Planckian Function                                 SBRV3A.68     
     &   , PLANCK_SOURCE_BAND                                              SBRV3A.69     
     &   , NPD_PROFILE, NPD_LAYER, NPD_COLUMN                              SBRV3A.70     
     &   , NPD_BAND, NPD_SPECIES                                           SBRV3A.71     
     &   , NPD_ESFT_TERM, NPD_SCALE_VARIABLE, NPD_SCALE_FNC                SBRV3A.72     
     &   )                                                                 SBRV3A.73     
!                                                                          SBRV3A.74     
!                                                                          SBRV3A.75     
!                                                                          SBRV3A.76     
      IMPLICIT NONE                                                        SBRV3A.77     
!                                                                          SBRV3A.78     
!                                                                          SBRV3A.79     
!     SIZES OF DUMMY ARRAYS.                                               SBRV3A.80     
      INTEGER   !, INTENT(IN)                                              SBRV3A.81     
     &     NPD_PROFILE                                                     SBRV3A.82     
!             MAXIMUM NUMBER OF PROFILES                                   SBRV3A.83     
     &   , NPD_LAYER                                                       SBRV3A.84     
!             MAXIMUM NUMBER OF LAYERS                                     SBRV3A.85     
     &   , NPD_BAND                                                        SBRV3A.86     
!             MAXIMUM NUMBER OF SPECTRAL BANDS                             SBRV3A.87     
     &   , NPD_SPECIES                                                     SBRV3A.88     
!             MAXIMUM NUMBER OF SPECIES                                    SBRV3A.89     
     &   , NPD_ESFT_TERM                                                   SBRV3A.90     
!             MAXIMUM NUMBER OF ESFT TERMS                                 SBRV3A.91     
     &   , NPD_SCALE_VARIABLE                                              SBRV3A.92     
!             MAXIMUM NUMBER OF SCALE VARIABLES                            SBRV3A.93     
     &   , NPD_SCALE_FNC                                                   SBRV3A.94     
!             MAXIMUM NUMBER OF SCALING FUNCTIONS                          SBRV3A.95     
     &   , NPD_COLUMN                                                      SBRV3A.96     
!             NUMBER OF COLUMNS PER POINT                                  SBRV3A.97     
!                                                                          SBRV3A.98     
!     INCLUDE COMDECKS.                                                    SBRV3A.99     
*CALL DIMFIX3A                                                             SBRV3A.100    
*CALL ESFTSC3A                                                             SBRV3A.101    
*CALL SPCRG3A                                                              SBRV3A.102    
*CALL ERROR3A                                                              SBRV3A.103    
!                                                                          SBRV3A.104    
!                                                                          SBRV3A.105    
!                                                                          SBRV3A.106    
!     DUMMY ARGUMENTS.                                                     SBRV3A.107    
      INTEGER   !, INTENT(OUT)                                             SBRV3A.108    
     &     IERR                                                            SBRV3A.109    
!             ERROR FLAG                                                   SBRV3A.110    
!                                                                          SBRV3A.111    
!                       Atmospheric Column                                 SBRV3A.112    
      INTEGER   !, INTENT(IN)                                              SBRV3A.113    
     &     N_PROFILE                                                       SBRV3A.114    
!             NUMBER OF PROFILES                                           SBRV3A.115    
     &   , N_LAYER                                                         SBRV3A.116    
!             NUMBER OF LAYERS                                             SBRV3A.117    
     &   , I_TOP                                                           SBRV3A.118    
!             TOP OF VERTICAL GRID                                         SBRV3A.119    
      LOGICAL   !, INTENT(IN)                                              SBRV3A.120    
     &     L_LAYER                                                         SBRV3A.121    
!             PROPERTIES GIVEN IN LAYERS                                   SBRV3A.122    
      REAL  !, INTENT(IN)                                                  SBRV3A.123    
     &     D_MASS(NPD_PROFILE, NPD_LAYER)                                  SBRV3A.124    
!             MASS THICKNESS OF EACH LAYER                                 SBRV3A.125    
     &   , P(NPD_PROFILE, 0: NPD_LAYER)                                    SBRV3A.126    
!             PRESSURE                                                     SBRV3A.127    
     &   , T(NPD_PROFILE, 0: NPD_LAYER)                                    SBRV3A.128    
!             TEMPERATURE                                                  SBRV3A.129    
!                                                                          SBRV3A.130    
!                       Angular Integration                                SBRV3A.131    
      INTEGER   !, INTENT(IN)                                              SBRV3A.132    
     &     I_ANGULAR_INTEGRATION                                           SBRV3A.133    
!             ANGULAR INTEGRATION SCHEME                                   SBRV3A.134    
     &   , I_2STREAM                                                       SBRV3A.135    
!             TWO-STREAM SCHEME                                            SBRV3A.136    
     &   , N_ORDER_GAUSS                                                   SBRV3A.137    
!             ORDER OF GAUSSIAN INTEGRATION                                SBRV3A.138    
      LOGICAL   !, INTENT(IN)                                              SBRV3A.139    
     &     L_2_STREAM_CORRECT                                              SBRV3A.140    
!             USE AN EDGE CORRECTION                                       SBRV3A.141    
     &   , L_RESCALE                                                       SBRV3A.142    
!             RESCALE OPTICAL PROPERTIES                                   SBRV3A.143    
!                                                                          SBRV3A.144    
!                       Treatment of Scattering                            SBRV3A.145    
      INTEGER   !, INTENT(IN)                                              SBRV3A.146    
     &     I_SCATTER_METHOD_BAND                                           SBRV3A.147    
!             METHOD OF TREATING SCATTERING                                SBRV3A.148    
!                                                                          SBRV3A.149    
!                       Options for Solver                                 SBRV3A.150    
      INTEGER   !, INTENT(IN)                                              SBRV3A.151    
     &     I_SOLVER                                                        SBRV3A.152    
!             SOLVER USED                                                  SBRV3A.153    
     &   , N_AUGMENT                                                       SBRV3A.156    
!             LENGTH OF LONG FLUX VECTOR                                   SBRV3A.157    
      LOGICAL   !, INTENT(IN)                                              SBRV3A.158    
     &     L_NET                                                           SBRV3A.159    
!             SOLVE FOR NET FLUXES                                         SBRV3A.160    
!                                                                          SBRV3A.161    
!                       Gaseous Properties                                 SBRV3A.162    
      INTEGER   !, INTENT(IN)                                              SBRV3A.163    
     &     I_BAND                                                          SBRV3A.164    
!             BAND BEING CONSIDERED                                        SBRV3A.165    
     &   , N_GAS                                                           SBRV3A.166    
!             NUMBER OF GASES IN BAND                                      SBRV3A.167    
     &   , INDEX_ABSORB(NPD_SPECIES, NPD_BAND)                             SBRV3A.168    
!             LIST OF ABSORBERS IN BANDS                                   SBRV3A.169    
     &   , I_BAND_ESFT(NPD_BAND, NPD_SPECIES)                              SBRV3A.170    
!             NUMBER OF TERMS IN BAND                                      SBRV3A.171    
     &   , I_SCALE_ESFT(NPD_BAND, NPD_SPECIES)                             SBRV3A.172    
!             TYPE OF ESFT SCALING                                         SBRV3A.173    
     &   , I_SCALE_FNC(NPD_BAND, NPD_SPECIES)                              SBRV3A.174    
!             TYPE OF SCALING FUNCTION                                     SBRV3A.175    
      LOGICAL   !, INTENT(IN)                                              SBRV3A.176    
     &     L_DOPPLER(NPD_SPECIES)                                          SBRV3A.177    
!             DOPPLER BROADENING INCLUDED                                  SBRV3A.178    
      REAL      !, INTENT(IN)                                              SBRV3A.179    
     &     K_ESFT(NPD_ESFT_TERM, NPD_BAND, NPD_SPECIES)                    SBRV3A.180    
!             EXPONENTIAL ESFT TERMS                                       SBRV3A.181    
     &   , W_ESFT(NPD_ESFT_TERM, NPD_BAND, NPD_SPECIES)                    SBRV3A.182    
!             WEIGHTS FOR ESFT                                             SBRV3A.183    
     &   , SCALE_VECTOR(NPD_SCALE_VARIABLE, NPD_ESFT_TERM, NPD_BAND        SBRV3A.184    
     &        , NPD_SPECIES)                                               SBRV3A.185    
!             ABSORBER SCALING PARAMETERS                                  SBRV3A.186    
     &   , P_REFERENCE(NPD_SPECIES, NPD_BAND)                              SBRV3A.187    
!             REFERENCE SCALING PRESSURE                                   SBRV3A.188    
     &   , T_REFERENCE(NPD_SPECIES, NPD_BAND)                              SBRV3A.189    
!             REFERENCE SCALING TEMPERATURE                                SBRV3A.190    
     &   , GAS_MIX_RATIO(NPD_PROFILE, 0: NPD_LAYER, NPD_SPECIES)           SBRV3A.191    
!             GAS MASS MIXING RATIOS                                       SBRV3A.192    
     &   , GAS_FRAC_RESCALED(NPD_PROFILE, 0: NPD_LAYER, NPD_SPECIES)       SBRV3A.193    
!             RESCALED GAS MASS FRACTIONS                                  SBRV3A.194    
     &   , DOPPLER_CORRECTION(NPD_SPECIES)                                 SBRV3A.195    
!             DOPPLER BROADENING TERMS                                     SBRV3A.196    
!                                                                          SBRV3A.197    
!                       Spectral Region                                    SBRV3A.198    
      INTEGER   !, INTENT(IN)                                              SBRV3A.199    
     &     ISOLIR                                                          SBRV3A.200    
!             VISIBLE OR IR                                                SBRV3A.201    
!                                                                          SBRV3A.202    
!                       Solar Properties                                   SBRV3A.203    
      REAL  !, INTENT(IN)                                                  SBRV3A.204    
     &     SEC_0(NPD_PROFILE)                                              SBRV3A.205    
!             SECANT OF SOLAR ZENITH ANGLE                                 SBRV3A.206    
     &   , SOLAR_FLUX(NPD_PROFILE)                                         SBRV3A.207    
!             INCIDENT SOLAR FLUX IN BAND                                  SBRV3A.208    
!                                                                          SBRV3A.209    
!                       Infra-red Properties                               SBRV3A.210    
      LOGICAL   !, INTENT(IN)                                              SBRV3A.211    
     &     L_IR_SOURCE_QUAD                                                SBRV3A.212    
!             USE A QUADRATIC SOURCE FUNCTION                              SBRV3A.213    
      REAL  !, INTENT(IN)                                                  SBRV3A.214    
     &     PLANCK_SOURCE_TOP(NPD_PROFILE)                                  SBRV3A.215    
!             PLANCKIAN SOURCE AT TOP                                      SBRV3A.216    
     &   , PLANCK_SOURCE_BOTTOM(NPD_PROFILE)                               SBRV3A.217    
!             PLANCKIAN SOURCE AT BOTTOM                                   SBRV3A.218    
     &   , DIFF_PLANCK_BAND(NPD_PROFILE, NPD_LAYER)                        SBRV3A.219    
!             THERMAL SOURCE FUNCTION                                      SBRV3A.220    
     &   , DIFF_PLANCK_BAND_2(NPD_PROFILE, NPD_LAYER)                      SBRV3A.221    
!             2x2ND DIFFERENCE OF PLANCKIAN IN BAND                        SBRV3A.222    
!                                                                          SBRV3A.223    
!                       Surface Properties                                 SBRV3A.224    
      REAL  !, INTENT(IN)                                                  SBRV3A.225    
     &     ALBEDO_SURFACE_DIFF(NPD_PROFILE)                                SBRV3A.226    
!             DIFFUSE SURFACE ALBEDO                                       SBRV3A.227    
     &   , ALBEDO_SURFACE_DIR(NPD_PROFILE)                                 SBRV3A.228    
!             DIRECT SURFACE ALBEDO                                        SBRV3A.229    
     &   , THERMAL_GROUND_BAND(NPD_PROFILE)                                SBRV3A.230    
!             THERMAL SOURCE FUNCTION AT GROUND                            SBRV3A.231    
!                                                                          SBRV3A.232    
!                       Clear-sky Optical Properties                       SBRV3A.233    
      REAL  !, INTENT(IN)                                                  SBRV3A.234    
     &     K_GREY_TOT_FREE(NPD_PROFILE, NPD_LAYER)                         SBRV3A.235    
!             FREE ABSORPTIVE EXTINCTION                                   SBRV3A.236    
     &   , K_EXT_SCAT_FREE(NPD_PROFILE, NPD_LAYER)                         SBRV3A.237    
!             FREE SCATTERING EXTINCTION                                   SBRV3A.238    
     &   , ASYMMETRY_FREE(NPD_PROFILE, NPD_LAYER)                          SBRV3A.239    
!             CLEAR-SKY ASYMMETRY                                          SBRV3A.240    
     &   , FORWARD_SCATTER_FREE(NPD_PROFILE, NPD_LAYER)                    SBRV3A.241    
!             FREE FORWARD SCATTERING                                      SBRV3A.242    
!                                                                          SBRV3A.243    
!                       Cloudy properties                                  SBRV3A.244    
      LOGICAL   !, INTENT(IN)                                              SBRV3A.245    
     &     L_CLOUD                                                         SBRV3A.246    
!             CLOUD ENABLED                                                SBRV3A.247    
      INTEGER   !, INTENT(IN)                                              SBRV3A.248    
     &     I_CLOUD                                                         SBRV3A.249    
!             CLOUD SCHEME USED                                            SBRV3A.250    
!                                                                          SBRV3A.251    
!                       Cloud Geometry                                     SBRV3A.252    
      INTEGER   !, INTENT(IN)                                              SBRV3A.253    
     &     N_CLOUD_TOP                                                     SBRV3A.254    
!             TOPMOST CLOUDY LAYER                                         SBRV3A.255    
     &   , N_CLOUD_TYPE                                                    SBRV3A.256    
!             NUMBER OF TYPES OF CLOUD                                     SBRV3A.257    
     &   , N_FREE_PROFILE(NPD_LAYER)                                       SBRV3A.258    
!             NUMBER OF FREE PROFILES                                      SBRV3A.259    
     &   , I_FREE_PROFILE(NPD_PROFILE, NPD_LAYER)                          SBRV3A.260    
!             INDICES OF FREE PROFILES                                     SBRV3A.261    
     &   , N_CLOUD_PROFILE(NPD_LAYER)                                      SBRV3A.262    
!             NUMBER OF CLOUDY PROFILES                                    SBRV3A.263    
     &   , I_CLOUD_PROFILE(NPD_PROFILE, NPD_LAYER)                         SBRV3A.264    
!             INDICES OF CLOUDY PROFILES                                   SBRV3A.265    
     &   , N_COLUMN(NPD_PROFILE)                                           SBRV3A.266    
!             NUMBER OF COLUMNS REQUIRED                                   SBRV3A.267    
     &   , I_REGION_CLOUD(NPD_CLOUD_TYPE)                                  ADB1F402.669    
!             REGIONS IN WHICH TYPES OF CLOUDS FALL                        ADB1F402.670    
      LOGICAL   !, INTENT(IN)                                              SBRV3A.268    
     &     L_COLUMN(NPD_PROFILE, NPD_LAYER, NPD_COLUMN)                    SBRV3A.269    
!             FLAGS FOR CONTENT OF COLUMNS                                 SBRV3A.270    
      REAL  !, INTENT(IN)                                                  SBRV3A.271    
     &     W_CLOUD(NPD_PROFILE, NPD_LAYER)                                 SBRV3A.272    
!             CLOUDY FRACTION                                              SBRV3A.273    
     &   , FRAC_CLOUD(NPD_PROFILE, NPD_LAYER, NPD_CLOUD_TYPE)              SBRV3A.274    
!             FRACTIONS OF TYPES OF CLOUDS                                 SBRV3A.275    
     &   , W_FREE(NPD_PROFILE, NPD_LAYER)                                  SBRV3A.276    
!             CLEAR-SKY FRACTION                                           SBRV3A.277    
     &   , CLOUD_OVERLAP(NPD_PROFILE, 0: NPD_LAYER, NPD_OVERLAP_COEFF)     SBRV3A.278    
!             COEFFICIENTS FOR TRANSFER FOR ENERGY AT INTERFACES           SBRV3A.279    
     &   , AREA_COLUMN(NPD_PROFILE, NPD_COLUMN)                            SBRV3A.280    
!             AREAS OF COLUMNS                                             SBRV3A.281    
     &   , FRAC_REGION(NPD_PROFILE, NPD_LAYER, NPD_REGION)                 ADB1F402.671    
!             FRACTIONS OF TOTAL CLOUD OCCUPIED BY EACH REGION             ADB1F402.672    
!                                                                          SBRV3A.282    
!                       Cloudy Optical Properties                          SBRV3A.283    
      REAL  !, INTENT(IN)                                                  SBRV3A.284    
     &     K_GREY_TOT_CLOUD(NPD_PROFILE, NPD_LAYER, NPD_CLOUD_TYPE)        SBRV3A.285    
!             CLOUDY ABSORPTIVE EXTINCTION                                 SBRV3A.286    
     &   , K_EXT_SCAT_CLOUD(NPD_PROFILE, NPD_LAYER, NPD_CLOUD_TYPE)        SBRV3A.287    
!             CLOUDY SCATTERING EXTINCTION                                 SBRV3A.288    
     &   , ASYMMETRY_CLOUD(NPD_PROFILE, NPD_LAYER, NPD_CLOUD_TYPE)         SBRV3A.289    
!             CLOUDY ASYMMETRY                                             SBRV3A.290    
     &   , FORWARD_SCATTER_CLOUD(NPD_PROFILE, NPD_LAYER, NPD_CLOUD_TYPE)   SBRV3A.291    
!             CLOUDY FORWARD SCATTERING                                    SBRV3A.292    
!                                                                          SBRV3A.293    
!                       Flags for Clear-sky Calculations                   SBRV3A.294    
      LOGICAL   !, INTENT(IN)                                              SBRV3A.295    
     &     L_CLEAR                                                         SBRV3A.296    
!             CALCULATE CLEAR-SKY PROPERTIES                               SBRV3A.297    
      INTEGER   !, INTENT(IN)                                              SBRV3A.298    
     &     I_SOLVER_CLEAR                                                  SBRV3A.299    
!             CLEAR SOLVER USED                                            SBRV3A.300    
!                                                                          SBRV3A.301    
!                       Planckian Source Function                          SBRV3A.302    
      REAL  !, INTENT(IN)                                                  SBRV3A.303    
     &     PLANCK_SOURCE_BAND(NPD_PROFILE, 0: NPD_LAYER)                   SBRV3A.304    
!             PLANCKIAN SOURCE IN BAND                                     SBRV3A.305    
!                                                                          SBRV3A.306    
!                       Fluxes Calculated                                  SBRV3A.307    
      REAL  !, INTENT(OUT)                                                 SBRV3A.308    
     &     FLUX_DIRECT_BAND(NPD_PROFILE, 0: NPD_LAYER)                     SBRV3A.309    
!             DIRECT FLUX IN BAND                                          SBRV3A.310    
     &   , FLUX_TOTAL_BAND(NPD_PROFILE, 2*NPD_LAYER+2)                     SBRV3A.311    
!             TOTAL FLUX IN BAND                                           SBRV3A.312    
!                                                                          SBRV3A.313    
!                       Clear-sky Fluxes Calculated                        SBRV3A.314    
      REAL  !, INTENT(OUT)                                                 SBRV3A.315    
     &     FLUX_DIRECT_CLEAR_BAND(NPD_PROFILE, 0: NPD_LAYER)               SBRV3A.316    
!             CLEAR-SKY DIRECT FLUX IN BAND                                SBRV3A.317    
     &   , FLUX_TOTAL_CLEAR_BAND(NPD_PROFILE, 2*NPD_LAYER+2)               SBRV3A.318    
!             CLEAR-SKY TOTAL FLUX IN BAND                                 SBRV3A.319    
!                                                                          SBRV3A.320    
!                                                                          SBRV3A.321    
!                                                                          SBRV3A.322    
!     LOCAL VARIABLES.                                                     SBRV3A.323    
      INTEGER                                                              SBRV3A.324    
     &     J                                                               SBRV3A.325    
!             LOOP VARIABLE                                                SBRV3A.326    
     &   , K                                                               SBRV3A.327    
!             LOOP VARIABLE                                                SBRV3A.328    
     &   , L                                                               SBRV3A.329    
!             LOOP VARIABLE                                                SBRV3A.330    
      INTEGER                                                              SBRV3A.331    
     &     I_GAS_BAND                                                      SBRV3A.332    
!             INDEX OF ACTIVE GAS                                          SBRV3A.333    
     &   , I_GAS_POINTER(NPD_SPECIES)                                      SBRV3A.334    
!             POINTER ARRAY FOR MONOCHROMATIC ESFTs                        SBRV3A.335    
     &   , I_ESFT_POINTER(NPD_SPECIES)                                     SBRV3A.336    
!             POINTER TO ESFT FOR GAS                                      SBRV3A.337    
     &   , I_CHANGE                                                        SBRV3A.338    
!             POSITION OF ESFT TERM TO BE ALTERED                          SBRV3A.339    
     &   , INDEX_CHANGE                                                    SBRV3A.340    
!             INDEX OF TERM TO BE ALTERED                                  SBRV3A.341    
     &   , INDEX_LAST                                                      SBRV3A.342    
!             INDEX OF LAST GAS IN BAND                                    SBRV3A.343    
     &   , IEX                                                             SBRV3A.344    
!             INDEX OF ESFT TERM                                           SBRV3A.345    
      REAL                                                                 SBRV3A.346    
     &     K_ESFT_MONO(NPD_SPECIES)                                        SBRV3A.347    
!             ESFT MONOCHROMATIC EXPONENTS                                 SBRV3A.348    
     &   , K_GAS_ABS(NPD_PROFILE, NPD_LAYER)                               SBRV3A.349    
!             GASEOUS ABSORPTION                                           SBRV3A.350    
     &   , SOURCE_GROUND(NPD_PROFILE)                                      SBRV3A.351    
!             GROUND SOURCE FUNCTION                                       SBRV3A.352    
     &   , FLUX_INC_DIRECT(NPD_PROFILE)                                    SBRV3A.353    
!             INCIDENT DIRECT FLUX                                         SBRV3A.354    
     &   , FLUX_INC_DOWN(NPD_PROFILE)                                      SBRV3A.355    
!             INCIDENT DOWNWARD FLUX                                       SBRV3A.356    
     &   , PRODUCT_WEIGHT                                                  SBRV3A.357    
!             PRODUCT OF ESFT WEIGHTS                                      SBRV3A.358    
     &   , DUMMY_KE(NPD_PROFILE, NPD_LAYER)                                SBRV3A.359    
!             DUMMY ARRAY (NOT USED)                                       SBRV3A.360    
      REAL                                                                 SBRV3A.361    
     &     FLUX_DIRECT_PART(NPD_PROFILE, 0: NPD_LAYER)                     SBRV3A.362    
!             PARTIAL DIRECT FLUX                                          SBRV3A.363    
     &   , FLUX_TOTAL_PART(NPD_PROFILE, 2*NPD_LAYER+2)                     SBRV3A.364    
!             PARTIAL TOTAL FLUX                                           SBRV3A.365    
     &   , FLUX_DIRECT_CLEAR_PART(NPD_PROFILE, 0: NPD_LAYER)               SBRV3A.366    
!             PARTIAL CLEAR-SKY DIRECT FLUX                                SBRV3A.367    
     &   , FLUX_TOTAL_CLEAR_PART(NPD_PROFILE, 2*NPD_LAYER+2)               SBRV3A.368    
!             PARTIAL CLEAR-SKY TOTAL FLUX                                 SBRV3A.369    
!                                                                          SBRV3A.370    
!     SUBROUTINES CALLED:                                                  SBRV3A.371    
      EXTERNAL                                                             SBRV3A.372    
     &     SCALE_ABSORB, GAS_OPTICAL_PROPERTIES                            SBRV3A.373    
     &   , MONOCHROMATIC_FLUX, AUGMENT_FLUX                                SBRV3A.374    
!                                                                          SBRV3A.375    
!                                                                          SBRV3A.376    
!                                                                          SBRV3A.377    
!     SET THE NUMBER OF ACTIVE GASES AND INITIALIZE THE POINTERS.          SBRV3A.378    
      DO K=1, N_GAS                                                        SBRV3A.379    
         I_GAS_POINTER(K)=INDEX_ABSORB(K, I_BAND)                          SBRV3A.380    
         I_ESFT_POINTER(INDEX_ABSORB(K, I_BAND))=1                         SBRV3A.381    
      ENDDO                                                                SBRV3A.382    
      INDEX_LAST=INDEX_ABSORB(N_GAS, I_BAND)                               SBRV3A.383    
!                                                                          SBRV3A.384    
!     PERFORM THE INITIAL RESCALING OF THE GASES OTHER THAN THE LAST.      SBRV3A.385    
!     NOTE: WE RESCALE AMOUNTS AS REQUIRED. IT WOULD BE MORE               SBRV3A.386    
!     EFFICIENT TO SAVE THE RESCALED AMOUNTS, BUT THE STORAGE              SBRV3A.387    
!     NEEDED WOULD BECOME EXCESSIVE FOR A MULTICOLUMN CODE. IN A           SBRV3A.388    
!     SINGLE CODE THE OVERHEAD IS LESS SIGNIFICANT.                        SBRV3A.389    
      DO K=1, N_GAS-1                                                      SBRV3A.390    
         I_GAS_BAND=I_GAS_POINTER(K)                                       SBRV3A.391    
!        INITIALIZE THE MONOCHROMATIC ABSORPTION COEFFICIENTS.             SBRV3A.392    
         K_ESFT_MONO(I_GAS_BAND)                                           SBRV3A.393    
     &      =K_ESFT(1, I_BAND, I_GAS_BAND)                                 SBRV3A.394    
         IF (I_SCALE_ESFT(I_BAND, I_GAS_BAND).EQ.IP_SCALE_TERM) THEN       SBRV3A.395    
            CALL SCALE_ABSORB(IERR, N_PROFILE, N_LAYER                     SBRV3A.396    
     &         , GAS_MIX_RATIO(1, 0, I_GAS_BAND), P, T                     SBRV3A.397    
     &         , L_LAYER, I_TOP                                            SBRV3A.398    
     &         , GAS_FRAC_RESCALED(1, 0, I_GAS_BAND)                       SBRV3A.399    
     &         , I_SCALE_FNC(I_BAND, I_GAS_BAND)                           SBRV3A.400    
     &         , P_REFERENCE(I_GAS_BAND, I_BAND)                           SBRV3A.401    
     &         , T_REFERENCE(I_GAS_BAND, I_BAND)                           SBRV3A.402    
     &         , SCALE_VECTOR(1, 1, I_BAND, I_GAS_BAND)                    SBRV3A.403    
     &         , L_DOPPLER(I_GAS_BAND), DOPPLER_CORRECTION(I_GAS_BAND)     SBRV3A.404    
     &         , NPD_PROFILE, NPD_LAYER, NPD_SCALE_FNC                     SBRV3A.405    
     &         , NPD_SCALE_VARIABLE                                        SBRV3A.406    
     &         )                                                           SBRV3A.407    
            IF (IERR.NE.I_NORMAL) RETURN                                   SBRV3A.408    
         ENDIF                                                             SBRV3A.409    
      ENDDO                                                                SBRV3A.410    
!                                                                          SBRV3A.411    
!     LOOP THROUGH THE TERMS FOR THE FIRST ABSORBER.                       SBRV3A.412    
2000  I_ESFT_POINTER(INDEX_LAST)=0                                         SBRV3A.413    
      DO K=1, I_BAND_ESFT(I_BAND, INDEX_LAST)                              SBRV3A.414    
         I_ESFT_POINTER(INDEX_LAST)                                        SBRV3A.415    
     &      =I_ESFT_POINTER(INDEX_LAST)+1                                  SBRV3A.416    
!                                                                          SBRV3A.417    
!        SET THE ESFT COEFFICIENT AND PERFORM RESCALING FOR THE            SBRV3A.418    
!        LAST GAS.                                                         SBRV3A.419    
         IEX=I_ESFT_POINTER(INDEX_LAST)                                    SBRV3A.420    
         K_ESFT_MONO(INDEX_LAST)                                           SBRV3A.421    
     &      =K_ESFT(IEX, I_BAND, INDEX_LAST)                               SBRV3A.422    
         IF (I_SCALE_ESFT(I_BAND, INDEX_LAST).EQ.IP_SCALE_TERM) THEN       SBRV3A.423    
            CALL SCALE_ABSORB(IERR, N_PROFILE, N_LAYER                     SBRV3A.424    
     &         , GAS_MIX_RATIO(1, 0, INDEX_LAST), P, T                     SBRV3A.425    
     &         , L_LAYER, I_TOP                                            SBRV3A.426    
     &         , GAS_FRAC_RESCALED(1, 0, INDEX_LAST)                       SBRV3A.427    
     &         , I_SCALE_FNC(I_BAND, INDEX_LAST)                           SBRV3A.428    
     &         , P_REFERENCE(INDEX_LAST, I_BAND)                           SBRV3A.429    
     &         , T_REFERENCE(INDEX_LAST, I_BAND)                           SBRV3A.430    
     &         , SCALE_VECTOR(1, IEX, I_BAND, INDEX_LAST)                  SBRV3A.431    
     &         , L_DOPPLER(INDEX_LAST)                                     SBRV3A.432    
     &         , DOPPLER_CORRECTION(INDEX_LAST)                            SBRV3A.433    
     &         , NPD_PROFILE, NPD_LAYER, NPD_SCALE_FNC                     SBRV3A.434    
     &         , NPD_SCALE_VARIABLE                                        SBRV3A.435    
     &         )                                                           SBRV3A.436    
            IF (IERR.NE.I_NORMAL) RETURN                                   SBRV3A.437    
         ENDIF                                                             SBRV3A.438    
!                                                                          SBRV3A.439    
!        SET THE APPROPRIATE SOURCE TERMS FOR THE TWO-STREAM               SBRV3A.440    
!        EQUATIONS.                                                        SBRV3A.441    
!        THE PRODUCT OF THE ESFT WEIGHGTS CAN BE PRECALCULATED             SBRV3A.442    
!        FOR SPEED.                                                        SBRV3A.443    
         PRODUCT_WEIGHT=1.0E+00                                            SBRV3A.444    
         DO J=1, N_GAS                                                     SBRV3A.445    
            I_GAS_BAND=I_GAS_POINTER(J)                                    SBRV3A.446    
            IEX=I_ESFT_POINTER(I_GAS_BAND)                                 SBRV3A.447    
            PRODUCT_WEIGHT=PRODUCT_WEIGHT                                  SBRV3A.448    
     &         *W_ESFT(IEX, I_BAND, I_GAS_BAND)                            SBRV3A.449    
         ENDDO                                                             SBRV3A.450    
!                                                                          SBRV3A.451    
         IF (ISOLIR.EQ.IP_SOLAR) THEN                                      SBRV3A.452    
!           VISIBLE REGION.                                                SBRV3A.453    
            DO L=1, N_PROFILE                                              SBRV3A.454    
               SOURCE_GROUND(L)=0.0E+00                                    SBRV3A.455    
               FLUX_INC_DOWN(L)=SOLAR_FLUX(L)                              SBRV3A.456    
               FLUX_INC_DIRECT(L)=SOLAR_FLUX(L)                            SBRV3A.457    
            ENDDO                                                          SBRV3A.458    
         ELSEIF (ISOLIR.EQ.IP_INFRA_RED) THEN                              SBRV3A.459    
!           INFRA-RED REGION.                                              SBRV3A.460    
            DO L=1, N_PROFILE                                              SBRV3A.461    
               FLUX_INC_DIRECT(L)=0.0E+00                                  SBRV3A.462    
               FLUX_DIRECT_PART(L, N_LAYER)=0.0E+00                        ADB1F401.910    
               FLUX_INC_DOWN(L)=-PLANCK_SOURCE_TOP(L)                      SBRV3A.463    
               SOURCE_GROUND(L)=THERMAL_GROUND_BAND(L)                     SBRV3A.464    
     &            -(1.-ALBEDO_SURFACE_DIFF(L))                             SBRV3A.465    
     &            *PLANCK_SOURCE_BOTTOM(L)                                 SBRV3A.466    
            ENDDO                                                          SBRV3A.467    
            IF (L_CLEAR) THEN                                              ADB1F401.911    
               DO L=1, N_PROFILE                                           ADB1F401.912    
                  FLUX_DIRECT_CLEAR_PART(L, N_LAYER)=0.0E+00               ADB1F401.913    
               ENDDO                                                       ADB1F401.914    
            ENDIF                                                          ADB1F401.915    
         ENDIF                                                             SBRV3A.468    
!                                                                          SBRV3A.469    
         CALL GAS_OPTICAL_PROPERTIES(N_PROFILE, N_LAYER                    SBRV3A.470    
     &      , N_GAS, I_GAS_POINTER, K_ESFT_MONO                            SBRV3A.471    
     &      , GAS_FRAC_RESCALED                                            SBRV3A.472    
     &      , K_GAS_ABS                                                    SBRV3A.473    
     &      , NPD_PROFILE, NPD_LAYER, NPD_SPECIES                          SBRV3A.474    
     &      )                                                              SBRV3A.475    
!                                                                          SBRV3A.476    
!                                                                          SBRV3A.477    
         CALL MONOCHROMATIC_FLUX(IERR                                      SBRV3A.478    
!                       Atmospheric Properties                             SBRV3A.479    
     &      , N_PROFILE, N_LAYER, D_MASS                                   SBRV3A.480    
!                       Angular Integration                                SBRV3A.481    
     &      , I_ANGULAR_INTEGRATION, I_2STREAM, L_2_STREAM_CORRECT         SBRV3A.482    
     &      , L_RESCALE, N_ORDER_GAUSS                                     SBRV3A.483    
!                       Treatment of Scattering                            SBRV3A.484    
     &      , I_SCATTER_METHOD_BAND                                        SBRV3A.485    
!                       Options for Solver                                 SBRV3A.486    
     &      , I_SOLVER, L_NET, N_AUGMENT                                   ADB1F405.588    
!                       Gaseous Propreties                                 SBRV3A.488    
     &      , K_GAS_ABS                                                    SBRV3A.489    
!                       Options for Equivalent Extinction                  SBRV3A.490    
     &      , .FALSE., DUMMY_KE                                            SBRV3A.491    
!                       Spectral Region                                    SBRV3A.492    
     &      , ISOLIR                                                       SBRV3A.493    
!                       Infra-red Properties                               SBRV3A.494    
     &      , DIFF_PLANCK_BAND                                             SBRV3A.495    
     &      , L_IR_SOURCE_QUAD, DIFF_PLANCK_BAND_2                         SBRV3A.496    
!                       Conditions at TOA                                  SBRV3A.497    
     &      , SEC_0, FLUX_INC_DIRECT, FLUX_INC_DOWN                        SBRV3A.498    
!                       Surface Properties                                 SBRV3A.499    
     &      , ALBEDO_SURFACE_DIFF, ALBEDO_SURFACE_DIR, SOURCE_GROUND       SBRV3A.500    
     &      , THERMAL_GROUND_BAND                                          SBRV3A.501    
!                       Clear-sky Optical Properties                       SBRV3A.502    
     &      , K_GREY_TOT_FREE, K_EXT_SCAT_FREE                             SBRV3A.503    
     &      , ASYMMETRY_FREE, FORWARD_SCATTER_FREE                         SBRV3A.504    
!                       Cloudy Properties                                  SBRV3A.505    
     &      , L_CLOUD, I_CLOUD                                             SBRV3A.506    
!                       Cloud Geometry                                     SBRV3A.507    
     &      , N_CLOUD_TOP                                                  SBRV3A.508    
     &      , N_CLOUD_TYPE, FRAC_CLOUD                                     SBRV3A.509    
     &      , I_REGION_CLOUD, FRAC_REGION                                  ADB1F402.673    
     &      , W_FREE, N_FREE_PROFILE, I_FREE_PROFILE                       SBRV3A.510    
     &      , W_CLOUD, N_CLOUD_PROFILE, I_CLOUD_PROFILE                    SBRV3A.511    
     &      , CLOUD_OVERLAP                                                SBRV3A.512    
     &      , N_COLUMN, L_COLUMN, AREA_COLUMN                              SBRV3A.513    
!                       Cloudy Optical Properties                          SBRV3A.514    
     &      , K_GREY_TOT_CLOUD, K_EXT_SCAT_CLOUD                           SBRV3A.515    
     &      , ASYMMETRY_CLOUD, FORWARD_SCATTER_CLOUD                       SBRV3A.516    
!                       Fluxes Calculated                                  ADB1F401.916    
     &      , FLUX_DIRECT_PART, FLUX_TOTAL_PART                            SBRV3A.518    
!                       Flags for Clear-sky Calculations                   SBRV3A.519    
     &      , L_CLEAR, I_SOLVER_CLEAR                                      SBRV3A.520    
!                       Clear-sky Fluxes Calculated                        SBRV3A.521    
     &      , FLUX_DIRECT_CLEAR_PART, FLUX_TOTAL_CLEAR_PART                SBRV3A.522    
!                       Planckian Function                                 SBRV3A.523    
     &      , PLANCK_SOURCE_BAND                                           SBRV3A.524    
!                       Dimensions of Arrays                               SBRV3A.525    
     &      , NPD_PROFILE, NPD_LAYER, NPD_COLUMN                           SBRV3A.526    
     &      )                                                              SBRV3A.527    
         IF (IERR.NE.I_NORMAL) RETURN                                      SBRV3A.528    
!                                                                          SBRV3A.529    
!        INCREMENT THE FLUXES WITHIN THE BAND.                             SBRV3A.530    
         CALL AUGMENT_FLUX(N_PROFILE, N_LAYER, N_AUGMENT                   SBRV3A.531    
     &      , ISOLIR, L_CLEAR                                              SBRV3A.532    
     &      , PRODUCT_WEIGHT                                               SBRV3A.533    
     &      , FLUX_DIRECT_BAND, FLUX_TOTAL_BAND                            SBRV3A.534    
     &      , FLUX_DIRECT_PART, FLUX_TOTAL_PART                            SBRV3A.535    
     &      , FLUX_DIRECT_CLEAR_BAND, FLUX_TOTAL_CLEAR_BAND                SBRV3A.536    
     &      , FLUX_DIRECT_CLEAR_PART, FLUX_TOTAL_CLEAR_PART                SBRV3A.537    
     &      , NPD_PROFILE, NPD_LAYER                                       SBRV3A.538    
     &      )                                                              SBRV3A.539    
      ENDDO                                                                SBRV3A.540    
!                                                                          SBRV3A.541    
      IF (N_GAS.GT.1) THEN                                                 SBRV3A.542    
!        INCREMENT THE ESFT POINTERS FOR THE NEXT PASS THROUGH             SBRV3A.543    
!        THE LOOP ABOVE. I_CHANGE IS THE ORDINAL OF THE GAS,               SBRV3A.544    
!        THE POINTER OF WHICH IS TO BE CHANGED.                            SBRV3A.545    
         I_CHANGE=N_GAS-1                                                  SBRV3A.546    
2001     INDEX_CHANGE=INDEX_ABSORB(I_CHANGE, I_BAND)                       SBRV3A.547    
         IF (I_BAND_ESFT(I_BAND, INDEX_CHANGE)                             SBRV3A.548    
     &      .GT.I_ESFT_POINTER(INDEX_CHANGE)) THEN                         SBRV3A.549    
            I_ESFT_POINTER(INDEX_CHANGE)                                   SBRV3A.550    
     &         =I_ESFT_POINTER(INDEX_CHANGE)+1                             SBRV3A.551    
!           RESCALE THE AMOUNT OF THIS GAS AND ADVANCE THE                 SBRV3A.552    
!           ESFT TERM.                                                     SBRV3A.553    
            K_ESFT_MONO(INDEX_CHANGE)                                      SBRV3A.554    
     &         =K_ESFT(I_ESFT_POINTER(INDEX_CHANGE)                        SBRV3A.555    
     &         , I_BAND, INDEX_CHANGE)                                     SBRV3A.556    
            IF (I_SCALE_ESFT(I_BAND, INDEX_CHANGE).EQ.IP_SCALE_TERM)       SBRV3A.557    
     &         THEN                                                        SBRV3A.558    
               CALL SCALE_ABSORB(IERR, N_PROFILE, N_LAYER                  SBRV3A.559    
     &            , GAS_MIX_RATIO(1, 0, INDEX_CHANGE), P, T                SBRV3A.560    
     &            , L_LAYER, I_TOP                                         SBRV3A.561    
     &            , GAS_FRAC_RESCALED(1, 0, INDEX_CHANGE)                  SBRV3A.562    
     &            , I_SCALE_FNC(I_BAND, INDEX_CHANGE)                      SBRV3A.563    
     &            , P_REFERENCE(INDEX_CHANGE, I_BAND)                      SBRV3A.564    
     &            , T_REFERENCE(INDEX_CHANGE, I_BAND)                      SBRV3A.565    
     &            , SCALE_VECTOR(1, I_ESFT_POINTER(INDEX_CHANGE)           ADB1F401.917    
     &            , I_BAND, INDEX_CHANGE)                                  ADB1F401.918    
     &            , L_DOPPLER(INDEX_CHANGE)                                SBRV3A.567    
     &            , DOPPLER_CORRECTION(INDEX_CHANGE)                       SBRV3A.568    
     &            , NPD_PROFILE, NPD_LAYER, NPD_SCALE_FNC                  SBRV3A.569    
     &            , NPD_SCALE_VARIABLE                                     SBRV3A.570    
     &            )                                                        SBRV3A.571    
               IF (IERR.NE.I_NORMAL) RETURN                                SBRV3A.572    
            ENDIF                                                          SBRV3A.573    
            GOTO 2000                                                      SBRV3A.574    
         ELSE IF (I_CHANGE.GT.1) THEN                                      SBRV3A.575    
!           ALL TERMS FOR THIS ABSORBER HAVE BEEN DONE:                    SBRV3A.576    
!           RESET ITS POINTER TO 1 AND MOVE TO THE NEXT ABSORBER.          SBRV3A.577    
            I_ESFT_POINTER(INDEX_CHANGE)=1                                 SBRV3A.578    
            K_ESFT_MONO(INDEX_CHANGE)=K_ESFT(1, I_BAND, INDEX_CHANGE)      SBRV3A.579    
            I_CHANGE=I_CHANGE-1                                            SBRV3A.580    
            GOTO 2001                                                      SBRV3A.581    
         ENDIF                                                             SBRV3A.582    
      ENDIF                                                                SBRV3A.583    
!                                                                          ADB1F401.919    
!                                                                          SBRV3A.584    
!                                                                          SBRV3A.585    
      RETURN                                                               SBRV3A.586    
      END                                                                  SBRV3A.587    
*ENDIF DEF,A01_3A,OR,DEF,A02_3A                                            SBRV3A.588    
*ENDIF DEF,A70_1A,OR,DEF,A70_1B                                            APB4F405.82