1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- *DECK MPOVFL
- SUBROUTINE MPOVFL (X)
- C***BEGIN PROLOGUE MPOVFL
- C***SUBSIDIARY
- C***PURPOSE Subsidiary to DQDOTA and DQDOTI
- C***LIBRARY SLATEC
- C***TYPE ALL (MPOVFL-A)
- C***AUTHOR (UNKNOWN)
- C***DESCRIPTION
- C
- C Called on multiple-precision overflow, i.e. when the
- C exponent of 'mp' number X would exceed M. At present execution is
- C terminated with an error message after calling MPMAXR(X), but it
- C would be possible to return, possibly updating a counter and
- C terminating execution after a preset number of overflows. Action
- C could easily be determined by a flag in labelled common.
- C
- C The argument X(*) is an INTEGER array of size 30. See the comments
- C in the routine MPBLAS for the reason for this choice.
- C
- C***SEE ALSO DQDOTA, DQDOTI, MPBLAS
- C***ROUTINES CALLED MPCHK, MPERR, MPMAXR
- C***COMMON BLOCKS MPCOM
- C***REVISION HISTORY (YYMMDD)
- C 791001 DATE WRITTEN
- C ?????? Modified for use with BLAS. Blank COMMON changed to named
- C COMMON. R given dimension 12.
- C 890831 Modified array declarations. (WRB)
- C 891214 Prologue converted to Version 4.0 format. (BAB)
- C 900402 Added TYPE section. (WRB)
- C 930124 Increased Array size in MPCON for SUN -r8. (RWC)
- C***END PROLOGUE MPOVFL
- COMMON /MPCOM/ B, T, M, LUN, MXR, R(30)
- INTEGER B, T, R, X(*)
- C***FIRST EXECUTABLE STATEMENT MPOVFL
- CALL MPCHK (1, 4)
- C SET X TO LARGEST POSSIBLE POSITIVE NUMBER
- CALL MPMAXR (X)
- WRITE (LUN, 10)
- 10 FORMAT (' *** CALL TO MPOVFL, MP OVERFLOW OCCURRED ***')
- C TERMINATE EXECUTION BY CALLING MPERR
- CALL MPERR
- RETURN
- END
|