Skip to content

Latest commit

 

History

History
31 lines (17 loc) · 11.6 KB

History_of_Fast-J_photolysis_code.md

File metadata and controls

31 lines (17 loc) · 11.6 KB

Origins and brief history of Fast-J photolysis code

The radiative transfer part of Fast-J and its successor Cloud-J are based on the Feautrier method (Feautrier 1964) for solving the scattered light in a plane-parallel atmosphere. The method solves the multiple-scattering radiative transfer equations as a second-order finite difference boundary value problem with a block tridiagonal solution and was initially used in stellar atmospheres (Mihalas 1970). The Feautrier method was adapted to polarized Rayleigh scattering in planetary atmospheres (Prather 1974). The method solved the 8-stream scattering system (4 up angles and 4 down angles) readily, but was limited to symmetric scattering (e.g., isotropic, Rayleigh) because of the second-order finite difference Feautrier method. Prather developed an anisotropic scattering code (required for aerosols and clouds) as a coupled pair of leap-frogged first-order difference equations that was first used in planetary atmospheres (Cochran; Trafton 1978). The full set of equations and second-order boundary conditions are presented in the first Fast-J paper (Wild et al. 2000).

The spectro-chemical part of Fast-J was based on the photolysis module of a 1D chemistry model developed at Harvard to study stratospheric (Logan et al. 1978) and tropospheric (Logan et al. 1999) chemistry. This model was core to many of the early model and measurements studies (M&M 1993; Olson et al. 1997; PhotoComp 2010), now designated MIPs. This code (often designated 'pratmo') has 77 sequential wavelength bins of cross sections and quantum yields covering the spectrum from 177.5 nm to 850 nm with 37 stratosphere bins (177.5-291 nm) and 40 troposphere bins (291-850 nm). The spectral data (absorption cross sections and quantum yields for dissociation) are calculated from reported laboratory data as reviewed by a panel such as JPL (Burkholder et al. 2015) and IUPAC (Atkinson et al. 2008). Each photolytic reaction has a unique data table reported for a range of temperatures and pressures, where the range is often a single value.

Fast-J demonstrated two major numerical approximations that enabled 3-D tropospheric chemistry models to calculate hourly photolysis rates (J-values) at a cost of 10-20% of the total chemistry module. For one, it showed that cloud scattering, normally required 160-streams or more to resolve the scattering phase function, could be solved with an 8-streams Feautrier method and produce mean specific intensities (actinic flux) with a few percent of the exact solution. With this method, the Legendre expansion of the phase function is simply truncated at the 8th term and no re-scaling of the cloud optical depth is needed. For two, it recognized that the large number of wavelength bins in use by most photolysis models (needed to resolve the cross sections of the photolyzed species) was not necessary if the cross sections were photon-weighted. Thus the 40 tropospheric wavelength bins of the pratmo reference code collapsed to 7 bins. These wide bins assume that attenuation of sunlight is uniform across the bin and are based on the atmospheric optical depth of O3 absorption and Rayleigh scattering.

Stratospheric chemistry also needed a Fast-J code. In response, Fast-J2 (Bian; Prather 2002) optimized the 37 stratosphere bins (177.5-289 nm) based on wavelength regions with similar O2 and O3 opacities. Because the O3 absorption cross section peaks about 250 nm, wavelength bins with similar cross sections on either side of this peak are merged into a single wide Fast-J2 bin. The wavelength region 177-215 nm is critical for photodissociation of O2 to make O3 and many long-lived greenhouse and ozone-depleting gases (e.g., CFCl3, CF2Cl2, N2O), but is complicated by the highly structured O2 Schumann-Runge (S-R) bands that need to be resolved at 0.002 nm (0.5 /cm) (Kockarts 1994; Minschwaner et al. 1992). The pratmo code's first 15 bins were the Schumann-Runge (14,0: 177.5-178.3 nm) through to (0,0: 200-202.5 nm) and each of these used an opacity distribution function (Fang et al. 1974) to sort the lines into as many as 6 groupings of similar cross section. The opacity distribution function uses the same approach as the correlated-k approach in the infrared (Lacis; Oinas 1991). This sub-binning of each S-R band resulted in highly accurate modeling of the J-values up to 80 km altitude, but was computational expensive: Counting the 83 S-R sub-bins, the 37 stratospheric bands in pratmo required 105 separate wavelength calculations.

Fast-J2 sorted these according to stratospheric opacity and reduced them to 11 bins, but in dropping some of the most intense S-R lines, it was designed to be accurate only to about 60 km altitude. The Lyman-alpha band in early versions of pratmo, which photolyzed H2O above 70 km, was also dropped from Fast-J2. To avoid the cost of multiple scattering, Fast-J2 used simple attenuation of sunlight by absorbing species O2 and O3 in bins 1-11 and full aerosol-cloud-Rayleigh scattering in bins 12-18. Fast-J2 approximated Rayleigh scattering by taking 57% of the scattering cross sections as absorbing.

Fast-JX. Some scientific problems, e.g., the impact of Mt. Pinatubo or geoengineering aerosols on ozone require stratospheric aerosol scattering, and thus Fast-JX consolidated Fast-J and Fast-J2 with full scattering in all 18 bins. The first major version of Fast-JX was 5.3 (Jun 2005, no publications associated with it), proceeding through 5.7 and then 6.0 through 6.8 as FORTRAN 77 (*.f) versions. Versions 6.5-6.7 are documented in (Sovde et al. 2012). A range of improvements involved adding semi-log layers to the tops of optically thick clouds to improve the accuracy and conservation of cloud scattering, extending the spectral data tables on clouds and aerosols down to 200 nm, shifting the stratosphere-troposphere boundary to 289 nm, updating species and cross sections for JPL-2010 to use 1, 2, or 3 temperatures, updating the so that J-VOCs included pressure-dependent yields.

While Fast-J's 7 long wavelength bins (#12:18) cover almost all the photolysis rates needed for troposphere-only modeling, some uv in the 200-215 nm range reaches the upper tropical troposphere and is important for the lifetimes of gases such as CF2BrCl and the production of O3 (Prather 2009). Fast-JX had switches for troposphere-only uses that collapsed the 18 bins to 12 bins (#5:8 & #12:18, an exact solution) and to 8 bins (#5 & #12:18), and it also dropped the calculation of J-values that were only significant in the stratosphere. This option could cut the computational cost of Fast-J in half.

Flux deposition in each layer (heating rates) is inherently part of the Feautrier asymmetric solver: the mean intensity (actinic flux) is calculated in the middle of each model layer, while the net fluxes (up minus down in each quadrature angle) is calculated at each layer edge. Thus in the later versions of Fast-JX the flux deposition or heating rates in each layer were diagnosed, but limited to the solar flux up to 850 nm.

Cloud quadrature, a new method of averaging over fractional clouds was developed by Neu (Neu et al. 2007). The Fast-JX code was adapted to take the distribution of independent column atmospheres (ICA), each with its own distribution of clouds in each layer, and select up to 4 of these as quadrature column atmospheres (QCAs) for which Fast-JX would calculate photolysis rates and then average them to calculate the J-values in the grid-cell column. QCAs were defined by total cloud optical depth at 600 nm: 0–0.5 (clear sky), 0.5–4 (cirrus-like), 4–30 (stratus-like), and >30 (cumulus-like). This added an intermediate driver code that would call it Fast-JX for each QCA and average. Comparing the QCA J-values with the average over all ICAs (100+ single column calculations) showed the cloud quadrature was highly accurate. In 2013, FORTRAN 90 versions of Fast-JX with cloud quadrature were released. Thus Fast-JX versions 7.0, 7.1, and 7.2 were developed and released. Fast-JX version 7.2 includes a full stand-alone coding of the (Neu et al. 2007) cloud quadrature.

Cloud-J version 7.3c (Prather 2015) now supersedes Fast-JX, and all new development for photolysis rates, whether in the Fast-JX core modules or the Cloud-J wrapper, will follow this notation. Version 7.3c is traceable back to version 6.8. Cloud-J developed a new algorithm for cloud overlap based on the vertical decorrelation observed: Blocks of clouds in the altitude ranges 0-1.5 km, 1.5–3.5, 3.5–6, 6–9, 9–13, and >13 km are maximally overlapped while each block is de-correlated from the one below. Cloud-J also developed a fast code to completely define all ICAs for a range of cloud overlap rules. Other minor changes included the shift of the end of bin 18 from 850 nm to 778 nm to match the infrared bands of the solar heating code RRTMG-SW. Also, solar fluxes and cross-sections changed slightly with the updated solar spectrum reference data and improved averaging over wavelength, but changes in J's and any of the Cloud-J stats are <1% and usually <<1%.

With the development of heating code Solar-J (Hsu et al. 2017; Hsu; Prather 2021; Prather; Hsu 2019), Cloud-J versions 7.4 and beyond include many of the new capabilities and algorithms developed in parallel for both photolysis and heating codes. Cloud-J has added the RRTMG-SW 9 wide bands in the infrared (>778 nm) to keep the core modules similar in both codes. The extended 27-bin spectrum includes fluxes and Rayleigh scattering, updated spectral data for liquid and ice clouds and sulfuric acid aerosols using flux-weighted refractive indices. Stratospheric sulfate aerosols have an updated size distribution based on observations, changing the optical depth. Version 7.4 and later have inherently different results from all previous versions, by up to 6% in lowest layers. The 9 additional bands include full scattering calculation but there is an option to skip all the RRTMG bins and just do the 18 (or 12 or 08) Fast-J bins. Heating rates in Cloud-J (but not Solar-J) are calculated for absorption by ONLY O2, O3, clouds, and aerosols, not the many infrared gas absorption lines.

Updates to Cloud-J versions 7.4-7.7 (current 2021/09) are described in the Solar-J publications and include, inter alia: corrected solar flux deposition for solar zenith angles > 90°; code changes to avoid compiler-dependent faults; spherical ray-tracing and extinction of the direct solar beam now includes refraction and a true geometric atmosphere instead of a flat geopotential atmosphere used in most models (Prather; Hsu 2019); a new ocean surface albedo as a function of wavelength, surface wind and chlorophyll, and incident angle; a new second-order lower boundary condition that allows for angle-dependent albedos; and a simple 2-stream version of the asymmetric Feautrier scattering code (same levels and physics as the 8-stream code).

Updates to the chemical species being photolyzed or the spectroscopic data base (e.g., cross sections and quantum yields) can be readily added to the Cloud-J data tables. The inclusion of scattering/absorbing aerosols (extinction coefficient (m2/g), single scattering albedo, first 8 terms in the Legendre expansion of the scattering phase function) can likewise be tailored to the chemistry models aerosol modes. Sample codes for integrating and averaging cross sections are supplied. See ftp://128.200.14.8/public/prather, look under /Fast-J_&_Cloud-J;, and for publications, look under /papers-MJP.
Other uses of Fast-J include the GEOS-Chem model and the use of a customized Fast-J in that model is documented in their wiki pages:
http://wiki.seas.harvard.edu/geos-chem/index.php/Photolysis_mechanism

~ M. Prather, 2021/9/28