Fortran內部函數
內部函數為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]) | 邏輯型的不同種類型參數對象之間轉換 |