MPI support for Fortran still exists with updates coinciding with the C/C++ updates. Intel recently released version 13 of their compiler, adding more compatibility with the Fortran 2003 and 2008 standards. The Portland Group brand of Fortran compilers are working hand-in-hand with nVidia to allow Fortran the use of the graphics cards for faster, cheaper computations.
I know several hydrodynamic codes that utilize Fortran: Athena (the original code was in C, but it was ported to F90), VH-1, Ramses, CLAWPACK (and all its derivatives, sparing only pyCLAW), VAC (And its derivatives), Pencil, Piernik and several others. Some of these have been released within the last 5 years, others a decade or so. There are many other codes written for research purposes using Fortran.
So no, Fortran is definitely not dead.
I started using Fortran 90 in 2007 as part of my Master's degree (in physics) research in the optical properties of superlattice- and Gallium-based semiconductors. Most of what I did there was translate my advisors Fortran 77 code into a more-up-to-date standardized form (i.e., eliminating
do-continue
and replacing it with do-enddo
). I moved on to my PhD program in 2009 where I started research on numerically modeling supernova remnants using the F90/95 standard for the hydrodynamic simulations. I use the Intel compiler on the cluster we have on campus.This blog will be about the things I have discovered about Fortran 90/95/03 through discussions with my C/C++ using colleagues and tips & tricks for those budding physicists who want a modern, fast, number-crunching language without the use of any ugly curly braces. You will not find any
goto
here, unless it is my complaining about seeing it elsewhere.
Comments are always welcome!
I just discovered this blog today. I agree fortran is not very loved today, but nonetheless I love it! I'm sure I'll find tons of interesting things here!
ReplyDeleteit's the "in-thing" to hate on Fortran, but the syntax is elegant and easy to learn. Physics-based codes also require multi-dimensional arrays, since the mapping from array dimension to physical space is simply too direct to not take advantage of. I remember struggling through a C-code for a 2-d array, and Fortran90 simply handled all the memory management and let me focus on the logic instead of worrying about pointing to an array of pointers - this may be extremely obvious to the "C"-men and women, but for someone who hasn't used it before, it adds another layer of complexity to the learning process.
ReplyDelete