38
39
40
44 use element_mod , only : nixs
45
46
47
48#include "implicit_f.inc"
49#include "mvsiz_p.inc"
50#include "comlock.inc"
51#include "inter22.inc"
52
53
54
55 INTEGER IOFF, IFLG,IXS(NIXS,NUMELS),NVAR,ITASK
56 my_real vtot(*), phi(*), flux(6,*), flu1(*), qmv(12,*), tag22(mvsiz)
57 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECT
58
59
60
61#include "com01_c.inc"
62#include "com04_c.inc"
63#include "com08_c.inc"
64#include "vect01_c.inc"
65
66
67
68 INTEGER :: I, IE, IV,J,IAD2,LGTH
69 my_real :: valvois(6,mvsiz),valel(mvsiz),vl(6,mvsiz), delta(mvsiz)
70 LOGICAL debug_outp
71
72
73
74
75
76
77
78 DO i=lft,llt
79 ie = nft+i
80 valel(i) = phi(ie)
81 ENDDO
82 DO i=lft,llt
83 ie = nft+i
84 iad2 = ale_connect%ee_connect%iad_connect(ie)
85 lgth = ale_connect%ee_connect%iad_connect(ie+1) - iad2
86 DO j=1,lgth
87
88 iv = ale_connect%ee_connect%connected(iad2 + j - 1)
89 IF(iv > 0)THEN
90 valvois(j,i) = phi(iv)
91 ELSEIF(iv == 0)THEN
92 valvois(j,i) = phi(ie)
93 ELSE
94
95
96 valvois(j,i) = phi(-iv+ioff)
97 ENDIF
98 ENDDO
99 ENDDO
100
101 DO i=lft,llt
102 vl(1,i) = valvois(1,i)*flux(1,i)
103 vl(2,i) = valvois(2,i)*flux(2,i)
104 vl(3,i) = valvois(3,i)*flux(3,i)
105 vl(4,i) = valvois(4,i)*flux(4,i)
106 vl(5,i) = valvois(5,i)*flux(5,i)
107 vl(6,i) = valvois(6,i)*flux(6,i)
108 delta(i) = half * dt1 *(-valel(i)*flu1(i) - vl(1,i)-vl(2,i)-vl(3,i)-vl(4,i)-vl(5,i)-vl(6,i))
109 ENDDO
110
113 DO i=lft,llt
115 ENDDO
116 ENDIF
117 ENDIF
118
119 IF(int22==0)THEN
120 DO i=lft,llt
121 vtot(i) = vtot(i) + delta(i)
122 ENDDO
123 ELSE
124 DO i=lft,llt
125 IF(tag22(i)==zero) vtot(i) = vtot(i) + delta(i)
126 ENDDO
127 ENDIF
128
129 IF(trimat > 0.AND.iflg == 1)THEN
130 DO i=lft,llt
131 qmv(1,i) = qmv(1,i) - vl(1,i) - valel(i)*qmv(07,i)
132 qmv(2,i) = qmv(2,i) - vl(2,i) - valel(i)*qmv(08,i)
133 qmv(3,i) = qmv(3,i) - vl(3,i) - valel(i)*qmv(09,i)
134 qmv(4,i) = qmv(4,i) - vl(4,i) - valel(i)*qmv(10,i)
135 qmv(5,i) = qmv(5,i) - vl(5,i) - valel(i)*qmv(11,i)
136 qmv(6,i) = qmv(6,i) - vl(6,i) - valel(i)*qmv(12,i)
137 ENDDO
138 ENDIF
139
140
141
142
143
144
145
146
147 debug_outp = .false.
148 if(int22>0)then
149 debug_outp=.false.
151 debug_outp=.true.
152 endif
153
155
157
158 if(itask==0)then
160 do i=lft,llt
161 if(int22>0)then;if (tag22(i)/=zero)then;cycle ;endif;endif
164 if(delta(i) == zero)cycle
165
166 print *, " brique=", ixs(11,nft+i)
167 print *,
" nvar=",
nvar
168 print *, " dval=", delta(i)
169 print *, " was:", vtot(i)-delta(i)
170 print *, " is:", vtot(i)
171 print *, " ------------------------"
172 endif
173 endif
174 enddo
175 endif
176 endif
177
179
180 if(itask==1)then
182 do i=lft,llt
183 if(int22>0)then;if (tag22(i)/=zero)then;cycle ;endif;endif
186 if(delta(i) == zero)cycle
187
188 print *, " brique=", ixs(11,nft+i)
189 print *,
" nvar=",
nvar
190 print *, " dval=", delta(i)
191 print *, " was:", vtot(i)-delta(i)
192 print *, " is:", vtot(i)
193 print *, " ------------------------"
194 endif
195 endif
196 enddo
197 endif
198 endif
199
201
202 if(itask==2)then
204 do i=lft,llt
205 if(int22>0)then;if (tag22(i)/=zero)then;cycle ;endif;endif
208 if(delta(i) == zero)cycle
209
210 print *, " brique=", ixs(11,nft+i)
211 print *,
" nvar=",
nvar
212 print *, " dval=", delta(i)
213 print *, " was:", vtot(i)-delta(i)
214 print *, " is:", vtot(i)
215 print *, " ------------------------"
216 endif
217 endif
218 enddo
219 endif
220 endif
221
223
224 if(itask==3)then
226 do i=lft,llt
227 if(int22>0)then;if (tag22(i)/=zero)then;cycle ;endif;endif
230 if(delta(i) == zero)cycle
231
232 print *, " brique=", ixs(11,nft+i)
233 print *,
" nvar=",
nvar
234 print *, " dval=", delta(i)
235 print *, " was:", vtot(i)-delta(i)
236 print *, " is:", vtot(i)
237 print *, " ------------------------"
238 endif
239 endif
240 enddo
241 endif
242 endif
243
244 endif
245 endif
246
247
248
249 RETURN
type(alefvm_buffer_), target alefvm_buffer
type(alefvm_param_), target alefvm_param
integer function nvar(text)