39
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
60 double precision
61 . xx(mvsiz,10), yy(mvsiz,10), zz(mvsiz,10),sav(nel,30)
62
64 . x(3,*), v(3,*),
65 . vx(mvsiz,10), vy(mvsiz,10), vz(mvsiz,10),
66 . mass(mvsiz),dtelem(*),sti(*),
67 . sigg(nel,6),eintg(*),rhog(*),qg(*),temp0(*), temp(*)
68 INTEGER NC(MVSIZ,10), MXT(*), NGL(*),NGEO(*)
69 INTEGER IXS(NIXS,*),IXS10(6,*)
70
71
72
73 INTEGER I, IPERM1(10),IPERM2(10),N,N1,N2,NN,IUN
74
75 DATA iperm1/0,0,0,0,1,2,3,1,2,3/
76 DATA iperm2/0,0,0,0,2,3,1,4,4,4/
77
78
79
82
83 iun = 1
84
85 DO i=lft,llt
86 ngeo(i) =ixs(10,i)
87 ngl(i) =ixs(11,i)
88 mxt(i) =ixs(1,i)
89 nc(i,1) =ixs(2,i)
90 nc(i,2) =ixs(4,i)
91 nc(i,3) =ixs(7,i)
92 nc(i,4) =ixs(6,i)
93 IF(isrot /= 1)THEN
94 nc(i,5) =ixs10(1,i)
95 nc(i,6) =ixs10(2,i)
96 nc(i,7) =ixs10(3,i)
97 nc(i,8) =ixs10(4,i)
98 nc(i,9) =ixs10(5,i)
99 nc(i,10)=ixs10(6,i)
100 ELSE
101 nc(i,5) = 0
102 nc(i,6) = 0
103 nc(i,7) = 0
104 nc(i,8) = 0
105 nc(i,9) = 0
106 nc(i,10)= 0
107 ENDIF
108 dtelem(i)=ep30
109 sti(i)=zero
110 eintg(i)=zero
111 rhog(i)=zero
112 qg(i)=zero
113 sigg(i,1)=zero
114 sigg(i,2)=zero
115 sigg(i,3)=zero
116 sigg(i,4)=zero
117 sigg(i,5)=zero
118 sigg(i,6)=zero
120
121 nc(i,1) =ixs(2,i)
122 nc(i,2) =ixs(6,i)
123 nc(i,3) =ixs(7,i)
124 nc(i,4) =ixs(4,i)
125 ixs(2,i) = nc(i,1)
126 ixs(4,i) = nc
127 ixs(7,i) = nc(i,3)
128 ixs(6,i) = nc(i,4)
129 IF(isrot /= 1)THEN
130 nc(i,5) =ixs10(4,i)
131 nc(i,6) =ixs10(6,i)
132 nc(i,7) =ixs10(3,i)
133 nc(i,8) =ixs10(1,i)
134 nc(i,9) =ixs10(5,i)
135 nc(i,10)=ixs10(2,i)
136 ixs10(1,i) = nc(i,5)
137 ixs10(2,i) = nc(i,6)
138 ixs10(3,i) = nc(i,7)
139 ixs10(4,i) = nc(i,8)
140 ixs10(5,i) = nc(i,9)
141 ixs10(6,i) = nc(i,10)
142 ENDIF
143 ENDIF
144 ENDDO
145
146
147
148 DO n=1,10
149 DO i=lft,llt
150 nn =
max(iun,nc(i,n))
151 xx(i,n)=x(1,nn)
152 yy(i,n)=x(2,nn)
153 zz(i,n)=x(3,nn)
154 vx(i,n)=v(1,nn)
155 vy(i,n)=v(2,nn)
156 vz(i,n)=v(3,nn)
157 ENDDO
158 ENDDO
159
160 DO i=lft,llt
161 mass(i)=zero
162 ENDDO
163
164 DO n=5,10
165 n1=iperm1(n)
166 n2=iperm2(n)
167 DO i=lft,llt
168 IF(nc(i,n)==0)THEN
169 xx(i,n) = half*(xx(i,n1)+xx(i,n2))
170 yy(i,n) = half*(yy(i,n1)+yy(i,n2))
171 zz(i,n) = half*(zz(i,n1)+zz(i,n2))
172 vx(i,n) = half*(vx(i,n1)+vx(i,n2))
173 vy(i,n) = half*(vy(i,n1)+vy(i,n2))
174 vz(i,n) = half*(vz(i,n1)+vz(i,n2))
175 ENDIF
176 ENDDO
177 ENDDO
178
179
180
181 IF (jthe < 0 .or. nintemp > 0) THEN
182 IF(nintemp > 0 ) THEN
183 DO n =1,10
184 DO i=lft,llt
185 nn =
max(iun,nc(i,n))
186 IF(temp(nn)== zero) temp(nn) = temp0(i)
187 ENDDO
188 ENDDO
189 ELSE
190 DO n =1,10
191 DO i=lft,llt
192 nn =
max(iun,nc(i,n))
193 temp(nn) = temp0(i)
194 ENDDO
195 ENDDO
196 ENDIF
197 ENDIF
198
199 IF(ismstr>=10.AND.ismstr<=12)THEN
200 DO n=1,10
201 DO i=lft,llt
202 nn = nc(i,n)
203 sav(i,n) =xx(i,n)
204 sav(i,n+10)=yy(i,n)
205 sav(i,n+20)=zz(i,n)
206 ENDDO
207 END DO
208 END IF
209
210 RETURN
function checkvolume_4n(x, ixs)