Code covered by the BSD License  

Highlights from
slatec

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

[u,idmn,i,j,uyyy,uyyyy]=dy(u,idmn,i,j,uyyy,uyyyy);
function [u,idmn,i,j,uyyy,uyyyy]=dy(u,idmn,i,j,uyyy,uyyyy);

global splpcm_5; if isempty(splpcm_5), splpcm_5=0; end;
global splpcm_6; if isempty(splpcm_6), splpcm_6=0; end;
global splpcm_7; if isempty(splpcm_7), splpcm_7=0; end;
global splpcm_8; if isempty(splpcm_8), splpcm_8=0; end;
global splpcm_15; if isempty(splpcm_15), splpcm_15=0; end;
global splpcm_19; if isempty(splpcm_19), splpcm_19=0; end;
global splpcm_16; if isempty(splpcm_16), splpcm_16=0; end;
global splpcm_20; if isempty(splpcm_20), splpcm_20=0; end;
global splpcm_17; if isempty(splpcm_17), splpcm_17=0; end;
global splpcm_18; if isempty(splpcm_18), splpcm_18=0; end;
global splpcm_11; if isempty(splpcm_11), splpcm_11=0; end;
global splpcm_13; if isempty(splpcm_13), splpcm_13=0; end;
global splpcm_3; if isempty(splpcm_3), splpcm_3=0; end;
global splpcm_1; if isempty(splpcm_1), splpcm_1=0; end;
global splpcm_2; if isempty(splpcm_2), splpcm_2=0; end;
global splpcm_4; if isempty(splpcm_4), splpcm_4=0; end;
global splpcm_9; if isempty(splpcm_9), splpcm_9=0; end;
global splpcm_12; if isempty(splpcm_12), splpcm_12=0; end;
global splpcm_10; if isempty(splpcm_10), splpcm_10=0; end;
global splpcm_14; if isempty(splpcm_14), splpcm_14=0; end;
%***BEGIN PROLOGUE  DY
%***SUBSIDIARY
%***PURPOSE  Subsidiary to SEPELI
%***LIBRARY   SLATEC
%***TYPE      SINGLE PRECISION (DY-S)
%***AUTHOR  (UNKNOWN)
%***DESCRIPTION
%
%     This program computes second order finite difference
%     approximations to the third and fourth Y
%     partial derivatives of U at the (I,J) mesh point.
%
%***SEE ALSO  SEPELI
%***ROUTINES CALLED  (NONE)
%***COMMON BLOCKS    SPLPCM
%***REVISION HISTORY  (YYMMDD)
%   801001  DATE WRITTEN
%   891214  Prologue converted to Version 4.0 format.  (BAB)
%   900402  Added TYPE section.  (WRB)
%***end PROLOGUE  DY
%
% common :: ;
%% common /splpcm/ kswx , kswy , k , l , ait , bit , cit , dit ,mit , nit , is , ms , js , ns , dlx , dly ,tdlx3 , tdly3 , dlx4 , dly4;
%% common /splpcm/ splpcm_1 , splpcm_2 , splpcm_3 , splpcm_4 , splpcm_5 , splpcm_6 , splpcm_7 , splpcm_8 ,splpcm_9 , splpcm_10 , splpcm_11 , splpcm_12 , splpcm_13 , splpcm_14 , splpcm_15 , splpcm_16 ,splpcm_17 , splpcm_18 , splpcm_19 , splpcm_20;
u_shape=size(u);u=reshape([u(:).',zeros(1,ceil(numel(u)./prod([idmn])).*prod([idmn])-numel(u))],idmn,[]);
%***FIRST EXECUTABLE STATEMENT  DY
if( j>2 && j<(splpcm_4-1) )
%
%     COMPUTE PARTIAL DERIVATIVE APPROXIMATIONS ON THE INTERIOR
%
uyyy =(-u(i,j-2)+2.0.*u(i,j-1)-2.0.*u(i,j+1)+u(i,j+2))./splpcm_18;
uyyyy =(u(i,j-2)-4.0.*u(i,j-1)+6.0.*u(i,j)-4.0.*u(i,j+1)+u(i,j+2))./splpcm_20;
u_shape=zeros(u_shape);u_shape(:)=u(1:numel(u_shape));u=u_shape;
return;
else;
if( j~=1 )
if( j==2 )
%
%     COMPUTE PARTIAL DERIVATIVE APPROXIMATIONS AT Y=C+DLY
%
if( splpcm_2==1 )
%
%     PERIODIC AT Y=C+DLY
%
uyyy =(-u(i,splpcm_4-1)+2.0.*u(i,1)-2.0.*u(i,3)+u(i,4))./splpcm_18;
uyyyy =(u(i,splpcm_4-1)-4.0.*u(i,1)+6.0.*u(i,2)-4.0.*u(i,3)+u(i,4))./splpcm_20;
u_shape=zeros(u_shape);u_shape(:)=u(1:numel(u_shape));u=u_shape;
return;
else;
uyyy =(-3.0.*u(i,1)+10.0.*u(i,2)-12.0.*u(i,3)+6.0.*u(i,4)-u(i,5))./splpcm_18;
uyyyy =(2.0.*u(i,1)-9.0.*u(i,2)+16.0.*u(i,3)-14.0.*u(i,4)+6.0.*u(i,5)-u(i,6))./splpcm_20;
u_shape=zeros(u_shape);u_shape(:)=u(1:numel(u_shape));u=u_shape;
return;
end;
elseif( j==splpcm_4-1 ) ;
%
%     COMPUTE PARTIAL DERIVATIVE APPROXIMATIONS AT Y=D-DLY
%
if( splpcm_2==1 )
%
%     PERIODIC AT Y=D-DLY
%
uyyy =(-u(i,splpcm_4-3)+2.0.*u(i,splpcm_4-2)-2.0.*u(i,1)+u(i,2))./splpcm_18;
uyyyy =(u(i,splpcm_4-3)-4.0.*u(i,splpcm_4-2)+6.0.*u(i,splpcm_4-1)-4.0.*u(i,1)+u(i,2))./splpcm_20;
u_shape=zeros(u_shape);u_shape(:)=u(1:numel(u_shape));u=u_shape;
return;
else;
uyyy =(u(i,splpcm_4-4)-6.0.*u(i,splpcm_4-3)+12.0.*u(i,splpcm_4-2)-10.0.*u(i,splpcm_4-1)+3.0.*u(i,splpcm_4))./splpcm_18;
uyyyy =(-u(i,splpcm_4-5)+6.0.*u(i,splpcm_4-4)-14.0.*u(i,splpcm_4-3)+16.0.*u(i,splpcm_4-2)-9.0.*u(i,splpcm_4-1)+2.0.*u(i,splpcm_4))./splpcm_20;
u_shape=zeros(u_shape);u_shape(:)=u(1:numel(u_shape));u=u_shape;
return;
end;
elseif( j==splpcm_4 ) ;
%
%     COMPUTE PARTIAL DERIVATIVE APPROXIMATIONS AT Y=D
%
uyyy = -(3.0.*u(i,splpcm_4-4)-14.0.*u(i,splpcm_4-3)+24.0.*u(i,splpcm_4-2)-18.0.*u(i,splpcm_4-1)+5.0.*u(i,splpcm_4))./splpcm_18;
uyyyy =(-2.0.*u(i,splpcm_4-5)+11.0.*u(i,splpcm_4-4)-24.0.*u(i,splpcm_4-3)+26.0.*u(i,splpcm_4-2)-14.0.*u(i,splpcm_4-1)+3.0.*u(i,splpcm_4))./splpcm_20;
u_shape=zeros(u_shape);u_shape(:)=u(1:numel(u_shape));u=u_shape;
return;
end;
end;
%
%     COMPUTE PARTIAL DERIVATIVE APPROXIMATIONS AT Y=C
%
if( splpcm_2==1 )
%
%     PERIODIC AT X=A
%
uyyy =(-u(i,splpcm_4-2)+2.0.*u(i,splpcm_4-1)-2.0.*u(i,2)+u(i,3))./splpcm_18;
uyyyy =(u(i,splpcm_4-2)-4.0.*u(i,splpcm_4-1)+6.0.*u(i,1)-4.0.*u(i,2)+u(i,3))./splpcm_20;
u_shape=zeros(u_shape);u_shape(:)=u(1:numel(u_shape));u=u_shape;
return;
else;
uyyy =(-5.0.*u(i,1)+18.0.*u(i,2)-24.0.*u(i,3)+14.0.*u(i,4)-3.0.*u(i,5))./splpcm_18;
uyyyy =(3.0.*u(i,1)-14.0.*u(i,2)+26.0.*u(i,3)-24.0.*u(i,4)+11.0.*u(i,5)-2.0.*u(i,6))./splpcm_20;
u_shape=zeros(u_shape);u_shape(:)=u(1:numel(u_shape));u=u_shape;
return;
end;
end;
u_shape=zeros(u_shape);u_shape(:)=u(1:numel(u_shape));u=u_shape;
end
%DECK E1

Contact us at files@mathworks.com