Code covered by the BSD License  

Highlights from
slatec

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

[mbdcnd,nbdcnd,alpha,beta,gama,xnu,cofx,cofy,singlr]=chksng(mbdcnd,nbdcnd,alpha,beta,gama,xnu,cofx,cofy,singlr);
function [mbdcnd,nbdcnd,alpha,beta,gama,xnu,cofx,cofy,singlr]=chksng(mbdcnd,nbdcnd,alpha,beta,gama,xnu,cofx,cofy,singlr);
persistent ai bi ci dj ej fj i j xi yj ; 

if isempty(ai), ai=0; end;
global splpcm_5; if isempty(splpcm_5), splpcm_5=0; end;
if isempty(bi), bi=0; end;
global splpcm_6; if isempty(splpcm_6), splpcm_6=0; end;
if isempty(ci), ci=0; end;
global splpcm_7; if isempty(splpcm_7), splpcm_7=0; end;
global splpcm_8; if isempty(splpcm_8), splpcm_8=0; end;
if isempty(dj), dj=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;
if isempty(ej), ej=0; end;
if isempty(fj), fj=0; end;
global splpcm_17; if isempty(splpcm_17), splpcm_17=0; end;
global splpcm_18; if isempty(splpcm_18), splpcm_18=0; end;
if isempty(xi), xi=0; end;
if isempty(yj), yj=0; end;
if isempty(i), i=0; end;
global splpcm_11; if isempty(splpcm_11), splpcm_11=0; end;
if isempty(j), j=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  CHKSNG
%***SUBSIDIARY
%***PURPOSE  Subsidiary to SEPELI
%***LIBRARY   SLATEC
%***TYPE      SINGLE PRECISION (CHKSNG-S)
%***AUTHOR  (UNKNOWN)
%***DESCRIPTION
%
%     This subroutine checks if the PDE SEPELI
%     must solve splpcm_11 a singular operator.
%
%***SEE ALSO  SEPELI
%***ROUTINES CALLED  (NONE)
%***COMMON BLOCKS    SPLPCM
%***REVISION HISTORY  (YYMMDD)
%   801001  DATE WRITTEN
%   890531  Changed all specific intrinsics to generic.  (WRB)
%   891214  Prologue converted to Version 4.0 format.  (BAB)
%   900402  Added TYPE section.  (WRB)
%***end PROLOGUE  CHKSNG
%
% 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;
%***FIRST EXECUTABLE STATEMENT  CHKSNG
singlr = false;
%
%     CHECK IF THE BOUNDARY CONDITIONS ARE
%     ENTIRELY PERIODIC AND/OR MIXED
%
if((mbdcnd~=0 && mbdcnd~=3) ||(nbdcnd~=0 && nbdcnd~=3))
return;
end;
%
%     CHECK THAT MIXED CONDITIONS ARE PURE NEUMAN
%
if( mbdcnd==3 )
if( alpha~=0.0 || beta~=0.0 )
return;
end;
end;
if( nbdcnd==3 )
if( gama~=0.0 || xnu~=0.0 )
return;
end;
end;
%
%     CHECK THAT NON-DERIVATIVE COEFFICIENT FUNCTIONS
%     ARE ZERO
%
for i = splpcm_11 : splpcm_12;
xi = splpcm_5 +(i-1).*splpcm_15;
[xi,ai,bi,ci]=cofx(xi,ai,bi,ci);
if( ci~=0.0 )
return;
end;
end; i = fix(splpcm_12+1);
for j = splpcm_13 : splpcm_14;
yj = splpcm_7 +(j-1).*splpcm_16;
[yj,dj,ej,fj]=cofy(yj,dj,ej,fj);
if( fj~=0.0 )
return;
end;
end; j = fix(splpcm_14+1);
%
%     THE OPERATOR MUST BE SINGULAR IF THIS POINT IS REACHED
%
singlr = true;
end
%DECK CHPCO

Contact us