この節では、f95 が識別する VMS Fortran 組み込みルーチンを表にして示します。これらは規格外です。¤
総称名 |
個別名 |
関数 |
引数の型 |
結果の型 |
---|---|---|---|---|
|
CDABS CDEXP CDLOG CDSQRT |
絶対値 指数、e**a 自然対数 平方根 |
COMPLEX*16 COMPLEX*16 COMPLEX*16 COMPLEX*16 |
REAL*8 COMPLEX*16 COMPLEX*16 COMPLEX*16 |
|
CDSIN CDCOS |
正弦 余弦 |
COMPLEX*16 COMPLEX*16 |
COMPLEX*16 COMPLEX*16 |
DCMPLX |
DCONJG DIMAG DREAL |
倍精度複素数への変換 共役複素数 複素数の虚部 複素数の実部 |
任意の数字 COMPLEX*16 COMPLEX*16 COMPLEX*16 |
COMPLEX*16 COMPLEX*16 REAL*8 REAL*8 |
総称名 |
個別名 |
関数 |
引数の型 |
結果の型 |
---|---|---|---|---|
SIND |
SIND DSIND QSIND |
正弦 |
- REAL*4 REAL*8 REAL*16 |
- REAL*4 REAL*8 REAL*16 |
COSD |
COSD DCOSD QCOSD |
余弦 |
- REAL*4 REAL*8 REAL*16 |
- REAL*4 REAL*8 REAL*16 |
TAND |
TAND DTAND QTAND |
正接 |
- REAL*4 REAL*8 REAL*16 |
- REAL*4 REAL*8 REAL*16 |
ASIND |
ASIND DASIND QASIND |
逆正弦 |
- REAL*4 REAL*8 REAL*16 |
- REAL*4 REAL*8 REAL*16 |
ACOSD |
ACOSD DACOSD QACOSD |
逆余弦 |
- REAL*4 REAL*8 REAL*16 |
- REAL*4 REAL*8 REAL*16 |
ATAND |
ATAND DATAND QATAND |
逆正接 |
- REAL*4 REAL*8 REAL*16 |
- REAL*4 REAL*8 REAL*16 |
ATAN2D |
ATAN2D DATAN2D QATAN2D |
a1/a2 の 逆正接 |
- REAL*4 REAL*8 REAL*16 |
- REAL*4 REAL*8 REAL*16 |
総称名 |
個別名 |
関数 |
引数の型 |
結果の型 |
---|---|---|---|---|
IBITS |
IIBITS JIBITS KIBITS |
a1 から、初期ビット a2、 a3 ビット抽出 |
- INTEGER*2 INTEGER*4 INTEGER*8 |
- INTEGER*2 INTEGER*4 INTEGER*8 |
ISHFT |
IISHFT JISHFT KISHFT |
a1 を論理的に a2 ビットシフト。a2 が正ならば左へ、a2 が負ならば右へシフト |
- INTEGER*2 INTEGER*4 INTEGER*8 |
- INTEGER*2 INTEGER*4 INTEGER*8 |
ISHFTC |
IISHFTC JISHFTC |
a1 の右 a3 ビット、a2 桁だけ循環シフト |
- INTEGER*2 INTEGER*4 |
- INTEGER*2 INTEGER*4 |
IAND |
IIAND JIAND |
a1 と a2 のビット単位論理積 |
- INTEGER*2 INTEGER*4 |
- INTEGER*2 INTEGER*4 |
IOR |
IIOR JIOR KIOR |
a1 と a2 のビット単位論理和 |
- INTEGER*2 INTEGER*4 INTEGER*8 |
- INTEGER*2 INTEGER*4 INTEGER*8 |
IEOR |
IIEOR JIEOR KIEOR |
a1 と a2 のビット単位排他的論理和 |
- INTEGER*2 INTEGER*4 INTEGER*8 |
- INTEGER*2 INTEGER*4 INTEGER*8 |
NOT |
INOT JNOT KNOT |
ビット単位補数 |
- INTEGER*2 INTEGER*4 INTEGER*8 |
- INTEGER*2 INTEGER*4 INTEGER*8 |
IBSET |
IIBSET JIBSET KIBSET |
a1 で、ビット a2 を 1 に設定し、新しい a1 を戻す |
- INTEGER*2 INTEGER*4 INTEGER*8 |
- INTEGER*2 INTEGER*4 INTEGER*8 |
BTEST |
BITEST BJTEST BKTEST |
a1 のビット a2 が 1 ならば .TRUE. を戻す |
- INTEGER*2 INTEGER*4 INTEGER*8 |
- LOGICAL LOGICAL LOGICAL |
IBCLR |
IIBCLR JIBCLR KIBCLR |
a1 で、ビット a2 を 0 に設定し、新しい a1 を戻す |
- INTEGER*2 INTEGER*4 INTEGER*8 |
- INTEGER*2 INTEGER*4 INTEGER*8 |
Fortran 規格では多重整数型を扱えるかどうかは表明されていません。 コンパイラでは特定の INTEGER から INTEGER 関数名 (IABS 等) を総称名の特別な種類として扱うことによって、複数の整数型に対処します。引数型を使用して適当な実行時ルーチン名が選択されますが、プログラマはこの名前を関知できません。
VMS Fortran は同じような方法を取りますが、個別名が使用できます。
表 3–12 VMS 整数関数
個別名 |
関数 |
引数の型 |
結果の型 |
---|---|---|---|
IIABS JIABS KIABS |
絶対値 |
INTEGER*2 INTEGER*4 INTEGER*8 |
INTEGER*2 INTEGER*4 INTEGER*8 |
IMAX0 JMAX0 |
最大 |
INTEGER*2 INTEGER*4 |
INTEGER*2 INTEGER*4 |
IMIN0 JMIN0 |
最小 |
INTEGER*2 INTEGER*4 |
INTEGER*2 INTEGER*4 |
IIDIM JIDIM KIDIM |
超過分 |
INTEGER*2 INTEGER*4 INTEGER*8 |
INTEGER*2 INTEGER*4 INTEGER*8 |
IMOD JMOD |
a1/a2 の剰余 |
INTEGER*2 INTEGER*4 |
INTEGER*2 INTEGER*4 |
IISIGN JISIGN KISIGN |
符号の付け替え、|a1|*sign(a2) |
INTEGER*2 INTEGER*4 INTEGER*8 |
INTEGER*2 INTEGER*4 INTEGER*8 |