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