G95 is a stable, production Fortran 95 compiler available for multiple cpu architectures and operating systems. Innovations and optimizations continue to be worked on. Parts of the F2003 standard have been implemented in g95.


Download binaries, source and manual.

Links

Contributing Documentation
Mail Andy: andyv@firstinter.net (bugs, comments, complaints) Compiling g95 from source
G95 newsgroup on Google Screenshots
Fortran Open Directory links to compilers, tutorials, books, and code. Cool g95 things
Fortran.com products, services, and general information related to fortran. G95 Status
ISO_VARYING_STRING Module known to work with g95.
Debian packages for G95

Recent Milestones

May 18, 2008 SYNC ALL
May 17, 2007 Czech translation of manual
April 18, 2007 German translation of manual
March 14, 2007 Japanese translation of manual
March 13, 2007 French translation of manual
February 1, 2007 Russian translation of manual
November 29, 2006 Spanish translation of manual

Plan

The back end and libraries are now up for general testing on a variety of boxes and operating systems. The tarball is usually updated as the web page is. To download and install g95 on unix systems, run the following command (originally from Joost Vandevondele):
wget -O - http://ftp.g95.org/g95-x86-linux.tgz | tar xvfz -
This will create a directory named 'g95-install' in the current directory. Run (or better yet make an appropriate symbolic link) to ./g95-install/bin/i686-pc-linux-gnu-g95 in order to run g95.


July 2

Doug Cox has built some new windows builds.

Martien Hulsen sent in problem with curses that is hopefully fixed.


July 1

Harald Anlauf sent in a crash on TRANSFER() that has been fixed.

Jonathan Hogg found a problem with -fbounds-check on x86-64 that has been fixed.

Doug Cox has built some new windows builds.


June 30

Scot Breitenfeld pointed out some problems with C_PTR that have been fixed.

Over the last week and a half, I've been working steadily on enhancing the build system. No real changes should be visible from the outside, but this will make things much more reliable long-time.


June 20

Martien Hulsen pointed out a problem with THIS_IMAGES()-- it doesn't live in ISO_FORTRAN_ENV, it's a regular intrinsic. Fixed this and the same problem with NUM_IMAGES().


June 19

Doug Cox has built some new windows builds.


June 18

Al Greynolds requested a nonstandard CONVERT= specifier in OPEN statements to specify endian conversion. Legal values are 'big_endian', 'little_endian', 'native' and 'swap'.

Scot Breitenfeld sent in a problem with C_LOC that has been fixed, I think.

Doug Cox has built some new windows builds.


June 17

John Harper sent in a crash on the MERGE intrinsic that has been fixed.

Patti Michell sent in an alternate procedure for configuring mpich so that it correctly finds g95. Added to the HOWTO.


June 12

Doug Cox has built some new windows builds.

John Harper pointed out that IEEE_SUPPORT_* intrinsic functions weren't supported. Added support.

Mat Cross pointed out a problem with log10(), when calculated within g95. It was a bit off, one bit to be precise. I've got this fixed now.


June 11

Manuel Guidon sent in a crash on x86_64 that has been fixed.

Doug Cox has build some windows builds.


June 10

Matt Hauer sent in a crash on DEALLOCATE statements that has been fixed.


June 3

We're back after a disk crash. The backup that my ISP restored was apparently a little more than a month old, so I am restoring things from my own copies as well as doing some new builds.


May 28

Doug Cox has built some new windows builds.


May 27

Reinhold Bader pointed out a problem with type declarations that has been fixed, as well as a problem with intrinsic module procedures and parameters in modules

Reinhold Bader and Kristján Jónasson sent in a problem with intrinsic module procedures that has been fixed.

Roberto Dallocchio sent in a problem with logical SELECT statements that has been fixed.

Doug Cox has built some new windows builds.

James Van Buskirk contributed a number of tests of instrinsic functions that I am incorporating into the existing suite.


May 21

Things are kind of stuck with g95 at the moment, most of my build network is unavailable due to just the right router frying itself. Repairs are under way and will hopefully be finished Saturday.


May 14

Jonathan Hogg sent in another regression on x86-64 that has been fixed. Despite all the regressions, this upgrade has been relatively painless.

David Shanen reported that I didn't actually fix his problem. After some more digging, I've found and fixed the problem.

Doug Cox has built some new windows builds.

Doug has also added a Debian/Ubuntu install package. It's up on the downloads page.


May 12

Jonathan Hogg and David Shanen sent in a regression involving x86-64 array integers that has been fixed.

Doug Cox has built some new windows builds.


May 9

Jonathan Hogg and Michael Richmond reported a regression with the array-size expansion on x86-64 that has been fixed.


May 8

Finished the array kind index expansion.


May 7

Reinhold Bader pointed out a scalar/vector problem that has been fixed.


May 6

Work continues on the array index kind expansion. John's test program now works, but some other regressions have been created that I've been working on those. No new build yet.

Jean-Baptiste Faure sent in a spurious warning that has been fixed.

Bob Bauer's chocolate made some terrific fudge. I know that I wax poetic sometimes about chocolates, but I really do love it. For those curious about how big of a lardass I am, I've lost forty pounds in the last six months and have just recently left the realm of 'overweight' by BMI standards.


May 4

John Reid and others have pointed out that array indeces on 64-bit platforms were default integers. This is the result of a long misunderstanding on my part. I've changed array indeces to a integer of pointer size in the front end and most of the runtime libraries. Haven't had a chance to test it yet.

I also baked the first batch of fudge with Bob Bauer's chocolate. The chocolate came in 9.75-ounce bars, which is a lot less than the 16 ounces I usually use, but the result looks normal even without scaling the recipe down. Will taste-test it tomorrow.


May 2

Doug Cox has built some new windows builds.


May 1

Doug Cox has built some new windows builds.

John Harper relayed a problem from Simon Geard with reading complex numbers in DECIMAL=COMMA mode that has been fixed.


April 30

Bob Bauer sent in an assortment of Scharffen Berger chocolates. About half baking chocolate and half eating chocolate. I tried one of the eating bars, and it was extremely good. Can't wait to do some baking with these.

Jens Bischoff found a crash on an invalid PARAMETER statement that has been fixed.

Lex Wennmacher discovered in a crash raising not-a-numbers to a power that has been fixed.


April 29

Reinhold Bader sent in a subtle problem with modules that has been fixed.

Keith Refson sent a crash on -fbounds-check that has been fixed.


April 20

Doug Cox has built some new windows builds.


April 17

Giorgio Pastore reported a problem with kind=10 exponentiation that has been fixed.

Aleksander Schwarzenberg-Czerny contributed some configuration files for running g95 with PGPLOT that are now available in the howto.

Doug Cox has built some new windows builds.


April 15

John Young pointed out a spelling mistak that has been fixed.

Andres Mujica pointed out that the INSTALL file in the binary builds was just a bunch of autoconf boilerplate. I've replaced it with the original INSTALL file from previous builds.

Philippe Marguinaud found a problem with contained procedures being confused with entry points that has been fixed. Philippe also noticed a variation of the F2003 PROCEDURE statement that has been implemented.


April 14

Doug Cox has built some new windows builds.


April 10

Al Grenolds pointed out a regression with yesterday's namelists in modules that has been fixed.

Doug Cox built some new windows builds.


April 9

John Robinson sent in a bug with namelist and modules that has been fixed.

Kris Kuhlman pointed out a pair of regressions that affected David Bailey's mpfun package that have been fixed.

Doug Cox has built some new windows builds.


April 8

John Young suggested a warning for recursive defined assignment that has been implemented. John also pointed out a problem with the NULLIFY statement that has been fixed.

Lionel Guez sent in a regression involving a missing error while passing a scalar to an assumed-shape array that has been fixed.


April 7

Alison Boeckmann sent in a regression involving I/O formats of arrays that has been fixed.


April 2

John Harper sent in a bug with the FLUSH statement that has been fixed.

Doug Cox has built some new windows builds.


April 1

John Young sent in a path problem with the C preprocessor that has been fixed.

Kristján Jónasson sent in a bug with allocatable array I/O formats that has been fixed.

John Peterson sent in a crash with respect to IEEE arithmetic that has been fixed.


March 31

Jun Saito reported that it was actuall Hiroshi Isakari who found the exponentiation bug from a couple days ago.


March 28

Doug Cox has built some new windows builds.


March 27

Martien Hulsen sent a crash on a multi-component array assignment that has been fixed.

Jun Saito and Kristján Jónasson pointed out a regression in exponentiation that has been fixed.

I've added support for the F2003 move_alloc() intrinsic.


March 26

Ugo Tartaglino reported a too-zealous constraint that has been relaxed.

Michael Duda sent in a bug with -r8 and ACOS that has been fixed.

Philippe Marguinau sent in a memory allocation bug that has been fixed.

The existing binaries are the last 0.91 version, I've bumped things to 0.92. The web pages have been updated. It's been way too long since the last stable release. I will do them more frequently in the future.


March 25

Finished the unix-specific and windows-specific parts of the library. The reformat is done.


March 21

Finished the math subsection of the runtime library.


March 20

Finished reformatting the I/O subsection of the runtime library.


March 19

Finished the intrinsics directory of the runtime library.


March 18

Finished the reformat on g95. My ideas on readability have changed somewhat since I started writing g95, and g95 is the last of my active projects to be altered to fit my new tastes.

The main thing is that I've been writing a lot more python. Python uses indentation instead of braces to indicate grouping, and I originally started writing python code with a basic indentation of two, but it was just too cramped. Eventually, the appreciation for four columns of python has translated itself into four columns of C. Although I try to keep the indentation level down anyhow, this is a good compromise that is readable, it lets you get plenty of stuff with an eighty column limit, yet still isn't the wacked-out eight column tabs.

My new fan arrived today, and has been installed. The airflow is huge compared with the old one, which apparently has been getting worse for a long time now.

On to the runtime library, which accounts for a quarter of g95.


March 17

Kept on working the reformat. My new cooling fan should arrive tomorrow.


March 16

Worked on the source reformat up through the t's. This is actually about 2/3rds of the way through the roughly 100 k-lines of source. It looks like the source files are slightly smaller that they were, due to more tabs being used in files.


March 14

John Harper pointed ou the typo involving my "cooking fan", which should of course been "cooling fan". Fixed.

I've continued on with the source reformat, I am up to source files starting with 'm'.


March 12

Henk Krus reported some new progress on running OpenGL with g95. Details can found at: http://www.dolfyn.net/dolfyn/f03gl_en.html I am up to the i's in the source renovation. A mispelling was fixed along the way.


March 11

The source renovation continues, up through the sources starting with 'd'. I've already found and fixed one bug, which was never flagged by the C compiler due to how C is parsed.


March 10

My laptop, on which g95 is developed, has a problem with its cooling fan. I have a new one on order, but bugs are going to have to wait. I'm taking the opportunity to call version 0.91 complete. The next will be 0.92. I am now working on reformatting the code a little to reflect some of my changing tastes-- I'm changing the basic indent to four characters from two, which was too squished. This may take a while, since there are lots of line here, and I don't trust automatic code-reindenters.


February 27

Doug Cox has built some new windows builds.


February 26

Daniel Koester sent in a crash on procedure pointers returning arrays that caused a crash. Fixed.


February 20

Joachim Geiger and Michael Richmond pointed out a crash on x86_64. I've also got a new build machine for x86_64.


Feburary 13

Michael Richmond and Joachim Geiger pointed out a build problem on x86_64 that has been fixed.

Pierre St-Laurent sent a gift of CAN $50.00. There was a little initial confusion at bank, but there are lots of Canadian visitors who come down to Arizona for the winter. Thanks Pierre!


February 7

Michael Richmond found a problem with the fix to module procedures that has been fixed.

Eduardo Mendes wrote a HOWTO article for using MATRAN with g95.

Takeshi Enomoto sent some updates to the Japanese manual that have been applied.

Doug Cox has built some new windows builds.


February 6

Kristján Jónasson found a crash on missing module procedures that has been fixed, and a crash on a bad NULLIFY statement also fixed.

Toby White was having some difficulties locating a memory leak, so I've added a printout of the address of leaked blocks.


January 29

Eric Johnson provided an alternative platform for linux/ppc builds. The old platform had a power supply problem.

Doug Cox has built some new windows builds.


January 28

Angelo Graziosi send Michael Richmond pointed out the the problem with kind=10 reals under cygwin still wasn't fixed. The problem turned out to be a case of automake not propagating CFLAGS correctly.

G&uunl;nter Spahlinger sent in a pair of small patches for compiling on interix that I've applied.

Doug Cox has built some new windows builds.


January 25

John Nabelek pointed out that list input with G95_IGNORE_ENDFILE was inconsistent with formatted reads. Fixed list input to stop throwing endfiles if G95_IGNORE_ENDFILE is set.

Angelo Graziosi, Doug Cox and Michael Richmond pointed out a build problem with kind=10 reals that has been (hopefully) fixed.


January 17

G&uunl;nter Spahlinger sent in a small patch for kind=10 reals that properly declares public subroutines.

John Reid requested a way to round small numbers to zero instead of going into denormalized numbers for the MMX floating point unit. I've added the G95_FPU_NO_DENORMALS environment variable. Denormals are a good idea for numerical calculations, but are apparently pretty slow. As usual, if you want to disable the training wheels, seat belts and air bags, g95 will let you do that.


January 16

Michael Richmond pointed out that configuration of g95 no longer matched that of the library. That was a result of upgrading the ancient redhat system on my laptop to a recent opensuse. The current source reflected the old autoconf, with the library hacked to make it work under the new settings. Fixed now.


January 15

John Harper pointed out a problem with kind=10 reals under freebsd. Freebsd starts processes with the 80387 precision control bits set to 53 instead of 64. I suspect this is because the freebsd people wanted to avoid the differing results when the additional precision is present. From a numerical perspective, the additional precision can save your calculation, so I've turned it back on by default.

Ron James sent in a gift of US $10. I spent it on some new ski boots, which I tried out yesterday. They work great.