24小时热门版块排行榜    

CyRhmU.jpeg
查看: 855  |  回复: 4

lijunjiexm

铁虫 (小有名气)

[求助] 请教一个程序小问题,谢谢

程序如下:

PROGRAM PROCESS3

C *** Program to draw velocity profiles.
C
      IMPLICIT     NONE
      INTEGER*4    ITIME, I, II, NUMNP, NTIME, COUNTER, IDUM, IDUM1
      INTEGER*4    WAIT
      PARAMETER   (NUMNP = 17, NTIME = 10)
      REAL*4       STORE1, STORE2, VX(21), VY(21), DUM1
      REAL*4       XNODE(NUMNP), YNODE(NUMNP)
C
      OPEN (10, FILE = 'ns2dev.ve2')
      OPEN (11, FILE = 'mesh.dat')
      OPEN (12, FILE = 'vprof.dat')
c
c read nodes
c
      READ(11,*,END=300) IDUM, DUM1
      DO I = 1 , NUMNP
        READ(11, *, END = 300) IDUM, XNODE(I), YNODE(I)
      ENDDO
c
c read velocity field
c
      WAIT = 4
      READ(10,*,END=300) IDUM, DUM1
      DO ITIME = 1 , NTIME
        READ(10,*,END=300) IDUM, DUM1
        IF (ITIME .GT. WAIT) COUNTER = COUNTER + 1
        DO I = 1 , NUMNP
          READ(10, *, END=300) IDUM, STORE1, STORE2  
          IF (ITIME .GT. WAIT) THEN
            IF ((I .GE. 7) .AND. (I .LE. 17)) THEN
              VX(I - 7 + 1) = VX(I - 7 + 1) + STORE1
              VY(I - 7 + 1) = VY(I - 7 + 1) + STORE2
            ENDIF
          ENDIF
        ENDDO
      ENDDO
300  CONTINUE
      DO II = 1 , 11
        VX(II) = VX(II) / COUNTER
        VY(II) = VY(II) / COUNTER
        WRITE (12, 1001) YNODE(II), VX(II), VY(II),' y vx vy'
1001   FORMAT (3(E14.5),A)
      ENDDO     
      STOP
      END

为什么counter的数值在debug过程一直是零? Parameter的用法有问题吗?
附:ns2dev.ve2文件:
2047        5000  numnp , itmax
           0  0.000000000000000E+000  it , time
   1      0.00000E+00   0.00000E+00   node , vx , vy
    2      0.00000E+00   0.00000E+00   node , vx , vy
    3      0.00000E+00   0.00000E+00   node , vx , vy
    4      0.00000E+00   0.00000E+00   node , vx , vy
    5      0.00000E+00   0.00000E+00   node , vx , vy
    6      0.00000E+00   0.00000E+00   node , vx , vy
    7      0.00000E+00   0.00000E+00   node , vx , vy
    8      0.00000E+00   0.00000E+00   node , vx , vy
    9      0.00000E+00   0.00000E+00   node , vx , vy
   10      0.00000E+00   0.00000E+00   node , vx , vy
   11      0.00000E+00   0.00000E+00   node , vx , vy
   12      0.00000E+00   0.00000E+00   node , vx , vy
   13      0.00000E+00   0.00000E+00   node , vx , vy
   14      0.00000E+00   0.00000E+00   node , vx , vy
   15      0.00000E+00   0.00000E+00   node , vx , vy
   16      0.00000E+00   0.00000E+00   node , vx , vy
   17      0.00000E+00   0.00000E+00   node , vx , vy

mesh.dat
17        11  numnp , numel
    1      0.00000E+00   0.00000E+00   1   node, x , y , ref. num.
    2      0.00000E+00   0.35803E-03   1   node, x , y , ref. num.
    3      0.00000E+00   0.70174E-03   1   node, x , y , ref. num.
    4      0.00000E+00   0.10317E-02   1   node, x , y , ref. num.
    5      0.00000E+00   0.13485E-02   1   node, x , y , ref. num.
    6      0.00000E+00   0.16526E-02   1   node, x , y , ref. num.
    7      0.00000E+00   0.19445E-02   1   node, x , y , ref. num.
    8      0.00000E+00   0.22247E-02   1   node, x , y , ref. num.
    9      0.00000E+00   0.24938E-02   1   node, x , y , ref. num.
   10      0.00000E+00   0.27521E-02   1   node, x , y , ref. num.
   11      0.00000E+00   0.30000E-02   1   node, x , y , ref. num.

[ Last edited by lijunjiexm on 2011-11-13 at 11:03 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zcius

至尊木虫 (知名作家)

【答案】应助回帖


余泽成(金币+1): 谢谢参与应助! 2011-11-13 21:39:53
COUNTER 没有赋初值能行吗?
做除法前不做判断?
2楼2011-11-13 11:05:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijunjiexm

铁虫 (小有名气)

ns2dev.ve2文件若改为:
2047        5000  numnp , itmax
           0  0.000000000000000E+000  it , time
  1      0.10296E+12  -0.13594E+10   node , vx , vy
   2      0.14944E+11  -0.13925E+10   node , vx , vy
   3      0.70706E+11  -0.29397E+09   node , vx , vy
   4      0.77626E+11   0.58172E+09   node , vx , vy
   5      0.62009E+11   0.70982E+09   node , vx , vy
   6      0.00000E+00   0.00000E+00   node , vx , vy
   7     -0.55675E+11   0.00000E+00   node , vx , vy
   8      0.17093E+11   0.00000E+00   node , vx , vy
   9     -0.27307E+11   0.00000E+00   node , vx , vy
  10      0.16832E+12   0.00000E+00   node , vx , vy
   11      0.14461E+11   0.00000E+00   node , vx , vy
  12      0.72585E+11   0.00000E+00   node , vx , vy
  13     -0.26770E+11   0.00000E+00   node , vx , vy
  14      0.28571E+11   0.00000E+00   node , vx , vy
  15      0.48992E+11   0.00000E+00   node , vx , vy
  16      0.36732E+11   0.00000E+00   node , vx , vy
  17      0.00000E+00   0.00000E+00   node , vx , vy

counter最好结果居然不为零,且值为NTIME-wait=6
3楼2011-11-13 11:10:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijunjiexm

铁虫 (小有名气)

引用回帖:
2楼: Originally posted by zcius at 2011-11-13 11:05:09:
COUNTER 没有赋初值能行吗?
做除法前不做判断?

初值不是默认是零吗?你看把把文件ns2dev.ve2改成上面的形式,counter就有数值了,这个很奇怪,我想不通,帮忙看一下哈,谢谢
4楼2011-11-13 11:15:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

maomao1210

金虫 (正式写手)

★ ★
余泽成(金币+2): 谢谢参与应助! 2011-11-13 21:40:12
引用回帖:
1楼: Originally posted by lijunjiexm at 2011-11-13 10:44:41:
程序如下:

PROGRAM PROCESS3

C *** Program to draw velocity profiles.
C
      IMPLICIT     NONE
      INTEGER*4    ITIME, I, II, NUMNP, NTIME, COUNTER, IDUM, IDUM1
      INTEGER*4    WAIT
...

不知道该表达的意思是什么,有太多的错误。。。。
变量定义类型有很多不匹配
读文件的时候,有太多的end =300,  其中读完文件mesh.dat,程序就跳到了300行了,而文件mesh.dat的数据显然没有用到, xnode,ynode.
貌似楼主是修改他人的程序,但貌似没理清楚逻辑顺序,而且变量混乱的很。
5楼2011-11-13 14:42:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lijunjiexm 的主题更新
信息提示
请填处理意见