50
51
52
53
54
55
56
57
58
59
60
61 USE intbufdef_mod
64
65
66
67#include "implicit_f.inc"
68
69
70
71#include "mvsiz_p.inc"
72
73
74
75#include "com04_c.inc"
76#include "com08_c.inc"
77#include "param_c.inc"
78#include "warn_c.inc"
79#include "parit_c.inc"
80#include "task_c.inc"
81#include "impl1_c.inc"
82
83
84
85 INTEGER NELTST,ITYPTST,NSTRF(*),
86 . NISKYFI,NIN,LINDMAX
87 INTEGER IPARI(*), ICODT(*), ITAB(*),
88 . ISKY(*), ISKYI_SMS(*), NODNX_SMS(*),
89 . ICONTACT(*), ISENSINT(*),DIMFB
90 INTEGER ,INTENT(IN) :: NODADT_THERM
91
92 INTEGER NB_JLT,NB_JLT_NEW,NB_STOK_N,JTASK
93 INTEGER NUM_IMP,NS_IMP(*),NE_IMP(*),IND_IMP(*)
94
96 . x(*), a(3,*), fsav(*), v(3,*),
97 . ms(*),stifn(*),fskyi(lskyi,4),fcont(*),
98 . secfcum(7,numnod,nsect),
99 . viscn(*), fsavsub(*), fncont(3,*), ftcont(3,*),
100 . mskyi_sms(*)
101
102 DOUBLE PRECISION FBSAV6(12,6,DIMFB)
103
104 TYPE(INTBUF_STRUCT_) INTBUF_TAB
105 TYPE(H3D_DATABASE) :: H3D_DATA
106
107
108
109 INTEGER IDUM,
110 . I, J, H, NOINT, ISECIN, I_STOK, NSEG,
111 . IGAP, JLT_NEW, JLT , NFT, ITIED, IGSTI, NISUB, IADM,
112 . NB_LOC,I_STOK_LOC,DEBUT, IERROR
113 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
114 . NSVG(MVSIZ), CAND_N_N(MVSIZ),CAND_E_N(MVSIZ),
115 . CN_LOC(MVSIZ),CE_LOC(MVSIZ),
116 . INDEX2(LINDMAX),IBID,SFSAVPARIT
117 INTEGER NSMS(MVSIZ)
118
120 . startt, gap, stopt,
121 . visc, stiglo, gapmin, kmin, kmax, gapmax,
122 . rbid
123
124
126 . nx1(mvsiz), nx2(mvsiz), nx3(mvsiz), nx4(mvsiz),
127 . ny1(mvsiz), ny2(mvsiz), ny3(mvsiz), ny4(mvsiz),
128 . nz1(mvsiz), nz2(mvsiz), nz3(mvsiz), nz4(mvsiz),
129 . lb1(mvsiz), lb2(mvsiz), lb3(mvsiz), lb4(mvsiz),
130 . lc1(mvsiz), lc2(mvsiz), lc3(mvsiz), lc4(mvsiz),
131 . p1(mvsiz), p2(mvsiz), p3(mvsiz), p4(mvsiz),
132 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
133 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
134 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
135 . xi(mvsiz), yi(mvsiz), zi(mvsiz), stif(mvsiz),
136 . n1(mvsiz), n2(mvsiz), n3(mvsiz), pene(mvsiz),
137 . h1(mvsiz), h2(mvsiz), h3(mvsiz), h4(mvsiz),
138 . gapv(mvsiz),
139 . vxi(mvsiz),vyi(mvsiz),vzi(mvsiz),msi(mvsiz)
140
141 my_real,
DIMENSION(:,:,:),
ALLOCATABLE :: fsavparit
142 INTEGER :: NTY,NSN
143
144 idum = 0
145 nsn =ipari(5)
146 nty =ipari(7)
147 noint =ipari(15)
148 igap =ipari(21)
149 isecin=ipari(28)
150 igsti =ipari(34)
151 nisub =ipari(36)
152
153 stiglo=-intbuf_tab%STFAC(1)
154 startt=intbuf_tab%VARIABLES(3)
155 stopt =intbuf_tab%VARIABLES(11)
156 IF(startt>tt) RETURN
157 IF(tt>stopt) RETURN
158
159 itied =nint(intbuf_tab%VARIABLES(1))
160 gap =intbuf_tab%VARIABLES(2)
161 gapmin=intbuf_tab%VARIABLES(13)
162 visc =intbuf_tab%VARIABLES(14)
163 gapmax=intbuf_tab%VARIABLES(16)
164 kmin =intbuf_tab%VARIABLES(17)
165 kmax =intbuf_tab%VARIABLES(18)
166 iadm=ipari(44)
167
168 rbid = zero
169 ibid = 0
170 IF(nty==10)THEN
171
172 i_stok = intbuf_tab%I_STOK(1)
173 IF (impl_s==1) THEN
174 num_imp = 0
175 visc =zero
176 ENDIF
177
178
179 nb_loc = i_stok / nthread
180 IF (jtask==nthread) THEN
181 i_stok_loc = i_stok-nb_loc*(nthread-1)
182 ELSE
183 i_stok_loc = nb_loc
184 ENDIF
185 debut = (jtask-1)*nb_loc
186 i_stok = 0
187
188 DO i = debut+1, debut+i_stok_loc
189 IF(intbuf_tab%CAND_N(i)<0) THEN
190 i_stok = i_stok + 1
191 index2(i_stok) = i
192
193 intbuf_tab%CAND_N(i) = -intbuf_tab%CAND_N(i)
194 ELSEIF(itied/=0.AND.intbuf_tab%CAND_F(6*(i-1)+1)/=0.) THEN
195 i_stok = i_stok + 1
196 index2(i_stok) = i
197 ELSE
198
199 intbuf_tab%CAND_F(6*(i-1)+1) = zero
200 intbuf_tab%CAND_F(6*(i-1)+2) = zero
201 intbuf_tab%CAND_F(6*(i-1)+3) = zero
202 ENDIF
203 ENDDO
204 IF (debug(3)>=1) THEN
205 nb_jlt = nb_jlt + i_stok_loc
206 nb_stok_n = nb_stok_n + i_stok
207 ENDIF
208
209 sfsavparit = 0
210 DO i=1,nisub+1
211 IF(isensint(i)/=0) THEN
212 sfsavparit = sfsavparit + 1
213 ENDIF
214 ENDDO
215 IF (sfsavparit /= 0) THEN
216 ALLOCATE(fsavparit(nisub+1,11,i_stok),stat=ierror)
217 IF(ierror/=0) THEN
218 CALL ancmsg(msgid=19,anmode=aninfo,
219 . c1='(/INTER/TYPE10)')
221 ENDIF
222 DO j=1,i_stok
223 DO i=1,11
224 DO h=1,nisub+1
225 fsavparit(h,i,j) = zero
226 ENDDO
227 ENDDO
228 ENDDO
229 ELSE
230 ALLOCATE(fsavparit(0,0,0),stat=ierror)
231 IF(ierror/=0) THEN
232 CALL ancmsg(msgid=19,anmode=aninfo,
233 . c1='(/INTER/TYPE10)')
235 ENDIF
236 ENDIF
237
238 DO nft = 0 , i_stok - 1 , nvsiz
239 jlt =
min( nvsiz, i_stok - nft )
240
242 1 jlt,index2(nft+1),intbuf_tab%CAND_E,intbuf_tab%CAND_N,cand_e_n,
243 2 cand_n_n)
245 1 jlt ,x ,intbuf_tab%IRECTM,intbuf_tab%NSV,cand_e_n,
246 2 cand_n_n ,intbuf_tab%STFM,intbuf_tab%STFNS,x1 ,x2 ,
247 3 x3 ,x4 ,y1 ,y2 ,y3 ,
248 4 y4 ,z1 ,z2 ,z3 ,z4 ,
249 5 xi ,yi ,zi ,stif ,ix1 ,
250 6 ix2 ,ix3 ,ix4 ,nsvg ,igap ,
251 7 gap ,intbuf_tab%GAP_S,intbuf_tab%GAP_M,gapv,
252 9 ms ,vxi ,vyi ,
253 a vzi ,msi ,nsn ,v ,idum ,
254 b idum ,nty ,nin ,igsti ,kmin ,
255 c kmax ,gapmax ,gapmin ,iadm ,rbid ,
256 d rbid ,rbid ,rbid ,ibid ,rbid ,
257 e rbid ,rbid ,rbid ,ibid ,rbid ,
258 f ibid ,nodnx_sms ,nsms ,rbid ,rbid ,
259 g ibid ,ibid ,ibid ,ibid ,ibid ,
260 h ibid ,ibid ,rbid ,ibid ,rbid )
261 jlt_new = 0
263 1 jlt ,cand_n_n,cand_e_n,cn_loc,ce_loc ,
264 2 x1 ,x2 ,x3 ,x4 ,y1 ,
265 3 y2 ,y3 ,y4 ,z1 ,z2 ,
266 4 z3 ,z4 ,xi ,yi ,zi ,
267 5 nx1 ,nx2 ,nx3 ,nx4 ,ny1 ,
268 6 ny2 ,ny3 ,ny4 ,nz1 ,nz2 ,
269 7 nz3 ,nz4 ,lb1 ,lb2 ,lb3 ,
270 8 lb4 ,lc1 ,lc2 ,lc3 ,lc4 ,
271 9 p1 ,p2 ,p3 ,p4 ,ix1 ,
272 a ix2 ,ix3 ,ix4 ,nsvg ,stif ,
273 b jlt_new,gapv,intbuf_tab%CAND_F,index2(nft+1),itied,
274 c vxi ,vyi ,vzi ,msi ,nsms )
275 jlt = jlt_new
276 IF(jlt_new/=0) THEN
277 ipari(29) = 1
278 IF (debug(3)>=1)
279 . nb_jlt_new = nb_jlt_new + jlt_new
280
282 1 jlt ,a ,ms ,v ,fsav ,
283 2 intbuf_tab%CAND_F,stifn,stif ,fskyi ,isky ,
284 3 itied ,visc ,x1 ,x2 ,x3 ,
285 4 x4 ,y1 ,y2 ,y3 ,y4 ,
286 5 z1 ,z2 ,z3 ,z4 ,nsvg ,
287 6 nx1 ,nx2 ,nx3 ,nx4 ,ny1 ,
288 7 ny2 ,ny3 ,ny4 ,nz1 ,nz2 ,
289 8 nz3 ,nz4 ,lb1 ,lb2 ,lb3 ,
290 9 lb4 ,lc1 ,lc2 ,lc3 ,lc4 ,
291 a p1 ,p2 ,p3 ,p4 ,fcont ,
292 b ix1 ,ix2 ,ix3 ,ix4 ,gapv ,
293 c index2(nft+1),niskyfi ,isecin ,nstrf ,secfcum ,
294 d noint ,viscn ,vxi ,vyi ,vzi ,
295 e msi ,nin ,nisub ,intbuf_tab%LISUB,intbuf_tab%ADDSUBS,
296 f intbuf_tab%ADDSUBM,intbuf_tab%LISUBS,intbuf_tab%LISUBM,cn_loc,ce_loc,
297 g fsavsub ,fncont ,ftcont ,mskyi_sms ,iskyi_sms ,
298 h nsms ,xi ,yi ,zi ,icontact,
299 i dt2t ,neltst ,ityptst ,jtask ,isensint,
300 j fsavparit ,nft ,h3d_data,nodadt_therm)
301 ENDIF
302 IF(impl_s==1) THEN
303 DO i = 1 ,jlt_new
304 ns_imp(i+num_imp)=cn_loc(i)
305 ne_imp(i+num_imp)=ce_loc(i)
306 ind_imp(i+num_imp)=index2(i+nft)
307 ENDDO
308 num_imp=num_imp+jlt_new
309 ENDIF
310 ENDDO
311
312 IF (sfsavparit /= 0)THEN
314 . fbsav6, 12, 6, dimfb, isensint )
315 ENDIF
316 IF (ALLOCATED(fsavparit)) DEALLOCATE (fsavparit)
317
318 ENDIF
319
320 RETURN
subroutine i10dst3(jlt, cand_n, cand_e, cn_loc, ce_loc, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi, nx1, nx2, nx3, nx4, ny1, ny2, ny3, ny4, nz1, nz2, nz3, nz4, lb1, lb2, lb3, lb4, lc1, lc2, lc3, lc4, p1, p2, p3, p4, ix1, ix2, ix3, ix4, nsvg, stif, jlt_new, gapv, cand_f, index, itied, vxi, vyi, vzi, msi, nsms)
subroutine i10for3(jlt, a, ms, v, fsav, cand_f, stifn, stif, fskyi, isky, itied, visc, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, nsvg, nx1, nx2, nx3, nx4, ny1, ny2, ny3, ny4, nz1, nz2, nz3, nz4, lb1, lb2, lb3, lb4, lc1, lc2, lc3, lc4, p1, p2, p3, p4, fcont, ix1, ix2, ix3, ix4, gapv, index, niskyfi, isecin, nstrf, secfcum, noint, viscn, vxi, vyi, vzi, msi, nin, nisub, lisub, addsubs, addsubm, lisubs, lisubm, cn_loc, ce_loc, fsavsub, fncont, ftcont, mskyi_sms, iskyi_sms, nsms, xi, yi, zi, icontact, dt2t, neltst, ityptst, jtask, isensint, fsavparit, nft, h3d_data, nodadt_therm)
subroutine i7cdcor3(jlt, index, cand_e, cand_n, cand_e_n, cand_n_n)
subroutine sum_6_float_sens(f, a, b, c, jft, jlt, f6, d, e, g, isensint)
subroutine i7cor3(x, irect, nsv, cand_e, cand_n, stf, stfn, gapv, igap, gap, gap_s, gap_m, istf, gapmin, gapmax, gap_s_l, gap_m_l, drad, ix1, ix2, ix3, ix4, nsvg, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi, stif, dgapload, last)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)