| [n,b,x,nelt,ia,ja,a,isym,rwork,iwork]=dsli(n,b,x,nelt,ia,ja,a,isym,rwork,iwork); |
function [n,b,x,nelt,ia,ja,a,isym,rwork,iwork]=dsli(n,b,x,nelt,ia,ja,a,isym,rwork,iwork);
%***BEGIN PROLOGUE DSLI
%***PURPOSE SLAP MSOLVE for Lower Triangle Matrix.
% This routine acts as an interface between the SLAP generic
% MSOLVE calling convention and the routine that actually
% -1
% computes L B = X.
%***LIBRARY SLATEC (SLAP)
%***CATEGORY D2A3
%***TYPE doubleprecision (SSLI-S, DSLI-D)
%***KEYWORDS ITERATIVE PRECONDITION, LINEAR SYSTEM SOLVE, SLAP, SPARSE
%***AUTHOR Greenbaum, Anne, (Courant Institute)
% Seager, Mark K., (LLNL)
% Lawrence Livermore National Laboratory
% PO BOX 808, L-60
% Livermore, CA 94550 (510) 423-3141
% seager@llnl.gov
%***DESCRIPTION
% It is assumed that RWORK and IWORK have initialized with
% the information required for DSLI2:
% IWORK(1) = NEL
% IWORK(2) = Starting location of IEL in IWORK.
% IWORK(3) = Starting location of JEL in IWORK.
% IWORK(4) = Starting location of EL in RWORK.
% See the DESCRIPTION of DSLI2 for details.
%***REFERENCES (NONE)
%***ROUTINES CALLED DSLI2
%***REVISION HISTORY (YYMMDD)
% 871119 DATE WRITTEN
% 881213 Previous REVISION DATE
% 890915 Made changes requested at July 1989 CML Meeting. (MKS)
% 890922 Numerous changes to prologue to make closer to SLATEC
% standard. (FNF)
% 890929 Numerous changes to reduce SP/DP differences. (FNF)
% 910411 Prologue converted to Version 4.0 format. (BAB)
% 920511 Added complete declaration section. (WRB)
% 921113 Corrected C***CATEGORY line. (FNF)
% 930701 Updated CATEGORY section. (FNF, WRB)
%***end PROLOGUE DSLI
% .. Scalar Arguments ..
% .. Array Arguments ..
persistent locel lociel locjel nel ;
rwork_shape=size(rwork);rwork=reshape(rwork,1,[]);
% .. Local Scalars ..
if isempty(locel), locel=0; end;
if isempty(lociel), lociel=0; end;
if isempty(locjel), locjel=0; end;
if isempty(nel), nel=0; end;
% .. External Subroutines ..
%***FIRST EXECUTABLE STATEMENT DSLI
%
nel = fix(iwork(1));
lociel = fix(iwork(2));
locjel = fix(iwork(3));
locel = fix(iwork(4));
[n,b,x,nel,dumvar5,dumvar6,rwork(locel:locel+nel-1)]=dsli2(n,b,x,nel,iwork(lociel:lociel+nel-1),iwork(locjel:locjel+nel-1),rwork(locel:locel+nel-1)); dumvar5i=find((iwork(lociel:lociel+nel-1))~=(dumvar5));dumvar6i=find((iwork(locjel:locjel+nel-1))~=(dumvar6)); iwork(lociel-1+dumvar5i)=dumvar5(dumvar5i); iwork(locjel-1+dumvar6i)=dumvar6(dumvar6i);
%
%------------- LAST LINE OF DSLI FOLLOWS ----------------------------
rwork_shape=zeros(rwork_shape);rwork_shape(:)=rwork(1:numel(rwork_shape));rwork=rwork_shape;
end
%DECK DSLLTI
|
|