Source code overview

Here is a brief and outdated description of various files making up the code:

Filename

Description

allocate.f90

allocates memory for main arrays

calc_quantities.f90

calculates additional quantities from particle data

colours.f90

colour schemes for rendering

colourparts.f90

colours particles

defaults.f90

writes/reads default options to/from file

exact.f90

module handling exact solution settings

exact_densityprofiles.f90

various \(N-\)body density profiles

exact_fromfile.f90

reads an exact solution tabulated in a file

exact_mhdshock.f90

some tabulated solutions for mhd shocks

exact_polytrope.f90

exact solution for a polytrope

exact_rhoh.f90

exact relation between density and smoothing length

exact_sedov.f90

exact solution for sedov blast wave

exact_shock.f90

exact solution for hydrodynamic shocks

exact_wave.f90

exact solution for a propagating sine wave

exact_toystar.f90

exact solution for the toy star problem

exact_toystar2D.f90

exact solution for the 2D toy star problem

get_data.f90

wrapper for main data read

geometry.f90

module handling different coordinate systems

globaldata.f90

various modules containing “global” variables

interactive.f90

drives interactive mode

interpolate1D.f90

interpolation of 1D SPH data to grid using kernel

interpolate2D.f90

interpolation of 2D SPH data to grid

interpolate3D_xsec.f90

3D cross section interpolations

interpolate3D_projection.f90

3D interpolation integrated through domain

legends.f90

plots (time) legend on plot

limits.f90

sets initial plot limits and writes to/reads from limits file

menu.f90

main menu

options_data.f90

sets options relating to current data

options_limits.f90

sets options relating to plot limits

options_page.f90

sets options relating to page setup

options_particleplots.f90

sets options relating to particle plots

options_powerspec.f90

sets options for power spectrum plotting

options_render.f90

sets options for render plots

options_vector.f90

sets options for vector plots

options_xsecrotate.f90

sets options for cross sections and rotation

particleplot.f90

subroutines for particle plotting

plotstep.f90

main “backbone” of the code which drives plotting of a single timestep

read_data_dansph.f90

reads data from my format of data files

read_data_mbate.f90

reads data from Matthew Bate’s format of data files

read_data_xxx.f90

reads data from …

render.f90

takes array of pixels and plots render map/contours etc

rotate.f90

subroutines controlling rotation of particles

setpage.f90

sets up the PGPLOT page (replaces call to PGENV/PGLAB)

splash.f90

main program, handles startup/ command line reading

timestepping.f90

controls stepping through timesteps

titles.f90

reads a list of titles to be used to label each timestep

transform.f90

applies various transformations to data (log10, 1/x, etc)