This program collection contains a semi-implicit one-dimensional thermal model for planetary surfaces, an explicit subsurface vapor diffusion and deposition model, models for the equilibrium ice table on Mars, a fast method for subsurface-atmosphere vapor exchange for Mars, a Monte-Carlo model for ballistic hops on the lunar surface, and a 3D model of shadowing, illumination, and scattering.
Common/
Asteroid/
Mars/
Exosphere/
Craters/
OldVersions/
I. Mars Subsurface Ice Model (M-SIM) | ||
Mars Thermal Model | ||
Mars/flux.f | Insolation on horizontal or sloped surface with a poor man's Mars atmosphere | |
Mars/marsorbit.f | position of the sun as seen from Mars; data from Allison & McEwen (2000) | |
Mars/mars_thermal1d.f | main program; 1D diffusion of temperature for Mars with seasonal CO2 frost cover | |
Common/conductionQ.f | 1D thermal conduction with heterogeneous thermal properties and flux/radiation boundary condition, semi-implicit solver | |
Common/conductionT.f | 1D thermal conduction with heterogeneous thermal properties and temperature boundary condition, semi-implicit solver | |
Common/tridag.for | from Numerical Recipes (©), without stop and pause statements, NMAX=1000 | |
Common/grids.f | creates appropriate 1D grids, calculates thermal properties of soil with ice | |
Common/psv.f | vapor pressure of H2O | |
Common/psvco2.f | vapor pressure of CO2 | |
Common/julday.for | from Numerical Recipes (©), but without the pause statement | |
Mars/input.par | Example input file for mars_thermal1d.f | |
Documentation: | Common/modeldescription.pdf (Part 1) | |
Vapor Diffusion Model | ||
Mars/vapordiffusioni.f | Diffusion of water vapor with phase transitions on irregular grid, explicit solver, (adsorption is turned off) | |
Mars/adsorption.f | amount of adsorbed H2O and more | |
Mars/exper_thermal1d.f | main program; 1D diffusion of temperature and optionally also vapor with prescribed surface temperature | |
Mars/exper.par | Example input file for exper_thermal1d.f | |
Documentation: | Common/modeldescription.pdf (Part 2) | |
Documentation: | Schorghofer, N. & Aharonson, O. (2005) J. Geophys. Res. 110, E05003, Appendices | |
Equilibrium Ice Table | ||
Mars/jsub.f | net flux between ice table and surface, includes thermal model | |
Mars/jsubv.f90 | vectorized version of jsub, includes emission from one surface to another | |
Mars/mars_mapi.f | main program; determines equilibrium ice table depth for a list of locations; contains leftover Numerical Recipes code (©) | |
Mars/mars_mapt2.f | main program; calls jsub for a list of locations | |
Mars/mars_mapiqh2v.f90 | main program; version of mars_mapi that uses jsubv and slope coupling, configured for cluster | |
Mars/marsorbit.f Common/conductionQ.f Common/conductionT.f Common/tridag.for Common/grids.f Common/julday.for Common/psv.f Common/psvco2.f |
||
Mars/mapgrid.dat | Example input file for mars_mapi.f | |
Fast Method for Subsurface Ice Dynamics | ||
Mars/fast_modules.f90 | numerically accelerated routines for growth and depletion of subsurfac ice, Fortran modules | |
Mars/fast_subs_univ.f90 | numerically accelerated routines for growth and depletion of subsurface ice, general subroutines | |
Mars/fast_subs_exper.f90 | numerically accelerated routines for growth and depletion of subsurface ice | |
Mars/fast_subs_mars.f90 | numerically accelerated routines for growth and depletion of subsurface ice | |
Mars/stabgrow_fast.f90 | main program; numerically accelerated growth of pore ice | |
Mars/exper_fast.f90 | main program; numerically accelerated growth and depletion of subsurface ice | |
Mars/mars_fast.f90 | main program; numerically accelerated growth and depletion of subsurface ice | |
Common/derivs.f90 | first and second derivatives on irregular grid | |
Common/conductionQ.f Common/conductionT.f Common/tridag.for Common/grids.f Common/generalorbit.f Common/psv.f Common/psvco2.f |
||
Mars/input_fast.par | Example input file for stabgrow_fast.f90 and exper_fast.f90 | |
Mars/lats.ph | Example input file for mars_fast.f90 | |
Documentation: | Schorghofer, N. (2010) Icarus 208, 598-607 | |
II. Other Models for Planetary Surfaces | ||
Basic Thermal Model for Asteroids | ||
Common/flux_noatm.f90 | Insolation on horizontal or sloped surface without atmosphere | |
Common/generalorbit.f | distance, longitude, and declination of the sun from orbital elements | |
Asteroid/asteroid_thermal.f90 | main program | |
Asteroid/oneasteroid_thermal1d.f90 | 1D diffusion of temperture for airless bodies | |
Asteroid/insolonly.f90 | insolation only; very simple | |
Common/conductionQ.f Common/tridag.for Common/grids.f |
||
Documentation: | Common/modeldescription.pdf (Part 1) | |
Monte-Carlo Model for Surface-bounded Exosphere | ||
Exosphere/moon4.f90 | main program; event driven Monte Carlo model for ballistic hops of water molecules on the lunar surface | |
Exosphere/montecarlo.f90 | ballistic hops, event scheduler | |
Common/subl_subs.f90 | miscellaneous physical parametrizations | |
Exosphere/geogrid.f90 | everything specific to the geographic grid | |
Exosphere/geogrid_D.f90 | a different geographic grid | |
Common/gasdev.for | Gaussian probability distribution, Numerical Recipes(©), change real to real(8) | |
Common/ran2.for | random number generator, Numerical Recipes(©), change real to real(8) | |
Documentation: | None | |
Shadowing and illumination | ||
Craters/shadows.f90 | main program; calculates horizons | |
Craters/fieldofviews.f90 | main program; calculates horizons and field of views | |
Craters/cratersQ_snapshot.f90 | main program; instanteneous surface temperature with 3D shadowing and reflections | |
Craters/cratersQ_moon.f90 | main program; surface temperature with 3D shadowing and reflections | |
Craters/topos.f90 | input topography information | |
Craters/crater_modules.f90 | interface definitions | |
Craters/crater_common.f90 | common routines | |
Craters/shadow_subs.f90 | subroutines for program shadows | |
Craters/fieldofview_subs.f90 | subroutines for program fieldofviews | |
Caters/model_subs.f90 | subroutines for programs cratersQ_* | |
Common/hpsort.for | heapsort, Numerical Recipes(©), also returns array of indices | |
Craters/topo40.xyz | example input topography | |
Documentation: | None |
Aug 2015: All code is now mirrored on GitHub github.com/nschorgh/Planetary-Code-Collection
2006: Troy Hudson discovered a grid-point offset in conductionT and conductionQ, which has been corrected.
2005: Thanks to Mischa Kreslavsky for providing correct formulas for energy balance on a slope.
Many Thanks to Andy Vaught for developing an open-source Fortran 95 compiler (www.g95.org). The early versions of this code were developed with this compiler.
SUPPORT: This code development was supported by NASA, Caltech, and the University of Hawaii. Undoubtedly, some parts were written without support.
-NS