38
40 use element_mod , only : nixs
41
42
43
44#include "implicit_f.inc"
45
46
47
48#include "mvsiz_p.inc"
49
50
51
52#include "vect01_c.inc"
53#include "com04_c.inc"
54
55
56
57 INTEGER NEL
58 INTEGER ,INTENT(IN) :: NINTEMP
59 INTEGER NC(MVSIZ,20),MXT(*),NGL(*),NGEO(*),IXS(NIXS,*),IXS20(12,*)
60
62 . x(3,*), v(3,*), xx(mvsiz,20), yy(mvsiz,20), zz(mvsiz,20),
63 . vx(mvsiz,20), vy(mvsiz,20), vz(mvsiz,20),
64 . mass(mvsiz),dtelem(*),sti(*),
65 . sigg(nel,6),eintg(*),rhog(*),qg(*),temp(*), temp0(mvsiz)
66
67
68
69 INTEGER I, IPERM1(20),IPERM2(20),N,N1,N2,NN,IUN
70
71 DATA iperm1/0,0,0,0,0,0,0,0,1,2,3,4,1,2,3,4,5,6,7,8/
72 DATA iperm2/0,0,0,0,0,0,0,0,2,3,4,1,5,6,7,8,6,7,8,5/
73
74
75
78
79 iun=1
80
81 DO i=lft,llt
82 ngeo(i)=ixs(10,i)
83 ngl(i) =ixs(11,i)
84 mxt(i) =ixs(1,i)
85 nc(i,1)=ixs(2,i)
86 nc(i,2)=ixs(3,i)
87 nc(i,3)=ixs(4,i)
88 nc(i,4)=ixs(5,i)
89 nc(i,5)=ixs(6,i)
90 nc(i,6)=ixs(7,i)
91 nc(i,7)=ixs(8,i)
92 nc(i,8)=ixs(9,i)
93 nc(i,9) =ixs20(1,i)
94 nc(i,10) =ixs20(2,i)
95 nc(i,11) =ixs20(3,i)
96 nc(i,12) =ixs20(4,i)
97 nc(i,13) =ixs20(5,i)
98 nc(i,14) =ixs20(6,i)
99 nc(i,15) =ixs20(7,i)
100 nc(i,16) =ixs20(8,i)
101 nc(i,17) =ixs20(9,i)
102 nc(i,18) =ixs20(10,i)
103 nc(i,19) =ixs20(11,i)
104 nc(i,20) =ixs20(12,i)
105 dtelem(i)=ep30
106 sti(i)=zero
107 eintg(i)=zero
108 rhog(i)=zero
109 qg(i)=zero
110 sigg(i,1)=zero
111 sigg(i,2)=zero
112 sigg(i,3)=zero
113 sigg(i,4)=zero
114 sigg(i,5)=zero
115 sigg(i,6)=zero
117
118 nc(i,1) =ixs(6,i)
119 nc(i,2) =ixs(7,i)
120 nc(i,3) =ixs(8,i)
121 nc(i,4) =ixs(9,i)
122 nc(i,5) =ixs(2,i)
123 nc(i,6) =ixs(3,i)
124 nc(i,7) =ixs(4,i)
125 nc(i,8) =ixs(5,i)
126 nc(i,9) =ixs20(9,i)
127 nc(i,10)=ixs20(10,i)
128 nc(i,11)=ixs20(11,i)
129 nc(i,12)=ixs20(12,i)
130 nc(i,17)=ixs20(1,i)
131 nc(i,18)=ixs20(2,i)
132 nc(i,19)=ixs20(3,i)
133 nc(i,20)=ixs20(4,i)
134 ixs(2,i) = nc(i,1)
135 ixs(3,i) = nc(i,2)
136 ixs(4,i) = nc(i,3)
137 ixs(5,i) = nc(i,4)
138 ixs(6,i) = nc(i,5)
139 ixs(7,i) = nc(i,6)
140 ixs(8,i) = nc(i,7)
141 ixs(9,i) = nc(i,8)
142 ixs20(1,i) = nc(i,9)
143 ixs20(2,i) = nc(i,10)
144 ixs20(3,i) = nc(i,11)
145 ixs20(4,i) = nc(i,12)
146 ixs20(5,i) = nc(i,13)
147 ixs20(6,i) = nc(i,14)
148 ixs20(7,i) = nc(i,15)
149 ixs20(8,i) = nc(i,16)
150 ixs20(9,i) = nc(i,17)
151 ixs20(10,i) = nc(i,18)
152 ixs20(11,i) = nc(i,19)
153 ixs20(12,i) = nc(i,20)
154 ENDIF
155 ENDDO
156
157
158
159
160 DO n=1,20
161 DO i=lft,llt
162 nn =
max(iun,nc(i,n))
163 xx(i,n)=x(1,nn)
164 yy(i,n)=x(2,nn)
165 zz(i,n)=x(3,nn)
166 vx(i,n)=v(1,nn)
167 vy(i,n)=v(2,nn)
168 vz(i,n)=v(3,nn)
169 ENDDO
170 ENDDO
171
172 DO i=lft,llt
173 mass(i)=zero
174 ENDDO
175
176 DO n=9,20
177 n1=iperm1(n)
178 n2=iperm2(n)
179 DO i=lft,llt
180 IF(nc(i,n)==0)THEN
181 xx(i,n) = half*(xx(i,n1)+xx(i,n2))
182 yy(i,n) = half*(yy(i,n1)+yy(i,n2))
183 zz(i,n) = half*(zz(i,n1)+zz(i,n2))
184 vx(i,n) = half*(vx(i,n1)+vx(i,n2))
185 vy(i,n) = half*(vy(i,n1)+vy(i,n2))
186 vz(i,n) = half*(vz(i,n1)+vz(i,n2))
187 ENDIF
188 ENDDO
189 ENDDO
190
191 IF (jthe < 0 .or. nintemp > 0) THEN
192 IF(nintemp > 0 ) THEN
193 DO n =1,20
194 DO i=lft,llt
195 nn =
max(iun,nc(i,n))
196 IF(temp(nn)== zero) temp(nn) = temp0(i)
197 ENDDO
198 ENDDO
199 ELSE
200 DO n =1,20
201 DO i=lft,llt
202 nn =
max(iun,nc(i,n))
203 temp(nn) = temp0(i)
204 ENDDO
205 ENDDO
206 ENDIF
207 ENDIF
208
209 RETURN
function checkvolume_8n(x, ixs)