*IF DEF,A70_1A,OR,DEF,A70_1B APB4F405.79
*IF DEF,A01_3A,OR,DEF,A02_3A SBKE3A.2
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved. GTS2F400.13790
C GTS2F400.13791
C Use, duplication or disclosure of this code is subject to the GTS2F400.13792
C restrictions as set forth in the contract. GTS2F400.13793
C GTS2F400.13794
C Meteorological Office GTS2F400.13795
C London Road GTS2F400.13796
C BRACKNELL GTS2F400.13797
C Berkshire UK GTS2F400.13798
C RG12 2SZ GTS2F400.13799
C GTS2F400.13800
C If no contract has been raised with this copy of the code, the use, GTS2F400.13801
C duplication or disclosure of it is strictly prohibited. Permission GTS2F400.13802
C to do so must first be obtained in writing from the Head of Numerical GTS2F400.13803
C Modelling at the above address. GTS2F400.13804
C ******************************COPYRIGHT****************************** GTS2F400.13805
C GTS2F400.13806
!+ Subroutine to calculate fluxes using equivalent extinction. SBKE3A.3
! SBKE3A.4
! Method: SBKE3A.5
! For each minor gas an equivalent extinction is calculated SBKE3A.6
! from a clear-sky calculation. These equivalent extinctions SBKE3A.7
! are then used in a full calculation involving the major gas. SBKE3A.8
! SBKE3A.9
! Current Owner of Code: J. M. Edwards SBKE3A.10
! SBKE3A.11
! History: SBKE3A.12
! Version Date Comment SBKE3A.13
! 4.0 27-07-95 Original Code SBKE3A.14
! (J. M. Edwards) SBKE3A.15
! 4.1 04-03-96 Calculation of equival- ADB1F401.845
! ent extinction removed ADB1F401.846
! from within the loop ADB1F401.847
! over the major gas since ADB1F401.848
! no dependence on ADB1F402.656
! the ESFT ADB1F402.657
! coefficient of the major ADB1F401.850
! gas is currently used. ADB1F401.851
! Half-precision exponent- ADB1F401.852
! ial introduced. ADB1F401.853
! (J. M. Edwards) ADB1F401.854
! 4.2 08-08-96 Code for vertically ADB1F402.652
! coherent convective ADB1F402.653
! cloud added. ADB1F402.654
! (J. M. Edwards) ADB1F402.655
! 4.2 Oct. 96 T3E migration: EXPHF function GSS3F402.326
! replaced. (S.J.Swarbrick) GSS3F402.327
! 4.5 18-05-98 Variable for obsolete ADB1F405.579
! solver removed. ADB1F405.580
! (J. M. Edwards) ADB1F405.581
! SBKE3A.16
! Description of Code: SBKE3A.17
! FORTRAN 77 with extensions listed in documentation. SBKE3A.18
! SBKE3A.19
!- --------------------------------------------------------------------- SBKE3A.20
SUBROUTINE SOLVE_BAND_K_EQV(IERR 1,14SBKE3A.21
! Atmospheric Properties SBKE3A.22
& , N_PROFILE, N_LAYER, L_LAYER, I_TOP, P, T, D_MASS SBKE3A.23
! Angular Integration SBKE3A.24
& , I_ANGULAR_INTEGRATION, I_2STREAM, L_2_STREAM_CORRECT SBKE3A.25
& , L_RESCALE, N_ORDER_GAUSS SBKE3A.26
! Treatment of Scattering SBKE3A.27
& , I_SCATTER_METHOD_BAND SBKE3A.28
! Options for Solver SBKE3A.29
& , I_SOLVER, L_NET, N_AUGMENT ADB1F405.582
! Gaseous Properties ADB1F401.855
& , I_BAND, N_GAS SBKE3A.32
& , INDEX_ABSORB, I_BAND_ESFT, I_SCALE_ESFT, I_SCALE_FNC SBKE3A.33
& , K_ESFT, W_ESFT, SCALE_VECTOR SBKE3A.34
& , P_REFERENCE, T_REFERENCE SBKE3A.35
& , GAS_MIX_RATIO, GAS_FRAC_RESCALED SBKE3A.36
& , L_DOPPLER, DOPPLER_CORRECTION SBKE3A.37
! Spectral Region SBKE3A.38
& , ISOLIR SBKE3A.39
! Solar Properties ADB1F401.856
& , SEC_0, SOLAR_FLUX SBKE3A.41
! Infra-red Properties ADB1F401.857
& , PLANCK_SOURCE_BAND SBKE3A.43
& , DIFF_PLANCK_BAND SBKE3A.44
& , L_IR_SOURCE_QUAD, DIFF_PLANCK_BAND_2 SBKE3A.45
! Surface Properties SBKE3A.46
& , ALBEDO_SURFACE_DIFF, ALBEDO_SURFACE_DIR, THERMAL_GROUND_BAND SBKE3A.47
! Clear-sky Optical Properties SBKE3A.48
& , K_GREY_TOT_FREE, K_EXT_SCAT_FREE, ASYMMETRY_FREE SBKE3A.49
& , FORWARD_SCATTER_FREE SBKE3A.50
! Cloudy Properties ADB1F401.858
& , L_CLOUD, I_CLOUD SBKE3A.52
! Cloud Geometry SBKE3A.53
& , N_CLOUD_TOP SBKE3A.54
& , N_CLOUD_TYPE, FRAC_CLOUD SBKE3A.55
& , I_REGION_CLOUD, FRAC_REGION ADB1F402.658
& , W_FREE, N_FREE_PROFILE, I_FREE_PROFILE SBKE3A.56
& , W_CLOUD, N_CLOUD_PROFILE, I_CLOUD_PROFILE SBKE3A.57
& , CLOUD_OVERLAP SBKE3A.58
& , N_COLUMN, L_COLUMN, AREA_COLUMN SBKE3A.59
! Cloudy Optical Properties SBKE3A.60
& , K_GREY_TOT_CLOUD, K_EXT_SCAT_CLOUD SBKE3A.61
& , ASYMMETRY_CLOUD, FORWARD_SCATTER_CLOUD SBKE3A.62
! Fluxes Calculated SBKE3A.63
& , FLUX_DIRECT_BAND, FLUX_TOTAL_BAND SBKE3A.64
! Flags for Clear-sky Fluxes SBKE3A.65
& , L_CLEAR, I_SOLVER_CLEAR SBKE3A.66
! Clear-sky Fluxes Calculated SBKE3A.67
& , FLUX_DIRECT_CLEAR_BAND, FLUX_TOTAL_CLEAR_BAND SBKE3A.68
! Dimensions of Arrays SBKE3A.69
& , NPD_PROFILE, NPD_LAYER, NPD_COLUMN SBKE3A.70
& , NPD_BAND, NPD_SPECIES SBKE3A.71
& , NPD_ESFT_TERM, NPD_SCALE_VARIABLE, NPD_SCALE_FNC SBKE3A.72
& ) SBKE3A.73
! SBKE3A.74
! SBKE3A.75
! SBKE3A.76
IMPLICIT NONE SBKE3A.77
! SBKE3A.78
! SBKE3A.79
! SIZES OF DUMMY ARRAYS. SBKE3A.80
INTEGER !, INTENT(IN) SBKE3A.81
& NPD_PROFILE SBKE3A.82
! MAXIMUM NUMBER OF PROFILES SBKE3A.83
& , NPD_LAYER SBKE3A.84
! MAXIMUM NUMBER OF LAYERS SBKE3A.85
& , NPD_BAND SBKE3A.86
! MAXIMUM NUMBER OF SPECTRAL BANDS SBKE3A.87
& , NPD_SPECIES SBKE3A.88
! MAXIMUM NUMBER OF SPECIES SBKE3A.89
& , NPD_ESFT_TERM SBKE3A.90
! MAXIMUM NUMBER OF ESFT TERMS SBKE3A.91
& , NPD_SCALE_VARIABLE SBKE3A.92
! MAXIMUM NUMBER OF SCALE VARIABLES SBKE3A.93
& , NPD_SCALE_FNC SBKE3A.94
! MAXIMUM NUMBER OF SCALING FUNCTIONS SBKE3A.95
& , NPD_COLUMN SBKE3A.96
! NUMBER OF COLUMNS PER POINT SBKE3A.97
! SBKE3A.98
! INCLUDE COMDECKS. SBKE3A.99
*CALL DIMFIX3A
SBKE3A.100
*CALL ESFTSC3A
SBKE3A.101
*CALL PRMCH3A
SBKE3A.102
*CALL PRECSN3A
SBKE3A.103
*CALL SPCRG3A
SBKE3A.104
*CALL DIFFKE3A
SBKE3A.105
*CALL ERROR3A
SBKE3A.106
! SBKE3A.107
! SBKE3A.108
! SBKE3A.109
! DUMMY ARGUMENTS. SBKE3A.110
INTEGER !, INTENT(OUT) SBKE3A.111
& IERR SBKE3A.112
! ERROR FLAG SBKE3A.113
! SBKE3A.114
! Atmospheric Properties SBKE3A.115
INTEGER !, INTENT(IN) SBKE3A.116
& N_PROFILE SBKE3A.117
! NUMBER OF PROFILES SBKE3A.118
& , N_LAYER SBKE3A.119
! NUMBER OF LAYERS SBKE3A.120
& , I_TOP SBKE3A.121
! TOP OF VERTICAL GRID SBKE3A.122
LOGICAL !, INTENT(IN) SBKE3A.123
& L_LAYER SBKE3A.124
! PROPERTIES GIVEN IN LAYERS SBKE3A.125
REAL !, INTENT(IN) SBKE3A.126
& D_MASS(NPD_PROFILE, NPD_LAYER) SBKE3A.127
! MASS THICKNESS OF EACH LAYER SBKE3A.128
& , P(NPD_PROFILE, 0: NPD_LAYER) SBKE3A.129
! PRESSURE SBKE3A.130
& , T(NPD_PROFILE, 0: NPD_LAYER) SBKE3A.131
! TEMPERATURE SBKE3A.132
! SBKE3A.133
! Angular Integration SBKE3A.134
INTEGER !, INTENT(IN) SBKE3A.135
& I_ANGULAR_INTEGRATION SBKE3A.136
! ANGULAR INTEGRATION SCHEME SBKE3A.137
& , I_2STREAM SBKE3A.138
! TWO-STREAM SCHEME SBKE3A.139
& , N_ORDER_GAUSS SBKE3A.140
! ORDER OF GAUSSIAN INTEGRATION SBKE3A.141
LOGICAL !, INTENT(IN) SBKE3A.142
& L_2_STREAM_CORRECT SBKE3A.143
! USE AN EDGE CORRECTION SBKE3A.144
& , L_RESCALE SBKE3A.145
! RESCALE OPTICAL PROPERTIES SBKE3A.146
! SBKE3A.147
! Treatment of Scattering SBKE3A.148
INTEGER !, INTENT(IN) SBKE3A.149
& I_SCATTER_METHOD_BAND SBKE3A.150
! METHOD OF TREATING SCATTERING SBKE3A.151
! SBKE3A.152
! Options for Solver SBKE3A.153
INTEGER !, INTENT(IN) SBKE3A.154
& I_SOLVER SBKE3A.155
! SOLVER USED SBKE3A.156
& , N_AUGMENT SBKE3A.159
! LENGTH OF LONG FLUX VECTOR SBKE3A.160
LOGICAL !, INTENT(IN) SBKE3A.161
& L_NET SBKE3A.162
! CALCULATE NET FLUXES SBKE3A.163
! SBKE3A.164
! Gaseous Properties SBKE3A.165
INTEGER !, INTENT(IN) SBKE3A.166
& I_BAND SBKE3A.167
! BAND BEING CONSIDERED SBKE3A.168
& , N_GAS SBKE3A.169
! NUMBER OF GASES IN BAND SBKE3A.170
& , INDEX_ABSORB(NPD_SPECIES, NPD_BAND) SBKE3A.171
! LIST OF ABSORBERS IN BANDS SBKE3A.172
& , I_BAND_ESFT(NPD_BAND, NPD_SPECIES) SBKE3A.173
! NUMBER OF TERMS IN BAND SBKE3A.174
& , I_SCALE_ESFT(NPD_BAND, NPD_SPECIES) SBKE3A.175
! TYPE OF ESFT SCALING SBKE3A.176
& , I_SCALE_FNC(NPD_BAND, NPD_SPECIES) SBKE3A.177
! TYPE OF SCALING FUNCTION SBKE3A.178
LOGICAL !, INTENT(IN) SBKE3A.179
& L_DOPPLER(NPD_SPECIES) SBKE3A.180
! DOPPLER BROADENING INCLUDED SBKE3A.181
REAL !, INTENT(IN) SBKE3A.182
& K_ESFT(NPD_ESFT_TERM, NPD_BAND, NPD_SPECIES) SBKE3A.183
! EXPONENTIAL ESFT TERMS SBKE3A.184
& , W_ESFT(NPD_ESFT_TERM, NPD_BAND, NPD_SPECIES) SBKE3A.185
! WEIGHTS FOR ESFT SBKE3A.186
& , SCALE_VECTOR(NPD_SCALE_VARIABLE, NPD_ESFT_TERM, NPD_BAND SBKE3A.187
& , NPD_SPECIES) SBKE3A.188
! ABSORBER SCALING PARAMETERS SBKE3A.189
& , P_REFERENCE(NPD_SPECIES, NPD_BAND) SBKE3A.190
! REFERENCE SCALING PRESSURE SBKE3A.191
& , T_REFERENCE(NPD_SPECIES, NPD_BAND) SBKE3A.192
! REFERENCE SCALING TEMPERATURE SBKE3A.193
& , GAS_MIX_RATIO(NPD_PROFILE, 0: NPD_LAYER, NPD_SPECIES) SBKE3A.194
! GAS MASS MIXING RATIOS SBKE3A.195
& , GAS_FRAC_RESCALED(NPD_PROFILE, 0: NPD_LAYER, NPD_SPECIES) SBKE3A.196
! RESCALED GAS MASS FRACTIONS SBKE3A.197
& , DOPPLER_CORRECTION(NPD_SPECIES) SBKE3A.198
! DOPPLER BROADENING TERMS SBKE3A.199
! SBKE3A.200
! Spectral Region SBKE3A.201
INTEGER !, INTENT(IN) SBKE3A.202
& ISOLIR SBKE3A.203
! VISIBLE OR IR SBKE3A.204
! SBKE3A.205
! Solar Properties SBKE3A.206
REAL !, INTENT(IN) SBKE3A.207
& SEC_0(NPD_PROFILE) SBKE3A.208
! SECANT OF SOLAR ZENITH ANGLE SBKE3A.209
& , SOLAR_FLUX(NPD_PROFILE) SBKE3A.210
! INCIDENT SOLAR FLUX IN BAND SBKE3A.211
! SBKE3A.212
! Infra-red Properties SBKE3A.213
LOGICAL !, INTENT(IN) SBKE3A.214
& L_IR_SOURCE_QUAD SBKE3A.215
! USE A QUADRATIC SOURCE FUNCTION SBKE3A.216
REAL !, INTENT(IN) SBKE3A.217
& PLANCK_SOURCE_BAND(NPD_PROFILE, 0: NPD_LAYER) SBKE3A.218
! PLANCKIAN SOURCE IN BAND SBKE3A.219
& , DIFF_PLANCK_BAND(NPD_PROFILE, NPD_LAYER) SBKE3A.220
! THERMAL SOURCE FUNCTION SBKE3A.221
& , DIFF_PLANCK_BAND_2(NPD_PROFILE, NPD_LAYER) SBKE3A.222
! 2x2ND DIFFERENCE OF PLANCKIAN IN BAND SBKE3A.223
! SBKE3A.224
! Surface Properties SBKE3A.225
REAL !, INTENT(IN) SBKE3A.226
& ALBEDO_SURFACE_DIFF(NPD_PROFILE) SBKE3A.227
! DIFFUSE SURFACE ALBEDO SBKE3A.228
& , ALBEDO_SURFACE_DIR(NPD_PROFILE) SBKE3A.229
! DIRECT SURFACE ALBEDO SBKE3A.230
& , THERMAL_GROUND_BAND(NPD_PROFILE) SBKE3A.231
! THERMAL SOURCE FUNCTION AT GROUND SBKE3A.232
! SBKE3A.233
! Clear-sky Optical Properties SBKE3A.234
REAL !, INTENT(IN) SBKE3A.235
& K_GREY_TOT_FREE(NPD_PROFILE, NPD_LAYER) SBKE3A.236
! FREE ABSORPTIVE EXTINCTION SBKE3A.237
& , K_EXT_SCAT_FREE(NPD_PROFILE, NPD_LAYER) SBKE3A.238
! FREE SCATTERING EXTINCTION SBKE3A.239
& , ASYMMETRY_FREE(NPD_PROFILE, NPD_LAYER) SBKE3A.240
! CLEAR-SKY ASYMMETRY SBKE3A.241
& , FORWARD_SCATTER_FREE(NPD_PROFILE, NPD_LAYER) SBKE3A.242
! FREE FORWARD SCATTERING SBKE3A.243
! SBKE3A.244
! Cloudy Properties SBKE3A.245
LOGICAL !, INTENT(IN) SBKE3A.246
& L_CLOUD SBKE3A.247
! CLOUDS REQUIRED SBKE3A.248
INTEGER !, INTENT(IN) SBKE3A.249
& I_CLOUD SBKE3A.250
! CLOUD SCHEME USED SBKE3A.251
! SBKE3A.252
! Cloud Geometry SBKE3A.253
INTEGER !, INTENT(IN) SBKE3A.254
& N_CLOUD_TOP SBKE3A.255
! TOPMOST CLOUDY LAYER SBKE3A.256
& , N_CLOUD_TYPE SBKE3A.257
! NUMBER OF TYPES OF CLOUDS SBKE3A.258
& , N_FREE_PROFILE(NPD_LAYER) SBKE3A.259
! NUMBER OF FREE PROFILES SBKE3A.260
& , I_FREE_PROFILE(NPD_PROFILE, NPD_LAYER) SBKE3A.261
! INDICES OF FREE PROFILES SBKE3A.262
& , N_CLOUD_PROFILE(NPD_LAYER) SBKE3A.263
! NUMBER OF CLOUDY PROFILES SBKE3A.264
& , I_CLOUD_PROFILE(NPD_PROFILE, NPD_LAYER) SBKE3A.265
! INDICES OF CLOUDY PROFILES SBKE3A.266
& , N_COLUMN(NPD_PROFILE) SBKE3A.267
! NUMBER OF COLUMNS REQUIRED SBKE3A.268
& , I_REGION_CLOUD(NPD_CLOUD_TYPE) ADB1F402.659
! REGIONS IN WHICH TYPES OF CLOUDS FALL ADB1F402.660
LOGICAL !, INTENT(IN) SBKE3A.269
& L_COLUMN(NPD_PROFILE, NPD_LAYER, NPD_COLUMN) SBKE3A.270
! COLUMN FLAGS FOR COLUMNS SBKE3A.271
REAL !, INTENT(IN) SBKE3A.272
& W_CLOUD(NPD_PROFILE, NPD_LAYER) SBKE3A.273
! CLOUDY FRACTION SBKE3A.274
& , FRAC_CLOUD(NPD_PROFILE, NPD_LAYER, NPD_CLOUD_TYPE) SBKE3A.275
! FRACTIONS OF DIFFERENT TYPES OF CLOUD ADB1F401.859
& , W_FREE(NPD_PROFILE, NPD_LAYER) SBKE3A.277
! CLEAR-SKY FRACTION SBKE3A.278
& , CLOUD_OVERLAP(NPD_PROFILE, 0: NPD_LAYER, NPD_OVERLAP_COEFF) SBKE3A.279
! COEFFICIENTS FOR TRANSFER FOR ENERGY AT INTERFACES SBKE3A.280
& , AREA_COLUMN(NPD_PROFILE, NPD_COLUMN) SBKE3A.281
! AREAS OF COLUMNS SBKE3A.282
& , FRAC_REGION(NPD_PROFILE, NPD_LAYER, NPD_REGION) ADB1F402.661
! FRACTIONS OF TOTAL CLOUD OCCUPIED BY EACH REGION ADB1F402.662
! SBKE3A.283
! Cloudy Optical Properties SBKE3A.284
REAL !, INTENT(IN) SBKE3A.285
& K_GREY_TOT_CLOUD(NPD_PROFILE, NPD_LAYER, NPD_CLOUD_TYPE) SBKE3A.286
! CLOUDY ABSORPTIVE EXTINCTION SBKE3A.287
& , K_EXT_SCAT_CLOUD(NPD_PROFILE, NPD_LAYER, NPD_CLOUD_TYPE) SBKE3A.288
! CLOUDY SCATTERING EXTINCTION SBKE3A.289
& , ASYMMETRY_CLOUD(NPD_PROFILE, NPD_LAYER, NPD_CLOUD_TYPE) SBKE3A.290
! CLOUDY ASYMMETRY SBKE3A.291
& , FORWARD_SCATTER_CLOUD(NPD_PROFILE, NPD_LAYER, NPD_CLOUD_TYPE) SBKE3A.292
! CLOUDY FORWARD SCATTERING SBKE3A.293
! SBKE3A.294
! Fluxes Calculated SBKE3A.295
REAL !, INTENT(OUT) SBKE3A.296
& FLUX_DIRECT_BAND(NPD_PROFILE, 0: NPD_LAYER) SBKE3A.297
! DIRECT FLUX IN BAND SBKE3A.298
& , FLUX_TOTAL_BAND(NPD_PROFILE, 2*NPD_LAYER+2) SBKE3A.299
! TOTAL FLUX IN BAND SBKE3A.300
! SBKE3A.301
! Flags for Clear-sky Fluxes SBKE3A.302
LOGICAL !, INTENT(IN) SBKE3A.303
& L_CLEAR SBKE3A.304
! CALCULATE CLEAR-SKY PROPERTIES SBKE3A.305
INTEGER !, INTENT(IN) SBKE3A.306
& I_SOLVER_CLEAR SBKE3A.307
! CLEAR SOLVER USED SBKE3A.308
! SBKE3A.309
! Clear-sky Fluxes Calculated SBKE3A.310
REAL !, INTENT(OUT) SBKE3A.311
& FLUX_DIRECT_CLEAR_BAND(NPD_PROFILE, 0: NPD_LAYER) SBKE3A.312
! CLEAR-SKY DIRECT FLUX IN BAND SBKE3A.313
& , FLUX_TOTAL_CLEAR_BAND(NPD_PROFILE, 2*NPD_LAYER+2) SBKE3A.314
! CLEAR-SKY TOTAL FLUX IN BAND SBKE3A.315
! SBKE3A.316
! SBKE3A.317
! SBKE3A.318
! LOCAL VARIABLES. SBKE3A.319
INTEGER SBKE3A.320
& I SBKE3A.321
! LOOP VARIABLE SBKE3A.322
& , J SBKE3A.323
! LOOP VARIABLE SBKE3A.324
& , K SBKE3A.325
! LOOP VARIABLE SBKE3A.326
& , L SBKE3A.327
! LOOP VARIABLE SBKE3A.328
INTEGER SBKE3A.329
& I_GAS SBKE3A.330
! INDEX OF MAIN GAS SBKE3A.331
& , I_GAS_BAND SBKE3A.332
! INDEX OF ACTIVE GAS SBKE3A.333
& , I_GAS_POINTER(NPD_SPECIES) SBKE3A.334
! POINTER ARRAY FOR MONOCHROMATIC ESFTs SBKE3A.335
& , IEX SBKE3A.336
! INDEX OF ESFT TERM SBKE3A.337
REAL SBKE3A.338
& SOURCE_GROUND(NPD_PROFILE) SBKE3A.339
! GROUND SOURCE FUNCTION SBKE3A.340
& , FLUX_INC_DIRECT(NPD_PROFILE) SBKE3A.341
! INCIDENT DIRECT FLUX SBKE3A.342
& , FLUX_INC_DOWN(NPD_PROFILE) SBKE3A.343
! INCIDENT DOWNWARD FLUX SBKE3A.344
& , ESFT_WEIGHT SBKE3A.345
! ESFT WEIGHT FOR CURRENT CALCULATION SBKE3A.346
& , ADJUST_SOLAR_KE(NPD_PROFILE, NPD_LAYER) SBKE3A.347
! ADJUSTMENT OF SOLAR TRANSMISSION TO INCLUDE EFFECTS SBKE3A.348
! OF MINOR GASES AND TAKE OUT EQUIVALENT EXTINCTION SBKE3A.349
& , K_EQV(NPD_PROFILE, NPD_LAYER) SBKE3A.350
! EQUIVALENT EXTINCTION SBKE3A.351
& , TAU_GAS(NPD_PROFILE, NPD_LAYER) SBKE3A.352
! OPTICAL DEPTH OF GAS SBKE3A.353
& , K_ESFT_MONO(NPD_SPECIES) SBKE3A.354
! MONOCHROMATIC EXPONENTS SBKE3A.355
& , K_GAS_ABS(NPD_PROFILE, NPD_LAYER) SBKE3A.356
! GASEOUS EXTINCTION SBKE3A.357
REAL SBKE3A.358
& FLUX_DIRECT_PART(NPD_PROFILE, 0: NPD_LAYER) SBKE3A.359
! PARTIAL DIRECT FLUX SBKE3A.360
& , FLUX_TOTAL_PART(NPD_PROFILE, 2*NPD_LAYER+2) SBKE3A.361
! PARTIAL TOTAL FLUX SBKE3A.362
& , FLUX_DIRECT_CLEAR_PART(NPD_PROFILE, 0: NPD_LAYER) SBKE3A.363
! CLEAR PARTIAL DIRECT FLUX SBKE3A.364
& , FLUX_TOTAL_CLEAR_PART(NPD_PROFILE, 2*NPD_LAYER+2) SBKE3A.365
! CLEAR PARTIAL TOTAL FLUX SBKE3A.366
& , SUM_FLUX(NPD_PROFILE, 2*NPD_LAYER+2, NPD_SPECIES) SBKE3A.367
! SUM OF FLUXES FOR WEIGHTING SBKE3A.368
& , SUM_K_FLUX(NPD_PROFILE, 2*NPD_LAYER+2, NPD_SPECIES) SBKE3A.369
! SUM OF K*FLUXES FOR WEIGHTING SBKE3A.370
& , FLUX_TERM(NPD_PROFILE, 0: NPD_LAYER) SBKE3A.371
! FLUX WITH ONE TERM SBKE3A.372
& , FLUX_GAS(NPD_PROFILE, 0: NPD_LAYER) SBKE3A.373
! FLUX WITH ONE GAS SBKE3A.374
REAL SBKE3A.375
& MEAN_NET_FLUX SBKE3A.376
! MEAN NET FLUX SBKE3A.377
& , MEAN_K_NET_FLUX SBKE3A.378
! MEAN K-WEIGHTED NET FLUX SBKE3A.379
& , K_WEAK SBKE3A.380
! WEAK ABSORPTION FOR MINOR GAS SBKE3A.381
REAL SBKE3A.382
& KE_GREY_TOT_FREE(NPD_PROFILE, NPD_LAYER) SBKE3A.383
! EQUIVALENT FREE ABSORPTIVE EXTINCTION ADB1F401.860
& , KE_GREY_TOT_CLOUD(NPD_PROFILE, NPD_LAYER, NPD_CLOUD_TYPE) SBKE3A.385
! EQUIVALENT FREE ABSORPTIVE EXTINCTION ADB1F401.861
! SBKE3A.387
! SUBROUTINES CALLED: SBKE3A.388
EXTERNAL SBKE3A.389
& SCALE_ABSORB, GAS_OPTICAL_PROPERTIES SBKE3A.390
& , MONOCHROMATIC_GAS_FLUX, MONOCHROMATIC_FLUX SBKE3A.391
& , AUGMENT_FLUX SBKE3A.392
! SBKE3A.393
! SBKE3A.394
! SBKE3A.395
I_GAS=INDEX_ABSORB(1, I_BAND) SBKE3A.396
! SBKE3A.397
IF (ISOLIR.EQ.IP_SOLAR) THEN SBKE3A.398
! SBKE3A.399
! AN APPROPRIATE SCALING FACTOR IS CALCULATED FOR THE DIRECT SBKE3A.400
! BEAM, WHILST THE EQUIVALENT EXTINCTION FOR THE DIFFUSE BEAM SBKE3A.401
! IS WEIGHTED WITH THE SOLAR SCALING FACTOR AS EVALUATED SBKE3A.402
! AT THE SURFACE. SBKE3A.403
! SBKE3A.404
! INITIALIZE THE SCALING FACTORS: SBKE3A.405
DO I=1, N_LAYER SBKE3A.406
DO L=1, N_PROFILE SBKE3A.407
ADJUST_SOLAR_KE(L, I)=1.0E+00 SBKE3A.408
K_EQV(L, I)=0.0E+00 SBKE3A.409
ENDDO SBKE3A.410
ENDDO SBKE3A.411
! SBKE3A.412
DO J=2, N_GAS SBKE3A.413
! SBKE3A.414
! INITIALIZE THE NORMALIZED FLUX FOR THE GAS. SBKE3A.415
DO L=1, N_PROFILE SBKE3A.416
FLUX_GAS(L, 0)=1.0E+00 SBKE3A.417
ENDDO SBKE3A.418
DO I=1, N_LAYER SBKE3A.419
DO L=1, N_PROFILE SBKE3A.420
FLUX_GAS(L, I)=0.0E+00 SBKE3A.421
SUM_K_FLUX(L, N_LAYER, J)=0.0E+00 SBKE3A.422
SUM_FLUX(L, N_LAYER, J)=0.0E+00 SBKE3A.423
ENDDO SBKE3A.424
ENDDO SBKE3A.425
! SBKE3A.426
I_GAS_BAND=INDEX_ABSORB(J, I_BAND) SBKE3A.427
DO IEX=1, I_BAND_ESFT(I_BAND, I_GAS_BAND) SBKE3A.428
! SBKE3A.429
! STORE THE ESFT WEIGHT FOR FUTURE USE. SBKE3A.430
ESFT_WEIGHT=W_ESFT(IEX, I_BAND, I_GAS_BAND) SBKE3A.431
! SBKE3A.432
! RESCALE THE AMOUNT OF GAS FOR THIS ABSORBER IF REQUIRED. SBKE3A.433
IF (I_SCALE_ESFT(I_BAND, I_GAS_BAND).EQ.IP_SCALE_TERM) SBKE3A.434
& THEN SBKE3A.435
CALL SCALE_ABSORB
(IERR, N_PROFILE, N_LAYER SBKE3A.436
& , GAS_MIX_RATIO(1, 0, I_GAS_BAND), P, T SBKE3A.437
& , L_LAYER, I_TOP SBKE3A.438
& , GAS_FRAC_RESCALED(1, 0, I_GAS_BAND) SBKE3A.439
& , I_SCALE_FNC(I_BAND, I_GAS_BAND) SBKE3A.440
& , P_REFERENCE(I_GAS_BAND, I_BAND) SBKE3A.441
& , T_REFERENCE(I_GAS_BAND, I_BAND) SBKE3A.442
& , SCALE_VECTOR(1, IEX, I_BAND, I_GAS_BAND) SBKE3A.443
& , L_DOPPLER(I_GAS_BAND) SBKE3A.444
& , DOPPLER_CORRECTION(I_GAS_BAND) SBKE3A.445
& , NPD_PROFILE, NPD_LAYER, NPD_SCALE_FNC SBKE3A.446
& , NPD_SCALE_VARIABLE SBKE3A.447
& ) SBKE3A.448
IF (IERR.NE.I_NORMAL) RETURN SBKE3A.449
ENDIF SBKE3A.450
! SBKE3A.451
DO L=1, N_PROFILE SBKE3A.452
FLUX_TERM(L, 0)=ESFT_WEIGHT SBKE3A.453
ENDDO SBKE3A.454
DO I=1, N_LAYER SBKE3A.455
DO L=1, N_PROFILE SBKE3A.456
FLUX_TERM(L, I)=FLUX_TERM(L, I-1) SBKE3A.457
& *EXP(-K_ESFT(IEX, I_BAND, I_GAS_BAND) GSS3F402.328
& *GAS_FRAC_RESCALED(L, I, I_GAS_BAND) SBKE3A.459
& *D_MASS(L, I)*SEC_0(L)) SBKE3A.460
FLUX_GAS(L, I)=FLUX_GAS(L, I)+FLUX_TERM(L, I) SBKE3A.461
ENDDO SBKE3A.462
ENDDO SBKE3A.463
! SBKE3A.464
! CALCULATE THE INCREMENT IN THE ABSORPTIVE EXTINCTION SBKE3A.465
DO L=1, N_PROFILE SBKE3A.466
SUM_K_FLUX(L, N_LAYER, J) SBKE3A.467
& =SUM_K_FLUX(L, N_LAYER, J) SBKE3A.468
& +K_ESFT(IEX, I_BAND, I_GAS_BAND) SBKE3A.469
& *FLUX_TERM(L, N_LAYER) SBKE3A.470
SUM_FLUX(L, N_LAYER, J) SBKE3A.471
& =SUM_FLUX(L, N_LAYER, J)+FLUX_TERM(L, N_LAYER) SBKE3A.472
ENDDO SBKE3A.473
! SBKE3A.474
ENDDO SBKE3A.475
! SBKE3A.476
! SET THE EQUIVALENT EXTINCTION FOR THE DIFFUSE BEAM, SBKE3A.477
! WEIGHTING WITH THE DIRECT SURFACE FLUX. SBKE3A.478
DO I=1, N_LAYER SBKE3A.479
DO L=1, N_PROFILE SBKE3A.480
IF (SUM_FLUX(L, N_LAYER, J).GT.0.0E+00) THEN ADB6F403.5
K_EQV(L, I)=K_EQV(L, I) ADB6F403.6
& +GAS_FRAC_RESCALED(L, I, I_GAS_BAND) ADB6F403.7
& *SUM_K_FLUX(L, N_LAYER, J) ADB6F403.8
& /SUM_FLUX(L, N_LAYER, J) ADB6F403.9
ELSE ADB6F403.10
! THIS CASE CAN ARISE ONLY WHEN THE SUN IS CLOSE ADB6F403.11
! TO THE HORIZON WHEN THE EXPONENTIAL MAY UNDERFLOW ADB6F403.12
! TO 0. WE USE THE WEAKEST ESFT-TERM. ADB6F403.13
K_EQV(L, I)=K_EQV(L, I) ADB6F403.14
& *K_ESFT(1, I_BAND, I_GAS_BAND) ADB6F403.15
& *GAS_FRAC_RESCALED(L, I, I_GAS_BAND) ADB6F403.16
ENDIF ADB6F403.17
IF (FLUX_GAS(L, I-1).GT.0.0E+00) THEN ADB6F403.18
! IF THE FLUX HAS BEEN REDUCED TO 0 AT THE UPPER ADB6F403.19
! LEVEL THE ADJUSTING FACTOR IS NOT OF IMPORTANCE ADB6F403.20
! AND NEED NOT BE ADJUSTED. THIS WILL PREVENT ADB6F403.21
! POSSIBLE FAILURES. ADB6F403.22
ADJUST_SOLAR_KE(L, I) ADB6F403.23
& =ADJUST_SOLAR_KE(L, I)*FLUX_GAS(L, I) ADB6F403.24
& /FLUX_GAS(L, I-1) ADB6F403.25
ENDIF ADB6F403.26
ADB6F403.27
ENDDO SBKE3A.488
ENDDO SBKE3A.489
! SBKE3A.490
ENDDO SBKE3A.491
! SBKE3A.492
! SINCE THE GREY EXTINCTION WILL LATER BE MODIFIED WE MUST SBKE3A.493
! INCREASE THE TRANSMISSION OF THE SOLAR BEAM TO COMPENSATE. SBKE3A.494
DO I=1, N_LAYER SBKE3A.495
DO L=1, N_PROFILE SBKE3A.496
ADJUST_SOLAR_KE(L, I)=ADJUST_SOLAR_KE(L, I) SBKE3A.497
& *EXP(K_EQV(L, I)*D_MASS(L, I)*SEC_0(L)) GSS3F402.329
ENDDO SBKE3A.499
ENDDO SBKE3A.500
! SBKE3A.501
ELSE IF (ISOLIR.EQ.IP_INFRA_RED) THEN SBKE3A.502
! SBKE3A.503
! EQUIVALENT ABSORPTION IS USED FOR THE MINOR GASES. SBKE3A.504
! SBKE3A.505
DO J=2, N_GAS SBKE3A.506
! SBKE3A.507
! SBKE3A.509
! INITIALIZE THE SUMS TO FORM THE RATIO TO 0. SBKE3A.510
DO I=1, 2*N_LAYER+2 SBKE3A.511
DO L=1, N_PROFILE SBKE3A.512
SUM_FLUX(L, I, J)=0.0E+00 SBKE3A.513
SUM_K_FLUX(L, I, J)=0.0E+00 SBKE3A.514
ENDDO SBKE3A.515
ENDDO SBKE3A.516
! SBKE3A.517
I_GAS_BAND=INDEX_ABSORB(J, I_BAND) SBKE3A.518
DO IEX=1, I_BAND_ESFT(I_BAND, I_GAS_BAND) SBKE3A.519
! SBKE3A.520
! STORE THE ESFT WEIGHT FOR FUTURE USE. SBKE3A.521
ESFT_WEIGHT=W_ESFT(IEX, I_BAND, I_GAS_BAND) SBKE3A.522
! SBKE3A.523
! SBKE3A.525
! RESCALE THE AMOUNT OF GAS FOR THIS ABSORBER IF REQUIRED. SBKE3A.526
IF (I_SCALE_ESFT(I_BAND, I_GAS_BAND).EQ.IP_SCALE_TERM) SBKE3A.527
& THEN SBKE3A.528
CALL SCALE_ABSORB
(IERR, N_PROFILE, N_LAYER SBKE3A.529
& , GAS_MIX_RATIO(1, 0, I_GAS_BAND), P, T SBKE3A.530
& , L_LAYER, I_TOP SBKE3A.531
& , GAS_FRAC_RESCALED(1, 0, I_GAS_BAND) SBKE3A.532
& , I_SCALE_FNC(I_BAND, I_GAS_BAND) SBKE3A.533
& , P_REFERENCE(I_GAS_BAND, I_BAND) SBKE3A.534
& , T_REFERENCE(I_GAS_BAND, I_BAND) SBKE3A.535
& , SCALE_VECTOR(1, IEX, I_BAND, I_GAS_BAND) SBKE3A.536
& , L_DOPPLER(I_GAS_BAND) SBKE3A.537
& , DOPPLER_CORRECTION(I_GAS_BAND) SBKE3A.538
& , NPD_PROFILE, NPD_LAYER, NPD_SCALE_FNC SBKE3A.539
& , NPD_SCALE_VARIABLE SBKE3A.540
& ) SBKE3A.541
IF (IERR.NE.I_NORMAL) RETURN SBKE3A.542
ENDIF SBKE3A.543
! SBKE3A.544
! SET THE APPROPRIATE BOUNDARY TERMS FOR THE SBKE3A.545
! TOTAL UPWARD AND DOWNWARD FLUXES AT THE BOUNDARIES. SBKE3A.546
! SBKE3A.547
DO L=1, N_PROFILE SBKE3A.548
FLUX_INC_DIRECT(L)=0.0E+00 SBKE3A.549
FLUX_DIRECT_PART(L, N_LAYER)=0.0E+00 ADB1F401.872
FLUX_INC_DOWN(L)=-PLANCK_SOURCE_BAND(L, 0) SBKE3A.550
SOURCE_GROUND(L)=THERMAL_GROUND_BAND(L) SBKE3A.551
& -(1.0E+00-ALBEDO_SURFACE_DIFF(L)) SBKE3A.552
& *PLANCK_SOURCE_BAND(L, N_LAYER) SBKE3A.553
ENDDO SBKE3A.554
! SBKE3A.555
! SET THE OPTICAL DEPTHS OF EACH LAYER. SBKE3A.556
DO I=1, N_LAYER SBKE3A.557
DO L=1, N_PROFILE SBKE3A.558
TAU_GAS(L, I)=K_ESFT(IEX, I_BAND, I_GAS_BAND) SBKE3A.559
& *GAS_FRAC_RESCALED(L, I, I_GAS_BAND) SBKE3A.560
& *D_MASS(L, I) SBKE3A.561
ENDDO SBKE3A.562
ENDDO SBKE3A.563
! SBKE3A.564
! CALCULATE THE FLUXES WITH JUST THIS GAS. SBKE3A.565
CALL MONOCHROMATIC_GAS_FLUX
(N_PROFILE, N_LAYER SBKE3A.566
& , .FALSE. SBKE3A.567
& , TAU_GAS SBKE3A.568
& , ISOLIR, SEC_0, FLUX_INC_DIRECT, FLUX_INC_DOWN SBKE3A.569
& , DIFF_PLANCK_BAND, SOURCE_GROUND SBKE3A.570
& , ALBEDO_SURFACE_DIFF, ALBEDO_SURFACE_DIR SBKE3A.571
& , DIFFUSIVITY_FACTOR_MINOR SBKE3A.572
& , FLUX_DIRECT_PART, FLUX_TOTAL_PART SBKE3A.573
& , NPD_PROFILE, NPD_LAYER SBKE3A.574
& ) SBKE3A.575
! SBKE3A.576
DO I=1, 2*N_LAYER+2 SBKE3A.577
DO L=1, N_PROFILE SBKE3A.578
SUM_K_FLUX(L, I, J)=SUM_K_FLUX(L, I, J) SBKE3A.579
& +K_ESFT(IEX, I_BAND, I_GAS_BAND) SBKE3A.580
& *ESFT_WEIGHT*FLUX_TOTAL_PART(L, I) SBKE3A.581
SUM_FLUX(L, I, J)=SUM_FLUX(L, I, J) SBKE3A.582
& +ESFT_WEIGHT*FLUX_TOTAL_PART(L, I) SBKE3A.583
ENDDO SBKE3A.584
ENDDO SBKE3A.585
! SBKE3A.586
ENDDO SBKE3A.587
! SBKE3A.588
ENDDO SBKE3A.589
! SBKE3A.590
! ADB1F401.873
DO I=1, N_LAYER ADB1F401.874
DO L=1, N_PROFILE ADB1F401.875
K_EQV(L, I)=0.0E+00 ADB1F401.876
ENDDO ADB1F401.877
ENDDO ADB1F401.878
! ADB1F401.879
DO J=2, N_GAS ADB1F401.880
DO I=1, N_LAYER ADB1F401.881
DO L=1, N_PROFILE ADB1F401.882
MEAN_K_NET_FLUX=0.5E+00*(SUM_K_FLUX(L, 2*I, J) ADB1F401.883
& +SUM_K_FLUX(L, 2*I+2, J) ADB1F401.884
& -SUM_K_FLUX(L, 2*I-1, J) ADB1F401.885
& -SUM_K_FLUX(L, 2*I+1, J)) ADB1F401.886
MEAN_NET_FLUX=0.5E+00*(SUM_FLUX(L, 2*I, J) ADB1F401.887
& +SUM_FLUX(L, 2*I+2, J) ADB1F401.888
& -SUM_FLUX(L, 2*I-1, J) ADB1F401.889
& -SUM_FLUX(L, 2*I+1, J)) ADB1F401.890
! NEGATIVE EFFECTIVE EXTINCTIONS MUST BE REMOVED. ADB1F401.891
K_WEAK=MAX(0.0E+00, MEAN_K_NET_FLUX/MEAN_NET_FLUX) ADB1F401.892
K_EQV(L, I)=K_EQV(L, I) ADB1F401.893
& +K_WEAK*GAS_FRAC_RESCALED(L, I ADB1F401.894
& , INDEX_ABSORB(J, I_BAND)) ADB1F401.895
ENDDO ADB1F401.896
ENDDO ADB1F401.897
ENDDO ADB1F401.898
ADB1F401.899
ENDIF SBKE3A.591
! SBKE3A.592
! SBKE3A.593
! THE ESFT TERMS FOR THE MAJOR GAS IN THE BAND ARE USED WITH SBKE3A.594
! APPROPRIATE WEIGHTED TERMS FOR THE MINOR GASES. SBKE3A.595
I_GAS_POINTER(1)=I_GAS SBKE3A.596
DO IEX=1, I_BAND_ESFT(I_BAND, I_GAS) SBKE3A.597
! SBKE3A.598
! STORE THE ESFT WEIGHT FOR FUTURE USE. SBKE3A.599
ESFT_WEIGHT=W_ESFT(IEX, I_BAND, I_GAS) SBKE3A.600
! SBKE3A.601
! RESCALE FOR EACH ESFT TERM IF THAT IS REQUIRED. SBKE3A.602
IF (I_SCALE_ESFT(I_BAND, I_GAS).EQ.IP_SCALE_TERM) THEN SBKE3A.603
CALL SCALE_ABSORB
(IERR, N_PROFILE, N_LAYER SBKE3A.604
& , GAS_MIX_RATIO(1, 0, I_GAS), P, T SBKE3A.605
& , L_LAYER, I_TOP SBKE3A.606
& , GAS_FRAC_RESCALED(1, 0, I_GAS) SBKE3A.607
& , I_SCALE_FNC(I_BAND, I_GAS) SBKE3A.608
& , P_REFERENCE(I_GAS, I_BAND) SBKE3A.609
& , T_REFERENCE(I_GAS, I_BAND) SBKE3A.610
& , SCALE_VECTOR(1, IEX, I_BAND, I_GAS) SBKE3A.611
& , L_DOPPLER(I_GAS), DOPPLER_CORRECTION(I_GAS) SBKE3A.612
& , NPD_PROFILE, NPD_LAYER, NPD_SCALE_FNC SBKE3A.613
& , NPD_SCALE_VARIABLE SBKE3A.614
& ) SBKE3A.615
IF (IERR.NE.I_NORMAL) RETURN SBKE3A.616
ENDIF SBKE3A.617
! SBKE3A.618
! SET THE APPROPRIATE BOUNDARY TERMS FOR THE TOTAL SBKE3A.619
! UPWARD AND DOWNWARD FLUXES. SBKE3A.620
! SBKE3A.621
IF (ISOLIR.EQ.IP_SOLAR) THEN SBKE3A.622
! VISIBLE REGION. SBKE3A.623
DO L=1, N_PROFILE SBKE3A.624
SOURCE_GROUND(L)=0.0E+00 SBKE3A.625
FLUX_INC_DOWN(L)=SOLAR_FLUX(L) SBKE3A.626
FLUX_INC_DIRECT(L)=SOLAR_FLUX(L) SBKE3A.627
ENDDO SBKE3A.628
ELSEIF (ISOLIR.EQ.IP_INFRA_RED) THEN SBKE3A.629
! INFRA-RED REGION. SBKE3A.630
DO L=1, N_PROFILE SBKE3A.631
FLUX_INC_DIRECT(L)=0.0E+00 SBKE3A.632
FLUX_DIRECT_PART(L, N_LAYER)=0.0E+00 ADB1F401.900
FLUX_INC_DOWN(L)=-PLANCK_SOURCE_BAND(L, 0) SBKE3A.633
SOURCE_GROUND(L)=THERMAL_GROUND_BAND(L) SBKE3A.634
& -(1.0E+00-ALBEDO_SURFACE_DIFF(L)) SBKE3A.635
& *PLANCK_SOURCE_BAND(L, N_LAYER) SBKE3A.636
ENDDO SBKE3A.637
IF (L_CLEAR) THEN ADB1F401.901
DO L=1, N_PROFILE ADB1F401.902
FLUX_DIRECT_CLEAR_PART(L, N_LAYER)=0.0E+00 ADB1F401.903
ENDDO ADB1F401.904
ENDIF ADB1F401.905
ENDIF SBKE3A.638
! SBKE3A.639
! SBKE3A.640
! AUGMENT THE GREY EXTINCTION WITH AN EFFECTIVE VALUE SBKE3A.641
! FOR EACH GAS. SBKE3A.642
! SBKE3A.643
DO I=1, N_LAYER SBKE3A.644
DO L=1, N_PROFILE SBKE3A.645
KE_GREY_TOT_FREE(L, I)=K_GREY_TOT_FREE(L, I) SBKE3A.646
ENDDO SBKE3A.647
ENDDO SBKE3A.648
IF (L_CLOUD) THEN SBKE3A.649
DO K=1, N_CLOUD_TYPE SBKE3A.650
DO I=N_CLOUD_TOP, N_LAYER SBKE3A.651
DO L=1, N_PROFILE SBKE3A.652
KE_GREY_TOT_CLOUD(L, I, K) SBKE3A.653
& =K_GREY_TOT_CLOUD(L, I, K) SBKE3A.654
ENDDO SBKE3A.655
ENDDO SBKE3A.656
ENDDO SBKE3A.657
ENDIF SBKE3A.658
! SBKE3A.659
! SBKE3A.688
DO I=1, N_LAYER SBKE3A.689
DO L=1, N_PROFILE SBKE3A.690
KE_GREY_TOT_FREE(L, I)=KE_GREY_TOT_FREE(L, I) SBKE3A.691
& +K_EQV(L, I) SBKE3A.692
ENDDO SBKE3A.693
ENDDO SBKE3A.694
IF (L_CLOUD) THEN SBKE3A.695
DO K=1, N_CLOUD_TYPE SBKE3A.696
DO I=N_CLOUD_TOP, N_LAYER SBKE3A.697
DO L=1, N_PROFILE SBKE3A.698
KE_GREY_TOT_CLOUD(L, I, K) SBKE3A.699
& =KE_GREY_TOT_CLOUD(L, I, K)+K_EQV(L, I) SBKE3A.700
ENDDO SBKE3A.701
ENDDO SBKE3A.702
ENDDO SBKE3A.703
ENDIF SBKE3A.704
! SBKE3A.705
! ASSIGN THE MONOCHROMATIC ABSORPTION COEFFICIENT. SBKE3A.706
K_ESFT_MONO(I_GAS)=K_ESFT(IEX, I_BAND, I_GAS) SBKE3A.707
! SBKE3A.708
CALL GAS_OPTICAL_PROPERTIES
(N_PROFILE, N_LAYER SBKE3A.709
& , 1, I_GAS_POINTER, K_ESFT_MONO SBKE3A.710
& , GAS_FRAC_RESCALED SBKE3A.711
& , K_GAS_ABS SBKE3A.712
& , NPD_PROFILE, NPD_LAYER, NPD_SPECIES SBKE3A.713
& ) SBKE3A.714
! SBKE3A.715
! SBKE3A.716
CALL MONOCHROMATIC_FLUX
(IERR SBKE3A.717
! Atmospheric Properties SBKE3A.718
& , N_PROFILE, N_LAYER, D_MASS SBKE3A.719
! Angular Integration SBKE3A.720
& , I_ANGULAR_INTEGRATION, I_2STREAM, L_2_STREAM_CORRECT SBKE3A.721
& , L_RESCALE, N_ORDER_GAUSS SBKE3A.722
! Treatment of Scattering SBKE3A.723
& , I_SCATTER_METHOD_BAND SBKE3A.724
! Options for Solver SBKE3A.725
& , I_SOLVER, L_NET, N_AUGMENT ADB1F405.583
! Gaseous Propreties SBKE3A.727
& , K_GAS_ABS SBKE3A.728
! Options for Equivalent Extinction SBKE3A.729
& , .TRUE., ADJUST_SOLAR_KE SBKE3A.730
! Spectral Region SBKE3A.731
& , ISOLIR SBKE3A.732
! Infra-red Properties SBKE3A.733
& , DIFF_PLANCK_BAND SBKE3A.734
& , L_IR_SOURCE_QUAD, DIFF_PLANCK_BAND_2 SBKE3A.735
! Conditions at TOA SBKE3A.736
& , SEC_0, FLUX_INC_DIRECT, FLUX_INC_DOWN SBKE3A.737
! Surface Properties SBKE3A.738
& , ALBEDO_SURFACE_DIFF, ALBEDO_SURFACE_DIR, SOURCE_GROUND SBKE3A.739
& , THERMAL_GROUND_BAND SBKE3A.740
! Clear-sky Optical Properties SBKE3A.741
& , KE_GREY_TOT_FREE, K_EXT_SCAT_FREE SBKE3A.742
& , ASYMMETRY_FREE, FORWARD_SCATTER_FREE SBKE3A.743
! Cloudy Properties SBKE3A.744
& , L_CLOUD, I_CLOUD SBKE3A.745
! Cloud Geometry SBKE3A.746
& , N_CLOUD_TOP SBKE3A.747
& , N_CLOUD_TYPE, FRAC_CLOUD SBKE3A.748
& , I_REGION_CLOUD, FRAC_REGION ADB1F402.663
& , W_FREE, N_FREE_PROFILE, I_FREE_PROFILE SBKE3A.749
& , W_CLOUD, N_CLOUD_PROFILE, I_CLOUD_PROFILE SBKE3A.750
& , CLOUD_OVERLAP SBKE3A.751
& , N_COLUMN, L_COLUMN, AREA_COLUMN SBKE3A.752
! Cloudy Optical Properties SBKE3A.753
& , KE_GREY_TOT_CLOUD, K_EXT_SCAT_CLOUD SBKE3A.754
& , ASYMMETRY_CLOUD, FORWARD_SCATTER_CLOUD SBKE3A.755
! Flxues Calculated SBKE3A.756
& , FLUX_DIRECT_PART, FLUX_TOTAL_PART SBKE3A.757
! Flags for Clear-sky Calculations SBKE3A.758
& , L_CLEAR, I_SOLVER_CLEAR SBKE3A.759
! Clear-sky Fluxes Calculated SBKE3A.760
& , FLUX_DIRECT_CLEAR_PART, FLUX_TOTAL_CLEAR_PART SBKE3A.761
! Planckian Function SBKE3A.762
& , PLANCK_SOURCE_BAND SBKE3A.763
! Dimensions of Arrays SBKE3A.764
& , NPD_PROFILE, NPD_LAYER, NPD_COLUMN SBKE3A.765
& ) SBKE3A.766
IF (IERR.NE.I_NORMAL) RETURN SBKE3A.767
! SBKE3A.768
! INCREMENT THE FLUXES WITHIN THE BAND. SBKE3A.769
CALL AUGMENT_FLUX
(N_PROFILE, N_LAYER, N_AUGMENT SBKE3A.770
& , ISOLIR, L_CLEAR SBKE3A.771
& , ESFT_WEIGHT SBKE3A.772
& , FLUX_DIRECT_BAND, FLUX_TOTAL_BAND SBKE3A.773
& , FLUX_DIRECT_PART, FLUX_TOTAL_PART SBKE3A.774
& , FLUX_DIRECT_CLEAR_BAND, FLUX_TOTAL_CLEAR_BAND SBKE3A.775
& , FLUX_DIRECT_CLEAR_PART, FLUX_TOTAL_CLEAR_PART SBKE3A.776
& , NPD_PROFILE, NPD_LAYER SBKE3A.777
& ) SBKE3A.778
ENDDO SBKE3A.779
! SBKE3A.780
! SBKE3A.781
RETURN SBKE3A.782
END SBKE3A.783
*ENDIF DEF,A01_3A,OR,DEF,A02_3A SBKE3A.784
*ENDIF DEF,A70_1A,OR,DEF,A70_1B APB4F405.80