Fortran Coder

查看: 13711|回复: 8
打印 上一主题 下一主题

[求助] 求大大们指教几个Fortran77固定格式的问题!

[复制链接]

26

帖子

5

主题

0

精华

熟手

F 币
123 元
贡献
78 点
跳转到指定楼层
楼主
发表于 2015-9-2 21:44:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题如下:
      ①write(0,101)
         101    format(///5x,'please input data filename')
      请问write后的“0”指代什么输出通道?format后括号中的“///”是何意?
      ②write(6,667)
         667    format(10x,'value of nodal load'/5x,'x-force',8x,#'z-force',8x,'y-moment')
      请问format后括号中的“/”和“#”是何意?
      ③write(6,719)
        719     format(//30x,'nodal equivalent load')
      请问format后括号中“//”是何意?
      
还请各位大大不吝赐教哇!3Q!

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

1958

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1341 元
贡献
565 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

沙发
发表于 2015-9-2 22:09:57 | 只看该作者
语法中,通道号 0 没有特别指定,可能某些编译器上有特别的指定(例如标准输入输出),请查看编译器帮助文档。

/ 的意思是换行。

# 这个格式符在语法中不存在,是非法的写法。你可以考虑:
1.如果是书上的代码,是否是书上拼写错误?
2.你的编译器能否正常编译?
3.是否是续行,但排版错位了?

26

帖子

5

主题

0

精华

熟手

F 币
123 元
贡献
78 点
板凳
 楼主| 发表于 2015-9-2 22:55:39 | 只看该作者
本帖最后由 McP 于 2015-9-2 23:04 编辑
fcode 发表于 2015-9-2 22:09
语法中,通道号 0 没有特别指定,可能某些编译器上有特别的指定(例如标准输入输出),请查看编译器帮助文 ...

大大晚上好~感谢大大深夜解救小的!
请问大大,用/换行的写法在自由格式中也一样用么?
那①中连续的///是指连着换行么?

确实是书上的写法,但在源程序里是这样的
[Fortran] 纯文本查看 复制代码
      WRITE(0,50)NE,NP,NR,MT,MX
50    FORMAT(2X,'NUMBER OF ELEMENT NE=',I2/2X,
     #'NUMBER OF NODE NP=',I2/2X,
     #'NUMBER OF SUPPOT NODE NR=',I2/2X,
     #'NUMBER OF MATERIAL SET MT=',I2/2X,
     #'NUMBER OF WORKING CASE MX=',I2)
      READ(5,*)((AE(I,J),J=1,3),I=1,MT)
      WRITE(6,221)
221   FORMAT(2X,'N0. OF SET',2X,'MODULUS OF ELASTICITY',2X,
     #'CROSS-AREA',2X,'MOMEMT OF INERTIA')

      #用在第六个字符的位置,感觉像是用来换行的,Fortran77中有这种用法么?还看到有用*的(在和#相同的位置上),也是写在续行的开头

编译结果很奇怪,是1 error,0 warning,但是按F4键没有用,没有显示是什么地方出错。

谢谢大大

1958

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1341 元
贡献
565 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

地板
发表于 2015-9-3 06:12:32 | 只看该作者
//// 是连续换行。自由格式也可以使用(或者是格式符源代码格式无关)。

FORTRAN 固定格式(其实Fortran90也允许固定格式),续行是通过在第6格写入任意非空格非0字符实现。

遇到 1 error 一定给出错误提示!!这非常重要。以致于没有它,谁也不知道为啥。

26

帖子

5

主题

0

精华

熟手

F 币
123 元
贡献
78 点
5#
 楼主| 发表于 2015-9-4 12:44:33 | 只看该作者
fcode 发表于 2015-9-3 06:12
//// 是连续换行。自由格式也可以使用(或者是格式符跟源代码格式无关)。

FORTRAN 固定格式(其实Fortran ...

啊啊啊啊好久没有收到大大回复的提醒,一看原帖好像自己回复失败了。。。sorry
感觉老程序用行首数字跳来跳去简直要疯,大大您看例如:
[Fortran] 纯文本查看 复制代码
      write(10,100) ((NR(I),I=1,3)
      ... ...
100   blablabla
      ... ...
100   blublublu

这样重复出现行首数字的话,write后面是接哪个100呢?
猜测是向下按就近原则。。?

1958

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1341 元
贡献
565 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

6#
发表于 2015-9-4 13:02:10 | 只看该作者
同一个程序单元里,不允许有重复的语句标号。

在新的语法里,应尽可能避免使用语句标号。

26

帖子

5

主题

0

精华

熟手

F 币
123 元
贡献
78 点
7#
 楼主| 发表于 2015-9-4 16:42:10 | 只看该作者
fcode 发表于 2015-9-4 13:02
同一个程序单元里,不允许有重复的语句标号。

在新的语法里,应尽可能避免使用语句标号。 ...

恩恩,但是相同的标号出现在不同的子程序里用就OK么?

1958

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1341 元
贡献
565 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

8#
发表于 2015-9-4 17:03:48 | 只看该作者
是的。OK
回复

使用道具 举报

26

帖子

5

主题

0

精华

熟手

F 币
123 元
贡献
78 点
9#
 楼主| 发表于 2015-9-4 17:30:51 | 只看该作者

好嘞~多谢大大!
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-4-25 08:17

Powered by Tencent X3.4

© 2013-2024 Tencent

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