Fortran Coder

Linux下Intel Fortran多文件编译的问题

查看数: 12583 | 评论数: 8 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-7-31 15:05

正文摘要:

各位前辈好,想请教个关于在Linux系统下编译多个文件的问题(本萌新目前只会用命令行编译,然而要编译的文件有一百个左右)。 要编译的代码(课题组的闭源代码)在Windows下用VS能成功编译,但Linux下好像没有这样成 ...

回复

joezhr 发表于 2021-8-4 16:27:44
风平老涡 发表于 2021-8-4 03:01
module必须在所有的定义语句之前。include语句是Fortran77的扩展,不是语言的一部分,不推荐使用。可用mo ...

了解了,多谢前辈
风平老涡 发表于 2021-8-4 03:01:17
joezhr 发表于 2021-8-3 21:21
感谢前辈的回复,按照您的方法在主程序汇总增加了
[mw_shl_code=fortran,true]include 'filename.fi'[/mw ...

module必须在所有的定义语句之前。include语句是Fortran77的扩展,不是语言的一部分,不推荐使用。可用module代替。
joezhr 发表于 2021-8-3 21:21:57
风平老涡 发表于 2021-8-2 18:59
include filename.fi 应该是在Fortran程序中, 而不是Makefile。 include是F77语句。

感谢前辈的回复,按照您的方法在主程序汇总增加了
[Fortran] 纯文本查看 复制代码
include 'filename.fi'

但由于这个.fi文件use了一个module,使用ifort编译时没有成功(照理说在一个module中或者头文件中引用另一个module应该是可行的吧?),现在打算直接把这个.fi文件中声明的变量直接分散写到其他的.f90文件中了,先尝试编译出来。
再次感谢前辈!
风平老涡 发表于 2021-8-2 18:59:31
joezhr 发表于 2021-8-2 09:36
前辈您好,按照您的建议我将主程序.f90文件和写有subroutine的.f90文件均放在了SOURCE后,所有.mod文件放 ...

include filename.fi 应该是在Fortran程序中, 而不是Makefile。 include是F77语句。
joezhr 发表于 2021-8-2 09:36:39
风平老涡 发表于 2021-8-2 07:59
这是include文件,无需编译。在所需位置加 include filename即可。

前辈您好,按照您的建议我将主程序.f90文件和写有subroutine的.f90文件均放在了SOURCE后,所有.mod文件放在了MODSOURCE后,并在Makefile中增加了一句 -include filename.fi,保存并在终端执行make时提示缺失分隔符。

于是我用sed命令将各行开头的空格替换为了制表符,现在缺失分隔符的报错没有了,但是出现了如下错误:
filename.fi: 1: *** 配方在第一个目标前开始。 停止。
我在搜索引擎没找到相关的解决方法,想请问这是什么原因导致的呢?
风平老涡 发表于 2021-8-2 07:59:42
joezhr 发表于 2021-8-1 14:35
感谢前辈的指点~ .fi文件是一个Intel Fortran的Header file:

在该文件中声明了许多整型和双精度的变量, ...

这是include文件,无需编译。在所需位置加 include filename即可。
风平老涡 发表于 2021-7-31 20:44:34
声明中间变量的.fi文件是什么?是Fortran? 后缀很奇怪。只有module编译出来的.mod文件在MODSOURCE。仅写了subroutine的.f90文件放在SOURCE.

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

GMT+8, 2024-5-17 04:20

Powered by Tencent X3.4

© 2013-2024 Tencent

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