schuhi 发表于 2015-9-18 14:40:21

*.f90和*.f

问个问题,fortran中的文件,2.f和2.f90有啥本质区别吗。我有个非常简单的程序,就是
write(*,*)"hello,world"
pause
end
放在2.f90里面就可以编译成功,而在2.f里面就不行。
谢谢大侠。。。

Villain 发表于 2015-9-18 16:34:21


区别就是编译器默认*.f或者*.for文件是固定格式,而默认*.f90是自由格式,而编译这两种格式所用的方法是不同的。
具体一点就是:
固定格式就是代码采用约定的书写方式来写,代码或者符号的位置在特定地方有特定含义。一般分为标号区,注释行,续行区,语句区,注释区。代码的位置必须正确。否则编译失败。
而自由格式是Fortran90以后的语法。简单来说代码或者符号的位置不再重要,废除了固定格式的一些书写规定。
如果你把
write(*,*)"hello,world"
pause
这两行之前输入六个空格再把代码复制到两个文件中编译,你和你的小伙伴会因为这次两个文件竟然都能成功编译而惊呆的。

fcode 发表于 2015-9-18 18:03:49

关于这两种格式,请参考彭国伦先生《Fortran95程序设计》,第三章第3.2节

schuhi 发表于 2015-9-18 20:55:32

Villain 发表于 2015-9-18 16:34
区别就是编译器默认*.f或者*.for文件是固定格式,而默认*.f90是自由格式,而编译这两种格式所用的方法是不 ...

非常感谢你的回答。

schuhi 发表于 2015-9-18 20:55:49

fcode 发表于 2015-9-18 18:03
关于这两种格式,请参考彭国伦先生《Fortran95程序设计》,第三章第3.2节

谢谢你的回答。
页: [1]
查看完整版本: *.f90和*.f