組み込み関数 |
6 |
![]() |
ANSI Fortran 規格以外の組み込み関数には、
印を付けています。
組み込み関数が複数のデータ型の引数を受け取る場合、組み込み関数には個別名と総称名があります。通常、個別名を使用した場合の戻り値は、引数と同じデータ型です。特定のデータ型の引数を扱う場合には、個別名によって関数を呼び出します。
複数のデータ項目 (たとえば sign(a1,a2)) を扱う関数では、すべての引数が同じデータ型である必要があります。
それぞれの組み込み関数について、以下の項目が示されています。
注 - -dbl、-i2、-r8、-xtypemap オプションを指定すると、変数のデフォルトのサイズが変わり、組み込み関数の引用に影響があります。548 ページの「注意」を参照してください。
a は、関数の 1 つの引数を表わします。a1 および a2 はそれぞれ、関数の 1 つ目の引数、2 つ目の引数を表わしています。ar および ai はそれぞれ、関数の複素の引数の実部と虚部を表わしています。
REAL*16 および COMPLEX*12 は、SPARC および PowerPC でのみ有効です。
「注 (1) 参照」のような記述がある場合は、551 ページの「関数の注記」の該当する番号を参照してください。
(ar2 + ai2)**(1/2)
a<0 の場合 int(a-.5)
a<0 の場合 int(a-.5)
a2<0 の場合 -|a1|
a1
QEXT
または 2
または 2
または 2
算術関数
表 6-1 算術関数
組み込み関数
定義
引数の数
総称名
個別名
型
引数
関数
絶対値
|a|
1
ABS
IABS
INTEGER
INTEGER
ABS
REAL
REAL
DABS
DOUBLE
DOUBLE
CABS
CONPLEX
REAL
QABS
REAL*16
REAL*16
ZABS
DOUBLE COMPLEX
DOUBLE
CDABS
DOUBLE COMPLEX
DOUBLE
CQABS
COMPLEX*32
REAL*16
切り捨て
int(a)
1
AINT
AINT
REAL
REAL
DINT
DOUBLE
DOUBLE
QINT
REAL*16
REAL*16
四捨五入
a
0 の場合 int(a+.5)
1
ANINT
ANINT
REAL
REAL
DNINT
DOUBLE
DOUBLE
QNINT
REAL*16
REAL*16
四捨五入の整数化
a
0 の場合 int(a+.5)
1
NINT
NINT
REAL
INTEGER
IDNINT
DOUBLE
INTEGER
IQNINT
REAL*16
INTEGER
剰余
a1-int(a1/a2)*a2
2
MOD
MOD
INTEGER
INTEGER
AMOD
REAL
REAL
DMOD
DOUBLE
DOUBLE
QMOD
REAL*16
REAL*16
符号の付け替え
a2
0 の場合|a1|
2
SIGN
ISIGN
INTEGER
INTEGER
SIGN
REAL
REAL
DSIGN
DOUBLE
DOUBLE
QSIGN
REAL*16
REAL*16
超過分
a1>a2 の場合 a1-a2
a2 の場合 0
2
DIM
IDIM
INTEGER
INTEGER
DIM
REAL
REAL
DDIM
DOUBLE
DOUBLE
QDIM
REAL*16
REAL*16
倍精度化または 4 倍精度化乗算
a1 * a2
2
-
DPROD
REAL
DOUBLE
QPROD
DOUBLE
REAL*16
最大値の選択
max(a1, a2, ...)
2
MAX
MAX0
INTEGER
INTEGER
AMAX1
REAL
REAL
DMAX1
DOUBLE
DOUBLE
QMAX1
REAL*16
REAL*16
AMAX0
AMAX0
INTEGER
REAL
MAX1
MAX1
REAL
INTEGER
最小値の選択
min(a1, a2, ...)
2
MIN
MIN0
INTEGER
INTEGER
AMIN1
REAL
REAL
DMIN1
DOUBLE
DOUBLE
QMIN1
REAL*16
REAL*16
AMAX0
AMIN0
INTEGER
REAL
MAX1
MIN1
REAL
INTEGER
型変換関数
ASCII マシン (Sun システムも含む) では、次のようになります。
表 6-2 型変換関数
変換型
(以下の型への変換)
引数の数
総称名
個別名
型
引数
関数
整数
1
INT
-
INTEGER
INTEGER
INT
REAL
INTEGER
IFIX
REAL
INTEGER
IDINT
DOUBLE
INTEGER
-
COMPLEX
INTEGER
-
COMPLEX*16
INTEGER
-
COMPLEX*32
INTEGER
IQINT
REAL*16
INTEGER
実数
1
REAL
REAL
INTEGER
REAL
FLOAT
INTEGER
REAL
-
REAL
REAL
SNGL
DOUBLE
REAL
SNGLQ
REAL*16
REAL
-
COMPLEX
REAL
-
COMPLEX*16
REAL
-
COMPLEX*32
REAL
倍精度
1
DBLE
DBLE
INTEGER
DOUBLE PRECISION
DFLOAT
INTEGER
DOUBLE PRECISION
DREAL
REAL
DOUBLE PRECISION
DBLEQ
DOUBLE
DOUBLE PRECISION
-
REAL*16
DOUBLE PRECISION
-
COMPLEX
DOUBLE PRECISION
-
COMPLEX*16
DOUBLE PRECISION
-
COMPLEX*32
DOUBLE PRECISION
4 倍精度実数
1
QREAL
QREAL
INTEGER
REAL*16
QFLOAT
INTEGER
REAL*16
-
REAL
REAL*16
QEXT
INTEGER
REAL*16
QEXTD
DOUBLE
REAL*16
-
REAL*16
REAL*16
-
COMPLEX
REAL*16
-
COMPLEX*16
REAL*16
-
COMPLEX*32
REAL*16
複素数
1
CMPLX
-
INTEGER
COMPLEX
-
REAL
COMPLEX
-
DOUBLE
COMPLEX
-
REAL*16
COMPLEX
-
COMPLEX
COMPLEX
-
COMPLEX*16
COMPLEX
-
COMPLEX*32
COMPLEX
倍精度複素数
1
DCMPLX
-
INTEGER
DOUBLE COMPLEX
-
REAL
DOUBLE COMPLEX
-
DOUBLE
DOUBLE COMPLEX
-
REAL*16
DOUBLE COMPLEX
-
COMPLEX
DOUBLE COMPLEX
-
COMPLEX*16
DOUBLE COMPLEX
-
COMPLEX*32
DOUBLE COMPLEX
4 倍精度複素数
1
QCMPLX
-
INTEGER
COMPLEX*32
-
REAL
COMPLEX*32
-
DOUBLE
COMPLEX*32
-
REAL*16
COMPLEX*32
-
COMPLEX
COMPLEX*32
-
COMPLEX*16
COMPLEX*32
-
COMPLEX*32
COMPLEX*32
整数
1
-
ICHAR
CHARACTER
INTEGER
-
IACHAR
文字
1
-
CHAR
INTEGER
CHARACTER
-
ACHAR
三角関数
表 6-3 三角関数
組み込み関数
定義
引数の数
総称名
個別名
型
引数
関数
正弦
sin(a)
1
SIN
SIN
REAL
REAL
DSIN
DOUBLE
DOUBLE
QSIN
REAL*16
REAL*16
CSIN
COMPLEX
COMPLEX
ZSIN
DOUBLE COMPLEX
DOUBLE COMPLEX
CDSIN
DOUBLE COMPLEX
DOUBLE COMPLEX
CQSIN
COMPLEX*32
COMPLEX*32
正弦 (度)
sin(a)
1
SIND
SIND
REAL
REAL
DSIND
DOUBLE
DOUBLE
QSIND
REAL*16
REAL*16
余弦
cos(a)
1
COS
COS
REAL
REAL
DCOS
DOUBLE
DOUBLE
QCOS
REAL*16
REAL*16
CCOS
COMPLEX
COMPLEX
ZCOS
DOUBLE COMPLEX
DOUBLE COMPLEX
CDCOS
DOUBLE COMPLEX
DOUBLE COMPLEX
CQCOS
COMPLEX*32
COMPLEX*32
余弦 (度)
cos(a)
1
COSD
COSD
REAL
REAL
DCOSD
DOUBLE
DOUBLE
QCOSD
REAL*16
REAL*16
正接
tan(a)
1
TAN
TAN
REAL
REAL
DTAN
DOUBLE
DOUBLE
QTAN
REAL*16
REAL*16
正接 (度)
tan(a)
1
TAND
TAND
REAL
REAL
DTAND
DOUBLE
DOUBLE
QTAND
REAL*16
REAL*16
逆正弦
arcsin(a)
1
ASIN
ASIN
REAL
REAL
DASIN
DOUBLE
DOUBLE
QASIN
REAL*16
REAL*16
逆正弦 (度)
arcsin(a)
1
ASIND
ASIND
REAL
REAL
DASIND
DOUBLE
DOUBLE
QASIND
REAL*16
REAL*16
逆余弦
arccos(a)
1
ACOS
ACOS
REAL
REAL
DACOS
DOUBLE
DOUBLE
QACOS
REAL*16
REAL*16
逆余弦 (度)
arccos(a)
1
ACOSD
ACOSD
REAL
REAL
DACOSD
DOUBLE
DOUBLE
QACOSD
REAL*16
REAL*16
逆正接
arctan(a)
1
ATAN
ATAN
REAL
REAL
DATAN
DOUBLE
DOUBLE
QATAN
REAL*16
REAL*16
arctan(a1/a2)
2
ATAN2
ATAN2
REAL
REAL
DATAN2
DOUBLE
DOUBLE
QATAN2
REAL*16
REAL*16
逆正接 (度)
arctan(a)
1
ATAND
ATAND
REAL
REAL
DATAND
DOUBLE
DOUBLE
QATAND
REAL*16
REAL*16
arctan(a1/a2)
2
ATAN2D
ATAN2D
REAL
REAL
DATAN2D
DOUBLE
DOUBLE
QATAN2D
REAL*16
REAL*16
双曲線正弦
sinh(a)
1
SINH
SINH
REAL
REAL
DSINH
DOUBLE
DOUBLE
QSINH
REAL*16
REAL*16
双曲線余弦
cosh(a)
1
COSH
COSH
REAL
REAL
DCOSH
DOUBLE
DOUBLE
QCOSH
REAL*16
REAL*16
双曲線正接
tanh(a)
1
TANH
TANH
REAL
REAL
DTANH
DOUBLE
DOUBLE
QTANH
REAL*16
REAL*16
その他の数学関数
表 6-4 その他の数学関数
組み込み関数
定義
引数の数
総称名
個別名
型
引数
関数
複素数の虚部
ai
1
IMAG
AIMAG
COMPLEX
REAL
DIMAG
DOUBLE COMPLEX
DOUBLE
QIMAG
COMPLEX*32
REAL*16
複素数の共役
(ar, -ai)
1
CONJG
CONJG
COMPLEX
COMPLEX
DCONJG
DOUBLE COMPLEX
DOUBLE COMPLEX
QCONJG
COMPLEX*32
COMPLEX*32
平方根
1
SQRT
SQRT
REAL
REAL
DSQRT
DOUBLE
DOUBLE
QSQRT
REAL*16
REAL*16
CSQRT
COMPLEX
COMPLEX
ZSQRT
DOUBLE COMPLEX
DOUBLE COMPLEX
CDSQRT
DOUBLE COMPLEX
DOUBLE COMPLEX
CQSQRT
COMPLEX*32
COMPLEX*32
立方根
1
CBRT
CBRT
REAL
REAL
DCBRT
DOUBLE
DOUBLE
QCBRT
REAL*16
REAL*16
CCBRT
COMPLEX
COMPLEX
ZCBRT
DOUBLE COMPLEX
DOUBLE COMPLEX
CDCBRT
DOUBLE COMPLEX
DOUBLE COMPLEX
CQCBRT
COMPLEX*32
COMPLEX*32
指数関数
ea
1
EXP
EXP
REAL
REAL
DEXP
DOUBLE
DOUBLE
QEXP
REAL*16
REAL*16
CEXP
COMPLEX
COMPLEX
ZEXP
DOUBLE COMPLEX
DOUBLE COMPLEX
CDEXP
DOUBLE COMPLEX
DOUBLE COMPLEX
CQEXP
COMPLEX*32
COMPLEX*32
自然対数
log a
1
LOG
ALOG
REAL
REAL
DLOG
DOUBLE
DOUBLE
QLOG
REAL*16
REAL*16
CLOG
COMPLEX
COMPLEX
ZLOG
DOUBLE COMPLEX
DOUBLE COMPLEX
CDLOG
DOUBLE COMPLEX
DOUBLE COMPLEX
CQLOG
COMPLEX*32
COMPLEX*32
常用対数
log 10a
1
LOG10
ALOG10
REAL
REAL
DLOG10
DOUBLE
DOUBLE
QLOG10
REAL*16
REAL*16
誤差関数
1
ERR
ERF
REAL
REAL
DERF
DOUBLE
DOUBLE
誤差関数
1.0 - erfa
1
ERR
ERFC
REAL
REAL
DERFC
DOUBLE
DOUBLE
文字関数
ASCII マシン (Sun システムも含む) では、次のようになります。
表 6-5 文字関数
組み込み関数
定義
引数の数
総称名
個別名
型
引数
関数
変換
文字への変換
1
-
CHAR
INTEGER
CHARACTER
-
ACHAR
整数への変換
1
-
ICHAR
CHARACTER
INTEGER
-
IACHAR 
(表 6-2 参照)
部分列の索引
文字列 a1 の中の部分列 a2 の位置
2
-
INDEX
CHARACTER
INTEGER
長さ
文字本体の長さ
1
-
LEN
CHARACTER
INTEGER
字句的に等しいか大きい
a1
a2
2
-
LGE
CHARACTER
LOGICAL
字句的に大きい
a1 > a2
2
-
LGT
CHARACTER
LOGICAL
字句的に等しいか小さい
a1
a2
2
-
LLE
CHARACTER
LOGICAL
字句的に小さい
a1 < a2
2
-
LLT
CHARACTER
LOGICAL
その他の関数
ビット単位関数、環境照会関数、記憶領域の割り当ておよび割り当て解除関数について説明します。
ビット操作
上記の関数は、組み込み関数または外部関数として使用可能です。 ライブラリのビット単位操作ルーチンについての詳細は、『Fortran ライブラリ・リファレンスマニュアル』を参照してください。
表 6-6 ビット単位関数
ビット単位操作
引数の数
個別名
型
引数
関数
補数
1
NOT
INTEGER
INTEGER
論理積
2
AND
INTEGER
INTEGER
2
IAND
INTEGER
INTEGER
内包的論理和
2
OR
INTEGER
INTEGER
2
IOR
INTEGER
INTEGER
排他的論理和
2
XOR
INTEGER
INTEGER
2
IEOR
INTEGER
INTEGER
シフト
2
ISHFT
INTEGER
INTEGER
左シフト
2
LSHIFT
INTEGER
INTEGER
右シフト
2
RSHIFT
INTEGER
INTEGER
論理的右シフト
2
LRSHFT
INTEGER
INTEGER
循環シフト
3
ISHFTC
INTEGER
INTEGER
ビット抽出
3
IBITS
INTEGER
INTEGER
ビットセット
2
IBSET
INTEGER
INTEGER
ビットテスト
2
BTEST
INTEGER
LOGICAL
ビットクリアー
2
IBCLR
INTEGER
INTEGER
環境照会関数
表 6-7 環境照会関数
定義
引数の数
総称
個別名
型
引数
関数
進法の基底
1
EPBASE
-
INTEGER
INTEGER
REAL
INTEGER
DOUBLE
INTEGER
REAL*16
INTEGER
有効ビット数
1
EPPREC
-
INTEGER
INTEGER
REAL
INTEGER
DOUBLE
INTEGER
REAL*16
INTEGER
最小指数
1
EPEMIN
-
REAL
INTEGER
DOUBLE
INTEGER
REAL*16
INTEGER
最大指数
1
EPEMAX
-
REAL
INTEGER
DOUBLE
INTEGER
REAL*16
INTEGER
最小非ゼロ数
1
EPTINY
-
REAL
REAL
DOUBLE
DOUBLE
REAL*16
REAL*16
表現可能の最大
1
EPHUGE
-
INTEGER
INTEGER
REAL
REAL
DOUBLE
DOUBLE
REAL*16
REAL*16
イプシロン
1
EPMRSP
-
REAL
REAL
DOUBLE
DOUBLE
REAL*16
REAL*16
メモリー
正確には、malloc と free は組み込み関数ではありません。これらについては、『Fortran ライブラリ・リファレンスマニュアル』でも説明しています。
表 6-8 メモリー関数
組み込み関数
定義
引数の数
総称名
個別名
型
引数
関数
位置
アドレス
1
-
LOC
任意
INTEGER
割り当て
記憶領域の割り当てアドレスを戻す。
1
-
MALLOC
INTEGER
INTEGER
割り当て解除
MALLOC で割り当てられた記憶領域の割り当て解除
1
-
FREE
任意
-
サイズ
引数のサイズをバイト数で戻す。
1
-
SIZEOF
任意の式または型名
INTEGER
注意
以下の注意は、本章のすべての組み込み関数表に適用されます。
| aimag | alog | amod | cabs | ccbrt | ccos | cdabs | cdcbrt | cdcos |
| cdexp | cdlog | cdsin | cdsqrt | cexp | clog | csin | csqrt | dabs |
| dacos | dacosd | dasin | dasind | datan | datand | dcbrt | dconjg | dcos |
| dcosd | dcosh | ddim | derf | derfc | dexp | dimag | dint | dlog |
| dmod | dnint | dprod | dsign | dsin | dsind | dsinh | dsqrt | dtan |
| dtanh | idnint | iidnnt | jidnnt | zabs | zcbrt | zcos | zexp | zlog |
| zsqrt | zabs |
| and | iand | ieor | iiand | iieor | iior | inot | ior | jiand |
| jieor | jior | jnot | lrshft | lshift | not | or | rshift | xor |
| jnot | lrshft |
(1) INT
0.0、 -60 度
arctan (B/A) < +60 度 です。
)
)
| 総称名 | 個別名 | 関数 | 引数の型 | 結果の型 |
|---|---|---|---|---|
| CDABS | 絶対値 | COMPLEX*16 | REAL*8 | |
| CDEXP | 指数、e**a | COMPLEX*16 | COMPLEX*16 | |
| CDLOG | 自然対数 | COMPLEX*16 | COMPLEX*16 | |
| CDSQRT | 平方根 | COMPLEX*16 | COMPLEX*16 | |
| CDSIN | 正弦 | COMPLEX*16 | COMPLEX*16 | |
| CDCOS | 余弦 | COMPLEX*16 | COMPLEX*16 | |
| DCMPLX | 倍精度複素数への変換 | 任意の数字 | COMPLEX*16 | |
| DCONJG | 共役複素数 | COMPLEX*16 | COMPLEX*16 | |
| DIMAG | 複素数の虚部 | COMPLEX*16 | REAL*8 | |
| DREAL | 複素数の実部 | COMPLEX*16 | REAL*8 |
| 総称名 | 個別名 | 関数 | 引数の型 | 結果の型 |
|---|---|---|---|---|
| SIND | 正弦 | - | - | |
| SIND | 正弦 | REAL*4 | REAL*4 | |
| DSIND | 正弦 | REAL*8 | REAL*8 | |
| QSIND | 正弦 | REAL*16 | REAL*16 | |
| COSD | 余弦 | - | - | |
| COSD | 余弦 | REAL*4 | REAL*4 | |
| DCOSD | 余弦 | REAL*8 | REAL*8 | |
| QCOSD | 余弦 | REAL*16 | REAL*16 | |
| TAND | 正接 | - | - | |
| TAND | 正接 | REAL*4 | REAL*4 | |
| DTAND | 正接 | REAL*8 | REAL*8 | |
| QTAND | 正接 | REAL*16 | REAL*16 | |
| ASIND | 逆正弦 | - | - | |
| ASIND | 逆正弦 | REAL*4 | REAL*4 | |
| DASIND | 逆正弦 | REAL*8 | REAL*8 | |
| QASIND | 逆正弦 | REAL*16 | REAL*16 | |
| ACOSD | 逆余弦 | - | - | |
| ACOSD | 逆余弦 | REAL*4 | REAL*4 | |
| DACOSD | 逆余弦 | REAL*8 | REAL*8 | |
| QACOSD | 逆余弦 | REAL*16 | REAL*16 | |
| ATAND | 逆正接 | - | - | |
| ATAND | 逆正接 | REAL*4 | REAL*4 | |
| DATAND | 逆正接 | REAL*8 | REAL*8 | |
| QATAND | 逆正接 | REAL*16 | REAL*16 | |
| ATAN2D | a1/a2 の 逆正接 | - | - | |
| ATAN2D | a1/a2 の 逆正接 | REAL*4 | REAL*4 | |
| DATAN2D | a1/a2 の 逆正接 | REAL*8 | REAL*8 | |
| QATAN2D | a1/a2 の 逆正接 | REAL*16 | REAL*16 |
| 総称名 | 個別名 | 関数 | 引数の型 | 結果の型 |
|---|---|---|---|---|
| IBITS | a1 から、初期ビット a2、a3 ビット抽出 | - | - | |
| IIBITS | a1 から、初期ビット a2、a3 ビット抽出 | INTEGER*2 | INTEGER*2 | |
| JIBITS | a1 から、初期ビット a2、a3 ビット抽出 | INTEGER*4 | INTEGER*4 | |
| ISHFT | a1 を論理的に a2 ビットシフト * | - | - | |
| IISHFT | a1 を論理的に左に a2 ビットシフト | INTEGER*2 | INTEGER*2 | |
| JISHFT | a1 を論理的に左に a2 ビットシフト | INTEGER*4 | INTEGER*4 | |
| ISHFTC | a1 の右 a3 ビット、 a2 桁だけ循環シフト | - | - | |
| IISHFTC | a1 の右 a3 ビット、 a2 桁だけ循環シフト | INTEGER*2 | INTEGER*2 | |
| JISHFTC | a1 の右 a3 ビット、 a2 桁だけ循環シフト | INTEGER*4 | INTEGER*4 | |
| IAND | a1 と a2 のビット単位論理積 | - | - | |
| IIAND | a1 と a2 のビット単位論理積 | INTEGER*2 | INTEGER*2 | |
| JIAND | a1 と a2 のビット単位論理積 | INTEGER*4 | INTEGER*4 | |
| IOR | a1 と a2 のビット単位論理和 | - | - | |
| IIOR | a1 と a2 のビット単位論理和 | INTEGER*2 | INTEGER*2 | |
| JIOR | a1 と a2 のビット単位論理和 | INTEGER*4 | INTEGER*4 | |
| IEOR | a1 と a2 のビット単位排他的論理積 | - | - | |
| IIEOR | a1 と a2 のビット単位排他的論理積 | INTEGER*2 | INTEGER*2 | |
| JIEOR | a1 と a2 のビット単位排他的論理積 | INTEGER*4 | INTEGER*4 | |
| NOT | ビット単位補数 | - | - | |
| INOT | ビット単位補数 | INTEGER*2 | INTEGER*2 | |
| JNOT | ビット単位補数 | INTEGER*4 | INTEGER*4 | |
| IBSET | a1 で、ビット a2 を 1 に設定 | - | - | |
| IIBSET | a1 で、ビット a2 を 1 に設定し、新しい a1 を戻す | INTEGER*2 | INTEGER*2 | |
| JIBSET | a1 で、ビット a2 を 1 に設定し、新しい a1 を戻す | INTEGER*4 | INTEGER*4 | |
| BTEST | a1 のビット a2 が 1 ならば、.TURE. を戻す | - | - | |
| BITEST | a1 のビット a2 が 1 ならば、.TURE. を戻す | INTEGER*2 | INTEGER*2 | |
| BJTEST | a1 のビット a2 が 1 ならば、.TURE. を戻す | INTEGER*4 | INTEGER*4 | |
| IIBCLR | a1 で、ビット a2 を 0 に設定し、新しい a1 を戻す | - | - | |
| IIBCLR | a1 で、ビット a2 を 0 に設定し、新しい a1 を戻す | INTEGER*2 | INTEGER*2 | |
| JIBCLR | a1 で、ビット a2 を 0 に設定し、新しい a1 を戻す | INTEGER*4 | INTEGER*4 |
多重整数型
Fortran 77 規格では多重整数型を扱えるかどうかは表明されていません。f77 では特定の INTEGER
INTEGER 関数名 (IABS 等) を総称名の特別な種類として扱うことによって、複数の整数型に対処します。引数型を使用して適当な実行時ルーチン名が選択されますが、プログラマはこの名前を関知できません。
| 個別名 | 関数 | 引数の型 | 結果の型 |
|---|---|---|---|
| IIABS | 絶対値 | INTEGER*2 | INTEGER*2 |
| JIABS | 絶対値 | INTEGER*4 | INTEGER*4 |
| IMAX0 | 最大 1 | INTEGER*2 | INTEGER*2 |
| JMAX0 | 最大 1 | INTEGER*4 | INTEGER*4 |
| IMIN0 | 最小 1 | INTEGER*2 | INTEGER*2 |
| JMIN0 | 最小 1 | INTEGER*4 | INTEGER*4 |
| IIDIM | 超過分 2 | INTEGER*2 | INTEGER*2 |
| JIDIM | 超過分 2 | INTEGER*4 | INTEGER*4 |
| IMOD | a1/a2 の剰余 | INTEGER*2 | INTEGER*2 |
| JMOD | a1/a2 の剰余 | INTEGER*4 | INTEGER*4 |
| IISIGN | 符号の付け替え、|a1|* sign(a2) | INTEGER*2 | INTEGER*2 |
| JISIGN | 符号の付け替え、|a1|* sign(a2) | INTEGER*4 | INTEGER*4 |
| 1
引数は少なくても 2 個 でなければならない 2 超過分 a1-min(a1,a2)
|
特定型に強制的に解釈される関数
VMS Fortran 関数の中には、強制的に特定の INTEGER 型にする関数があります。
| 個別名 | 関数 | 引数の型 | 結果の型 |
|---|---|---|---|
| IINT | ゼロへ切り捨て | REAL*4 | INTEGER*2 |
| JINT | ゼロへ切り捨て | REAL*4 | INTEGER*4 |
| IIDINT | ゼロへ切り捨て | REAL*8 | INTEGER*2 |
| JIDINT | ゼロへ切り捨て | REAL*8 | INTEGER*4 |
| IIQINT | ゼロへ切り捨て | REAL*16 | INTEGER*2 |
| JIQINT | ゼロへ切り捨て | REAL*16 | INTEGER*4 |
| ININT | 四捨五入、INT(a+.5*sign(a)) | REAL*4 | INTEGER*2 |
| JNINT | 四捨五入、INT(a+.5*sign(a)) | REAL*4 | INTEGER*4 |
| IIDNNT | 四捨五入、INT(a+.5*sign(a)) | REAL*8 | INTEGER*2 |
| JIDNNT | 四捨五入、INT(a+.5*sign(a)) | REAL*8 | INTEGER*4 |
| IIQNNT | 四捨五入、INT(a+.5*sign(a)) | REAL*16 | INTEGER*2 |
| JIQNNT | 四捨五入、INT(a+.5*sign(a)) | REAL*16 | INTEGER*4 |
| IIFIX | 固定 | REAL*4 | INTEGER*2 |
| JIFIX | 固定 | REAL*4 | INTEGER*4 |
| IMAX1(a,a2, ...) | 2 つ以上の引数の最大値 | REAL*4 | INTEGER*2 |
| JMAX1(a,a2, ...) | 2 つ以上の引数の最大値 | REAL*4 | INTEGER*4 |
| IMIN1(a,a2, ...) | 2 つ以上の引数の最小値 | READ*4 | INTEGER*2 |
| JMIN1(a,a2, ...) | 2 つ以上の引数の最小値 | READ*4 | INTEGER*4 |
総称名へ変換される関数
場合によっては、VMS 個別名は f77 総称名へ変換されます。
| 個別名 | 関数 | 引数の型 | 結果の型 |
|---|---|---|---|
| FLOATI | REAL*4 へ変換 | INTEGER*2 | REAL*4 |
| FLOATJ | REAL*4 へ変換 | INTEGER*4 | REAL*4 |
| DFLOTI | REAL*8 へ変換 | INTEGER*2 | REAL*8 |
| DFLOTJ | REAL*8 へ変換 | INTEGER*4 | REAL*8 |
| AIMAX0 | 最大 | INTEGER*2 | REAL*4 |
| AJMAX0 | 最大 | INTEGER*4 | REAL*4 |
| AIMIN0 | 最小 | INTEGER*2 | REAL*4 |
| AJMIN0 | 最小 | INTEGER*4 | REAL*4 |
ゼロ拡張
次のゼロ拡張関数は、f77 により識別されます。最初使用されない上位ビットはゼロに設定され、表で示された幅まで最上位ビットの方向へ拡張されます。
| 総称名 | 個別名 | 関数 | 引数の型 | 結果の型 |
|---|---|---|---|---|
| ZEXT | 総称 | ゼロ拡張 | - | - |
| IZEXT | ゼロ拡張 |
BYTE LOGICAL*1 LOGICAL*2 INTEGER*2 | INTEGER*2 | |
| JZEXT | ゼロ拡張 |
BYTE LOGICAL*1 LOGICAL*2 LOGICAL*4 INTEGER INTEGER*2 INTEGER*4 | INTEGER*4 |