views:

208

answers:

3

I'm looking to do some physics computation and I'm kind of interested in exploring the fabled numerical powers of FORTRAN, but I'm not really wanting to dig through piles and piles of pages all about FORTRAN 70. Is there a good, clean, modern reference?

Thanks in advance!

A: 

I'd be doubtful that FORTRAN was the bees knees anymore in terms of numerical prowess. Add to that the fact that it's probably not used that wisely (this was meant to be "widely" but it's funnier as-is, so I'll leave it in).

I'd be looking at using a more modern language with a numerical computation package, such as Python with NumPy, C/C++ with GMP or even MatLab.

GNU has their own FORTRAN compiler, part of GCC, if you're interested. You can get directly to the documentation from this link, part of the previous linked page.

paxdiablo
Wisely? If wisdom comes with age, anybody using FORTRAN now has *got* to be wise!
Greg Hewgill
Slip-of-the-tongue or my true opinions coming out? It's hard to say.
paxdiablo
FORTRAN is still a great choice for numerical code that has to run FAST. Its array semantics enable optimizations that C compilers (that is, C89 compilers) can't touch. Plus, you can link it to C/C++ or anything else and get the best of both worlds.
Drew Hall
+4  A: 

There are several good books, alas somewhat pricey; I haven't seen them all (far from it), but it seems to me that this one is quite good if "money's no object". I don't really know what to recommend in terms of online materials, but this page points to some tutorials as well as compilers (I haven't checked out the tutorials so I don't know how good they are).

I do most of my numerical computing with Python (and numpy / scipy -- or gmpy when I want GMP for combinatorics and other advanced number theory stuff) but I don't mind turning to Fortran now and then for simple fast stuff. However, I generally use Fortran '77 for the purpose; the advanced features of Fortran '90 and beyond don't seem worth the candle to me, compared with using simple and highly optimizable F77 for some underlying algorithms (if nor already available in the above frameworks) and doing the "orchestration" &c in Python.

Alex Martelli
I'd second Alex's recommendation. But for an absolute beginner I'd also suggest the book by Ellis, Philips and Lahey. And as for those who recommend Python, Matlab and their ilk: go along to your local supercomputer centre and ask the serious computational scientists what they use to program the big machines.
High Performance Mark
@Mark, the answer to your question depends in part on what your "local supercomputer center" is. NASA, LLNL and Caltech for example do have many "serious computational scientists" (and don't forget us engineers;-) using Python (+numpy, scipy scientists like Paul Dubois, conferences such as Scipy, firms such as Enthought matter a lot here. Other fields and centers have other predilections!-)
Alex Martelli
A: 

It seems that the standard text has been updated again.
But I tend to agree with Pax - unless you have just been handed a 30 year old million line project (in which case it will be F77 if you are lucky) I would look at python+libs or something like matlab.

Martin Beckett