Fortran Coder

查看: 11529|回复: 7
打印 上一主题 下一主题

[输入输出] FORTRAN中WRITE不执行?

[复制链接]

712

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
607 元
贡献
311 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

楼主
发表于 2014-3-18 21:19:04 | 显示全部楼层
各种拼写错误吧。

IOUTFILE1 写成了 IOUTFIEL1 之类的。

建议你用 Implicit None

[Fortran] 纯文本查看 复制代码
PROGRAM TEST
  Implicit None
  integer :: IOUTFILE , IOUTFILE1
!IN THE MAIN BODY

IOUTFILE=100
IOUTFILE1=101

OPEN(IOUTFILE,File='file1.txt')

OPEN(IOUTFILE1,File='file2.txt')

CALL PRNT(IOUTFILE,IOUTFILE1)

! THE MAIN BODY IGNORED FOR THIS MOMENT……


STOP
END PROGRAM

SUBROUTINE PRNT(IOUTFILE,IOUTFILE1)
  Implicit None
  integer :: IOUTFILE , IOUTFILE1
  Integer :: n , i
  n = 3
DO I=1,N
WRITE(IOUTFILE,*) 's'
ENDDO

!THE PREVIOUS PART WORK NORMALLY

WRITE(IOUTFILE1,*) 'vs'!SOME FACTOR  !THE ERROR

!THIS 'WRITE' DOESN'T WORK, WHY?


RETURN 
END 

!AND THE FUNNY THING IS, IF THE PROGRAM WORK PERFECTLY, THE "WRITE" COULD BE EXCUTED..

712

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
607 元
贡献
311 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

沙发
发表于 2014-3-18 21:26:53 | 显示全部楼层
这可能性就比较多了。
1.有可能执行了,但 IOUTFILE1 的值不对,所以你就没看到。比如这个代码中,拼错了 IOUTFILE1
2.有可能没执行,是因为某些值错误,导致了某些 if 未满足条件,执行的路线偏离了。
总之可能很多,最好是 Debug 调试跟踪以便确定。

712

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
607 元
贡献
311 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

板凳
发表于 2014-3-18 21:34:35 | 显示全部楼层
Yatou 发表于 2014-3-18 21:31
好, 我明白之后,再回来,确认我的原因,写在这里

还有,我能说我不会DEBUG跟踪么……

我们这里有专门的 Debug 教程:
http://www.fcode.cn/guide-44-1.html
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-5 09:34

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表