------- Comment #5 from pinskia at gcc dot gnu dot org 2007-03-29 01:41 ------- Reduced self contained testcase: Module NsLin Real*8, Dimension(54,54) :: VXX, VXY, & VYX, VYY, VXX2, VXY2, VYX2, VYY2 End Module NsLin Subroutine SysNSL (N, NX, NY) Use NsLin Implicit Real*8 (A-H,O-Z) Real*8, Dimension(1000,1000) :: EnsLap, EnsArh Real*8, Dimension(1000,1000) :: EnsTim, HtTim Integer, Allocatable, Dimension(:) :: IPIV Allocate ( IPIV(N), stat=jerr ) Do L=1,NX Do M=1,NY Do i=1,NX Do j=1,NY EnsTim(NY+ M, NY+ j ) = & ( VXX(i,L)* VXY(j,M) + VYX(i,L)* VYY(j,M) ) & * W EnsLap(NY*(L-1) + M,NY*(i-1) + j ) = & (VXX(i,L) * VXY2(j,M) + VYX(i,L) * VYY2(j,M) ) & * W & + (VXX2(i,L) * VXY(j,M) + VYX2(i,L) * VYY(j,M) ) & / W End Do End Do End Do End Do Call Dgetrf (EnsTim(1:N,1:N), info) If (info .NE. 0) then Write (*,*) 'sysnsL(Dgetrf): info=',info Stop End If Call Dgetri ( EnsTim(1:N,1:N), IPIV, info) If (info .NE. 0) then Stop End If EnsLap(1:N,1:N) = MATMUL( EnsTim(1:N,1:N), EnsLap(1:N,1:N) ) Deallocate ( IPIV, stat=jerr) Return End
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31280