主题:f90
zxhlzu
[专家分:0] 发布于 2011-10-09 11:48:00
我用的是fortran6.0,,有个程序里面有好多include语句,怎么一编译就错了,那个include的程序怎么不是以end结束啊,是不是要用f90编译器啊?
回复列表 (共3个回复)
沙发
yeg001 [专家分:14390] 发布于 2011-10-09 15:31:00
include的东西相当于直接插入到代码里面. 只是代码中的一部分. 所以他还没有到end.
板凳
zxhlzu [专家分:0] 发布于 2011-10-09 16:40:00
我的问题可以详细描述如下,本人菜鸟,希望能解释详细点
fortran77中include *.f,不知道*.f文件是否需要在最后加上end结束,因为原程序没有写end,而我编译的时候出现错误:Error: Syntax error, found END-OF-FILE when expecting one of: <LABEL> <END-OF-STATEMENT> ; BLOCK BLOCKDATA PROGRAM TYPE COMPLEX BYTE CHARACTER ...,当我在*.f文件中加入end时,则编译没有问题了,可是链接的时候出现很多错误,因为*.f中定义了参数的值,不知道该如何修改:(请大家帮帮忙:)
3 楼
yeg001 [专家分:14390] 发布于 2011-10-09 20:05:00
那要看你的.f文件是不是包含一个完整的函数. 如果是完整的函数就有一个完整的开始和结束. 只是写end其实并不好. 是function就对应end function, 是subroutine就对应end subroutine. 当然都是end也可以, 只是不方便某些情况下阅读.
反正include的东西可以是完整的也可以是片段. 本身跟扩展名本身是无关的. 当然"*.f"文件确实一般是fortran文件, 可能是完整的.
根本来讲, 具体还是你想象这些代码东西都插入到文件里面是否合服fortran的语法就是了, 不能说死一个表象的规则.
我来回复