首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fortran77:指针数组还是结构数组?

fortran77:指针数组还是结构数组?
EN

Stack Overflow用户
提问于 2012-03-08 03:18:34
回答 1查看 781关注 0票数 1

我正在尝试优化fortran77中的代码,我想知道在例程或头文件中以以下方式声明的数组是指针数组还是结构数组:

情况1:实数*8 xred(maxatm)

案例2: common /atom/ x(maxatm)

我已经在互联网上搜索过了,但我找不到任何关于这方面的信息,我唯一发现的是,当你将一个数组传递给一个例程时,它是通过引用传递的。但是关于它是在头文件中声明的,还是在例程中声明的,我什么也没发现。

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-08 03:35:45

在.f77 'header'/common/.CMN文件中,您声明了要在程序中使用的变量。这些变量所需的空间是在编译时为包含头声明的每个文件建立的。因此,对于包含以下内容的'My.CMN‘

代码语言:javascript
复制
REAL*8 XEDG(-2:MAXNB+4)  ! left x-edges of cells    
REAL*8 YEDG(-2:MAXNB+4)  ! left y-edges of cells 
REAL*8 XC(-2:MAXNB+4) ! X CELL CENTERS
REAL*8 YC(-2:MAXNB+4) ! Y CELL CENTERS

每次通过INCLUDE 'My.CMN'在.f77文件中声明这些变量时,都会创建它们。

但是,使用公共块

代码语言:javascript
复制
COMMON /GRID/ XEDG,YEDG,XC,YC

告诉编译器包含在给定.CMN文件(或其他文件)中的变量在某种程度上是全局的/共享的,在这里编译器将使用指向内存中相关空间的指针。

代码语言:javascript
复制
The COMMON statement defines a block of main memory storage so that 
different program units can share the same data without using arguments.

有关Sun FORTRAN774.0编译器参考手册的COMMONhere的更多信息,请参阅here

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

https://stackoverflow.com/questions/9607674

复制
相关文章

相似问题

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