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