5 &(db,xb,typdia,xa,typexa,ikle,nelem,nelmax,npoin,w,copy,lv)
75 INTEGER,
INTENT(IN) :: NELEM,NELMAX,LV,NPOIN
77 DOUBLE PRECISION,
INTENT(INOUT) :: DB(npoin),XB(nelmax,*)
78 DOUBLE PRECISION,
INTENT(IN) :: XA(nelmax,*)
79 CHARACTER(LEN=1),
INTENT(IN) :: TYPDIA,TYPEXA
80 INTEGER,
INTENT(IN) :: IKLE(nelmax,*)
81 DOUBLE PRECISION,
INTENT(OUT) :: W(nelmax,3)
82 LOGICAL,
INTENT(IN) :: COPY
92 IF(typdia(1:1).NE.
'I'.AND.ncsize.LE.1)
THEN 93 WRITE(
lu,101) typdia(1:1)
94 101
FORMAT(1x,
'DLDU11 (BIEF) : DIAGONAL OF A NOT EQUAL TO I :',a1)
101 IF(typexa(1:1).EQ.
'S')
THEN 103 IF(copy)
CALL ov(
'X=Y ', x=xb, y=xa, dim1=nelmax*3)
106 w(ielem,2) = 1.d0 - xb(ielem,1)**2
107 xb(ielem,3) = (xb(ielem,3)-xb(ielem,1)*xb(ielem,2))/w(ielem,2)
108 w(ielem,3) = 1.d0 - xb(ielem,2)**2 -xb(ielem,3)**2
113 ELSEIF(typexa(1:1).EQ.
'Q')
THEN 115 IF(copy)
CALL ov(
'X=Y ', x=xb, y=xa, dim1=nelmax*6)
119 w(ielem,2)=1.d0 - xb(ielem,1)*xb(ielem,4)
120 xb(ielem,6) = (xb(ielem,6)-xb(ielem,1)*xb(ielem,5))/w(ielem,2)
121 xb(ielem,3) = xb(ielem,3)-xb(ielem,4)*xb(ielem,2)
122 w(ielem,3) = 1.d0-xb(ielem,2)*xb(ielem,5)
123 & - xb(ielem,3)*xb(ielem,6)
125 xb(ielem,3) = xb(ielem,3) / w(ielem,2)
131 WRITE(
lu,201) typexa(1:1)
132 201
FORMAT(1x,
'DLDU11 (BIEF) : TYPE OF MATRIX NOT AVAILABLE :',a1)
142 CALL asmvec(db,ikle(1,2),npoin,nelem,nelmax,2,w(1,2),.true.,lv)
146 CALL ov(
'X=1/Y ', x=db, y=db, dim1=npoin)
subroutine ov(OP, X, Y, Z, C, DIM1)
subroutine asmvec(X, IKLE, NPOIN, NELEM, NELMAX, NDP, W, INIT, LV)
subroutine dldu11(DB, XB, TYPDIA, XA, TYPEXA, IKLE, NELEM, NELMAX, NPOIN, W, COPY, LV)