创建对Fortran类型的引用

时间:2015-03-06 12:32:42

标签: types fortran

如果我有以下Fortran代码,请使用先前定义的TYPE数组:

subroutine
use mModule, only: myTypeObjects

TYPE (myType) :: myTypeReference

myTypeReference = myTypeObjects(1)

end

myTypeReference是否引用TYPE对象,还是进行复制?

1 个答案:

答案 0 :(得分:0)

这是一个简短的小程序,输出1,2。 因此,这不是您正在考虑的python / C ++方式的引用。 a是它自己的对象,因此隐式赋值运算符执行默认副本。但是,可以为特定类型重写此赋值运算符。

Fortran没有"参考"程序员可以直接操作。虽然除非明确说明,否则所有函数参数都是通过引用传递的,但这对程序员来说是隐藏的。

如果你想要像行为这样的引用,Fortran确实有"指针"可以做类似的事情。 Fortran指针不同于" C"虽然指针,所以先阅读它们!

program blah
implicit none

type :: blah_t
  integer :: val
end type

type(blah_t) :: a,b

b%val = 2
a = b

a%val = 1

write(*,*) a,b

end program blah