| "man f77" would point out the following switches to affect the size
of various floating-point datatypes. Your customer may want to use
-real_size 64
-integer_size 64
-double_size 128 (note that 128-bit floating is significantly
slower than 64-bit; avoid if you don't need it)
-double_size 64
Defines DOUBLE PRECISION declarations, constants, functions,
and intrinsics as REAL*8; it has no effect on DOUBLE COMPLEX
data. This option is only available on Digital UNIX systems.
This is the default.
-double_size 128
Defines DOUBLE PRECISION declarations, constants, functions,
and intrinsics as REAL*16; it has no effect on DOUBLE COMPLEX
data. This option is only available on Digital UNIX systems.
-i2 Makes default integer and logical variables 2-bytes long (same
as the -integer_size 16 option). The default is -integer_size
32. For optimal performance on Alpha systems, use 4- or 8-
byte integer or logical values instead of 2-byte values.
-i4 Makes default integer and logical variables 4-bytes long (same
as the -integer_size 32 option). This is the default.
-i8 Makes default integer and logical variables 8-bytes long (same
as the -integer_size 64 option). This option is only avail-
able on Alpha systems. The default is -integer_size 32.
-integer_size 16
Makes default integer and logical variables 2-bytes long. The
default is -integer_size 32. For optimal performance on Alpha
systems, use 4- or 8-byte integer or logical values instead of
2-byte values.
-integer_size 32
Makes default integer and logical variables 4-bytes long.
This is the default.
-integer_size 64
Makes default integer and logical variables 8-bytes long.
This option is only available on Alpha systems. The default
is -integer_size 32.
-r8 Defines REAL declarations, constants, functions, and intrin-
sics as DOUBLE PRECISION (REAL*8), and defines COMPLEX
declarations, constants, functions, and intrinsics as DOUBLE
COMPLEX (COMPLEX*16). This option is the same as the
-real_size 64 option.
-r16 Defines REAL declarations, constants, functions, and intrin-
sics as REAL*16. It does not affect COMPLEX objects. This
option is the same as the -real_size 128 option.
-real_size 32
Defines REAL declarations, constants, functions, and intrin-
sics as REAL*4, and defines COMPLEX declarations, constants,
functions, and intrinsics as COMPLEX (COMPLEX*8). This is the
default.
-real_size 64
Defines REAL declarations, constants, functions, and intrin-
sics as DOUBLE PRECISION (REAL*8), and defines COMPLEX
declarations, constants, functions, and intrinsics as DOUBLE
COMPLEX (COMPLEX*16). The default is -real_size 32.
-real_size 128
Defines REAL declarations, constants, functions, and intrin-
sics as REAL*16. It does not affect COMPLEX objects.
|
|
One caveat, since this was brought up just last week in the Fortran
notes file. If you declare a variable with an explicit size, e.g.
real*4 x
the -real_size 64 compiler switch will not change this declaration
to real*8 (64 bits).
It will work as expected when there is no size explicitly stated:
real x
If you have further questions, you can ask in TURRIS::FORTRAN.
------
As far as our "64 bit speciality" not being shown here, our 64bit
speciality in Alpha has to do with 64bit addressing, not floating point.
-- John Faricelli
|