tAdded FORTRAN 90 code, benchmark OK, but doesn't work with cmd line args - numeric - C++ library with numerical algorithms
 (HTM) git clone git://src.adamsgaard.dk/numeric
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) LICENSE
       ---
 (DIR) commit fd223ef5d4bd236655a1a2d1341ce2552aebfec4
 (DIR) parent aae8e123fc8478c2af55280b6c26695d9582cd8f
 (HTM) Author: Anders Damsgaard Christensen <adc@geo.au.dk>
       Date:   Wed, 23 Jan 2013 09:38:19 +0100
       
       Added FORTRAN 90 code, benchmark OK, but doesn't work with cmd line args
       
       Diffstat:
         M matrixmul/Makefile                  |       7 +++++++
         A matrixmul/fortran90.f               |      44 +++++++++++++++++++++++++++++++
       
       2 files changed, 51 insertions(+), 0 deletions(-)
       ---
 (DIR) diff --git a/matrixmul/Makefile b/matrixmul/Makefile
       t@@ -155,6 +155,13 @@ octave.dat: octave.m
                  echo $$dims; \
                done
        
       +# Fortran 90
       +fortran90.dat: fortran90
       +        # fortran90.f
       +
       +fortran90: fortran90.f
       +        gfortran -Wall -O3 $< -o $@
       +
        clean:
                $(RM) *.o
                $(RM) *.dat
 (DIR) diff --git a/matrixmul/fortran90.f b/matrixmul/fortran90.f
       t@@ -0,0 +1,44 @@
       +      PROGRAM fortranmatmul
       +
       +          IMPLICIT NONE
       +          integer i, j
       +          !integer nargs
       +          !character arg*8
       +          integer, parameter :: N = 2
       +
       +          !parameter nargs = iargs()
       +          !do i = 0,nargs 
       +          !    call getarg(i, arg) 
       +          !    print '(a)', arg 
       +          !end do
       +
       +          !if (nargs == 2) then
       +          !    call getarg(2, arg)
       +          !    read(s,*) N 
       +          !end if
       +
       +          real :: a(N,N) = RESHAPE((/(2.0, i=0,N*N, 1)/),(/N,N/))
       +          real :: b(N,N) = RESHAPE((/(i, i=0,N*N, 1)/),(/N,N/))
       +          real :: c(N,N)
       +
       +          write(*,*) 'Matrix [a]'
       +          do i=1,N
       +          write(*,1000) (a(i,j),j=1,N)
       +          enddo
       +          write(*,*)
       +
       +          write(*,*) 'Matrix [b]'
       +          do i=1,N
       +          write(*,1000) (b(i,j),j=1,N)
       +          enddo
       +          write(*,*)
       +
       +          c = matmul(a, b)
       +          write(*,*) 'Matrix [c] = [a] x [b]'
       +          do i = 1,N
       +          write(*,1000) (c(i,j),j=1,N)
       +          enddo
       +
       +1000  FORMAT(1x,1P10E14.6)
       +
       +      END PROGRAM fortranmatmul