40
41
42
43
44
45
46
47
48
49
50
51
55 use element_mod , only : nixs
56
57
58
59#include "implicit_f.inc"
60
61
62
63#include "mvsiz_p.inc"
64
65
66
67#include "com01_c.inc"
68#include "com04_c.inc"
69#include "com08_c.inc"
70#include "vect01_c.inc"
71#include "inter22.inc"
72#include "param_c.inc"
73
74
75
76
77
78
79
80
81 INTEGER :: IXS(NIXS,*), IALEFVM_FLG, IPM(NPROPMI,*),NEL
82 my_real :: mom(nel,3), vol(mvsiz), rho(mvsiz), iad22(*),ssp
83
84
85
86 INTEGER :: I, II, IMAT, ILAW, NIN, IB
88 LOGICAL :: debug_outp
89 INTEGER :: idbf,idbl
90
91
92
94 IF(ialefvm_flg <= 1)RETURN
95 imat = ixs(1,1+nft)
96 ilaw = ipm(2,imat)
97
98
99
100
101
102 IF(ilaw /= 11)THEN
103
104
105
106 DO i=1,nel
107 ii = i + nft
109 IF(dt1==zero)THEN
110 dmom(1:3,i) = half*dt2 * dmom(1:3,i)
111 ELSE
112 dmom(1:3,i) = dt2 * dmom(1:3,i)
113 ENDIF
114 enddo
115
116 DO i=1,nel
117 ii = i + nft
118 mom(i,1) = mom(i,1) + dmom(1,i)
119 mom(i,2) = mom(i,2) + dmom(2,i)
120 mom(i,3) = mom(i,3) + dmom(3,i)
121 enddo
122
123
124
126 debug_outp = .false.
128 do i=lft,llt
129 ii = nft + i
131 debug_outp = .true.
132 idbf = i
133 idbl
134 EXIT
135 endif
136 enddo
138 debug_outp=.true.
139 idbf = lft
140 idbl = llt
141 endif
142 if(debug_outp)then
143
144 print *, " |----alefvm_scheme.F-----|"
145 print *, " | THREAD INFORMATION |"
146 print *, " |------------------------|"
147 print *, " NCYCLE =", ncycle
148 do i=idbf,idbl
149 ii = nft + i
150 print *, " brique=", ixs(11,nft+i)
151 write(*,fmt='(A,1E26.14)') " RHO =", rho(i)
152 write(*,fmt='(A,1E26.14)') " VOL =", vol(i)
153 write(*,fmt='(A,1E26.14)') " MASS =", rho(i)*vol(i)
154 write(*,fmt='(A)') " #-- cell momentum --#"
155 write (*,fmt='(3(A,1E26.14))') " Q-X =", mom(i,1) -dmom(1,i)," +",dmom(1,i)," =",mom(i,1)
156 write (*,fmt='(3(A,1E26.14))') " Q-Y =", mom(i,2) -dmom(2,i" +"" =",mom(i,2)
157 write (*,fmt='(3(A,1E26.14))') " Q-Z =", mom(i,3) -dmom(3,i" +"" =",mom(i,3)
158 write(*,fmt='(A)') " #-- cell momentum densities--#"
159 write (*,fmt='(3(A,1E26.14))') " rho.Ux =", mom(i,1
160 write (*,fmt='(3(A,1E26.14))') " rho.Uy =", mom(i,2) / vol(i)
161 write (*,fmt='(3(A,1E26.14))') " rho.Uz =", mom(i
162 write(*,fmt='(A)') " #-- cell velocities--#"
163 write (*,fmt='(3(A,1E26.14))') " Ux =", mom(i,1)
164 write (*,fmt='(3(A,1E26.14))') " Uy =", mom(i,2) / vol(i)/rho(i)
165 write (*,fmt='(3(A,1E26.14))') " Uz =", mom(i,3) / vol(i)/rho(i)
166 print *, " "
167 enddo
168
169 endif
170 endif
171
172 ENDIF
173
174
175
177
178 DO i=1,nel
179
180 ii = i + nft
181
182
183
184
185 mom(i,1) = mom(i,1) / vol(i)
186 mom(i,2) = mom(i,2) / vol(i)
187 mom(i,3) = mom(i,3) / vol(i)
188 enddo
189
190
191 IF(int22 > 0)THEN
192
193 DO i=1,nel
194 ii = i + nft
198 enddo
199
200 nin = 1
201 DO i=1,nel
202 ii = i+nft
203 ib = nint(iad22(i))
204 IF (ib>0)THEN
206 ENDIF
207 ENDDO
208
209 ENDIF
210
211
212 DO i=1,nel
213 ii = i + nft
219 alefvm_buffer%FCELL(6,ii) = -third*(sig(i,1)+sig(i,2)+sig(i,3))
220 enddo
221
222
223
224
225
226 RETURN
subroutine alefvm_expand_mom2(ixs, mom, nel)
type(alefvm_buffer_), target alefvm_buffer
type(alefvm_param_), target alefvm_param
type(brick_entity), dimension(:,:), allocatable, target brick_list