OpenLibm/slatec/mpovfl.f
Viral B. Shah c977aa998f Add Makefile.extras to build libopenlibm-extras.
Replace amos with slatec
2012-12-31 16:37:05 -05:00

44 lines
1.6 KiB
Fortran

*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