Scientific computing links
Programming manuals
C function
reference
This is not actively maintained, but it's a good quick reference for
many of the standard C libraries. There's more extensive
documentation out there, but I frequently go to this site for descriptions
that are a little more clear than man pages.
HP Fortran 90
Programmer's Reference
Some of the information here is for non-standard HP extensions, so you have to
watch out, but it's a pretty good quick reference for using Fortran 90, which
in my opinion is a good language for scientific programming.
Perl.org
The authoritative Perl website, which is great for scripting.
Gnu Compiler Collection (gcc)
documentation
Manual for gcc, which is a family of
compilers that's pretty easy to get on almost
any system. gcc is standard with most linux distro's, and is included with
the Apple development tools (at least the C compiler).
Other programming tools
CVS wiki
CVS (Concurrent Versions System) is a software repository tool that makes
developing a better process. Used correctly, it makes porting to different
systems easy, as well as allowing a method of tracking changes, which is
important when you make changes that break your codes. Maybe becoming
obsolete with the advent of the newer open source tool
subversion.
GNU Scientific Library
manual
Of course there are a lot of tools available through the
GNU project, but I link this one because it
can be used to replace many functions often performed using
Numerical Recipes, which has a
copyright that technically prohibits source distribution.
LAPACK - Linear Algebra PACKage
If you find you're waiting on a code to finish that performs any sort of
linear algebra, such matrix inversion and other manipulations, LAPACK, and the
underlying BLAS operations that
support it can significantly speed up your code, particularly if you use a
binary version optimized to your machine architecture.
ratfor77 and ratfor90
These are versions of the Rational Fortran preprocessor (originally developed
by Brian Kernighan) available
from the
Stanford Exploration Project which
lets you write a more clean syntax than Fortran and then output standard
Fortran77 or Fortran90 code for use by your compiler. The Makefile for
ratfor77 is somewhat SEP-specific, and so I include the
Makefile I used on my Mac to see what changes were required.
Mac OS X computing
My OS X computing narrative
I'm attempting to document but the problems and fixes for most of the problems I run into while doing scientific computing on an intel iMac.
Fink and
MacPorts
These are package management sites which let you easily install most of the
useful open source tools out there from the Linux community.
Fink is usually my first choice, as
it can sometimes do fast binary installs.
MacPorts is a similar tool, which may
have some different packages available, but appears to always require the slow
process of building from source.
Apple
Accelerate framework
This is the architecture optimized framework that you can link into your
programs to get all the LAPACK and
BLAS routines discussed above. This
can give orders of magnitude improvement over the equivalent
Numerical Recipes subroutines
just using gcc optimization flags.
OSXplanet
Not really technically scientific computing, but a nice little port of xplanet
that lets you set up your desktop background with Earth (and other planetary)
satellite images with lots of real-time updates like cloud cover and the
day/night terminator location.
Scientific writing and figure making
LaTeX help
Documentation for LaTeX, a typesetting tool which is a standard for scientific
writing submissions.
GMT
Generic Mapping Tools is a powerful set of tools for making maps, graphs, and
many of the figures that fill up scientific journals.
The Digital Object Identifier (DOI) system
This is a handy tool to locate items for which you have a DOI number, and for
keeping links to your own publications current. Digital objects (such as
online versions of papers) have a unique identifier that always leads to its
location online, regardless of any changes in actual URL that may occur. For
example, my first published paper has a doi of 10.1029/2000GL012389, and I can
always link to its official online location with
http://dx.doi.org/10.1029/2000GL012389.
Seismological software
Seismic Analysis Code (SAC)
The venerable, yet powerful, tool for processing of seismic data. This is not
particularly user-friendly, but it can do a lot and its file format is widely
used in the seismic community. People in
IRIS member institutions can download it
here, or others can
obtain it
here. I've also got some details about my install experience
here.
Seismic Un*x
A set of seismic processing tools developed at the
Center for Wave Phenomena at
Colorado School of Mines. I
haven't used them extensively, but I got them to compile on my intel iMac
using this
Makefile.config, except for the OpenGL tools. NOTE: I had some problem
with the "make xtinstall" and "make xminstall" commands
initially, but it worked fine using "make xtremake" and "make
xmremake". The makefile I used is for a Motif libraries installed using
Fink.
The TauP toolkit
This is a very flexible seismic travel-time calculator. It has both a GUI
which is pretty easy to use, as well as command line tools useful for
exporting to other programs. It calculates travel times for arbitrarily
defined seismic phases in either built-in or specified Earth models, as well
as calculating the ray paths for each phase, including triplications. It is
one of several pieces of
software developed by the
seismology program at the
University of Sout Carolina.
Miscellaneous computing links
My "stupid unix tricks"
A collection of one-liners and scripts that I use from the command line in
various unix-like systems.

