35 USE multimat_param_mod , ONLY : m51_n0phas, m51_nvphas
36
37
38
39
40
41
42
43
44
45#include "implicit_f.inc"
46#include "comlock.inc"
47#include "subvolumes.inc"
48#include "inter22.inc"
49#include "task_c.inc"
50#include "com01_c.inc"
51
52
53
54
55
56
57
58
59
60
61 INTEGER I,NIN,J,K, IFLG
62
63 DATA lsectyp/14/
64
65
66 ! combinations number !
67
68 DATA s_tetra /08/
69 DATA s_penta /12/
70 DATA s_poly3 /24/
71 DATA s_hexae /03/
72 DATA s_poly4 /04/
73 DATA s_poly4a/06/
74 DATA s_poly4b/06/
75 DATA s_polyc /24/
76 DATA s_polyh(1:8) /08,12,24,03,04,06,06,24/
77
78 s22_max = s_tetra + s_penta + s_poly3 + s_hexae + s_poly4
79 . + s_poly4a + s_poly4b + s_polyc
80
81
82
83
84 DATA m_tetra /01/
85 DATA m_penta /01/
86 DATA m_poly3 /01/
87 DATA m_hexae /02/
88 DATA m_poly4 /02/
89 DATA m_poly4a/02/
90 DATA m_poly4b/02/
91 DATA m_polyc /01/
92 DATA m_polyh(1:8) /01,01,01,02,02,02,02,01/
93
94
95
96
97 DATA d_tetra /01/
98 DATA d_penta /09/
99 DATA d_poly3 /21/
100 DATA d_hexae /45/
101 DATA d_poly4 /51/
102 DATA d_poly4a/59/
103 DATA d_poly4b/71/
104 DATA d_polyc /83/
105 DATA d_polyh(1:8) /01,09,21,45,51,59,71,83/
106
107
108
109
110 DATA n_tetra /01/
111 DATA n_penta /02/
112 DATA n_poly3 /03/
113 DATA n_hexae /04/
114 DATA n_poly4 /04/
115 DATA n_poly4a/04/
116 DATA n_poly4b/04/
117 DATA n_polyc /04/
118 DATA n_polyh(1:8) /01,02,03,04,04,04,04,04/
119
120
121
122
123 DATA f_tetra /03/
124 DATA f_penta /04/
125 DATA f_poly3 /05/
126 DATA f_hexae /05/
127 DATA f_poly4 /06/
128 DATA f_poly4a/06/
129 DATA f_poly4b/06/
130 DATA f_polyc /05/
131 DATA f_polyh(1:8) /03,04,05,05,06,06,06,05/
132
133
134
135
136 DATA c_tetra /03/
137 DATA c_penta /04/
138 DATA c_poly3 /05/
139 DATA c_hexae /04/
140 DATA c_poly4 /06/
141 DATA c_poly4a/06/
142 DATA c_poly4b/06/
143 DATA c_polyc /06/
144 DATA c_polyh(1:8) /03,04,05,04,06,06,06,06/
145
146
147
148
149
150 DATA bcode(01) /b'111000000000'/
151 DATA bcode(02) /b'000111000000'/
152 DATA bcode(03) /b'000000111000'/
153 DATA bcode(04) /b'000000000111'/
154 DATA bcode(05) /b'100100100000'/
155 DATA bcode(06) /b'010010000100'/
156 DATA bcode(07) /b'001000010010'/
157 DATA bcode(08) /b'000001001001'/
158
159
160 DATA bcode(09) /b'011100100000'/
161 DATA bcode(10) /b'101010000100'/
162 DATA bcode(11) /b'110000010010'/
163 DATA bcode(12) /b'100011100000'/
164 DATA bcode(13) /b'010101000100'/
165 DATA bcode(14) /b'000110001001'/
166 DATA bcode(15) /b'100100011000'/
167 DATA bcode(16) /b'001000101010'/
168 DATA bcode(17) /b'000001110001'/
169 DATA bcode(18) /b'010010000011'/
170 DATA bcode(19) /b'001000010101'/
171 DATA bcode(20) /b'000001001110'/
172
173
174 DATA bcode(21) /b'101101000100'/
175 DATA bcode(22) /b'001110100100'/
176 DATA bcode(23) /b'011011100000'/
177 DATA bcode(24) /b'110001100100'/
178 DATA bcode(25) /b'010101000011'/
179 DATA bcode(26) /b'010011001010'/
180 DATA bcode(27) /b'010100001101'/
181 DATA bcode(28) /b'000110001110'/
182 DATA bcode(29) /b'001001100011'/
183 DATA bcode(30) /b'000001110110'/
184 DATA bcode(31) /b'001001011100'/
185 DATA bcode(32) /b'001000101101'/
186 DATA bcode(33) /b'011100011000'/
187 DATA bcode(34) /b'101100001010'/
188 DATA bcode(35) /b'010100110010'/
189 DATA bcode(36) /b'110000101010'/
190 DATA bcode(37) /b'100010101001'/
191 DATA bcode(38) /b'000110110001'/
192 DATA bcode(39) /b'100011011000'/
193 DATA bcode(40) /b'100101010001'/
194 DATA bcode(41) /b'110000010101'/
195 DATA bcode(42) /b'100010010110'/
196 DATA bcode(43) /b'011010010001'/
197 DATA bcode(44) /b'101010000011'/
198
199
200 DATA bcode(45) /b'100010010001'/
201 DATA bcode(46) /b'100010010001'/ !2193
202 DATA bcode(47) /b'010100001010'/
203 DATA bcode(48) /b'010100001010'/
204 DATA bcode(49) /b'001001100100'/
205 DATA bcode(50) /b'001001100100'/
206
207
208 DATA bcode(51) /b'011011011000'/
209 DATA bcode(52) /b'011011011000'/
210 DATA bcode(53) /b'101101000011'/
211 DATA bcode(54) /b'101101000011'/
212 DATA bcode(55) /b'110000101101'/
213 DATA bcode(56) /b'110000101101'/
214 DATA bcode(57) /b'000110110110'/
215 DATA bcode(58) /b'000110110110'/
216
217
218 DATA bcode(59) /b'101011001010'/
219 DATA bcode(60) /b'101011001010'/
220 DATA bcode(61) /b'010100110101'/
221 DATA bcode(62) /b'010100110101'/
222 DATA bcode(63) /b'011010101001'/
223 DATA bcode(64) /b'011010101001'/
224 DATA bcode(65) /b'100101010110'/
225 DATA bcode(66) /b'100101010110'/
226 DATA bcode(67) /b'110001100011'/
227 DATA bcode(68) /b'110001100011'/
228 DATA bcode(69) /b'001110011100'/
229 DATA bcode(70) /b'001110011100'/
230
231 DATA bcode(71) /b'011101010001'/
232 DATA bcode(72) /b'011101010001'/
233 DATA bcode(73) /b'100010101110'/
234 DATA bcode(74) /b'100010101110'/
235 DATA bcode(75) /b'110001011100'/
236 DATA bcode(76) /b'110001011100'/
237 DATA bcode(77) /b'001110100011'/
238 DATA bcode(78) /b'001110100011'/
239 DATA bcode(79) /b'101100001101'/ !POLY4B 34 - 2829
240 DATA bCODE(80) /B'101100001101'/ !POLY4B 12 - 2829
241 DATA bCODE(81) /B'010011110010'/ !POLY4B 23 - 1266
242 DATA bCODE(82) /B'010011110010'/ !POLY4B 14 - 1266
243 !----------------------------------------------------!
244 !POLYC
245 DATA bCODE(83) /B'100110010001'/ !POLYC R+.4
246 DATA bCODE(84) /B'100010110001'/ !POLYC R+.7
247 DATA bCODE(85) /B'100010011001'/ !POLYC R+.9
248 DATA bCODE(86) /B'100011010001'/ !POLYC R+.6
249
250 DATA bCODE(87) /B'110010010001'/ !POLYC R-.2
251 DATA bCODE(88) /B'101010010001'/ !POLYC R-.3
252 DATA bCODE(89) /B'100010010011'/ !POLYC R-.11
253 DATA bCODE(90) /B'100010010101'/ !POLYC R-.10
254
255 DATA bCODE(91) /B'110100001010'/ !POLYC S+.1
256 DATA bCODE(92) /B'011100001010'/ !POLYC S+.3
257 DATA bCODE(93) /B'010100011010'/ !POLYC S+.8
258 DATA bCODE(94) /B'010100101010'/ !POLYC S+.7
259
260 DATA bCODE(95) /B'010110001010'/ !POLYC S-.5
261 DATA bCODE(96) /B'010100001110'/ !POLYC S-.10
262 DATA bCODE(97) /B'010100001011'/ !POLYC S-.12
263 DATA bCODE(98) /B'010101001010'/ !POLYC S-.6
264
265 DATA bCODE(99) /B'001011100100'/ !POLYC T+.5
266 DATA bCODE(100) /B'001101100100'/ !POLYC T+.4
267 DATA bCODE(101) /B'101001100100'/ !POLYC T+.1
268 DATA bCODE(102) /B'011001100100'/ !POLYC T+.2
269
270 DATA bCODE(103) /B'001001100101'/ !POLYC T-.12
271 DATA bCODE(104) /B'001001101100'/ !POLYC T-.9
272 DATA bCODE(105) /B'001001110100'/ !POLYC T-.8
273 DATA bCODE(106) /B'001001100110'/ !POLYC T-.11
274 !----------------------------------------------------!
275
276 !----------------------------------------------------!
277 ! RETRIEVING POLYHEDRA FAMILY (1-5) FROM A 1-58 CODE!
278 !----------------------------------------------------!
279 GetPolyhedraType(01:08) = 1 !Type1=TETRA
280 GetPolyhedraType(09:20) = 2 !Type2=PENTA
281 GetPolyhedraType(21:44) = 3 !Type2=POLY3
282 GetPolyhedraType(45:50) = 4 !Type2=HEXAE
283 GetPolyhedraType(51:58) = 5 !Type2=POLY4
284 GetPolyhedraType(59:70) = 5 !Type2=POLY4A
285 GetPolyhedraType(71:82) = 5 !Type2=POLY4B
286 GetPolyhedraType(83:106) = 6 !Type2=POLYC
287
288 GetNumTria(1) = 1 !Type1=TETRA
289 GetNumTria(2) = 2 !Type2=PENTA
290 GetNumTria(3) = 3 !Type2=POLY3
291 GetNumTria(4) = 2 !Type2=HEXAE
292 GetNumTria(5) = 4 !Type2=POLY4
293 GetNumTria(6) = 4 !Type2=POLY4A
294 GetNumTria(7) = 4 !Type2=POLY4B
295 GetNumTria(8) = 4 !Type2=POLYC
296
297 Gtria(:, 1, 1) = (/1,2,3/) !TETRA (1 triangle )
298
299 Gtria(:, 1, 2) = (/1,2,3/) !PENTA (2 triangles)
300 Gtria(:, 2, 2) = (/1,3,4/)
301
302 Gtria(:, 1, 3) = (/2,3,4/) !POLY3 (3 triangles)
303 Gtria(:, 2, 3) = (/1,2,4/)
304 Gtria(:, 3, 3) = (/1,4,5/)
305
306 Gtria(:, 1, 4) = (/1,2,3/) !HEXAE (2 triangles)
307 Gtria(:, 2, 4) = (/1,3,4/)
308
309 Gtria(:, 1, 5) = (/1,6,5/) !POLY4 (4 triangles)
310 Gtria(:, 2, 5) = (/1,5,4/)
311 Gtria(:, 3, 5) = (/1,3,4/)
312 Gtria(:, 4, 5) = (/1,2,3/)
313
314 Gtria(:, 1, 6) = (/2,3,4/) !POLY4A (4 triangles)
315 Gtria(:, 2, 6) = (/2,4,5/)
316 Gtria(:, 3, 6) = (/2,5,1/)
317 Gtria(:, 4, 6) = (/1,5,6/)
318
319 Gtria(:, 1, 7) = (/2,3,4/) !POLY4B (4 triangles)
320 Gtria(:, 2, 7) = (/2,4,5/)
321 Gtria(:, 3, 7) = (/2,5,1/)
322 Gtria(:, 4, 7) = (/1,5,6/)
323
324 Gtria(:, 1, 8) = (/1,5,4/) !POLYC (4 triangles)
325 Gtria(:, 2, 8) = (/1,5,6/)
326 Gtria(:, 3, 8) = (/1,6,2/)
327 Gtria(:, 4, 8) = (/2,3,6/)
328
329 !----------------------------------------------------!
330 ! COMBINATIONS NAMES !
331 !----------------------------------------------------!
332 !TETRA
333 StrCODE( 1) ='tetra 1 '
334 StrCODE( 2) ='tetra 3 '
335 StrCODE( 3) ='tetra 6 '
336 StrCODE( 4) ='tetra 8 '
337 StrCODE( 5) ='tetra 2 '
338 StrCODE( 6) ='tetra 4 '
339 StrCODE( 7) ='tetra 5 '
340 StrCODE( 8) ='tetra 7 '
341 !----------------------------------------------------!
342 !PENTA
343 StrCODE( 9) ='penta 1-2 '
344 StrCODE(10) ='penta 1-4 '
345 StrCODE(11) ='penta 1-5 '
346 StrCODE(12) ='penta 2-3 '
347 StrCODE(13) ='penta 3-4 '
348 StrCODE(14) ='penta 3-7 '
349 StrCODE(15) ='penta 2-6 '
350 StrCODE(16) ='penta 5-6 '
351 StrCODE(17) ='penta 6-7 '
352 StrCODE(18) ='penta 4-8 '
353 StrCODE(19) ='penta 5-8 '
354 StrCODE(20) ='penta 7-8 '
355 !----------------------------------------------------!
356 !POLY3
357 StrCODE(21) ='poly3 1-4-3 '
358 StrCODE(22) ='poly3 2-1-4 '
359 StrCODE(23) ='poly3 3-2-1 '
360 StrCODE(24) ='poly3 4-3-2 '
361 StrCODE(25) ='poly3 3-4-8 '
362 StrCODE(26) ='poly3 4-8-7 '
363 StrCODE(27) ='poly3 7-3-4 '
364 StrCODE(28) ='poly3 8-7-3 '
365 StrCODE(29) ='poly3 5-6-7 '
366 StrCODE(30) ='poly3 6-7-8 '
367 StrCODE(31) ='poly3 7-8-5 '
368 StrCODE(32) ='poly3 8-5-6 '
369 StrCODE(33) ='poly3 1-2-6 '
370 StrCODE(34) ='poly3 2-6-5 '
371 StrCODE(35) ='poly3 5-1-2 '
372 StrCODE(36) ='poly3 6-5-1 '
373 StrCODE(37) ='poly3 2-3-7 '
374 StrCODE(38) ='poly3 3-7-6 '
375 StrCODE(39) ='poly3 6-2-3 '
376 StrCODE(40) ='poly3 7-6-2 '
377 StrCODE(41) ='poly3 1-5-8 '
378 StrCODE(42) ='poly3 4-1-5 '
379 StrCODE(43) ='poly3 5-8-4 '
380 StrCODE(44) ='poly3 8-4-1 '
381 !----------------------------------------------------!
382 !HEXAE
383 StrCODE(45) ='hexae r+ '
384 StrCODE(46) ='hexae r- '
385 StrCODE(47) ='hexae s+ '
386 StrCODE(48) ='hexae s- '
387 StrCODE(49) ='hexae t+ '
388 StrCODE(50) ='hexae t- '
389 !----------------------------------------------------!
390 !POLY4
391 StrCODE(51) ='poly4 1-2-6-3 '
392 StrCODE(52) ='poly4 4-8-7-5 '
393 StrCODE(53) ='poly4 3-4-8-1 '
394 StrCODE(54) ='poly4 5-6-7-5 '
395 StrCODE(55) ='poly4 4-3-2-7 '
396 StrCODE(56) ='poly4 2-3-7-4 '
397 StrCODE(57) ='poly4 4-1-2-5 '
398 StrCODE(58) ='poly4 8-7-3-6 '
399 !----------------------------------------------------!
400 !POLY4A
401 StrCODE(59) ='poly4a 4-5 '
402 StrCODE(60) ='poly4a 2-6 '
403 StrCODE(61) ='poly4a 4-6 '
404 StrCODE(62) ='poly4a 2-5 '
405 StrCODE(63) ='poly4a 3-6 '
406 StrCODE(64) ='poly4a 1-5 '
407 StrCODE(65) ='poly4a 3-5 '
408 StrCODE(66) ='poly4a 1-6 '
409 StrCODE(67) ='poly4a 3-4 '
410 StrCODE(68) ='poly4a 1-2 '
411 StrCODE(69) ='poly4a 2-3 '
412 StrCODE(70) ='poly4a 1-4 '
413 !----------------------------------------------------!
414 !POLY4B
415 StrCODE(71) ='poly4b 4-5 '
416 StrCODE(72) ='poly4b 2-6 '
417 StrCODE(73) ='poly4b 4-6 '
418 StrCODE(74) ='poly4b 2-5 '
419 StrCODE(75) ='poly4b 3-6 '
420 StrCODE(76) ='poly4b 1-5 '
421 StrCODE(77) ='poly4b 3-5 '
422 StrCODE(78) ='poly4b 1-6 '
423 StrCODE(79) ='poly4b 3-4 '
424 StrCODE(80) ='poly4b 1-2 '
425 StrCODE(81) ='poly4b 2-3 '
426 StrCODE(82) ='poly4b 1-4 '
427 !----------------------------------------------------!
428 !POLYC
429 StrCODE(83) ='polyc r+.04 '
430 StrCODE(84) ='polyc r+.07 '
431 StrCODE(85) ='polyc r+.09 '
432 StrCODE(86) ='polyc r+.06 '
433 StrCODE(87) ='polyc r-.02 '
434 StrCODE(88) ='polyc r-.03 '
435 StrCODE(89) ='polyc r-.11 '
436 StrCODE(90) ='polyc r-.10 '
437 StrCODE(91) ='polyc s+.01 '
438 StrCODE(92) ='polyc s+.03 '
439 StrCODE(93) ='polyc s+.08 '
440 StrCODE(94) ='polyc s+.07 '
441 StrCODE(95) ='polyc s-.05 '
442 StrCODE(96) ='polyc s-.10 '
443 StrCODE(97) ='polyc s-.12 '
444 StrCODE(98) ='polyc s-.06 '
445 StrCODE(99) ='polyc t+.05 '
446 StrCODE(100) ='polyc t+.04 '
447 StrCODE(101) ='polyc t+.01 '
448 StrCODE(102) ='polyc t+.02 '
449 StrCODE(103) ='polyc t-.12 '
450 StrCODE(104) ='polyc t-.09 '
451 StrCODE(105) ='polyc t-.08 '
452 StrCODE(106) ='polyc t-.11 '
453
454 !----------------------------------------------------!
455 ! SUBVOLUME 'g'RAPH : 'f'ACES !
456 !----------------------------------------------------!
457 !TETRA
458 Gface(:, 1)=(/1,6,4,0,0,0/)
459 Gface(:, 2)=(/2,1,5,0,0,0/)
460 Gface(:, 3)=(/4,3,5,0,0,0/)
461 Gface(:, 4)=(/2,3,6,0,0,0/)
462 Gface(:, 5)=(/5,1,4,0,0,0/)
463 Gface(:, 6)=(/6,1,2,0,0,0/)
464 Gface(:, 7)=(/6,3,4,0,0,0/)
465 Gface(:, 8)=(/5,3,2,0,0,0/)
466 !----------------------------------------------------!
467 !PENTA
468 Gface(:, 9)=(/6,5,4,1,0,0/)
469 Gface(:,10)=(/4,2,1,6,0,0/)
470 Gface(:,11)=(/1,3,6,4,0,0/)
471 Gface(:,12)=(/4,2,5,1,0,0/)
472 Gface(:,13)=(/5,6,2,1,0,0/)
473 Gface(:,14)=(/1,3,5,2,0,0/)
474 Gface(:,15)=(/1,3,4,5,0,0/)
475 Gface(:,16)=(/6,5,3,4,0,0/)
476 Gface(:,17)=(/4,2,3,5,0,0/)
477 Gface(:,18)=(/1,3,2,6,0,0/)
478 Gface(:,19)=(/4,2,6,3,0,0/)
479 Gface(:,20)=(/5,6,3,2,0,0/)
480 !----------------------------------------------------!
481 !POLY3
482 Gface(:,21)=(/1,5,2,6,4,0/)
483 Gface(:,22)=(/1,2,6,4,5,0/)
484 Gface(:,23)=(/1,6,4,5,2,0/)
485 Gface(:,24)=(/1,4,5,2,6,0/)
486 Gface(:,25)=(/2,3,6,1,5,0/)
487 Gface(:,26)=(/2,5,3,6,1,0/)
488 Gface(:,27)=(/2,6,1,5,3,0/)
489 Gface(:,28)=(/2,1,5,3,6,0/)
490 Gface(:,29)=(/3,2,5,4,6,0/)
491 Gface(:,30)=(/3,6,2,5,4,0/)
492 Gface(:,31)=(/3,4,6,2,5,0/)
493 Gface(:,32)=(/3,5,4,6,2,0/)
494 Gface(:,33)=(/4,3,5,1,6,0/)
495 Gface(:,34)=(/4,6,3,5,1,0/)
496 Gface(:,35)=(/4,5,1,6,3,0/)
497 Gface(:,36)=(/4,1,6,3,5,0/)
498 Gface(:,37)=(/5,3,2,1,4,0/)
499 Gface(:,38)=(/5,4,3,2,1,0/)
500 Gface(:,39)=(/5,2,1,4,3,0/)
501 Gface(:,40)=(/5,1,4,3,2,0/)
502 Gface(:,41)=(/6,2,3,4,1,0/)
503 Gface(:,42)=(/6,3,4,1,2,0/)
504 Gface(:,43)=(/6,1,2,3,4,0/)
505 Gface(:,44)=(/6,4,1,2,3,0/)
506 !----------------------------------------------------!
507 !HEXA
508 Gface(:,45)=(/5,3,2,1,4,0/)
509 Gface(:,46)=(/6,3,4,1,2,0/)
510 Gface(:,47)=(/4,3,5,1,6,0/)
511 Gface(:,48)=(/2,6,1,5,3,0/)
512 Gface(:,49)=(/3,4,6,2,5,0/)
513 Gface(:,50)=(/1,4,5,2,6,0/)
514 !----------------------------------------------------!
515 !POLY4
516 Gface(:,51)=(/6,5,1,4,2,3/)
517 Gface(:,52)=(/1,3,6,2,4,5/)
518 Gface(:,53)=(/5,6,1,2,4,3/)
519 Gface(:,54)=(/6,5,4,3,1,2/)
520 Gface(:,55)=(/6,5,2,1,3,4/)
521 Gface(:,56)=(/4,2,1,5,6,3/)
522 Gface(:,57)=(/2,4,1,6,5,3/)
523 Gface(:,58)=(/6,5,3,2,4,1/)
524 !----------------------------------------------------!
525 !POLY4A
526 Gface(:,59)=(/6,3,5,2,1,4/)
527 Gface(:,60)=(/4,1,2,5,3,6/)
528 Gface(:,61)=(/5,1,6,2,3,4/)
529 Gface(:,62)=(/4,3,2,6,1,5/)
530 Gface(:,63)=(/5,4,6,1,2,3/)
531 Gface(:,64)=(/6,4,5,3,2,1/)
532 Gface(:,65)=(/1,4,3,6,2,5/)
533 Gface(:,66)=(/3,4,1,5,2,6/)
534 Gface(:,67)=(/1,6,3,2,5,4/)
535 Gface(:,68)=(/4,5,2,3,5,1/)
536 Gface(:,69)=(/4,5,2,1,5,3/)
537 Gface(:,70)=(/2,6,4,3,5,1/)
538 !----------------------------------------------------!
539 !POLY4B
540 Gface(:,71)=(/6,1,5,2,3,4/)
541 Gface(:,72)=(/5,1,6,4,3,2/)
542 Gface(:,73)=(/2,1,4,5,3,6/)
543 Gface(:,74)=(/4,1,2,6,3,5/)
544 Gface(:,75)=(/1,4,3,5,2,6/)
545 Gface(:,76)=(/3,4,1,6,2,5/)
546 Gface(:,77)=(/6,4,5,1,2,3/)
547 Gface(:,78)=(/5,4,6,3,2,1/)
548 Gface(:,79)=(/1,5,3,2,6,4/)
549 Gface(:,80)=(/4,6,2,3,5,1/)
550 Gface(:,81)=(/1,6,3,4,5,2/)
551 Gface(:,82)=(/3,6,1,2,5,4/)
552 !----------------------------------------------------!
553 !POLYC
554 Gface(:,83) =(/5,3,2,4,1,0/)
555 Gface(:,84) =(/5,2,1,3,4,0/)
556 Gface(:,85) =(/5,1,4,2,3,0/)
557 Gface(:,86) =(/5,4,3,1,2,0/)
558 Gface(:,87) =(/6,3,2,4,1,0/)
559 Gface(:,88) =(/6,2,1,3,4,0/)
560 Gface(:,89) =(/6,1,4,2,3,0/)
561 Gface(:,90) =(/6,4,3,1,2,0/)
562 Gface(:,91) =(/4,3,5,6,1,0/)
563 Gface(:,92) =(/4,5,1,3,6,0/)
564 Gface(:,93) =(/4,1,6,5,3,0/)
565 Gface(:,94) =(/4,6,3,1,5,0/)
566 Gface(:,95) =(/2,3,5,6,1,0/)
567 Gface(:,96) =(/2,5,1,3,6,0/)
568 Gface(:,97) =(/2,1,6,5,3,0/)
569 Gface(:,98) =(/2,6,3,1,5,0/)
570 Gface(:,99) =(/1,4,5,6,2,0/)
571 Gface(:,100)=(/1,5,2,4,6,0/)
572 Gface(:,101)=(/1,2,6,5,4,0/)
573 Gface(:,102)=(/1,6,4,2,5,0/)
574 Gface(:,103)=(/3,4,5,6,2,0/)
575 Gface(:,104)=(/3,6,4,2,5,0/)
576 Gface(:,105)=(/3,2,6,5,4,0/)
577 Gface(:,106)=(/3,5,2,4,6,0/)
578 !--------------------------- -------------------------!
579 ! SUBVOLUME 'g'RAPH : 'n'NUMBERR of 'pt'POINT ! !enables to have number of point on local face of a given polyhedron. Check graph index1-6 corresponds to Fa,Fb,Fc,Fd,Fe,Ff
580 !----------------------------------------------------!
581 DO I=01,08 ;GNPt(:,I) = (/3,3,3,0,0,0/);ENDDO
582 DO I=09,20 ;GNPt(:,I) = (/3,3,4,4,0,0/);ENDDO
583 DO I=21,44 ;GNPt(:,I) = (/5,3,4,4,3,0/);ENDDO
584 DO I=45,50 ;GNPt(:,I) = (/4,4,4,4,4,0/);ENDDO
585 DO I=51,58 ;GNPt(:,I) = (/3,5,5,5,3,3/);ENDDO
586 DO I=59,70 ;GNPt(:,I) = (/3,4,5,3,4,5/);ENDDO
587 DO I=71,82 ;GNPt(:,I) = (/3,4,5,3,4,5/);ENDDO
588 DO I=83,106;GNPt(:,I) = (/6,4,4,4,3,3/);ENDDO
589
590 DO I=01,08;GNnod(:,I) = (/1,1,1,0,0,0/);ENDDO
591 DO I=09,20;GNnod(:,I) = (/1,1,2,2,0,0/);ENDDO
592 DO I=21,44;GNnod(:,I) = (/3,1,2,2,1,0/);ENDDO
593 DO I=45,50;GNnod(:,I) = (/4,2,2,2,2,0/);ENDDO
594 DO I=51,58;GNnod(:,I) = (/1,3,3,3,1,1/);ENDDO
595 DO I=59,70;GNnod(:,I) = (/1,2,3,1,2,3/);ENDDO
596 DO I=71,82;GNnod(:,I) = (/1,2,3,1,2,3/);ENDDO
597 DO I=83,106;GNnod(:,I) = (/4,2,2,2,2,0/);ENDDO
598 !----------------------------------------------------!
599 ! SUBVOLUME 'g'RAPH : 'c'ORNER ! !EDGE id => intersection node id (CORNER).
600 !----------------------------------------------------!
601 !TETRA
602 Gcorner(:, 1)=(/1,2,3,1,0,0,0/) * -1
603 Gcorner(:, 2)=(/6,5,4,6,0,0,0/) * -1
604 Gcorner(:, 3)=(/7,8,9,7,0,0,0/) * -1
605 Gcorner(:, 4)=(/10,12,11,10,0,0,0/) * -1
606 Gcorner(:, 5)=(/7,4,1,7,0,0,0/)
607 Gcorner(:, 6)=(/10,2,5,10,0,0,0/)
608 Gcorner(:, 7)=(/3,11,8,3,0,0,0/)
609 Gcorner(:, 8)=(/6,9,12,6,0,0,0/)
610 !----------------------------------------------------!
611 !PENTA
612 Gcorner(:, 9)=(/-2,-3,+7,+4,-2,0,0/)
613 Gcorner(:,10)=(/-3,-1,+5,+10,-3,0,0/)
614 Gcorner(:,11)=(/-1,-2,+11,+8,-1,0,0/)
615 Gcorner(:,12)=(/+1,+7,-6,-5,+1,0,0/)
616 Gcorner(:,13)=(/-4,-6,+10,+2,-4,0,0/)
617 Gcorner(:,14)=(/-5,-4,+9,+12,-5,0,0/)
618 Gcorner(:,15)=(/+4,+1,-8,-9,+4,0,0/)
619 Gcorner(:,16)=(/+3,+11,-9,-7,+3,0,0/)
620 Gcorner(:,17)=(/-7,-8,+12,+6,-7,0,0/)
621 Gcorner(:,18)=(/+2,+5,-12,-11,+2,0,0/)
622 Gcorner(:,19)=(/+8,+3,-10,-12,+8,0,0/)
623 Gcorner(:,20)=(/+6,+9,-11,-10,+6,0,0/)
624 !----------------------------------------------------!
625 !POLY3
626 Gcorner(:,21)=(/-3,-1,-4,-6,+10,-3,0/)
627 Gcorner(:,22)=(/+7,+4,+5,+10,-3,+7,0/)
628 Gcorner(:,23)=(/-6,-5,-2,-3,+7,-6,0/)
629 Gcorner(:,24)=(/+10,+2,+1,+7,-6,+10,0/)
630 Gcorner(:,25)=(/-4,-6,-12,-11,+2,-4,0/)
631 Gcorner(:,26)=(/+2,+5,+6,+9,-11,+2,0/)
632 Gcorner(:,27)=(/+9,+12,+10,+2,-4,+9,0/)
633 Gcorner(:,28)=(/-11,-10,-5,-4,+9,-11,0/)
634 Gcorner(:,29)=(/+3,+11,+12,+6,-7,+3,0/)
635 Gcorner(:,30)=(/-7,-8,-11,-10,+6,-7,0/)
636 Gcorner(:,31)=(/+6,+9,+8,+3,-10,+6,0/)
637 Gcorner(:,32)=(/-10,-12,-9,-7,+3,-10,0/)
638 Gcorner(:,33)=(/-2,-3,-8,-9,+4,-2,0/)
639 Gcorner(:,34)=(/+4,+1,+3,+11,-9,+4,0/)
640 Gcorner(:,35)=(/+11,8,+7,+4,-2,+11,0/)
641 Gcorner(:,36)=(/-9,-7,-1,-2,+11,-9,0/)
642 Gcorner(:,37)=(/+1,+7,+9,+12,-5,+1,0/)
643 Gcorner(:,38)=(/-5,-4,-7,-8,+12,-5,0/)
644 Gcorner(:,39)=(/-8,-9,-6,-5,+1,-8,0/)
645 Gcorner(:,40)=(/+12,+6,+4,+1,-8,+12,0/)
646 Gcorner(:,41)=(/-1,-2,-10,-12,+8,-1,0/)
647 Gcorner(:,42)=(/+5,+10,+11,+8,-1,+5,0/)
648 Gcorner(:,43)=(/+8,+3,+2,+5,-12,+8,0/)
649 Gcorner(:,44)=(/-12,-11,-3,-1,+5,-12,0/)
650 !----------------------------------------------------!
651 !HEXAE
652 Gcorner(:,45)=(/-8 ,+12,-5,+1,-8 ,0 ,0/)
653 Gcorner(:,46)=(/-12,+8 ,-1,+5,-12,0 ,0/)
654 Gcorner(:,47)=(/+11,-9,+4,-2,+11,0,0/)
655 Gcorner(:,48)=(/-11,+2,-4,+9,-11,0,0/)
656 Gcorner(:,49)=(/-7,+3,-10,+6,-7,0,0/)
657 Gcorner(:,50)=(/-3,+7,-6,+10,-3,0,0/)
658 !----------------------------------------------------!
659 !POLY4
660 Gcorner(:,51)=(/-02,-03,-08,-09,-06,-05,-02/)
661 Gcorner(:,52)=(/+02,+05,+06,+09,+08,+03,+02/)
662 Gcorner(:,53)=(/-04,-06,-12,-11,-03,-01,-04/)
663 Gcorner(:,54)=(/+03,+11,+12,+06,+04,+01,+03/)
664 Gcorner(:,55)=(/+10,+02,+01,+07,+09,+12,+10/)
665 Gcorner(:,56)=(/+01,+07,+09,+12,+10,+02,+01/)
666 Gcorner(:,57)=(/+05,+10,+11,+08,+07,+04,+05/)
667 Gcorner(:,58)=(/-11,-10,-05,-04,-07,-08,-11/)
668 !----------------------------------------------------!
669 !POLY4A
670 Gcorner(:,59)=(/+11,-09,-06,-05,+01,+03,0/)
671 Gcorner(:,60)=(/-01,+05,+06,+09,-11,-03,0/)
672 Gcorner(:,61)=(/+04,-02,-10,-12,+08,+07,0/)
673 Gcorner(:,62)=(/-08,+12,+10,+02,-04,-07,0/)
674 Gcorner(:,63)=(/-07,+03,+02,+05,-12,-09,0/)
675 Gcorner(:,64)=(/-03,+07,+09,+12,-05,-02,0/)
676 Gcorner(:,65)=(/+01,-08,-11,-10,+06,+04,0/)
677 Gcorner(:,66)=(/+08,-01,-04,-06,+10,+11,0/)
678 Gcorner(:,67)=(/-02,+11,+12,+06,-07,-01,0/)
679 Gcorner(:,68)=(/+07,-06,-12,-11,+02,+01,0/)
680 Gcorner(:,69)=(/+03,-10,-05,-04,+09,+08,0/)
681 Gcorner(:,70)=(/+10,-03,-08,-09,+04,+05,0/)
682 !----------------------------------------------------!
683 !POLY4B
684 Gcorner(:,71)=(/-02,+04,+06,+12,-08,-03,0/)
685 Gcorner(:,72)=(/-04,+02,+03,+08,-12,-06,0/)
686 Gcorner(:,73)=(/+05,-01,-07,-09,+11,+10,0/)
687 Gcorner(:,74)=(/+01,-05,-10,-11,+09,+07,0/)
688 Gcorner(:,75)=(/-01,+08,+09,+06,-10,-02,0/)
689 Gcorner(:,76)=(/-08,+01,+02,+10,-06,-09,0/)
690 Gcorner(:,77)=(/+03,-07,-04,-05,+12,+11,0/)
691 Gcorner(:,78)=(/+07,-03,-11,-12,+05,+04,0/)
692 Gcorner(:,79)=(/+04,-09,-12,-10,+03,+01,0/)
693 Gcorner(:,80)=(/-03,+10,+12,+09,-04,-01,0/)
694 Gcorner(:,81)=(/+02,-11,-08,-07,+06,+05,0/)
695 Gcorner(:,82)=(/+11,-02,-05,-06,+07,+08,0/)
696 !----------------------------------------------------!
697 !POLYC
698 Gcorner(:,83) =(/-08,+12,-05,+01,+04,-04,0/) !POLYC R+.4
699 Gcorner(:,84) =(/+12,-05,+01,-08,-07,+07,0/) !POLYC R+.7
700 Gcorner(:,85) =(/-05,+01,-08,+12,+09,-09,0/) !POLYC R+.9
701 Gcorner(:,86) =(/+01,-08,+12,-05,-06,+06,0/) !POLYC R+.6
702 Gcorner(:,87) =(/+08,-12,+05,-01,-02,+02,0/) !POLYC R-.2
703 Gcorner(:,88) =(/-12,+05,-01,+08,+03,-03,0/) !POLYC R-.3
704 Gcorner(:,89) =(/+05,-01,+08,-12,-11,+11,0/) !POLYC R-.11
705 Gcorner(:,90) =(/-01,+08,-12,+05,+10,-10,0/) !POLYC R-.10
706 Gcorner(:,91) =(/+11,-09,+04,-02,-01,+01,0/) !POLYC S+.1
707 Gcorner(:,92) =(/-09,+04,-02,+11,+03,-03,0/) !POLYC S+.3
708 Gcorner(:,93) =(/+04,-02,+11,-09,-08,+08,0/) !POLYC S+.8
709 Gcorner(:,94) =(/-02,+11,-09,+04,+07,-07,0/) !POLYC S+.7
710 Gcorner(:,95) =(/-11,+09,-04,+02,+05,-05,0/) !POLYC S-.5
711 Gcorner(:,96) =(/+09,-04,+02,-11,-10,+10,0/) !POLYC S-.10
712 Gcorner(:,97) =(/-04,+02,-11,+09,+12,-12,0/) !POLYC S-.12
713 Gcorner(:,98) =(/+02,-11,+09,-04,-04,+06,0/) !POLYC S-.6
714 Gcorner(:,99) =(/-03,+07,-06,+10,+05,-05,0/) !POLYC T+.5
715 Gcorner(:,100)=(/+07,-06,+10,-03,-04,+04,0/) !POLYC T+.4
716 Gcorner(:,101)=(/-06,+10,-03,+07,+01,-01,0/) !POLYC T+.1
717 Gcorner(:,102)=(/+10,-03,+07,-06,-02,+02,0/) !POLYC T+.2
718 Gcorner(:,103)=(/+03,-07,+06,-10,-12,+12,0/) !POLYC T-.12
719 Gcorner(:,104)=(/-07,+06,-10,+03,+09,-09,0/) !POLYC T-.9
720 Gcorner(:,105)=(/+06,-10,+03,-07,-08,+08,0/) !POLYC T-.8
721 Gcorner(:,106)=(/-10,+03,-07,+06,+11,-11,0/) !POLYC T-.11
722
723 !----------------------------------------------------!
724 ! SUBVOLUME 'g
'RAPH : 'main 'N'odes
725
726
727 gnode(:, 1)=(/1,0,0,0/) ; bgnode( 1)=b'10000000'
728 gnode(:, 2)=(/3,0,0,0/) ; bgnode( 2)=b'00100000'
729 gnode(:, 3)=(/6,0,0,0/) ; bgnode( 3)=b'00000100'
730 gnode(:, 4)=(/8,0,0,0/) ; bgnode( 4)=b'00000001'
731 gnode(:, 5)=(/2,0,0,0/) ; bgnode( 5)=b'01000000'
732 gnode(:, 6)=(/4,0,0,0/) ; bgnode( 6)=b'00010000'
733 gnode(:, 7)=(/5,0,0,0/) ; bgnode( 7)=b'00001000'
734 gnode(:, 8)=(/7,0,0,0/) ; bgnode( 8)=b'00000010'
735
736
737 gnode(:, 9)=(/1,2,0,0/) ; bgnode( 9)=b'11000000'
738 gnode(:,10)=(/1,4,0,0/) ; bgnode(10)=b'10010000'
739 gnode(:,11)=(/1,5,0,0/) ; bgnode(11)=b'10001000'
740 gnode(:,12)=('01100000'
741 gnode(:,13)=(/3,4,0,0/) ; bgnode(13)=b'00110000'
742 gnode(:,14)=(/'00100010'
743 gnode(:,15)=(/2,6,0,0/) ; bgnode(15)=b'01000100'
744 gnode(:,1'00001100'
745 gnode(:,17)=(/6,7,0,0/) ; bgnode(17)=b'00000110'
746 gnode(:,18)=(/4,8,0,0/) ; bgnode(18)=b'00010001'
747 gnode(:,19)=(/5,8,0,0/) ; bgnode(19)=b'00001001'
748 gnode(:,20)=(/7,8,0,0/) ; bgnode(20)=b'00000011'
749
750
751 gnode(:,21) =(/1,4,3,0/) ; bgnode(21)=b'10110000'
752 gnode(:,22) =(/2,1,4,0/) ; bgnode(22)=b'11010000'
753 gnode(:,23) =(/3,2,1,0/) ; bgnode(23)=b'11100000'
754 gnode(:,24) =(/4,3,2,0/) ; bgnode(24)=b'01110000'
755 gnode(:,25) =(/3,4,8,0/) ; bgnode(25)=b'00110001'
756 gnode(:,26) =(/4,8,7,0/) ; bgnode'00010011'
757 gnode(:,27) =(/7,3,4,0/) ; bgnode(27)=b'00110010'
758 gnode'00100011'
759 gnode(:,29) =(/5,6,7,0/) ; bgnode(29)=b'00001110'
760 gnode(:,30) =(/6,7,8,0/) ; bgnode(30)=b'00000111'
761 gnode(:,31) =(/7,8,5,0/) ; bgnode(31)=b'00001011'
762 gnode(:,32) =(/8,5,6,0/) ; bgnode(32)=b'00001101'
763 gnode(:,33) =(/1,2,6,0/) ; bgnode(33)=b'11000100'
764 gnode(:,34) =(/2,6,5,0/) ; bgnode(34)=b'01001100'
765 gnode(:,35) =(/5,1,2,0/) ; bgnode(35)=b'11001000'
766 gnode(:,36) =(/6,5,1,0/) ; bgnode(36)=b'10001100'
767 gnode(:,37) =(/2,3,7,0/) ; bgnode(37)=b'01100010'
768 gnode(:,38) =(/3,7,6,0/) ; bgnode(38)=b'00100110'
769 gnode(:,39) =(/6,2,3,0/) ; bgnode(39)=b'01100100'
770 gnode(:,40) =(/7,6,2,0/) ; bgnode(40)=b'01000110'
771 gnode(:,41) =(/1,5,8,0/) ; bgnode(41)=b'10001001'
772 gnode(:,42) =(/4,1,5,0/) ; bgnode(42)=b'10011000'
773 gnode(:,43) =(/5,8,4,0/) ; bgnode(43)=b'00011001'
774 gnode(:,44) =(/8,4,1,0/) ; bgnode(44)=b'10010001'
775
776
777 gnode(:,45)=(/6,7,3,2/) ; bgnode(45)=b'01100110'
778 gnode(:,46)=(/8,5,1,4/) ; bgnode(46)=b'10011001'
779 gnode(:,47)=(/5,6,2,1/) ; bgnode(47)=b'11001100'
780 gnode(:,48)=(/8,4,3,7/) ; bgnode(48)=b'00110011'
781 gnode(:,49)=(/6,5,8,7/) ; bgnode(49)=b'00001111'
782 gnode(:,50)=(/1,2,3,4/) ; bgnode(50)=b'11110000'
783
784
785 gnode(:,51)=(/1,2,6,3/) ; bgnode(51)=b'11100100'
786 gnode(:,52)=(/4,8,7,5/) ; bgnode(52)=b'00011011'
787 gnode(:,53)=(/3,4,8,1/) ; bgnode(53)=b'10110001'
788 gnode(:,54)=(/5,6,7,2/) ; bgnode(54)=b'01001110'
789 gnode(:,55)=(/4,3,2,7/) ; bgnode(55)=b'01110010'
790 gnode(:,56)=(/2,3,7,4/) ; bgnode(56)=b'01110010'
791 gnode(:,57)=(/4,1,5,2/) ; bgnode(57)=b'11011000'
792 gnode(:,58)=(/8,7,3,6/) ; bgnode(58)=b'00100111'
793
794
795 gnode(:,59)=(/5,6,2,3/) ; bgnode(59)=b'01101100'
796 gnode(:,60)=(/1,4,8,7/) ; bgnode(60)=b'10010011'
797 gnode(:,61)=(/2,1,5,8/) ; bgnode(61)=b'11001001'
798 gnode(:,62)=(/6,7,3,4/) ; bgnode(62)=b'00110110'
799 gnode(:,63)=(/6,5,8,4/) ; bgnode(63)=b'00011101'
800 gnode(:,64)=(/1,2,3,7/) ; bgnode(64)=b'11100010'
801 gnode(:,65)=(/2,6,7,8/) ; bgnode(65)=b'01000111'
802 gnode(:,66)=(/5,1,4,3/) ; bgnode(66)=b'10111000'
803 gnode(:,67)=(/1,5,6,7/) ; bgnode(67)=b'10001110'
804 gnode(:,68)=(/2,3,4,8/) ; bgnode(68)=b'01110001'
805 gnode(:,69)=(/5,8,7,3/) ; bgnode(69)=b'00101011'
806 gnode(:,70)=(/4,1,2,6/) ; bgnode(70)=b'11010100'
807
808
809 gnode(:,71)=(/1,2,6,7/) ; bgnode(71)=b'11000110'
810 gnode(:,72)=(/3,4,8,5/) ; bgnode(72)=b'00111001'
811 gnode(:,73)=(/4,1,5,6/) ; bgnode(73)=b'10011100'
812 gnode(:,74)=(/2,3,7,8/) ; bgnode(74)=b'01100011'
813 gnode(:,75)=(/1,5,8,7/) ; bgnode(75)=b'10001011'
814 gnode(:,76)=(/6,2,3,4/) ; bgnode(76)=b'01110100'
815 gnode(:,77)=(/5,6,7,4/) ; bgnode(77)=b'00011110'
816 gnode(:,78)=(/2,1,4,8/) ; bgnode(78)=b'11010001'
817 gnode(:,79)=(/2,6,5,8/) ; bgnode(79)=b'01001101'
818 gnode(:,80)=(/1,4,3,7/) ; bgnode(80)=b'10110010'
819 gnode(:,81)=(/4,8,7,6/) ; bgnode(81)=b'00010111'
820 gnode(:,82)=(/5,1,2,3/) ; bgnode(82)=b'11101000'
821
822
823 gnode(:,83) =(/6,7,3,2/) ; bgnode(83) =b'01100110'
824 gnode(:,84) =(/7,3,2,6/) ; bgnode(84) =b'01100110'
825 gnode(:,85) =(/3,2,6,7/) ; bgnode(85) =b'01100110'
826 gnode(:,86) =(/2,6,7,3/) ; bgnode(86) =b'01100110'
827 gnode(:,87) =(/5,8,4,1/) ; bgnode(87) =b'10011001'
828 gnode(:,88) =(/8,4,1,5/) ; bgnode(88) =b'10011001'
829 gnode(:,89) =(/4,1,5,8/) ; bgnode(89) =b'10011001'
830 gnode(:,90) =(/1,5,8,4/) ; bgnode(90) =b'10011001'
831 gnode(:,91) =(/5,6,2,1/) ; bgnode(91) =b'11001100'
832 gnode(:,92) =(/6,2,1,5/) ; bgnode(92) =b'11001100'
833 gnode(:,93) =(/2,1,5,6/) ; bgnode(93) =b'11001100'
834 gnode(:,94) =(/1,5,6,2/) ; bgnode(94) =b'11001100'
835 gnode(:,95) =(/8,7,3,4/) ; bgnode(95) =b'00110011'
836 gnode(:,96) =(/7,3,4,8/) ; bgnode(96) =b'00110011'
837 gnode(:,97) =(/3,4,8,7/) ; bgnode(97) =b'00110011'
838 gnode(:,98) =(/4,8,7,3/) ; bgnode(98) =b'00110011'
839 gnode(:,99) =(/1,2,3,4/) ; bgnode(99) =b'11110000'
840 gnode(:,100)=(/2,3,4,1/) ; bgnode(100) =b'11110000'
841 gnode(:,101)=(/3,4,1,2/) ; bgnode(101) =b'11110000'
842 gnode(:,102)=(/4,1,2,3/) ; bgnode(102) =b'11110000'
843 gnode(:,103)=(/5,6,7,8/) ; bgnode(103) =b'00001111'
844 gnode(:,104)=(/8,5,6,7/) ; bgnode(104) =b'00001111'
845 gnode(:,105)=(/7,8,5,6/) ; bgnode(105) =b'00001111'
846 gnode(:,106)=(/6,7,8,5/) ; bgnode(106) =b'00001111'
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
887
888
895
896
903
904
905 int22_buf%IsNodeOnFace(1,1:6) = (/.true. ,.false.,.false.
906 int22_buf%IsNodeOnFace(2,1:6) = (/.true. ,.false.,.false.,.true. ,.true. ,.false./)
907 int22_buf%IsNodeOnFace(3,1:6) = (/.true. ,.true. ,.false.,.false.,.true. ,.false./)
908 int22_buf%IsNodeOnFace(4,1:6) = (/.true. ,.true. ,.false.,.false.,.false.,.true
909 int22_buf%IsNodeOnFace(5,1:6) = (/.false.,.false.,.true. ,.true. ,.false.,.true. /)
910 int22_buf%IsNodeOnFace(6,1:6) = (/.false.,.false.,.true. ,.true. ,.true. ,.false./)
911 int22_buf%IsNodeOnFace(7,1:6) = (/.false.,.true. ,.true. ,.false.,.true. ,.false./)
912 int22_buf%IsNodeOnFace(8,1:6) = (/.false.,.true. ,.true. ,.false.,.false.,.true. /)
913
914
921
922
923
924
925
926
927
928
929
930
931
932
933 int22_buf%i22WhichEdge(1, 1:3)=(/-01,-02,-03/)
934 int22_buf%i22WhichEdge(2, 1:3)=(/ 01, 04, 07/)
935 int22_buf%i22WhichEdge(3, 1:3)=(/-04,-05,-06/)
936 int22_buf%i22WhichEdge(4, 1:3)=(/ 02, 05, 10/)
937 int22_buf%i22WhichEdge(5, 1:3)=(/ 03, 08, 11/)
938 int22_buf%i22WhichEdge(6, 1:3)=(/-07,-08,-09/)
939 int22_buf%i22WhichEdge(7, 1:3)=(/ 06, 09, 12/)
940 int22_buf%i22WhichEdge(8, 1:3)=(/-10,-11,-12/)
941
942
943 int22_buf%iFacesFromNode(1,1:3) = (/ 1,4,6 /)
944 int22_buf%iFacesFromNode(2,1:3) = (/ 1,4,5 /)
945 int22_buf%iFacesFromNode(3,1:3) = (/ 1,2,5 /)
946 int22_buf%iFacesFromNode(4,1:3) = (/ 1,2,6 /)
947 int22_buf%iFacesFromNode(5,1:3) = (/ 3,4,6 /)
948 int22_buf%iFacesFromNode(6,1:3) = (/ 3,4,5 /)
949 int22_buf%iFacesFromNode(7,1:3) = (/ 2,3,5 /)
950 int22_buf%iFacesFromNode(8,1:3) = (/ 2,3,6 /)
951
952
959
960
961 int22_buf%iNormalEdgesList(1,1:4)= (/ +03,+06,-07,-10 /)
962 int22_buf%iNormalEdgesList(2,1:4)= (/ -02,+04,-09,+11 /)
963 int22_buf%iNormalEdgesList(3,1:4)= (/ -03,-06,+07,+10 /)
964 int22_buf%iNormalEdgesList(4,1:4)= (/ +02,-04,+09,-11 /)
965 int22_buf%iNormalEdgesList(5,1:4)= (/ -01,+05,+08,-12 /)
966 int22_buf%iNormalEdgesList(6,1:4)= (/ +01,-05,-08,+12 /)
967
968
969
976
983
984
986
987 int22_buf%IGetTransvNodes(1,1,1:2) = (/4,2/) ;
988 int22_buf%IGetTransvNodes(1,2,1:2) = (/1,3/) ;
989 int22_buf%IGetTransvNodes(1,3,1:2) = (/2,4/) ;
990 int22_buf%IGetTransvNodes(1,4,1:2) = (/3,1/) ;
991
992 int22_buf%IGetTransvNodes(2,4,1:2) = (/3,8/) ;
993 int22_buf%IGetTransvNodes(2,3,1:2) = (/7,4/) ;
994 int22_buf%IGetTransvNodes(2,7,1:2) = (/8,3/) ;
995 int22_buf%IGetTransvNodes(2,8,1:2) = (/4,7/) ;
996
997 int22_buf%IGetTransvNodes(3,8,1:2) = (/5,7/) ;
998 int22_buf%IGetTransvNodes(3,7,1:2) = (/8,6/) ;
999 int22_buf%IGetTransvNodes(3,6,1:2) = (/7,5/) ;
1000 int22_buf%IGetTransvNodes(3,5,1:2) = (/6,8/) ;
1001
1002 int22_buf%IGetTransvNodes(4,5,1:2) = (/1,6/) ;
1003 int22_buf%IGetTransvNodes(4,6,1:2) = (/5,2/) ;
1004 int22_buf%IGetTransvNodes(4,2,1:2) = (/6,1/) ;
1005 int22_buf%IGetTransvNodes(4,1,1:2) = (/2,5/) ;
1006
1007 int22_buf%IGetTransvNodes(5,3,1:2) = (/2,7/) ;
1008 int22_buf%IGetTransvNodes(5,2,1:2) = (/6,3/) ;
1009 int22_buf%IGetTransvNodes(5,6,1:2) = (/7,2/) ;
1010 int22_buf%IGetTransvNodes(5,7,1:2) = (/3,6/) ;
1011
1012 int22_buf%IGetTransvNodes(6,1,1:2) = (/4,5/) ;
1013 int22_buf%IGetTransvNodes(6,4,1:2) = (/8,1/) ;
1014 int22_buf%IGetTransvNodes(6,8,1:2) = (/5,4/) ;
1015 int22_buf%IGetTransvNodes(6,5,1:2) = (/1,8/) ;
1016
1017
1018 int22_buf%iGetEdgesFromFace(1,1:4) = (/01,02,05,04/)
1019 int22_buf%iGetEdgesFromFace(2,1:4) = (/05,10,12,06/)
1020 int22_buf%iGetEdgesFromFace(3,1:4) = (/12,11,08,09/)
1021 int22_buf%iGetEdgesFromFace(4,1:4) = (/01,03,08,07/)
1022 int22_buf%iGetEdgesFromFace(5,1:4) = (/04,06,09,07/)
1023 int22_buf%iGetEdgesFromFace(6,1:4) = (/02,03,11,10/)
1024
1025
1026 int22_buf%iGetAdjFace( 01, 1:2 ) = (/ 01,04 /)
1027 int22_buf%iGetAdjFace( 02, 1:2 ) = (/ 01,06 /)
1028 int22_buf%iGetAdjFace( 03, 1:2 ) = (/ 04,06 /)
1029 int22_buf%iGetAdjFace( 04, 1:2 ) = (/ 01,05 /)
1030 int22_buf%iGetAdjFace( 05, 1:2 ) = (/ 01,02 /)
1031 int22_buf%iGetAdjFace( 06, 1:2 ) = (/ 02,05 /)
1032 int22_buf%iGetAdjFace( 07, 1:2 ) = (/ 04,05 /)
1033 int22_buf%iGetAdjFace( 08, 1:2 ) = (/ 03,04 /)
1034 int22_buf%iGetAdjFace( 09, 1:2 ) = (/ 03,05 /)
1035 int22_buf%iGetAdjFace( 10, 1:2 ) = (/ 02,06 /)
1036 int22_buf%iGetAdjFace( 11, 1:2 ) = (/ 03,06 /)
1037 int22_buf%iGetAdjFace( 12, 1:2 ) = (/ 02,03 /)
1038
1039
1040
1041 int22_buf%iGetNodeFromEdgeAndFace(:,:) = 0
1042
1043 int22_buf%iGetNodeFromEdgeAndFace(1,03) = 1 ;
int22_buf%iGetNodeFromEdgeAndFace(2,02) = 4
1044 int22_buf%iGetNodeFromEdgeAndFace(1,06) = 3 ;
int22_buf%iGetNodeFromEdgeAndFace(2,04) = 3
1045 int22_buf%iGetNodeFromEdgeAndFace(1,07) = 6 ;
int22_buf%iGetNodeFromEdgeAndFace(2,09) = 7
1046 int22_buf%iGetNodeFromEdgeAndFace(1,10) = 8 ;
int22_buf%iGetNodeFromEdgeAndFace(2,11) = 8
1047
1048 int22_buf%iGetNodeFromEdgeAndFace(3,03) = 5 ;
int22_buf%iGetNodeFromEdgeAndFace(4,02) = 1
1049 int22_buf%iGetNodeFromEdgeAndFace(3,06) = 7 ;
int22_buf%iGetNodeFromEdgeAndFace(4,04) = 2
1050 int22_buf%iGetNodeFromEdgeAndFace(3,07) = 6 ;
int22_buf%iGetNodeFromEdgeAndFace(4,09) = 6
1051 int22_buf%iGetNodeFromEdgeAndFace(3,10) = 8 ;
int22_buf%iGetNodeFromEdgeAndFace(4,11) = 5
1052
1053 int22_buf%iGetNodeFromEdgeAndFace(5,01) = 2 ;
int22_buf%iGetNodeFromEdgeAndFace(6,01) = 1
1054 int22_buf%iGetNodeFromEdgeAndFace(5,05) = 3 ;
int22_buf%iGetNodeFromEdgeAndFace(6,05) = 4
1055 int22_buf%iGetNodeFromEdgeAndFace(5,08) = 6 ;
int22_buf%iGetNodeFromEdgeAndFace(6,08) = 5
1056 int22_buf%iGetNodeFromEdgeAndFace(5,12) = 7 ;
int22_buf%iGetNodeFromEdgeAndFace(6,12) = 8
1057
1058
1059
1060
1061
1062
1063
1070
1071 IF(int22>0)THEN
1072 DO nin=1,int22
1073 DO j=1,12*i22len
1075 ENDDO
1076 ENDDO
1077 ENDIF
1078
1079
1080 idt_int22 = 0
1081 dt22_min = ep30
1082 dx22_min = ep30
1083 dx22min_l(0:nthread-1) = ep30
1084 v22_max = zero
1085 v22max_l(0:nthread-1) = zero
1086 ncross22 = five
1087 critmerge22 = half
1088 critdemerge22 = half
1089 critdvol22 = fourth
1090 nadj_f = 5
1092 iiad22(:,:) = 0
1094 i22_degenerated = 0
1095 uvarl(0:nthread-1,1:i22len,1:m51_n0phas+trimat*m51_nvphas+i22law37) = zero
1096 supercellvol_l(0:nthread-1,0:trimat+i22law37,1:i22len) = zero
1097 eint_l(0:nthread-1,1:i22len) = zero
1098 mom_l(1:3,0:nthread-1,1:i22len) = zero
1099 rho_l(0:nthread-1,1:i22len) = zero
1100 sig_l(0:nthread-1,1:6,1:i22len) = zero
1101 vold_l(0:nthread-1,0:trimat+i22law37,1:i22len) = zero
1102 unlinked_cells_l(0:nthread-1,1:2,1:i22len) = 0
1103 n_unlinked_l(0:nthread-1) = 0
1104 DO nin=1,int22
1105 old_secndlist(nin,1:i22len)%Num = 0
1106 old_secndlist(nin,1:i22len)%NumSecndNodes = 0
1107 DO j=1,24
1108 old_secndlist(nin,1:i22len)%FM(j) = 0
1109 old_secndlist(nin,1:i22len)%FV(j) = 0
1110 old_secndlist(nin,1:i22len)%IV(j) = 0
1111 old_secndlist(nin,1:i22len)%IBV(j) = 0
1112 old_secndlist(nin,1:i22len)%ICELLv(j) = 0
1113 old_secndlist(nin,1:i22len)%VOL(j) = zero
1114 old_secndlist(nin,1:i22len)%NumNOD_Cell(j) = 0
1115 DO k=1,8
1116 old_secndlist(nin,1:i22len)%ListNodID(j,k) = 0
1117 ENDDO
1118 enddo
1119 enddo
1120
1121
1122
1123
1124
1125
1126 iflg = 0
1127
1128 IF(int22 > 0)THEN
1130
1171 ENDIF
1172
1173
1174
1175
1176 IF(int22 > 0)THEN
1217 ENDIF
1218
1219 IF(int22>0 .AND.
ibug22 == 1 .AND. iflg/=0)
THEN
1220 print *, "=================="
1221 print *, "= Output Flags : ="
1222 print *, "=================="
1223 IF(
ibug22 /=0)print *,
"IBUG22 "
1253 print *, "=================="
1254 ENDIF
1255
1256
1257
1258
1259
1260
1261 RETURN
type(edge_entity), dimension(:,:), allocatable, target edge_list
type(int22_buf_t) int22_buf
integer ibug22_orphannodes
integer ibug22_outp_intpoint
integer ibug22_undirectlink
integer ibug22_spe_convec
integer ibug22_link_switch
integer ibug22_prediction
integer ibug22_outp_ccbuffer
int main(int argc, char *argv[])