介面區塊
介面區塊可讓您指定外部及虛擬程序的明確介面。 您也可以使用介面區塊來定義一般 ID。 介面區塊中的介面主體包含現有外部程序或虛擬程序的明確特定介面。 您也可以使用程序陳述式來指定程序的介面。
- INTERFACE_statement
- 如需語法詳細資料,請參閱 INTERFACE
- END_INTERFACE_statement
- 如需語法詳細資料,請參閱 END INTERFACE
- PROCEDURE_statement
- 如需語法詳細資料,請參閱 PROCEDURE
FUNCTION_interface_body
SUBROUTINE_interface_body
- FUNCTION_STATEMENT、SUBROUTINE_statement
- 如需語法詳細資料,請參閱 函數 和 子常式。
- specification_part
- 是 陳述式順序及執行順序中編號為 2 、 3 及 5 的陳述式群組中的陳述式順序。
- end_function_statement、end_subroutine_statement
- 如需這兩個陳述式的語法詳細資料,請參閱 END。
- 虛擬引數名稱可能不同。
- 您不需要指出程序是純程序,即使定義它的子程式是純程序也一樣。
- 您可以將純實際引數與非純的虛擬程序相關聯。
- 當你將固有元素程式與虛擬程式相關聯時,該虛擬程式不必是元素程式。
介面主體不能包含 ENTRY 陳述式、 DATA 陳述式、 FORMAT 陳述式、陳述式函數陳述式或可執行陳述式。 您可以使用項目名稱作為介面主體中的程序名稱,來指定項目介面。
除非您指定
IMPORT
陳述式,否則介面主體不會依主機關聯存取具名實體。 它會被視為具有具有預設隱含規則的主機。 如需隱含規則的討論,請參閱 判斷類型 。
介面區塊可以是抽象、通用或特定。 一般介面區塊必須在 INTERFACE 陳述式中指定一般規格,而抽象或特定介面區塊不得指定此類一般規格。 如需詳細資料,請參閱 INTERFACE 。
抽象或特定介面區塊內的介面主體可以包含子常式及函數的介面。
同屬名稱指定單一名稱來參照介面區塊中的所有程序。 每次有程序參照具有同屬名稱時,最多只會呼叫一個特定的程序。
僅當介面區塊具有通用規格且包含在可存取每一個程序名稱的範圍設定單元中時,才容許 PROCEDURE 陳述式。
PROCEDURE 陳述式中使用的程序名稱先前不得在任何具有相同同屬 ID 之可存取介面區塊的任何 MODULE PROCEDURE 陳述式中指定。
對於非Fortran 子程式的介面, FUNCTION 或 SUBROUTINE 陳述式中的虛擬引數清單可以明確指定傳遞方法。 如需詳細資料,請參閱 虛擬引數 。 
範例
MODULE M
CONTAINS
SUBROUTINE S1(IARG)
IARG = 1
END SUBROUTINE S1
SUBROUTINE S2(RARG)
RARG = 1.1
END SUBROUTINE S2
SUBROUTINE S3(LARG)
LOGICAL LARG
LARG = .TRUE.
END SUBROUTINE S3
END
USE M
INTERFACE SS
SUBROUTINE SS1(IARG,JARG)
END SUBROUTINE
MODULE PROCEDURE S1,S2,S3
END INTERFACE
CALL SS(II) ! Calls subroutine S1 from M
CALL SS(I,J) ! Calls subroutine SS1
END
SUBROUTINE SS1(IARG,JARG)
IARG = 2
JARG = 3
END SUBROUTINE
您一律可以透過程序的特定介面來參照程序。 如果程序有同屬介面,也可以透過同屬介面來參照程序。
在介面主體內,如果虛擬引數預期是虛擬程序,則它必須具有 EXTERNAL 屬性,或者必須具有虛擬引數的介面。
