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 -
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-
g95 in order to run g95.

Contributing to G95

Ways to contribute


We hope that you find g95 useful. Please consider helping us out financially-- your contributions help us continue squishing bugs, adding new features and dispensing advice.

US Dollars   

Report bugs

Good bug reports are needed to make progress. Corner cases and unusual constructs may still trigger bugs like:

g95/testsuite> g95 mytest.f90
mytest.f90: In function `MAIN_':
mytest.f90:2: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See or mail for instructions.

If you can send a concise test case that compiles with compiler X but not with G95, the bug might be fixed within a few days. A good test case can be just a few lines and might look like:

CHARACTER(LEN=10) :: test(10)
write(6,*) ICHAR(test(:)(2:2))

Accepting illegal code is also be a bug that is worth a bug report.

A useful technique for isolating a crash within a large file is based on the binary seach: First make a copy of the source. Then chop out half the code in the file and recompile. If the error goes away, put that half back in and chop out the other half. You have to watch out for creating new errors by deleting needed decarations, in which case you put the original hunk back in and make a more judicious cut the next time. Sometimes with modules it's easier to delete multiple modules procedures at once.

Another trick is to remove IMPLICIT NONE statements, which loosens up the declaration rules a lot.

Usually after less then a dozen iterations, you're left with a code fragment that doesn't do anything useful except trigger the bug. Which is what we want. At some point, you usually start noticing that some modules are no longer needed and the USE statement can be deleted. The general technique remains the same-- delete something and if the error persists, you deleted something that wasn't necessary for the bug to bite.

Happy hunting

Port to a new architecture

If a compiler binary is not available from for your particular architecture or operating system, you can compile your own version from the source codes following the instructions. If you have improved build instructions and/or patches for your target, let us know. Providing an account with ssh access might make it possible to add the target to the list of daily binaries.

Code new features

Get in touch and have a look at the legal stuff before you provide source code.

Legal Stuff

If you want to contribute more than a few lines of source code to G95, you must assign that work to the Free Software Foundation and it will be covered by the GPL license. In order to get things started, mail the following questionnaire to They'll email you the proper form or forms that you can print out, sign and snail mail back to them.

Please email the following information to, and we will send you the assignment form for your past and future changes. Please use your full name as the subject line of the message.

[What is the name of the program or package you're contributing to?]

[Did you copy any files or text written by someone else in these changes? Even if that material is free software, we need to know about it.]

[Do you have an employer who might have a basis to claim to own your changes? Do you attend a school which might make such a claim?]

[For the copyright registration, what country are you a citizen of?]

[What year were you born?]

[Please write your email address here.]

[Please write your postal address here.]

[Which files have you changed so far, and which new files have you written so far?]