xref: /phasta/phSolver/compressible/bc3lhs.f (revision 595995161822a203c8467e0e4a253d7bd7d6df32)
1*59599516SKenneth E. Jansen      subroutine bc3LHS (iBC,  BC,  iens,  EGmass )
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 a single
6*59599516SKenneth E. Jansenc element.
7*59599516SKenneth E. Jansenc
8*59599516SKenneth E. Jansenc input:
9*59599516SKenneth E. Jansenc  iBC   (nshg) 	: boundary condition code
10*59599516SKenneth E. Jansenc  BC    (nshg,11)      : Dirichlet BC constraint parameters
11*59599516SKenneth E. Jansenc  ien   (npro,nshl)	: ien array for this element
12*59599516SKenneth E. Jansenc  EGmass(npro,nedof,nedof) : element consistent mass matrix before BC
13*59599516SKenneth E. Jansenc
14*59599516SKenneth E. Jansenc output:
15*59599516SKenneth E. Jansenc  EGmass(npro,nedof,nedof): 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----------------------------------------------------------------------
21*59599516SKenneth E. Jansenc
22*59599516SKenneth E. Jansen        include "common.h"
23*59599516SKenneth E. Jansenc
24*59599516SKenneth E. Jansen	dimension iBC(nshg),      ien(npro,nshl),
25*59599516SKenneth E. Jansen     &		  BC(nshg,11),    EGmass(npro,nedof,nedof)
26*59599516SKenneth E. Jansen	integer iens(npro,nshl)
27*59599516SKenneth E. Jansenc
28*59599516SKenneth E. Jansenc prefer to show explicit absolute value needed for cubic modes and
29*59599516SKenneth E. Jansenc higher rather than inline abs on pointer as in past versions
30*59599516SKenneth E. Jansenc iens is the signed ien array ien is unsigned
31*59599516SKenneth E. Jansenc
32*59599516SKenneth E. Jansen	ien=abs(iens)
33*59599516SKenneth E. Jansenc
34*59599516SKenneth E. Jansenc.... loop over elements
35*59599516SKenneth E. Jansenc
36*59599516SKenneth E. Jansen        do iel = 1, npro
37*59599516SKenneth E. Jansenc
38*59599516SKenneth E. Jansenc.... loop over number of shape functions for this element
39*59599516SKenneth E. Jansenc
40*59599516SKenneth E. Jansen	do inod = 1, nshl
41*59599516SKenneth E. Jansenc
42*59599516SKenneth E. Jansenc.... set up parameters
43*59599516SKenneth E. Jansenc
44*59599516SKenneth E. Jansen        in  = ien(iel,inod)
45*59599516SKenneth E. Jansen        if (iBC(in) .eq. 0) goto 5000
46*59599516SKenneth E. Jansen        ioff = (inod - 1) * nflow
47*59599516SKenneth E. Jansen        i1 = ioff + 1
48*59599516SKenneth E. Jansen        i2 = ioff + 2
49*59599516SKenneth E. Jansen        i3 = ioff + 3
50*59599516SKenneth E. Jansen        i4 = ioff + 4
51*59599516SKenneth E. Jansen        i5 = ioff + 5
52*59599516SKenneth E. Jansenc
53*59599516SKenneth E. Jansenc.... pressure
54*59599516SKenneth E. Jansenc
55*59599516SKenneth E. Jansen	if ( btest(iBC(in),2) ) then
56*59599516SKenneth E. Jansen
57*59599516SKenneth E. Jansen           do i = 1, nedof
58*59599516SKenneth E. Jansen              EGmass(iel,i,i1) = zero
59*59599516SKenneth E. Jansen              EGmass(iel,i1,i) = zero
60*59599516SKenneth E. Jansen           enddo
61*59599516SKenneth E. Jansen           EGmass(iel,i1,i1) = one
62*59599516SKenneth E. Jansen	endif
63*59599516SKenneth E. Jansenc
64*59599516SKenneth E. Jansenc.... density  ( not activated yet for LHS matrix )
65*59599516SKenneth E. Jansenc
66*59599516SKenneth E. Jansen
67*59599516SKenneth E. Jansenc
68*59599516SKenneth E. Jansenc.... velocities
69*59599516SKenneth E. Jansenc
70*59599516SKenneth E. Jansenc
71*59599516SKenneth E. Jansenc.... x1-velocity
72*59599516SKenneth E. Jansenc
73*59599516SKenneth E. Jansen        if ( ibits(iBC(in),3,3) .eq. 1) then
74*59599516SKenneth E. Jansen           do i = 1, nedof
75*59599516SKenneth E. Jansen              EGmass(iel,i3,i) = EGmass(iel,i3,i)
76*59599516SKenneth E. Jansen     &                         - BC(in,4) * EGmass(iel,i2,i)
77*59599516SKenneth E. Jansen              EGmass(iel,i4,i) = EGmass(iel,i4,i)
78*59599516SKenneth E. Jansen     &                         - BC(in,5) * EGmass(iel,i2,i)
79*59599516SKenneth E. Jansen           enddo
80*59599516SKenneth E. Jansen           do i = 1, nedof
81*59599516SKenneth E. Jansen              EGmass(iel,i,i3) = EGmass(iel,i,i3)
82*59599516SKenneth E. Jansen     &                         - BC(in,4) * EGmass(iel,i,i2)
83*59599516SKenneth E. Jansen              EGmass(iel,i,i4) = EGmass(iel,i,i4)
84*59599516SKenneth E. Jansen     &                         - BC(in,5) * EGmass(iel,i,i2)
85*59599516SKenneth E. Jansen           enddo
86*59599516SKenneth E. Jansen           do i = 1, nedof
87*59599516SKenneth E. Jansen              EGmass(iel,i,i2) = zero
88*59599516SKenneth E. Jansen              EGmass(iel,i2,i) = zero
89*59599516SKenneth E. Jansen           enddo
90*59599516SKenneth E. Jansen           EGmass(iel,i2,i2) = one
91*59599516SKenneth E. Jansen        endif
92*59599516SKenneth E. Jansenc
93*59599516SKenneth E. Jansenc.... x2-velocity
94*59599516SKenneth E. Jansenc
95*59599516SKenneth E. Jansen        if ( ibits(iBC(in),3,3) .eq. 2 ) then
96*59599516SKenneth E. Jansen           do i = 1, nedof
97*59599516SKenneth E. Jansen              EGmass(iel,i2,i) = EGmass(iel,i2,i)
98*59599516SKenneth E. Jansen     &                         - BC(in,4) * EGmass(iel,i3,i)
99*59599516SKenneth E. Jansen              EGmass(iel,i4,i) = EGmass(iel,i4,i)
100*59599516SKenneth E. Jansen     &                         - BC(in,5) * EGmass(iel,i3,i)
101*59599516SKenneth E. Jansen           enddo
102*59599516SKenneth E. Jansen           do i = 1, nedof
103*59599516SKenneth E. Jansen              EGmass(iel,i,i2) = EGmass(iel,i,i2)
104*59599516SKenneth E. Jansen     &                         - BC(in,4) * EGmass(iel,i,i3)
105*59599516SKenneth E. Jansen              EGmass(iel,i,i4) = EGmass(iel,i,i4)
106*59599516SKenneth E. Jansen     &                         - BC(in,5) * EGmass(iel,i,i3)
107*59599516SKenneth E. Jansen           enddo
108*59599516SKenneth E. Jansen
109*59599516SKenneth E. Jansen           do i = 1, nedof
110*59599516SKenneth E. Jansen              EGmass(iel,i,i3) = zero
111*59599516SKenneth E. Jansen              EGmass(iel,i3,i) = zero
112*59599516SKenneth E. Jansen           enddo
113*59599516SKenneth E. Jansen           EGmass(iel,i3,i3) = one
114*59599516SKenneth E. Jansen        endif
115*59599516SKenneth E. Jansenc
116*59599516SKenneth E. Jansenc.... x1-velocity and x2-velocity
117*59599516SKenneth E. Jansenc
118*59599516SKenneth E. Jansen        if ( ibits(iBC(in),3,3) .eq. 3 ) then
119*59599516SKenneth E. Jansen           do i = 1, nedof
120*59599516SKenneth E. Jansen              EGmass(iel,i4,i) = EGmass(iel,i4,i)
121*59599516SKenneth E. Jansen     &                     - BC(in,4) * EGmass(iel,i2,i)
122*59599516SKenneth E. Jansen     &                     - BC(in,6) * EGmass(iel,i3,i)
123*59599516SKenneth E. Jansen           enddo
124*59599516SKenneth E. Jansen           do i = 1, nedof
125*59599516SKenneth E. Jansen              EGmass(iel,i,i4) = EGmass(iel,i,i4)
126*59599516SKenneth E. Jansen     &                     - BC(in,4) * EGmass(iel,i,i2)
127*59599516SKenneth E. Jansen     &                     - BC(in,6) * EGmass(iel,i,i3)
128*59599516SKenneth E. Jansen           enddo
129*59599516SKenneth E. Jansen
130*59599516SKenneth E. Jansen           do i = 1, nedof
131*59599516SKenneth E. Jansen              EGmass(iel,i,i2) = zero
132*59599516SKenneth E. Jansen              EGmass(iel,i2,i) = zero
133*59599516SKenneth E. Jansen              EGmass(iel,i,i3) = zero
134*59599516SKenneth E. Jansen              EGmass(iel,i3,i) = zero
135*59599516SKenneth E. Jansen           enddo
136*59599516SKenneth E. Jansen           EGmass(iel,i2,i2) = one
137*59599516SKenneth E. Jansen           EGmass(iel,i3,i3) = one
138*59599516SKenneth E. Jansen        endif
139*59599516SKenneth E. Jansenc
140*59599516SKenneth E. Jansenc.... x3-velocity
141*59599516SKenneth E. Jansenc
142*59599516SKenneth E. Jansen        if ( ibits(iBC(in),3,3) .eq. 4 ) then
143*59599516SKenneth E. Jansen           do i = 1, nedof
144*59599516SKenneth E. Jansen              EGmass(iel,i2,i) = EGmass(iel,i2,i)
145*59599516SKenneth E. Jansen     &                         - BC(in,4) * EGmass(iel,i4,i)
146*59599516SKenneth E. Jansen              EGmass(iel,i3,i) = EGmass(iel,i3,i)
147*59599516SKenneth E. Jansen     &                         - BC(in,5) * EGmass(iel,i4,i)
148*59599516SKenneth E. Jansen           enddo
149*59599516SKenneth E. Jansen           do i = 1, nedof
150*59599516SKenneth E. Jansen              EGmass(iel,i,i2) = EGmass(iel,i,i2)
151*59599516SKenneth E. Jansen     &                         - BC(in,4) * EGmass(iel,i,i4)
152*59599516SKenneth E. Jansen              EGmass(iel,i,i3) = EGmass(iel,i,i3)
153*59599516SKenneth E. Jansen     &                         - BC(in,5) * EGmass(iel,i,i4)
154*59599516SKenneth E. Jansen           enddo
155*59599516SKenneth E. Jansen
156*59599516SKenneth E. Jansen           do i = 1, nedof
157*59599516SKenneth E. Jansen              EGmass(iel,i,i4) = zero
158*59599516SKenneth E. Jansen              EGmass(iel,i4,i) = zero
159*59599516SKenneth E. Jansen           enddo
160*59599516SKenneth E. Jansen           EGmass(iel,i4,i4) = one
161*59599516SKenneth E. Jansen        endif
162*59599516SKenneth E. Jansenc
163*59599516SKenneth E. Jansenc.... x1-velocity and x3-velocity
164*59599516SKenneth E. Jansenc
165*59599516SKenneth E. Jansen        if ( ibits(iBC(in),3,3) .eq. 5 ) then
166*59599516SKenneth E. Jansen           do i = 1, nedof
167*59599516SKenneth E. Jansen              EGmass(iel,i3,i) = EGmass(iel,i3,i)
168*59599516SKenneth E. Jansen     &                     - BC(in,4) * EGmass(iel,i2,i)
169*59599516SKenneth E. Jansen     &                     - BC(in,6) * EGmass(iel,i4,i)
170*59599516SKenneth E. Jansen           enddo
171*59599516SKenneth E. Jansen           do i = 1, nedof
172*59599516SKenneth E. Jansen              EGmass(iel,i,i3) = EGmass(iel,i,i3)
173*59599516SKenneth E. Jansen     &                     - BC(in,4) * EGmass(iel,i,i2)
174*59599516SKenneth E. Jansen     &                     - BC(in,6) * EGmass(iel,i,i4)
175*59599516SKenneth E. Jansen           enddo
176*59599516SKenneth E. Jansen
177*59599516SKenneth E. Jansen           do i = 1, nedof
178*59599516SKenneth E. Jansen              EGmass(iel,i ,i2) = zero
179*59599516SKenneth E. Jansen              EGmass(iel,i2,i ) = zero
180*59599516SKenneth E. Jansen              EGmass(iel,i ,i4) = zero
181*59599516SKenneth E. Jansen              EGmass(iel,i4,i ) = zero
182*59599516SKenneth E. Jansen           enddo
183*59599516SKenneth E. Jansen           EGmass(iel,i2,i2) = one
184*59599516SKenneth E. Jansen           EGmass(iel,i4,i4) = one
185*59599516SKenneth E. Jansen        endif
186*59599516SKenneth E. Jansenc
187*59599516SKenneth E. Jansenc.... x2-velocity and x3-velocity
188*59599516SKenneth E. Jansenc
189*59599516SKenneth E. Jansen        if ( ibits(iBC(in),3,3) .eq. 6 ) then
190*59599516SKenneth E. Jansen           do i = 1, nedof
191*59599516SKenneth E. Jansen              EGmass(iel,i2,i) = EGmass(iel,i2,i)
192*59599516SKenneth E. Jansen     &                     - BC(in,4) * EGmass(iel,i3,i)
193*59599516SKenneth E. Jansen     &                     - BC(in,6) * EGmass(iel,i4,i)
194*59599516SKenneth E. Jansen           enddo
195*59599516SKenneth E. Jansen           do i = 1, nedof
196*59599516SKenneth E. Jansen              EGmass(iel,i,i2) = EGmass(iel,i,i2)
197*59599516SKenneth E. Jansen     &                     - BC(in,4) * EGmass(iel,i,i3)
198*59599516SKenneth E. Jansen     &                     - BC(in,6) * EGmass(iel,i,i4)
199*59599516SKenneth E. Jansen           enddo
200*59599516SKenneth E. Jansen
201*59599516SKenneth E. Jansen           do i = 1, nedof
202*59599516SKenneth E. Jansen              EGmass(iel,i ,i3) = zero
203*59599516SKenneth E. Jansen              EGmass(iel,i3,i ) = zero
204*59599516SKenneth E. Jansen              EGmass(iel,i ,i4) = zero
205*59599516SKenneth E. Jansen              EGmass(iel,i4,i ) = zero
206*59599516SKenneth E. Jansen           enddo
207*59599516SKenneth E. Jansen           EGmass(iel,i3,i3) = one
208*59599516SKenneth E. Jansen           EGmass(iel,i4,i4) = one
209*59599516SKenneth E. Jansen        endif
210*59599516SKenneth E. Jansenc
211*59599516SKenneth E. Jansenc.... x1-velocity, x2-velocity, and x3-velocity
212*59599516SKenneth E. Jansenc
213*59599516SKenneth E. Jansen        if ( ibits(iBC(in),3,3) .eq. 7 ) then
214*59599516SKenneth E. Jansen           do i = 1, nedof
215*59599516SKenneth E. Jansen              EGmass(iel,i ,i2) = zero
216*59599516SKenneth E. Jansen              EGmass(iel,i2,i ) = zero
217*59599516SKenneth E. Jansen              EGmass(iel,i ,i3) = zero
218*59599516SKenneth E. Jansen              EGmass(iel,i3,i ) = zero
219*59599516SKenneth E. Jansen              EGmass(iel,i ,i4) = zero
220*59599516SKenneth E. Jansen              EGmass(iel,i4,i ) = zero
221*59599516SKenneth E. Jansen           enddo
222*59599516SKenneth E. Jansen           EGmass(iel,i2,i2) = one
223*59599516SKenneth E. Jansen           EGmass(iel,i3,i3) = one
224*59599516SKenneth E. Jansen           EGmass(iel,i4,i4) = one
225*59599516SKenneth E. Jansen        endif
226*59599516SKenneth E. Jansenc
227*59599516SKenneth E. Jansenc.... temperature
228*59599516SKenneth E. Jansenc
229*59599516SKenneth E. Jansen	if ( btest(iBC(in),1) ) then
230*59599516SKenneth E. Jansen           do i = 1, nedof
231*59599516SKenneth E. Jansen              EGmass(iel,i,i5) = zero
232*59599516SKenneth E. Jansen              EGmass(iel,i5,i) = zero
233*59599516SKenneth E. Jansen           enddo
234*59599516SKenneth E. Jansen           EGmass(iel,i5,i5) = one
235*59599516SKenneth E. Jansen	endif
236*59599516SKenneth E. Jansenc
237*59599516SKenneth E. Jansenc	Elaine
238*59599516SKenneth E. Jansenc.... scaled plane extraction boundary conditions
239*59599516SKenneth E. Jansenc
240*59599516SKenneth E. Jansen        if(intpres.eq.1) then
241*59599516SKenneth E. Jansen	  if ( btest(iBC(in),11) ) then
242*59599516SKenneth E. Jansen            do i = 1, nedof
243*59599516SKenneth E. Jansen              EGmass(iel,i ,i1) = zero
244*59599516SKenneth E. Jansen              EGmass(iel,i1,i ) = zero
245*59599516SKenneth E. Jansen              EGmass(iel,i ,i2) = zero
246*59599516SKenneth E. Jansen              EGmass(iel,i2,i ) = zero
247*59599516SKenneth E. Jansen              EGmass(iel,i ,i3) = zero
248*59599516SKenneth E. Jansen              EGmass(iel,i3,i ) = zero
249*59599516SKenneth E. Jansen              EGmass(iel,i ,i4) = zero
250*59599516SKenneth E. Jansen              EGmass(iel,i4,i ) = zero
251*59599516SKenneth E. Jansen              EGmass(iel,i,i5) = zero
252*59599516SKenneth E. Jansen              EGmass(iel,i5,i) = zero
253*59599516SKenneth E. Jansen            enddo
254*59599516SKenneth E. Jansen            EGmass(iel,i1,i1) = one
255*59599516SKenneth E. Jansen            EGmass(iel,i2,i2) = one
256*59599516SKenneth E. Jansen            EGmass(iel,i3,i3) = one
257*59599516SKenneth E. Jansen            EGmass(iel,i4,i4) = one
258*59599516SKenneth E. Jansen            EGmass(iel,i5,i5) = one
259*59599516SKenneth E. Jansen          endif
260*59599516SKenneth E. Jansen	else
261*59599516SKenneth E. Jansen	  if ( btest(iBC(in),11) ) then
262*59599516SKenneth E. Jansen            do i = 1, nedof
263*59599516SKenneth E. Jansen              EGmass(iel,i ,i2) = zero
264*59599516SKenneth E. Jansen              EGmass(iel,i2,i ) = zero
265*59599516SKenneth E. Jansen              EGmass(iel,i ,i3) = zero
266*59599516SKenneth E. Jansen              EGmass(iel,i3,i ) = zero
267*59599516SKenneth E. Jansen              EGmass(iel,i ,i4) = zero
268*59599516SKenneth E. Jansen              EGmass(iel,i4,i ) = zero
269*59599516SKenneth E. Jansen              EGmass(iel,i,i5) = zero
270*59599516SKenneth E. Jansen              EGmass(iel,i5,i) = zero
271*59599516SKenneth E. Jansen            enddo
272*59599516SKenneth E. Jansen            EGmass(iel,i2,i2) = one
273*59599516SKenneth E. Jansen            EGmass(iel,i3,i3) = one
274*59599516SKenneth E. Jansen            EGmass(iel,i4,i4) = one
275*59599516SKenneth E. Jansen            EGmass(iel,i5,i5) = one
276*59599516SKenneth E. Jansen          endif
277*59599516SKenneth E. Jansen	endif
278*59599516SKenneth E. Jansen
279*59599516SKenneth E. Jansen 5000 continue
280*59599516SKenneth E. Jansen
281*59599516SKenneth E. Jansenc
282*59599516SKenneth E. Jansenc.... end loop over shape functions (nodes)
283*59599516SKenneth E. Jansenc
284*59599516SKenneth E. Jansen      enddo
285*59599516SKenneth E. Jansenc
286*59599516SKenneth E. Jansenc.... end loop over elements
287*59599516SKenneth E. Jansenc
288*59599516SKenneth E. Jansen      enddo
289*59599516SKenneth E. Jansenc
290*59599516SKenneth E. Jansenc.... return
291*59599516SKenneth E. Jansenc
292*59599516SKenneth E. Jansen      return
293*59599516SKenneth E. Jansen      end
294*59599516SKenneth E. Jansenc
295*59599516SKenneth E. Jansenc
296*59599516SKenneth E. Jansenc
297*59599516SKenneth E. Jansen      subroutine bc3LHSSclr (iBC,  iens,  EGmasst )
298*59599516SKenneth E. Jansenc
299*59599516SKenneth E. Jansenc----------------------------------------------------------------------
300*59599516SKenneth E. Jansenc
301*59599516SKenneth E. Jansenc This routine satisfies the BC of LHS mass matrix for a single
302*59599516SKenneth E. Jansenc element.
303*59599516SKenneth E. Jansenc
304*59599516SKenneth E. Jansenc input:
305*59599516SKenneth E. Jansenc  iBC   (nshg) 	: boundary condition code
306*59599516SKenneth E. Jansenc  BC    (nshg,11)      : Dirichlet BC constraint parameters
307*59599516SKenneth E. Jansenc  ien   (npro,nshl)	: ien array for this element
308*59599516SKenneth E. Jansenc  EGmasst(npro,nshape,nshape) : element consistent mass matrix before BC
309*59599516SKenneth E. Jansenc
310*59599516SKenneth E. Jansenc output:
311*59599516SKenneth E. Jansenc  EGmasst(npro,nshape,nshape): LHS mass matrix after BC is satisfied
312*59599516SKenneth E. Jansenc
313*59599516SKenneth E. Jansenc
314*59599516SKenneth E. Jansenc Farzin Shakib, Winter 1987.
315*59599516SKenneth E. Jansenc Zdenek Johan,  Spring 1990. (Modified for general divariant gas)
316*59599516SKenneth E. Jansenc----------------------------------------------------------------------
317*59599516SKenneth E. Jansenc
318*59599516SKenneth E. Jansen        include "common.h"
319*59599516SKenneth E. Jansenc
320*59599516SKenneth E. Jansen	dimension iBC(nshg),      ien(npro,nshl),
321*59599516SKenneth E. Jansen     &		  EGmasst(npro,nshape,nshape)
322*59599516SKenneth E. Jansenc
323*59599516SKenneth E. Jansen	integer iens(npro,nshl)
324*59599516SKenneth E. Jansenc
325*59599516SKenneth E. Jansenc prefer to show explicit absolute value needed for cubic modes and
326*59599516SKenneth E. Jansenc higher rather than inline abs on pointer as in past versions
327*59599516SKenneth E. Jansenc iens is the signed ien array ien is unsigned
328*59599516SKenneth E. Jansenc
329*59599516SKenneth E. Jansen	ien=abs(iens)
330*59599516SKenneth E. Jansenc
331*59599516SKenneth E. Jansen        id = isclr+5
332*59599516SKenneth E. Jansenc.... loop over elements
333*59599516SKenneth E. Jansenc
334*59599516SKenneth E. Jansen        do iel = 1, npro
335*59599516SKenneth E. Jansenc
336*59599516SKenneth E. Jansenc.... loop over number of shape functions for this element
337*59599516SKenneth E. Jansenc
338*59599516SKenneth E. Jansen	do inod = 1, nshl
339*59599516SKenneth E. Jansenc
340*59599516SKenneth E. Jansenc.... set up parameters
341*59599516SKenneth E. Jansenc
342*59599516SKenneth E. Jansen        in  = ien(iel,inod)
343*59599516SKenneth E. Jansen        if (iBC(in) .eq. 0) goto 5000
344*59599516SKenneth E. Jansen
345*59599516SKenneth E. Jansenc
346*59599516SKenneth E. Jansenc.... scalar
347*59599516SKenneth E. Jansenc
348*59599516SKenneth E. Jansen	if ( btest(iBC(in),id) ) then
349*59599516SKenneth E. Jansen
350*59599516SKenneth E. Jansen           do i = 1, nshl
351*59599516SKenneth E. Jansen              EGmasst(iel,i,inod) = zero
352*59599516SKenneth E. Jansen              EGmasst(iel,inod,i) = zero
353*59599516SKenneth E. Jansen           enddo
354*59599516SKenneth E. Jansen           EGmasst(iel,inod,inod) = one
355*59599516SKenneth E. Jansen	endif
356*59599516SKenneth E. Jansen
357*59599516SKenneth E. Jansenc
358*59599516SKenneth E. Jansen
359*59599516SKenneth E. Jansen 5000 continue
360*59599516SKenneth E. Jansen
361*59599516SKenneth E. Jansenc
362*59599516SKenneth E. Jansenc.... end loop over shape functions (nodes)
363*59599516SKenneth E. Jansenc
364*59599516SKenneth E. Jansen      enddo
365*59599516SKenneth E. Jansenc
366*59599516SKenneth E. Jansenc.... end loop over elements
367*59599516SKenneth E. Jansenc
368*59599516SKenneth E. Jansen      enddo
369*59599516SKenneth E. Jansenc
370*59599516SKenneth E. Jansenc.... return
371*59599516SKenneth E. Jansenc
372*59599516SKenneth E. Jansen      return
373*59599516SKenneth E. Jansen      end
374*59599516SKenneth E. Jansen
375