Re: fortran 2003 compiler



Hi,

On Feb 27, 4:01 pm, "nobat" <sk.no...@xxxxxxxxx> wrote:
The worst part is that "Compiler Companies" don't have any public
roadmap/timeframe for implementation of the ISO standard.

I think there are two reasons: One is that implementing Fortran 2003
is a major revision and it is hard to predict how long it will take
until everything is implemented. The other is that they don't want to
make commitments which they cannot fulfil and they don't want to
release precious (?) internal business information (what ever is meant
by this). Besides, I have seen so many deadlines which were shifted,
and shifted, and shifted again that I don't see any point in
publishing time frames. For some features, however, one can say that
they are planned for the next release (especially if they are already
implemented in the developer version).


This lack of public commitment makes the things complicated: When you
write a development/implementation plan, you don't know whether to
design your software using "a special feature of Fortran 2003 which is
an ISO standard or not?"

Well, the decision is easy: If you only target few systems, see what
your compiler supports. If you want to support most systems, stick to
Fortran 90/95 which essentially all compiler support. For selected
Fortran 2003 features, check whether enough compiler support it.

I think all Fortran compiler vendors to plan to fully support Fortran
2003, it only takes time. And sometimes, other features might be
implemented first due to popular demand. I think submodules (which
exists only as technical report (TR) and is not part of F2003) will be
implemented in many compilers before they fully support Fortran 2003.
(Currently, however, no compiler support submodules -- to my
knowledge.)

For my projects, I usually stick to Fortran 90/95; for my smaller
utility programs I use the Fortran 2003 command-line support (which
can be mimicked by the f2kcli module on most F77/f90 compilers - or
simply commented out). An alternative is to enable the support of
certain features based on ./configure tests.

Note that most compilers support more or less the same parts of the
Fortran 2003 standard: Command line support, volatile/import/value and
allocatable compounds are supported by a lot of compilers; IEEE and
ISO C binding is coming but not yet widely supported. The object-
orientated stuff will take longer.

and ask them "excuse me can you let me know whether polymorphic types
(as an example) will be implemented in 2007 or 2008"

For some projects such as gfortran it depends on interest of a
developer (all do it in their spare time); their interest can be
directed by popular demand and by the number of other compilers which
support this feature. (Popular demand and many competing compilers
which support a given feature also speeds up the development for
commercial compilers.)

Note that other things besides the full coverage of Fortran 2003 are
also important: Generating correct code, accepting all valid Fortran
90/95 codes, and producing good warnings/errors is probably ranked
higher by most users. For several higher speed of the generated code
is also more important. And some users even prefer having legacy
support such %VAL() or Cray pointers to Fortran 2003 as there exists
tons of code which uses these extensions.

If you want to have polymorphic types, you are free to implement it in
gfortran yourself. Alternatively, if you finding a student who wants
to it as as Google Summer of Code project [student application
deadline March 24], it would also work. (Actually, if someone else
finds a student who want to participate at Google's Summer of Code,
feel free to direct him to the GNU Fortran compiler. Especially
regarding Fortran 2003 there are many projects possible.)

Tobias

PS: In terms of features, user code actually also develops quite
slowly. I was recently looking for code which uses ISO C Binding to
test the support of Bind(C) in gfortran [not yet in the 4.3 developer
version, but only in the fortran-experiments branch]. However, I could
only find two programs which actually use it: CP2K and F03GL. If
someone has some Bind(C) code, I'm interested (either in testing it or
in receiving bugreports). If you don't want to build the code
yourself, I can also offer a x86-64 compiled binary. Note procedural
pointers are not supported by gfortran, yet.

.



Relevant Pages

  • Re: very difficult debug with ifort
    ... guarantee that two different compilers would interpret it the same way. ... beyond single precision. ... FPS 4.0 was the first Fortran 90 compiler and it had some bugs, but it was actually a 1.0 product, substantially rewritten and then the decision was made to discontinue it before it was even released so they never spent much time fixing it. ... Support the GNU GFortran Project: http://gcc.gnu.org/fortran/index.html ...
    (comp.lang.fortran)
  • Re: %LOC and %VAL availability
    ... Intel Fortran and Compaq Fortran compilers that I have (32-bit, ... See the gfortran documentation for information concerning its ... As others have pointed out before, using the C binding support is the ...
    (comp.lang.fortran)
  • Re: In the Shallow End
    ... Let Fortran do what it was designed for. ... Other languages have to add in support for the reporting of the loss of computational accuracy. ... Restarting X while an app is running won't affect that run results. ... So you think, but it was the name 'Cube' that got Apple into trouble, not the design. ...
    (comp.sys.mac.advocacy)
  • Re: Basic question on local variable
    ... Passing by "value" is available in nearly all compilers as an extension. ... It's also available in a standard form in earlier versions of Fortran. ... Support the Original G95 Project: http://www.g95.org ... Support the GNU GFortran Project: http://gcc.gnu.org/fortran/index.html ...
    (comp.lang.fortran)
  • Re: IVF vs CVF
    ... I would paraphrase part of it as: Microsoft didn't accept ... > Fortran for a lower price than CVF. ... > necessity for a commercial compiler. ... High quality compiler, good support, free email support within ...
    (comp.lang.fortran)