24小时热门版块排行榜    

CyRhmU.jpeg
查看: 599  |  回复: 6
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

444874095

新虫 (初入文坛)

[求助] 求助关于program的用法已有1人参与

我在电脑上运行一个高斯赛德尔迭代的计算代码,迭代是用子程序给出的。在主程序中,我在首位加入了program main运行后就会出现This name does not match the unit name.不加program就能运行。哪位大神知道只是为什么啊?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

78506174

至尊木虫 (知名作家)

【答案】应助回帖

END 也加上PROGRAM MAIN

发自小木虫Android客户端
5楼2015-11-11 11:52:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答

444874095

新虫 (初入文坛)

代码如下
IMPLICIT NONE
DIMENSION A(4,4),B(4),X(4)
DOUBLE PRECISION A,B,X
REAL:: EPS
INTEGER::I,L
DATA A/7.0,9.0,-2.0,1.0,2.0,15.0,-2.0,3.0,1.0,3.0,11.0,2.0,-2.0,-2.0,5.0,13.0/  
DATA B/4.0,7.0,-1.0,0.0/
EPS=1.0E-06
CALL AGSDL(A,B,4,X,EPS,L)
IF (L.NE.0) THEN
  WRITE(*,10) (X(I),I=1,4)
END IF
10 FORMAT(1X,D15.6)
END

SUBROUTINE AGSDL(A,B,N,X,EPS,L)
DIMENSION A(N,N),B(N),X(N)
DOUBLE PRECISION A,B,X,T,S,P,Q
INTEGER::N
DO 5 I=1,N
  IF (ABS(A(I,I))+1.0.EQ.1.0) THEN
L=0
WRITE(*,100)
RETURN
  END IF
5  CONTINUE
100  FORMAT(1X,'FAIL')
L=100
DO 10 I=1,N
10   X(I)=0.0
20   P=0.0
L=L-1
DO 50 I=1,N
  T=X(I)
  S=0.0
  DO 30 J=1,N
IF(J.NE.I) S=S+A(I,J)*X(J)
30  CONTINUE
      X(I)=(B(I)-S)/A(I,I)
      Q=ABS(X(I)-T)/(1+ABS(X(I)))
      IF (Q.GT.P) P=Q
50  CONTINUE
      IF((P.GE.EPS).AND.(L.NE.0)) GOTO 20
      IF(L.EQ.0) WRITE(*,100)
      RETURN
END SUBROUTINE AGSDL
2楼2015-11-10 21:19:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

78506174

至尊木虫 (知名作家)

【答案】应助回帖

感谢参与,应助指数 +1
PROGRAM MAIN

END PROGRAM MAIN

发自小木虫Android客户端
3楼2015-11-11 11:49:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

444874095

新虫 (初入文坛)

引用回帖:
3楼: Originally posted by 78506174 at 2015-11-11 11:49:32
PROGRAM MAIN
END PROGRAM MAIN

主程序加上这个就出现上面说的那个错误了。

发自小木虫Android客户端
4楼2015-11-11 11:50:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见