48
49
50
51
52
54 USE intbuf_fric_mod
58 USE sensor_mod
59 USE intbufdef_mod
62
63
64
65#include "implicit_f.inc"
66
67
68
69#include "scr17_c.inc"
70#include "scr06_c.inc"
71#include "com01_c.inc"
72#include "com04_c.inc"
73#include "units_c.inc"
74#include "scr12_c.inc"
75
76
77
78 INTEGER,INTENT(IN) :: NPARI,NPARIR,SNPC,SNPC1,NPTS
79 INTEGER NOM_OPT(LNOPT1,*), NOM_OPTFRIC(LNOPT1,*)
80 INTEGER ISU1,ISU2,NI
81 INTEGER IPARI(NPARI), DEF_INTER(100),NPC(SNPC),NPC1(SNPC1)
83 my_real frigap(nparir),fric_p(10),tf(npts)
84 CHARACTER(LEN=NCHARTITLE)::TITR
85 TYPE(INTBUF_FRIC_STRUCT_) INTBUF_FRIC_TAB(*)
86 TYPE(SUBMODEL_DATA), INTENT(IN) :: LSUBMODEL(NSUBMOD)
87 TYPE (UNIT_TYPE_),INTENT(IN) :: UNITAB
88 TYPE (SENSORS_) ,INTENT(IN) :: SENSORS
89
90 TYPE (GROUP_) ,TARGET, DIMENSION(NGRNOD) ::
91 TYPE (SURF_) ,TARGET , DIMENSION(NSURF) :: IGRSURF
92 TYPE (PARAMETERS_) ,INTENT(INOUT):: PARAMETERS
93
94
95
96 INTEGER,INTENT(IN) :: ITHERM_FE
97 INTEGER,INTENT(INOUT) :: INTHEAT
98 INTEGER I,IBC1, IBC2, IBC3, IBUC, NOINT, NTYP,INACTI,
99 . IBC1M, IBC2M, IBC3M, IGSTI, IVIS2,IS1, IS2,ILEV,
100 . IGAP,MULTIMP,MFROT,IFQ,IBAG,MODFR,ISYM,IEDGE,NOD1,
101 . IDEL25,KK,IGAP0,FLAGREMNOD,IDSENS,IDELKEEP,INTKG,
102 . IREM25I2,,INTFRIC,MULTIMPE,IASSIGN,ISHARP,
103 . ,NOTUSED,INTTH,IFORM,IKTHE,FCOND,IFRICTH,NPREF,
104 . IPSTIF
106 . fric,gap,startt,bumult,stopt,c1,c2,c3,c4,c5,c6,
alpha,
107 . gapscale,stmin,stmax,edg_angl,visc,viscf,percent_size,
108 . gapmax_s,gapmax_m,penmax,penmin,sigmaxadh,viscadhfact,
109 . viscfluid,pmax,kthe,tint,xthe,frad,drad,fheats,
110 . fheatm,dcond,xthe_unit,tpfit,stfacm,dtstif
111 CHARACTER(LEN=NCHARKEY) :: KEY1
112 CHARACTER(LEN=NCHARFIELD) ::BCFLAG
113
114 INTEGER, DIMENSION(:), POINTER :: INGR2USR
115 LOGICAL IS_AVAILABLE
116
117
118
119 INTEGER NGR2USR
120
121
122
123
124
125
126 is1=0
127 is2=0
128 ibc1=0
129 ibc2=0
130 ibc3=0
131 ibc1m=0
132 ibc2m=0
133 ibc3m=0
134 ibuc=0
135 mfrot=0
136 ifq=0
137 ibag=0
138 igsti = 0
139 ilev=0
140 idsens = 0
141 idelkeep=0
142 intfric = 0
143 nod1 = 0
144 intkg = 0
145 flagremnod = 0
146 multimp = 0
147 irem25i2 = 0
148 igap0 = 0
149 intth = 0
150 ikthe = 0
151 iform = 0
152 fcond = 0
153 ifricth = 0
154 ipstif = 0
155
156
157
158 multimpe = 0
159
160 stopt=ep30
161 inacti = 0
162 viscf = zero
163 fric = zero
164 gap = zero
165 gapscale = zero
166 startt = zero
167 visc = zero
168 xfiltr = zero
169 DO i = 1, 10
170 fric_p(i) = zero
171 ENDDO
172 c1=zero
173 c2=zero
174 c3=zero
175 c4=zero
176 c5=zero
177 c6=zero
178
179 gapscale = zero
180 percent_size = zero
181 edg_angl = zero
182 gapmax_s = zero
183 gapmax_m = zero
184 penmax = zero
185 penmin = zero
186 viscfluid = zero
187 sigmaxadh = zero
188 viscadhfact = zero
189 kthe = zero
190 xthe = zero
191 tint = zero
192 frad = zero
193 drad = zero
194 fheats= zero
195 fheatm= zero
196 dcond = zero
197 stfacm= zero
198 dtstif= zero
199
200 iassign = 1
201
202 ntyp = 25
203 ipari(15)=noint
204 ipari(7)=ntyp
205
206 ithk = 0
207 notused = 0
208 pmax = ep30
209
210 is_available = .false.
211
212
213
214
215 CALL hm_get_intv(
'secondaryentityids',isu1,is_available,lsubmodel)
216 CALL hm_get_intv(
'mainentityids',isu2,is_available,lsubmodel)
217 CALL hm_get_intv('istf
',IGSTI,IS_AVAILABLE,LSUBMODEL)
218 CALL HM_GET_INTV('ithe',INTTH,IS_AVAILABLE,LSUBMODEL)
219 CALL HM_GET_INTV('igap',IGAP,IS_AVAILABLE,LSUBMODEL)
220 CALL HM_GET_INTV('type24_idel',IDEL25,IS_AVAILABLE,LSUBMODEL)
221 CALL HM_GET_INTV('irem_i2',IREM25I2,IS_AVAILABLE,LSUBMODEL)
222 CALL HM_GET_INTV('type24_iedge',IEDGE,IS_AVAILABLE,LSUBMODEL)
223 CALL HM_GET_INTV('ipstif',IPSTIF,IS_AVAILABLE,LSUBMODEL)
224
225 CALL HM_GET_INTV('grnod_id',NOD1,IS_AVAILABLE,LSUBMODEL)
226
227 CALL HM_GET_INTV('igap0',IGAP0,IS_AVAILABLE,LSUBMODEL)
228 CALL HM_GET_INTV('ishape',ISHARP,IS_AVAILABLE,LSUBMODEL)
229
230 CALL HM_GET_INTV('deactivate_x_bc',IBC1,IS_AVAILABLE,LSUBMODEL)
231 CALL HM_GET_INTV('deactivate_y_bc',IBC2,IS_AVAILABLE,LSUBMODEL)
232 CALL HM_GET_INTV('deactivate_z_bc',IBC3,IS_AVAILABLE,LSUBMODEL)
233 CALL HM_GET_INTV('ivis2',IVIS2,IS_AVAILABLE,LSUBMODEL)
234 CALL HM_GET_INTV('inactiv',INACTI,IS_AVAILABLE,LSUBMODEL)
235 CALL HM_GET_INTV('ithick',ITHK,IS_AVAILABLE,LSUBMODEL)
236
237 CALL HM_GET_INTV('ifric',MFROT,IS_AVAILABLE,LSUBMODEL)
238 CALL HM_GET_INTV('ifiltr',IFQ,IS_AVAILABLE,LSUBMODEL)
239 CALL HM_GET_INTV('isensor',IDSENS,IS_AVAILABLE,LSUBMODEL)
240 CALL HM_GET_INTV('fric_id',INTFRIC,IS_AVAILABLE,LSUBMODEL)
241
242 IF(INTTH > 0 ) THEN
243 CALL HM_GET_INTV('iform1',IFORM,IS_AVAILABLE,LSUBMODEL)
244 CALL HM_GET_INTV('fct_id_k',IKTHE,IS_AVAILABLE,LSUBMODEL)
245 CALL HM_GET_INTV('f_cond',FCOND,IS_AVAILABLE,LSUBMODEL)
246 CALL HM_GET_INTV('fric_fun',IFRICTH,IS_AVAILABLE,LSUBMODEL)
247 ENDIF
248
249
250
251
252 CALL HM_GET_FLOATV('prmesh_size',PERCENT_SIZE,IS_AVAILABLE,LSUBMODEL,UNITAB)
253 CALL HM_GET_FLOATV('gap_scale',GAPSCALE,IS_AVAILABLE,LSUBMODEL,UNITAB)
254 CALL HM_GET_FLOATV('gap1',GAPMAX_S,IS_AVAILABLE,LSUBMODEL,UNITAB)
255 CALL HM_GET_FLOATV('gap2',GAPMAX_M,IS_AVAILABLE,LSUBMODEL,UNITAB)
256
257 CALL HM_GET_FLOATV('stmin',STMIN,IS_AVAILABLE,LSUBMODEL,UNITAB)
258 CALL HM_GET_FLOATV('stmax',STMAX,IS_AVAILABLE,LSUBMODEL,UNITAB)
259 CALL HM_GET_FLOATV('type24_edge_angle',EDG_ANGL,IS_AVAILABLE,LSUBMODEL,UNITAB)
260 CALL HM_GET_FLOATV('stfac_mdt',STFACM,IS_AVAILABLE,LSUBMODEL,UNITAB)
261
262 CALL HM_GET_FLOATV('stfac',STFAC,IS_AVAILABLE,LSUBMODEL,UNITAB)
263 CALL HM_GET_FLOATV('fric',FRIC,IS_AVAILABLE,LSUBMODEL,UNITAB)
264 CALL HM_GET_FLOATV('tstart',STARTT,IS_AVAILABLE,LSUBMODEL,UNITAB)
265 CALL HM_GET_FLOATV('tstop',STOPT,IS_AVAILABLE,LSUBMODEL,UNITAB)
266
267 CALL HM_GET_FLOATV('stiff_dc',VISC,IS_AVAILABLE,LSUBMODEL,UNITAB)
268 CALL HM_GET_FLOATV('pmax',PMAX,IS_AVAILABLE,LSUBMODEL,UNITAB)
269 CALL HM_GET_FLOATV('tpressfit',TPFIT,IS_AVAILABLE,LSUBMODEL,UNITAB)
270
271 CALL HM_GET_FLOATV('xfreq',ALPHA,IS_AVAILABLE,LSUBMODEL,UNITAB)
272 CALL HM_GET_FLOATV('dtstif',DTSTIF,IS_AVAILABLE,LSUBMODEL,UNITAB)
273
274 IF (MFROT>0) THEN
275 CALL HM_GET_FLOATV('c1',C1,IS_AVAILABLE,LSUBMODEL,UNITAB)
276 CALL HM_GET_FLOATV('c2',C2,IS_AVAILABLE,LSUBMODEL,UNITAB)
277 CALL HM_GET_FLOATV('c3',C3,IS_AVAILABLE,LSUBMODEL,UNITAB)
278 CALL HM_GET_FLOATV('c4',C4,IS_AVAILABLE,LSUBMODEL,UNITAB)
279 CALL HM_GET_FLOATV('c5',C5,IS_AVAILABLE,LSUBMODEL,UNITAB)
280 ENDIF
281 IF (MFROT>1) THEN
282 CALL HM_GET_FLOATV('c6',C6,IS_AVAILABLE,LSUBMODEL,UNITAB)
283 ENDIF
284 IF (IVIS2>0) THEN
285 CALL HM_GET_FLOATV('c1',C1,IS_AVAILABLE,LSUBMODEL,UNITAB)
286 CALL HM_GET_FLOATV('c2',C2,IS_AVAILABLE,LSUBMODEL,UNITAB)
287 CALL HM_GET_FLOATV('c3',C3,IS_AVAILABLE,LSUBMODEL,UNITAB)
288 CALL HM_GET_FLOATV('c4',C4,IS_AVAILABLE,LSUBMODEL,UNITAB)
289 CALL HM_GET_FLOATV('c5',C5,IS_AVAILABLE,LSUBMODEL,UNITAB)
290 ENDIF
291 IF(IVIS2==-1) THEN
292 INTERADHESION = 1
293 CALL HM_GET_FLOATV('viscfluid',VISCFLUID,IS_AVAILABLE,LSUBMODEL,UNITAB)
294 CALL HM_GET_FLOATV('sigmaxadh',SIGMAXADH,IS_AVAILABLE,LSUBMODEL,UNITAB)
295 CALL HM_GET_FLOATV('viscadhfact',VISCADHFACT,IS_AVAILABLE,LSUBMODEL,UNITAB)
296 ENDIF
297
298 IF(INTTH > 0 ) THEN
299 CALL HM_GET_FLOATV('kthe',KTHE,IS_AVAILABLE,LSUBMODEL,UNITAB)
300 CALL HM_GET_FLOATV('t_initial',TINT,IS_AVAILABLE,LSUBMODEL,UNITAB)
301 CALL HM_GET_FLOATV('crx',XTHE,IS_AVAILABLE,LSUBMODEL,UNITAB)
302 CALL HM_GET_FLOATV('f_rad',FRAD,IS_AVAILABLE,LSUBMODEL,UNITAB)
303 CALL HM_GET_FLOATV('d_rad',DRAD,IS_AVAILABLE,LSUBMODEL,UNITAB)
304 CALL HM_GET_FLOATV('fmax',FHEATS,IS_AVAILABLE,LSUBMODEL,UNITAB)
305 CALL HM_GET_FLOATV('heat_al',FHEATM,IS_AVAILABLE,LSUBMODEL,UNITAB)
306 CALL HM_GET_FLOATV('d_cond',DCOND,IS_AVAILABLE,LSUBMODEL,UNITAB)
307 ENDIF
308
309
310
311
312
313 IPRINT = 0
314
315 KEY1='igsti'
316 CALL DEFINTER(KEY1 ,IGSTI ,IASSIGN ,IPRINT ,
317 . NTYP ,DEF_INTER)
318
319 KEY1='igap'
320 CALL DEFINTER(KEY1 ,IGAP ,IASSIGN ,IPRINT ,
321 . NTYP ,DEF_INTER)
322
323 KEY1='irem25i2'
324 CALL DEFINTER(KEY1 ,IREM25I2,IASSIGN ,IPRINT ,
325 . NTYP ,DEF_INTER)
326
327 KEY1='iedge'
328 CALL DEFINTER(KEY1 ,IEDGE ,IASSIGN ,IPRINT ,
329 . NTYP ,DEF_INTER)
330
331 KEY1='ibag'
332 CALL DEFINTER(KEY1 ,IBAG ,IASSIGN ,IPRINT ,
333 . NTYP ,DEF_INTER)
334
335 KEY1='idel25'
336 CALL DEFINTER(KEY1 ,IDEL25 ,IASSIGN ,IPRINT ,
337 . NTYP ,DEF_INTER)
338
339 KEY1='igap0'
340 CALL DEFINTER(KEY1 ,IGAP0 ,IASSIGN ,IPRINT ,
341 . NTYP ,DEF_INTER)
342
343 KEY1='isharp'
344 CALL DEFINTER(KEY1 ,ISHARP ,IASSIGN ,IPRINT ,
345 . NTYP ,DEF_INTER)
346 KEY1='inacti'
347 CALL DEFINTER(KEY1 ,INACTI ,IASSIGN ,IPRINT ,
348 . NTYP ,DEF_INTER)
349
350 KEY1='ithk'
351 CALL DEFINTER(KEY1 ,ITHK ,IASSIGN ,IPRINT ,
352 . NTYP ,DEF_INTER)
353
354
355
356
357
358
359
360
361 IF(IGAP==2) THEN
362 FLAGREMNOD = 2
363 ENDIF
364 IF (FLAGREMNOD == 0) FLAGREMNOD = 1
365
366
367
368 IPARI(63) = FLAGREMNOD
369 IPARI(83) = IREM25I2
370
371 IF (IREM25I2 /= 1) IPARI(83)=0
372
373 IF(IGAP==2) THEN
374 IPARI(21)=1
375 ELSE
376 IPARI(21)=IGAP
377 ENDIF
378
379
380
381
382
383
384
385
386
387.AND. IF(ISU1 /= 0 ISU2 == 0)THEN
388 ILEV = 1
389.AND. ELSEIF(ISU1 /= 0 ISU2 /= 0)THEN
390 ILEV = 2
391 IF (ISU1 == ISU2) THEN
392 ILEV = 1
393 ISU2 = 0
394 CALL ANCMSG(MSGID=1022,
395 . MSGTYPE=MSGWARNING,
396 . ANMODE=ANINFO,
397 . I1=NOINT,
398 . C1=TITR)
399 END IF
400.AND..AND. ELSEIF(ISU1 == 0 ISU2 /= 0 NOD1 /= 0) THEN
401 ILEV = 3
402 ELSE
403 IF(ISU2 == 0) THEN
404 CALL ANCMSG(MSGID=119,
405 . ANMODE=ANINFO,
406 . MSGTYPE=MSGERROR,
407 . I1=NOINT,
408 . C1=TITR)
409 ELSEIF (NOD1 == 0) THEN
410 CALL ANCMSG(MSGID=1001,
411 . ANMODE=ANINFO,
412 . MSGTYPE=MSGERROR,
413 . I1=NOINT,
414 . C1=TITR)
415 ENDIF
416 IS1=0
417 IS2=0
418 END IF
419
420 ISYM = 1
421
422 SELECT CASE (ILEV)
423 CASE(1)
424 INGR2USR => IGRSURF(1:NSURF)%ID
425 ISU1=NGR2USR(ISU1,INGR2USR,NSURF)
426 ISU2=ISU1
427 IS1=-1
428 IS2=-3
429 CASE(2)
430
431 IS1 = 0
432 INGR2USR => IGRSURF(1:NSURF)%ID
433 IS1=NGR2USR(ISU1,INGR2USR,NSURF)
434 IF (IS1==0) THEN
435 CALL ANCMSG(MSGID=1000,
436 . ANMODE=ANINFO_BLIND_1,
437 . MSGTYPE=MSGERROR,
438 . I1=NOINT,
439 . C1=TITR)
440 ELSE
441 ISU1=IS1
442 END IF
443 INGR2USR => IGRSURF(1:NSURF)%ID
444 ISU2=NGR2USR(ISU2,INGR2USR,NSURF)
445 IS1=-1
446 IS2=-1
447 CASE(3)
448 INGR2USR => IGRSURF(1:NSURF)%ID
449 ISU2=NGR2USR(ISU2,INGR2USR,NSURF)
450 IS1=-2
451 IS2=-1
452 END SELECT
453 INGR2USR => IGRNOD(1:NGRNOD)%ID
454 IF(NOD1 /= 0) NOD1=NGR2USR(NOD1,INGR2USR,NGRNOD)
455
456 IPARI(13)=IS1*10+IS2
457 IPARI(45)=ISU1
458 IPARI(46)=ISU2
459
460 IPARI(26)=NOD1
461 IPARI(43)=ISYM
462 IPARI(58)=IEDGE
463 IF(IEDGE == 1000) IPARI(58)=0
464
465
466 IPARI(20)=ILEV
467.AND..OR. IF (INACTI==-1(IGSTI==0IGSTI==1000)) IGSTI = 4
468 IPARI(34)=IGSTI
469
470
471
472
473
474 IF(IGSTI>1)THEN
475 I7STIFS=1
476 IF(STMAX==ZERO)STMAX=EP30
477 ELSE
478 IF(STMAX==ZERO)STMAX=EP30
479 END IF
480
481
482
483
484 IPARI(53)=IGAP0
485
486 FRIGAP(17) = STMIN
487 FRIGAP(18) = STMAX
488
489
490.AND. IF(IEDGE /= 0 EDG_ANGL==ZERO)
491 + EDG_ANGL=HUNDRED+THIRTY+FIVE
492 FRIGAP(26) = COS((HUNDRED80-EDG_ANGL)*PI/HUNDRED80)
493
494.AND. IF(IGAP == 3 PERCENT_SIZE == ZERO) PERCENT_SIZE = FOUR*EM01
495 FRIGAP(28) = PERCENT_SIZE
496
497 IF(GAPSCALE==ZERO)GAPSCALE=ONE
498 FRIGAP(13) = GAPSCALE ! historically stored, get modified in I25STI3 (GAPMIN)
499 FRIGAP(45) = GAPSCALE
500
501
502 IF(GAPMAX_S==ZERO)GAPMAX_S=EP30
503 IF(GAPMAX_M==ZERO)GAPMAX_M=EP30
504
505 IF(PENMIN==ZERO)PENMIN=EM8
506 FRIGAP(35) = GAPMAX_S
507 FRIGAP(36) = GAPMAX_M
508 FRIGAP(37) = PENMAX
509 FRIGAP(38) = PENMIN
510
511
512
513
514
515 GAP=ZERO
516 IF (STOPT == ZERO) STOPT = EP30
517
518 FRIGAP(1)=FRIC
519 FRIGAP(2)=GAP
520 FRIGAP(3)=STARTT
521 FRIGAP(11)=STOPT
522
523
524
525
526
527.AND. IF (INACTI==-1IIMPLICIT==0) THEN
528 NPREF=10000
529 IPARI(40) = NPREF
530 ELSE
531 TPFIT=ZERO
532 END IF
533
534
535
536
537
538
539.AND. IF (IIMPLICIT>0INACTI==0) INACTI=-1
540.AND..AND. IF (INACTI/=0INACTI/=-1INACTI/=5) THEN
541 IF(INACTI>0)THEN
542 CALL ANCMSG(MSGID=1559,
543 . MSGTYPE=MSGWARNING,
544 . ANMODE=ANINFO_BLIND_1,
545 . I1=NOINT,I2=INACTI,
546 . C1=TITR)
547 INACTI=5
548 ELSE
549 CALL ANCMSG(MSGID=1558,
550 . MSGTYPE=MSGWARNING,
551 . ANMODE=ANINFO_BLIND_1,
552 . I1=NOINT,I2=INACTI,
553 . C1=TITR)
554 INACTI = 0
555 END IF
556 END IF
557 IF(STFAC==0.) THEN
558 STFAC=ONE
559 ENDIF
560 IF(IGSTI==1)STFAC=-STFAC
561
562 VISCF=ZERO
563
564
565 FRIGAP(15)=TPFIT
566
567 IF(VISC==ZERO)THEN
568 IF(IVIS2==5)THEN
569 VISC=ONE
570 ELSE
571 VISC=FIVEEM2
572 ENDIF
573 ENDIF
574 FRIGAP(14)=VISC
575
576 IF(ITHK==1) INTER_ITHKNOD=1 !defined in interface module (common_source directory)
577
578
579
580
581
582 IF(IVIS2==0)IVIS2=1
583 IF (IDEL25 < 0) THEN
584 IDELKEEP=1
585 IDEL25=ABS(IDEL25)
586 END IF
587 IPARI(61)=IDELKEEP
588 IF(IDEL25>2) IDEL25 = 0
589 IPARI(17)=IDEL25
590
591.AND. IF(IGAP==3ISHARP==1) THEN
592 CALL ANCMSG(MSGID=1619,
593 . MSGTYPE=MSGWARNING,
594 . ANMODE=ANINFO_BLIND_1,
595 . I1=NOINT,I2=ISHARP,I3=IGAP,
596 . C1=TITR)
597 ISHARP=2
598 END IF
599 IPARI(84)=ISHARP
600
601 IPARI(14)=IVIS2
602 IPARI(11)=4*IBC1+2*IBC2+IBC3 + 8 *(4*IBC1M+2*IBC2M+IBC3M)
603
604 IPARI(22)=INACTI
605 IPARI(91)=ITHK
606
607
608 BUMULT=ZERO
609
610 IF(BUMULT==ZERO) THEN
611 BUMULT = BMUL0
612
613
614 IF(NUMNOD > 2500000) THEN
615 BUMULT = BMUL0*TWO
616 ELSEIF(NUMNOD > 1500000) THEN
617 BUMULT = BMUL0*THREE/TWO
618 END IF
619 END IF
620 FRIGAP(4)=BUMULT
621
622
623.OR. IF(IPSTIF >0 IGSTI==7) IPARI(97) = 1
624.AND. IF(IGSTI==7IPSTIF ==0) IPSTIF = 1
625 IPARI(98) = IPSTIF
626.AND. IF(STFACM == ZEROIPARI(97) > 0) STFACM = EM01
627 IF(IPARI(97) > 0) THEN
628 FRIGAP(48) = DTSTIF
629 PARAMETERS%ISTIF_DT = 1
630 FRIGAP(47) = STFACM
631 ELSE
632 DTSTIF = ZERO
633 STFACM = ZERO
634 ENDIF
635
636
637
638
639
640
641
642 MODFR = 2
643 IF (ALPHA==0.) IFQ = 0
644 IF (MODFR==0) MODFR = 1
645.AND. IF (MODFR==2IFQ<10) IFQ = IFQ + 10
646
647 IF (IFQ>0) THEN
648 IF (IFQ==10) XFILTR = ONE
649 IF (MOD(IFQ,10)==1) XFILTR = ALPHA
650 IF (MOD(IFQ,10)==2) XFILTR=FOUR*ATAN2(ONE,ZERO) / ALPHA
651 IF (MOD(IFQ,10)==3) XFILTR=FOUR*ATAN2(ONE,ZERO) * ALPHA
652 IF (XFILTR<ZERO) THEN
653 CALL ANCMSG(MSGID=554,
654 . MSGTYPE=MSGERROR,
655 . ANMODE=ANINFO_BLIND_1,
656 . I1=NOINT,
657 . C1=TITR,
658 . R1=ALPHA)
659.AND. ELSEIF (XFILTR>1MOD(IFQ,10)<=2) THEN
660 CALL ANCMSG(MSGID=554,
661 . MSGTYPE=MSGERROR,
662 . ANMODE=ANINFO_BLIND_1,
663 . I1=NOINT,
664 . C1=TITR,
665 . R1=ALPHA)
666 ENDIF
667 ELSE
668 XFILTR = ZERO
669 ENDIF
670
671.AND..AND. IF (IBAG/=0NVOLU==0 IALELAG == 0) THEN
672 CALL ANCMSG(MSGID=614,
673 . MSGTYPE=MSGWARNING,
674 . ANMODE=ANINFO_BLIND_2,
675 . I1=NOINT,
676 . C1=TITR)
677 IBAG=0
678 ENDIF
679 INTBAG = MAX(INTBAG,IBAG)
680 KCONTACT =MAX(KCONTACT,IBAG)
681
682
683 IPARI(30) = MFROT
684 IPARI(31) = IFQ
685 IPARI(32) = IBAG
686 IPARI(72) = INTFRIC
687 IPARI(64) = IDSENS
688
689
690
691
692 FRIC_P(1) = C1
693 FRIC_P(2) = C2
694 FRIC_P(3) = C3
695 FRIC_P(4) = C4
696 FRIC_P(5) = C5
697 FRIC_P(6) = C6
698
699
700
701
702 FRIGAP(42) = VISCFLUID
703 FRIGAP(43) = SIGMAXADH
704 FRIGAP(44) = VISCADHFACT
705
706 IPARI(12)=IBUC
707 IPARI(65) = INTKG
708
709
710 FRIGAP(10)=FLOAT(0)
711
712
713
714 MULTIMP = 4
715 IPARI(23)=MULTIMP
716
717 IF(IEDGE /= 0) MULTIMPE = 4
718 IPARI(87)=MULTIMPE ! MAIN shell edges
719 IPARI(89)=MULTIMPE ! MAIN solid edges
720
721
722
723
724
725.AND. IF(INTTH > 0KTHE == ZERO)THEN
726 IF(IKTHE /= 0)THEN
727 KTHE = ONE
728 ENDIF
729 ENDIF
730
731.AND. IF (INTTH > 0XTHE == ZERO) THEN
732 !units
733 CALL HM_GET_FLOATV_DIM('crx' ,XTHE_UNIT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
734 XTHE = ONE * XTHE_UNIT
735 ENDIF
736
737 IF(INTTH > 0 ) INTHEAT = 1
738 IPARI(47) = INTTH
739
740.AND. IF(ITHERM_FE == 0 INTTH > 0 ) THEN
741 INTHEAT = 0
742 IPARI(47) = 0
743 CALL ANCMSG(MSGID=702,
744 . MSGTYPE=MSGWARNING,
745 . ANMODE=ANINFO,
746 . I1=NOINT,
747 . C1=TITR)
748 ENDIF
749
750 IF(INTTH > 0 ) THEN
751 IF(FHEATS+FHEATM > 1) THEN
752 CALL ANCMSG(MSGID=1064,
753 . MSGTYPE=MSGWARNING,
754 . ANMODE=ANINFO,
755 . I1=NOINT,
756 . C1=TITR,
757 . R1=FHEATS,
758 . R2=FHEATM)
759 ENDIF
760 ENDIF
761
762 IF(FCOND ==0) DCOND = ZERO
763
764 IF(FRAD==ZERO ) DRAD = ZERO
765
766.AND..AND. IF(FCOND /= 0DCOND/=ZERODRAD==ZERO) THEN
767 DRAD = DCOND
768 CALL ANCMSG(MSGID=1810,
769 . MSGTYPE=MSGWARNING,
770 . ANMODE=ANINFO,
771 . I1=NOINT,
772 . C1=TITR,
773 . R1=DCOND,
774 . R2=DRAD)
775 ENDIF
776
777 IF(DCOND > DRAD) THEN
778 DCOND = DRAD
779 CALL ANCMSG(MSGID=1809,
780 . MSGTYPE=MSGWARNING,
781 . ANMODE=ANINFO,
782 . I1=NOINT,
783 . C1=TITR,
784 . R1=DCOND,
785 . R2=DRAD)
786 ENDIF
787
788.AND. IF(INTTH > 0FRIC == ZERO)THEN
789 IF(IFRICTH /= 0)THEN
790 FRIC = ONE
791 ENDIF
792 ENDIF
793
794 FRIGAP(20) = KTHE
795 FRIGAP(21 ) = FHEATS
796 FRIGAP(22 ) = TINT
797 FRIGAP(41 ) = FHEATM
798 FRIGAP(31 ) = FRAD
799 FRIGAP(32 ) = DRAD
800 IPARI(48) = IFORM
801 IPARI(92) = IKTHE
802 FRIGAP(33) = XTHE
803 IPARI(93) = FCOND
804 FRIGAP(34) = DCOND
805 IPARI(50) = IFRICTH
806
807
808
809
810
811
812 CALL INTER_DCOD_FUNCTION(NTYP,NI,IPARI,NPC1,NOM_OPT,NPC,TF)
813 CALL INTER_DCOD_SENSOR (NTYP,NI,IPARI,NOM_OPT,SENSORS)
814 CALL INTER_DCOD_FRICTION(NTYP,NI,IPARI,NOM_OPT,NOM_OPTFRIC,
815 . INTBUF_FRIC_TAB)
816
817
818
819
820
821
822
823
824 IPRINT = 1
825
826 KEY1='igsti'
827 CALL DEFINTER(KEY1 ,IGSTI ,IASSIGN ,IPRINT ,
828 . NTYP ,DEF_INTER)
829
830 KEY1='igap'
831 CALL DEFINTER(KEY1 ,IGAP ,IASSIGN ,IPRINT ,
832 . NTYP ,DEF_INTER)
833
834 KEY1='irem25i2'
835 CALL DEFINTER(KEY1 ,IREM25I2,IASSIGN ,IPRINT ,
836 . NTYP ,DEF_INTER)
837
838 KEY1='iedge'
839 CALL DEFINTER(KEY1 ,IEDGE ,IASSIGN ,IPRINT ,
840 . NTYP ,DEF_INTER)
841
842 KEY1='ibag'
843 CALL DEFINTER(KEY1 ,IBAG ,IASSIGN ,IPRINT ,
844 . NTYP ,DEF_INTER)
845
846 KEY1='idel25'
847 CALL DEFINTER(KEY1 ,IDEL25 ,IASSIGN ,IPRINT ,
848 . NTYP ,DEF_INTER)
849
850 KEY1='igap0'
851 CALL DEFINTER(KEY1 ,IGAP0 ,IASSIGN ,IPRINT ,
852 . NTYP ,DEF_INTER)
853
854 KEY1='isharp'
855 CALL DEFINTER(KEY1 ,ISHARP ,IASSIGN ,IPRINT ,
856 . NTYP ,DEF_INTER)
857
858 KEY1='inacti'
859 CALL DEFINTER(KEY1 ,INACTI ,IASSIGN ,IPRINT ,
860 . NTYP ,DEF_INTER)
861
862 KEY1='ithk'
863 CALL DEFINTER(KEY1 ,ITHK ,IASSIGN ,IPRINT ,
864 . NTYP ,DEF_INTER)
865
866
867
868
869 IF(IDSENS/=0) THEN
870 WRITE(IOUT,3526)IBC1,IBC2,IBC3,
871 . IGSTI,STFAC,ILEV,IEDGE,EDG_ANGL,
872 . STMIN,STMAX,
873 . FRIC,IGAP,GAPSCALE,GAPMAX_S,GAPMAX_M,PERCENT_SIZE,IGAP0,ISHARP,
874 . IREM25I2,IDSENS,
875 . INACTI,VISC,IPARI(14),FLAGREMNOD
876 ELSE
877 WRITE(IOUT,3527)IBC1,IBC2,IBC3,
878 . IGSTI,STFAC,ILEV,IEDGE,EDG_ANGL,
879 . STMIN,STMAX,
880 . FRIC,IGAP,GAPSCALE,GAPMAX_S,GAPMAX_M,PERCENT_SIZE,IGAP0,ISHARP,
881 . IREM25I2,STARTT,STOPT,
882 . INACTI,VISC,IPARI(14),FLAGREMNOD
883 ENDIF
884
885 IF(TPFIT > ZERO) WRITE(IOUT,5040) TPFIT
886 IF(IDEL25/=3) THEN
887 WRITE(IOUT,'(a,a,i5/)')
888 . ' deletion flag on failure of
main element
',
889 . ' (1:yes-all/2:yes-any/1000:no) : ',IDEL25
890 IF(IDELKEEP == 1)THEN
891 WRITE(IOUT,'(a)')
892 . ' idel: DO not remove non-connected nodes from secondary surface'
893 ENDIF
894 ENDIF
895
896 IF(IPARI(97) > 0) WRITE(IOUT,3500) STFACM,DTSTIF,IPSTIF
897
898 IF(INTFRIC > 0 ) THEN
899 WRITE(IOUT,5030) INTFRIC
900 ELSE
901 WRITE(IOUT,1520)MOD(IFQ,10), XFILTR
902 IF(MFROT==0)THEN
903 IF(IFRICTH ==0 ) THEN
904 WRITE(IOUT,1524) FRIC
905 ELSE
906 WRITE(IOUT,1525) IFRICTH,FRIC
907 ENDIF
908 ELSEIF(MFROT==1)THEN
909 WRITE(IOUT,1515)FRIC_P(1),FRIC_P(2),FRIC_P(3),
910 . FRIC_P(4),FRIC_P(5)
911 ELSEIF(MFROT==2)THEN
912 WRITE(IOUT,1522)FRIC,FRIC_P(1),FRIC_P(2),FRIC_P(3),
913 . FRIC_P(4),FRIC_P(5),FRIC_P(6)
914 ELSEIF(MFROT==3)THEN
915 WRITE(IOUT,1523)FRIC_P(1),FRIC_P(2),FRIC_P(3),
916 . FRIC_P(4),FRIC_P(5),FRIC_P(6)
917 ELSEIF(MFROT==4)THEN
918 WRITE(IOUT,1526) FRIC,FRIC_P(1),FRIC_P(2)
919 ENDIF
920 ENDIF
921
922 IF(IVIS2==-1) THEN
923 WRITE(IOUT,5050)VISCFLUID,SIGMAXADH,VISCADHFACT
924 ENDIF
925 IF(INTTH > 0 )THEN
926 IF(IKTHE==0)THEN
927 WRITE(IOUT,2102) KTHE,TINT,FRAD,DRAD,FHEATS,FHEATM,IFORM,FCOND,DCOND
928 ELSE
929 WRITE(IOUT,2103) IKTHE,XTHE,KTHE,TINT,FRAD,DRAD,FHEATS,FHEATM,IFORM,FCOND,DCOND
930 END IF
931 END IF
932
933
934 IF(IS1==0)THEN
935 WRITE(IOUT,'(6x,a)')'no secondary surface input'
936 ELSEIF(IS1==1)THEN
937 WRITE(IOUT,'(6x,a)')'secondary surface input by segments'
938 ELSEIF(IS1==2)THEN
939 WRITE(IOUT,'(6x,a)')'secondary surface input by nodes'
940 ELSEIF(IS1==3)THEN
941 WRITE(IOUT,'(6x,a)')'secondary surface input by segments'
942 ELSEIF(IS1==4 )THEN
943 WRITE(IOUT,'(6x,a)')'secondary side input by bricks'
944 ELSEIF(IS1==5 )THEN
945 WRITE(IOUT,'(6x,a)')'secondary side input by solid elements'
946 ENDIF
947 IF(IS2==0)THEN
948 WRITE(IOUT,'(6x,a)
')'no
main surface input
'
949 ELSEIF(IS2==1)THEN
950 WRITE(IOUT,'(6x,a)
')'main surface input by segments
'
951 ELSEIF(IS2==2)THEN
952 WRITE(IOUT,'(6x,a)
')'main surface input by nodes
'
953 ELSEIF(IS2==3)THEN
954 WRITE(IOUT,'(6x,a)
')'main surface input by segments
'
955 ELSEIF(IS2==4)THEN
956 WRITE(IOUT,'(6x,a)
')'main surface refers
',
957 . 'to hyper-ellipsoidal surface'
958 ENDIF
959
960
961 1000 FORMAT(/1X,' INTERFACE number :',I10,1X,A)
962
963 RETURN
964
965
966 1515 FORMAT(//
967 . ' friction model 1 (viscous polynomial)'/,
968 . ' mu = muo + c1 p + c2 v + c3 pv + c4 p^2 + c5 v^2'/,
969 . ' c1 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
970 . ' c2 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
971 . ' c3 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
972 . ' c4 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
973 . ' c5 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
974 . ' tangential pressure limit. . .. . . . . .',1PG20.13/)
975 1522 FORMAT(/
976 . ' friction model 2 (darmstad law) :'/,
977 . ' mu = muo+c1*exp(c2*v)*p^2+c3*exp(c4*v)*p+c5*exp(c6*v)'/,
978 . ' muo. . . . . . . . . . . . . . . . . . . ',1PG20.13/,
979 . ' c1 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
980 . ' c2 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
981 . ' c3 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
982 . ' c4 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
983 . ' c5 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
984 . ' c6 . . . . . . . . . . . . . . . . . . . ',1PG20.13/)
985 1523 FORMAT(/
986 . ' friction model 3 (renard law) :'/,
987 . ' c1 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
988 . ' c2 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
989 . ' c3 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
990 . ' c4 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
991 . ' c5 . . . . . . . . . . . . . . . . . . . ',1PG20.13/,
992 . ' c6 . . . . . . . . . . . . . . . . . . . ',1PG20.13/)
993 1524 FORMAT(/
994 . ' friction model 0 (coulomb law) :'/,
995 . ' friction coefficient . . . . . . . . . ',1PG20.13/)
996 1525 FORMAT(//
997 . ' friction model 0 (coulomb law) :'/,
998 . ' Function for friction coefficient wrt temperature
',I10/,
999 . ' ordinate scale factor on ifuntcf . . . . ',1PG20.13/)
1000 1518 FORMAT( ' friction formulation: incremental (STIFFNESS) ',
1001 . 'formulation')
1002 1519 FORMAT( ' friction formulation: total (VISCOUS) ',
1003 . 'formulation')
1004 1520 FORMAT(
1005 . ' friction filtering flag. . . . . . . . . ',I10/,
1006 . ' filtering factor . . . . . . . . . . . . ',1PG20.13)
1007 1526 FORMAT(/
1008 . ' exponential decay friction law '/
1009 . ' mu = c1+(MUo-c1)*exp(-c2*v)'/
1010 . ' static coefficient muo . . . . . . . . .
',1PG20.13/,
1011 . ' dynamic coefficient c1 . . . . . . . . . ',1PG20.13/,
1012 . ' exponential decay coefficient c2 . . . . ',1PG20.13/)
1013
1014 3526 FORMAT(//
1015 . ' type==25 muti-type impacting ' //,
1016 . ' bound. cond. deleted after impact . . . . . in x dir ',I1/,
1017 . ' secondary node (1:YES 0:NO) y dir ',I1/,
1018 . ' z dir ',I1/,
1019 . ' stiffness formulation . . . . . . . . . . . ',I5/,
1020 . ' stiffness factor. . . . . . . . . . . . . . ',1PG20.13/,
1021 . ' contact types (1:S1/S1;2:S1/S2;3:N/S . . . ',I5/,
1022 . ' EDGE FLAG . . . . . . . . . . . . . . . . . ',I5/,
1023 . ' ANGLE FOR EDGE COMPUTATION (Iedge/=0)',1PG20.13/,
1024 . ' minimum stiffness . . . . . . . . . . . . . ',1PG20.13/,
1025 . ' maximum stiffness . . . . . . . . . . . . . ',1PG20.13/,
1026 . ' friction factor . . . . . . . . . . . . . . ',1PG20.13/,
1027 . ' gap flag. . . . . . . . . . . . . . . . . . ',I5/,
1028 . ' gap scale factor. . . . . . . . . . . . . . ',1PG20.13/,
1029 . ' maximum secondary gap value . . . . . . . . ',1PG20.13/,
1030 . ' maximum
main gap value. . . . . . . . . . .
',1PG20.13/,
1031 . ' %meshsize taken into account
for '/,
1032 . ' calculation of maximum gap(IGAP = 3). . . . ',1PG20.13/,
1033 . ' zero gap
for secondary shell on free edge .
',I5/,
1034 . ' gap shape along
main free edges
',/,
1035 . ' (1:SQUARE,2:CYLINDRICAL) . . . . . . ',I5/,
1036 . ' de-activation flag
if conflict w/ type2 . .
',I10/,
1037 . ' start/stop times activated by sensor
id . .
',I10/,
1038 . ' de-activation of initial penetrations . . . ',I10/,
1039 . ' critical
damping factor . . . . . . . . . .
',1PG20.13/,
1040 . ' quadratic
damping flag. . . . . . . . . . .
',I5/,
1041 . ' flagremnode : not consider neighboring '/,
1042 . ' nodes in case of element size < gap value . ',I5/)
1043
1044 3527 FORMAT(//
1045 . ' type==25 muti-type impacting ' //,
1046 . ' BOUND. COND. DELETED AFTER IMPACT . . . . . IN X DIR ',i1/,
1047 . ' SECONDARY NODE (1:YES 0:NO) Y DIR ',i1/,
1048 . ' Z DIR ',i1/,
1049 . ' STIFFNESS FORMULATION . . . . . . . . . . . ',i5/,
1050 . ' STIFFNESS FACTOR. . . . . . . . . . . . . . ',1pg20.13/,
1051 . ' CONTACT TYPES (1:S1/S1;2:S1/S2;3:N/S . . . ',i5/,
1052 . ' EDGE FLAG . . . . . . . . . . . . . . . . . ',i5/,
1053 . ' ANGLE FOR EDGE COMPUTATION (Iedge/=0) . . . ',1pg20.13/,
1054 . ' MINIMUM STIFFNESS . . . . . . . . . . . . . ',1pg20.13/,
1055 . ' MAXIMUM STIFFNESS . . . . . . . . . . . . . ',1pg20.13/,
1056 . ' FRICTION FACTOR . . . . . . . . . . . . . . ',1pg20.13/,
1057 . ' GAP FLAG. . . . . . . . . . . . . . . . . . ',i5/,
1058 . ' GAP SCALE FACTOR. . . . . . . . . . . . . . ',1pg20.13/,
1059 . ' MAXIMUM SECONDARY GAP VALUE . . . . . . . . ',1pg20.13/,
1060 . ' MAXIMUM MAIN GAP VALUE. . . . . . . . . . . ',1pg20.13/,
1061 . ' %MESHSIZE TAKEN INTO ACCOUNT FOR '/,
1062 . ' CALCULATION OF MAXIMUM GAP(IGAP = 3). . . . ',1pg20.13/,
1063 . ' ZERO GAP FOR SECONDARY SHELL ON FREE EDGE . ',i5/,
1064 . ' GAP SHAPE ALONG MAIN FREE EDGES ',/,
1065 . ' (1:SQUARE,2:CYLINDRICAL) . . . . . . ',i5/,
1066 . ' DE-ACTIVATION FLAG IF CONFLICT W/ TYPE2 . . ',i10/,
1067 . ' START TIME. . . . . . . . . . . . . . . . . ',1pg20.13/,
1068 . ' STOP TIME . . . . . . . . . . . . . . . . . ',1pg20.13/,
1069 . ' DE-ACTIVATION OF INITIAL PENETRATIONS . . . ',i10/,
1070 . ' CRITICAL DAMPING FACTOR . . . . . . . . . . ',1pg20.13/,
1071 . ' QUADRATIC DAMPING FLAG. . . . . . . . . . . ',i5/,
1072 . ' FLAGREMNODE : NOT CONSIDER NEIGHBORING '/,
1073 . ' NODES IN CASE OF ELEMENT SIZE < GAP VALUE . ',i5/)
1074 3500 FORMAT(/
1075 . ' STIFFNESS BASED OF TIME STEP AND MASSES :'/,
1076 . ' SCALE FACTOR . . . . . . . . . . . . . . . . . ',1pg20.13/,
1077 . ' TIME STEP . . . . . . . . . . . . . . . . . . ',1pg20.13/,
1078 . ' FLAG FOR PENALTY STIFFNESS . . . . . . . . . . ',1pg20.13/)
1079
1080 5030 FORMAT(/
1081 . ' INTERFACE FRICTION MODEL. . . . . . . . . ',i10)
1082 5040 FORMAT(' PRESS-FIT DURATION TIME . . . . . . . . . ',1pg20.13/)
1083
1084 5050 FORMAT(/
1085 . ' INTERFACE ADHESION MODEL '
1086 . ' INTERFACE FLUID VISCOSITY . . . . . . . ',1pg20.13/,
1087 . ' MAXIMUM ADHESIVE FORCE PER UNIT AREA. . ',1pg20.13/,
1088 . ' TANGENTIAL VISCOUS FORCE SCALE FACTOR . ',1pg20.13/)
1089
1090 2102 FORMAT(//
1091 . ' Thermal interface ' //,
1092 . ' Thermal heat exchange coefficient . . . . .',1pg20.13/,
1093 . ' Interface temperature . . . . . . . . . . ',1pg20.13/,
1094 . ' Radiation factor . . . . . . . . . . . . . ',1pg20.13/,
1095 . ' Maximum distance for radiation computation.',1pg20.13/,
1096 . ' Frictional heat transfer on SECONDARY surface . ',1pg20.13/,
1097 . ' Frictional heat transfer on MAIN surface. ',1pg20.13/,
1098 . ' FORMULATION CHOICE : . . . . . . . . . . . ',i10,/,
1099 . ' 0 : heat transfer between SECONDARY side',/,
1100 . ' and constant temperature in interface',/,
1101 . ' 1 : heat Exchange between pieces in contact'/
1102 . ' Function for thermal heat exchange coefficient wrt distance',i10/,
1103 . ' Maximum distance for conductive heat exchange',1pg20.13)
1104 2103 FORMAT(//
1105 . ' Thermal interface ' //,
1106 . ' Function for thermal heat exchange coefficient wrt contact pressure',i10/,
1107 . ' Abscissa scale factor on IFUNTCK. . . . . ',1pg20.13/,
1108 . ' Ordinate scale factor on IFUNTCK . . . . ',1pg20.13/,
1109 . ' Interface temperature . . . . . . . . . . ',1pg20.13/,
1110 . ' Radiation factor . . . . . . . . . . . . . ',1pg20.13/,
1111 . ' Maximum distance for radiation computation.',1pg20.13/,
1112 . ' Frictional heat transfer on SECONDARY surface . ',1pg20.13/,
1113 . ' Frictional heat transfer on MAIN surface. ',1pg20.13/,
1114 . ' FORMULATION CHOICE : . . . . . . . . . . . ',i10,/,
1115 . ' 0 : heat transfer between SECONDARY side',/,
1116 . ' and constant temperature in interface',/,
1117 . ' 1 : heat Exchange between pieces in contact'/
1118 . ' Function for thermal heat exchange coefficient wrt distance',i10/,
1119 . ' Maximum distance for conductive heat exchange',1pg20.13)
subroutine damping(nodft, nodlt, v, vr, a, ar, damp, ms, in, igrnod, dim, itask, weight, tagslv_rby, wfext)
if(complex_arithmetic) id
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
for(i8=*sizetab-1;i8 >=0;i8--)
integer, parameter nchartitle
integer, parameter ncharkey
integer, parameter ncharfield
int main(int argc, char *argv[])
subroutine static(v, vr, a, ar, ms, in, igrnod, weight_md, wfext)