| > rows = rows - 1 | > cols = cols - 1 | | probably an untested last minute "improvement" ?
No, a simple plain mistake. After correcting it, and checking that the two compilers give the same numbers, this is what I get:
# MATRIX MULTIPLICATION: GPC, 1000 TIMES 270165 1061760 1453695 1856025 GPC: elapsed time: 0.12264 seconds
# MATRIX MULTIPLICATION 1000 TIMES: IFORT 270165 1061760 1453695 1856025 Elapsed time: = 5.9999999E-02 seconds
using GPC with the following command line (only the i686 works on my system, I don't know why)
gpc -O2 -march=i686 perfor2-gpc.pas -o perfor2-gpc
using the Intel fortran compiler, version 8.0, with the following command line:
ifort -O3 -axW -ipo -tpp7 -w -extend_source perfor2-for.f -o perfor2-for
I don't know whether the i686 switch versus the pentium4 switch in the GPC compilation can make a difference of a factor 2, but I am doubtful. Actually, you don't say which f77 compiler you used, but I reckon it must be the g77, in which case the switches can be the same.
Silvio