Mars Subsurface Ice Model (M-SIM)


Preliminary collection of subroutines.

  
GroupFilenameCommentsprovides
Thermal Model flux.f Insolation on horizontal or sloped surface with a poor man's atmosphere function flux
conductionT.f 1D thermal conduction with heterogeneous thermal properties and temperature boundary condition, semi-implicit solver conductionT
conductionQ.f 1D thermal conduction with heterogeneous thermal properties and flux/radiation boundary condition, semi-implicit solver conductionQ
tridag.f from Numerical Recipes (©), without stop and pause statements, NMAX=2000tridag
tprofile.mMatlab script that compares temperature profile with analytic solution 
modeldescription.pdf Notes on Numerics (see Part 1) 
Diffusion Model vapordiffusioni.f Diffusion of water vapor with phase transitions on irregular grid, explicit solver, (adsorption is turned off)vapordiffusioni
adsorption.f amount of adsorbed H2O and moreadsorption
adsorption2
modeldescription.pdf Notes on Numerics (see Part 2) 
General Purpose marsorbit.f position of the sun as seen from Mars; data from Allison & McEwen (2000)marsorbit
generalorbit.f distance, longitude, and declination of the sun from orbital elementsgeneralorbit
psv.f equilibrium vapor pressure of H2O function psv
function frostpoint
psvco2.f equilibrium vapor pressure of CO2 function psvco2
function tfrostco2
grids.f creates appropriate 1D grids, contains several subroutines, calculates thermal properties of soil with ice setgrid
smartgrid
smartgrid_allice
soilthprop
julday.for from Numerical Recipes (©), but without the pause statementfunction julday
derivs.f90 first and second derivatives on irregular grid deriv1
deriv2_full
deriv2_coeff
deriv2
deriv2_simple
deriv1_onesided
Fast Methods for
Subsurface Ice Dynamics
jsub.f net flux between ice table and surface, includes thermal modeljsub
jsubv.f90 vectorized version of jsub, includes emission from one surface to anotherjsubv
fast_modules.f90 numerically accelerated routines for growth and depletion of subsurfac ice (under development)module miscparameters
module allinterfaces
fast_subs_univ.f90 numerically accelerated routines for growth and depletion of subsurface ice (under development), general subroutines function zint
function colint
function equildepth
depths_avmeth
function constriction
icechanges_poreonly
icechanges
assignthermalproperties
fast_subs_exper.f90 numerically accelerated routines for growth and depletion of subsurface ice (under development) icelayer_exper
ajsub_exper
module thermalmodelparam_exper
fast_subs_mars.f90 numerically accelerated routines for growth and depletion of subsurface ice (under development) icelayer_mars
ajsub_mars
module thermalmodelparam_mars
Calling Routines
and Input Files
exper_thermal1d.f 1D diffusion of temperature and optionally also vapor with prescribed surface temperature 
exper.par Example input file for exper_thermal1d.f 
mars_thermal1d.f 1D diffusion of temperature for Mars; prototype example of how to call conductionQ/T with temporary CO2 frost cover 
input.par Example input file for mars_thermal1d.f 
mars_mapi.f determines equilibrium ice table depth for a list of locations (such as the entire globe); contains leftover Numerical Recipes code (©) also
function rtbis
mapgrid.dat Example input file for mars_mapi.f 
mars_mapt2.f calls jsub for a list of locations (such as the entire globe)  
mars_mapiqh2v.f90 version of mars_mapi that uses jsubv and slope coupling, configured for cluster also
function rtbis
rtbisv
stabgrow.f90 numerically accelerated growth of pore ice (under development) also
icelayer2
ajsub2
exper_fast.f90 numerically accelerated growth and depletion of subsurface ice (under development)  
mars_fast.f90 numerically accelerated growth and depletion of subsurface ice (under development)  
makefile Example makefile; shows file dependencies 
Non Mars
(not maintained)
  advection-diffusion model for Beacon Valley, Antarctica
thermal model for asteroids

ChangeLog

Summer 2009: switched from g95/g77 to gfortran compiler.

17 Dec 2008: renamed conductionT2 to conductionT and conductionQ2 to conductionQ for convenience.

31 Oct 2008: added deriv1_onesided to derivs.f90

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).


Developer's Notes


-NS