2013-05-16 2 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 - все объявления должны предшествовать всем исполняемым операторам.

Переместить неуместную инструкцию перед первым исполняемым оператором.

Смежные вопросы