2013-05-16 93 views
1

我正在爲LU分解編寫代碼,我不知道如何解決指向第8行的「意外數據聲明語句」(我在聲明一個數組,請參閱代碼片段) 。爲什麼它出乎意料?意外的數據聲明語句

!Decomposição LU 
!----------------------------------------------------------- 
     PROGRAM LUdecomp 
     IMPLICIT INTEGER (I-K,N), REAL (A-H, L-M,O-Z) 
     INTEGER, PARAMETER :: N=3 
     REAL, DIMENSION (N,N) :: A,L,U  
     A = reshape((/3.,1.,4.,4.,2.,0.,3.,2.,3./),(/3,3/)) !exemplo do Bortoli******* 
     REAL, DIMENSION(3) :: B=(/9.,3.,-2./),Z,X  
     OPEN(1,file = 'LUFACTOR.out') 
! 
!   FORALL (I = 1:N, J = 1:N) A(I,J) = 1.0/REAL(I+J-1) 
!-------Fazendo a fatoração A = LU----------------------------- 
     CALL LU(N, A, L, U) 
     DO I=1,N 
      WRITE(*,10)(L(I,J), J=1,N), (U(I,J), J=1,N) 
     END DO 
    10 FORMAT(3(F8.4), 7x, 3(F8.4)) 
! 

回答

9

本聲明

REAL, DIMENSION(3) :: B=(/9.,3.,-2./),Z,X  

是放錯了地方。在Fortran程序單元(程序,子程序,函數)中 - 當然沒有新的ASSOCIATE和BLOCK結構 - 所有的聲明必須在所有可執行語句之前。

在第一個可執行語句之前移動錯位的語句。