Fortran內(nèi)函數(shù)

2018-12-12 14:24 更新

征函數(shù)是被提供作為Fortran語言的一部分的一些常見和重要的功能。我們的陣列,字符和字符串的章節(jié)已經(jīng)討論其中的一些功能。

本征函數(shù)可以被歸類為:

  • 數(shù)值函數(shù)
  • 數(shù)學(xué)函數(shù)
  • 數(shù)字查詢函數(shù)
  • 浮點(diǎn)操作函數(shù)
  • 位操作功能
  • 字符函數(shù)
  • 種類函數(shù)
  • 邏輯函數(shù)
  • 陣列功能。

我們?cè)陉嚵姓鹿?jié)討論的陣列功能。在下面的部分,我們提供的其他類別所有這些功能的簡(jiǎn)要說明。

在功能名稱列,

  • A代表任何類型的數(shù)值變量
  • R代表真實(shí)或整數(shù)變量
  • X和Y代表實(shí)際變量
  • Z表示復(fù)變
  • W代表真實(shí)的或復(fù)雜的變量

數(shù)值函數(shù)

功能描述
ABS(A) 它返回一個(gè)絕對(duì)值
AIMAG(Z) 它返回一個(gè)復(fù)雜的數(shù)Z的虛部
AINT(A [,KIND]) 它截?cái)嗟男?shù)部分趨向于零,返回一個(gè)真正的,整數(shù)。
ANINT(A [,KIND]) 它返回一個(gè)真正的價(jià)值,最近的整數(shù)或整數(shù)。
CEILING(A [,KIND]) 它返回最小整數(shù)大于或等于號(hào)A.
CMPLX(X [,Y,KIND]) 它轉(zhuǎn)換成真正的變量X和Y以復(fù)數(shù)X + IY;如果Y不存在,則使用0。
CONJG(Z) 它返回任何復(fù)數(shù)Z的復(fù)共軛
DBLE(A) 把一路為雙精度實(shí)數(shù)。
DIM(X,Y) 它返回X和Y的正差
DPROD(X,Y) 它返回X和Y的雙精度真實(shí)的產(chǎn)品
FLOOR(A [,KIND]) 它提供了小于或等于數(shù)A的最大整數(shù)
INT(A [,KIND]) 將其轉(zhuǎn)換為數(shù)字(真實(shí)或整數(shù))為整數(shù),朝零截?cái)嗟膶?shí)部。
MAX(A1,A2 [,A3,...]) 它返回從參數(shù)的最大值,一切存在相同類型。
MIN(A1,A2 [,A3,...]) 它返回從參數(shù)的最小值,都存在相同類型。
MOD(A,P) 它被P返回A的剩余部分上師,這兩個(gè)參數(shù)是相同類型的(A-INT(A / P)×P)
MODULO(A,P) 它返回一個(gè)模p:(A樓(A / P)×P)
NINT(A [,KIND]) 它返回一個(gè)數(shù)字的最接近的整數(shù)
REAL(A [,KIND]) 將其轉(zhuǎn)換為真正的類型
SIGN(A,B) 它返回一個(gè)乘以P的標(biāo)志的絕對(duì)值基本上它傳輸?shù)腂標(biāo)志的為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

當(dāng)你編譯和執(zhí)行上面的程序,它會(huì)產(chǎn)生以下結(jié)果:

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)

數(shù)學(xué)函數(shù)

功能描述
ACOS(X) 它返回反余弦在范圍(0π,),以弧度表示。
ASIN(X) 它返回反正弦在范圍(-π/ 2,π/ 2),以弧度表示。
ATAN(X) 它返回該范圍中的反正切(-π/ 2,π/ 2),以弧度表示。
ATAN2(Y,X) 它返回反正切的范圍(-π,π),以弧度表示。
COS(X) 它返回的參數(shù)以弧度的余弦值。
COSH(X) 它返回參數(shù)的弧度的雙曲余弦值。
EXP(X) 它返回X的指數(shù)值
LOG(X) 它返回X的自然對(duì)數(shù)值
LOG10(X) 它返回常用對(duì)數(shù)(基數(shù)為10)X的值
SIN(X) 它返回的參數(shù)以弧度的正弦值。
SINH(X) 它返回的參數(shù)以弧度的雙曲正弦值。
SQRT(X) 它返回X的平方根
TAN(X) 它返回參數(shù)的弧度正切。
TANH(X) 它返回參數(shù)的弧度的雙曲正切值。

下面的程序一個(gè)時(shí)間后分別射彈的計(jì)算的水平和垂直位置x和y,叔:

其中,X = UT COS A和Y = UT罪 - 克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

當(dāng)你編譯和執(zhí)行上面的程序,它會(huì)產(chǎn)生以下結(jié)果:

x: 141.421356  y: -1818.57861  

數(shù)字查詢函數(shù)

這些功能與整數(shù)的某型號(hào)和浮點(diǎn)運(yùn)算工作。該函數(shù)返回相同種類的變量X,它可以是真實(shí)的,在某些情況下整數(shù)的數(shù)的屬性。

功能描述
數(shù)字(X) 它返回的模型的顯著位數(shù)。
EPSILON(X) 它返回相比一個(gè)是幾乎可以忽略不計(jì)的數(shù)目。換句話說,它返回最小值,使得實(shí)(1.0,種類(X))+ EPSILON(x)不等于實(shí)(1.0,種類(X))。
巨大的(X) 它返回模型的數(shù)量最多
MAXEXPONENT(X) 它返回該模型的最大指數(shù)
MINEXPONENT(X) 它返回模型的最低指數(shù)
PRECISION(X) 它返回小數(shù)精度
基數(shù)(X) 它返回該模型的基
RANGE(X) 它返回十進(jìn)制指數(shù)范圍
TINY(X) 它返回該模型的最小正數(shù)

浮點(diǎn)操作函數(shù)

功能描述
指數(shù)(x) 它返回一個(gè)型號(hào)的指數(shù)部分
分?jǐn)?shù)(X)的它返回一個(gè)數(shù)的小數(shù)部分
NEAREST(X,S) 它返回給定方向最近的不同處理器編號(hào)
RRSPACING(X) 它返回型號(hào)的鄰近給定數(shù)量的相對(duì)間距的倒數(shù)
SCALE(X,I) 它乘以它的基地實(shí)到的整數(shù)次冪
SET_EXPONENT(X,I)的它返回一個(gè)數(shù)的指數(shù)部分
間距(X) 它返回型號(hào)附近給定數(shù)量的絕對(duì)間距

位操作功能

功能描述
BIT_SIZE(I) 它返回該模型的比特?cái)?shù)
BTEST(I,POS) 位測(cè)試
IAND(I,J) 邏輯與
IBCLR(I,POS) 清除位
IBITS(I,POS,LEN) 比特提取
IBSET(I,POS) 設(shè)置位
IEOR(I,J) 異或
IOR(I,J) 包容OR
ISHFT(Ⅰ,SHIFT) 邏輯移位
ISHFTC(I,SHIFT [,SIZE]) 循環(huán)移位
NOT(Ⅰ) 邏輯補(bǔ)

字符函數(shù)

功能描述
ACHAR(Ⅰ) 它返回ASCII碼排序序列的第i個(gè)字符。
ADJUSTL(STRING) 它通過調(diào)節(jié)移除任何前導(dǎo)空格和插入尾隨空白左弦
ADJUSTR(STRING) 它的權(quán)利通過刪除尾隨空格和插入前導(dǎo)空格調(diào)整字符串。
CHAR(I [,KIND]) 它返回特定機(jī)器科幻?整理序列中的第i個(gè)字符
IACHAR(C) 它返回ASCII排序序列中字符的位置。
ICHAR(C) 它返回機(jī)器(處理器)特定網(wǎng)絡(luò)?整理序列中的字符的位置。
INDEX(STRING,SUBSTRING [,BACK]) 它返回子串的字符串中最左邊(最右邊如果返回.TRUE。)起始位置。
LEN(STRING) 它返回字符串的長(zhǎng)度。
LEN_TRIM(STRING) 它返回一個(gè)字符串的長(zhǎng)度沒有結(jié)尾的空白字符。
LGE(STRING_A,STRING_B) 詞法大于或等于
LGT(STRING_A,STRING_B) 詞法上大于
LLE(STRING_A,STRING_B) 詞法小于或等于
LLT(STRING_A,STRING_B) 詞法上小于
REPEAT(STRING,NCOPIES) 串聯(lián)重復(fù)
SCAN(STRING,SET [,BACK]) 它返回屬于集,或者0,如果沒有屬于字符串的最左邊(最右邊如果返回.TRUE。)字符的索引。
TRIM(STRING) 刪除結(jié)尾的空白字符
VERIFY(STRING,SET [,BACK]) 驗(yàn)證字符集的字符串

種類函數(shù)

功能描述
KIND(X) 它返回的那種類型的參數(shù)值。
SELECTED_INT_KIND(R)的它返回的那種特定網(wǎng)絡(luò)版的指數(shù)范圍類型的參數(shù)。
SELECTED_REAL_KIND([P,R]) 實(shí)樣類型的參數(shù)值,指定精度和范圍

邏輯功能

功能描述
邏輯(L [,KIND]) 邏輯與不同種類類型參數(shù)類型的對(duì)象之間的轉(zhuǎn)換

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)