Collection of codes
Collection of codes
This is a list of various computer codes that I have developed. They are written either with Fortran 95 programming language, or for Mathematica software. All of the codes are free to use or distribute, but please mention source*Collection of codes if publishing something using these codes.
Code tree
Download the whole code tree, or separate branches. The tree and branches include GNU Makefile tools for automatic compiling. Codes should compile with gfortran compiler which is used by default in the makefiles, but other choices can be done by editing the makefile.
- Utilities
Collection of my utility modules. Includes tools for input parsing, error handling, Fortran 95 hashtable and quicksort implementations and other math-related utilities. Individual modules in the collection are listed next. All the individual files will produce a Fortran module file, and the object files are collected to a library in AP_library.
Module for unified error messaging. Fortran 95 lacks proper error handling and this module tries to overcome that problem.
Implements recursive in-place quicksort and list partition algorithms in Fortran 95. Implementation works with integer and real arrays, as well as with integer and real tables.
Collected general-use math and related algorithms, e.g. random number generation, list interpolation and some 3-d vector operations.
Provides versatile hashtable to store various datatypes in Fortran 95. Can store, modify and read values from key/value pairs, where key is a string, and value can have different datatypes.
Provides input parser in Fortran 95. Can be used to set default values for input parameters, automatically process command line or input file parameters, and get their values.
Collection of utility modules, written by Paul van Delst. These are redistributed here because they are used in many of my modules, original source is here.
- Programs
Command line tool for converting different polygon mesh and voxel file formats. Currently, possible input formats are OBJ (Wavefront), MRT (Macke Ray Tracing format), and possible output formats are POV (POV-Ray), ADD (Adda voxel format), OBJ (Wavefront), and NFO (general information about the structure). or - Scattering at interface (
This Mathematica package implements Snell's law and Fresnel coefficients for both non-absorbing media and homogeneous plane wave and for absorbing media and inhomogeneous plane wave in the case of planar interface between two semi-infinite media. , and , or ) - Cubic spline ( , , or ). Mathematica package that implements natural, periodic and clamped cubic splines.
Documentation tree
Doctree gives further information on the packages, including module/variable/type/interface/function/subroutine names and descriptions.
- Utilities
- Programs
References
If you use these codes, please make reference to:
A. Penttilä, Collection of codes, http://wiki.helsinki.fi/display/~aipentti@helsinki.fi/Collection+of+codes (2012).
or
A. Penttilä, [Fortran 95/Mathematica] implementation of [code name] (computer code), http://wiki.helsinki.fi/display/~aipentti@helsinki.fi/Collection+of+codes (2012).