位置:首頁 > 高級語言 > Fortran教學 > Fortran內部函數

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