PROGRAM main IMPLICIT NONE INTEGER :: n,i,j REAL*8, allocatable :: A(:,:) INTEGER :: count, count_rate, count_max, T1, T2 CHARACTER*80 :: argc1 REAL*8 Rand call getarg(1,argc1) read(argc1,*) n print *, "Array size: ", n allocate(A(n,n)) open(40, file='input') read(40,*) A ! Get time call system_clock(count, count_rate, count_max) T1 = count ! Real work here call lu_factor(n,A) ! Check time call system_clock(count, count_rate, count_max) T2 = count print *, "Time = ",T2-T1 open(60, file='seq.output') write(60,*) A END PROGRAM main SUBROUTINE lu_factor(n,A) IMPLICIT NONE INTEGER :: n REAL*8 :: A(n,n) INTEGER i,j,k DO k = 1, n-1 DO i = k+1, n A(i, k) = A(i, k) / A(k, k) END DO DO i = k+1, n DO j = k+1, n A(i, j) = A(i, j) - A(i, k)*A(k, j) END DO END DO END DO END SUBROUTINE lu_factor