函數參照 (function reference)

在表示式中使用函數參照作為主要參照:
讀取語法圖跳過視覺化語法圖data_ref分隔元 (separator) binding_name1procedure_component_ref2function_name(actual_argument_spec_list )
附註:
  • 1 Fortran 2003
  • 2 Fortran 2003
執行函數參照會產生下列事件順序:
  1. 會評估本身為表示式的實際引數。
  2. 實際引數與其對應的虛擬引數相關聯。
  3. 控制傳送至指定的函數。
  4. 執行函數。
  5. 函數結果變數的值 (或指標函數的狀態或目標) 可供參照表示式使用。

Fortran 2003 開始 如果函數參照中的 binding_name 是特定函數的函數,則所參照的函數是 data-ref動態類型中具有該名稱之連結所識別的函數。

如果函數參照中的 binding_name 是一般程序的名稱,則會使用 data-ref 的宣告類型中具有該名稱的一般連結來選取特定連結:
  1. 如果參照與該一般連結的其中一個特定連結一致,則會選取該特定連結。
  2. 否則,如果參照與該一般連結的其中一個特定連結的元素參照一致,則會選取該特定連結。
參照指向在 data-ref動態類型中,由連結識別的程序,其名稱與選取的特定連結相同。 Fortran 2003 結束

在出現函數參照的陳述式內,函數參照的執行不得變更任何其他資料項目的值。 在 邏輯 IF 陳述式WHERE 陳述式的邏輯表示式中呼叫函數參照,可能會影響在表示式值為 true 時所執行陳述式中的實體。

IBM 延伸開始 提供引數清單內建函數 %VAL%REF ,以透過容許分別依值及參照傳遞引數,來輔助跨語言呼叫。 它們可以在非Fortran 程序參照及介面主體中的子程式陳述式中指定。 (請參閱 %VAL 和 %REF (IBM 延伸)。) 請參閱函數參照的 陳述式函數遞迴 範例。 IBM 延伸結束

進入可配置函數時,結果變數的配置狀態會變成未配置

函數結果變數可以在執行函數期間配置及取消配置任何次數。 不過,它必須配置且在退出函數時具有已定義的值。 從函數結束時,不會立即自動取消配置結果變數,而是在執行其中發生函數參照的陳述式之後進行自動取消配置。