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
Pointers Fortran指针_Pointers_Fortran - Fatal编程技术网

Pointers Fortran指针

Pointers Fortran指针,pointers,fortran,Pointers,Fortran,我正在尝试使用已经存在的common块编写一个子例程。我不明白他们是如何使用指针功能的 有这样一个部分: parameter (ncvarmx=101) pointer (pfmxarcval,fmxarcval(ncvarmx,*))! max/min values for current postvalue and body ! min for this inc and ibody

我正在尝试使用已经存在的
common
块编写一个子例程。我不明白他们是如何使用指针功能的

有这样一个部分:

parameter (ncvarmx=101) 
pointer (pfmxarcval,fmxarcval(ncvarmx,*))! max/min values for current postvalue and body
                                               ! min for this inc and ibody
                                               ! max for this inc and ibody
                                               ! min from begin to this inc and ibody
                                               ! max from begin to this inc and ibody
common/marc_archp/parcelcd,parcellbl,parcndcd,parcndlbl,pfmxarcval 
real*8 fmxarcval
我基本上需要
fmxarcval
中的值。我假设有三个,虽然它不是一个向量


如何使用这样的指针?

这看起来像是使用了Cray指针的非标准但广泛实现的功能,不应与Fortran 90引入的指针概念混淆。我已经很久没有使用Cray指针了,所以我对它们的用法只有模糊的记忆,所以我不会提供可能不可靠的建议。但是,用克雷指针这个词武装起来,你最喜欢的搜索引擎就启动了。顺便说一句,我不明白为什么您假设
fmxarcval
中有3个值,您发布的代码片段中没有任何内容支持该假设。根据描述,我假设这3个值继承了x、y和z方向的值。我试试克雷指针。感谢您的提示。指针“pfmxarcval”似乎指向大小为“ncvarmx“x”*”的数组“fmxarcval”。这是如何在这里记录的:。另一方面,fmxarcval ist声明为数组。我不会更改它,因为它不是我的Commo块,并且被其他程序使用。因此,我将尝试找到解决问题的另一种方法。严格来说,指针是指针对象内存地址的整数表示。当指针与内存位置相关联时,指针对象成为取消引用指针的方式。实际上,指针对象成为地址为指针目标的变量的别名。您发布的代码段不包含指针指向内存位置的语句。如果代码可以工作,那么要么(a)不要用讨价还价来碰它,要么(b)将其重写为现代Fortran。我总是尝试采用后一种方法,但您似乎不得不采用formerI搜索指针指向的statament,但是可以找到它,我假设它在FEM子例程中。因此,我最好不要碰它,而是寻找另一种获取值的方法。谢谢你的帮助。