5 &(op , dm,typdim,xm,typexm, dn,typdin,xn,typexn, c,
6 & nulone,nelbor,nbor,nelmax,sizdn,sizxn,szmxn)
102 INTEGER,
INTENT(IN) :: NELMAX,SIZDN,SIZXN,SZMXN
103 CHARACTER(LEN=8),
INTENT(IN) :: OP
104 INTEGER,
INTENT(IN) :: NULONE(szmxn,3)
105 INTEGER,
INTENT(IN) :: NELBOR(*),NBOR(*)
106 DOUBLE PRECISION,
INTENT(IN) :: DN(*),XN(szmxn,*)
107 DOUBLE PRECISION,
INTENT(INOUT) :: DM(*),XM(nelmax,*)
108 CHARACTER(LEN=1),
INTENT(INOUT) :: TYPDIM,TYPEXM,TYPDIN,TYPEXN
109 DOUBLE PRECISION,
INTENT(IN) :: C
113 INTEGER K,IEL,NUL1,NUL2,NUL3
115 DOUBLE PRECISION Z(1)
122 INTEGER :: CONVNSY(4,4)
123 parameter( convnsy = reshape( (/
124 & 123456789, 7 , 8 , 9 ,
125 & 1 , 123456789, 10 , 11 ,
126 & 2 , 4 , 123456789, 12 ,
127 & 3 , 5 , 6 , 123456789 /),
128 & shape=(/ 4,4 /) ) )
129 INTEGER :: CONVSYM(4,4)
130 parameter( convsym = reshape( (/
131 & 123456789, 1 , 2 , 3 ,
132 & 1 , 123456789, 4 , 5 ,
133 & 2 , 4 , 123456789, 6 ,
134 & 3 , 5 , 6 , 123456789 /),
135 & shape=(/ 4,4 /) ) )
139 IF(op(1:8).EQ.
'M=M+N ')
THEN 141 IF(typdim.EQ.
'Q'.AND.typdin.EQ.
'Q')
THEN 142 CALL ovdb(
'X=X+Y ' , dm , dn , z , c , nbor , sizdn )
144 WRITE(
lu,199) typdim(1:1),op(1:8),typdin(1:1)
145 199
FORMAT(1x,
'OM5161 (BIEF) : TYPDIM = ',a1,
' NOT IMPLEMENTED',
146 & /,1x,
'FOR THE OPERATION : ',a8,
' WITH TYPDIN = ',a1)
151 IF(typexm(1:1).EQ.
'Q'.AND.typexn(1:1).EQ.
'Q')
THEN 162 xm( iel , convnsy(nul1,nul2) ) =
163 & xm( iel , convnsy(nul1,nul2) ) + xn(k, 1)
164 xm( iel , convnsy(nul1,nul3) ) =
165 & xm( iel , convnsy(nul1,nul3) ) + xn(k, 2)
166 xm( iel , convnsy(nul2,nul3) ) =
167 & xm( iel , convnsy(nul2,nul3) ) + xn(k, 3)
168 xm( iel , convnsy(nul2,nul1) ) =
169 & xm( iel , convnsy(nul2,nul1) ) + xn(k, 4)
170 xm( iel , convnsy(nul3,nul1) ) =
171 & xm( iel , convnsy(nul3,nul1) ) + xn(k, 5)
172 xm( iel , convnsy(nul3,nul2) ) =
173 & xm( iel , convnsy(nul3,nul2) ) + xn(k, 6)
182 xm( iel , convnsy(nul1,nul2) ) =
183 & xm( iel , convnsy(nul1,nul2) ) + xn(k, 1)
184 xm( iel , convnsy(nul1,nul3) ) =
185 & xm( iel , convnsy(nul1,nul3) ) + xn(k, 2)
186 xm( iel , convnsy(nul2,nul3) ) =
187 & xm( iel , convnsy(nul2,nul3) ) + xn(k, 3)
188 xm( iel , convnsy(nul2,nul1) ) =
189 & xm( iel , convnsy(nul2,nul1) ) + xn(k, 4)
190 xm( iel , convnsy(nul3,nul1) ) =
191 & xm( iel , convnsy(nul3,nul1) ) + xn(k, 5)
192 xm( iel , convnsy(nul3,nul2) ) =
193 & xm( iel , convnsy(nul3,nul2) ) + xn(k, 6)
197 ELSEIF(typexm(1:1).EQ.
'Q'.AND.typexn(1:1).EQ.
'S')
THEN 208 xm( iel , convnsy(nul1,nul2) ) =
209 & xm( iel , convnsy(nul1,nul2) ) + xn(k, 1)
210 xm( iel , convnsy(nul1,nul3) ) =
211 & xm( iel , convnsy(nul1,nul3) ) + xn(k, 2)
212 xm( iel , convnsy(nul2,nul3) ) =
213 & xm( iel , convnsy(nul2,nul3) ) + xn(k, 3)
214 xm( iel , convnsy(nul2,nul1) ) =
215 & xm( iel , convnsy(nul2,nul1) ) + xn(k, 1)
216 xm( iel , convnsy(nul3,nul1) ) =
217 & xm( iel , convnsy(nul3,nul1) ) + xn(k, 2)
218 xm( iel , convnsy(nul3,nul2) ) =
219 & xm( iel , convnsy(nul3,nul2) ) + xn(k, 3)
228 xm( iel , convnsy(nul1,nul2) ) =
229 & xm( iel , convnsy(nul1,nul2) ) + xn(k, 1)
230 xm( iel , convnsy(nul1,nul3) ) =
231 & xm( iel , convnsy(nul1,nul3) ) + xn(k, 2)
232 xm( iel , convnsy(nul2,nul3) ) =
233 & xm( iel , convnsy(nul2,nul3) ) + xn(k, 3)
234 xm( iel , convnsy(nul2,nul1) ) =
235 & xm( iel , convnsy(nul2,nul1) ) + xn(k, 1)
236 xm( iel , convnsy(nul3,nul1) ) =
237 & xm( iel , convnsy(nul3,nul1) ) + xn(k, 2)
238 xm( iel , convnsy(nul3,nul2) ) =
239 & xm( iel , convnsy(nul3,nul2) ) + xn(k, 3)
243 ELSEIF(typexm(1:1).EQ.
'S'.AND.typexn(1:1).EQ.
'S')
THEN 254 xm( iel , convsym(nul1,nul2) ) =
255 & xm( iel , convsym(nul1,nul2) ) + xn(k, 1)
256 xm( iel , convsym(nul1,nul3) ) =
257 & xm( iel , convsym(nul1,nul3) ) + xn(k, 2)
258 xm( iel , convsym(nul2,nul3) ) =
259 & xm( iel , convsym(nul2,nul3) ) + xn(k, 3)
268 xm( iel , convsym(nul1,nul2) ) =
269 & xm( iel , convsym(nul1,nul2) ) + xn(k, 1)
270 xm( iel , convsym(nul1,nul3) ) =
271 & xm( iel , convsym(nul1,nul3) ) + xn(k, 2)
272 xm( iel , convsym(nul2,nul3) ) =
273 & xm( iel , convsym(nul2,nul3) ) + xn(k, 3)
278 WRITE(
lu,99) typexm(1:1),op(1:8),typexn(1:1)
279 99
FORMAT(1x,
'OM5161 (BIEF) : TYPEXM = ',a1,
' DOES NOT GO',
280 & /,1x,
'FOR THE OPERATION : ',a8,
' WITH TYPEXN = ',a1)
287 ELSEIF(op(1:8).EQ.
'M=M+TN ')
THEN 289 CALL ovdb(
'X=X+Y ' , dm , dn , z , c , nbor , sizxn )
291 IF(typexm(1:1).EQ.
'Q'.AND.typexn(1:1).EQ.
'Q')
THEN 302 xm( iel , convnsy(nul1,nul2) ) =
303 & xm( iel , convnsy(nul1,nul2) ) + xn(k, 4)
304 xm( iel , convnsy(nul1,nul3) ) =
305 & xm( iel , convnsy(nul1,nul3) ) + xn(k, 5)
306 xm( iel , convnsy(nul2,nul3) ) =
307 & xm( iel , convnsy(nul2,nul3) ) + xn(k, 6)
308 xm( iel , convnsy(nul2,nul1) ) =
309 & xm( iel , convnsy(nul2,nul1) ) + xn(k, 1)
310 xm( iel , convnsy(nul3,nul1) ) =
311 & xm( iel , convnsy(nul3,nul1) ) + xn(k, 2)
312 xm( iel , convnsy(nul3,nul2) ) =
313 & xm( iel , convnsy(nul3,nul2) ) + xn(k, 3)
322 xm( iel , convnsy(nul1,nul2) ) =
323 & xm( iel , convnsy(nul1,nul2) ) + xn(k, 4)
324 xm( iel , convnsy(nul1,nul3) ) =
325 & xm( iel , convnsy(nul1,nul3) ) + xn(k, 5)
326 xm( iel , convnsy(nul2,nul3) ) =
327 & xm( iel , convnsy(nul2,nul3) ) + xn(k, 6)
328 xm( iel , convnsy(nul2,nul1) ) =
329 & xm( iel , convnsy(nul2,nul1) ) + xn(k, 1)
330 xm( iel , convnsy(nul3,nul1) ) =
331 & xm( iel , convnsy(nul3,nul1) ) + xn(k, 2)
332 xm( iel , convnsy(nul3,nul2) ) =
333 & xm( iel , convnsy(nul3,nul2) ) + xn(k, 3)
337 ELSEIF(typexm(1:1).EQ.
'Q'.AND.typexn(1:1).EQ.
'S')
THEN 348 xm( iel , convnsy(nul1,nul2) ) =
349 & xm( iel , convnsy(nul1,nul2) ) + xn(k, 1)
350 xm( iel , convnsy(nul1,nul3) ) =
351 & xm( iel , convnsy(nul1,nul3) ) + xn(k, 2)
352 xm( iel , convnsy(nul2,nul3) ) =
353 & xm( iel , convnsy(nul2,nul3) ) + xn(k, 3)
354 xm( iel , convnsy(nul2,nul1) ) =
355 & xm( iel , convnsy(nul2,nul1) ) + xn(k, 1)
356 xm( iel , convnsy(nul3,nul1) ) =
357 & xm( iel , convnsy(nul3,nul1) ) + xn(k, 2)
358 xm( iel , convnsy(nul3,nul2) ) =
359 & xm( iel , convnsy(nul3,nul2) ) + xn(k, 3)
368 xm( iel , convnsy(nul1,nul2) ) =
369 & xm( iel , convnsy(nul1,nul2) ) + xn(k, 1)
370 xm( iel , convnsy(nul1,nul3) ) =
371 & xm( iel , convnsy(nul1,nul3) ) + xn(k, 2)
372 xm( iel , convnsy(nul2,nul3) ) =
373 & xm( iel , convnsy(nul2,nul3) ) + xn(k, 3)
374 xm( iel , convnsy(nul2,nul1) ) =
375 & xm( iel , convnsy(nul2,nul1) ) + xn(k, 1)
376 xm( iel , convnsy(nul3,nul1) ) =
377 & xm( iel , convnsy(nul3,nul1) ) + xn(k, 2)
378 xm( iel , convnsy(nul3,nul2) ) =
379 & xm( iel , convnsy(nul3,nul2) ) + xn(k, 3)
383 ELSEIF(typexm(1:1).EQ.
'S'.AND.typexn(1:1).EQ.
'S')
THEN 394 xm( iel , convsym(nul1,nul2) ) =
395 & xm( iel , convsym(nul1,nul2) ) + xn(k, 1)
396 xm( iel , convsym(nul1,nul3) ) =
397 & xm( iel , convsym(nul1,nul3) ) + xn(k, 2)
398 xm( iel , convsym(nul2,nul3) ) =
399 & xm( iel , convsym(nul2,nul3) ) + xn(k, 3)
408 xm( iel , convsym(nul1,nul2) ) =
409 & xm( iel , convsym(nul1,nul2) ) + xn(k, 1)
410 xm( iel , convsym(nul1,nul3) ) =
411 & xm( iel , convsym(nul1,nul3) ) + xn(k, 2)
412 xm( iel , convsym(nul2,nul3) ) =
413 & xm( iel , convsym(nul2,nul3) ) + xn(k, 3)
418 WRITE(
lu,99) typexm(1:1),op(1:8),typexn(1:1)
428 71
FORMAT(1x,
'OM5161 (BIEF) : UNKNOWN OPERATION : ',a8)
subroutine ovdb(OP, X, Y, Z, C, NBOR, NPTFR)
subroutine om5161(OP, DM, TYPDIM, XM, TYPEXM, DN, TYPDIN, XN, TYPEXN, C, NULONE, NELBOR, NBOR, NELMAX, SIZDN, SIZXN, SZMXN)