66
67
68
69 USE output_mod
70 USE timer_mod
72 USE intbufdef_mod
75 USE my_alloc_mod
76 USE intbuf_fric_mod
77
78
79
80#include "implicit_f.inc"
81#include "comlock.inc"
82
83
84
85#include "mvsiz_p.inc"
86
87
88
89#include "com04_c.inc"
90#include "com08_c.inc"
91#include "impl1_c.inc"
92#include "param_c.inc"
93#include "parit_c.inc"
94#include "sms_c.inc"
95#include "task_c.inc"
96#include "timeri_c.inc"
97#include "warn_c.inc"
98#include "macro.inc"
99
100
101
102 type(output_), intent(inout) :: output
103 TYPE(TIMER_), INTENT(INOUT) :: TIMERS
104 INTEGER NELTST, ITYPTST, NIN, NSTRF(*), NRTMDIM
105 INTEGER IPARI(NPARI,NINTER), ICODT(*),ICONTACT(*),
106 . ITAB(*), ISKY(*), ISKYI_SMS(*), NODNX_SMS(*),
107 . NODGLOB(*), NPC(*),INDEXCONT(*),
108 . TAGCONT(*),KINET(*),
109 . TAGNCONT(NLOADP_HYD_INTER,NUMNOD)
110 INTEGER NB_JLT,NB_JLT_NEW,NB_STOK_N,JTASK,
111 . LINDMAX, NCONT,NISKYFI
112 INTEGER NUM_IMP,NS_IMP(*),NE_IMP(*),IND_IMP(*), WEIGHT(*),
113 . ISENSINT(*),DIMFB
114 INTEGER , INTENT(IN) :: S_LOADPINTER
115 INTEGER , INTENT(IN) :: KLOADPINTER(NINTER+1)
116 INTEGER , INTENT(IN) :: LOADPINTER(S_LOADPINTER)
117 INTEGER , INTENT(IN) :: LOADP_HYD_INTER(NLOADP_HYD)
118 INTEGER , INTENT(IN) :: INTEREFRIC
119 INTEGER , INTENT(IN) :: NODADT_THERM
120
121 my_real ,
intent(in) :: theaccfact
122 my_real ,
INTENT(IN) :: dgaploadint(s_loadpinter)
124 . x(*), a(3,*), fsav(*), v(3,*),
125 . ms(*),stifn(*),fskyi(lskyi,4), fcont(3,*),
126 . secfcum(7,numnod,nsect), viscn(*),
127 . fncont(3,*), ftcont(3,*), rcontact(*), acontact(*),
128 . pcontact(*), temp(*), fthe(*), ftheskyi(lskyi), mskyi_sms(*),
129 . tf(*), qfricint(*),condn(*),condnskyi(lskyi), pskids(*), dt2t
130 DOUBLE PRECISION FBSAV6(12,6,DIMFB)
131 TYPE(INTSTAMP_DATA) INTSTAMP
132 TYPE(INTBUF_STRUCT_) INTBUF_TAB
133 TYPE(H3D_DATABASE) :: H3D_DATA
134 TYPE(INTBUF_FRIC_STRUCT_), TARGET, DIMENSION(NINTERFRIC) :: INTBUF_FRIC_TAB
135
136
137
138 INTEGER I, I_STOK, , NFT, J,
139 . IBC, NOINT, ISECIN, IBAG, IADM,
140 . IGAP, INACTI, IFQ, MFROT, IGSTI, NISUB,
141 . NB_LOC, I_STOK_LOC,DEBUT,
142 . INTTH,IFORM, MSTR, ILEV, IKTHE, IROT, H,
143 . IFORM_THE,INVN,IFTLIM, IERROR, NINSKID,INTFRIC,
144 . NSETPRTS ,NPARTFRIC,JJ,IORTHFRIC,NTY
145 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
146 . NSVG(MVSIZ),
147 . CAND_N_N(MVSIZ), CAND_E_N(MVSIZ),
148 . NSMS(MVSIZ)
149 INTEGER,DIMENSION(:),ALLOCATABLE :: INDEX2
150 INTEGER :: NSN
151
153 . startt, fric, gap, stopt,
154 . visc,stiglo,gapmin,viscf,
155 . kmin, kmax, gapmax, kthe, xthe, tint, dti ,pmaxskid
156
157
159 . lb(mvsiz), lc(mvsiz),
160 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
161 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
162 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
163 . xi(mvsiz), yi(mvsiz), zi(mvsiz), stif(mvsiz),
164 . nx(mvsiz), ny(mvsiz), nz(mvsiz), pene(mvsiz),
165 . gapv(mvsiz),vxi(mvsiz),vyi(mvsiz),vzi(mvsiz),msi(mvsiz),
166 . gap0(mvsiz), area0(mvsiz), tempi(mvsiz), phi(mvsiz),
167 . mxi(mvsiz), myi(mvsiz), mzi(mvsiz),
stri(mvsiz),
168 . asi(mvsiz), bsi(mvsiz),dist(mvsiz),
169 . xp(mvsiz), yp(mvsiz), zp(mvsiz), kt(mvsiz), c(mvsiz),
170 . penrad(mvsiz), tempm(mvsiz),efrict(mvsiz),condint(mvsiz),
171 . h1(mvsiz), h2(mvsiz), h3(mvsiz), h4(mvsiz),
172 . phi1(mvsiz),phi2(mvsiz),phi3(mvsiz),phi4(mvsiz),pratio(mvsiz),
173 . efric_l(mvsiz)
175 . rcurvi(mvsiz), anglmi(mvsiz), anglt, padm
176 INTEGER NRADM, ITRIA(MVSIZ)
178 . fni(mvsiz),
179 . fxt(mvsiz), fyt(mvsiz), fzt(mvsiz),
180 . fxn(mvsiz), fyn(mvsiz), fzn(mvsiz),
181 . vxm, vym, vzm, pmax,
182 . xg(3), rot(9), wxm, wym, wzm, frad, drad, fheat, xfric,dcond
183 INTEGER ICURV,SFSAVPARIT,IFRIC,FCOND
185 . , DIMENSION(:,:,:), ALLOCATABLE :: fsavparit
187 . fric_coefs(mvsiz,10),viscffric(mvsiz),fricc(mvsiz)
188
189 INTEGER IPARTFRICSI(MVSIZ), IPARTFRICMI(MVSIZ)
190
191 INTEGER, DIMENSION(:) ,POINTER :: TABCOUPLEPARTS_FRIC
192 INTEGER, DIMENSION(:) ,POINTER :: TABPARTS_FRIC
193 INTEGER, DIMENSION(:) ,POINTER :: ADPARTS_FRIC
194 INTEGER, DIMENSION(:) ,POINTER :: IFRICORTH
195 my_real,
DIMENSION(:) ,
POINTER :: tabcoef_fric
196
197 INTEGER,TARGET, DIMENSION(1):: TABCOUPLEPARTS_FRIC_BID
198 INTEGER,TARGET, DIMENSION(1):: TABPARTS_FRIC_BID
199 INTEGER,TARGET, DIMENSION(1):: ADPARTS_FRIC_BID
200 INTEGER,TARGET, DIMENSION(1):: IFRICORTH_BID
201 my_real,
TARGET,
DIMENSION(1):: tabcoef_fric_bid
202
203 CALL my_alloc(index2,lindmax)
204
205
206 nsn =ipari(5,nin)
207 ibc =ipari(11,nin)
208 IF(ipari(33,nin)==1) RETURN
209 noint =ipari(15,nin)
210 ilev =ipari(20,nin)
211 igap =ipari(21,nin)
212 inacti=ipari(22,nin)
213 isecin=ipari(28,nin)
214 mfrot =ipari(30,nin)
215 ifq =ipari(31,nin)
216 ibag =ipari(32,nin)
217 igsti=ipari(34,nin)
218 nisub =ipari(36,nin)
219 icurv =ipari(39,nin)
220
221 iadm =ipari(44,nin)
222 nradm=ipari(49,nin)
223 padm =intbuf_tab%VARIABLES(24)
224 anglt=intbuf_tab%VARIABLES(25)
225
226 intth = ipari(47,nin)
227 ikthe = ipari(42,nin)
228 iform_the = ipari(48,nin)
229 kthe = intbuf_tab%VARIABLES(20)
230 xthe = intbuf_tab%VARIABLES(30)
231 tint = intbuf_tab%VARIABLES(21)
232 frad = intbuf_tab%VARIABLES(31)
233 drad = intbuf_tab%VARIABLES(32)
234 fcond = ipari(53,nin)
235 dcond = intbuf_tab%VARIABLES(36)
236
237 mstr=intstamp%MSR
238
239 stiglo=-intbuf_tab%STFAC(1)
240 startt=intbuf_tab%VARIABLES(3)
241 stopt =intbuf_tab%VARIABLES(11)
242 IF(startt>tt) RETURN
243 IF(tt>stopt) RETURN
244
245 fric =intbuf_tab%VARIABLES(1)
246 gap =intbuf_tab%VARIABLES(2)
247 gapmin=intbuf_tab%VARIABLES(13)
248 visc =intbuf_tab%VARIABLES(14)
249 ifric =ipari(50,nin)
250 xfric =intbuf_tab%VARIABLES(34)
251
252 pmax =intbuf_tab%VARIABLES(15)
253
254 gapmax=intbuf_tab%VARIABLES(16)
255 kmin =intbuf_tab%VARIABLES(17)
256 kmax =intbuf_tab%VARIABLES(18)
257
258 fheat =intbuf_tab%VARIABLES(33)
259
260 invn =ipari(51,nin)
261
262 iftlim =ipari(52,nin)
263
264 vxm=intstamp%V(1)
265 vym=intstamp%V(2)
266 vzm=intstamp%V(3)
267 wxm=intstamp%VR(1)
268 wym=intstamp%VR(2)
269 wzm=intstamp%VR(3)
270 irot=intstamp%IROT
271 xg(1:3) =intstamp%XG(1:3)
272 rot(1:9)=intstamp%ROT(1:9)
273
274 ninskid = 0
275 IF(h3d_data%N_SCAL_SKID > 0) THEN
276 ninskid = h3d_data%N_SKID_INTER(nin)
277 ENDIF
278 pmaxskid=intbuf_tab%VARIABLES(35)
279
280
281 intfric=ipari(72,nin)
282 nsetprts = 0
283 npartfric = 0
284 IF(intfric /= 0) THEN
285 tabcoupleparts_fric => intbuf_fric_tab(intfric)%TABCOUPLEPARTS_FRIC
286 tabcoef_fric => intbuf_fric_tab(intfric)%TABCOEF_FRIC
287 tabparts_fric => intbuf_fric_tab(intfric)%TABPARTS_FRIC
288 adparts_fric => intbuf_fric_tab(intfric)%ADPARTS_FRIC
289 nsetprts = intbuf_fric_tab(intfric)%NSETPRTS
290 npartfric = intbuf_fric_tab(intfric)%S_TABPARTS_FRIC
291 ELSE
292 tabcoupleparts_fric => tabcoupleparts_fric_bid
293 tabparts_fric => tabparts_fric_bid
294 tabcoef_fric => tabcoef_fric_bid
295 adparts_fric => adparts_fric_bid
296 ifricorth => ifricorth_bid
297 ENDIF
298
299
300
301
302 i_stok = intbuf_tab%I_STOK(1)
303
304
305
306 nb_loc = i_stok / nthread
307 IF (jtask==nthread) THEN
308 i_stok_loc = i_stok-nb_loc*(nthread-1)
309 ELSE
310 i_stok_loc = nb_loc
311 ENDIF
312 debut = (jtask-1)*nb_loc
313
314 i_stok = 0
315
316 IF (impl_s==1) THEN
317 num_imp = 0
318 visc =zero
319 ENDIF
320
321 DO i = debut+1, debut+i_stok_loc
322 j=intbuf_tab%CAND_N(i)
323
324 IF(abs(intbuf_tab%IRTLM(1+2*(j-1)))==intbuf_tab%CAND_E(i)) THEN
325 i_stok = i_stok + 1
326 index2(i_stok) = i
327
328 ENDIF
329 ENDDO
330
331
332
333 sfsavparit = 0
334 DO i=1,nisub+1
335 IF(isensint(i)/=0) THEN
336 sfsavparit = sfsavparit + 1
337 ENDIF
338 ENDDO
339 IF (sfsavparit /= 0) THEN
340 ALLOCATE(fsavparit(nisub+1,11,i_stok),stat=ierror)
341 IF(ierror/=0) THEN
342 CALL ancmsg(msgid=19,anmode=aninfo,
343 . c1='(/INTER/TYPE21)')
345 ENDIF
346 DO j=1,i_stok
347 DO i=1,11
348 DO h=1,nisub+1
349 fsavparit(h,i,j) = zero
350 ENDDO
351 ENDDO
352 ENDDO
353 ELSE
354 ALLOCATE(fsavparit(0,0,0),stat=ierror)
355 IF(ierror/=0) THEN
356 CALL ancmsg(msgid=19,anmode=aninfo,
357 . c1='(/INTER/TYPE21)')
359 ENDIF
360 ENDIF
361
362
363 IF (debug(3)>=1) THEN
364 nb_jlt = nb_jlt + i_stok_loc
365 nb_stok_n = nb_stok_n + i_stok
366 ENDIF
367
368 DO nft = 0 , i_stok - 1 , nvsiz
369 jlt =
min( nvsiz, i_stok - nft )
370
372 1 jlt,index2(nft+1),intbuf_tab%CAND_E,intbuf_tab%CAND_N,
373 2 cand_e_n,cand_n_n)
374
376 1 jlt ,nin ,x ,intbuf_tab%IRECTM,nsn ,
377 2 intbuf_tab%NSV,cand_e_n ,cand_n_n ,intbuf_tab%STF,
378 + intbuf_tab%STFNS,
379 3 intbuf_tab%XM0,intbuf_tab%NOD_NORMAL,intbuf_tab%IRTLM,intbuf_tab%CSTS,
380 + intbuf_tab%MSR_L,
381 4 ms ,v ,xi ,yi ,zi ,
382 5 ix1 ,ix2 ,ix3 ,ix4 ,nsvg ,
383 6 igsti ,stif ,kmin ,kmax ,igap ,
384 7 gap ,intbuf_tab%GAP_S,gapv ,gapmax ,gapmin ,
385 8 nx ,ny ,nz ,pene ,vxm ,
386 9 vym ,vzm ,vxi ,vyi ,vzi ,
387 a msi ,itria ,lb ,lc ,iadm ,
388 b intbuf_tab%RCURV,intbuf_tab%ANGLM,nradm ,anglt ,rcurvi,
389 c anglmi ,fxt ,fyt ,fzt ,intbuf_tab%FTSAVX,
390 d intbuf_tab%FTSAVY,intbuf_tab%FTSAVZ ,intbuf_tab%GAP_S(1+nsn),
391 . intbuf_tab%AREAS,gap0 ,
392 e area0 ,intth ,temp ,tempi ,irot ,
393 f xg ,rot ,intbuf_tab%AS,intbuf_tab%BS,asi ,
394 g bsi ,xp ,yp ,zp ,nodnx_sms ,
395 h nsms ,mstr ,intbuf_tab%PENIS,intbuf_tab%IFPEN,ilev,
396 i x1 ,y1 ,z1 ,x2 ,y2 ,
397 j z2 ,x3 ,y3 ,z3 ,x4 ,
398 k y4 ,z4 ,drad ,penrad ,tint ,
399 l tempm ,iform_the ,h1 ,h2 ,h3 ,
400 m h4 ,dist ,itab ,noint ,intbuf_tab%VARIABLES(23),
401 n invn , intfric,intbuf_tab%IPARTFRICS,ipartfricsi,intbuf_tab%IPARTFRICM,
402 o ipartfricmi,ipari(5,nin) )
403
404
405
406
407 IF(jtask==1)
CALL startime(timers,macro_timer_fric)
408 viscf = zero
409 iorthfric = 0
410 jj = 0
411 nty = 21
413 1 intfric ,jlt ,ipartfricsi ,ipartfricmi ,adparts_fric ,
414 2 nsetprts ,tabcoupleparts_fric,npartfric,tabparts_fric,tabcoef_fric ,
415 3 fric ,viscf ,intbuf_tab%FRIC_P,fric_coefs , fricc ,
416 4 viscffric ,nty ,mfrot ,iorthfric ,ifric ,
417 5 jj , tint ,tempi ,npc ,tf ,
418 6 temp , h1 ,h2 ,h3 ,h4 ,
419 7 ix1 , ix2 ,ix3 ,ix4 ,iform )
420
421 IF(jtask==1)
CALL stoptime(timers,macro_timer_fric)
422
423 IF (imonm > 0 .AND. jtask == 1)
CALL startime(timers,20)
424
425 ipari(29,nin) = 1
426 IF (debug(3)>=1)
427 . nb_jlt_new = nb_jlt_new + jlt
428
430 1 jlt ,nin ,noint ,ibc ,icodt ,
431 2 fsav ,gap ,stiglo ,visc ,inacti ,
432 3 mfrot ,ifq ,ibag ,iadm ,ipari(39,nin) ,
433 4 stif ,gapv ,itab ,intbuf_tab%PENIS,intbuf_tab%ALPHA0,
434 5 intbuf_tab%IFPEN ,icontact ,rcontact,acontact ,pcontact,
435 6 nsvg ,x1 ,y1 ,z1 ,x2 ,
436 7 y2 ,z2 ,x3 ,y3 ,z3 ,
437 8 x4 ,y4 ,z4 ,xi ,yi ,
438 9 zi ,vxi ,vyi ,vzi ,msi ,
439 a vxm ,vym ,vzm ,nx ,ny ,
440 b nz ,pene ,fxt ,fyt ,fzt ,
441 c fxn ,fyn ,fzn ,rcurvi ,anglmi ,
442 d padm ,cand_n_n,weight ,igap ,gap0 ,
443 e area0 ,pmax ,irot ,xg ,mxi ,
444 g myi ,mzi ,
stri ,wxm ,wym ,
445 h wzm ,xp ,yp ,zp ,kt ,
446 i c ,ilev ,fni ,intth ,fheat ,
447 j efrict ,qfricint(nin),ifric ,xfric ,tempi ,
448 k tempm ,npc ,tf ,ix1 ,ix2 ,
449 l ix3 ,ix4 ,dt2t ,neltst ,ityptst ,
450 m kinet ,nisub ,isensint ,fsavparit,nft ,
451 n iftlim ,ninskid ,pratio ,pmaxskid ,interefric ,
452 o efric_l ,fricc ,fric_coefs)
453
454 IF( intth > 0 ) THEN
455 CALL i21therm(jlt ,xi ,yi ,zi ,kthe ,
456 2 tempi ,phi ,area0 ,noint ,asi ,
457 3 bsi ,gapv ,pene ,ikthe ,xthe ,
458 4 fni ,npc ,tf ,frad ,drad ,
459 5 penrad ,tempm ,fheat ,efrict,condint,
460 6 iform_the,h1 ,h2 ,h3 ,h4 ,
461 7 phi1 ,phi2 ,phi3 ,phi4 ,x1 ,
462 8 y1 ,z1 ,x2 ,y2 ,z2 ,
463 9 x3 ,y3 ,z3 ,x4 ,y4 ,
464 a z4 ,itab ,nsvg ,intbuf_tab%MSR_L,ix1 ,
465 b ix2 ,ix3 ,ix4 ,temp ,fcond ,
466 c dcond ,theaccfact)
467 ENDIF
468
469 IF(idtmins==2.OR.idtmins_int/=0)THEN
470 dti=dt2t
471 CALL i21sms2(jlt ,mstr ,nsvg ,nin ,noint ,
472 2 mskyi_sms ,iskyi_sms,nsms ,kt ,c ,
473 3 dti )
474 IF(dti<dt2t)THEN
475 dt2t = dti
476 neltst = noint
477 ityptst = 10
478 ENDIF
479 END IF
480
481 IF(idtmins_int/=0)THEN
482 stif(1:jlt)=zero
483 END IF
484
485 CALL i21ass3(output, jlt ,a ,nin ,noint ,fxn ,
486 2 fyn ,fzn ,fxt ,fyt ,fzt ,
487 3 ix1 ,ix2 ,ix3 ,ix4 ,nsvg ,
488 4 fcont ,fncont ,ftcont ,lb ,lc ,
489 5 itria ,stifn ,stif ,fskyi ,isky ,
490 6 isecin ,nstrf ,secfcum ,intbuf_tab%FTSAVX,
491 . intbuf_tab%FTSAVY,
492 7 intbuf_tab%FTSAVZ ,cand_n_n ,intstamp,weight ,
493 . intbuf_tab%MSR21,
494 8 intth ,phi ,fthe ,ftheskyi ,mxi ,
495 9 myi ,mzi ,
stri ,nodglob ,ncont ,
496 a indexcont,tagcont ,condn ,condint ,condnskyi,
497 b iform_the, phi1 ,phi2 ,phi3 ,phi4 ,
498 c h1 ,h2 ,h3 ,h4 ,niskyfi ,
499 d intbuf_tab%MSR_L ,itab ,h3d_data ,ninskid ,
500 e pratio ,h3d_data%N_SCAL_SKID,pskids ,ipari(95,nin),
501 f tagncont ,kloadpinter,loadpinter ,loadp_hyd_inter,
502 g dgaploadint,dist,gapv,s_loadpinter ,efric_l ,
503 h fheat ,efrict ,interefric ,
504 . nodadt_therm)
505
506 IF (imonm > 0 .AND. jtask == 1)
CALL stoptime(timers,20)
507
508 ENDDO
509
510
511 IF (sfsavparit /= 0)THEN
513 . fbsav6
514 ENDIF
515 IF (ALLOCATED(fsavparit)) DEALLOCATE (fsavparit
516 DEALLOCATE(index2)
517
518 RETURN
subroutine frictionparts_model_isot(intfric, jlt, ipartfricsi, ipartfricmi, adparts_fric, nset, tabcoupleparts_fric, npartfric, tabparts_fric, tabcoef_fric, fric, viscf, frot_p, fric_coefs, fricc, viscffric, nty, mfrot, iorthfric, ifric, jlt_tied, tint, tempi, npc, tf, temp, h1, h2, h3, h4, ix1, ix2, ix3, ix4, iform)
subroutine i21ass3(output, jlt, a, nin, noint, fxn, fyn, fzn, fxt, fyt, fzt, ix1, ix2, ix3, ix4, nsvg, fcont, fncont, ftcont, lb, lc, itria, stifn, stif, fskyi, isky, isecin, nstrf, secfcum, ftxsav, ftysav, ftzsav, cand_n, intstamp, weight, msr, intth, phi, fthe, ftheskyi, mxi, myi, mzi, stri, nodglob, ncont, indexcont, tagcont, condn, condint, condnskyi, iform, phi1, phi2, phi3, phi4, h1, h2, h3, h4, niskyfi, msrl, itab, h3d_data, ninskid, pratio, ninterskid, pskids, iflagloadp, tagncont, kloadpinter, loadpinter, loadp_hyd_inter, dgaploadint, dist, gapv, s_loadpinter, efric_l, fheat, efrict, interefric, nodadt_therm)
subroutine i21cor3(jlt, nin, x, irect, nsn, nsv, cand_e, cand_n, stf, stfn, xm0, nod_normal, irtlm, csts, msr, ms, v, xi, yi, zi, ix1, ix2, ix3, ix4, nsvg, igsti, stif, kmin, kmax, igap, gap, gap_s, gapv, gapmax, gapmin, nx, ny, nz, pene, vxm, vym, vzm, vxi, vyi, vzi, msi, itria, lb, lc, iadm, rcurv, anglm, nradm, anglt, rcurvi, anglmi, fxt, fyt, fzt, ftxsav, ftysav, ftzsav, gap_s0, area_s0, gap0, area0, intth, temp, tempi, irot, xg, rot, as, bs, asi, bsi, xp, yp, zp, nodnx_sms, nsms, mstr, peni, ifpen, ilev, x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4, drad, penrad, tint, tempm, iform, h1, h2, h3, h4, dist, itab, noint, depth, invn, intfric, ipartfrics, ipartfricsi, ipartfricm, ipartfricmi, nrtm)
subroutine i21for3(jlt, nin, noint, ibcc, icodt, fsav, gap, stiglo, visc, inacti, mfrot, ifq, ibag, iadm, icurv, stif, gapv, itab, peni, alpha0, ifpen, icontact, rcontact, acontact, pcontact, nsvg, x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4, xi, yi, zi, vxi, vyi, vzi, msi, vxm, vym, vzm, nx, ny, nz, pene, fxt, fyt, fzt, fxn, fyn, fzn, rcurvi, anglmi, padm, cand_n_n, weight, igap, gap0, area0, pmax, irot, xg, mxi, myi, mzi, stri, wxm, wym, wzm, xp, yp, zp, kt, c, ilev, fni, intth, fheat, efrict, qfric, ifric, xfric, tempi, tempm, npc, tf, ix1, ix2, ix3, ix4, dt2t, neltst, ityptst, kinet, nisub, isensint, fsavparit, nft, iftlim, pskidflag, pratio, pmaxskid, interefric, efric_l, fricc, fric_coefs)
subroutine i21sms2(jlt, mstr, nsvg, nin, noint, mskyi_sms, iskyi_sms, nsms, kt, c, dti)
subroutine i21therm(jlt, xi, yi, zi, kthe, tempi, phi, areas, noint, asi, bsi, gapv, pene, ifunctk, xthe, fni, npc, tf, frad, drad, penrad, tempm, fheat, efrict, condint, iform, h1, h2, h3, h4, phi1, phi2, phi3, phi4, x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4, itab, nsv, msr, ix1, ix2, ix3, ix4, temp, fcond, dcond, theaccfact)
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 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)
subroutine startime(event, itask)
subroutine stoptime(event, itask)