Links Pages

Overview


Past and present affiliations

Scientific societies

Universities


General purpose

Earth and planetary science


Scientific computing subsets
Programming manuals
Other programming tools
Mac OS X computing
Writing and figure making
Seismological tools


Web design

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.