Code Collection

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

ChangeLog.txt

Acknowledgements

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