Code covered by the BSD License  

Highlights from
slatec

from slatec by Ben Barrowes
The slatec library converted into matlab functions.

[n,ix,ifmt,idigit]=ivout(n,ix,ifmt,idigit);
function [n,ix,ifmt,idigit]=ivout(n,ix,ifmt,idigit);
persistent i j k1 k2 lout ndigit ; 

if isempty(i), i=0; end;
if isempty(j), j=0; end;
if isempty(k1), k1=0; end;
if isempty(k2), k2=0; end;
if isempty(lout), lout=0; end;
if isempty(ndigit), ndigit=0; end;
%***BEGIN PROLOGUE  IVOUT
%***SUBSIDIARY
%***PURPOSE  Subsidiary to SPLP
%***LIBRARY   SLATEC
%***TYPE      INTEGER (IVOUT-I)
%***AUTHOR  Hanson, R. J., (SNLA)
%           Wisniewski, J. A., (SNLA)
%***DESCRIPTION
%
%     INTEGER VECTOR OUTPUT ROUTINE.
%
%  INPUT..
%
%  N,IX(*) PRINT THE INTEGER ARRAY IX(I),I=1,...,N, ON OUTPUT
%          UNIT LOUT. THE HEADING IN THE FORTRAN FORMAT
%          STATEMENT IFMT(*), DESCRIBED BELOW, IS PRINTED AS A FIRST
%          STEP. THE COMPONENTS IX(I) ARE INDEXED, ON OUTPUT,
%          IN A PLEASANT FORMAT.
%  IFMT(*) A FORTRAN FORMAT STATEMENT. THIS IS PRINTED ON OUTPUT
%          UNIT LOUT WITH THE VARIABLE FORMAT FORTRAN STATEMENT
%                WRITE(LOUT,IFMT)
%  IDIGIT  PRINT UP TO ABS(IDIGIT) DECIMAL DIGITS PER NUMBER.
%          THE SUBPROGRAM WILL CHOOSE THAT INTEGER 4,6,10 OR 14
%          WHICH WILL PRINT AT LEAST ABS(IDIGIT) NUMBER OF
%          PLACES.  IF IDIGIT.LT.0, 72 PRINTING COLUMNS ARE UTILIZED
%          TO WRITE EACH LINE OF OUTPUT OF THE ARRAY IX(*). (THIS
%          CAN BE USED ON MOST TIME-SHARING TERMINALS). IF
%          IDIGIT.GE.0, 133 PRINTING COLUMNS ARE UTILIZED. (THIS CAN
%          BE USED ON MOST LINE PRINTERS).
%
%  EXAMPLE..
%
%  PRINT AN ARRAY CALLED (COSTS OF PURCHASES) OF LENGTH 100 SHOWING
%  6 DECIMAL DIGITS PER NUMBER. THE USER IS RUNNING ON A TIME-SHARING
%  SYSTEM WITH A 72 COLUMN OUTPUT DEVICE.
%
%     DIMENSION ICOSTS(100)
%     N = 100
%     IDIGIT = -6
%     CALL IVOUT(N,ICOSTS,'(''1COSTS OF PURCHASES'')',IDIGIT)
%
%***SEE ALSO  SPLP
%***ROUTINES CALLED  I1MACH
%***REVISION HISTORY  (YYMMDD)
%   811215  DATE WRITTEN
%   890531  Changed all specific intrinsics to generic.  (WRB)
%   891214  Prologue converted to Version 4.0 format.  (BAB)
%   900402  Added TYPE section.  (WRB)
%   910403  Updated AUTHOR section.  (WRB)
%***end PROLOGUE  IVOUT
ix_shape=size(ix);ix=reshape(ix,1,[]);
%
%     GET THE UNIT NUMBER WHERE OUTPUT WILL BE WRITTEN.
%***FIRST EXECUTABLE STATEMENT  IVOUT
j = 2;
[lout ,j]=i1mach(j);
disp({});
if( n<=0 )
ix_shape=zeros(ix_shape);ix_shape(:)=ix(1:numel(ix_shape));ix=ix_shape;
return;
end;
ndigit = fix(idigit);
if( idigit==0 )
ndigit = 4;
end;
if( idigit<0 )
%
ndigit = fix(-idigit);
if( ndigit<=4 )
%
for k1 = 1 : 10: n ;
k2 = fix(min(n,k1+9));
for i=(k1):(k2), writef(lout,[repmat(' ',1,1),'%4i',' - ','%4i',repmat([repmat(' ',1,1),'%5i'] ,1,20) ' \n'], k1 , k2 ,ix(i)); end;
end; k1 = fix(n +1);
ix_shape=zeros(ix_shape);ix_shape(:)=ix(1:numel(ix_shape));ix=ix_shape;
return;
%
elseif( ndigit<=6 ) ;
%
for k1 = 1 : 7: n ;
k2 = fix(min(n,k1+6));
for i=(k1):(k2), writef(lout,[repmat(' ',1,1),'%4i',' - ','%4i',repmat([repmat(' ',1,1),'%7i'] ,1,15) ' \n'], k1 , k2 ,ix(i)); end;
end; k1 = fix(n +1);
ix_shape=zeros(ix_shape);ix_shape(:)=ix(1:numel(ix_shape));ix=ix_shape;
return;
%
elseif( ndigit>10 ) ;
%
for k1 = 1 : 3: n ;
k2 = fix(min(n,k1+2));
for i=(k1):(k2), writef(lout,[repmat(' ',1,1),'%4i',' - ','%4i',repmat([repmat(' ',1,1),'%15i'] ,1,7) ' \n'], k1 , k2 ,ix(i)); end;
end; k1 = fix(n +1);
ix_shape=zeros(ix_shape);ix_shape(:)=ix(1:numel(ix_shape));ix=ix_shape;
return;
else;
%
for k1 = 1 : 5: n ;
k2 = fix(min(n,k1+4));
for i=(k1):(k2), writef(lout,[repmat(' ',1,1),'%4i',' - ','%4i',repmat([repmat(' ',1,1),'%11i'] ,1,10) ' \n'], k1 , k2 ,ix(i)); end;
end; k1 = fix(n +1);
ix_shape=zeros(ix_shape);ix_shape(:)=ix(1:numel(ix_shape));ix=ix_shape;
return;
end;
%
elseif( ndigit<=4 ) ;
%
for k1 = 1 : 20: n ;
k2 = fix(min(n,k1+19));
for i=(k1):(k2), writef(lout,[repmat(' ',1,1),'%4i',' - ','%4i',repmat([repmat(' ',1,1),'%5i'] ,1,20) ' \n'], k1 , k2 ,ix(i)); end;
end; k1 = fix(n +1);
ix_shape=zeros(ix_shape);ix_shape(:)=ix(1:numel(ix_shape));ix=ix_shape;
return;
%
elseif( ndigit<=6 ) ;
%
for k1 = 1 : 15: n ;
k2 = fix(min(n,k1+14));
for i=(k1):(k2), writef(lout,[repmat(' ',1,1),'%4i',' - ','%4i',repmat([repmat(' ',1,1),'%7i'] ,1,15) ' \n'], k1 , k2 ,ix(i)); end;
end; k1 = fix(n +1);
ix_shape=zeros(ix_shape);ix_shape(:)=ix(1:numel(ix_shape));ix=ix_shape;
return;
%
elseif( ndigit>10 ) ;
%
for k1 = 1 : 7: n ;
k2 = fix(min(n,k1+6));
for i=(k1):(k2), writef(lout,[repmat(' ',1,1),'%4i',' - ','%4i',repmat([repmat(' ',1,1),'%15i'] ,1,7) ' \n'], k1 , k2 ,ix(i)); end;
end; k1 = fix(n +1);
ix_shape=zeros(ix_shape);ix_shape(:)=ix(1:numel(ix_shape));ix=ix_shape;
return;
else;
%
for k1 = 1 : 10: n ;
k2 = fix(min(n,k1+9));
for i=(k1):(k2), writef(lout,[repmat(' ',1,1),'%4i',' - ','%4i',repmat([repmat(' ',1,1),'%11i'] ,1,10) ' \n'], k1 , k2 ,ix(i)); end;
end; k1 = fix(n +1);
ix_shape=zeros(ix_shape);ix_shape(:)=ix(1:numel(ix_shape));ix=ix_shape;
return;
end;
%format (1X,i4,' - ',i4,20(1X,i5));
%format (1X,i4,' - ',i4,15(1X,i7));
%format (1X,i4,' - ',i4,10(1X,i11));
%format (1X,i4,' - ',i4,7(1X,i15));
ix_shape=zeros(ix_shape);ix_shape(:)=ix(1:numel(ix_shape));ix=ix_shape;
end
%DECK J4SAVE

Contact us