VALUE (Fortran 2003)

用途

VALUE 属性指定哑元与实际自变量之间的自变量关联。 此关联允许您将哑参数与实际自变量的值一起传递。 此 Fortran 2003 传递值实现提供了 %VAL 内置函数的标准一致选项。

实际参数和关联的哑参数可以独立更改。 对哑参数的值或定义状态的更改不会影响实际参数。 具有 VALUE 属性的哑元自变量将与具有与实际自变量值相同的初始值的临时变量相关联。

语法

读取语法图跳过可视语法图VALUE :: dummy_argument_name_list

规则

必须仅为哑参数指定 VALUE 属性。

不得使用 %VAL%REF 内置函数来引用具有 VALUE 属性的哑参数或关联的实际参数。

具有带有 VALUE 属性的哑参数的引用过程必须具有显式接口。

具有 VALUE 属性的哑元自变量可以是字符类型。

不得为以下 指定 VALUE 属性:
  • 哑过程
  • 多态项
  • TS 29113 开始假设级对象TS 29113 结束

F2008 开始您可以在 VALUE属性,该属性可以是假设形状或显式形状的数组虚拟参数。 但是,你不能指定 VALUE属性,该属性具有延迟形状、假设大小或隐含形状。 F2008 结束

表 1. 与 VALUE 属性兼容的属性
INTENT(IN) OPTIONAL TARGET

如果哑参数同时具有 VALUETARGET 属性,那么在执行过程后,与该哑参数关联的任何指针都将变为未定义。

示例

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

相关信息

假定形状数组

显式形状数组

%VAL