この節では、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 |