- Technical report
- Open Access
- Published:
Photochemical and radiation transport model for extensive use (PROTEUS)
Earth, Planets and Space volume 75, Article number: 140 (2023)
Abstract
We introduce a new flexible one-dimensional photochemical model named Photochemical and RadiatiOn Transport model for Extensive USe (PROTEUS), which consists of a Python graphical user interface (GUI) program and Fortran 90 modules. PROTEUS is designed for adaptability to many planetary atmospheres, for flexibility to deal with thousands of or more chemical reactions with high efficiency, and for intuitive operation with GUI. Chemical reactions can be easily implemented into the Python GUI program in a simple string format, and users can intuitively select a planet and chemical reactions on GUI. Chemical reactions selected on GUI are automatically analyzed by string parsing functions in the Python GUI program, then applied to the Fortran 90 modules to simulate with the selected chemical reactions on a selected planet. We performed a benchmark test of PROTEUS to confirm its validity, by applying it to the Martian atmosphere and the Jovian ionosphere. PROTEUS can significantly save the time for those who need to develop a new photochemical model; users just need to write chemical reactions in the Python GUI program and just select them on GUI to run a new photochemical model.
Graphical Abstract

Introduction
One-dimensional photochemical and transport models are essential for investigating the typical vertical chemical structure of planetary atmospheres and their evolution throughout the history of the planets. They solve continuity-transport equations considering production and loss of each atmospheric species by numerous chemical reactions including photolysis. So far, plenty of photochemical models have been developed for various planetary atmospheres in the solar system (e.g., Kasting et al. 1979; Nair et al. 1994; Kim and Fox 1994; Fox and Sung 2001; Krasnopolsky 2009, 2012; Chaffin et al. 2017) and terrestrial exoplanets (e.g., Rugheimer et al. 2013; Lustig-Yaeger et al. 2019; Grenfell et al. 2013). As the mass and spectral resolutions of measurements for detecting chemical species in planetary atmospheres increase and the theory of chemical kinetic systems becomes more complex, the need for photochemical models with hundreds or thousands of chemical reactions increases.
There are roughly three approaches to develop a numerical code for solving a lot of chemical reactions (Damian et al. 2002). The first approach is a hard-coding approach, in which the developer analyzes the chemical reactions, derives all the production and loss rate terms for each chemical species, and codes them into a program by hand. This approach is easy to develop when the number of chemical reactions is smaller than a hundred, however, it takes a lot of time to develop a code when the number of reactions becomes larger than hundreds or more. It is also difficult to add new chemical reactions into an already hard-coded program.
The second approach is a totally integrated approach, in which the chemical reactions are listed in a specific file in a certain format, and they are parsed by a program and stored in a memory at a run time. This approach is flexible in adding new chemical reactions after the development of the core program, and easy to deal with hundreds of chemical reactions without developer’s manual derivation. This approach was used in the Atmos model in Fortran language for instance, which was originally developed by Kasting et al. (1979), updated by Zahnle et al. (2006) and recently described in Arney et al. (2016). Recently an integrated Martian photochemical model was developed by Chaffin et al. (2017) in Julia language with a more flexible way of describing reactions and rate coefficients.
The third approach is a preprocessing approach, in which the chemical reactions are listed in a specific file like the totally integrated approach but are parsed by a preprocessor to generate a hard-coded program in a high-level language such as Fortran or C language (Damian et al. 2002). This approach is also flexible in implementing hundreds of chemical reactions and is as efficient as the hard-coding approach. This approach was used in the kinetic preprocessor (KPP) originally developed by Damian et al. (2002), which has been widely used for chemical kinetic models for Earth’s atmosphere (e.g., Roldin et al. 2019).
In this paper, we present a new integrated photochemical model named Photochemical and RadiatiOn Transport model for Extensive USe (PROTEUS), with a totally integrated approach. PROTEUS couples Python and Fortran modules, which is designed for adaptability to many planetary atmospheres, for flexibility to deal with thousands of or more chemical reactions with high efficiency, and for intuitive operation with a graphical user interface (GUI). A Python GUI program integrates a list of chemical reactions, GUI functions controlling the behavior of GUI operation, and a string parsing functions analyzing chemical reactions that output a Fortran 90 module. Fortran 90 modules solve differential equations numerically. Chemical reactions are written in a simple and flexible string format in the Python GUI program, making it easy to add new chemical reactions into the Python GUI program. The feature of PROTEUS that the Python GUI program outputs a Fortran 90 module is similar to the preprocessing approach, leading to a high efficiency, however, the Fortran modules in PROTEUS are not hard-coded but is rather generic.
PROTEUS has been newly developed and independent of other photochemical models or KPPs that have been developed so far.
Model descriptions
Equations
PROTEUS is a one-dimensional photochemical model that solves a system of continuity equations for each species as follows:
where \({n}_{i}\) is the number density of \(i\)th species, \({P}_{i}\) is the production rate of \(i\)th species, \({L}_{i}\) is the loss rate of \(i\)th species, \(z\) is the altitude and \({\Phi }_{i}\) is the vertical flux of \(i\)th species. The vertical flux \({\Phi }_{i}\) for both neutral and ionized species can be expressed as follows:
where \({D}_{i}\) is the binary diffusion coefficient between \(i\)th species and the background atmosphere, \({H}_{i}\)= \({k}_{B}{T}_{i}/{m}_{i}g\) is the scale height of \(i\)th species, \({m}_{i}\) is the mass of \(i\)th species, \({k}_{B}\) is the Boltzmann constant, \(g\) is the gravitational acceleration, \({q}_{i}\) is the charge of \(i\)th species, \({q}_{e}\) is the elementary charge, \({T}_{e}\) and \({T}_{i}\) are the temperatures of electrons and \(i\)th species, respectively, \({P}_{e}\) = \({n}_{e}{k}_{B}{T}_{e}\) is the electron pressure, \({n}_{e}\) is the electron number density, \({\alpha }_{i}\) is the thermal diffusion coefficient, \(K\) is the eddy diffusion coefficient, \(H\) =\({k}_{B}T/mg\) is the mean scale height of the background atmosphere, \(m\) is the mean molecular mass of the atmosphere, and \(T\) is the neutral temperature. The temperature profiles are assumed to be stationary in time. The third term in Eq. (2) is the ambipolar diffusion term, which is applied only to charged species. The altitude-dependent gravitational acceleration \(g\) is calculated by using the mass and radius of the planet.
We referred to the numerical method for solving the system of continuity equations for the photochemical model described in Catling and Kasting (2017) with some corrections. The vertical flux in Eq. (2) can be re-written as follows:
The spatial derivative of the vertical flux is expressed in a second-order central difference as follows:
where superscripts \(j+1/2\) and \(j-1/2\) are the upper and lower interfaces of the \(j\) th vertical layer. The vertical fluxes at the interfaces \(j+1/2\) and \(j-1/2\) are expressed as:
where
Then the spatial derivative of the vertical flux can be described as follows:
Equation (1) can then be written as follows:
where \({{\mathcal{A}}_{i}}^{j}\), \({{\mathcal{B}}_{i}}^{j}\), \({{\mathcal{C}}_{i}}^{j}\), and \({{\mathcal{D}}_{i}}^{j}\) are expressed as follows except for lower and upper boundaries:
At the lower boundary, \({{\mathcal{A}}_{i}}^{1}\), \({{\mathcal{B}}_{i}}^{1}\), \({{\mathcal{C}}_{i}}^{1}\), and \({{\mathcal{D}}_{i}}^{1}\) are expressed as follows:
where \({{v}_{i}}^{1/2}\) and \({{\Phi }_{i}}^{1/2}\) are the fixed velocity and flux of \(i\)th species at the lower boundary. Either \({{v}_{i}}^{1/2}\) or \({{\Phi }_{i}}^{1/2}\) is given for each \(i\)th species as a lower boundary condition, or they are set to zero if not needed. If the lower boundary condition of the \(i\)th species is the constant density, \({{\mathcal{A}}_{i}}^{1}\), \({{\mathcal{B}}_{i}}^{1}\), \({{\mathcal{C}}_{i}}^{1}\), and \({{\mathcal{D}}_{i}}^{1}\) are set to zero. Note that the velocity and flux with positive values at the lower boundary conditions direct vertically upward. At the upper boundary, \({{\mathcal{A}}_{i}}^{J}\), \({{\mathcal{B}}_{i}}^{J}\), \({{\mathcal{C}}_{i}}^{J}\), and \({{\mathcal{D}}_{i}}^{J}\) are expressed as follows:
where \(J\) is the number of vertical layers, and \({{v}_{i}}^{J+1/2}\) and \({{\Phi }_{i}}^{J+1/2}\) are the fixed velocity and flux of \(i\)th species at the upper boundary escaping the atmosphere. Either \({{v}_{i}}^{J+1/2}\) or \({{\Phi }_{i}}^{J+1/2}\) is given for each \(i\)th species as an upper boundary condition, or they are set to zero if not needed. Note that the velocity and flux with positive values at upper boundary conditions also direct vertically upward.
The basic equations of the photochemical model are stiff equations in which some of the variables such as the number densities of short-lived species change more quickly than others. Therefore, PROTEUS has applied an implicit scheme described by Catling and Kasting (2017), in which the density and flux are solved simultaneously. Note that the production rate \({{P}_{i}}^{j}\) and the loss rate \({{L}_{i}}^{j}\) are functions of the number density. Jacobian components related to the production and loss rates are analyzed by the Python GUI program. The timestep can gradually increase from an initial value 10–8 s to ideally more than 1014 s, allowing us to investigate from a sporadic event response in several minutes to the evolution of planetary atmospheres in a billion-year time scale.
PROTEUS is basically a one-dimensional photochemical model and currently does not solve horizontal transportation, but considers the rotation of a planet as options to obtain a simplified global distribution. PROTEUS has four options for the simulation geometry: (1) one-dimensional simulation at a given latitude at noon, (2) two-dimensional simulation at noon at each latitude from the north pole to the south pole, (3) two-dimensional simulation at a given latitude with rotation, and (4) three-dimensional simulation at all latitudes with rotation. The three-dimensional simulation has already been applied by Nakamura et al. (2022) for the Jovian ionosphere. Note that our model is fundamentally a one-dimensional model that can only deal with the temporal variation of the solar zenith angle and is not able to solve horizontal transport, which is different from the state-of-the-art three-dimensional photochemical and transport models (e.g., Braam et al. 2022; Cooke et al. 2023; Chen et al. 2018).
Radiative transfer
PROTEUS uses the solar EUV irradiance model for aeronomic calculations (EUVAC) (Richards et al. 1994) for the reference irradiance spectrum of solar extreme ultraviolet (EUV) flux to calculate the photoionization rates of atmospheric species. EUVAC model provides the solar EUV flux in 37 wavelength bins ranging from 5 to 105 nm. EUVAC model requires the input of F10.7 value and its 81 days running average value. High resolution solar EUV reference flux model such as the high-resolution version of EUVAC (HEUVAC) (Richards et al. 2006) and the Flare Irradiance Spectral Model-Version 2 (FISM2) (Chamberlin et al. 2020) will be implemented into PROTEUS in the future. For calculating the photodissociation rates of atmospheric species, we used the reference irradiance spectrum of the solar flux in the wavelength range 0.05–2499.5 nm taken from Woods et al. (2009). Adopting the solar flux taken from EUVAC model and Woods et al. (2009), the radiative transfer is solved by considering the absorption of the solar irradiation by atmospheric species. In PROTEUS, users can flexibly change the wavelength bin size for the solar irradiance of Woods et al. (2009) and absorption/dissociation cross sections of chemical species at each wavelength. The solar flux and cross section data can be provided in any wavelength bins, which are automatically interpolated linearly and binned to the wavelength bin given by the user. The automatically binning algorithm is especially useful when users need high resolution wavelength bins in a limited wavelength range. For example, if users need to resolve the Schumann-Runge bands of the oxygen molecule, the user can set a 0.01 nm resolution at 176–192.6 nm and 1 nm at other wavelength range, which could reduce the computational cost in solving radiation transfer and dissociation rate of atmospheric species even fully resolving the structured Schumann-Runge bands of the oxygen molecule. This algorithm is also useful for resolving a slight difference in absorption cross sections between isotopes (Yoshida, et al. 2023).
The reference solar irradiance spectra are then divided by the square of the distance \(r\) in the unit AU between the planet and the Sun. The distance \(r\) between the planet and the Sun at a given solar longitude \({L}_{s}\) is given by
where \({r}_{m}\) is the mean distance in unit AU between the planet and the Sun, \(e\) is the eccentricity of the planetary orbit, and \({L}_{s,P}\) is the solar longitude at perihelion. The solar longitude is defined as the angle along the planet’s orbit, starting from zero at the northern spring equinox, dividing the season from the northern spring equinox to the northern summer solstice into 90 degrees. The solar zenith angle at latitude \(\theta\) and an hour angle \(\eta\) is given by
where \(\delta\) is solar declination. \(\delta\) and \(\eta\) are given by
where \(\varepsilon\) is the tilt angle of the rotational axis, \({t}_{L}\) is the time in second measured from the local noon, and \({T}_{p}\) is the rotational period of the planet. The optical depth \(\tau (z,\lambda ,\chi )\) and the photon flux \(I(z,\lambda ,\chi )\) at the altitude \(z\) and the solar zenith angle \(\chi\) as a function of wavelength \(\lambda\) can be calculated as follows:
where \({n}_{s}\) is the number density of the \(s\)th species, \({\sigma }_{s}^{a}\) is the absorption cross section of the \(s\)th species, \({I}_{\infty }\) is the solar flux at the top of the atmosphere, and \(\mathrm{Ch}(z,\chi )\) is the Chapman’s grazing incidence integral described in Smith III and Smith (1972) with the improved approximation of complementary error functions from Ren and ManKenzie (2007).
Structure of PROTEUS
PROTEUS consists of a Python GUI program and of Fortran 90 modules. The Python GUI program contains a list of chemical reactions for each planet, string parsing functions that parse the reactions and reaction rate coefficients selected in GUI, and GUI functions that control the behavior of GUI. Python language was adopted because of its flexibility in parsing strings and its capability in operating GUI. Fortran language was adopted to solve differential equations numerically. The structure of PROTEUS is illustrated in Fig. 1. Chemical reactions listed in the Python file are first read by GUI functions (arrow 1 in Fig. 1). Then, users select reactions on GUI (arrows 2 in Fig. 1), which will be analyzed by string parsing functions (arrow 3 in Fig. 1) to output a Fortran 90 module named “v__in.f90” and data files (in directories “PLJ_list” and “settings”) including information of the selected chemical reactions (arrow 4 in Fig. 1). The Fortran 90 module “v__in.f90” is the only module that includes information of chemical reactions, and other Fortran 90 modules are independent of chemical reactions to be used in the simulation. Datafiles of initial density profiles and temperature profiles are read by “v__in.f90” (arrow 5 in Fig. 1). The selected reactions, settings such as temperature profile and initial density profiles are applied to the Fortran 90 model when the main Fortran 90 routine “e__main.f90” call subroutines in “v__in.f90” (arrow 6 in Fig. 1). Users can then run the Fortran model by compiling all the Fortran 90 modules (indicated as “7” in Fig. 1).
The structure of the Fortran codes is illustrated in Fig. 2. It should be noted that each Fortran 90 file contains several modules with distinct functions, but only the Fortran 90 file is indicated for simplicity. The main routine “e__main.f90” consists of three parts, (1) initialization, (2) calculation, and (3) finalization. The description of each parts and each Fortran 90 files are as follows.
(1) All derived data types are defined in “v__tdec.f90”. Information of the chemical reactions, boundary conditions, and calculation settings are defined in “v__in.f90”. Physical constants and parameters of the planetary orbit are given in “c__prm.f90”. Production rates calculated by other models (e.g., ionization rate calculated by a meteoroid model (Nakamura et al. 2022)) can be input in “p__Mars.f90” and “p__Jupiter.f90″. The solar EUV flux is calculated by the EUVAC model and the absorption and ionization cross sections are defined in “p__EUVAC.f90″. The solar flux of Woods et al. (2009) is defined and absorption and dissociation cross sections are calculated in”p__UV.f90”.
(2) The radiative transfer is solved and the optical depth is calculated in “p__photochem_opticaldepth.f90”. Ionization and dissociation rates, reaction rate coefficients and production and loss rates of each species are calculated in “p__photochem_rate.f90”. The vertical diffusion flux is calculated in “p__photochem_transport.f90”. The eddy and binary diffusion coefficients are defined in “p__eddy_diffusion.f90” and “p__molecular_diffusion.f90”, respectively. “p__photochem_scheme.f90” calculates the Jacobian matrix and advances the timestep using the implicit method.
(3) At last, “p__io.f90” outputs the calculated simulation results.
Graphical user interface
The Python GUI program uses the tkinter package, a standard library of Python to use the Tcl/Tk GUI toolkit (https://docs.python.org/3/library/tkinter.html). The Python GUI allows users to easily and intuitively select a planet, chemical reactions of interest, and run the simulation. An example of GUI is shown in Fig. 3, and the operation of GUI is as follows. Once the user runs the Python GUI program, one can select a planet as indicated (“1” in the upper panel of Fig. 3). After selecting a planet, one can create a new project directory, or select or rename a pre-existing project directory as indicated (“2” in the upper panel of Fig. 3). Then the chemical reaction list for the selected planet appears in the window (the lower panel of Fig. 3). Chemical reactions and their rate coefficients written in the Python GUI program are automatically converted into Unicode and displayed, making them easy to read. One can select or clear reactions by clicking on the checkbox at each reaction (“3” in the lower panel of Fig. 3). By inserting chemical species, reference or label into a search box, only related reactions appear in the window. One can set upper and lower boundary conditions, initial density profiles, vertical grid size, and other calculation settings such as dimension of the simulation, season, latitude, integration time, maximum timestep (“4” in the lower panel of Fig. 3). After all the settings are done, one can press “Output f90 module”, then the following files are generated in the selected project directory: a Fortran 90 module named “v__in.f90”, setting files stored in the directory “settings”, and information about production and loss reactions of each chemical species, rate coefficient labels, and Jacobian matrix analyzed by the string parsing function stored in the directory “PLJ_list”. The list of chemical species, the number of chemical species, indices, mass, and charge of each chemical species are automatically determined and written in “v__in.f90” at this time. Those text files are read by the Fortran 90 module “v__in.f90”. One can also output those files, compile and run the Fortran codes by pressing “Output f90 module & Run model”, which requires the installation of an open source software CMake into user’s computer (“5” in the lower panel of Fig. 3). All the settings and selected reactions are saved, and users can use the same settings and selected reactions the next time they run GUI. At the end of the simulation, users can quickly plot the density profiles by pressing “Plot setting” button (“6” in the lower panel of Fig. 3).
Format of chemical reaction list
The main feature of PROTEUS is the simple format of chemical reaction list in the Python GUI program and on the GUI. Format of chemical reaction list in the Python GUI program and some examples are illustrated in Fig. 4.
Any reactions and their rate coefficients are described in the following string format in the Python GUI program. Reaction and rate coefficient are separated by a colon “:”, and left- and right-hand sides of the reaction are separated by an arrow “–> ”. Chemical species can be written simply as string. For instance, ionized species “N2+”, “CO2+”, and “H+(H2O)4” are simply described as “N2+”, “CO2+”, and “H+(H2O)4”, respectively, and electron is described as “e–”. Isotope species such as “13CO2” can be written as “^13CO2”. Each chemical species and an addition operator “ + ” or an arrow “–>” should be separated by at least one space. PROTEUS also deals with three-body reactions with the expression “M” describing the total atmospheric number density. Temperature-dependent rate coefficient equation can be simply described as string in infix notation. Addition operator “ + ”, subtraction operator “−”, multiplication operator “*”, division operator “/”, exponentiation operator “^” or “**”, exponential function “exp()” square root function”sqrt()”, neutral, ion and electron temperatures “Tn”, “Ti”, and “Te”, respectively, altitude in km “h”, decimal fraction values such as “1.16”, integer values such as “300”, and values in E notation such as “4.9e−11” can be used in the rate coefficient equation. If there is a temperature range T1–T2 [K] in which the rate coefficient is valid, one can describe the temperature range by “for T = T1 ~ T2 [K]”.
Reactions and their rate coefficients selected on GUI are parsed by the string parsing functions in the Python GUI program. Index for each chemical species is automatically determined by the string parsing function, and mass and charge of each chemical species are also automatically identified by the string parsing function. String of each species are automatically divided into constituent elements and mass is calculated by the sum of mass of all the elements, and charge is calculated by counting the number of “ + ” and “−” in the string of each species. The string parsing function analyzes which reaction produces or lose each chemical species. The rate coefficient expressions written in infix notation are first separated into tokens. Then the order of tokens in infix notation are converted into reverse Polish notation (i.e., postfix notation) and automatically labeled. The Fortran 90 modules calculates the reaction rate coefficient using the labeled tokens arranged in reverse Polish notation. This method allows PROTEUS to process a variety of expression of temperature- and altitude-dependent rate coefficients (as seen in Fig. 4) at high computational speed. All the information needed to calculate production rate, loss rate and Jacobian matrix are output as text files, which will be read by Fortran 90 module to apply the information about chemical reactions selected. The number of chemical species and reactions, mass and charge of chemical species, rate coefficient of each reaction and contribution of each reaction to production/loss of each species are automatically applied to Fortran 90 modules by reading those text files. Those features make PROTEUS a flexible photochemical model that can be applied to many planetary atmospheres with different set of chemical reactions.
Software requirements
PROTEUS is compatible with Python 3 and does not support Python 2. The Python libraries, Matplotlib and Numpy, need to be installed on the user's computer. Additionally, the open-source software CMake needs to be installed on the user's system.
Application to planetary atmospheres
Mars
For the application to the Martian atmosphere, parameters of Mars and its orbit are implemented into PROTEUS; The mean distance between Mars and the sun is \({r}_{m }\) = 1.524 AU, the eccentricity is \(e\) = 0.0934, the solar longitude at perihelion is \({L}_{s,P}\) = 250°, tilt angle of the rotational axis is \(\varepsilon\) = 25.2°, the rotational period is \({T}_{p}\) = 88,775 s, the mass of Mars is 6.417 × 1023 kg, and the mean radius of Mars is 3389.5 km (Patel et al. 2002; Williams 2021).
The cross sections implemented into PROTEUS for the application to Mars are as follows. Ionization cross sections of CO2, CO, O2, N2, and O are taken from Schunk and Nagy (2009). Absorption cross sections and quantum yields for calculating dissociation rates of atmospheric molecules are listed in Table 1. In order to validate PROTEUS, we compared with one-dimensional Martian photochemical model by Chaffin et al. (2017) (hereafter called as C17 model), using the same chemical reactions and their rate coefficients, boundary conditions, temperature and water vapor profiles, and binary and eddy diffusion coefficient profiles. The neutral density profiles simulated by PROTEUS and C17 model are shown in Fig. 5. PROTEUS and C17 model are in good agreement except for small differences for O3, OH, HO2 and H2O2. Those differences could be due to the difference in the photo-absorption and dissociation cross sections used in the two models.
Application of PROTEUS to the Martian atmosphere. Vertical profiles of neutral density simulated by PROTEUS (solid) and one-dimensional Martian photochemical model by Chaffin et al. (2017) (dashed). The same boundary conditions, chemical reactions and their rate coefficient, binary and eddy diffusion coefficients, and temperature profile, were used in both simulations for validation
Jupiter
For the application to the Jovian atmosphere, parameters of Jupiter and its orbit are implemented into PROTEUS; The mean distance between Jupiter and the sun is \({r}_{m}\)=5.2 AU, the eccentricity \(e\), the solar longitude at perihelion \({L}_{s,P}\), and tilt angle of the rotational axis \(\varepsilon\) are set to zero for simplicity, the rotational period is assumed to be the System III period related to the period of radio burst \({T}_{p}\)= 35,729.71 s, the mass of Jupiter is 1.898 × 1027 kg, and the equatorial radius of Jupiter is 71,492 km (Williams 2021; Russell et al. 2001).
Ionization cross sections of hydrogen molecule and atom, helium atom, hydrocarbon molecules (CH4, C2H2, C2H4, and C2H6) and metallic atoms (Fe, Mg, Si, and Na) implemented into PROTEUS for the application to the Jovian ionosphere are found in Appendix of Nakamura et al. (2022) and references therein.
PROTEUS has recently been applied to the Jovian ionosphere by Nakamura et al. (2022). Chemical reactions regarding hydrocarbon ion chemistry used in the simulation are described in Nakamura et al. (2022). Ion density profiles calculated by PROTEUS with 218 reactions are shown in Fig. 6. Simulated ion density profiles are in good agreement with Kim and Fox (1994), as discussed in Nakamura et al. (2022). Slight differences seen in the shape of profiles of hydrocarbon ions could result from the difference in the input density profiles of hydrocarbon molecules, which are not indicated in Kim and Fox (1994).
Conclusions
We have newly developed a flexible one-dimensional photochemical model named PROTEUS, which consists of a Python GUI program and of Fortran 90 modules. Chemical reactions can be easily implemented into Python code as a simple string format, and users can intuitively select a planet and chemical reactions to be considered in their calculation on GUI. Chemical reactions selected on GUI are automatically analyzed by a string parsing code written in Python, which will be applied to Fortran 90 modules to simulate with selected chemical reactions on a selected planet. This paper presents examples of PROTEUS application to the Martian atmosphere and the Jovian ionosphere, which are in good agreement with previous numerical models. PROTEUS can significantly save time for those who need to develop a new photochemical model; they just need to add chemical reactions in the Python code and just select them on GUI to run a new photochemical model. PROTEUS can be easily extended to other planets and satellites, e.g., Venus, Earth, Titan, and exoplanets in the future.
Availability of data and materials
The source codes of PROTEUS are available at a GitHub repository (https://github.com/PAT-TohokuUniv/PROTEUS.git).
References
Arney G, Domagal-Goldman SD, Meadows VS, Wolf ET, Schwieterman E, Charnay B, Claire M, Hébrard E, Trainer MG (2016) The pale orange Dot: the spectrum and habitability of hazy archean earth. Astrobiology 16(11):873–899. https://doi.org/10.1089/ast.2015.1422
Au JW, Cooper G, Brion CE (1993) The molecular and dissociative photoionization of ethane, propane, and n-butane: absolute oscillator strengths (10–80 eV) and breakdown pathways. Chem Phys 173:241–265. https://doi.org/10.1016/0301-0104(93)80143-w
Braam M, Palmer P, Decin L, Ridgway RJ, Zamyatina M, Mayne NJ, Sergeev DE, Abraham NL (2022) Lightning-induced chemistry on tidally-locked earth-like exoplanets. Mon Not R Astron Soc 517(2):2383–2402. https://doi.org/10.1093/mnras/stac2722
Burkholder JB, Sander SP, Abbatt J, Barker JR, Huie RE, Kolb CE, Kurylo MJ, Orkin VL, Wilmouth DM, Wine PH (2015) Chemical kinetics and photochemical data for use in atmospheric studies, evaluation No. 18, JPL Publication 15–10, Jet Propulsion Laboratory, Pasadena. https://jpldataeval.jpl.nasa.gov/pdf/JPL_Publication_15-10.pdf
Catling DC, Kasting JF (2017) Atmospheric evolution on inhabitable lifeless worlds. Cambridge University Press, Cambridge, UK
Chaffin MS, Deighan J, Schneider NM, Stewart AIF (2017) Elevated atmospheric escape of atomic hydrogen from mars induced by high-altitude water. Nat Geosci 10:174–178. https://doi.org/10.1038/ngeo2887
Chamberlin PC, Eparvier FG, Knoer V, Leise H, Pankratz A, Snow M et al (2020) The flare irradiance spectral model-version 2 (FISM2). Space Weather 18:e2020SW002588. https://doi.org/10.1029/2020SW002588
Chan WF, Cooper G, Brion CE (1993) The electronic spectrum of water in the discrete and continuum regions. absolute optical oscillator strengths for photoabsorption (6–200 eV). Chem Phys 178:387–401. https://doi.org/10.1016/0301-0104(93)85078-M
Chen H, Wolf ET, Kopparapu R, Domagal-Goldman S, Horton DE (2018) Biosignature anisotropy modeled on temperate tidally locked M-dwarf planets. Astrophys J Lett 868:L6. https://doi.org/10.3847/2041-8213/aaedb2
Chung C-Y, Chew EP, Cheng B-M, Bahou M, Lee Y-P (2001) Temperature dependence of absorption cross-section of H2O, HDO, and D2O in the spectral region 140–193 nm, nuclear instruments and methods in physics research section A: accelerators, spectrometers, detectors and associated equipment, 467–468. Part 2:1572–1576. https://doi.org/10.1016/S0168-9002(01)00762-8
Cook GR, Metzger PH, Ogawa M (1968) Photoionization and absorption coefficients of N2O. J Opt Soc Am 58:129–136. https://doi.org/10.1364/JOSA.58.000129
Cooke GJ, Marsh DR, Walsh C, Rugheimer S, Villanueva GL (2023) Variability due to climate and chemistry in observations of oxygenated earth-analogue exoplanets. Mon Not R Astron Soc 518(1):206–219. https://doi.org/10.1093/mnras/stac2604
Damian V, Sandu A, Damian M, Potra F, Carmichael GR (2002) The kinetic preprocessor KPP—a software environment for solving chemical kinetics. Comput Chem Eng 26(11):1567–1579. https://doi.org/10.1016/S0098-1354(02)00128-X
Dotan I, Hierl PM, Morris RA, Viggiano AA (1997) Rate constants for the reactions of N+ and N2+ with O2 as a function of temperature (300–1800 K). Int J Mass Spectrom Ion Proc 167(168):223–230. https://doi.org/10.1016/S0168-1176(97)00077-3
Fox JL, Sung KY (2001) Solar activity variations of the Venus thermosphere/ionosphere. J Geophys Res 106(A10):21305–21335. https://doi.org/10.1029/2001JA000069
Gorshelev V, Serdyuchenko A, Weber M, Chehade W, Burrows JP (2014) High spectral resolution ozone absorption cross-sections—Part 1: measurements, data analysis and comparison with previous measurements around 293 K. Atmos Meas Tech 7(609–624):2014. https://doi.org/10.5194/amt-7-609-2014
Grenfell JL, Gebauer S, Godolt M, Palczynski K, Rauer H, Stock J, von Paris P, Lehmann R, Selsis F (2013) Potential biosignatures in super-earth atmospheres II. photochemical responses. Astrobiology 13(5):415–438. https://doi.org/10.1089/ast.2012.0926
Gürtler P, Saile V, Koch EE (1977) Rydberg series in the absorption spectra of H2O and D2O in the vacuum ultraviolet. Chem Phys Lett 51:386–391. https://doi.org/10.1016/0009-2614(77)80427-2
Hitchcock AP, Brion CE, van der Wiel MJ (1980) Absolute oscillator-strengths for valence-shell ionic photofragmentation of N2O and CO2 (8–75 eV). Chem Phys 45:461–478. https://doi.org/10.1016/0301-0104(80)87015-7
Holland DMP, Shaw DA, McSweeney SM, MacDonald MA, Hopkirk A, Hayes MA (1993) A study of the absolute photoabsorption, photoionization and photodissociation cross sections and the photoionization quantum efficiency of oxygen from the ionization threshold to 490 Å. Chem Phys 173(2):315–331. https://doi.org/10.1016/0301-0104(93)80148-3
Huebner WF, Mukherjee J (2015) Photoionization and photodissociation rates in solar and blackbody radiation fields. Planet Space Sci 106:11–45. https://doi.org/10.1016/j.pss.2014.11.022
Huestis DL, Berkowitz J (2011) Critical evaluation of the photoabsorption cross section of CO2 from 0.125 to 201.6 nm at room temperature advances in geosciences. Singapore, World scientific. https://doi.org/10.1142/9789814355377_0018
Huffman RE (1969) Absorption cross-sections of atmospheric gases for use in aeronomy. Can J Chem 47(10):1823–1834. https://doi.org/10.1139/v69-298
Ibuki T, Cooper G, Brion CE (1989) Absolute dipole oscillator strength for photoabsorption and the molecular and dissociative photoionization of ethylene. Chem Phys 129:295–309. https://doi.org/10.1016/0301-0104(89)85002-5
Johnston HS, Chang S-G, Whitten G (1974) Photolysis of nitric acid vapor. J Phys Chem 78:1–7. https://doi.org/10.1021/j100594a001
Johnston HS, Davis HF, Lee YT (1996) NO3 photolysis product channels: quantum yields from observed energy thresholds. J Phys Chem 100:4713–4723. https://doi.org/10.1021/jp952692x
Kasting JF, Liu SC, Donahue TM (1979) Oxygen levels in the prebiological atmosphere. J Geophys Res 84(C6):3097–3107. https://doi.org/10.1029/JC084iC06p03097
Keller-Rudek H, Moortgat GK, Sander R, Sörensen R (2013) The MPI-Mainz UV/VIS spectral atlas of gaseous molecules of atmospheric interest. Earth Syst Sci Data 5:365–373. https://doi.org/10.5194/essd-5-365-2013
Kim YH, Fox JL (1994) The chemistry of hydrocarbon ions in the Jovian ionosphere. Icarus 112:310–325. https://doi.org/10.1006/icar.1994.1186
Krasnopolsky VA (2009) A photochemical model of Titan’s atmosphere and ionosphere. Icarus 201(1):226–256. https://doi.org/10.1016/j.icarus.2008.12.038
Krasnopolsky VA (2012) A photochemical model for the venus atmosphere at 47–112km. Icarus 218(1):230–246. https://doi.org/10.1016/j.icarus.2011.11.012
Lee P (1955) Photodissociation and photoionization of oxygen (O2) as inferred from measured absorption coefficients. J Opt Soc Am 45:703–709. https://doi.org/10.1364/JOSA.45.000703
Lu H-C, Chen K-K, Chen H-F, Cheng B-M, Ogilvie JF (2010) Absorption cross section of molecular oxygen in the transition E3Σu-, v = 0–X3Σg-, v = 0 at 38 K. Astronom Astrophys 520(A19):1–4. https://doi.org/10.1051/0004-6361/201013998
Lustig-Yaeger J, Meadows VS, Lincowski AP (2019) The detectability and characterization of the TRAPPIST-1 exoplanet atmospheres with JWST. Astron J 158:27. https://doi.org/10.3847/1538-3881/ab21e0
Margitan JJ, Watson RT (1982) Kinetics of the reaction of hydroxyl radicals with nitric acid. J Phys Chem 1982(86):3819–3824. https://doi.org/10.1021/j100216a022
Matsumi Y, Comes FJ, Hancock G, Hofzumahaus A, Hynes AJ, Kawasaki M, Ravishankara AR (2002) Quantum yields for production of O(1D) in the ultraviolet photolysis of ozone: recommendation based on evaluation of laboratory data. J Geophys Res 107(D3):ACH1-1-ACH1-12. https://doi.org/10.1029/2001JD000510
Meller R, Moortgat GK (2000) Temperature dependence of the absorption cross sections of formaldehyde between 223 and 323 K in the wavelength range 225–375 nm. J Geophys Res 105(D6):7089–7101. https://doi.org/10.1029/1999JD901074
Minschwaner K, Anderson GP, Hall LA, Yoshino K (1992) Polynomial coefficients for calculating O2 Schumann-Runge cross sections at 0.5 cm-1 resolution. J Geophys Res 97(D9):10103–10108. https://doi.org/10.1029/92JD00661
Mota R, Parafita R, Giuliani A, Hubin-Franskin M-J, Lourenço JMC, Garcia G, Hoffmann SV, Mason MJ, Ribeiro PA, Raposo M, Limão-Vieira P (2005) Water VUV electronic state spectroscopy by synchrotron radiation. Chem Phys Lett 416:152–159. https://doi.org/10.1016/j.cplett.2005.09.073
Nair H, Allen M, Anbar AD, Yung YL, Clancy RT (1994) A photochemical model of the martian atmosphere. Icarus 111(1):124–150. https://doi.org/10.1006/icar.1994.1137
Nakamura Y, Terada K, Tao C, Terada N, Kasaba Y, Leblanc F et al (2022) Effect of meteoric ions on ionospheric conductance at Jupiter. J Geophys Res: Space Phys 127:e2022JA030312. https://doi.org/10.1029/2022JA030312
Ogawa S, Ogawa M (1975) Absorption cross sections of O2(a1Δg) and O2(X3Σg-) in the region from 1087 to 1700 Å". Can J Phys 53:1845–1852. https://doi.org/10.1139/p75-236
Osborne BA, Marston G, Kaminski L, Jones NC, Gingell JM, Mason N, Walker IC, Delwiche J, Hubin-Franskin M-J (2000) Vacuum ultraviolet spectrum of dinitrogen pentoxide. J Quant Spectrosc Radiat Transfer 64:67–74. https://doi.org/10.1016/S0022-4073(99)00104-1
Patel MR, Zarnecki JC, Catling DC (2002) Ultraviolet radiation on the surface of mars and the beagle 2 UV sensor. Planet Space Sci 50(9):915–927. https://doi.org/10.1016/S0032-0633(02)00067-3
Pavlov AV (2014) Photochemistry of Ions at D-region altitudes of the ionosphere: a review. Surv Geophys 35:259–334. https://doi.org/10.1007/s10712-013-9253-z
Rabalais JW, McDonald JM, Scherr V, McGlynn SP (1971) Electronic spectroscopy of isoelectronic molecules. II. Linear triatomic groupings containing sixteen valence electrons. Chem Rev 71:73–108. https://doi.org/10.1021/cr60269a004
Ranjan S, Schwieterman EW, Harman C, Fateev A, Sousa-Silva C, Seager S, Hu R (2020) Photochemistry of anoxic abiotic habitable planet atmospheres: impact of new H2O cross-sections. Astrophys J 896:148. https://doi.org/10.3847/1538-4357/ab9363
Ren C, ManKenzie AR (2007) Closed-form approximations to the error and complementary error functions and their applications in atmospheric science. Atmos Sci Lett 8:70–73. https://doi.org/10.1002/asl.154
Richards PG, Fennelly JA, Torr DG (1994) EUVAC: a solar EUV flux model for aeronomic calculations. J Geophys Res 99(A5):8981–8992. https://doi.org/10.1029/94JA00518
Richards PG, Woods TN, Peterson WK (2006) HEUVAC: a new high resolution solar EUV proxy model. Adv Space Res 37(2):315–322. https://doi.org/10.1016/j.asr.2005.06.031
Roldin P, Ehn M, Kurtén T et al (2019) The role of highly oxygenated organic molecules in the boreal aerosol-cloud-climate system. Nat Commun 10:4370. https://doi.org/10.1038/s41467-019-12338-8
Ruberti M, Yun R, Gokhberg K, Kopelke S, Cederbaum LS, Tarantelli F, Averbukh V (2013) Total molecular photoionization cross-sections by algebraic diagrammatic construction-Stieltjes–Lanczos method: benchmark calculations. J Chem Phys 139:144107. https://doi.org/10.1063/1.4824431
Rugheimer S, Kaltenegger L, Zsom A, Segura A, Sasselov D (2013) Spectral fingerprints of earth-like planets around fgk stars. Astrobiology 13(3):251–269. https://doi.org/10.1089/ast.2012.0888
Russell CT, Yu ZJ, Kivelson MG (2001) The rotation period of Jupiter. Geophys Res Lett 28(10):1911–1912. https://doi.org/10.1029/2001GL012917
Schmidt JA, Johnson MS, Schinke R (2013) Carbon dioxide photolysis from 150 to 210 nm: singlet and triplet channel dynamics, UV-spectrum, and isotope effects. Proc Natl Acad Sci 110(44):17691–17696. https://doi.org/10.1073/pnas.1213083110
Schunk RW, Nagy AF (2009) Ionospheres, 2nd edn. Cambridge University Press
Schürgers M, Welge KH (1968) Absorptions koeffizient von H2O2 und N2H4 zwischen 1200 und 2000 Å, Z. Naturforsch 23a:1508–1510. https://doi.org/10.1515/zna-1968-1011
Scott GBI, Fairley DA, Milligan DB, Freeman CG, McEwan MJ (1999) Gas phase reactions of some positive ions with atomic and molecular oxygen and nitric oxide at 300 K. J Phys Chem A 103:7470–7473. https://doi.org/10.1021/jp9913719
Selwyn G, Podolske J, Johnston HS (1977) Nitrous oxide ultraviolet absorption spectrum at stratospheric temperatures. Geophys Res Lett 4:427–430. https://doi.org/10.1029/GL004i010p00427
Serdyuchenko A, Gorshelev V, Weber M, Chehade W, Burrows JP (2014) High spectral resolution ozone absorption cross-sections—Part 2: temperature dependence. Atmos Meas Tech 7:625–636. https://doi.org/10.5194/amt-7-625-2014
Smith FL III, Smith C (1972) Numerical evaluation of Chapman’s grazing incidence integral ch (X, χ). J Geophys Res 77(19):3592–3597. https://doi.org/10.1029/JA077i019p03592
Souza ACA, Srivastava SK (1996) Photoabsorption cross sections derived by the electron energy loss spectroscopy technique for ammonia, methane and acetylene in the photon energy range of 5 to 100 eV. J Braz Chem Soc 7:91–95. https://doi.org/10.5935/0103-5053.19960012
Troe J (2005) Temperature and pressure dependence of ion–molecule association and dissociation reactions: the N2+ + N2 (+ M) ⇔ N4+ (+ M) reaction. Phys Chem Chem Phys 7:1560–1567. https://doi.org/10.1039/B417945P
Turnipseed AA, Vaghjiani GL, Thompson JE, Ravishankara AR (1992) Photodissociation of HNO3 at 193, 222, and 248 nm: products and quantum yields. J Chem Phys 1992(96):5887–5895. https://doi.org/10.1063/1.462685
Vandaele AC, Hermans C, Simon PC, Carleer M, Colins R, Fally S, Mérienne MF, Jenouvrier A, Coquart B (1998) Measurements of the NO2 absorption cross-sections from 42000 cm-1 to 10000 cm-1 (238–1000 nm) at 220 K and 294 K. J Quant Spectrosc Radiat Transfer 59:171–184. https://doi.org/10.1016/S0022-4073(97)00168-4
Verner DA, Yakovlev DG, Band IM, Trzhaskovskaya MB (1993) Subshell photoionization cross sections and ionization energies of atoms and ions from He to Zn. At Data Nucl Data Tables 55(2):233–280. https://doi.org/10.1006/adnd.1993.1022
Verronen PT, Andersson ME, Marsh DR, Kovács T, Plane JMC (2016) WACCM-D—whole atmosphere community climate model with D-region ion chemistry. J Adv Model Earth Syst 8:954–975. https://doi.org/10.1002/2015MS000592
Wayne RP, Barnes I, Burrows JP, Canosa-Mas CE, Hjorth J, Le Bras G, Moortgat GK, Perner D, Poulet G, Restelli G, Sidebottom H (1991) The nitrate radical: physics, chemistry, and the atmosphere. Atmos Environ 25A:1–203. https://doi.org/10.1016/0960-1686(91)90192-A
Williams, D. (2021). Planetary Fact Sheet, NASA Goddard Space Flight Center. https://nssdc.gsfc.nasa.gov/planetary/factsheet/. Accessed 16 Oct 2022.
Woods TN, Chamberlin PC, Harder JW, Hock RA, Snow M, Eparvier FG, Fontenla J, McClintock WE, Richard EC (2009) Solar irradiance reference spectra (SIRS) for the 2008 whole heliosphere interval (WHI). Geophys Res Lett 36:L01101. https://doi.org/10.1029/2008GL036373
Yoshida T, Aoki S, Ueno Y, Terada N, Nakamura Y, Shiobara K, Yoshida N, Nakagawa H, Sakai S, Koyama S (2023) Strong depletion of 13C in CO induced by photolysis of CO2 in the martian atmosphere calculated by a photochemical model. Planet Sci J 4:53. https://doi.org/10.3847/PSJ/acc030
Yoshino K, Esmond JR, Cheung AS-C, Freeman DE, Parkinson WH (1992) High resolution absorption cross sections in the transmission window region of the Schumann–Runge bands and Herzberg continuum of O2. Planet Space Sci 40(2–3):185–192. https://doi.org/10.1016/0032-0633(92)90056-T
Yoshino K, Esmond JR, Parkinson WH, Ito K, Matsui T (1996) Absorption cross section measurements of water vapor in the wavelength region 120 to 188 nm. Chem Phys 211:387–391. https://doi.org/10.1016/0301-0104(96)00210-8
Yoshino K, Esmond JR, Parkinson WH, Ito K, Matsui T (1997) Absorption cross section measurements of water vapor in the wavelength region 120 nm to 188 nm (Chem. Phys. 211 (1996) 387–391). Chem Phys 215:429–430. https://doi.org/10.1016/s0301-0104(96)00381-3
Yoshino K, Parkinson WH, Ito K, Matsui T (2005) Absolute absorption cross-section measurements of Schumann-Runge continuum of O2 at 90 and 295 K. J Mol Spectrosc 229:238–243. https://doi.org/10.1016/j.jms.2004.08.020
Zahnle K, Claire M, Catling D (2006) The loss of mass-independent fractionation in sulfur due to a palaeoproterozoic collapse of atmospheric methane. Geobiology 4:271–283. https://doi.org/10.1111/j.1472-4669.2006.00085.x
Zelikoff M, Watanabe K, Inn ECY (1953) Absorption coefficients of gases in the vacuum ultraviolet. Part II. nitrous oxide. J Chem Phys 21:1643–1647. https://doi.org/10.1063/1.1698636
Acknowledgements
This work is supported by the International Joint Graduate Program in Earth and Environmental Sciences, Tohoku University (GP-EES). YN was supported by JSPS KAKENHI Grant Number JP22KJ0280. TY was also supported by JSPS KAKENHI Grant Numbers JP23KJ0093, JP23H04645, and JP22KK0044. SS was supported by JSPS KAKENHI Grant Number JP22K03695. HK was supported by JSPS KAKENHI Grant Number JP23KJ0201. SK was supported by JSPS KAKENHI Grant Number JP22KJ0314. NT was supported by JSPS KAKENHI Grant Numbers JP18H05439, JP18KK0093, JP19H00707, JP20H00192, and JP22H00164.
Funding
YN is supported by JSPS KAKENHI Grant Number JP22J14954.
Author information
Authors and Affiliations
Contributions
YN conceptualized PROTEUS and led its whole part of the development and validation. NT also contributed to the conceptualization and supervised the development. SK contributed to the development of a part of GUI and the implementation of cross sections. TY and HK developed a part of radiation transport and the implementation of cross sections. KT implemented chemical reactions and validated the application of PROTEUS to the Martian atmosphere. TK, AK, IM, SS, YS, and MK provided suggestions for the concept, structure, and operation of PROTEUS. FL checked and revised the manuscript.
Corresponding author
Ethics declarations
Ethics approval and consent to participate
Not applicable.
Consent for publication
Not applicable.
Competing interests
Not applicable.
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/.
About this article
Cite this article
Nakamura, Y., Terada, N., Koyama, S. et al. Photochemical and radiation transport model for extensive use (PROTEUS). Earth Planets Space 75, 140 (2023). https://doi.org/10.1186/s40623-023-01881-w
Received:
Accepted:
Published:
DOI: https://doi.org/10.1186/s40623-023-01881-w
Keywords
- Photochemical model
- Graphical user interface
- PROTEUS