GNU Fortran 4.6.0

Lawrence Doctors l.doctors@unsw.edu.au
Wed Dec 29 11:04:00 GMT 2010


Dear GNU Fortran Expert:

(1) On December 16, 2010, I downloaded: gfortran-snwleo-intel-bin.tar.gz onto my MacBook Pro running Snow Leopard 10.6. Hence, this would be GNU Fortran (GCC) 4.6.0 20101106 (experimental). This followed downloading XCode, which I believe is necessary for the Fortran. The installation appeared to go smoothly.

(2) I currently have a suite of 227 main Fortran programs. Despite the fact that these have been developed and debugged over a 40-year period using various IBM mainframes, three Cyber computers, VMS (VAX 32 bit), VMS (Alpha 64-bit), VMS (Itanium 64-bit), and MacBook Pro (64-bit, earlier GCC Fortran version, namely 4.5), the compiler was able to detect more ”errors”. A good example, is the need to use the parentheses in the declaration:
      character*(1) a, b, c
Which had not been previously necessary. I did not mind this because your error messages are extremely clear in meaning and it was a simple matter to make these modifications.

(3) I compile using the command: 
        gfortran -c -std=f2008 -fdefault-real-8 -fdefault-integer-8 \          
            -fdollar-ok -fbounds-check -Wcharacter-truncation \                 
            -Wuninitialized -Wunderflow -Werror -fbacktrace program.for          

(4) Using the "-v" option when compiling gives the following information:

Using built-in specs.                                                           
COLLECT_GCC=gfortran                                                            
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-apple-darwin10.4.0/4.6.0/lto-$
Target: x86_64-apple-darwin10.4.0                                               
Configured with: ../gcc-4.6-20101106/configure --enable-languages=c++,fortran   
Thread model: posix                                                             
gcc version 4.6.0 20101106 (experimental) (GCC)                                 
COLLECT_GCC_OPTIONS='-mmacosx-version-min=10.6.4' '-c' '-std=f2008' '-fdefault-$
 /usr/local/libexec/gcc/x86_64-apple-darwin10.4.0/4.6.0/f951 xacvopt.for -ffixe$
GNU Fortran (GCC) version 4.6.0 20101106 (experimental) (x86_64-apple-darwin10.$
        compiled by GNU C version 4.6.0 20101106 (experimental), GMP version 4.$
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096         
GNU Fortran (GCC) version 4.6.0 20101106 (experimental) (x86_64-apple-darwin10.$
        compiled by GNU C version 4.6.0 20101106 (experimental), GMP version 4.$
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096         
COLLECT_GCC_OPTIONS='-mmacosx-version-min=10.6.4' '-c' '-std=f2008' '-fdefault-$
 as -arch x86_64 -force_cpusubtype_ALL -o xacvopt.o /var/folders/3D/3Dikh2dMHY4$
COMPILER_PATH=/usr/local/libexec/gcc/x86_64-apple-darwin10.4.0/4.6.0/:/usr/loca$
LIBRARY_PATH=/usr/local/lib/gcc/x86_64-apple-darwin10.4.0/4.6.0/:/usr/local/lib$
COLLECT_GCC_OPTIONS='-mmacosx-version-min=10.6.4' '-c' '-std=f2008' '-fdefault-$
COLLECT_GCC_OPTIONS='-mmacosx-version-min=10.6.4' '-c' '-std=f2008' '-fdefault-$

(5) The reason that I write is that the parameter “end= label” appears to be ignored in a READ statement. (a) This causes the program to crash with a Fortran run error if the very last character of the data set is a carriage return. (I believe that this is the custom with Unix – to complete a plain text file with a carriage return.) I am still becoming familiar with Unix. As you will note from the above, my expertise is with VMS which is very unfussy about such details. (b) Almost all my data for my Fortran programs is read using NAMELIST. If I remove the offending carriage return, the program runs smoothly with no Fortran errors, but the last NAMELIST data set is apparently ignored. I can fix this in a crude manner by adding another, dummy, NAMELIST with no variables in it (again, being careful not to include that offending final carriage return). Then all the data is processed.

(6) For the moment, I can also fix the problem more professionally by adding the parameter “ios= iostat” in the READ statement and adding a line to the program with the Fortran statement:
      if (ios .eq. 5010) goto label

I trust that I have described the problem fully. I really doubt that there could be such a basic error in GNU Fortran and I therefore suspect that there is a problem elsewhere.

I hope that I do not cause you too much trouble over this but would be pleased to hear from you if you have the time to comment. I can, of course, send you a very short sample file demonstrating the problem.

With best wishes for the Season,

Larry

Lawrence J. Doctors
Emeritus Professor
Naval Architecture Program
School of Mechanical and Manufacturing Engineering
The University of New South Wales
Sydney, NSW 2052, Australia
Telephone: +61-2-9385 4098
Messages:  +61-2-9385 4093
Facsimile: +61-2-9663 1222



More information about the Gcc mailing list