VALUE (Fortran 2003)
用途
VALUE 屬性指定虛擬與實際引數之間的引數關聯。 此關聯可讓您傳遞虛擬引數與實際引數的值。 此 Fortran 2003 逐值實作提供 %VAL 內建函數的標準符合選項。
實際引數和相關聯的虛擬引數可以獨立變更。 對虛擬引數的值或定義狀態所做的變更不會影響實際引數。 具有 VALUE 屬性的虛擬引數會變成與起始值與實際引數值相同的臨時變數相關聯。
語法
規則
您必須僅針對虛擬引數指定 VALUE 屬性。
您不得使用 %VAL 或 %REF 內建函數,以 VALUE 屬性或相關聯的實際引數來參照虛擬引數。
具有含 VALUE 屬性之虛擬引數的參照程序必須具有明確介面。
具有 VALUE 屬性的虛擬引數可以是字元類型。
您不得指定下列 項目的 VALUE 屬性:
- 虛擬程序
- 多型項目
假設等級物件
您可以在具有假設形狀或明確形狀的陣列虛擬引數上指定 VALUE 屬性。 不過,您無法在具有延遲形狀、假設大小或隱含形狀的陣列虛擬引數上指定 VALUE 屬性。
| INTENT (IN) | 伺服器配接卡的 | 目標 |
如果虛擬引數同時具有 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
