by Norbert Schorghofer
This program collection contains:
- Semi-implicit one-dimensional thermal model for planetary surfaces (Crank-Nicolson with nonlinear b.c.)
- Explicit subsurface vapor diffusion and ice deposition model (1D diffusion, sublimation, adsorption)
- Long-term ice evolution (temperature and ice content):
- equilibrium ice table on Mars
- asynchronously coupled method for subsurface-atmosphere vapor exchange on Mars
- asynchronously coupled method for ice retreat on asteroids
- lunar ice pump (boundary-value formulation)
- 3D model of direct insolation, terrain shadowing, and terrain irradiance for airless bodies, Mars, and Mauna Kea
- Monte-Carlo model for ballistic hops in the exospheres of the Moon and Ceres
Mars/mars_thermal1d.f (main program)
Mars/flux_mars.f90
Mars/marsorbit.f90
Mars/soilthprop_mars.f90
Common/conductionQ.f90
Common/conductionT.f90
Common/grids.f90
Common/julday.for
Common/psvco2.f
Common/tridag.for
Documentation: User Guide Part 1
Mars/exper_thermal1d.f (main program)
Mars/vapordiffusioni.f
Mars/adsorption.f
Documentation: User Guide Part 2
Documentation: Schorghofer, N. & Aharonson, O. (2005) J. Geophys. Res. 110, E05003, Appendices
Mars/Misc/ (an animation for illustration)
Mars/mars_mapi.f (main program)
Mars/mars_mapii.f90 (main program)
Mars/mars_mapt.f (main program)
Mars/mars_mapi2p.f90 (main program)
Mars/jsub.f90
Mars/jsubv.f90
Mars/marsorbit.f90
Mars/flux_mars.f90
Mars/soilthprop_mars.f90
Common/conductionQ.f90
Common/conductionT.f90
Common/grids.f90
Common/julday.for
Common/psv.f
Common/psvco2.f
Common/tridag.for
Documentation: User Guide Section 3.1
Documentation: Schorghofer, N. & Aharonson, O. (2005) J. Geophys. Res. 110, E05003
Mars/insol_driver.f90 (main program)
Mars/tempr_driver.f90 (main program)
Mars/flux_mars.f90
Mars/generalorbit.f
Mars/soilthprop_mars.f90
Common/conductionQ.f90
Common/conductionT.f90
Common/grids.f90
Common/psvco2.f
Common/tridag.for
Mars/MilankOutput/ (surface temperatures from last 21Myr)
Mars/stabgrow_fast.f90 (main program)
Mars/exper_fast.f90 (main program)
Mars/mars_fast.f90 (main program)
Mars/fast_modules.f90
Mars/fast_subs_univ.f90
Mars/fast_subs_exper.f90
Mars/fast_subs_mars.f90
Mars/soilthprop_mars.f90
Common/conductionQ.f90
Common/conductionT.f90
Common/derivs.f90
Common/generalorbit.f
Common/grids.f90
Common/psv.f
Common/psvco2.f
Common/tridag.for
Documentation: Schorghofer, N. (2010) Icarus 208, 598-607
Asteroids/asteroid_thermal.f90 (main program)
Asteroids/oneasteroid_thermal1d.f90
Asteroids/insolonly.f90
Common/conductionQ.f90
Common/flux_noatm.f90
Common/generalorbit.f
Common/grids.f90
Common/tridag.for
Documentation: User Guide Part 1
Asteroids/asteroid_fast1.f90 (main program)
Asteroids/asteroid_fast2.f90 (main program)
Asteroids/fast_modules_asteroid.f90
Asteroids/fast_subs_asteroid1.f90
Asteroids/fast_subs_asteroid2.f90
Asteroids/impactstirring.f90
Asteroids/common_subs.f90
Asteroids/sphere1d_implicit.f90 (main program)
Common/conductionQ.f90
Common/derivs.f90
Common/flux_noatm.f90
Common/generalorbit.f
Common/grids.f90
Common/psv.f
Common/ran2.for
Common/tridag.for
Documentation: Schorghofer, N. (2016) Icarus 276, 88-95
Lunar/oscidea1.f90 (main program)
Lunar/oscidea_subs.f90
Lunar/subl_h2o.f90
Documentation: User Guide Section 3.3
Documentation: Schorghofer, N. & Aharonson, O. (2014) ApJ 788, 169
EarthAnalogs/insol3d_earth.f90 (main program)
EarthAnalogs/insol_flat.f90 (simple main program)
EarthAnalogs/mk_atmosphere.f90
EarthAnalogs/sunpos.f90
EarthAnalogs/filemanager.f90
Common/flux_noatm.f90
Topo3D/topo3d_modules.f90
Topo3D/topo3d_common.f90
Topo3D/topo3d_subs.f90
Documentation: User Guide Sections 4.1, 5.1, 5.3-5.7
Topo3D/shadows.f90 (main program)
Topo3D/fieldofviews.f90 (main program)
Topo3D/cratersQ_equilbr.f90 (main program)
Topo3D/cratersQ_moon.f90 (main program)
Topo3D/cratersQ_mars.f90 (main program)
Topo3D/cratersQ_mars_parallel.f90 (main program)
Topo3D/cratersQ_mars_full.f90 (main program)
Topo3D/insol3d_mars.f90 (main program)
Topo3D/filemanager.f90
Topo3D/topo3d_modules.f90
Topo3D/topo3d_common.f90
Topo3D/topo3d_geometry.f90
Topo3D/shadow_subs.f90
Topo3D/fieldofview_subs.f90
Topo3D/topo3d_subs.f90
Topo3D/topo3d_subs_mars.f90
Topo3D/multigrid.f90
Topo3D/fieldproperties.f90 (main program)
Topo3D/hpsort.for
Topo3D/makegaussian.c
Common/conductionQ.f90
Common/conductionQ2.f90
Common/conductionT2.f90
Common/flux_noatm.f90
Common/grids.f90
Common/julday.for
Common/tridag.for
Mars/flux_mars.f90
Mars/marsorbit.f90
Documentation: User Guide Part 5
Exosphere/moon_exo.f90 (main program)
Exosphere/ceres_exo.f90 (main program)
Exosphere/body.f90
Exosphere/montecarlo.f90
Exosphere/geogrid.f90
Exosphere/geogrid_D.f90
Exosphere/subl_subs.f90
Exosphere/gasdev.for
Common/ran2.for
Documentation: User Guide Part 6
NOTE: Third party source code from Numerical Recipes is covered by a separate copyright. These are files ending with .for. A few code snippets from other sources are also used, as documented in the source code.
2019: Thanks to Sam Potter for comments that helped me speed up the view factor calculations
Mar 2016: Thanks to Lior Rubanenko for a bug report in cratersQ_*
2010, 2005: Thanks to Oded Aharonson for improvements on mars_mapi2p and a better treatment of the frost/no-frost surface boundary condition.
2006: Troy Hudson discovered a grid-point offset in conductionT and conductionQ, which has been corrected.
2005: Thanks to Mischa Kreslavsky for providing formulas for energy balance on a planar 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.
2001: Samar Khatiwala invented an elegant implementation of the upper radiation boundary condition for the Crank-Nicolson method.
SUPPORT: This code development was supported mainly by NASA, and in smaller parts by Caltech and the University of Hawaii. Undoubtedly, some parts were written in my spare time.