35 use element_mod , only : nixs,nixq,nixc,nixp,nixt,nixr,nixtg
36
37
38
39#include "implicit_f.inc"
40
41
42
43#include "param_c.inc"
44#include "com01_c.inc"
45
46
47
48 INTEGER NUMNOD,P,NUMNOD_L,
49 + NODGLOB(*), NODLOCAL(*), IGEO(NPROPGI,*),
50 + IPARG(NPARG,*), IXS(NIXS,*), IXQ(NIXQ,*), IXC(NIXC,*),
51 + IXTG(NIXTG,*), IXT(NIXT,*), IXP(NIXP,*), IXR(NIXR,*)
53 + geo(npropg,*)
54
55
56
57 INTEGER NLOCAL
59
60
61
62 INTEGER I, N_L, NG, NEL, ITY, NFT, K, N, IE
63 INTEGER, DIMENSION(:), ALLOCATABLE :: ITAG
64
65
66
67 ALLOCATE( itag(numnod) )
68
69 DO n = 1, numnod
70 itag(n) = 0
71 END DO
72
73 n_l = 0
74 DO ng=1,ngroup
75 IF(iparg(32,ng)==p-1) THEN
76 nel = iparg(2,ng)
77 nft = iparg(3,ng)
78 ity = iparg(5,ng)
79 IF(ity==1) THEN
80
81 DO i = 1, nel
82 ie = i+nft
83 DO k = 1, 8
84 n = ixs(k+1,ie)
85 IF(itag(n)==0) THEN
86 n_l = n_l + 1
87 nodlocal(n) = n_l
88 nodglob(n_l) = n
89 itag(n) = 1
90 END IF
91 END DO
92 END DO
93
94 ELSEIF(ity==2)THEN
95 DO i = 1, nel
96 ie = i+nft
97 DO k = 1, 4
98 n = ixq(k+1,ie)
99 IF(itag(n)==0) THEN
100 n_l = n_l + 1
101 nodlocal(n) = n_l
102 nodglob(n_l) = n
103 itag(n) = 1
104 END IF
105 END DO
106 END DO
107 ELSEIF(ity==3)THEN
108
109 DO i = 1, nel
110 ie = i+nft
111 DO k = 1, 4
112 n = ixc(k+1,ie)
113 IF(itag(n)==0) THEN
114 n_l = n_l + 1
115 nodlocal(n) = n_l
116 nodglob(n_l) = n
117 itag(n) = 1
118 END IF
119 END DO
120 END DO
121 ELSEIF(ity==4)THEN
122
123 DO i = 1, nel
124 ie = i+nft
125 DO k = 1, 2
126 n = ixt(k+1,ie)
127 IF(itag(n)==0) THEN
128 n_l = n_l + 1
129 nodlocal(n) = n_l
130 nodglob(n_l) = n
131 itag(n) = 1
132 END IF
133 END DO
134 END DO
135 ELSEIF(ity==5)THEN
136
137 DO i = 1, nel
138 ie = i+nft
139 DO k = 1, 2
140 n = ixp(k+1,ie)
141 IF(itag(n)==0) THEN
142 n_l = n_l + 1
143 nodlocal(n) = n_l
144 nodglob(n_l) = n
145 itag(n) = 1
146 END IF
147 END DO
148 END DO
149 ELSEIF(ity==6)THEN
150
151 DO i = 1, nel
152 ie = i+nft
153 DO k = 1, 2
154 n = ixr(k+1,ie)
155 IF(itag(n)==0) THEN
156 n_l = n_l + 1
157 nodlocal(n) = n_l
158 nodglob(n_l) = n
159 itag(n) = 1
160 END IF
161 END DO
162 IF(igeo(11,ixr(1,ie))==12)THEN
163 n = ixr(4,ie)
164 IF(itag(n)==0) THEN
165 n_l = n_l + 1
166 nodlocal(n) = n_l
167 nodglob(n_l) = n
168 itag(n) = 1
169 END IF
170 END IF
171 END DO
172 ELSEIF(ity==7)THEN
173
174
175 DO i = 1, nel
176 ie = i+nft
177 DO k = 1, 3
178 n = ixtg(k+1,ie)
179 IF(itag(n)==0) THEN
180 n_l = n_l + 1
181 nodlocal(n) = n_l
182 nodglob(n_l) = n
183 itag(n) = 1
184 END IF
185 END DO
186 END DO
187 ELSEIF(ity==50)THEN
188
189 END IF
190 END IF
191 END DO
192
193 DO i = 1, numnod
194 IF(itag(i)==0) THEN
196 n_l = n_l + 1
197 nodlocal(i) = n_l
198 nodglob(n_l)= i
199 ELSE
200 nodlocal(i) = 0
201 ENDIF
202 END IF
203 ENDDO
204
205
206
207 DEALLOCATE( itag )
208
209 RETURN