陳述式函數
用途
陳述式函數定義單一陳述式中的函數。
語法
規則
陳述式函數是定義它所在之範圍設定單元的本端函數。 它不得定義在模組
或子模組
的範圍中。
name 決定從陳述式函數傳回之值的資料類型。 如果 name 的資料類型不符合純量表示式的資料類型,則會根據指派陳述式的規則,將純量表示式的值轉換為 name 的類型。
必須明確或隱含地指定函數及所有虛擬引數的名稱,才能成為純量資料物件。
純量表示式可以由常數、變數參照、函數及函數虛擬程序參照及本質運算組成。 如果表示式包含函數或函數虛擬程序的參照,則參照不需要明確介面,函數不需要明確介面或轉換本質,且結果必須是純量。 如果函數或函數虛擬程序的引數是陣列值,則必須是陣列名稱。
利用 XL Fortran,純量表示式也可以參照結構建構子。
純量表示式可以參照另一個陳述式函數,其為:
- 先前在相同的範圍設定單元中宣告,或
- 在主機範圍設定單元中宣告。
在表示式中參照其元素的具名常數及陣列必須在範圍設定單元中較早宣告,或讓使用或主機關聯可存取。
表示式中所參照的變數必須是:
- 陳述式函數的虛擬引數,或
- 可在範圍設定單元中存取
如果表示式中的實體是由隱含輸入規則所輸入,則其類型必須與任何後續類型宣告陳述式中提供的類型及類型參數一致。
純量表示式中的外部函數參照不得導致陳述式函數的任何虛擬引數變成未定義或重新定義。
如果陳述式函數定義在內部子程式中,且其名稱與主機中可存取實體的名稱相同,請在陳述式函數定義之前加上陳述式函數名稱的明確宣告。 例如,使用類型宣告陳述式。
類型為字元的陳述式函數或類型為字元的陳述式函數虛擬引數的長度規格必須是常數規格表示式。
範例
PARAMETER (PI = 3.14159)
REAL AREA,CIRCUM,R,RADIUS
AREA(R) = PI * (R**2) ! Define statement functions
CIRCUM(R) = 2 * PI * R ! AREA and CIRCUM
! Reference the statement functions
PRINT *,'The area is: ',AREA(RADIUS)
PRINT *,'The circumference is: ',CIRCUM(RADIUS)
相關資訊
- 虛擬引數
- 函數參照 (function reference)
- 判定類型,如需如何判定陳述式函數類型的相關資訊
