This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Compilation and run of the FDS code


I succeeded in compiling the FDS code and ran it on an example.  I was using 
the latest snapshot (4.2.0 20060415) with the latest patches from Paul and 
Thomas under OSX 10.3. 

Note that I applied the patches manually so I cannot guarantee that I did not 
make a mistake.

I had two glitches:

(1) during the compilation of read.f I got:

 In file read.f:5475

      READ(LU5,BNDF,END=243,ERR=244)                                    
                                                                       1
 In file read.f:5496

                    
                   2
Warning: Obsolete: GOTO at (1) jumps to END of construct at (2)

I have isolated the subroutine and decorated it to be able to compile it and 
I get:

 In file read_bndf.f90:26

      READ(LU5,BNDF,END=243,ERR=244)
                                   1
 In file read_bndf.f90:47

  244 ENDDO BNDFLOOP
                   2
Warning: Obsolete: GOTO at (1) jumps to END of construct at (2)

which is more in line with what I expect.

(2) When I ran the code I got:

Cannot match namelist object name 100.0
Cannot match namelist object name 100.0
...

It did not prevented the code to run and I did not see anything obviously 
wrong in the results, i.e., since the code is non-deterministic, the results 
depend on the compiler.  The results from the NIST binaries (xlf), g95 and 
gfortran were within 20% from each others.

The following program 

      CHARACTER(30) QUANTITY
      REAL(8) VALUE(5)
      NAMELIST /ISOF/ DTSAM,QUANTITY,FYI,VALUE
      VALUE = (/ (-I,I=1,5) /)
      print *, VALUE
      READ(5,NML=ISOF)
      print *, VALUE
      END

reproduce the bug, with

&ISOF QUANTITY='TEMPERATURE',VALUE(1)=30.0,100.0 /

gfortran gives

  -1.00000000000000       -2.00000000000000       -3.00000000000000       -4.00000000000000       -5.00000000000000     
Cannot match namelist object name 100.0
   30.0000000000000       -2.00000000000000       -3.00000000000000       -4.00000000000000       -5.00000000000000     

while xlf gives

 -1.00000000000000000 -2.00000000000000000 -3.00000000000000000 -4.00000000000000000 -5.00000000000000000
 30.0000000000000000 100.000000000000000 -3.00000000000000000 -4.00000000000000000 -5.00000000000000000

If I use

&ISOF QUANTITY='TEMPERATURE',VALUE(1:2)=30.0,100.0 /

gfortran gives the right answer.

Note the execution time on a 1.8Ghz G5 with 1.5Gb of memory is
1h20mn for the NIST binary and ~2h for gfortran and g95.

Cheers

Dominique


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]