Slashdot Mirror


FORTRAN 2003 Accepted as Standard

GraWil writes "Despite the nay sayers citing its death in 1965, the FORTRAN standards committee has now released the final FORTRAN 2003 specification. In an announcement to the comp.lang.fortran group, Michael Metcalf annouced that 'Fortran 2003 has passed its ballot with flying colours: 20 yeses, 0 noes, 8 abstains.' Strictly speaking, the 2003 and past standards are not freely available but drafts can be found online. FORTRAN 2003 is an upwardly-compatible extension of the current standard, FORTRAN 95, adding and extending support for exception handling, object-oriented programming, and improved interoperability with the C language. In other FORTRAN news, the GNU FORTRAN 95 compiler has made amazing progress over the past year. Gfortran will be part of gcc-4.0 when released (probably in 2005)."

3 of 59 comments (clear)

  1. Have they addressed any of the weirdnesses? by gowen · · Score: 5, Interesting
    Three things bug me about F95, which I use every day
    1. No standardised/portable method for handling command line parameters.
    2. Undefined behaviour for short-cutting logical ors. e.g. the behaviour of
      if(flag.and.function(var)) then...
      is undefined if flag is false and function() has side effects.
    3. The things you *can't* use parameters for (like fixing lengths in format statements) without running fpp/cpp on the code first
    4. No standardised meanings for

      real(kind=8) x

      Does that mean an 8 byte real? Or a 8 bit real? It depends on the compiler... (and yes, I know the portable solution is

      real (kind=kind(0.0d0)) x

      and the such like, but *thats* really ugly, compared to

      double precision x.


    --
    Athletic Scholarships to universities make as much sense as academic scholarships to sports teams.
  2. Re:What future programming languages will be by TeknoHog · · Score: 5, Informative
    I am first to admit I do not know the dissadvantages or advantages of it. Are there any? or is it just syntax?

    Disclaimer: I have an M.Sci in physics with a slant towards computational physics. I'm most familiar with F90 but its advantages should apply to the later revisions as well.

    Fortran is a slightly higher-level language than C. It has lots of math capabilities built-in; particularly matrix types and operations meaning good potential for parallel processing. Decent compilers can produce multiprocessor and MMX/SSE code from Fortran, and probably the equivalent on non-x86 platforms. I'm not sure if you can do this in C portably.

    Fortran has a fairly simple overall syntax where newlines matter. I found it very easy to learn, having some experience with Python and C. In some ways the syntax is rather arcane but at least it's quite clear (compared to C or Perl at least IMHO).

    Fortran does have pointers, but they are unnecessary because of other memory handling methods (namespaces or 'modules'). Dynamic memory allocation is a bit quirky IMHO, but way simpler than in C.

    The language feels well suited for physicists. It's not necessarily good for general programming, but I'd happily use it for many speed-critical sections instead of C.

    One important reason for the persistence of Fortran is the number of libraries for computational sciences, for example LAPACK. They can be included in modern Fortran programs despite being written in F77. There have been a number of attempts to make a scripting front-end for these libraries; Matlab is one of them, even though its F77 roots are not very visible.

    The common complaints about Fortran are mostly true for F77 and older revisions. F77 is a truly horrible language, and it has none of the nice features that make F90+ good for scientific computing.

    --
    Escher was the first MC and Giger invented the HR department.
  3. Re:What sectors are people using this in? by j_cavera · · Score: 5, Interesting

    The nuclear engineering communitiy is (still) standardized on F77. The reasons: 1) many great neutronics codes were written in the 60's (often for weapons research) using F77 and are still valuable today and 2) the NRC has some strange requirements concerning foward and backward compatability - almost anything from a DEC PDP-3 to a new G5 iMac can compile F77 code. Maybe someday they'll let us use F95...

    --
    #include "humorous_pop_culture_reference.h"