[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference turris::digital_unix

Title:DIGITAL UNIX(FORMERLY KNOWN AS DEC OSF/1)
Notice:Welcome to the Digital UNIX Conference
Moderator:SMURF::DENHAM
Created:Thu Mar 16 1995
Last Modified:Fri Jun 06 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:10068
Total number of notes:35879

8644.0. "Fortran compiler on Digital Unix ?...." by QDOV01::BHARGAVI () Thu Jan 30 1997 05:47

    Hi,
    
    I understand that the fortran compiler on digital unix is a 32 bit
    port and hence the single prescission floating point is 32.
    
    One of our customers who has recently bought an Alpha station with 
    Digital UNIX and Fortran, is facing a lot of problem as it does not
    give single prescission floating point of 64.
    
    Our 64 bit speciality is not seen here.
    
    Is there any compiler which takes care of this problem ?
    
    This info is needed at the earliest.  Please help us out.
    
    regards
    
    Bhargavi 
    
T.RTitleUserPersonal
Name
DateLines
8644.1Digital FORTRAN gives you lots of choicesWIBBIN::NOYCEPulling weeds, pickin' stonesThu Jan 30 1997 08:2471
"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.
 
8644.2One further pointSUBPAC::FARICELLIThu Jan 30 1997 09:2321
   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