Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/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_Subroutine - Fatal编程技术网

Pointers fortran:如何将空指针传递给子例程,在子例程中定义并返回它

Pointers fortran:如何将空指针传递给子例程,在子例程中定义并返回它,pointers,fortran,subroutine,Pointers,Fortran,Subroutine,我想要一个小的子例程来复制指针,它已经被分配/定义了。我有以下测试代码: implicit none real ,pointer :: x(:),y(:) real,target:: px px=2.02 allocate(x(10)) x=20.0 call copy_1dptr(x,y) !code aborting write(6,*)'size x is ',size(x) write(6,*)'y is ',y end subroutine copy_1dptr(x,y) real

我想要一个小的子例程来复制指针,它已经被分配/定义了。我有以下测试代码:

implicit none
real ,pointer :: x(:),y(:)
real,target:: px
px=2.02
allocate(x(10))
x=20.0
call copy_1dptr(x,y)  !code aborting
write(6,*)'size x is ',size(x)
write(6,*)'y is ',y
end
subroutine copy_1dptr(x,y) 
real,pointer:: x(:),y(:)
allocate(y(size(x)))
y=x
end subroutine copy_1dptr
然而,(使用ifort),当我运行它时,我总是收到中止错误,消息是:

forrtl:severe(408):fort:(7):在指针Y被激活时尝试使用它 不与目标关联


似乎,空指针不能像我试图做的那样用作实际的伪指针。这是真的吗?有什么解决办法吗

指针参数需要显式接口。将子例程放置在模块中或使其内部:

contains

  subroutine copy_1dptr(x,y) 
  end subroutine

end program

弗拉基米尔,非常感谢你!。它现在工作得很好!