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

Reply via email to