32
33
34
35
36
37
38
39
40
41
42
43
45
46
47
48#include "implicit_f.inc"
49
50
51
52
53
54
55 INTEGER, INTENT(inout) :: NELEMINT
56 INTEGER, INTENT(in) :: INTERFACE_ID
57 INTEGER, INTENT(in) :: NSN
58 INTEGER, INTENT(in) :: NRTM
59 INTEGER, INTENT(inout) :: IFIEND
60 INTEGER, INTENT(in) :: N2D
61 INTEGER, DIMENSION(NSN), INTENT(in) :: IRTL
62 INTEGER, DIMENSION(4,NRTM), INTENT(in) :: IRECT
63 INTEGER, DIMENSION(NSN), INTENT(in) :: NSV
64 TYPE(INTER_CAND_), INTENT(inout) :: INTER_CAND
65
66
67
68 INTEGER N,NIR,
69 INTEGER :: S_NODE_ID
70 INTEGER :: SEGMENT_ID
71
72
73 inter_cand%IXINT(1:inter_cand%S_IXINT_1,nelemint+1:nelemint+nsn) = 0
74 inter_cand%ADDRESS(interface_id) = nelemint+1
75 nir=2
76 IF(n2d==0)nir=4
77 nn = 0
78
79
80 DO n = 1, nsn
81 s_node_id = nsv(n)
82 segment_id = irtl(n)
83 IF(segment_id/=0)THEN
84 nn = nn + 1
85 inter_cand%IXINT(1,nelemint+nn)=irect(1,segment_id)
86 inter_cand%IXINT(2,nelemint+nn)=irect(2,segment_id)
87 IF (nir==2) THEN
88 inter_cand%IXINT(3,nelemint+nn)=irect(1,segment_id)
89 inter_cand%IXINT(4,nelemint+nn)=irect(2,segment_id)
90 ELSE
91 inter_cand%IXINT(3,nelemint+nn)=irect(3,segment_id)
92 inter_cand%IXINT(4,nelemint+nn)=irect(4,segment_id)
93 END IF
94 inter_cand%IXINT(5,nelemint+nn)=s_node_id
95 inter_cand%IXINT(6,nelemint+nn)=2
96 inter_cand%IXINT(7,nelemint+nn)=segment_id
97 inter_cand%IXINT(8,nelemint+nn)=interface_id
98 END IF
99 ENDDO
100
101 nelemint = nelemint+nn
102 ifiend = ifiend + nn
103 inter_cand%ADDRESS(interface_id+1) = nelemint
104
105 RETURN