首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fortran 90/95到fortran 77的转换软件

fortran 90/95到fortran 77的转换软件
EN

Stack Overflow用户
提问于 2013-10-24 18:34:32
回答 2查看 1.7K关注 0票数 0

我有一个有很多子例程的旧代码,它们都是用Fortran 77编写的,所以现在我想更新一个需要根据Fortran 90/95代码更新的子例程,有什么方法可以将它转换为77吗?

EN

回答 2

Stack Overflow用户

发布于 2020-03-17 19:17:02

有些编译器的声明允许您在固定格式和自由格式的Fortran文件之间切换。

正如其他人所指出的,尽可能使用最新的编译器,因为它们应该是向后兼容的。文件可以是固定形式的自由格式,并使用文件结尾.f.f90来分隔它们。

如果您确实需要,在英特尔中,如果您需要控制每行或每节文件的读取,则指令为!DIR$ FREEFORM!DIR$ NOFREEFORM。如果你“不得不”使用以固定格式编写的旧的包含文件,但又想在代码中使用自由格式的Fortran,那么这会很有用,然后你可以这样写:

代码语言:javascript
复制
module important_new_code

<lots of use-statements>

!DIR$ NOFREEFORM
include 'old_style_includes.incl'
!DIR$ FREEFORM

<rest of module in modern fortran>

end module

然而,这使得您的代码特定于编译器,通常不是一个好主意!最好的办法就是正确地解决你的问题。

票数 1
EN

Stack Overflow用户

发布于 2013-10-24 19:57:16

我不太确定你想做什么。但正如注释中指出的,您可以混合使用Fortran 90/95和Fortran 77 (但当然不是在同一个文件中)。例如,使用ifort,您可以编写一个f90文件,其中包含名为file_1.f90的主程序,以及另一个包含名为file_2.f77的主文件中调用的一些子例程的f77文件。要将它们编译在一起:

代码语言:javascript
复制
ifort -c file_1.f90
ifort -c file_2.f77
ifort file_1.o file_2.o -o file_1

在前两行中,您创建了对象文件(*.o),然后将它们链接在一起,创建了一个目标文件(这里是file_1)。如果你需要更多的库,你可以在最后一行中以通常的方式链接它们。希望这对你有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19563535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档