回 帖 发 新 帖 刷新版面

主题:帮我看看这个程序

这个程序运行完成后生成的  res.dat,每次运行后不能覆盖,只能在下一次运行程序前删除res.dat,才会生成新的res.dat文件。
   不知道为什么,麻烦知道的帮我看看!!!谢谢了

       REAL A(420,10),B(420,10)
       INTEGER STAR,END
     INTEGER M,N
       WRITE(*,*)'INPUT STAR NUMBER'
       READ(*,*) STAR
       WRITE(*,*)'INPUT END NUMBER'
       READ(*,*) END
       OPEN(UNIT=1,FILE='data.dat',STATUS='OLD')
       OPEN(UNIT=2,FILE='res.dat',STATUS='NEW')
       READ(1,*)((A(I,K),K=1,10),I=1,END)
     M=1
     N=1
       DO 10 I=STAR,END
             DO 20 K=1,10
               B(I,K)=A(I,K)/10
20           CONTINUE
10     CONTINUE
       MAX=ABS(A(1,1))/10
       DO 30 I=STAR,END
             DO 40 K=1,10
             IF(MAX.LT.ABS(A(I,K))/10) MAX=ABS(A(I,K))/10
40           CONTINUE
30     CONTINUE
       WRITE(2,*)'MAX=',MAX    
       WRITE(2,2)((B(I,K),K=1,10),I=STAR,END)
2      FORMAT(2F12.5)
       CLOSE(1)
       CLOSE(2)
      END

回复列表 (共2个回复)

沙发

OPEN(UNIT=2,FILE='res.dat',STATUS='NEW')
你把它用下面语句替换一下试试!
 OPEN(UNIT=2,FILE='res.dat',STATUS='unknown')


这样应该可以的!

板凳

OPEN(UNIT=2,FILE='res.dat',STATUS='NEW')
改为OPEN(UNIT=2,FILE='res.dat',STATUS='UNKNOWN')
NEW的话检测到存在该文件,不能继续执行编译,UNKNOWN则可以进行覆盖

我来回复

您尚未登录,请登录后再回复。点此登录或注册