【问题标题】:Generic procedures in fortran 2003fortran 2003 中的通用过程
【发布时间】:2012-10-24 06:23:37
【问题描述】:

我知道 fortran 有一个通用过程的概念,它允许用户定义几个特定的​​过程并将它们的接口收集在一个接口块中。然而,我不清楚的是,是否可以通过只实现一个泛型函数来消除代码重复。

作为一个例子,考虑内在的 SIN 函数。它可以接受实数和双精度参数。这是否意味着有两个实现说 SIN_REAL 和 SIN_DOUBLE_PRECISION 具有完全相同的代码?

为这个幼稚的问题道歉,我是一个 fortran 初学者。谢谢阅读。

【问题讨论】:

    标签: fortran fortran2003


    【解决方案1】:

    作为一个例子,考虑内在的 SIN 函数。两者都可以接受 实数和双精度参数。这是否意味着有两个 实现说 SIN_REAL 和 SIN_DOUBLE_PRECISION 与 相同的代码?

    是的。但是您可以管理常见的编程部分,将其放入包含文件中。

    【讨论】:

    • 有没有关于如何在某处在线执行此操作的示例?我很努力地搜索并没有成功。
    • 我们使用 Coco 的预处理来实现这样的事情:bitbucket.org/haraldkl/treelm/src/… 它为给定的数据类型实现了一些动态数组。在这个模块中:bitbucket.org/haraldkl/treelm/src/… 例如,它用于为各种内在数据类型实现这种数据结构。在其他地方,它也用于派生数据类型。
    猜你喜欢
    • 1970-01-01
    • 2020-01-03
    • 2019-08-02
    • 1970-01-01
    • 1970-01-01
    • 2013-02-22
    • 2013-11-19
    • 1970-01-01
    • 2019-01-03
    相关资源
    最近更新 更多