Code covered by the BSD License  

Highlights from
slatec

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

[df,neq,t,y,tout,rtol,atol,idid,ypout,yh,yh1,ewt,savf,acor,wm,iwm,djac,intout,tstop,tolfac,delsgn,rpar,ipar]=dlsod(df,neq,t,y,tout,rtol,atol,idid,ypout,yh,yh1,ewt,savf,acor,wm,iwm,djac,intout,tstop,tolfac,delsgn,rpar,ipar);
function [df,neq,t,y,tout,rtol,atol,idid,ypout,yh,yh1,ewt,savf,acor,wm,iwm,djac,intout,tstop,tolfac,delsgn,rpar,ipar]=dlsod(df,neq,t,y,tout,rtol,atol,idid,ypout,yh,yh1,ewt,savf,acor,wm,iwm,djac,intout,tstop,tolfac,delsgn,rpar,ipar);
%***BEGIN PROLOGUE  DLSOD
%***SUBSIDIARY
%***PURPOSE  Subsidiary to DDEBDF
%***LIBRARY   SLATEC
%***TYPE      doubleprecision (LSOD-S, DLSOD-D)
%***AUTHOR  (UNKNOWN)
%***DESCRIPTION
%
%   DDEBDF  merely allocates storage for  DLSOD  to relieve the user of
%   the inconvenience of a long call list.  Consequently  DLSOD  is used
%   as described in the comments for  DDEBDF .
%
%***SEE ALSO  DDEBDF
%***ROUTINES CALLED  D1MACH, DHSTRT, DINTYD, DSTOD, DVNRMS, XERMSG
%***COMMON BLOCKS    DDEBD1
%***REVISION HISTORY  (YYMMDD)
%   820301  DATE WRITTEN
%   890531  Changed all specific intrinsics to generic.  (WRB)
%   890831  Modified array declarations.  (WRB)
%   891214  Prologue converted to Version 4.0 format.  (BAB)
%   900328  Added TYPE section.  (WRB)
%   900510  Convert XERRWV calls to XERMSG calls.  (RWC)
%***end PROLOGUE  DLSOD
%
persistent absdel big del dt firstCall ha intflg k l ltol maxnum natolp nrtolp tol xern1 xern3 xern4 ; if isempty(firstCall),firstCall=1;end; 

global ddebd1_23; if isempty(ddebd1_23), ddebd1_23=0; end;
global ddebd1_18; if isempty(ddebd1_18), ddebd1_18=0; end;
global ddebd1_25; if isempty(ddebd1_25), ddebd1_25=0; end;
global ddebd1_20; if isempty(ddebd1_20), ddebd1_20=0; end;
global ddebd1_22; if isempty(ddebd1_22), ddebd1_22=0; end;
global ddebd1_11; if isempty(ddebd1_11), ddebd1_11=0; end;
if isempty(intflg), intflg=0; end;
global ddebd1_24; if isempty(ddebd1_24), ddebd1_24=zeros(1,6); end;
global ddebd1_10; if isempty(ddebd1_10), ddebd1_10=0; end;
global ddebd1_19; if isempty(ddebd1_19), ddebd1_19=0; end;
global ddebd1_21; if isempty(ddebd1_21), ddebd1_21=0; end;
global ddebd1_26; if isempty(ddebd1_26), ddebd1_26=0; end;
if isempty(k), k=0; end;
global ddebd1_27; if isempty(ddebd1_27), ddebd1_27=0; end;
global ddebd1_17; if isempty(ddebd1_17), ddebd1_17=0; end;
if isempty(l), l=0; end;
global ddebd1_14; if isempty(ddebd1_14), ddebd1_14=0; end;
global ddebd1_28; if isempty(ddebd1_28), ddebd1_28=0; end;
global ddebd1_13; if isempty(ddebd1_13), ddebd1_13=0; end;
global ddebd1_15; if isempty(ddebd1_15), ddebd1_15=0; end;
if isempty(ltol), ltol=0; end;
global ddebd1_16; if isempty(ddebd1_16), ddebd1_16=0; end;
global ddebd1_12; if isempty(ddebd1_12), ddebd1_12=0; end;
if isempty(maxnum), maxnum=0; end;
global ddebd1_31; if isempty(ddebd1_31), ddebd1_31=0; end;
global ddebd1_29; if isempty(ddebd1_29), ddebd1_29=0; end;
global ddebd1_30; if isempty(ddebd1_30), ddebd1_30=0; end;
global ddebd1_32; if isempty(ddebd1_32), ddebd1_32=0; end;
if isempty(natolp), natolp=0; end;
global ddebd1_35; if isempty(ddebd1_35), ddebd1_35=0; end;
global ddebd1_36; if isempty(ddebd1_36), ddebd1_36=0; end;
global ddebd1_33; if isempty(ddebd1_33), ddebd1_33=0; end;
global ddebd1_37; if isempty(ddebd1_37), ddebd1_37=0; end;
if isempty(nrtolp), nrtolp=0; end;
global ddebd1_34; if isempty(ddebd1_34), ddebd1_34=0; end;
if isempty(absdel), absdel=0; end;
if isempty(big), big=0; end;
if isempty(del), del=0; end;
if isempty(dt), dt=0; end;
global ddebd1_3; if isempty(ddebd1_3), ddebd1_3=0; end;
global ddebd1_4; if isempty(ddebd1_4), ddebd1_4=0; end;
if isempty(ha), ha=0; end;
global ddebd1_5; if isempty(ddebd1_5), ddebd1_5=0; end;
global ddebd1_6; if isempty(ddebd1_6), ddebd1_6=0; end;
global ddebd1_7; if isempty(ddebd1_7), ddebd1_7=0; end;
global ddebd1_2; if isempty(ddebd1_2), ddebd1_2=zeros(1,210); end;
if isempty(tol), tol=0; end;
global ddebd1_1; if isempty(ddebd1_1), ddebd1_1=0; end;
global ddebd1_9; if isempty(ddebd1_9), ddebd1_9=0; end;
global ddebd1_8; if isempty(ddebd1_8), ddebd1_8=0; end;
if isempty(xern1), xern1=repmat(' ',1,8); end;
if isempty(xern3), xern3=repmat(' ',1,16); end;
if isempty(xern4), xern4=repmat(' ',1,16); end;
%
y_shape=size(y);y=reshape(y,1,[]);
ypout_shape=size(ypout);ypout=reshape(ypout,1,[]);
yh_orig=yh;yh_shape=[neq,6];yh=reshape([yh_orig(1:min(prod(yh_shape),numel(yh_orig))),zeros(1,max(0,prod(yh_shape)-numel(yh_orig)))],yh_shape);
yh1_shape=size(yh1);yh1=reshape(yh1,1,[]);
ewt_shape=size(ewt);ewt=reshape(ewt,1,[]);
savf_shape=size(savf);savf=reshape(savf,1,[]);
acor_shape=size(acor);acor=reshape(acor,1,[]);
wm_shape=size(wm);wm=reshape(wm,1,[]);
iwm_shape=size(iwm);iwm=reshape(iwm,1,[]);
rtol_shape=size(rtol);rtol=reshape(rtol,1,[]);
atol_shape=size(atol);atol=reshape(atol,1,[]);
rpar_shape=size(rpar);rpar=reshape(rpar,1,[]);
ipar_shape=size(ipar);ipar=reshape(ipar,1,[]);
%
%
% common :: ;
%% common /ddebd1/ told , rowns(210) , el0 , h , hmin , hmxi , hu ,x , u , iquit , init , lyh , lewt , lacor ,lsavf , lwm , ksteps , ibegin , itol , iinteg ,itstop , ijac , iband , iowns(6) , ier , jstart ,kflag , ldum , meth , miter , maxord , n , nq ,nst , nfe , nje , nqu;
%% common /ddebd1/ ddebd1_1 , ddebd1_2(210) , ddebd1_3 , ddebd1_4 , ddebd1_5 , ddebd1_6 , ddebd1_7 ,ddebd1_8 , ddebd1_9 , ddebd1_10 , ddebd1_11 , ddebd1_12 , ddebd1_13 , ddebd1_14 ,ddebd1_15 , ddebd1_16 , ddebd1_17 , ddebd1_18 , ddebd1_19 , ddebd1_20 ,ddebd1_21 , ddebd1_22 , ddebd1_23 , ddebd1_24(6) , ddebd1_25 , ddebd1_26 ,ddebd1_27 , ddebd1_28 , ddebd1_29 , ddebd1_30 , ddebd1_31 , ddebd1_32 , ddebd1_33 ,ddebd1_34 , ddebd1_35 , ddebd1_36 , ddebd1_37;
%
%
%     ..................................................................
%
%       THE EXPENSE OF SOLVING THE PROBLEM IS MONITORED BY COUNTING THE
%       NUMBER OF  STEPS ATTEMPTED. WHEN THIS EXCEEDS  MAXNUM, THE
%       COUNTER IS RESET TO ZERO AND THE USER IS INFORMED ABOUT POSSIBLE
%       EXCESSIVE WORK.
%
if firstCall,   maxnum=[500];  end;
firstCall=0;
%
%     ..................................................................
%
%***FIRST EXECUTABLE STATEMENT  DLSOD

[df,neq,t,y,tout,rtol,atol,idid,ypout,yh,yh1,ewt,savf,acor,wm,iwm,djac,intout,tstop,tolfac,delsgn,rpar,ipar]=lsod(df,neq,t,y,tout,rtol,atol,idid,ypout,yh,yh1,ewt,savf,acor,wm,iwm,djac,intout,tstop,tolfac,delsgn,rpar,ipar);
end

Contact us at files@mathworks.com