function [x]=mpovfl(x);
global mpcom_4; if isempty(mpcom_4), mpcom_4=0; end;
global mpcom_3; if isempty(mpcom_3), mpcom_3=0; end;
global mpcom_5; if isempty(mpcom_5), mpcom_5=0; end;
%***BEGIN PROLOGUE MPOVFL
%***SUBSIDIARY
%***PURPOSE Subsidiary to DQDOTA and DQDOTI
%***LIBRARY SLATEC
%***TYPE ALL (MPOVFL-A)
%***AUTHOR (UNKNOWN)
%***DESCRIPTION
%
% Called on multiple-precision overflow, i.e. when the
% exponent of 'mp' number X would exceed M. At present execution is
% terminated with an error message after calling MPMAXR(X), but it
% would be possible to return, possibly updating a counter and
% terminating execution after a preset number of overflows. Action
% could easily be determined by a flag in labelled common.
%
% The argument X(*) is an INTEGER array of size 30. See the comments
% in the routine MPBLAS for the reason for this choice.
%
%***SEE ALSO DQDOTA, DQDOTI, MPBLAS
%***ROUTINES CALLED MPCHK, MPERR, MPMAXR
%***COMMON BLOCKS MPCOM
%***REVISION HISTORY (YYMMDD)
% 791001 DATE WRITTEN
% ?????? Modified for use with BLAS. Blank COMMON changed to named
% COMMON. R given dimension 12.
% 890831 Modified array declarations. (WRB)
% 891214 Prologue converted to Version 4.0 format. (BAB)
% 900402 Added TYPE section. (WRB)
% 930124 Increased Array size in MPCON for SUN -r8. (RWC)
%***end PROLOGUE MPOVFL
% common :: ;
global mpcom_1; if isempty(mpcom_1), mpcom_1=0; end;
global mpcom_2; if isempty(mpcom_2), mpcom_2=0; end;
global mpcom_6; if isempty(mpcom_6), mpcom_6=zeros(1,30); end;
%% common /mpcom / b , t , m , lun , mxr , r(30);
%% common /mpcom / mpcom_1 , mpcom_2 , mpcom_3 , mpcom_4 , mpcom_5 , mpcom_6(30);
x_shape=size(x);x=reshape(x,1,[]);
%***FIRST EXECUTABLE STATEMENT MPOVFL
mpchk(1,4);
% SET X TO LARGEST POSSIBLE POSITIVE NUMBER
[x]=mpmaxr(x);
writef(mpcom_4,[' *** CALL TO MPOVFL, MP OVERFLOW OCCURRED ***' ' \n']);
%format (' *** CALL TO MPOVFL, MP OVERFLOW OCCURRED ***');
% TERMINATE EXECUTION BY CALLING MPERR
mperr;
x_shape=zeros(x_shape);x_shape(:)=x(1:numel(x_shape));x=x_shape;
end
%DECK MPSTR