Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Optimization “使用”对绩效的影响_Optimization_Fortran - Fatal编程技术网

Optimization “使用”对绩效的影响

Optimization “使用”对绩效的影响,optimization,fortran,Optimization,Fortran,我目前正在编写一个大型的fortran90code。大多数模块都有大量子例程(>15)。模块在其规范部分中使用其他模块,而其子例程在规范部分上使用其他模块。下面是它的外观: MODULE OneModule USE GlobalConstant USE GlobalVariable CONTAINS SUBROUTINE Subroutine1() [...] END SUBROUTINE Subroutine1 SUBROUTINE Subroutine2(

我目前正在编写一个大型的
fortran90
code。大多数模块都有大量子例程(>15)。模块
在其规范部分中使用
其他模块,而其子例程
在规范部分上使用
其他模块。下面是它的外观:

MODULE OneModule
USE GlobalConstant
USE GlobalVariable

CONTAINS
    SUBROUTINE Subroutine1()
    [...]
    END SUBROUTINE Subroutine1

    SUBROUTINE Subroutine2()
    USE Mesh
    [...]
    END SUBROUTINE Subroutine2

    [Other Subroutines]
 END MODULE OneModule
在每个模块中看到这一点,我想知道这样做是为了清晰还是优化。如果模块
OneModule
有大量子例程,如果我们在规范部分
使用
模块
MESH
,如果只有少数子例程需要它,会影响性能吗?

我会感到震惊(并向编译器供应商编写错误报告)给定典型的编译器实现,如果使用位置对执行时间有任何影响。这可能会对编译时间产生无关紧要的影响

在内部或外部范围内定位更像是一个首选编程风格的问题,与标识符可访问性的程序需求交叉

(有一个例外,但与此无关。F2003为IEEE浮点支持引入了一组内在(编译器提供的)模块。仅存在其中一些模块就可以更改编译器为使用范围内的任何内容生成的代码。)