內部函數為Fortran語言提供一些常見和重要的功能。我們已經討論過陣列,字元和字串一些函數。
內部函數可歸類為:
- 數值函數
- 數學函數
- 數字查詢函數
- 浮點操作函數
- 位操作函數
- 字元函數
- 類函數
- 邏輯函數
- 數組函數
我們在陣列章討論的陣列功能。在下面的章節中,提供了與其他類別的所有這些功能的簡要說明。
函數名稱列,
- A 代表任何類型的數值變數
- R 代表一個真實的或整型變數
- X 和 Y 代表實際變數
- Z 代表複數變數
- W 表示實數或複數變數
數值函數
| Function | 描述 |
|---|---|
| ABS (A) | 返回A的絕對值 |
| AIMAG (Z) | 返回複數Z的虛部 |
| AINT (A [, KIND]) | 截斷Z小數部分接近零,返回一個實數。 |
| ANINT (A [, KIND]) | 返回一個實數值,最接近的整數或整數。 |
| CEILING (A [, KIND]) | 返回比最小整數大於或等於數A. |
| CMPLX (X [, Y, KIND]) | 其轉換實數變數X和Y的一些複數X + iY; 如果Y不存在,則使用0。 |
| CONJG (Z) | 返回複數Z的複共軛 |
| DBLE (A) | 轉換A成到雙精度實數。 |
| DIM (X, Y) | 返回X和Y的正差 |
| DPROD (X, Y) | 返回實數 X 和 Y 產生的雙精度 |
| FLOOR (A [, KIND]) | 提供了比最大的整數小於或等於數A. |
| INT (A [, KIND]) | 將其轉換為數字(真實或整數)為整數,截斷向零的實部。 |
| MAX (A1, A2 [, A3,...]) | 返回的參數的最大值,相同類型 |
| MIN (A1, A2 [, A3,...]) | 返回的參數的最小值,相同類型 |
| MOD (A, P) | 返回用P除以A餘數部分,這兩個參數類型相同 (A-INT(A/P)*P) |
| MODULO (A, P) | 返回一個模P:(A-FLOOR(A/P)*P) |
| NINT (A [, KIND]) | 返回一個最接近整數A的數 |
| REAL (A [, KIND]) | 將其轉換為實數類型 |
| SIGN (A, B) | 返回一個乘以P. 符號的絕對值基本上它轉移B的標誌為A. |
示例
program numericFunctions implicit none ! define constants ! define variables real :: a, b complex :: z ! values for a, b a = 15.2345 b = -20.7689 write(*,*) 'abs(a): ',abs(a),' abs(b): ',abs(b) write(*,*) 'aint(a): ',aint(a),' aint(b): ',aint(b) write(*,*) 'ceiling(a): ',ceiling(a),' ceiling(b): ',ceiling(b) write(*,*) 'floor(a): ',floor(a),' floor(b): ',floor(b) z = cmplx(a, b) write(*,*) 'z: ',z end program numericFunctions
當編譯並執行上述程式,它會產生以下結果:
abs(a): 15.2344999 abs(b): 20.7688999 aint(a): 15.0000000 aint(b): -20.0000000 ceiling(a): 16 ceiling(b): -20 floor(a): 15 floor(b): -21 z: (15.2344999, -20.7688999)
數學函數
| 函數 | 描述 |
|---|---|
| ACOS (X) | 返回該反余弦在範圍(0,π),以弧度的形式。 |
| ASIN (X) | 返回該反正弦在範圍(-π/ 2,π/ 2),單位為弧度。 |
| ATAN (X) | 返回反正切的範圍(-π/ 2,π/ 2),單位為弧度。 |
| ATAN2 (Y, X) | 返回反正切的範圍(-π,π),以弧度表示。 |
| COS (X) | 返回參數的弧度的余弦值。 |
| COSH (X) | 返回參數的弧度的雙曲余弦值。 |
| EXP (X) | 返回X的指數值 |
| LOG (X) | 返回X的自然對數值 |
| LOG10 (X) | 返回常用對數(10為基數)X的值 |
| SIN (X) | 返回參數的弧度的正弦值。 |
| SINH (X) | 返回參數的弧度雙曲正弦。 |
| SQRT (X) | 返回X的平方根 |
| TAN (X) | 返回參數的弧度的切線。 |
| TANH (X) | 返回參數弧度的雙曲正切值。 |
示例
下列程式計算水準和垂直位置x和y表示拋射時間,t:
這裏, x = u t cos a 以及 y = u t sin a - g t2 / 2
program projectileMotion implicit none ! define constants real, parameter :: g = 9.8 real, parameter :: pi = 3.1415927 !define variables real :: a, t, u, x, y !values for a, t, and u a = 45.0 t = 20.0 u = 10.0 ! convert angle to radians a = a * pi / 180.0 x = u * cos(a) * t y = u * sin(a) * t - 0.5 * g * t * t write(*,*) 'x: ',x,' y: ',y end program projectileMotion
當編譯並執行上述程式,它會產生以下結果:
x: 141.421356 y: -1818.57861
數字查詢函數
這些函數的工作在整數模型和浮點運算。該函數返回相同的種類作為變數X,它可以是實數,在某些情況下,擁有整數的性質。
| 函數 | 描述 |
|---|---|
| DIGITS (X) | 返回顯著模型的位數。 |
| EPSILON (X) | 返回相比一個是幾乎可以忽略不計的數目。換句話說,它返回最小值,使得REAL( 1.0, KIND(X)) + EPSILON(X)為不等於REAL( 1.0, KIND(X))。 |
| HUGE (X) | 返回模型最多數量 |
| MAXEXPONENT (X) | 返回該模型的最大指數 |
| MINEXPONENT (X) | 返回該模型的最小指數 |
| PRECISION (X) | 返回小數精度 |
| RADIX (X) | 返回該模型的基數 |
| RANGE (X) | 返回十進位指數範圍 |
| TINY (X) | 返回該模型的最小正數 |
浮點操作函數
| 函數 | 描述 |
|---|---|
| EXPONENT (X) | 返回一個模型數的指數部分 |
| FRACTION (X) | 返回一個數的小數部分 |
| NEAREST (X, S) | 返回給定的方向最近的不同處理器編號 |
| RRSPACING (X) | 返回型號的鄰近給定數量的相對間隔的倒數 |
| SCALE (X, I) | 乘以一個實數由基數的整數次冪 |
| SET_EXPONENT (X, I) | 返回一個數的指數部分 |
| SPACING (X) | 返回型號的絕對間隔接近指定數值 |
位操作函數
| 函數 | 描述 |
|---|---|
| BIT_SIZE (I) | 返回該模型的比特數 |
| BTEST (I, POS) | 位測試 |
| IAND (I, J) | 邏輯與 |
| IBCLR (I, POS) | 清除位 |
| IBITS (I, POS, LEN) | 位提取 |
| IBSET (I, POS) | 設置位 |
| IEOR (I, J) | 異或 |
| IOR (I, J) | 包括或 |
| ISHFT (I, SHIFT) | 邏輯移位 |
| ISHFTC (I, SHIFT [, SIZE]) | 迴圈移位 |
| NOT (I) | 邏輯補 |
字元函數
| 函數 | 描述 |
|---|---|
| ACHAR (I) | 它返回ASCII整理序列中的第i個字元。 |
| ADJUSTL (STRING) | 它通過調節刪除任何前導空格和插入尾隨空白留下的字串 |
| ADJUSTR (STRING) | 它去除右尾隨空白和插入前導空格調整字串。 |
| CHAR (I [, KIND]) | 它返回特定機器整理序列中的第i個字元 |
| IACHAR (C) | 它返回字元的ASCII碼排序序列中的位置。 |
| ICHAR (C) | 它返回字元在機器(處理器)特定排序序列中的位置。 |
| INDEX (STRING, SUBSTRING [, BACK]) | 它返回SUBSTRING內STRING最左邊(最右邊如果返回.TRUE。)起始位置。 |
| LEN (STRING) | 它返回字串的長度。 |
| LEN_TRIM (STRING) | 它返回一個字串的長度沒有結尾的空白字元。 |
| LGE (STRING_A, STRING_B) | 辭彙上大於或等於 |
| LGT (STRING_A, STRING_B) | 辭彙上大於 |
| LLE (STRING_A, STRING_B) | 辭彙上大於或等於以下 |
| LLT (STRING_A, STRING_B) | 辭彙上小於 |
| REPEAT (STRING, NCOPIES) | 重複並置 |
| SCAN (STRING, SET [, BACK]) | 它返回STRING屬於集,或者0,如果都不屬於最左邊(最右邊如果返回.TRUE。)字元的索引。 |
| TRIM (STRING) | 刪除結尾的空白字元 |
| VERIFY (STRING, SET [, BACK]) | 驗證字元集的字串 |
類型函數
| 函數 | 描述 |
|---|---|
| KIND (X) | 它返回種類類型的參數值。 |
| SELECTED_INT_KIND (R) | 它返回一種為特定網路版的指數範圍類型的參數。 |
| SELECTED_REAL_KIND ([P, R]) | 實數類型的參數值,指定精度和範圍 |
邏輯函數
| Function | 描述 |
|---|---|
| LOGICAL (L [, KIND]) | 邏輯型的不同種類型參數對象之間轉換 |
上一篇:
Fortran模組
下一篇:
Fortran數字精度
