Допустимые циклы DO с матрицей массива внутри
Эй, я новичок в этом веб-сайте, поэтому я, вероятно, делаю несколько вещей неправильно, но это мой вопрос:
Можете ли вы сделать DO LOOP следующим образом (в Fortran90):
program help
implicit none
real, dimension (10,10) :: imarc
integer :: R , j , k
imarc (1:10,1:10) = 50
imarc (1:10,1) = 20
imarc (1,1:10) = 20
imarc (1:10,10) = 20
imarc (10,1:10) = 20
imarc (3,3) = 100
!!! HERE IS THE DO LOOP THAT GIVES A COMPILE ERROR
DO R = 1 , 1000
DO j = 2 , 9
DO k = 2 , 9
imarc (j,k) = 0.25( imarc((j-1),k) + imarc((j+1),k) + imarc(j,(k-1)) + imarc(j,(k+1)) )
imarc (3,3) = 100
END DO
END DO
END DO
WRITE (*,*) "Node (5,5) =", imarc(5,5)
end program help
Я надеюсь, что кто-то может помочь мне с моей проблемой.
вот сообщение об ошибке, которое я получаю:
imarc(j,k) = 0.25( imarc((j-1),k) + imarc((j+1),k) + imarc(j,(k-1)) +
1
Error: Unclassifiable statement at (1)
Что ж, я надеюсь, что я все сделал правильно или хотя бы достаточно хорош, чтобы кто-то смог мне помочь.
Огромное спасибо!! -marc
1 ответ
Вам не хватает арифметического оператора, я думаю, *
после 0,25. Умножение не подразумевается смежными величинами, как в алгебре, вы должны использовать оператор.
PS хорошо заданный вопрос... маленькая, полная программа, которая выставила проблему.