【问题标题】:Valid DO loops with array matrix inside内部带有数组矩阵的有效 DO 循环
【发布时间】:2014-04-09 02:18:36
【问题描述】:

嘿,我是这个网站的新手,所以我可能做错了一些事情,但这是我的问题:

你能制作如下的 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)

嗯,我希望我做的一切都是正确的,或者至少足够好,以便有人能够帮助我。

非常感谢! -马克

【问题讨论】:

    标签: arrays matrix compiler-errors fortran do-loops


    【解决方案1】:

    你缺少一个算术运算符,我猜是 *,在 0.25 之后。乘法不是由相邻量隐含的,就像在代数中一样,您必须使用运算符。

    附:问题问得好......展示问题的小而完整的程序。

    【讨论】:

    • 感谢您的快速回复和您(附注):) !!!程序也有效!不敢相信我看过那个!附:抱歉,由于我是该网站的新手,因此我无法“投票”您的回答
    • 你可以接受答案,提问者不需要投票。
    • 调试建议:如果某行代码出现语法错误,请尝试从该行代码中删除内容,直到语法错误消失。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多