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) 伺服器配接卡的 目標

如果虛擬引數同時具有 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