VALUE (Fortran 2003)
用途
VALUE 属性指定哑元与实际自变量之间的自变量关联。 此关联允许您将哑参数与实际自变量的值一起传递。 此 Fortran 2003 传递值实现提供了 %VAL 内置函数的标准一致选项。
实际参数和关联的哑参数可以独立更改。 对哑参数的值或定义状态的更改不会影响实际参数。 具有 VALUE 属性的哑元自变量将与具有与实际自变量值相同的初始值的临时变量相关联。
语法
规则
必须仅为哑参数指定 VALUE 属性。
不得使用 %VAL 或 %REF 内置函数来引用具有 VALUE 属性的哑参数或关联的实际参数。
具有带有 VALUE 属性的哑参数的引用过程必须具有显式接口。
具有 VALUE 属性的哑元自变量可以是字符类型。
不得为以下 项指定 VALUE 属性:
- 哑过程
- 多态项
假设级对象
您可以在 VALUE属性,该属性可以是假设形状或显式形状的数组虚拟参数。 但是,你不能指定 VALUE属性,该属性具有延迟形状、假设大小或隐含形状。 
| INTENT(IN) | OPTIONAL | TARGET |
如果哑参数同时具有 VALUE 和 TARGET 属性,那么在执行过程后,与该哑参数关联的任何指针都将变为未定义。
示例
Program validexm1
integer :: x = 10, y = 20
print *, 'before calling: ', x, y
call intersub(x, y)
print *, 'after calling: ', x, y
contains
subroutine intersub(x,y)
integer, value :: x
integer y
x = x + y
y = x*y
print *, 'in subroutine after changing: ', x, y
end subroutine
end program validexm1
预期输出:
before calling: 10 20
in subroutine after changing: 30 600
after calling: 10 600
