32
33
34
35
36
37
38
39
40
41
42
43
44
45 USE intbufdef_mod
46
47
48
49#include "implicit_f.inc"
50
51
52
53 INTEGER, INTENT(in) :: NUMNOD
54 INTEGER, INTENT(in) :: NSN
55 INTEGER, INTENT(in) :: NMN
56 INTEGER, DIMENSION(NSN), INTENT(in) :: NSV
57 INTEGER, DIMENSION(NMN), INTENT(in) :: MSR
58 INTEGER, DIMENSION(5,NUMNOD), INTENT(inout) :: IWCONT
59 INTEGER, INTENT(inout) :: NSNT
60 INTEGER, INTENT(inout) :: NMNT
61 TYPE(INTBUF_STRUCT_), INTENT(in) :: INTBUF_TAB
62
63
64
65 INTEGER :: I
66 INTEGER :: S_NODE_ID,M_NODE_ID,
67 INTEGER :: NODE_ID_1,NODE_ID_2 ! id of the 2 nodes of the edge for type 24 with edge to edge
68 INTEGER :: SEGMENT_ID_TYPE24
69
70
71
72
73 DO i = 1,nsn
74 s_node_id = nsv(i)
75
76 s_node_id_2 = 0
77
78
79
80
81 IF (s_node_id >numnod) THEN
82 s_node_id = s_node_id - numnod
83 CALL i24fic_getn(s_node_id,intbuf_tab%IRTSE,intbuf_tab%IS2SE,segment_id_type24,node_id_1,node_id_2)
84 s_node_id = node_id_1
85 s_node_id_2 = node_id_2
86 ENDIF
87
88
89 iwcont(1,s_node_id) = iwcont(1,s_node_id)+1
90 nsnt = nsnt + 1
91 IF(s_node_id_2/=0) THEN
92 iwcont(1,s_node_id_2) = iwcont(1,s_node_id_2)+1
93 nsnt = nsnt + 1
94 ENDIF
95 ENDDO
96
97
98
99
100 DO i = 1,nmn
101 m_node_id = msr(i)
102 iwcont(2,m_node_id) = iwcont(2,m_node_id)+1
103 nmnt = nmnt + 1
104 ENDDO
105
106
107 RETURN
subroutine i24fic_getn(ns, irtse, is2se, ie, ns1, ns2)