符號約定:
l I代表整型;R代表實型;C代表復型;CH代表字符型;S代表字符串;L代表邏輯型;A代表數組;P代表指針;T代表派生類型;AT為任意類型。
l s:P表示s類型為P類型(任意kind值)。s:P(k)表示s類型為P類型(kind值=k)。
l […]表示可選參數。
l *表示常用函數。
表1 數值和類型轉換函數
| 函數名 | 說明 |
| ABS(x)* |
求x的絕對值∣x∣。x:I、R, 結果類型同x; x:C, 結果:R |
| AIMAG(x) |
求x的實部。x:C, 結果:R |
| AINT(x[,kind])* |
對x取整,並轉換為實數(kind)。x:R, kind:I, 結果:R(kind) |
| AMAX0(x1,x2,x3,…)* |
求x1,x2,x3,…中最大值。xI:I, 結果:R |
| AMIN0(x1,x2,x3,…)* |
求x1,x2,x3,…中最小值。xI:I, 結果:R |
| ANINT(x[,kind])* |
對x四舍五入取整,並轉換為實數(kind)。x:R, kind:I, 結果:R(kind) |
| CEILING(x)* |
求大於等於x的最小整數。x:R, 結果:I |
| CMPLX(x[,y][,kind])) |
將參數轉換為x、(x,0.0)或(x,y)。x:I、R、C, y:I、R,kind:I, 結果:C(kind) |
| CONJG(x) |
求x的共軛復數。x:C, 結果:C |
| DBLE(x)* |
將x轉換為雙精度實數。x:I、R、C, 結果:R(8) |
| DCMPLX(x[,y]) |
將參數轉換為x、(x,0.0)或(x,y)。x:I、R、C, y:I、R, 結果:C(8) |
| DFLOAT(x) |
將x轉換為雙精度實數。x:I, 結果:R(8) |
| DIM(x,y)* |
求x-y和0中最大值, 即MAX(x-y,0)。x:I、R, y的類型同x,結果類型同x |
| DPROD(x,y) |
求x和y的乘積,並轉換為雙精度實數。x:R, y:R, 結果:R(8) |
| FLOAT(x)* |
將x轉換為單精度實數。x:I, 結果:R |
| FLOOR(x)* |
求小於等於x的最大整數。x:R, 結果:I |
| IFIX(x)* |
將x轉換為整數(取整)。x:R, 結果:I |
| IMAG(x) |
同AIMAG(x) |
| INT(x[,kind])* |
將x轉換為整數(取整)。x:I、R、C, kind:I, 結果:I(kind) |
| LOGICAL(x[,kind])* |
按kind值轉換新邏輯值。x:L, 結果:L(kind) |
| MAX(x1,x2,x3,…)* |
求x1,x2,x3,…中最大值。xI為任意類型, 結果類型同xI |
| MAX1(x1,x2,x3,…)* |
求x1,x2,x3,…中最大值(取整)。xI:R, 結果:I |
| MIN(x1,x2,x3,…)* |
求x1,x2,x3,…中最小值。xI為任意類型, 結果類型同xI |
| MIN1(x1,x2,x3,…)* |
求x1,x2,x3…中最小值(取整)。xI:R, 結果:I |
| MOD(x,y)* |
求x/y的余數,值為x-INT(x/y)*y。x:I、R, y的類型同x, 結果類型同x |
| MODULO(x,y) |
求x/y余數,值為x-FLOOR(x/y)*y。x:I、R, y的類型同x, 結果類型同x |
| NINT(x[,kind])* |
將x轉換為整數(四舍五入)。x:R, kind:I, 結果:I(kind) |
| REAL(x[,kind])* |
將x轉換為實數。x:I、R、C, kind:I, 結果:R(kind) |
| SIGN(x,y)* |
求x的絕對值乘以y的符號。x:I、R, y的類型同x, 結果類型同x |
| SNGL(x) |
將雙精度實數轉換為單精度實數。x:R(8), 結果:R |
| ZEXT(x) |
用0向左側擴展x。x:I、L, 結果:I |
表2 三角函數
| 函數名 | 說明 |
| ACOS(x)* |
求x的反余弦arccos(x)。x:R,結果類型同x,結果值域:0~π |
| ACOSD(x)* |
求x的反余弦arccos(x)。x:R,結果類型同x,結果值域:0~180° |
| ASIN(x)* |
求x的反正弦arcsin(x)。x:R,結果類型同x,結果為弧度,值域:0~π |
| ASIND(x)* |
求x的反正弦arcsin(x)。x:R,結果類型同x,結果為度,值域:0~180° |
| ATAN(x)* |
求x的反正切arctg(x)。x:R,結果類型同x,結果為弧度,值域:-π/2~π/2 |
| ATAND(x)* |
求x的反正切arctg(x)。x:R,結果類型同x,結果為度,值域:-90~90° |
| ATAN2(y,x) |
求x的反正切arctg(y/x)。y:R,x和結果類型同x,結果值域:-π~π |
| ATAN2D(y,x) |
求x的反正切arctg(y/x)。y:R,x和結果類型同x,結果值域:-180~180° |
| COS(x)* |
求x的余弦cos(x)。x:R、C,x取值弧度,結果類型同x |
| COSD(x)* |
求x的余弦cos(x)。x:R,x取值度,結果類型同x |
| COSH(x) |
求x的雙曲余弦ch(x)。x:R,結果類型同x |
| COTAN(x)* |
求x的余切ctg(x)。x:R,x取值度,結果類型同x |
| SIN(x)* |
求x的正弦sin(x)。x:R、C,x取值弧度,結果類型同x |
| SIND(x)* |
求x的正弦sin(x)。x:R,x取值度,結果類型同x |
| SINH(x) |
求x的雙曲正弦sh(x)。x:R,結果類型同x |
| TAN(x)* |
求x的正切tg(x)。x:R,x取值弧度,結果類型同x |
| TAND(x)* |
求x的正切tg(x)。x:R,x取值度,結果類型同x |
| TANH(x) |
求x的雙曲正切th(x)。x:R,結果類型同x |
注:三角函數名前有C、D的函數為復數、雙精度型函數。
表3 指數、平方根和對數函數
| 函數名
|
說明 |
| ALOG(x) |
求x的自然對數ln(x)。x:R(4),結果:R(4) |
| ALOG10(x) |
求x以10為底一般對數log10(x)。x:R(4),結果:R(4) |
| EXP(x)* |
求指數,即ex。x:R、C,結果類型同x |
| LOG(x)* |
求自然對數,即ex。x:R、C,結果類型同x |
| LOG10(x)* |
求以10為底對數,即。x:R,結果類型同x |
| SQRT(x)* |
求x的平方根。x:R、C,結果類型同x |
注:指數函數名、平方根函數名、對數函數名前有C、D的函數為復數、雙精度型函數。
表4 參數查詢函數
| 函數名
|
說明 |
| ALLOCATED(a)* |
判定動態數組a是否分配內存。a:A,結果:L,分配:.TRUE.,未分配:.FALSE. |
| ASSOCIATED(p[,t])* |
判定指針p是否指向目標t。p:P,t:AT,結果:L,指向:.TRUE.,未指向:.FALSE. |
| DIGITS(x) |
查詢x的機內編碼數值部分二進制位數(除符號位和指數位)。x:I、R,結果:I |
| EPSILON(x)* |
查詢x類型可表示的最小正實數。x:R,結果類型同x。最小正實數:1.1920929E-07 |
| HUGE(x)* |
查詢x類型可表示的最大數。x:I、R,結果類型同x |
| ILEN(x) |
查詢x的反碼值。x:I,結果類型同x |
| KIND(x)* |
查詢x的kind參數值。x:I、R、C、CH、L,結果:I |
| MAXEXPONENT(x)* |
查詢x的最大正指數值。x:R,結果:I(4) |
| MINEXPONENT(x)* |
查詢x的最大負指數值。x:R,結果:I(4) |
| PRECISION(x)* |
查詢x類型有效數字位數。x:R、C,結果:I(4) |
| PRESENT(x) |
查詢可選形參x是否有對應實參。x:AT,結果:L。有:.TRUE.,沒有:.FALSE. |
| RADIX(x) |
查詢x類型的基數。x:I、R,結果:L |
| RANGE(x)* |
查詢x類型的指數范圍。x:I、R、C,結果:I(4) |
| SIZEOF(x)* |
查詢x的存儲分配字節數。x:AT,結果:I(4) |
| TINY(x)* |
查詢x的最小正值。x:R,結果類型同x |
表5 實數檢測和控制函數
| 函數名 | 說明 |
| EXPONENT(x)* |
求實數x機內編碼表示的指數值。x:R,結果:I |
| FRACTION(x)* |
求實數x機內編碼表示的小數值。x:R,結果類型同x |
| NEAREST(x,s) |
根據s的正負號求最接近x的值。x:R,結果:R,且不為0 |
| RRSPACING(x) |
求x與系統最大數之間的差值。x:R,結果類型同x |
| SCALE(x,I)* |
求x乘以2i。x:R,i:I,結果類型同x |
| SET_EXPONENT(x,i) |
求由x的機內編碼小數值與指數i組成的實數。x:R,i:I,結果類型同x |
| SPACING(x)* |
求x與x最近值的差值絕對值。x:R,結果類型同x |
