ifort-spread-spread --------------------- $Id$ 1. Symptoms: The three short F90 programs should print spread-tmp: Starting spread-tmp: = 1.000000 spread-tmp: Done. spread_255: Starting spread_255: = 1.000000 spread_255: Done. spread_256: Starting spread_256: = 1.000000 spread_256: Done. spread_1791: Starting spread_1791: = 0.9999999 spread_1791: Done. spread_1792: Starting spread_1792: = 1.000000 spread_1792: Done. However, with ifort (Intel Fortran compiler, version 8.0, 32-bit version), one gets: spread-tmp: Starting spread-tmp: = 1.000000 spread-tmp: Done. spread_255: Starting spread_255: = 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: = 1.000000 spread-tmp: Done. spread_255: Starting spread_255: = 1.000000 spread_255: Done. spread_256: Starting spread_256: = 1.000000 spread_256: Done. spread_1791: Starting spread_1791: = 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