What are the differences between various Fortran compilers for Windows?
I see many Fortran compilers available for Windows:
- NAG
- Absoft 开发者_StackOverflow
- Portland Group
- Lahey
- Intel
- OpenWatcom (F77 only)
- Silverfrost FTN95
- Pathscale
- GNU/GCC
- GnuFortran
If I've missed any, feel free to edit this post.
I'd like to use at least Fortran 95, and possibly Fortran 2003. What are the differences among the compilers above?
(GCC: Generic front-end
GnuFortran: Fortran front-end)If I've missed any, feel free to edit this post.
You definitely missed GNU Fortran compiler (for Windows you can get binaries from this site).
I'd like to use at least Fortran 95, and possibly Fortran 2003.
Just to alert you from the very beginning - forget about full Fortran 2003 support. Fortran 2003 status.
What are the differences among the compilers above?
Different prices, different platform (OS) support, different list of extensions to the standard language, different (empty) list of supported Fortran 2003 features, some additional features (i.e., Portland Group has special CUDA compiler, different optimization capabilities.
Fortran Compiler Comparisons.
As with other kinds of software the main differences would be;
- their development status in regards to Fortran standard support
- support from dev. and support crew (in this regard I've been very satisfied with Intel's) at my old workspace ... their forum is a great place for seeking advice, and their crew is very helpful
- price ...
In the end, when choosing a compiler, it most often comes down to what compiler line you used on present codebase (for example - MS Powerstation -> Digital's -> Compaq's Visual Fortran -> Intel's ...). Apart from the standard almost all compilers come with various custom extensions of their own, graphical libraries and so on, and this often is the choosing factor.
I'd like to use at least Fortran 95, and possibly Fortran 2003. What are the differences among the compilers above?
Fortran 95 is supported by all of them, I think (not having the time to check it now, but fairly certain), and a lot of them is quite good on supporting F2008 features. However, F2008 is a minor standard upgrade to F2003, which was a major standard upgrade, and so a lot of them is still not supporting all F2003 features (it will be some time yet before they do that, btw). For example, Intel's as of recent started claiming support for co-arrays, a lot awaited feature of many users.
Therefore, at current there is no F2003 (apart from Cray's maybe, but they're not available on Windows platform) standard compilant compiler, and certanly no F2008 standard compilant compiler since they would have to have full support for 2003 and 2008 to be able to claim that. It is a little complicated story to go in now. However, in the one @kemiisto gave and there are others as well, you can check for individual features you need and based on that choose which compiler supoorts your demands.
Hope some of this makes sense.
精彩评论