Fortran Coder

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

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

[复制链接]

8

帖子

3

主题

0

精华

入门

F 币
30 元
贡献
18 点
跳转到指定楼层
#
发表于 2014-3-18 21:09:31 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
各位好

[Fortran] 纯文本查看 复制代码
PROGRAM TEST

!IN THE MAIN BODY

IOUTFILE=100
IOUTFIEL1=101

OPEN (IOUTFILE,'FILE NAME')

OPEN(IOUTFILE1,'FILE NAME')

CALL PRNT()

! THE MAIN BODY IGNORED FOR THIS MOMENT……


STOP
END PROGRAM

SUBROUTINE PRNT(IOUFILE,IOUTFILE1)

DO I=1,N
WRITE(IOUTFILE,'FORMAT') SOME FACTORS.....
ENDDO

!THE PREVIOUS PART WORK NORMALLY

WRITE(IOUTFILE1,*) 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..



也就是说,为什么啊?为什么不执行第二个WRITE语句?
现阶段,整个程序跑不通,如果跑通的时候,它是可以被执行的……


为什么,谢谢各位……


BY YATOU


分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

725

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
657 元
贡献
337 点

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

7#
发表于 2014-3-18 21:34:35 | 只看该作者
Yatou 发表于 2014-3-18 21:31
好, 我明白之后,再回来,确认我的原因,写在这里

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

我们这里有专门的 Debug 教程:
http://www.fcode.cn/guide-44-1.html

8

帖子

3

主题

0

精华

入门

F 币
30 元
贡献
18 点
6#
 楼主| 发表于 2014-3-18 21:31:47 | 只看该作者
chuxf 发表于 2014-3-18 21:26
这可能性就比较多了。
1.有可能执行了,但 IOUTFILE1 的值不对,所以你就没看到。比如这个代码中,拼错了 I ...

好, 我明白之后,再回来,确认我的原因,写在这里

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

ANYWAY,THX  继续讨厌着大写字母吧……HEHE

725

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
657 元
贡献
337 点

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

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

8

帖子

3

主题

0

精华

入门

F 币
30 元
贡献
18 点
地板
 楼主| 发表于 2014-3-18 21:23:05 | 只看该作者
chuxf 发表于 2014-3-18 21:19
各种拼写错误吧。

IOUTFILE1 写成了 IOUTFIEL1 之类的。

不是拼写错误,这些不是我从程序里复制过来的,是我在.TXT文本里输入的,所以,出现的个别拼写在原程序中是没有的。不好意思,没有说清楚,浪费了大家的时间。

就是,没有什么解释,对这种WRITE语句,如果程序不能完全跑通,它就不执行的原因?

再次道歉。我是想删繁就简的,原来的部分没有粘贴过来,示意地问一下。结果是一种不严谨的态度,浪费了专家的时间……

725

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
657 元
贡献
337 点

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

板凳
发表于 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..

8

帖子

3

主题

0

精华

入门

F 币
30 元
贡献
18 点
沙发
 楼主| 发表于 2014-3-18 21:14:54 | 只看该作者
FORTRAN 77,是有些不规范,大概表明这样的意思。 SORRY

11

帖子

0

主题

0

精华

入门

F 币
103 元
贡献
63 点

帅哥勋章爱心勋章

楼主
发表于 2014-3-18 21:12:20 | 只看该作者
看了半天,不知这是什么语言写的。。。。。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-11-23 13:49

Powered by Tencent X3.4

© 2013-2024 Tencent

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