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