33 use element_mod , only : nixs,nixc,nixtg,nixt,nixp
34
35
36
37#include "implicit_f.inc"
38
39
40
41#include "com01_c.inc"
42#include "com04_c.inc"
43#include "scr01_c.inc"
44#include "param_c.inc"
45
46
47
48 INTEGER FXBNOD(*), NSN, IPARG(NPARG,*), ITAG(*), (*),
49 . IXS(NIXS,*), IXC(NIXC,*), IXTG(NIXTG,*), IPARTS(*),
50 . IPARTC(*), (*), IXT(NIXT,*), IXP(NIXP,*),
51 . IPARTT(*), IPARTP(*)
52
53
54
55 INTEGER I,NG,NEL,NFT,ITY,II,NALL,NEL2,J,IAD,MAT,JHBE,IT1,IT2,IT3,IT4,IT5,IT6,IT7,IT8
56
57 DO i=1,numnod
58 itag(i)=0
59 ENDDO
60 DO i=1,nsn
61 itag(abs(fxbnod(i)))=i
62 ENDDO
63 nel2=0
64
65 DO ng=1,ngroup
66 nel=iparg(2,ng)
67 nft=iparg(3,ng)
68 iad=iparg(4,ng)
69 ity=iparg(5,ng)
70 jhbe=iparg(23,ng)
71
72 IF(ity == 1)THEN
73 DO i=1,nel
74 ii=i+nft
75 it1=
min(1,itag(ixs(2,ii)))
76 it2=
min(1,itag(ixs(3,ii)))
77 it3=
min(1,itag(ixs(4,ii)))
78 it4=
min(1,itag(ixs(5,ii)))
79 it5=
min(1,itag(ixs(6,ii)))
80 it6=
min(1,itag(ixs(7,ii)))
81 it7=
min(1,itag(ixs(8,ii)))
82 it8=
min(1,itag(ixs(9,ii)))
83 nall = it1 * it2 * it3 * it4 * it5 * it6 * it7 * it8
84 IF (nall>0) THEN
85 mat=ixs(1,ii)
86 fxbelm(nel2+1)=ng
87 fxbelm(nel2+2)=i
88 DO j=1,8
89 fxbelm(nel2+2+j)=itag(ixs(1+j,ii))
90 ENDDO
91 fxbelm(nel2+13)=iparts(ii)
92 nel2=nel2+13
93 ENDIF
94 ENDDO
95
96 ELSEIF(ity == 3)THEN
97 DO i=1,nel
98 ii=i+nft
99 it1=
min(1,itag(ixc(2,ii)))
100 it2=
min(1,itag(ixc(3,ii)))
101 it3=
min(1,itag(ixc(4,ii)))
102 it4=
min(1,itag(ixc(5,ii)))
103 nall = it1 * it2 * it3 * it4
104 IF (nall>0) THEN
105 fxbelm(nel2+1)=ng
106 fxbelm(nel2+2)=i
107 DO j=1,4
108 fxbelm(nel2+2+j)=itag(ixc(1+j,ii))
109 ENDDO
110 fxbelm(nel2+10)=ipartc(ii)
111 nel2=nel2+10
112 ENDIF
113 ENDDO
114
115 ELSEIF (ity == 4) THEN
116 DO i=1,nel
117 ii=i+nft
118 it1=
min(1,itag(ixt(2,ii)))
119 it2=
min(1,itag(ixt(3,ii)))
120 nall = it1 * it2
121 IF (nall>0) THEN
122 nb1=iad
123 nb2=nb1+nel
124 fxbelm(nel2+1)=ng
125 fxbelm(nel2+2)=i
126 DO j=1,2
127 fxbelm(nel2+2+j)=itag(ixt(1+j,ii))
128 ENDDO
129 fxbelm(nel2+5)=nb1+i-1
130 fxbelm(nel2+6)=nb2+i-1
131 fxbelm(nel2+7)=ipartt(ii)
132 nel2=nel2+7
133 ENDIF
134 ENDDO
135
136 ELSEIF (ity == 5) THEN
137 DO i=1,nel
138 ii=i+nft
139 it1=
min(1,itag(ixp(2,ii)))
140 it2=
min(1,itag(ixp(3,ii)))
141 nall = it1 * it2
142 IF (nall>0) THEN
143 nb1=iad
144 nb2=nb1+nel
145 nb3=nb2+nel*3
146 nb4=nb3+nel*3
147 nb5=nb4+nel*2
148 nb6=nb5+nel
149 nb7=nb6+nel*3
150 fxbelm(nel2+1)=ng
151 fxbelm(nel2+2)=i
152 DO j=1,3
153 fxbelm(nel2+2+j)=itag(ixp(1+j,ii))
154 ENDDO
155 fxbelm(nel2+6)=nb2+3*(i-1)
156 fxbelm(nel2+7)=nb3+3*(i-1)
157 fxbelm(nel2+8)=nb4+2*(i-1)
158 fxbelm(nel2+9)=ipartp(ii)
159 nel2=nel2+9
160 ENDIF
161 ENDDO
162
163 ELSEIF(ity == 7)THEN
164 DO i=1,nel
165 ii=i+nft
166 it1=
min(1,itag(ixtg(2,ii)))
167 it2=
min(1,itag(ixtg(3,ii)))
168 it3=
min(1,itag(ixtg(4,ii)))
169 nall = it1 * it2 * it3
170 IF (nall>0) THEN
171 fxbelm(nel2+1)=ng
172 fxbelm(nel2+2)=i
173 DO j=1,3
174 fxbelm(nel2+2+j)=itag(ixtg(1+j,ii))
175 ENDDO
176 fxbelm(nel2+9)=iparttg(ii)
177 nel2=nel2+9
178 ENDIF
179 ENDDO
180 ENDIF
181 ENDDO
182
183 RETURN