home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.unix.aix
- Path: sparky!uunet!usc!zaphod.mps.ohio-state.edu!uakari.primate.wisc.edu!usenet.coe.montana.edu!news.u.washington.edu!milton.u.washington.edu!quantum
- From: quantum@milton.u.washington.edu (Tsung-lung Li)
- Subject: Floating-point underflow on IBM3090
- Message-ID: <1992Sep4.014404.9417@u.washington.edu>
- Sender: news@u.washington.edu (USENET News System)
- Reply-To: quantum@u.washington.edu
- Organization: University of Washington, Seattle
- Distribution: na
- Date: Fri, 4 Sep 1992 01:44:04 GMT
- Lines: 125
-
-
- Dear Netters,
-
- Here is a question about the VS fortran on IBM3090 running AIX/370.
-
- I compiled and ran the following test program.
-
- program tt
- double precision x, y
- x = 1.0d-40
- y = x * x
- write(6,*) x, y
- stop
- end
-
- The compilation command I used was "fvs -f'optimize(3)' -o tt tt.f".
- The followings are what the computer responds.
-
- 0AFB208I VFNTH : PROGRAM INTERRUPT - FLOATING-POINT UNDERFLOW EXCEPTION
- VFNTH : PSW 07ED1200001001A2, REGISTER CONTAINS 7E4BE2B05D35848D0000000
- 000000000
- VFNTH : LAST EXECUTED FORTRAN STATEMENT IN PROGRAM TT (OFFSET 00000072)
- .
- 0TRACEBACK OF CALLING ROUTINES; MODULE ENTRY ADDRESS = 00100130.
- -----------------------------------------------------------------------------
- TT (00100130) CALLED BY OPERATING SYSTEM.
- -----------------------------------------------------------------------------
- 0STANDARD CORRECTIVE ACTION TAKEN. EXECUTION CONTINUING.
- 0.100000000000000001E-39 0.000000000000000000E+00
- 0 MESSAGE SUMMARY: MESSAGE NUMBER - COUNT
-
-
- I learned from page 404 of "VS FORTRAN Version 2 Language and Library Reference
- Release 5(SC26-4221-7)" that the message appears because (1.0d-40)**2 is
- less than
- the underflow limit(5.4d-79). I wonder if there is any way to get rid of the
- message given by he computer.
-
- When underflow arithmatics occures, isn't it true that the number is simply
- taken as zero? Why does the IBM machine complains about this?
-
- Any comments on this issue will be appreciated. Please e-mail me at
- quantum@u.washington.edu
-
-
- Sincerely,
-
- Tsung
-
- PS. The above question of mine was initiated by a subroutine in LAPACK
- I am trying to call. The subroutine is DLAMCH and is not included in this
- message.
-
- The following is my test program.
-
- program dlamchtest
- external dlamch
- print *, 'e', dlamch('e')
- print *, 's', dlamch('s')
- print *, 'b', dlamch('b')
- print *, 'p', dlamch('p')
- print *, 'n', dlamch('n')
- print *, 'r', dlamch('r')
- print *, 'm', dlamch('m')
- print *, 'u', dlamch('u')
- print *, 'l', dlamch('l')
- print *, 'o', dlamch('o')
- stop
- end
-
- After giving me the following message a few times, the computer evetually
- get the results right.
-
- The message given by the IBM3090:
-
- AFB208I VFNTH : PROGRAM INTERRUPT - FLOATING-POINT UNDERFLOW EXCEPTION
- VFNTH : PSW 07ED1200001015D0, REGISTER CONTAINS 7F100000000000000000000
- 000000000
- VFNTH : LAST EXECUTED FORTRAN STATEMENT IN PROGRAM DLAMC4 (OFFSET 00000
- 128).
- 0TRACEBACK OF CALLING ROUTINES; MODULE ENTRY ADDRESS = 00100138.
- -----------------------------------------------------------------------------
- DLAMC4 (001014A8) CALLED BY DLAMC2 (00100D90) AT OFFSET 00000286.
- ARGUMENT LIST AT 007FF818.
- ARG. NO. ADDRESS INTEGER REAL CHAR HEXADECIMAL
- 1 007FF8B8 : -64 -0.723698E+76 '....' FFFFFFC0
- 2 007FF888 : 1091567616 0.100000E+01 'A...' 41100000
- 3 00200ACC : 16 0.000008E-78 '....' 00000010
- -----------------------------------------------------------------------------
- DLAMC2 (00100D90) CALLED BY DLAMCH (00100538) AT OFFSET 00000098.
- ARGUMENT LIST AT 007FF9F8.
- ARG. NO. ADDRESS INTEGER REAL CHAR HEXADECIMAL
- 1 007FFA4C : 1136156 0.584843E-78 '..V.' 0011561C
- 2 007FFA40 : 1116516 0.574733E-78 '...d' 00110964
- 3 007FFA50 : 1127532 0.580404E-78 '..4l' 0011346C
- 4 00200848 : 0 0.000000E+00 '....' 00000000
- 5 007FFA44 : 8387080 0.431730E-77 '....' 007FFA08
- 6 00200830 : 0 0.000000E+00 '....' 00000000
- 7 007FFA48 : 1074858444 0.665557E-01 '@...' 401109CC
- 8 00200838 : 0 0.000000E+00 '....' 00000000
- -----------------------------------------------------------------------------
- DLAMCH (00100538) CALLED BY DLAMEST (00100138) AT OFFSET 0000008E.
- ARGUMENT LIST AT 007FFB78.
- ARG. NO. ADDRESS INTEGER REAL CHAR HEXADECIMAL
- 1 00200751 : 1702887424 0.178406E+45 'e...' 65800000
- -----------------------------------------------------------------------------
- DLAMEST (00100138) CALLED BY OPERATING SYSTEM.
- -----------------------------------------------------------------------------
- 0STANDARD CORRECTIVE ACTION TAKEN. EXECUTION CONTINUING.
-
-
- The results given by the computer is
-
- s 0.138178697E-75
- b 16.0000000
- p 0.355271368E-14
- n 14.0000000
- r 0.000000000E+00
- m -64.0000000
- u 0.539760535E-78
- l 63.0000000
- o 0.723700515E+76
-
-
- Any idea to fix this?
-