xref: /phasta/phSolver/incompressible/bc3lhs.f (revision 595995161822a203c8467e0e4a253d7bd7d6df32)
1*59599516SKenneth E. Jansen      subroutine bc3LHS (iBC,  BC,  iens,  xKebe )
2*59599516SKenneth E. Jansenc
3*59599516SKenneth E. Jansenc----------------------------------------------------------------------
4*59599516SKenneth E. Jansenc
5*59599516SKenneth E. Jansenc This routine satisfies the BC of LHS mass matrix for all
6*59599516SKenneth E. Jansenc elements in this block.
7*59599516SKenneth E. Jansenc
8*59599516SKenneth E. Jansenc input:
9*59599516SKenneth E. Jansenc  iBC   (nshg)             : boundary condition code
10*59599516SKenneth E. Jansenc  BC    (nshg,ndofBC)      : Dirichlet BC constraint parameters
11*59599516SKenneth E. Jansenc  ien   (npro,nshape)      : ien array for this element
12*59599516SKenneth E. Jansenc  xKebe (npro,9,nshl,nshl) : element consistent mass matrix before BC
13*59599516SKenneth E. Jansenc
14*59599516SKenneth E. Jansenc output:
15*59599516SKenneth E. Jansenc  xKebe (npro,9,nshl,nshl) : LHS mass matrix after BC is satisfied
16*59599516SKenneth E. Jansenc
17*59599516SKenneth E. Jansenc
18*59599516SKenneth E. Jansenc Farzin Shakib, Winter 1987.
19*59599516SKenneth E. Jansenc Zdenek Johan,  Spring 1990. (Modified for general divariant gas)
20*59599516SKenneth E. Jansenc Ken Jansen, Summer 2000. Incompressible (only needed on xKebe)
21*59599516SKenneth E. Jansenc----------------------------------------------------------------------
22*59599516SKenneth E. Jansenc
23*59599516SKenneth E. Jansen        include "common.h"
24*59599516SKenneth E. Jansenc
25*59599516SKenneth E. Jansen      dimension iBC(nshg),      ien(npro,nshl),
26*59599516SKenneth E. Jansen     & BC(nshg,ndofBC), xKebe(npro,9,nshl,nshl)
27*59599516SKenneth E. Jansen      integer iens(npro,nshl)
28*59599516SKenneth E. Jansenc
29*59599516SKenneth E. Jansenc prefer to show explicit absolute value needed for cubic modes and
30*59599516SKenneth E. Jansenc higher rather than inline abs on pointer as in past versions
31*59599516SKenneth E. Jansenc iens is the signed ien array ien is unsigned
32*59599516SKenneth E. Jansenc
33*59599516SKenneth E. Jansen      ien=abs(iens)
34*59599516SKenneth E. Jansenc
35*59599516SKenneth E. Jansenc.... loop over elements
36*59599516SKenneth E. Jansenc
37*59599516SKenneth E. Jansenc        return
38*59599516SKenneth E. Jansen        do iel = 1, npro
39*59599516SKenneth E. Jansenc
40*59599516SKenneth E. Jansenc.... loop over number of shape functions for this element
41*59599516SKenneth E. Jansenc
42*59599516SKenneth E. Jansen           do inod = 1, nshl
43*59599516SKenneth E. Jansenc
44*59599516SKenneth E. Jansenc.... set up parameters
45*59599516SKenneth E. Jansenc
46*59599516SKenneth E. Jansen              in  = abs(ien(iel,inod))
47*59599516SKenneth E. Jansen              if (ibits(iBC(in),3,3) .eq. 0) goto 5000 ! NO velocity BC's
48*59599516SKenneth E. Jansen              if (ibits(iBC(in),3,3) .eq. 7) goto 5000 ! 3 components ok
49*59599516SKenneth E. Jansen
50*59599516SKenneth E. Jansenc.... 1 or 2 component velocities
51*59599516SKenneth E. Jansenc
52*59599516SKenneth E. Jansenc
53*59599516SKenneth E. Jansenc.... x1-velocity
54*59599516SKenneth E. Jansenc
55*59599516SKenneth E. Jansen              if ( ibits(iBC(in),3,3) .eq. 1) then
56*59599516SKenneth E. Jansenc
57*59599516SKenneth E. Jansen! we want to project out the x1 component of the velocity from the tangent
58*59599516SKenneth E. Jansen! matix which is, mathematically, M^e = S^T M^e S. We will do the M^e S
59*59599516SKenneth E. Jansen! product first. It has the effect of
60*59599516SKenneth E. Jansen! subtracting the column of the block-9 matrix from each column of the block-9
61*59599516SKenneth E. Jansen! matrix  that is going to survive (weighted by the coefficient in the
62*59599516SKenneth E. Jansen! BC array associated with that row) FOR EACH column  of the
63*59599516SKenneth E. Jansen! nshl by nshl matrix FOR EACH element.  THEN the transpose of the
64*59599516SKenneth E. Jansen! operation is carried out (replace the word "column" by row
65*59599516SKenneth E. Jansen! EVERYWHERE). The following code has been set up so that we only have to
66*59599516SKenneth E. Jansen! give the starting position in each case since we know the block-9 matrix is
67*59599516SKenneth E. Jansen! ordered like this
68*59599516SKenneth E. Jansen!  1 2 3
69*59599516SKenneth E. Jansen!  4 5 6
70*59599516SKenneth E. Jansen!  7 8 9
71*59599516SKenneth E. Jansen
72*59599516SKenneth E. Jansenc
73*59599516SKenneth E. Jansenc  adjusting the second column for the eventual removal of the first
74*59599516SKenneth E. Jansenc  column of the block-9 submatrix
75*59599516SKenneth E. Jansenc
76*59599516SKenneth E. Jansen                 irem1=1
77*59599516SKenneth E. Jansen                 irem2=irem1+3
78*59599516SKenneth E. Jansen                 irem3=irem2+3
79*59599516SKenneth E. Jansen
80*59599516SKenneth E. Jansen                 iadj1=2
81*59599516SKenneth E. Jansen                 iadj2=iadj1+3
82*59599516SKenneth E. Jansen                 iadj3=iadj2+3
83*59599516SKenneth E. Jansen                 do i = 1, nshl
84*59599516SKenneth E. Jansen                    xKebe(iel,iadj1,i,inod) = xKebe(iel,iadj1,i,inod)
85*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem1,i,inod)
86*59599516SKenneth E. Jansen                    xKebe(iel,iadj2,i,inod) = xKebe(iel,iadj2,i,inod)
87*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem2,i,inod)
88*59599516SKenneth E. Jansen                    xKebe(iel,iadj3,i,inod) = xKebe(iel,iadj3,i,inod)
89*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem3,i,inod)
90*59599516SKenneth E. Jansen
91*59599516SKenneth E. Jansen                 enddo
92*59599516SKenneth E. Jansen! block status ' denotes colunn 1 projected off.
93*59599516SKenneth E. Jansen!  1 2' 3
94*59599516SKenneth E. Jansen!  4 5' 6
95*59599516SKenneth E. Jansen!  7 8' 9
96*59599516SKenneth E. Jansenc
97*59599516SKenneth E. Jansenc  adjusting the third column for the eventual removal of the first
98*59599516SKenneth E. Jansenc  column of the block-9 submatrix
99*59599516SKenneth E. Jansenc
100*59599516SKenneth E. Jansen                 iadj1=3
101*59599516SKenneth E. Jansen                 iadj2=iadj1+3
102*59599516SKenneth E. Jansen                 iadj3=iadj2+3
103*59599516SKenneth E. Jansen                 do i = 1, nshl
104*59599516SKenneth E. Jansen                    xKebe(iel,iadj1,i,inod) = xKebe(iel,iadj1,i,inod)
105*59599516SKenneth E. Jansen     &                           - BC(in,5) * xKebe(iel,irem1,i,inod)
106*59599516SKenneth E. Jansen                    xKebe(iel,iadj2,i,inod) = xKebe(iel,iadj2,i,inod)
107*59599516SKenneth E. Jansen     &                           - BC(in,5) * xKebe(iel,irem2,i,inod)
108*59599516SKenneth E. Jansen                    xKebe(iel,iadj3,i,inod) = xKebe(iel,iadj3,i,inod)
109*59599516SKenneth E. Jansen     &                           - BC(in,5) * xKebe(iel,irem3,i,inod)
110*59599516SKenneth E. Jansen! block status
111*59599516SKenneth E. Jansen!  1 2' 3'
112*59599516SKenneth E. Jansen!  4 5' 6'
113*59599516SKenneth E. Jansen!  7 8' 9'
114*59599516SKenneth E. Jansen                 enddo
115*59599516SKenneth E. Jansen                 do i=1,nshl
116*59599516SKenneth E. Jansenc
117*59599516SKenneth E. Jansenc done with the first  columns_block-9 for columns AND rows of nshl
118*59599516SKenneth E. Jansenc
119*59599516SKenneth E. Jansen                    xKebe(iel,irem1,i,inod) = zero
120*59599516SKenneth E. Jansen                    xKebe(iel,irem2,i,inod) = zero
121*59599516SKenneth E. Jansen                    xKebe(iel,irem3,i,inod) = zero
122*59599516SKenneth E. Jansen
123*59599516SKenneth E. Jansen
124*59599516SKenneth E. Jansen! block status
125*59599516SKenneth E. Jansen!  0 2' 3'
126*59599516SKenneth E. Jansen!  0 5' 6'
127*59599516SKenneth E. Jansen!  0 8' 9'
128*59599516SKenneth E. Jansen
129*59599516SKenneth E. Jansen                 enddo
130*59599516SKenneth E. Jansenc
131*59599516SKenneth E. Jansenc  now adjust the second row_block-9 for EACH row nshl for EACH element
132*59599516SKenneth E. Jansenc
133*59599516SKenneth E. Jansen
134*59599516SKenneth E. Jansen                 iadj1=4
135*59599516SKenneth E. Jansen                 iadj2=iadj1+1
136*59599516SKenneth E. Jansen                 iadj3=iadj2+1
137*59599516SKenneth E. Jansen                 irem1=1
138*59599516SKenneth E. Jansen                 irem2=irem1+1
139*59599516SKenneth E. Jansen                 irem3=irem2+1
140*59599516SKenneth E. Jansen                 do i = 1, nshl
141*59599516SKenneth E. Jansen                    xKebe(iel,iadj1,inod,i) = xKebe(iel,iadj1,inod,i)
142*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem1,inod,i)
143*59599516SKenneth E. Jansen                    xKebe(iel,iadj2,inod,i) = xKebe(iel,iadj2,inod,i)
144*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem2,inod,i)
145*59599516SKenneth E. Jansen                    xKebe(iel,iadj3,inod,i) = xKebe(iel,iadj3,inod,i)
146*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem3,inod,i)
147*59599516SKenneth E. Jansen
148*59599516SKenneth E. Jansen                 enddo
149*59599516SKenneth E. Jansen! block status
150*59599516SKenneth E. Jansen!  0 2' 3'
151*59599516SKenneth E. Jansen!  0 5'' 6''
152*59599516SKenneth E. Jansen!  0 8' 9'
153*59599516SKenneth E. Jansen
154*59599516SKenneth E. Jansen
155*59599516SKenneth E. Jansen                 iadj1=7
156*59599516SKenneth E. Jansen                 iadj2=iadj1+1
157*59599516SKenneth E. Jansen                 iadj3=iadj2+1
158*59599516SKenneth E. Jansen                 do i = 1, nshl
159*59599516SKenneth E. Jansen                    xKebe(iel,iadj1,inod,i) = xKebe(iel,iadj1,inod,i)
160*59599516SKenneth E. Jansen     &                           - BC(in,5) * xKebe(iel,irem1,inod,i)
161*59599516SKenneth E. Jansen                    xKebe(iel,iadj2,inod,i) = xKebe(iel,iadj2,inod,i)
162*59599516SKenneth E. Jansen     &                           - BC(in,5) * xKebe(iel,irem2,inod,i)
163*59599516SKenneth E. Jansen                    xKebe(iel,iadj3,inod,i) = xKebe(iel,iadj3,inod,i)
164*59599516SKenneth E. Jansen     &                           - BC(in,5) * xKebe(iel,irem3,inod,i)
165*59599516SKenneth E. Jansen
166*59599516SKenneth E. Jansen! block status
167*59599516SKenneth E. Jansen!  0 2' 3'
168*59599516SKenneth E. Jansen!  0 5'' 6''
169*59599516SKenneth E. Jansen!  0 8'' 9''
170*59599516SKenneth E. Jansen                 enddo
171*59599516SKenneth E. Jansen                 do i=1,nshl
172*59599516SKenneth E. Jansen
173*59599516SKenneth E. Jansenc
174*59599516SKenneth E. Jansenc eliminate the first row of block-9 for all rows
175*59599516SKenneth E. Jansenc
176*59599516SKenneth E. Jansen                    xKebe(iel,irem1,inod,i) = zero
177*59599516SKenneth E. Jansen                    xKebe(iel,irem2,inod,i) = zero
178*59599516SKenneth E. Jansen                    xKebe(iel,irem3,inod,i) = zero
179*59599516SKenneth E. Jansen
180*59599516SKenneth E. Jansen                 enddo
181*59599516SKenneth E. Jansen
182*59599516SKenneth E. Jansen! block status
183*59599516SKenneth E. Jansen!  0 0   0
184*59599516SKenneth E. Jansen!  0 5'' 6''
185*59599516SKenneth E. Jansen!  0 8'' 9''
186*59599516SKenneth E. Jansen
187*59599516SKenneth E. Jansen! Be aware that this simple status of the block does not reflect that when
188*59599516SKenneth E. Jansen! we eliminated columns we did it for columns in nshl as well for the given
189*59599516SKenneth E. Jansen! inod. Conversely when we eliminated rows in the block we did so for ALL
190*59599516SKenneth E. Jansen!  rows in nshl as can be seen by the transpose of i and inod.
191*59599516SKenneth E. Jansen
192*59599516SKenneth E. Jansen                 xKebe(iel,1,inod,inod)=one
193*59599516SKenneth E. Jansen! block status
194*59599516SKenneth E. Jansen!  1 0   0
195*59599516SKenneth E. Jansen!  0 5'' 6''
196*59599516SKenneth E. Jansen!  0 8'' 9''
197*59599516SKenneth E. Jansen              endif
198*59599516SKenneth E. Jansenc
199*59599516SKenneth E. Jansenc.... x2-velocity
200*59599516SKenneth E. Jansenc
201*59599516SKenneth E. Jansen              if ( ibits(iBC(in),3,3) .eq. 2) then
202*59599516SKenneth E. Jansenc
203*59599516SKenneth E. Jansen! See comment above. Now we are eliminating the 2nd column then row of
204*59599516SKenneth E. Jansen! the block-9 matrix
205*59599516SKenneth E. Jansen!  1 2 3
206*59599516SKenneth E. Jansen!  4 5 6
207*59599516SKenneth E. Jansen!  7 8 9
208*59599516SKenneth E. Jansenc
209*59599516SKenneth E. Jansenc  adjusting the first column for the eventual removal of the second
210*59599516SKenneth E. Jansenc  column of the block-9 submatrix
211*59599516SKenneth E. Jansenc
212*59599516SKenneth E. Jansen                 irem1=2
213*59599516SKenneth E. Jansen                 irem2=irem1+3
214*59599516SKenneth E. Jansen                 irem3=irem2+3
215*59599516SKenneth E. Jansen
216*59599516SKenneth E. Jansen                 iadj1=1
217*59599516SKenneth E. Jansen                 iadj2=iadj1+3
218*59599516SKenneth E. Jansen                 iadj3=iadj2+3
219*59599516SKenneth E. Jansen                 do i = 1, nshl
220*59599516SKenneth E. Jansen                    xKebe(iel,iadj1,i,inod) = xKebe(iel,iadj1,i,inod)
221*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem1,i,inod)
222*59599516SKenneth E. Jansen                    xKebe(iel,iadj2,i,inod) = xKebe(iel,iadj2,i,inod)
223*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem2,i,inod)
224*59599516SKenneth E. Jansen                    xKebe(iel,iadj3,i,inod) = xKebe(iel,iadj3,i,inod)
225*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem3,i,inod)
226*59599516SKenneth E. Jansen
227*59599516SKenneth E. Jansen                 enddo
228*59599516SKenneth E. Jansenc
229*59599516SKenneth E. Jansenc  adjusting the third column for the eventual removal of the second
230*59599516SKenneth E. Jansenc  column of the block-9 submatrix
231*59599516SKenneth E. Jansenc
232*59599516SKenneth E. Jansen                 iadj1=3
233*59599516SKenneth E. Jansen                 iadj2=iadj1+3
234*59599516SKenneth E. Jansen                 iadj3=iadj2+3
235*59599516SKenneth E. Jansen                 do i = 1, nshl
236*59599516SKenneth E. Jansen                    xKebe(iel,iadj1,i,inod) = xKebe(iel,iadj1,i,inod)
237*59599516SKenneth E. Jansen     &                           - BC(in,5) * xKebe(iel,irem1,i,inod)
238*59599516SKenneth E. Jansen                    xKebe(iel,iadj2,i,inod) = xKebe(iel,iadj2,i,inod)
239*59599516SKenneth E. Jansen     &                           - BC(in,5) * xKebe(iel,irem2,i,inod)
240*59599516SKenneth E. Jansen                    xKebe(iel,iadj3,i,inod) = xKebe(iel,iadj3,i,inod)
241*59599516SKenneth E. Jansen     &                           - BC(in,5) * xKebe(iel,irem3,i,inod)
242*59599516SKenneth E. Jansen
243*59599516SKenneth E. Jansen                 enddo
244*59599516SKenneth E. Jansen                 do i=1,nshl
245*59599516SKenneth E. Jansenc
246*59599516SKenneth E. Jansenc done with the second  columns_block-9 for columns
247*59599516SKenneth E. Jansenc
248*59599516SKenneth E. Jansen
249*59599516SKenneth E. Jansen                    xKebe(iel,irem1,i,inod) = zero
250*59599516SKenneth E. Jansen                    xKebe(iel,irem2,i,inod) = zero
251*59599516SKenneth E. Jansen                    xKebe(iel,irem3,i,inod) = zero
252*59599516SKenneth E. Jansen
253*59599516SKenneth E. Jansen                 enddo
254*59599516SKenneth E. Jansenc
255*59599516SKenneth E. Jansenc  now adjust the 1st row_block-9 for EACH row nshl for EACH element
256*59599516SKenneth E. Jansenc
257*59599516SKenneth E. Jansen
258*59599516SKenneth E. Jansen                 iadj1=1
259*59599516SKenneth E. Jansen                 iadj2=iadj1+1
260*59599516SKenneth E. Jansen                 iadj3=iadj2+1
261*59599516SKenneth E. Jansen                 irem1=4
262*59599516SKenneth E. Jansen                 irem2=irem1+1
263*59599516SKenneth E. Jansen                 irem3=irem2+1
264*59599516SKenneth E. Jansen                 do i = 1, nshl
265*59599516SKenneth E. Jansen                    xKebe(iel,iadj1,inod,i) = xKebe(iel,iadj1,inod,i)
266*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem1,inod,i)
267*59599516SKenneth E. Jansen                    xKebe(iel,iadj2,inod,i) = xKebe(iel,iadj2,inod,i)
268*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem2,inod,i)
269*59599516SKenneth E. Jansen                    xKebe(iel,iadj3,inod,i) = xKebe(iel,iadj3,inod,i)
270*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem3,inod,i)
271*59599516SKenneth E. Jansen
272*59599516SKenneth E. Jansen                 enddo
273*59599516SKenneth E. Jansen                 iadj1=7
274*59599516SKenneth E. Jansen                 iadj2=iadj1+1
275*59599516SKenneth E. Jansen                 iadj3=iadj2+1
276*59599516SKenneth E. Jansen                 do i = 1, nshl
277*59599516SKenneth E. Jansen                    xKebe(iel,iadj1,inod,i) = xKebe(iel,iadj1,inod,i)
278*59599516SKenneth E. Jansen     &                           - BC(in,5) * xKebe(iel,irem1,inod,i)
279*59599516SKenneth E. Jansen                    xKebe(iel,iadj2,inod,i) = xKebe(iel,iadj2,inod,i)
280*59599516SKenneth E. Jansen     &                           - BC(in,5) * xKebe(iel,irem2,inod,i)
281*59599516SKenneth E. Jansen                    xKebe(iel,iadj3,inod,i) = xKebe(iel,iadj3,inod,i)
282*59599516SKenneth E. Jansen     &                           - BC(in,5) * xKebe(iel,irem3,inod,i)
283*59599516SKenneth E. Jansen                 enddo
284*59599516SKenneth E. Jansen                 do i=1,nshl
285*59599516SKenneth E. Jansen
286*59599516SKenneth E. Jansenc
287*59599516SKenneth E. Jansenc eliminate the second row of block-9 for all rows
288*59599516SKenneth E. Jansenc
289*59599516SKenneth E. Jansen                    xKebe(iel,irem1,inod,i) = zero
290*59599516SKenneth E. Jansen                    xKebe(iel,irem2,inod,i) = zero
291*59599516SKenneth E. Jansen                    xKebe(iel,irem3,inod,i) = zero
292*59599516SKenneth E. Jansen                 enddo
293*59599516SKenneth E. Jansen                 xKebe(iel,5,inod,inod)=one
294*59599516SKenneth E. Jansen              endif
295*59599516SKenneth E. Jansenc
296*59599516SKenneth E. Jansenc.... x3-velocity
297*59599516SKenneth E. Jansenc
298*59599516SKenneth E. Jansen              if ( ibits(iBC(in),3,3) .eq. 4) then
299*59599516SKenneth E. Jansenc
300*59599516SKenneth E. Jansen! See comment above. Now we are eliminating the 3rd column then row of
301*59599516SKenneth E. Jansen! the block-9 matrix
302*59599516SKenneth E. Jansen!  1 2 3
303*59599516SKenneth E. Jansen!  4 5 6
304*59599516SKenneth E. Jansen!  7 8 9
305*59599516SKenneth E. Jansenc
306*59599516SKenneth E. Jansenc  adjusting the 1st column for the eventual removal of the 3rd
307*59599516SKenneth E. Jansenc  column of the block-9 submatrix
308*59599516SKenneth E. Jansenc
309*59599516SKenneth E. Jansen                 irem1=3
310*59599516SKenneth E. Jansen                 irem2=irem1+3
311*59599516SKenneth E. Jansen                 irem3=irem2+3
312*59599516SKenneth E. Jansen
313*59599516SKenneth E. Jansen                 iadj1=1
314*59599516SKenneth E. Jansen                 iadj2=iadj1+3
315*59599516SKenneth E. Jansen                 iadj3=iadj2+3
316*59599516SKenneth E. Jansen                 do i = 1, nshl
317*59599516SKenneth E. Jansen                    xKebe(iel,iadj1,i,inod) = xKebe(iel,iadj1,i,inod)
318*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem1,i,inod)
319*59599516SKenneth E. Jansen                    xKebe(iel,iadj2,i,inod) = xKebe(iel,iadj2,i,inod)
320*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem2,i,inod)
321*59599516SKenneth E. Jansen                    xKebe(iel,iadj3,i,inod) = xKebe(iel,iadj3,i,inod)
322*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem3,i,inod)
323*59599516SKenneth E. Jansen
324*59599516SKenneth E. Jansen                 enddo
325*59599516SKenneth E. Jansenc
326*59599516SKenneth E. Jansenc  adjusting the second column for the eventual removal of the 3rd
327*59599516SKenneth E. Jansenc  column of the block-9 submatrix
328*59599516SKenneth E. Jansenc
329*59599516SKenneth E. Jansen                 iadj1=2
330*59599516SKenneth E. Jansen                 iadj2=iadj1+3
331*59599516SKenneth E. Jansen                 iadj3=iadj2+3
332*59599516SKenneth E. Jansen                 do i = 1, nshl
333*59599516SKenneth E. Jansen                    xKebe(iel,iadj1,i,inod) = xKebe(iel,iadj1,i,inod)
334*59599516SKenneth E. Jansen     &                           - BC(in,5) * xKebe(iel,irem1,i,inod)
335*59599516SKenneth E. Jansen                    xKebe(iel,iadj2,i,inod) = xKebe(iel,iadj2,i,inod)
336*59599516SKenneth E. Jansen     &                           - BC(in,5) * xKebe(iel,irem2,i,inod)
337*59599516SKenneth E. Jansen                    xKebe(iel,iadj3,i,inod) = xKebe(iel,iadj3,i,inod)
338*59599516SKenneth E. Jansen     &                           - BC(in,5) * xKebe(iel,irem3,i,inod)
339*59599516SKenneth E. Jansen                 enddo
340*59599516SKenneth E. Jansen                 do i=1,nshl
341*59599516SKenneth E. Jansen
342*59599516SKenneth E. Jansenc
343*59599516SKenneth E. Jansenc done with the 3rd columns_block-9 for columns
344*59599516SKenneth E. Jansenc
345*59599516SKenneth E. Jansen
346*59599516SKenneth E. Jansen                    xKebe(iel,irem1,i,inod) = zero
347*59599516SKenneth E. Jansen                    xKebe(iel,irem2,i,inod) = zero
348*59599516SKenneth E. Jansen                    xKebe(iel,irem3,i,inod) = zero
349*59599516SKenneth E. Jansen
350*59599516SKenneth E. Jansen                 enddo
351*59599516SKenneth E. Jansenc
352*59599516SKenneth E. Jansenc  now adjust the 1st row_block-9 for EACH row nshl for EACH element
353*59599516SKenneth E. Jansenc
354*59599516SKenneth E. Jansen
355*59599516SKenneth E. Jansen                 iadj1=1
356*59599516SKenneth E. Jansen                 iadj2=iadj1+1
357*59599516SKenneth E. Jansen                 iadj3=iadj2+1
358*59599516SKenneth E. Jansen                 irem1=7
359*59599516SKenneth E. Jansen                 irem2=irem1+1
360*59599516SKenneth E. Jansen                 irem3=irem2+1
361*59599516SKenneth E. Jansen                 do i = 1, nshl
362*59599516SKenneth E. Jansen                    xKebe(iel,iadj1,inod,i) = xKebe(iel,iadj1,inod,i)
363*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem1,inod,i)
364*59599516SKenneth E. Jansen                    xKebe(iel,iadj2,inod,i) = xKebe(iel,iadj2,inod,i)
365*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem2,inod,i)
366*59599516SKenneth E. Jansen                    xKebe(iel,iadj3,inod,i) = xKebe(iel,iadj3,inod,i)
367*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem3,inod,i)
368*59599516SKenneth E. Jansen
369*59599516SKenneth E. Jansen                 enddo
370*59599516SKenneth E. Jansen                 iadj1=4
371*59599516SKenneth E. Jansen                 iadj2=iadj1+1
372*59599516SKenneth E. Jansen                 iadj3=iadj2+1
373*59599516SKenneth E. Jansen                 do i = 1, nshl
374*59599516SKenneth E. Jansen                    xKebe(iel,iadj1,inod,i) = xKebe(iel,iadj1,inod,i)
375*59599516SKenneth E. Jansen     &                           - BC(in,5) * xKebe(iel,irem1,inod,i)
376*59599516SKenneth E. Jansen                    xKebe(iel,iadj2,inod,i) = xKebe(iel,iadj2,inod,i)
377*59599516SKenneth E. Jansen     &                           - BC(in,5) * xKebe(iel,irem2,inod,i)
378*59599516SKenneth E. Jansen                    xKebe(iel,iadj3,inod,i) = xKebe(iel,iadj3,inod,i)
379*59599516SKenneth E. Jansen     &                           - BC(in,5) * xKebe(iel,irem3,inod,i)
380*59599516SKenneth E. Jansen
381*59599516SKenneth E. Jansen                 enddo
382*59599516SKenneth E. Jansen                 do i=1,nshl
383*59599516SKenneth E. Jansen                    xKebe(iel,irem1,inod,i) = zero
384*59599516SKenneth E. Jansen                    xKebe(iel,irem2,inod,i) = zero
385*59599516SKenneth E. Jansen                    xKebe(iel,irem3,inod,i) = zero
386*59599516SKenneth E. Jansen
387*59599516SKenneth E. Jansen                 enddo
388*59599516SKenneth E. Jansen                 xKebe(iel,9,inod,inod)=one
389*59599516SKenneth E. Jansen              endif
390*59599516SKenneth E. Jansenc
391*59599516SKenneth E. Jansenc.... x1-velocity and x2-velocity
392*59599516SKenneth E. Jansenc
393*59599516SKenneth E. Jansen              if ( ibits(iBC(in),3,3) .eq. 3 ) then
394*59599516SKenneth E. Jansenc
395*59599516SKenneth E. Jansen! See comment above. Now we are eliminating the 2nd and 1st column then
396*59599516SKenneth E. Jansen! same rows of
397*59599516SKenneth E. Jansen! the block-9 matrix
398*59599516SKenneth E. Jansen!  1 2 3
399*59599516SKenneth E. Jansen!  4 5 6
400*59599516SKenneth E. Jansen!  7 8 9
401*59599516SKenneth E. Jansenc
402*59599516SKenneth E. Jansenc  adjusting the 3rd column for the eventual removal of the first and second
403*59599516SKenneth E. Jansenc  column of the block-9 submatrix
404*59599516SKenneth E. Jansenc
405*59599516SKenneth E. Jansen                 irem1=1
406*59599516SKenneth E. Jansen                 irem2=irem1+3
407*59599516SKenneth E. Jansen                 irem3=irem2+3
408*59599516SKenneth E. Jansen
409*59599516SKenneth E. Jansen                 ire21=2
410*59599516SKenneth E. Jansen                 ire22=ire21+3
411*59599516SKenneth E. Jansen                 ire23=ire22+3
412*59599516SKenneth E. Jansen
413*59599516SKenneth E. Jansen                 iadj1=3
414*59599516SKenneth E. Jansen                 iadj2=iadj1+3
415*59599516SKenneth E. Jansen                 iadj3=iadj2+3
416*59599516SKenneth E. Jansen                 do i = 1, nshl
417*59599516SKenneth E. Jansen                    xKebe(iel,iadj1,i,inod) = xKebe(iel,iadj1,i,inod)
418*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem1,i,inod)
419*59599516SKenneth E. Jansen     &                           - BC(in,6) * xKebe(iel,ire21,i,inod)
420*59599516SKenneth E. Jansen                    xKebe(iel,iadj2,i,inod) = xKebe(iel,iadj2,i,inod)
421*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem2,i,inod)
422*59599516SKenneth E. Jansen     &                           - BC(in,6) * xKebe(iel,ire22,i,inod)
423*59599516SKenneth E. Jansen                    xKebe(iel,iadj3,i,inod) = xKebe(iel,iadj3,i,inod)
424*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem3,i,inod)
425*59599516SKenneth E. Jansen     &                           - BC(in,6) * xKebe(iel,ire23,i,inod)
426*59599516SKenneth E. Jansen
427*59599516SKenneth E. Jansen! Status of the block-9 matrix
428*59599516SKenneth E. Jansen!  1 2 3'
429*59599516SKenneth E. Jansen!  4 5 6'
430*59599516SKenneth E. Jansen!  7 8 9'
431*59599516SKenneth E. Jansen                 enddo
432*59599516SKenneth E. Jansen                 do i=1,nshl
433*59599516SKenneth E. Jansenc
434*59599516SKenneth E. Jansenc done with the first and second columns_block-9 for columns AND rows of nshl
435*59599516SKenneth E. Jansenc
436*59599516SKenneth E. Jansen
437*59599516SKenneth E. Jansen                    xKebe(iel,irem1,i,inod) = zero
438*59599516SKenneth E. Jansen                    xKebe(iel,irem2,i,inod) = zero
439*59599516SKenneth E. Jansen                    xKebe(iel,irem3,i,inod) = zero
440*59599516SKenneth E. Jansen
441*59599516SKenneth E. Jansen                    xKebe(iel,ire21,i,inod) = zero
442*59599516SKenneth E. Jansen                    xKebe(iel,ire22,i,inod) = zero
443*59599516SKenneth E. Jansen                    xKebe(iel,ire23,i,inod) = zero
444*59599516SKenneth E. Jansen
445*59599516SKenneth E. Jansen! Status of the block-9 matrix
446*59599516SKenneth E. Jansen!  0 0 3'
447*59599516SKenneth E. Jansen!  0 0 6'
448*59599516SKenneth E. Jansen!  0 0 9'
449*59599516SKenneth E. Jansen
450*59599516SKenneth E. Jansen                 enddo
451*59599516SKenneth E. Jansenc
452*59599516SKenneth E. Jansenc  now adjust the 3rd row_block-9 for EACH row nshl for EACH element
453*59599516SKenneth E. Jansenc
454*59599516SKenneth E. Jansen
455*59599516SKenneth E. Jansen                 iadj1=7
456*59599516SKenneth E. Jansen                 iadj2=iadj1+1
457*59599516SKenneth E. Jansen                 iadj3=iadj2+1
458*59599516SKenneth E. Jansen                 irem1=1
459*59599516SKenneth E. Jansen                 irem2=irem1+1
460*59599516SKenneth E. Jansen                 irem3=irem2+1
461*59599516SKenneth E. Jansen                 ire21=4
462*59599516SKenneth E. Jansen                 ire22=ire21+1
463*59599516SKenneth E. Jansen                 ire23=ire22+1
464*59599516SKenneth E. Jansen                 do i = 1, nshl
465*59599516SKenneth E. Jansen                    xKebe(iel,iadj1,inod,i) = xKebe(iel,iadj1,inod,i)
466*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem1,inod,i)
467*59599516SKenneth E. Jansen     &                           - BC(in,6) * xKebe(iel,ire21,inod,i)
468*59599516SKenneth E. Jansen                    xKebe(iel,iadj2,inod,i) = xKebe(iel,iadj2,inod,i)
469*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem2,inod,i)
470*59599516SKenneth E. Jansen     &                           - BC(in,6) * xKebe(iel,ire22,inod,i)
471*59599516SKenneth E. Jansen                    xKebe(iel,iadj3,inod,i) = xKebe(iel,iadj3,inod,i)
472*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem3,inod,i)
473*59599516SKenneth E. Jansen     &                           - BC(in,6) * xKebe(iel,ire23,inod,i)
474*59599516SKenneth E. Jansen
475*59599516SKenneth E. Jansen
476*59599516SKenneth E. Jansen! Status of the block-9 matrix
477*59599516SKenneth E. Jansen!  0 0 3'
478*59599516SKenneth E. Jansen!  0 0 6'
479*59599516SKenneth E. Jansen!  0 0 9''
480*59599516SKenneth E. Jansen                 enddo
481*59599516SKenneth E. Jansen                 do i=1,nshl
482*59599516SKenneth E. Jansen                    xKebe(iel,irem1,inod,i) = zero
483*59599516SKenneth E. Jansen                    xKebe(iel,irem2,inod,i) = zero
484*59599516SKenneth E. Jansen                    xKebe(iel,irem3,inod,i) = zero
485*59599516SKenneth E. Jansen
486*59599516SKenneth E. Jansen                    xKebe(iel,ire21,inod,i) = zero
487*59599516SKenneth E. Jansen                    xKebe(iel,ire22,inod,i) = zero
488*59599516SKenneth E. Jansen                    xKebe(iel,ire23,inod,i) = zero
489*59599516SKenneth E. Jansen
490*59599516SKenneth E. Jansen! Status of the block-9 matrix
491*59599516SKenneth E. Jansen!  0 0 0
492*59599516SKenneth E. Jansen!  0 0 0
493*59599516SKenneth E. Jansen!  0 0 9''
494*59599516SKenneth E. Jansen
495*59599516SKenneth E. Jansen                 enddo
496*59599516SKenneth E. Jansen                 xKebe(iel,1,inod,inod)=one
497*59599516SKenneth E. Jansen                 xKebe(iel,5,inod,inod)=one
498*59599516SKenneth E. Jansen              endif
499*59599516SKenneth E. Jansenc
500*59599516SKenneth E. Jansenc.... x1-velocity and x3-velocity
501*59599516SKenneth E. Jansenc
502*59599516SKenneth E. Jansen              if ( ibits(iBC(in),3,3) .eq. 5 ) then
503*59599516SKenneth E. Jansenc
504*59599516SKenneth E. Jansen! See comment above. Now we are eliminating the 1 and 3 column then
505*59599516SKenneth E. Jansen! same rows of
506*59599516SKenneth E. Jansen! the block-9 matrix
507*59599516SKenneth E. Jansen!  1 2 3
508*59599516SKenneth E. Jansen!  4 5 6
509*59599516SKenneth E. Jansen!  7 8 9
510*59599516SKenneth E. Jansenc
511*59599516SKenneth E. Jansenc  adjusting the 3rd column for the eventual removal of the first and second
512*59599516SKenneth E. Jansenc  column of the block-9 submatrix
513*59599516SKenneth E. Jansenc
514*59599516SKenneth E. Jansen                 irem1=1
515*59599516SKenneth E. Jansen                 irem2=irem1+3
516*59599516SKenneth E. Jansen                 irem3=irem2+3
517*59599516SKenneth E. Jansen
518*59599516SKenneth E. Jansen                 ire21=3
519*59599516SKenneth E. Jansen                 ire22=ire21+3
520*59599516SKenneth E. Jansen                 ire23=ire22+3
521*59599516SKenneth E. Jansen
522*59599516SKenneth E. Jansen                 iadj1=2
523*59599516SKenneth E. Jansen                 iadj2=iadj1+3
524*59599516SKenneth E. Jansen                 iadj3=iadj2+3
525*59599516SKenneth E. Jansen                 do i = 1, nshl
526*59599516SKenneth E. Jansen                    xKebe(iel,iadj1,i,inod) = xKebe(iel,iadj1,i,inod)
527*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem1,i,inod)
528*59599516SKenneth E. Jansen     &                           - BC(in,6) * xKebe(iel,ire21,i,inod)
529*59599516SKenneth E. Jansen                    xKebe(iel,iadj2,i,inod) = xKebe(iel,iadj2,i,inod)
530*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem2,i,inod)
531*59599516SKenneth E. Jansen     &                           - BC(in,6) * xKebe(iel,ire22,i,inod)
532*59599516SKenneth E. Jansen                    xKebe(iel,iadj3,i,inod) = xKebe(iel,iadj3,i,inod)
533*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem3,i,inod)
534*59599516SKenneth E. Jansen     &                           - BC(in,6) * xKebe(iel,ire23,i,inod)
535*59599516SKenneth E. Jansen
536*59599516SKenneth E. Jansen                 enddo
537*59599516SKenneth E. Jansen                 do i=1,nshl
538*59599516SKenneth E. Jansenc
539*59599516SKenneth E. Jansenc done with the first and third columns_block-9 for columns AND rows of nshl
540*59599516SKenneth E. Jansenc
541*59599516SKenneth E. Jansen                    xKebe(iel,irem1,i,inod) = zero
542*59599516SKenneth E. Jansen                    xKebe(iel,irem2,i,inod) = zero
543*59599516SKenneth E. Jansen                    xKebe(iel,irem3,i,inod) = zero
544*59599516SKenneth E. Jansen
545*59599516SKenneth E. Jansen                    xKebe(iel,ire21,i,inod) = zero
546*59599516SKenneth E. Jansen                    xKebe(iel,ire22,i,inod) = zero
547*59599516SKenneth E. Jansen                    xKebe(iel,ire23,i,inod) = zero
548*59599516SKenneth E. Jansen                 enddo
549*59599516SKenneth E. Jansenc
550*59599516SKenneth E. Jansenc  now adjust the 2nd row_block-9 for EACH row nshl for EACH element
551*59599516SKenneth E. Jansenc
552*59599516SKenneth E. Jansen
553*59599516SKenneth E. Jansen                 iadj1=4
554*59599516SKenneth E. Jansen                 iadj2=iadj1+1
555*59599516SKenneth E. Jansen                 iadj3=iadj2+1
556*59599516SKenneth E. Jansen                 irem1=1
557*59599516SKenneth E. Jansen                 irem2=irem1+1
558*59599516SKenneth E. Jansen                 irem3=irem2+1
559*59599516SKenneth E. Jansen                 ire21=7
560*59599516SKenneth E. Jansen                 ire22=ire21+1
561*59599516SKenneth E. Jansen                 ire23=ire22+1
562*59599516SKenneth E. Jansen                 do i = 1, nshl
563*59599516SKenneth E. Jansen                    xKebe(iel,iadj1,inod,i) = xKebe(iel,iadj1,inod,i)
564*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem1,inod,i)
565*59599516SKenneth E. Jansen     &                           - BC(in,6) * xKebe(iel,ire21,inod,i)
566*59599516SKenneth E. Jansen                    xKebe(iel,iadj2,inod,i) = xKebe(iel,iadj2,inod,i)
567*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem2,inod,i)
568*59599516SKenneth E. Jansen     &                           - BC(in,6) * xKebe(iel,ire22,inod,i)
569*59599516SKenneth E. Jansen                    xKebe(iel,iadj3,inod,i) = xKebe(iel,iadj3,inod,i)
570*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem3,inod,i)
571*59599516SKenneth E. Jansen     &                           - BC(in,6) * xKebe(iel,ire23,inod,i)
572*59599516SKenneth E. Jansen
573*59599516SKenneth E. Jansen                 enddo
574*59599516SKenneth E. Jansen                 do i=1,nshl
575*59599516SKenneth E. Jansen                    xKebe(iel,irem1,inod,i) = zero
576*59599516SKenneth E. Jansen                    xKebe(iel,irem2,inod,i) = zero
577*59599516SKenneth E. Jansen                    xKebe(iel,irem3,inod,i) = zero
578*59599516SKenneth E. Jansen
579*59599516SKenneth E. Jansen                    xKebe(iel,ire21,inod,i) = zero
580*59599516SKenneth E. Jansen                    xKebe(iel,ire22,inod,i) = zero
581*59599516SKenneth E. Jansen                    xKebe(iel,ire23,inod,i) = zero
582*59599516SKenneth E. Jansen
583*59599516SKenneth E. Jansen                 enddo
584*59599516SKenneth E. Jansen                 xKebe(iel,1,inod,inod)=one
585*59599516SKenneth E. Jansen                 xKebe(iel,9,inod,inod)=one
586*59599516SKenneth E. Jansen              endif
587*59599516SKenneth E. Jansenc
588*59599516SKenneth E. Jansenc.... x2-velocity and x3-velocity
589*59599516SKenneth E. Jansenc
590*59599516SKenneth E. Jansen              if ( ibits(iBC(in),3,3) .eq. 6 ) then
591*59599516SKenneth E. Jansenc
592*59599516SKenneth E. Jansen! See comment above. Now we are eliminating the 2nd and 3rd column then
593*59599516SKenneth E. Jansen! same rows of
594*59599516SKenneth E. Jansen! the block-9 matrix
595*59599516SKenneth E. Jansen!  1 2 3
596*59599516SKenneth E. Jansen!  4 5 6
597*59599516SKenneth E. Jansen!  7 8 9
598*59599516SKenneth E. Jansenc
599*59599516SKenneth E. Jansenc  adjusting the 3rd column for the eventual removal of the first and second
600*59599516SKenneth E. Jansenc  column of the block-9 submatrix
601*59599516SKenneth E. Jansenc
602*59599516SKenneth E. Jansen                 irem1=2
603*59599516SKenneth E. Jansen                 irem2=irem1+3
604*59599516SKenneth E. Jansen                 irem3=irem2+3
605*59599516SKenneth E. Jansen
606*59599516SKenneth E. Jansen                 ire21=3
607*59599516SKenneth E. Jansen                 ire22=ire21+3
608*59599516SKenneth E. Jansen                 ire23=ire22+3
609*59599516SKenneth E. Jansen
610*59599516SKenneth E. Jansen                 iadj1=1
611*59599516SKenneth E. Jansen                 iadj2=iadj1+3
612*59599516SKenneth E. Jansen                 iadj3=iadj2+3
613*59599516SKenneth E. Jansen                 do i = 1, nshl
614*59599516SKenneth E. Jansen                    xKebe(iel,iadj1,i,inod) = xKebe(iel,iadj1,i,inod)
615*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem1,i,inod)
616*59599516SKenneth E. Jansen     &                           - BC(in,6) * xKebe(iel,ire21,i,inod)
617*59599516SKenneth E. Jansen                    xKebe(iel,iadj2,i,inod) = xKebe(iel,iadj2,i,inod)
618*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem2,i,inod)
619*59599516SKenneth E. Jansen     &                           - BC(in,6) * xKebe(iel,ire22,i,inod)
620*59599516SKenneth E. Jansen                    xKebe(iel,iadj3,i,inod) = xKebe(iel,iadj3,i,inod)
621*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem3,i,inod)
622*59599516SKenneth E. Jansen     &                           - BC(in,6) * xKebe(iel,ire23,i,inod)
623*59599516SKenneth E. Jansen                 enddo
624*59599516SKenneth E. Jansen                 do i=1,nshl
625*59599516SKenneth E. Jansen
626*59599516SKenneth E. Jansenc
627*59599516SKenneth E. Jansenc done with the first and second columns_block-9 for columns AND rows of nshl
628*59599516SKenneth E. Jansenc
629*59599516SKenneth E. Jansen                    xKebe(iel,irem1,i,inod) = zero
630*59599516SKenneth E. Jansen                    xKebe(iel,irem2,i,inod) = zero
631*59599516SKenneth E. Jansen                    xKebe(iel,irem3,i,inod) = zero
632*59599516SKenneth E. Jansen
633*59599516SKenneth E. Jansen                    xKebe(iel,ire21,i,inod) = zero
634*59599516SKenneth E. Jansen                    xKebe(iel,ire22,i,inod) = zero
635*59599516SKenneth E. Jansen                    xKebe(iel,ire23,i,inod) = zero
636*59599516SKenneth E. Jansen
637*59599516SKenneth E. Jansen                 enddo
638*59599516SKenneth E. Jansenc
639*59599516SKenneth E. Jansenc  now adjust the 3rd row_block-9 for EACH row nshl for EACH element
640*59599516SKenneth E. Jansenc
641*59599516SKenneth E. Jansen
642*59599516SKenneth E. Jansen                 iadj1=1
643*59599516SKenneth E. Jansen                 iadj2=iadj1+1
644*59599516SKenneth E. Jansen                 iadj3=iadj2+1
645*59599516SKenneth E. Jansen                 irem1=4
646*59599516SKenneth E. Jansen                 irem2=irem1+1
647*59599516SKenneth E. Jansen                 irem3=irem2+1
648*59599516SKenneth E. Jansen                 ire21=7
649*59599516SKenneth E. Jansen                 ire22=ire21+1
650*59599516SKenneth E. Jansen                 ire23=ire22+1
651*59599516SKenneth E. Jansen                 do i = 1, nshl
652*59599516SKenneth E. Jansen                    xKebe(iel,iadj1,inod,i) = xKebe(iel,iadj1,inod,i)
653*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem1,inod,i)
654*59599516SKenneth E. Jansen                    xKebe(iel,iadj2,inod,i) = xKebe(iel,iadj2,inod,i)
655*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem2,inod,i)
656*59599516SKenneth E. Jansen                    xKebe(iel,iadj3,inod,i) = xKebe(iel,iadj3,inod,i)
657*59599516SKenneth E. Jansen     &                           - BC(in,4) * xKebe(iel,irem3,inod,i)
658*59599516SKenneth E. Jansen     &                           - BC(in,6) * xKebe(iel,ire23,inod,i)
659*59599516SKenneth E. Jansen
660*59599516SKenneth E. Jansen                 enddo
661*59599516SKenneth E. Jansen                 do i=1,nshl
662*59599516SKenneth E. Jansen                    xKebe(iel,irem1,inod,i) = zero
663*59599516SKenneth E. Jansen                    xKebe(iel,irem2,inod,i) = zero
664*59599516SKenneth E. Jansen                    xKebe(iel,irem3,inod,i) = zero
665*59599516SKenneth E. Jansen
666*59599516SKenneth E. Jansenc
667*59599516SKenneth E. Jansen                    xKebe(iel,ire21,inod,i) = zero
668*59599516SKenneth E. Jansen                    xKebe(iel,ire22,inod,i) = zero
669*59599516SKenneth E. Jansen                    xKebe(iel,ire23,inod,i) = zero
670*59599516SKenneth E. Jansen
671*59599516SKenneth E. Jansen                 enddo
672*59599516SKenneth E. Jansen                 xKebe(iel,5,inod,inod)=one
673*59599516SKenneth E. Jansen                 xKebe(iel,9,inod,inod)=one
674*59599516SKenneth E. Jansen              endif
675*59599516SKenneth E. Jansen
676*59599516SKenneth E. Jansen 5000         continue
677*59599516SKenneth E. Jansen
678*59599516SKenneth E. Jansenc
679*59599516SKenneth E. Jansenc.... end loop over shape functions (nodes)
680*59599516SKenneth E. Jansenc
681*59599516SKenneth E. Jansen           enddo
682*59599516SKenneth E. Jansenc
683*59599516SKenneth E. Jansenc.... end loop over elements
684*59599516SKenneth E. Jansenc
685*59599516SKenneth E. Jansen        enddo
686*59599516SKenneth E. Jansenc
687*59599516SKenneth E. Jansenc These elements should assemble to a matrix with the rows and columns
688*59599516SKenneth E. Jansenc associated with the Dirichlet nodes zeroed out.  Note that BC3 Diag
689*59599516SKenneth E. Jansenc
690*59599516SKenneth E. Jansenc
691*59599516SKenneth E. Jansenc.... return
692*59599516SKenneth E. Jansenc
693*59599516SKenneth E. Jansen        return
694*59599516SKenneth E. Jansen        end
695