首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在编译时使用fortran检测体系结构?

如何在编译时使用fortran检测体系结构?
EN

Stack Overflow用户
提问于 2013-01-05 00:16:47
回答 1查看 540关注 0票数 1

我实际上正在做一个用Fortran编写的科学项目,所使用的函数集分为64位和32位版本。此外,一些变量在两个不同的体系结构中为同一函数定义了不同的属性。例如,在32位中,变量是整数*4,而在64位中,它是整数*8。

现在,我看到在C++中,可以使用文件开头的#ifndef来检查这一点,就像this post中解释的那样。Fortran中有没有可用的东西?你会向我推荐哪些可能的解决方案?

请记住,该项目应该在Windows和Linux上运行,具有多种体系结构。但是,任何建议都将不胜感激!

编辑:为了回复一些评论,假设你想要使用PARDISO solver,这是MKL库的一部分。我们可以调用两个子例程: pardiso和pardiso_64。Pardiso需要一个变量,在手册中称为PT (第6页,here),它允许pardiso处理数据。在32位版本中,它是一个整数*4,而在64位版本中,它是一个整数*8。基本上,我不想为这两个变量分配内存,然后使用IF语句选择正确的变量。

我现在想象预处理可以完成这项工作,但即使我在Fortran中工作,它也必须是C预处理器吗?例如,英特尔Fortran是否会像gcc/gfortran那样调用C预处理器?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-05 01:18:53

您可以使用Fortran内部函数测试变量的属性。为此,不需要使用预处理器指令。作为语言的一部分,内部函数将是标准的和可移植的。

如前所述,大多数Fortran编译器都支持预处理器指令。

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

https://stackoverflow.com/questions/14160753

复制
相关文章

相似问题

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