mpovfl.f 1.6 KB

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