ifort-spread-spread
                          ---------------------

$Id$


1. Symptoms:

The three short F90 programs should print

     spread-tmp: Starting
     spread-tmp: <f> =    1.000000    
     spread-tmp: Done.
 
     spread_255: Starting
     spread_255: <f> =    1.000000    
     spread_255: Done.
 
     spread_256: Starting
     spread_256: <f> =    1.000000    
     spread_256: Done.
 
     spread_1791: Starting
     spread_1791: <f> =   0.9999999    
     spread_1791: Done.
 
     spread_1792: Starting
     spread_1792: <f> =    1.000000    
     spread_1792: Done.
 
However, with ifort (Intel Fortran compiler, version 8.0, 32-bit version),
one gets:

     spread-tmp: Starting
     spread-tmp: <f> =    1.000000    
     spread-tmp: Done.
     
     spread_255: Starting
     spread_255: <f> =    1.000000    
     spread_255: Done.
     
     spread_256: Starting
    forrtl: severe (174): SIGSEGV, segmentation fault occurred
    Image              PC        Routine            Line        Source
    spread_256.x       08049E73  Unknown               Unknown  Unknown
    spread_256.x       0804A078  Unknown               Unknown  Unknown
    spread_256.x       400A89ED  Unknown               Unknown  Unknown
    spread_256.x       08049C61  Unknown               Unknown  Unknown
     spread_1791: Starting
    forrtl: severe (174): SIGSEGV, segmentation fault occurred
    Image              PC        Routine            Line        Source
    spread_1791.x      08049E75  Unknown               Unknown  Unknown
    spread_1791.x      0804A080  Unknown               Unknown  Unknown
    spread_1791.x      400A89ED  Unknown               Unknown  Unknown
    spread_1791.x      08049C61  Unknown               Unknown  Unknown
     spread_1792: Starting
    forrtl: severe (174): SIGSEGV, segmentation fault occurred
    Image              PC        Routine            Line        Source
    spread_1792.x      08049EA2  Unknown               Unknown  Unknown
    spread_1792.x      0804A07C  Unknown               Unknown  Unknown
    spread_1792.x      400A89ED  Unknown               Unknown  Unknown
    spread_1792.x      08049C61  Unknown               Unknown  Unknown
    make: *** [test] Error 174


With the 64-bit version of ifort 8.0 on Itanium:

    spread-tmp: Starting
    spread-tmp: <f> =    1.000000    
    spread-tmp: Done.
 
    spread_255: Starting
    spread_255: <f> =    1.000000    
    spread_255: Done.
 
    spread_256: Starting
    spread_256: <f> =    1.000000    
    spread_256: Done.
 
    spread_1791: Starting
    spread_1791: <f> =    1.000000    
    spread_1791: Done.
 
    spread_1792: Starting
   make: *** [test] Error 139

where the make `Error 139' is caused by `Segmentation fault'.


2. Command sequence:

On all machines:

  unix>  make f90

Then

  kabul>  make FC=ifort test
or
  fe4>  make FC=ifort80 NLSPATH=/usr/local/lib/intel/intel_fc_80/lib/ifcore_msg.cat test
or
  fe4>  set ifort=/people/disk2/theine/compilers/ifort
  fe4>  make FC=$ifort/bin/ifortbin INTEL_LICENSE_FILE=$ifort/licenses/ NLSPATH=$ifort/lib/ifcore_msg.cat test
or
  nw43>  set ifort=/home/ajohan/.intel/ifc/compiler80
  nw43>  make FC=$ifort/bin/ifortbin INTEL_LICENSE_FILE=$ifort/licenses/ LD_LIBRARY_PATH=$ifort/lib NLSPATH=$ifort/lib/ifcore_msg.cat test

(or similar)

3. Platforms:
   32-bit:

   SuSE   8.0, Kernel 2.4.18-4GB-SMP, dual AMD Athlon MP 1900+, 1.6  GHz
       ifort 8.0, Build 20031016Z, Package ID: l_fc_p_8.0.034   
   RedHat 9.0, Kernel 2.4.20-28.9smp, dual Pentium III,         0.93 GHz
       ifort 8.0, Build 20031016Z
   Debian 3.0, Kernel 2.4.26,              Pentium 4,           2.0  Ghz
       ifort 8.0, Build 20031016Z
   and ifort 8.0, Build 20040318Z, Package ID: l_fc_pc_8.0.039_pe044.1

   64-bit:
   SGI ProPack 2.4 for Linux, Build 240rp04021313_10046-0402131355
               Kernel 2.4.21-sgi240rp04021313_10046
                                      SMP  Itanium 2,           1.3  GHz
       ifort 8.0, Build 20040318,  Package ID: l_fc_pc_8.0.039_pl044.1

4. Other compilers tested (OPK means problem could not be reproduced):
   - Intel ifc 6.0 (Linux)  OK
   - Intel ifc 7.1 (Linux)  OK
   - Intel ifort 8.0 Build 20040616Z Package ID: l_fc_pc_8.0.046_pe049.1
                   (Linux)  OK

5. Workaround:
   Replace stacked spread(spread()) call by two consecutive calls using an
   explicit temporary (as demonstrated by spread-tmp.f90)

6. Solution:
   Update version of ifort

7. Original date:

  Wed Apr 28 11:47:52 CEST 2004