24小时热门版块排行榜    

Znn3bq.jpeg
汕头大学海洋科学接受调剂
查看: 1967  |  回复: 10
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

xiaobear20

金虫 (小有名气)

(⊙o⊙)…

[求助] FORTRAN新手 求助主程序循环问题

我现贴出主程序部分:
     PROGRAM MAIN  
        USE SAME
        IMPLICIT NONE            

       N=120
      M=241
      ITMAX=60  
     ITER=0            
     CALL INPUT
     CALL GRID      
     DO I=1,M                        !!!!!!初始条件!!!!!!!!!!
          DO J=2,N-1                    
          W(I,J)=1-EXP(-ETA(J))
          ENDDO                        
     ENDDO
60 ITER=ITER+1
     SELECT CASE(ITER-ITMAX)
     CASE(:-1)        !  <= -1   整数
   GO TO 70
    CASE(0)          !   =0
    WRITE(6,2500)
    GO TO 70
    CASE(1         !   >=1
    WRITE(6,2600)
    GO TO 90
    END SELECT
70  DO I=1,M
         DO J=2,N-1
         WOLD(I,J)=W(I,J)      
        ENDDO
     ENDDO            
     CALL EDDY
     CALL CMOM                              
     CALL SOLV
     DO I=2,M
          DO J=2,N-1
           CONVER(I,J)=ABS(1-(WOLD(I,J)/W(I,J)))  
          ENDDO
      ENDDO
      MX=MAXVAL(CONVER)   !选取误差中的最大值
      IF(MX.LE.EPS)THEN    !     <=0.0001 !收敛判断  EPS=0.0001   误差 CONVER
      GO TO  90   
      ELSE
      GOTO 60
      ENDIF                                                                              
90 CALL OUTPUT
      END PROGRAM
程序主要过程如下是,(计算的是一个二维网格点上的速度,即二维数组),先给迭代的矩阵赋初值,继而进行第一次迭代,每次迭代完后,把此次结果与上一次的结果进行比较,逐点比较,选出最大误差,再与收敛条件ESP比较,如满足条件则输出结果,如不满足,再返回迭代,直到满足收敛条件为止,(其中也对迭代的次数进行了判断)
我的问题如下:不知道怎么回事,程序只进行了一次计算就输出了结果,没有进行第二次,还有误差判断CONVER(I,J)总是为0,我把子程序的结果也输出看了一下,各个子程序还是运行了一次。我就不知道问题在哪了。是结构问题还是别的,求大神指道,分少别嫌弃啊,急等啊
子程序
CALL EDDY
     CALL CMOM                              
     CALL SOLV
在子程序EDDY中都用到了初始值,CMOM是矩阵系数的计算,SOLV是最后的结果计算,谢谢
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

一切还好
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
xiaobear20: 金币+50, 有帮助, 谢谢 2012-04-10 18:57:32
哦,不好意思,看错了。如果在 eddy, comom, solv 之后变化的应该没有问题啊……

你把 w 和 wold 打印出来看看吧……
7楼2012-04-07 16:30:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 11 个回答

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖


感谢参与,应助指数 +1
xzhdty: 金币+1, 欢迎常来 2012-04-07 14:48:19
这个程序没有办法改,比如你的 W(I,J) 的值有更新吗?在你的程序中,你的 WOLD 与 W 一直都是一样的,那么 CONVER 当然总是 0 了。因此,只迭代一次是很正常的。如果在 WOLD 之后,还有 W 更新,那么情况可能会不一样。但这个没有办法看出来,因为你的所有 subroutine 的返回值是啥都看不出来……

另外,你似乎喜欢用全局变量作为 subroutine 的参数和返回值,很多时候,这个习惯并不好,呵呵……
2楼2012-04-07 12:55:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiaobear20

金虫 (小有名气)

(⊙o⊙)…

引用回帖:
2楼: Originally posted by snoopyzhao at 2012-04-07 12:55:00:
这个程序没有办法改,比如你的 W(I,J) 的值有更新吗?在你的程序中,你的 WOLD 与 W 一直都是一样的,那么 CONVER 当然总是 0 了。因此,只迭代一次是很正常的。如果在 WOLD 之后,还有 W 更新,那么情况可能会不 ...

对,如果W值改变了的话,这样是把前一次的W值赋给WOLD啊,这样就可以看做是与前一次值进行比较啊,那这个全局变量的问题有怎么改了,我是新手 呵呵
一切还好
3楼2012-04-07 13:35:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

引用回帖:
3楼: Originally posted by xiaobear20 at 2012-04-07 13:35:37:
对,如果W值改变了的话,这样是把前一次的W值赋给WOLD啊,这样就可以看做是与前一次值进行比较啊,那这个全局变量的问题有怎么改了,我是新手 呵呵

你的 W 值在哪里改变的呢?在 WOLD 之前,还是之后?反正你给的主程序中看不出来……

用全局变量似乎也没有啥问题,如果可能尽量不要用全局变量(这只是我个人的看法)……
4楼2012-04-07 14:37:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 105500药学求调剂 +4 x_skys 2026-04-12 4/200 2026-04-14 13:37 by rndfc
[基金申请] 山东省基金2026 +6 jerry681 2026-04-08 7/350 2026-04-14 10:08 by 羁俗
[基金申请] 2026 WR青拔 +3 冬日阳光CAS 2026-04-09 6/300 2026-04-13 18:40 by liuchb715
[考研] 材料复试求调剂 +24 xhhdjdjsjks 2026-04-09 24/1200 2026-04-13 15:49 by 幸免 ..
[考研] 一志愿0807 数一英一 313 有没有二轮调剂 +12 emokidd 2026-04-08 13/650 2026-04-13 08:32 by lhj2009
[考研] +10 李多米lee. 2026-04-12 11/550 2026-04-12 22:58 by yuyin1233
[教师之家] 山东双非院校考核超级无底线,领导幸灾乐祸,教师遭殃恐 +3 qut2026 2026-04-11 7/350 2026-04-12 20:24 by qut2026
[考研] 085404 293求调剂 +9 勇远库爱314 2026-04-08 9/450 2026-04-12 02:24 by 秋豆菜芽
[考研] 调剂 +5 文道星台 2026-04-11 5/250 2026-04-11 15:01 by 凯凯要变帅
[考研] 机械专硕270求调剂,接受跨专业 +12 老师看看我吧aba 2026-04-09 14/700 2026-04-11 10:21 by laoshidan
[考研] 广东省 085601 329分求调剂 +14 Eddieddd 2026-04-10 14/700 2026-04-11 09:58 by bljnqdcc
[考研] 一志愿东北大学控制工程085406数二英二385,求调剂 +8 Ezra_Zhang 2026-04-09 8/400 2026-04-11 09:15 by 猪会飞
[考研] 调剂 化学 307 +21 73372112 2026-04-09 23/1150 2026-04-10 23:53 by wj165256
[考研] 302分求调剂 +9 凡语祈愿 2026-04-08 10/500 2026-04-10 23:26 by 314126402
[考研] 调剂 +12 卷卷卷心菜_ 2026-04-09 13/650 2026-04-10 22:36 by Ftglcn90
[考研] 263能源动力专硕求调剂 +4 加大号饭盒袋 2026-04-10 4/200 2026-04-10 20:52 by gong120082
[考研] 初试261 +3 Asht少 2026-04-10 6/300 2026-04-10 16:38 by Asht少
[考研] 085400电子信息类(川大控制工程)求调剂可跨专业 求老师联系 +3 626776879 2026-04-08 3/150 2026-04-09 16:05 by 猪会飞
[考研] 求调剂,现在还能填的 +3 上岸小莹加油 2026-04-08 3/150 2026-04-08 14:30 by zhq0425
[考研] 专硕085403,291分,有两篇专利,一国一奖 +3 哈吉咪哈吉咪 2026-04-07 3/150 2026-04-07 18:21 by 蓝云思雨
信息提示
请填处理意见