00001 C Work performed under the auspices of the U.S. Department of Energy 00002 C by Lawrence Livermore National Laboratory under contract number 00003 C W-7405-Eng-48. 00004 C 00005 SUBROUTINE DSLVD(NEQ,DELTA,WM,IWM) 00006 C 00007 C***BEGIN PROLOGUE DSLVD 00008 C***REFER TO DDASPK 00009 C***DATE WRITTEN 890101 (YYMMDD) 00010 C***REVISION DATE 900926 (YYMMDD) 00011 C***REVISION DATE 940701 (YYMMDD) (new LIPVT) 00012 C 00013 C----------------------------------------------------------------------- 00014 C***DESCRIPTION 00015 C 00016 C This routine manages the solution of the linear 00017 C system arising in the Newton iteration. 00018 C Real matrix information and real temporary storage 00019 C is stored in the array WM. 00020 C Integer matrix information is stored in the array IWM. 00021 C For a dense matrix, the LAPACK routine DGETRS is called. 00022 C For a banded matrix, the LAPACK routine DGBTRS is called. 00023 C----------------------------------------------------------------------- 00024 C***ROUTINES CALLED 00025 C DGETRS, DGBTRS 00026 C 00027 C***END PROLOGUE DSLVD 00028 C 00029 C 00030 IMPLICIT DOUBLE PRECISION(A-H,O-Z) 00031 DIMENSION DELTA(*),WM(*),IWM(*) 00032 C 00033 PARAMETER (LML=1, LMU=2, LMTYPE=4, LLCIWP=30) 00034 C 00035 LIPVT = IWM(LLCIWP) 00036 MTYPE=IWM(LMTYPE) 00037 GO TO(100,100,300,400,400),MTYPE 00038 C 00039 C Dense matrix. 00040 C 00041 100 CALL DGETRS('N', NEQ, 1, WM, NEQ, IWM(LIPVT), DELTA, NEQ, INLPCK) 00042 RETURN 00043 C 00044 C Dummy section for MTYPE=3. 00045 C 00046 300 CONTINUE 00047 RETURN 00048 C 00049 C Banded matrix. 00050 C 00051 400 MEBAND=2*IWM(LML)+IWM(LMU)+1 00052 CALL DGBTRS('N', NEQ, IWM(LML), IWM(LMU), 1, WM, MEBAND, 00053 * IWM(LIPVT), DELTA, NEQ, INLPCK) 00054 RETURN 00055 C 00056 C------END OF SUBROUTINE DSLVD------------------------------------------ 00057 END