OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i22datainit.F File Reference
#include "implicit_f.inc"
#include "comlock.inc"
#include "subvolumes.inc"
#include "inter22.inc"
#include "task_c.inc"
#include "com01_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine i22datainit ()

Function/Subroutine Documentation

◆ i22datainit()

subroutine i22datainit

Definition at line 32 of file i22datainit.F.

33 USE i22tri_mod
35 USE multimat_param_mod , ONLY : m51_n0phas, m51_nvphas
36C-----------------------------------------------
37C D e s c r i p t i o n
38C-----------------------------------------------
39C Interface Type22 (/INTER/TYPE22) is an FSI coupling method based on cut cell method.
40C This experimental cut cell method is not completed, abandoned, and is not an official option.
41C
42C=======================================================================
43C I m p l i c i t T y p e s
44C-----------------------------------------------
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"
51C-----------------------------------------------
52
53
54C=======================================================================
55C D A T A D E F I N I T I O N S
56C=======================================================================
57
58C=======================================================================
59C definitions from subvolumes.inc
60C=======================================================================
61 INTEGER Itmpindex22,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/ !generic form
77 !----------------------------------------------------!
78 s22_max = s_tetra + s_penta + s_poly3 + s_hexae + s_poly4
79 . + s_poly4a + s_poly4b + s_polyc
80
81 !----------------------------------------------------!
82 ! MULTIPLICITIES !
83 !----------------------------------------------------!
84 DATA m_tetra /01/
85 DATA m_penta /01/
86 DATA m_poly3 /01/
87 DATA m_hexae /02/ !-> the same intersection points configuration leads to 2 different (opposite) graphes
88 DATA m_poly4 /02/ !-> the same intersection points configuration leads to 2 different (opposite) graphes
89 DATA m_poly4a/02/ !-> the same intersection points configuration leads to 2 different (opposite) graphes
90 DATA m_poly4b/02/ !-> the same intersection points configuration leads to 2 different (opposite) graphes
91 DATA m_polyc /01/
92 DATA m_polyh(1:8) /01,01,01,02,02,02,02,01/ !generic form
93
94 !----------------------------------------------------!
95 ! COMBINATIONS INDEXES (first index from 1:52) !
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/ !generic form
106
107 !----------------------------------------------------!
108 ! main NODES NUMBER !
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/ !generic form
119
120 !----------------------------------------------------!
121 ! NUMBER OF FACES !
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/ !generic form
132
133 !----------------------------------------------------!
134 ! NUMBER OF CORNER(EDGE) !
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/ !generic form
145
146 !----------------------------------------------------!
147 ! SUBVOLUMES COMBINATIONS !
148 !----------------------------------------------------!
149 !TETRA
150 DATA bcode(01) /b'111000000000'/ !3584 !1
151 DATA bcode(02) /b'000111000000'/ !0448 !2
152 DATA bcode(03) /b'000000111000'/ !0056 !3
153 DATA bcode(04) /b'000000000111'/ !0007 !4
154 DATA bcode(05) /b'100100100000'/ !2336 !5
155 DATA bcode(06) /b'010010000100'/ !1156 !6
156 DATA bcode(07) /b'001000010010'/ !0530 !7
157 DATA bcode(08) /b'000001001001'/ !0073 !8
158 !----------------------------------------------------!
159 !PENTA
160 DATA bcode(09) /b'011100100000'/ !1824 !9
161 DATA bcode(10) /b'101010000100'/ !2692 !10
162 DATA bcode(11) /b'110000010010'/ !3090 !11
163 DATA bcode(12) /b'100011100000'/ !2272 !12
164 DATA bcode(13) /b'010101000100'/ !1348 !13
165 DATA bcode(14) /b'000110001001'/ !0393 !14
166 DATA bcode(15) /b'100100011000'/ !2328 !15
167 DATA bcode(16) /b'001000101010'/ !0554 !16
168 DATA bcode(17) /b'000001110001'/ !0113 !17
169 DATA bcode(18) /b'010010000011'/ !1155 !18
170 DATA bcode(19) /b'001000010101'/ !0533 !19
171 DATA bcode(20) /b'000001001110'/ !0078 !20
172 !----------------------------------------------------!
173 !POLY3
174 DATA bcode(21) /b'101101000100'/ !2884 !21
175 DATA bcode(22) /b'001110100100'/ !0932 !22
176 DATA bcode(23) /b'011011100000'/ !1760 !23
177 DATA bcode(24) /b'110001100100'/ !3172 !24
178 DATA bcode(25) /b'010101000011'/ !1347 !25
179 DATA bcode(26) /b'010011001010'/ !1226 !26
180 DATA bcode(27) /b'010100001101'/ !1293 !27
181 DATA bcode(28) /b'000110001110'/ !0398 !28
182 DATA bcode(29) /b'001001100011'/ !0611 !29
183 DATA bcode(30) /b'000001110110'/ !0118 !30
184 DATA bcode(31) /b'001001011100'/ !0604 !31
185 DATA bcode(32) /b'001000101101'/ !0557 !32
186 DATA bcode(33) /b'011100011000'/ !1816 !33
187 DATA bcode(34) /b'101100001010'/ !2826 !34
188 DATA bcode(35) /b'010100110010'/ !1330 !35
189 DATA bcode(36) /b'110000101010'/ !3114 !36
190 DATA bcode(37) /b'100010101001'/ !2217 !37
191 DATA bcode(38) /b'000110110001'/ !0433 !38
192 DATA bcode(39) /b'100011011000'/ !2264 !39
193 DATA bcode(40) /b'100101010001'/ !2385 !40
194 DATA bcode(41) /b'110000010101'/ !3093 !41
195 DATA bcode(42) /b'100010010110'/ !2198 !42
196 DATA bcode(43) /b'011010010001'/ !1681 !43
197 DATA bcode(44) /b'101010000011'/ !2691 !44
198 !----------------------------------------------------!
199 !HEXAE
200 DATA bcode(45) /b'100010010001'/ !2193 !45-46
201 DATA bcode(46) /b'100010010001'/ !2193
202 DATA bcode(47) /b'010100001010'/ !1290 !47-48
203 DATA bcode(48) /b'010100001010'/ !1290
204 DATA bcode(49) /b'001001100100'/ !0612 !49-50
205 DATA bcode(50) /b'001001100100'/ !0612
206 !----------------------------------------------------!
207 !POLY4
208 DATA bcode(51) /b'011011011000'/ !1752 !51-52
209 DATA bcode(52) /b'011011011000'/ !1752
210 DATA bcode(53) /b'101101000011'/ !2883 !53-54
211 DATA bcode(54) /b'101101000011'/ !2883
212 DATA bcode(55) /b'110000101101'/ !3117 !55-56
213 DATA bcode(56) /b'110000101101'/ !3117
214 DATA bcode(57) /b'000110110110'/ !0438 !57-58
215 DATA bcode(58) /b'000110110110'/ !0438
216 !----------------------------------------------------!
217 !POLY4A
218 DATA bcode(59) /b'101011001010'/ !poly4a 45 - 2762
219 DATA bcode(60) /b'101011001010'/ !POLY4A 26 - 2762
220 DATA bcode(61) /b'010100110101'/ !POLY4A 46 - 1333
221 DATA bcode(62) /b'010100110101'/ !POLY4A 25 - 1333
222 DATA bcode(63) /b'011010101001'/ !POLY4A 36 - 1705
223 DATA bcode(64) /b'011010101001'/ !POLY4A 15 - 1705
224 DATA bcode(65) /b'100101010110'/ !POLY4A 35 - 2390
225 DATA bcode(66) /b'100101010110'/ !POLY4A 16 - 2390
226 DATA bcode(67) /b'110001100011'/ !POLY4A 34 - 3171
227 DATA bcode(68) /b'110001100011'/ !POLY4A 12 - 3171
228 DATA bcode(69) /b'001110011100'/ !POLY4A 23 - 0924
229 DATA bcode(70) /b'001110011100'/ !POLY4A 14 - 0924
230 !POLY4B
231 DATA bcode(71) /b'011101010001'/ !POLY4B 45 - 1873
232 DATA bcode(72) /b'011101010001'/ !POLY4B 26 - 1873
233 DATA bcode(73) /b'100010101110'/ !POLY4B 46 - 2222
234 DATA bcode(74) /b'100010101110'/ !POLY4B 25 - 2222
235 DATA bcode(75) /b'110001011100'/ !POLY4B 36 - 3148
236 DATA bcode(76) /b'110001011100'/ !POLY4B 15 - 3148
237 DATA bcode(77) /b'001110100011'/ !POLY4B 35 - 0931
238 DATA bcode(78) /b'001110100011'/ !POLY4B 16 - 0931
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 !TETRA
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 !PENTA
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)=(/2,3,0,0/) ; bgnode(12)=b'01100000'
741 gnode(:,13)=(/3,4,0,0/) ; bgnode(13)=b'00110000'
742 gnode(:,14)=(/3,7,0,0/) ; bgnode(14)=b'00100010'
743 gnode(:,15)=(/2,6,0,0/) ; bgnode(15)=b'01000100'
744 gnode(:,16)=(/5,6,0,0/) ; bgnode(16)=b'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 !POLY3
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(26)=b'00010011'
757 gnode(:,27) =(/7,3,4,0/) ; bgnode(27)=b'00110010'
758 gnode(:,28) =(/8,7,3,0/) ; bgnode(28)=b'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 !HEXAE
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 !POLY4
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 !POLY4A
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 !POLY4B
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 !POLYC
823 gnode(:,83) =(/6,7,3,2/) ; bgnode(83) =b'01100110' !POLYC R+.4
824 gnode(:,84) =(/7,3,2,6/) ; bgnode(84) =b'01100110' !POLYC R+.7
825 gnode(:,85) =(/3,2,6,7/) ; bgnode(85) =b'01100110' !POLYC R+.9
826 gnode(:,86) =(/2,6,7,3/) ; bgnode(86) =b'01100110' !POLYC R+.6
827 gnode(:,87) =(/5,8,4,1/) ; bgnode(87) =b'10011001' !POLYC R-.2
828 gnode(:,88) =(/8,4,1,5/) ; bgnode(88) =b'10011001' !POLYC R-.3
829 gnode(:,89) =(/4,1,5,8/) ; bgnode(89) =b'10011001' !POLYC R-.11
830 gnode(:,90) =(/1,5,8,4/) ; bgnode(90) =b'10011001' !POLYC R-.10
831 gnode(:,91) =(/5,6,2,1/) ; bgnode(91) =b'11001100' !POLYC S+.1
832 gnode(:,92) =(/6,2,1,5/) ; bgnode(92) =b'11001100' !POLYC S+.3
833 gnode(:,93) =(/2,1,5,6/) ; bgnode(93) =b'11001100' !POLYC S+.8
834 gnode(:,94) =(/1,5,6,2/) ; bgnode(94) =b'11001100' !POLYC S+.7
835 Gnode(:,95) =(/8,7,3,4/) ; bGnode(95) =B'00110011' !POLYC S-.5
836 Gnode(:,96) =(/7,3,4,8/) ; bGnode(96) =B'00110011' !POLYC S-.10
837 Gnode(:,97) =(/3,4,8,7/) ; bGnode(97) =B'00110011' !POLYC S-.12
838 Gnode(:,98) =(/4,8,7,3/) ; bGnode(98) =B'00110011' !POLYC S-.6
839 Gnode(:,99) =(/1,2,3,4/) ; bGnode(99) =B'11110000' !POLYC T+.5
840 Gnode(:,100)=(/2,3,4,1/) ; bGnode(100) =B'11110000' !POLYC T+.4
841 Gnode(:,101)=(/3,4,1,2/) ; bGnode(101) =B'11110000' !POLYC T+.1
842 Gnode(:,102)=(/4,1,2,3/) ; bGnode(102) =B'11110000' !POLYC T+.2
843 Gnode(:,103)=(/5,6,7,8/) ; bGnode(103) =B'00001111' !POLYC T-.12
844 Gnode(:,104)=(/8,5,6,7/) ; bGnode(104) =B'00001111' !POLYC T-.9
845 Gnode(:,105)=(/7,8,5,6/) ; bGnode(105) =B'00001111' !POLYC T-.8
846 Gnode(:,106)=(/6,7,8,5/) ; bGnode(106) =B'00001111' !POLYC T-.11
847
848 !----------------------------------------------------!
849 ! NODE TAGS FOR EACH OF 58 COMBINATIONS !
850 !----------------------------------------------------!
851 ! 1 10 20 30 40 50
852 ! | | | | | |
853 ! '1234567890123456789012345678901234567890123456789012345678'/
854c DATA b22CombiNode(01) /B'0000000000000000000000000000000000000000000000000000000000'/ !1,9,10,11,21,22,23,24,25,26,32,33,44,46,47,49,52,54,56,58
855c DATA b22CombiNode(02) /B'0000000000000000000000000000000000000000000000000000000000'/
856c DATA b22CombiNode(03) /B'0000000000000000000000000000000000000000000000000000000000'/
857c DATA b22CombiNode(04) /B'0000000000000000000000000000000000000000000000000000000000'/
858c DATA b22CombiNode(05) /B'0000000000000000000000000000000000000000000000000000000000'/
859c DATA b22CombiNode(06) /B'0000000000000000000000000000000000000000000000000000000000'/
860c DATA b22CombiNode(07) /B'0000000000000000000000000000000000000000000000000000000000'/
861c DATA b22CombiNode(08) /B'0000000000000000000000000000000000000000000000000000000000'/
862
863c DATA b22CombiEdge(01) /B'0000000000000000000000000000000000000000000000000000000000'/
864c DATA b22CombiEdge(02) /B'0000000000000000000000000000000000000000000000000000000000'/
865c DATA b22CombiEdge(03) /B'0000000000000000000000000000000000000000000000000000000000'/
866c DATA b22CombiEdge(04) /B'0000000000000000000000000000000000000000000000000000000000'/
867c DATA b22CombiEdge(05) /B'0000000000000000000000000000000000000000000000000000000000'/
868c DATA b22CombiEdge(06) /B'0000000000000000000000000000000000000000000000000000000000'/
869c DATA b22CombiEdge(07) /B'0000000000000000000000000000000000000000000000000000000000'/
870c DATA b22CombiEdge(08) /B'0000000000000000000000000000000000000000000000000000000000'/
871c DATA b22CombiEdge(09) /B'0000000000000000000000000000000000000000000000000000000000'/
872c DATA b22CombiEdge(10) /B'0000000000000000000000000000000000000000000000000000000000'/
873c DATA b22CombiEdge(11) /B'0000000000000000000000000000000000000000000000000000000000'/
874c DATA b22CombiEdge(12) /B'0000000000000000000000000000000000000000000000000000000000'/
875
876C=======================================================================
877C definitions
878C=======================================================================
879
880 !diagonal vectors
881 INT22_BUF%iFACE(1:2,1,1)=(/1,3/); INT22_BUF%iFACE(1:2,2,1)=(/2,4/)
882 INT22_BUF%iFACE(1:2,1,2)=(/3,8/); INT22_BUF%iFACE(1:2,2,2)=(/4,7/)
883 INT22_BUF%iFACE(1:2,1,3)=(/5,7/); INT22_BUF%iFACE(1:2,2,3)=(/6,8/)
884 INT22_BUF%iFACE(1:2,1,4)=(/1,6/); INT22_BUF%iFACE(1:2,2,4)=(/2,5/)
885 INT22_BUF%iFACE(1:2,1,5)=(/2,7/); INT22_BUF%iFACE(1:2,2,5)=(/3,6/)
886 INT22_BUF%iFACE(1:2,1,6)=(/4,5/); INT22_BUF%iFACE(1:2,2,6)=(/1,8/)
887
888 !face_id -> (node_id, node_id, node_id, node_id)
889 INT22_BUF%nodFACE(1,1:4) = (/1,2,3,4/)
890 INT22_BUF%nodFACE(2,1:4) = (/4,3,7,8/)
891 INT22_BUF%nodFACE(3,1:4) = (/8,7,6,5/)
892 INT22_BUF%nodFACE(4,1:4) = (/5,6,2,1/)
893 INT22_BUF%nodFACE(5,1:4) = (/3,2,6,7/)
894 INT22_BUF%nodFACE(6,1:4) = (/5,1,4,8/)
895
896 !same in binary
897 INT22_BUF%bNodFACE(01) = B'000011110' !last digit is position 0 and is unused
898 INT22_BUF%bNodFACE(02) = B'110011000'
899 INT22_BUF%bNodFACE(03) = B'111100000'
900 INT22_BUF%bNodFACE(04) = B'001100110'
901 INT22_BUF%bNodFACE(05) = B'011001100'
902 INT22_BUF%bNodFACE(06) = B'100110010'
903
904 !(node_id, face_id) -> Is_On_face
905 INT22_BUF%IsNodeOnFace(1,1:6) = (/.TRUE. ,.FALSE.,.FALSE.,.TRUE .,.FALSE.,.TRUE. /)
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 !edge number -> (node_id, node_id)
915 INT22_BUF%iEDGE(1:2, 1)=(/1,2/) ; INT22_BUF%iEDGE(1:2, 4)=(/3,2/);
916 INT22_BUF%iEDGE(1:2, 2)=(/1,4/) ; INT22_BUF%iEDGE(1:2, 5)=(/3,4/);
917 INT22_BUF%iEDGE(1:2, 3)=(/1,5/) ; INT22_BUF%iEDGE(1:2, 6)=(/3,7/);
918 INT22_BUF%iEDGE(1:2, 7)=(/6,2/) ; INT22_BUF%iEDGE(1:2, 10)=(/8,4/);
919 INT22_BUF%iEDGE(1:2, 8)=(/6,5/) ; INT22_BUF%iEDGE(1:2, 11)=(/8,5/);
920 INT22_BUF%iEDGE(1:2, 9)=(/6,7/) ; INT22_BUF%iEDGE(1:2, 12)=(/8,7/);
921
922! !diagonals Identification (if needed)
923! iEDGE(1:2, 13)=(/1,3/) ; iEDGE(1:2, 16)=(/2,4/);
924! iEDGE(1:2, 14)=(/1,6/) ; iEDGE(1:2, 17)=(/2,5/);
925! iEDGE(1:2, 15)=(/1,8/) ; iEDGE(1:2, 18)=(/2,7/);
926! !
927! iEDGE(1:2, 19)=(/3,6/) ; iEDGE(1:2, 21)=(/4,7/)
928! iEDGE(1:2, 20)=(/3,8/) ; iEDGE(1:2, 22)=(/4,5/);
929! !
930! iEDGE(1:2, 23)=(/5,7/) ; iEDGE(1:2, 24)=(/6,8/);
931
932 ! node_id -> 3 adjacent edges
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 ! node_id -> 3 adjacent faces
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 !(face_id,node_id) -> edge_id
953 INT22_BUF%iGetEdge(1,1)=+03; INT22_BUF%iGetEdge(1,2)=-07; INT22_BUF%iGetEdge(1,3)=+06; INT22_BUF%iGetEdge(1,4)=-10
954 INT22_BUF%iGetEdge(2,4)=-02; INT22_BUF%iGetEdge(2,3)=+04; INT22_BUF%iGetEdge(2,7)=-09; INT22_BUF%iGetEdge(2,8)=+11
955 INT22_BUF%iGetEdge(3,8)=+10; INT22_BUF%iGetEdge(3,7)=-06; INT22_BUF%iGetEdge(3,6)=+07; INT22_BUF%iGetEdge(3,5)=-03
956 INT22_BUF%iGetEdge(4,5)=-11; INT22_BUF%iGetEdge(4,6)=+09; INT22_BUF%iGetEdge(4,2)=-04; INT22_BUF%iGetEdge(4,1)=+02
957 INT22_BUF%iGetEdge(5,3)=+05; INT22_BUF%iGetEdge(5,2)=-01; INT22_BUF%iGetEdge(5,6)=+08; INT22_BUF%iGetEdge(5,7)=-12
958 INT22_BUF%iGetEdge(6,5)=-08; INT22_BUF%iGetEdge(6,1)=+01; INT22_BUF%iGetEdge(6,4)=-05; INT22_BUF%iGetEdge(6,8)=+12
959
960 !(face_id) -> {edge_ids}
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 !(face_id,node_id) -> opposite node
970 INT22_BUF%IGetOppositeNode(1,1)=05; INT22_BUF%IGetOppositeNode(1,2)=06;
971 INT22_BUF%IGetOppositeNode(2,4)=01; INT22_BUF%IGetOppositeNode(2,3)=02;
972 INT22_BUF%IGetOppositeNode(3,8)=04; INT22_BUF%IGetOppositeNode(3,7)=03;
973 INT22_BUF%IGetOppositeNode(4,5)=08; INT22_BUF%IGetOppositeNode(4,6)=07;
974 INT22_BUF%IGetOppositeNode(5,3)=04; INT22_BUF%IGetOppositeNode(5,2)=01;
975 INT22_BUF%IGetOppositeNode(6,5)=06; INT22_BUF%IGetOppositeNode(6,1)=02;
976
977 INT22_BUF%IGetOppositeNode(1,3)=07; INT22_BUF%IGetOppositeNode(1,4)=08;
978 INT22_BUF%IGetOppositeNode(2,7)=06; INT22_BUF%IGetOppositeNode(2,8)=05;
979 INT22_BUF%IGetOppositeNode(3,6)=02; INT22_BUF%IGetOppositeNode(3,5)=01;
980 INT22_BUF%IGetOppositeNode(4,2)=03; INT22_BUF%IGetOppositeNode(4,1)=04;
981 INT22_BUF%IGetOppositeNode(5,6)=05; INT22_BUF%IGetOppositeNode(5,7)=08;
982 INT22_BUF%IGetOppositeNode(6,4)=03; INT22_BUF%IGetOppositeNode(6,8)=07;
983
984 !(face_id,node_id) -> (tangent node 1, tangent node 2)
985 INT22_BUF%IGetTransvNodes(:,:,:) = 0
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 ! face_id -> (edge_id, edge_id, edge_id, edge_id)
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 ! edge_id -> edge_id, edge_id
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 !FACE_ID,EDGE_ID- > NODE_ID
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 !iRightEdge(Face,nodeID)
1061 !next edge is clockwise edge when face is looked from cell centroid.
1062 ! "-" : means centripetal
1063 ! "+" : means centrifugal
1064 INT22_BUF%iLeftEdge(1,1)=+02; INT22_BUF%iLeftEdge(1,2)=-01; INT22_BUF%iLeftEdge(1,3)=+04; INT22_BUF%iLeftEdge(1,4)=-05; !1234 <- nodFACE(1,1:4) = (/1,2,3,4/)
1065 INT22_BUF%iLeftEdge(2,1)=-10; INT22_BUF%iLeftEdge(2,2)=+05; INT22_BUF%iLeftEdge(2,3)=-06; INT22_BUF%iLeftEdge(2,4)=+12; !4378 <- nodFACE(2,1:4) = (/4,3,7,8/)
1066 INT22_BUF%iLeftEdge(3,1)=+11; INT22_BUF%iLeftEdge(3,2)=-12; INT22_BUF%iLeftEdge(3,3)=+09; INT22_BUF%iLeftEdge(3,4)=-08; !8765 <- nodFACE(3,1:4) = (/8,7,6,5/)
1067 INT22_BUF%iLeftEdge(4,1)=-03; INT22_BUF%iLeftEdge(4,2)=+08; INT22_BUF%iLeftEdge(4,3)=-07; INT22_BUF%iLeftEdge(4,4)=+01; !5621 <- nodFACE(4,1:4) = (/5,6,2,1/)
1068 INT22_BUF%iLeftEdge(5,1)=+06; INT22_BUF%iLeftEdge(5,2)=-04; INT22_BUF%iLeftEdge(5,3)=+07; INT22_BUF%iLeftEdge(5,4)=-09; !3267 <- nodFACE(5,1:4) = (/3,2,6,7/)
1069 INT22_BUF%iLeftEdge(6,1)=-11; INT22_BUF%iLeftEdge(6,2)=+03; INT22_BUF%iLeftEdge(6,3)=-02; INT22_BUF%iLeftEdge(6,4)=+10; !5148 <- nodFACE(6,1:4) = (/5,1,4,8/)
1070
1071 IF(INT22>0)THEN
1072 DO NIN=1,INT22
1073 DO J=1,12*I22LEN
1074 EDGE_LIST(NIN,J)%NBCUT = 0
1075 ENDDO
1076 ENDDO
1077 ENDIF
1078
1079C=======================================================================
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
1091 NBOLD(1) = NB
1092 IIAD22(:,:) = 0
1093 NBCUT_MAX = 8 + 6 !cut plane in cut cell, maximum reached with 8 tetra (all 8 nodes isolated) +6 closure surface
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!next J
1119 ENDDO!next NIN
1120C=======================================================================
1121
1122 !--------------------!
1123 ! ALL !
1124 ! ON(1) / OFF(0) !
1125 !--------------------!
1126 IFLG = 0 !IOUTP22
1127
1128 IF(INT22 > 0)THEN
1129 IBUG22 = 0
1130 !-----------------------!
1131 IBUG22_ccBufList = 0
1132 IBUG22_antidiff = -0
1133 IBUG22_upwind = -0
1134 IBUG22_tri = 0
1135 IBUG22_trivox = 0
1136 IBUG22_intersect = -0
1137 IBUG22_subvol = 12781
1138 IBUG22_aera = 0
1139 IBUG22_ident = 12781
1140 IBUG22_convec = 0
1141 IBUG22_spe_convec = 0
1142 IBUG22_eos = 0
1143 IBUG22_dvol = -0
1144 IBUG22_sigeps51 = 0
1145 IBUG22_ssp = 0
1146 IBUG22_flux = -0
1147 IBUG22_flux22 = -0
1148 IBUG22_volfrac = 0
1149 IBUG22_conti = 0
1150 IBUG22_fint = 12781
1151 IBUG22_sinit = 0
1152 IBUG22_nodalp = 0
1153 IBUG22_amouil = 0
1154 IBUG22_fcont = -0
1155 IBUG22_fcontASS = -0
1156 IBUG22_Swet = -0
1157 IBUG22_destroy = -0
1158 IBUG22_merge = -0
1159 IBUG22_link_switch = -0
1160 IBUG22_tracking = -0
1161 IBUG22_prediction = -0
1162 IBUG22_UndirectLink = -0
1163 IBUG22_Truss = 0
1164 IBUG22_OrphanNodes = 0
1165 IBUG22_DtMin = 0
1166 IBUG22_OUTP_CCbuffer = 0 !enables to output bricks in cut cell buffer (HyperMesh tcl script)
1167 IBUG22_OUTP_IntPoint = 0 !enables to output intersection points (HyperMesh tcl script)
1168 IBUG22_NVAR = 2 !-1: all, 1:mass, 2:energy
1169 IBUG22_ITRIMAT = 1 !-1: all, 0:global, 1:submat1, 2:submat2, 3:submat3, 4:submat4
1170 IBUG22_CC_LENGTH = 0
1171 ENDIF
1172
1173
1174
1175 !---------------!
1176 IF(INT22 > 0)THEN
1177 IBUG22_ccBufList = IBUG22_ccBufList * IFLG
1178 IBUG22_antidiff = IBUG22_antidiff * IFLG
1179 IBUG22_upwind = IBUG22_upwind * IFLG
1180 IBUG22_tri = IBUG22_tri * IFLG
1181 IBUG22_trivox = IBUG22_trivox * IFLG
1182 IBUG22_intersect = IBUG22_intersect * IFLG
1183 IBUG22_subvol = IBUG22_subvol * IFLG
1184 IBUG22_aera = IBUG22_aera * IFLG
1185 IBUG22_ident = IBUG22_ident * IFLG
1186 IBUG22_convec = IBUG22_convec * IFLG
1187 IBUG22_spe_convec = IBUG22_spe_convec * IFLG
1188 IBUG22_eos = IBUG22_eos * IFLG
1189 IBUG22_dvol = IBUG22_dvol * IFLG
1190 IBUG22_sigeps51 = IBUG22_sigeps51 * IFLG
1191 IBUG22_ssp = IBUG22_ssp * IFLG
1192 IBUG22_flux = IBUG22_flux * IFLG
1193 IBUG22_flux22 = IBUG22_flux22 * IFLG
1194 IBUG22_volfrac = IBUG22_volfrac * IFLG
1195 IBUG22_conti = IBUG22_conti * IFLG
1196 IBUG22_fint = IBUG22_fint * IFLG
1197 IBUG22_sinit = IBUG22_sinit * IFLG
1198 IBUG22_nodalp = IBUG22_nodalp * IFLG
1199 IBUG22_amouil = IBUG22_amouil * IFLG
1200 IBUG22_fcont = IBUG22_fcont * IFLG
1201 IBUG22_fcontASS = IBUG22_fcontASS * IFLG
1202 IBUG22_Swet = IBUG22_Swet * IFLG
1203 IBUG22_destroy = IBUG22_destroy * IFLG
1204 IBUG22_merge = IBUG22_merge * IFLG
1205 IBUG22_link_switch = IBUG22_link_switch * IFLG
1206 IBUG22_tracking = IBUG22_tracking * IFLG
1207 IBUG22_prediction = IBUG22_prediction * IFLG
1208 IBUG22_UndirectLink = IBUG22_UndirectLink * IFLG
1209 IBUG22_Truss = IBUG22_Truss * IFLG
1210 IBUG22_DtMin = IBUG22_DtMin * IFLG
1211 IBUG22_OrphanNodes = IBUG22_OrphanNodes * IFLG
1212 IBUG22_OUTP_CCbuffer = IBUG22_OUTP_CCbuffer * IFLG
1213 IBUG22_OUTP_IntPoint = IBUG22_OUTP_IntPoint * IFLG
1214 IBUG22_NVAR = IBUG22_NVAR * IFLG
1215 IBUG22_ITRIMAT = IBUG22_ITRIMAT * IFLG
1216 IBUG22_CC_LENGTH = IBUG22_CC_LENGTH * IFLG
1217 ENDIF
1218
1219.AND..AND. IF(INT22>0 IBUG22 == 1 IFLG/=0)THEN
1220 PRINT *, "=================="
1221 PRINT *, "= Output Flags : ="
1222 PRINT *, "=================="
1223 IF(IBUG22 /=0)print *,"IBUG22 "
1224 IF(IBUG22_tri /=0)print *,"IBUG22_tri "
1225 IF(IBUG22_trivox /=0)print *,"IBUG22_trivox "
1226 IF(IBUG22_intersect /=0)print *,"IBUG22_intersect "
1227 IF(IBUG22_subvol /=0)print *,"IBUG22_subvol "
1228 IF(IBUG22_aera /=0)print *,"IBUG22_aera "
1229 IF(IBUG22_ident /=0)print *,"IBUG22_ident "
1230 IF(IBUG22_convec /=0)print *,"IBUG22_convec "
1231 IF(IBUG22_eos /=0)print *,"IBUG22_eos "
1232 IF(IBUG22_dvol /=0)print *,"IBUG22_dvol "
1233 IF(IBUG22_sigeps51 /=0)print *,"IBUG22_sigeps51 "
1234 IF(IBUG22_ssp /=0)print *,"IBUG22_ssp "
1235 IF(IBUG22_flux /=0)print *,"IBUG22_flux "
1236 IF(IBUG22_flux22 /=0)print *,"IBUG22_flux22 "
1237 IF(IBUG22_volfrac /=0)print *,"IBUG22_volfrac "
1238 IF(IBUG22_conti /=0)print *,"IBUG22_conti "
1239 IF(IBUG22_fint /=0)print *,"IBUG22_fint "
1240 IF(IBUG22_sinit /=0)print *,"IBUG22_sinit "
1241 IF(IBUG22_nodalp /=0)print *,"IBUG22_nodalp "
1242 IF(IBUG22_amouil /=0)print *,"IBUG22_amouil "
1243 IF(IBUG22_spe_convec /=0)print *,"IBUG22_spe_convec "
1244 IF(IBUG22_fcont /=0)print *,"IBUG22_fcont "
1245 IF(IBUG22_Swet /=0)print *,"IBUG22_Swet "
1246 IF(IBUG22_destroy /=0)print *,"IBUG22_destroy "
1247 IF(IBUG22_merge /=0)print *,"IBUG22_merge "
1248 IF(IBUG22_UndirectLink /=0)print *,"IBUG22_UndirectLink "
1249 IF(IBUG22_Truss /=0)print *,"IBUG22_Truss "
1250 IF(IBUG22_DtMin /=0)print *,"IBUG22_DtMin "
1251 IF(IBUG22_OUTP_CCbuffer/=0)print *,"IBUG22_OUTP_CCbuffer"
1252 IF(IBUG22_OUTP_IntPoint/=0)print *,"IBUG22_OUTP_IntPoint"
1253 print *, "=================="
1254 ENDIF
1255
1256! IF(NTHREAD>1)THEN
1257! print *, "**error inter22 : Multithreading not yet validated"
1258! stop
1259! ENDIF
1260
1261 RETURN