/*---------------------------------------------------------------- * libRadtran Newsletter No. 4 * * August 20, 2004 * * Bernhard Mayer (bernhard.mayer_at_dlr.de) * Arve Kylling (arve.kylling_at_nilu.no) * * ### More info: http://www.libradtran.org ### *----------------------------------------------------------------*/ Welcome to the fourth libRadtran Newsletter! Dear libRadtran users, it's not Chrismas time, but the IRS 2004 is around the corner! We decided to use this major event to release *** Version 1.0 *** of libRadtran. Thanks for all your contributions and suggestions for bug fixes! libRadtran has been growing for more than 10 years and has changed from a relatively simple tool to calculate radiation between 300 and 400nm to a comprehensive package covering the complete shortwave and longwave ranges, providing about 200 input parameters to define the atmospheric state. It has been used to calculate biologically relevant ultraviolet radiation, photolysis frequencies, short- and longwave radiation, as well as airmass factors for DOAS applications; lookup tables for a variety of remote sensing applications have been calculated, including water and ice cloud property retrievals as well as UV global irradiance ozone retrievals. It forms the basis of some satellite-based determinations of direct and global shortwave fluxes for solar energy applications and ultraviolet radiation. Recently it even left Earth: Research groups have started adapting it to the very special conditions on Mars and Titan. A (yet incomplete) overview of the papers which used libRadtran is given at the libRadtran homepage. High flexibility of course also comes with an enhanced potential for errors. Consider that it is close to impossible to check all combinations of input parameters: With about 200 options, there are theoretically 200 x 199 = 39800 possible combinations of options, and if you allow interactions between 3 or more options, the number of possible combinations converges rapidly towards infinity. Luckily, most bugs we encountered so far only result in weird error messages or segmentation faults, rather than buggy results. If you ever encounter a bug we ask you to send us a short message to give us a chance to fix it. libRadtran lives from the interaction with users! Also, we are in the stages of finalising a paper describing libRadtran and its uses. Once it is out we will make sure to notify you. Thus, look forward to another Christmas newsletter :-) *** Following are the changes from the last beta version (December 31, *** 2003) to version 1.0. First, those changes are listed which affect *** the model output; second, those which fix segmentation faults *** or error messages; third, those which introduce new options: *** Changes which affect the model output: - Changed interpolation of transmittance from spline to linear; this avoids problems with negative transmittance etc. Example outputs were generally changed by less than 1%. If you don't know what we are talking about, have a look at the first figure in the manual, page 7. - Fixed a bug in the implementation of the RPV parameterisation of vegetation BRDF; in both 1D (disort2) and 3D (mystic) the hot spot occurred in the forward direction instead of backward. In 1D (disort2), only radiances were affected, in 3D also fluxes to some degree. - Water and ice clouds: Changed from averaging optical properties over layers to averaging the microphysical properties (lwc and reff) over layers and translating to optical properties afterwards. The change has little effect on the radiation but uvspec is internally consistent now. - Implemented the Bodhaine et al. [1999] Rayleigh scattering cross section as new default; also added a new option, rayleigh_depol, to define the depolarization in Rayleigh scattering. Depolarization affects the scattering phase function only. By default, the depolarization is calculated following Bodhaine et al. [1999]. - Twostr fix: twostr gave erroneous results(Kylling 2004) if the optical thickness of a layer was larger than a certain number. Fixed that, at least partially. Thus always check the results and make sure they make sense. To understand model output is also much more interesting and satisfying than to just say that the model produced these numbers. *** Changes, to fix segmentation faults or other errors: - Added a strict check if the effective radii of ice clouds are within the bounds defined in the Key et al. [2002] and Fu et al. [1996/98] papers. - Bug fix: If "brightness" was defined before "source thermal" it had no effect - "dens_column H2O", CO2, and O2 had no effect. Removed these molecules from the dens_column statement in uvspec_lex.l and from the documentation. Who wants to specify water vapor in Dobson Units anyway? - Several fixes of the "independent pixel" options which caused segmentation faults. Should work now as described in the documentation. *** New options - Ice clouds are a tough issue; there is a variety of ways to define their optical properties (e.g. there are approximately seven ways to define an effective size, see McFarquhar and Heymsfield [1998]). In consequence, the different options to define ice cloud optical properties in libRadtran (ic_properties) are not neccessarily consistent: o Added an option ic_fu_tau which allows to switch off delta-scaling in the Fu (1996) parameterization. Also added a lengthy explanation why and when this might be useful. o Added new option ic_fu_reff which allows to use the Key et al (2002) definition of effective radius in the Fu (1996/98) parameterization. o Improved documentation, added a figure to the ice cloud section and introduced a warning which tells the user to read the documentation if he defines an ic_file and uses ic_set_tau/gg/ssa etc afterwards. Using both new options, the parameterizations of Fu et al [1996/98] and Key [2002] provide consistent results. We are still looking for a ice cloud parameterization, to be used for radiance, covering the whole shortwave and longwave spectral ranges. Can anybody help? - Added "rte_solver NULL" which does not solve the RTE, but everything else required to setup the optical properties. This option is useful if only the verbose output is required or if the time overhead is to be estimated. - Added Bowker et al. [1985] albedos, as provided by Manfred Wendisch - New input parameters for O2/O4 profiles: o o2_mixing_ratio xxx (to re-scale the O2 mixing ratio defined in the input file) o o4_absorption on/off, to switch O4 absorption in "correlated_k SBDART" off (default: on) - Changed the code from netcdf version 2 to netcdf version 3. netcdf3 was already used by some routines (e.g. src_c/miecalc.c) and is supposedly a factor of 2 faster than netcdf2. configure now really checks for the presence of netcdf3. libRadtran still runs without netcdf, but several options only work if netcdf is available (e.g. "correlated_k kato") and large input files (e.g. the cloud property files) are read much faster in netcdf than in ASCII. - The uppermost optical properties file in wc_files, ic_files, aerosol_files is ignored (as it should be because the uppermost line is only there to define the top altitude of uppermost layer). But the user did not neccessarily know that. Hence added a check if the optical thickness of the uppermost optical properties file is zero and added the possibility to simply say NULL instead of defining an existing file name (but only for the uppermost line). - Restructuring of examples: For each example in the examples directory a unique input (*.INP) and output file (*.OUT) exists now. - Added possibility to define a spectral Rayleigh scattering optical thickness profile to rayleigh_tau.dat (before, only monochromatic was possible). The file format is now exactly as in molecular_tau_file, either monochromatic or spectral ASCII or spectral netcdf - Added option to calculate solar heating rates and terrestrial cooling rates. - Added option -d to tools/phase to allow computation as function of theta rather than mu=cos(theta) - Restructuring of the input options of tools/zenith and tools/sza2time - Added consistency checks for pressure, temperature, and air density in the atmosphere_file. If they are not consistent, issue a warning. - Relaxed the input file: arguments are no longer case sensitive; that is, "correlated_k KATO" and "correlated_k kato" both work.