NOTE TO USERS: New releases of SBDART are developed and released approximately every 6 to 18 months. Bugs that are found after the release will be posted to http://www.icess.ucsb.edu/esrg/pauls_dir/buglist.html Its a good idea to check this site before undertaking any large calculations with SBDART. ------------------------------------------------------------------------ Differences between SBDART version 2.4 and version 2.3 * Fixed code to modify ozone column density. Also improved treatment of tropospheric and stratospheric adjustment factors used to scale ozone column density to user input uo3. * Implemented bdrefchk -- new subroutine to test surface bdrf models bdrefchk prints radiance (not bdrf) for a incoming beam irradiance of unity. DISORT utility subroutine DREF is used to compute directional albedos of brdf models (isalb=7,8,9) * Implemented new 'hapke' and 'ross-thick li-sparse' surface bdrf models * Implemented new isalb input options isalb= 7 6s sea-water brdf (non-lambertian) isalb=-7 6s sea-water directional albedo (lambertian) isalb= 8 Hapke analytic brdf model (non-lambertian) isalb=-8 Hapke analytic directional albedo (lambertian) isalb= 9 Ross-thick Li-sparse brdf model (non-lambertian) isalb=-9 Ross-thick Li-sparse directional albedo (lambertian) * In boundary layer aerosol model, make sure aeroden doesn't go negative when interpolating on dbaer * Fix error that prevented stratospheric aerosols from having any effect when iaer=0 (i.e., no stratospheric aerosols were computed when boundary layer aerosols were turned off) * Set default value of abaer=0. This causes the limit values of qbaer to be used for wavelengths outside of the limits of wlbaer. ------------------------------------------------------------------------ Differences between SBDART version 2.3 and version 2.2 * Fixed ozone density modification using UO3. Version 2.2 usage of UO3 was correct when ZTRP=0, but produced incorrect results when ZTRP>0. * Input parameter RHCLD now sets the relative humidity for all levels that are immediately adjacent to a cloud layer. In SBDART a cloud layer set at level z(i) actually extends from level z(i) to level z(i+1). Version 2.3 now recognizes the fact that the level immediately above a cloud layer should be considered as "in" the cloud. * Print out produced with IDATM < 0 or NGRID < 0 now includes modifications to the standard atmospheric models that follow from setting RHCLD, KRHCLR, UW, UO3, O3TRP, PBAR, ZPRES. This output allows the user to preview the effect of modifications to the atmospheric profile. * Improve diagnostic print outs obtained with idb(5). * Fixed usage of input parameter ZPRES. Version 2.2 ignored the value of this input parameter. * Use 6s code to compute reflection function from sunglint, ocean pigment This ocean brdf model does not include effect of wave shadowing. * Bug fix: SC not dimensioned correctly in salbedo. * Improved diagnostic print out of gaseous 'optical depths' Differences between SBDART version 2.2 and version 2.1 * bug fix: bug in the boundary layer aerosol model. When iaer=5, and both tbaer and vis are not specified, version 2.2 correctly uses the values of qbaer for aerosol optical depth while version 2.1 incorrectly set the aerosol optical depth to one. * bug fix: input quantity sc, used for multicomponent surface albedo specification was incorrectly dimensioned in a subroutine. As a result the code bombed when isalb=10. * output quantities for iout=1 have been changed so that all fluxes represent the spectral flux density, units w/m2/um. No longer need to be divided by FFV. See rt.doc for details. ------------------------------------------------------------------------ Differences between SBDART version 2.1 and version 2.0 Major changes: * bug fix: The declaration statement of dtauk in the main program incorrectly specified the dimensions as dtauk(mxkd,mxly) instead of dtauk(mxly,mxkd). Since the total number of element was correct this error did not affect the code output. * bug fix: The asymmetry factor read from aerosol.dat (iaer=-1) was not being used when a single phase function moment was read from the file. Code operation was correct when more than one moment was read from the file. * bug fix: When iaer=5, set the default value of qbaer(1)=1. This ensures proper operation when wlbaer has one element and qbaer is not set in the input file. * In the lowtran gaseous absorption modules, skip over double exponential fit parameters for species that don't contribute to spectral band. This fixes the negative array index error that crops up on Sun compilers. however it does not affect results on DEC compilers, where the index error is never flagged. Minor Changes: * Ensure that transmission print out [idb(7)=1] is correct when the exterrestrial flux is zero (etirr=0). * When the number of streams is not explicitly specified in the input file the default value of nstr is set to 4 for a flux calculation and to 20 for a radiance calculation. * Output quantities are now converted to single precision before printing. This fixes a problem on the DEC compiler, which used an unreadable output format to print very small double precision numbers. For example the number 1.000e-200 would be printed as 1.00-200, and would cause post- processor codes to choke. ------------------------------------------------------------------------ Differences between SBDART version 1.5 and version 2.0: Major changes: * upgrade to FORTRAN90 * 'implicit none' used in all subroutines * floating point precision now controlled by selected_real_kind intrinsic. (compiler option to treat all floats as double precision no longer required). * removed all common blocks, replaced with modules. other deprecated language elements, such as entry statements, have also been removed * upgrade to DISORT version 2.0 * new input variable CORINT used to decide whether to use new Nakajima-Tanaka TMS/IMS intensity correction algorithm that is now available in DISORT v2.0 * new capability to model user-specified non-Lambertian surface reflection is now available with DISORT v2.0. An ocean surface sun-glint model has been implemented that takes advantage of this new feature. * new input variable, SPOWDER, allows specification of a surface layer composed of a packed powder of scattering material, such as snow, sand, etc. This is another way to produce non-Lambertain surface reflectance. * new operating mode, KDIST=-1, allows SBDART to read high spectral resolution k-distribution optical depths from a disk file. (see below concerning the cksw software package) * cloud scattering parameters now based on Wiscombe's MIEV0 code. (greatest difference appears in the near-IR asymmetry parameter) * fixed treatment of 3-term LOWTRAN k-distribution parameters in the long-wave spectral region. Old version tried to rescale k-distribution transmission function to match LOWTRAN's double-exponential transmission function along the solar beam direction. However, the rationale for this modification was weak; the solar input is negligible in the longwave spectral region, so the solar beam direction is not particularly significant. The new version uses the unmodified LOWTRAN k-distribution parameters and produces predictions of thermal IR that are independent of solar zenith angle. It should be noted that more accurate estimates of longwave radiative transfer are available using high spectral resolution k-distribution optical depths read from disk with the KDIST=-1 option. (see below concerning the cksw software package) Minor changes: * changed format of spectral information files, filter.dat, solar.dat and albedo.dat. (The distribution package contains a perl script, newform, that converts old data files into the new file format). * fixed bogus value in snow albedo database. value at 1.835um changed from 0.248 to 0.148 * change water vapor and ozone interpolation from linear to log in zgrid * revised format for iout=11 now includes heating rate in kelvin/day and pressure profile * fixed treatment of user specified cloud liquid water read from usrcloud * a negative value of zout(1) or zout(2) will cause the code to stop after printing out the values of ntop and nbot * isat=-2, causes wlinf, wlsup to be interpreted as bandcenter and equivalent width of a triangular shaped filter function. The full width of the filter is 2*wlsup. wlinc is used to set the sample interval. * isat=-3 and -4 causes wlinf, wlsup to be interpreted as bandcenter and equivalent width of a triangular and Gaussian filter, respectively. ------------------------------------------------------------------------