program matrixmult character*20 arg if (IARGC() .ne. 1) then print *,"Need one argument." return end if call GETARG(1,arg) call mult(intchr(arg)) end subroutine mult(n) integer n, i, j, k double precision M(n,n) do 1 i=1,n do 2 j=1,n M(i,j)=i+j+0.5 2 continue 1 continue r=0 do 3 i=1,n do 4 j=1,n do 5 k=1,n r=r+M(i,k)*M(k,j) 5 continue 4 continue 3 continue print *,r return end integer function intchr(cc) character cc*(*) integer i, l, ii, j l = len(cc) ii = 1 intchr = 0 do 6 j = l, 1, -1 if (cc(j:j) .ne. ' ') then intchr = intchr + max0(0,ichar(cc(j:j))-48) * ii ii = ii * 10 end if 6 continue return end