40 1 IPARI ,STFAC ,FRIGAP ,NOINT ,IGRNOD ,
41 2 IGRSURF ,I2RUPT ,AREASL ,DEF_INTER,NPC1 ,
42 3 TITR ,UNITAB ,LSUBMODEL ,NPARI ,NPARIR ,
58#include "implicit_f.inc"
70 INTEGER,
INTENT(IN) :: NPARI,NPARIR,SNPC1
71 INTEGER,
INTENT(INOUT) :: INTHEAT
73 INTEGER (NPARI),DEF_INTER(100),NPC1(SNPC1)
75 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
77 CHARACTER(LEN=NCHARTITLE) :: TITR
79 TYPE (GROUP_) ,
TARGET,
DIMENSION(NGRNOD) :: IGRNOD
80 TYPE () ,
TARGET ,
DIMENSION(NSURF) :: IGRSURF
85 INTEGER J,IBUC, NTYP, IGSTI,IS1, IS2,PID,IPRINT,
86 . ILEV, HIERA,IDEL2,INT2DEF,INTTH,IMOD,IFILTR,IGNORE,
87 . IFUNS,IFUNN,IFUNT,NUVAR,ISYM,INTKG,IPROJ,IASSIGN,
88 . PENFLAG,IROT,OK,,ISU2,ISI1,ISI2,ISU3,ISI3
90 . startt,stopt,kthe,visc,dnmax,dtmax,scal_f,
91 . scal_sr,scal_d,
alpha,
area,f_unit,sr_unit,d_unit
92 CHARACTER(LEN=NCHARKEY) :: KEY1
94 INTEGER,
DIMENSION(:),
POINTER :: INGR2USR
95 LOGICAL IS_AVAILABLE, IS_ENCRYPTED
99 INTEGER,
EXTERNAL :: NGR2USR
130 is_encrypted = .false.
131 is_available = .false.
144 CALL hm_get_intv(
'secondaryentityids',isi1,is_available,lsubmodel)
145 CALL hm_get_intv(
'mainentityids',isi2,is_available,lsubmodel)
147 CALL hm_get_intv(
'WFLAG',ilev,is_available,lsubmodel)
148 CALL hm_get_intv(
'LEVEL',hiera,is_available,lsubmodel)
149 CALL hm_get_intv(
'Isearch',ibuc,is_available,lsubmodel)
150 CALL hm_get_intv(
'NodDel2',idel2,is_available,lsubmodel)
151 CALL hm_get_intv(
'secondarysurfids',isi3,is_available,lsubmodel)
157 CALL hm_get_floatv(
'dsearch',frigap(4),is_available,lsubmodel,unitab
165 CALL definter(key1 ,ignore ,iassign ,iprint ,ntyp ,def_inter)
168 CALL definter(key1 ,ilev ,iassign ,iprint ,ntyp ,def_inter)
171 CALL definter(key1 ,ibuc ,iassign ,iprint ,ntyp ,def_inter)
174 CALL definter(key1 ,idel2 ,iassign ,iprint ,ntyp ,def_inter)
180 ingr2usr => igrnod(1:ngrnod)%ID
181 isu1=ngr2usr(isi1,ingr2usr,ngrnod)
182 ingr2usr => igrsurf(1:nsurf)%ID
183 isu2=ngr2usr(isi2,ingr2usr,nsurf)
187 isu3=ngr2usr(isi3,ingr2usr,nsurf)
190 . anmode=aninfo_blind_1,
196 IF (ilev /= 25 .and. ilev /= 26 .and. ilev /= 27 .and. ilev /= 28)
THEN
198 . anmode=aninfo_blind_1,
199 . msgtype=msgwarning,
209 IF (isu1==0.AND.isu3 == 0)
THEN
211 . anmode=aninfo_blind_1,
220 . anmode=aninfo_blind_1,
228 IF (isu1 > 0.AND.isu3== 0)
THEN
229 IF (igrnod(isu1)%NENTITY == 0)
231 . anmode=aninfo_blind_1,
246 ipari(13) = is1*10+is2
249 IF (ilev /= 0 .AND. ilev /= 1 .AND. ilev /= 2 .AND.
250 . ilev /= 3 .and .ilev /= 4 .AND. ilev /= 5 .AND.
251 . ilev /= 10 .AND. ilev /= 11 .AND. ilev /= 12 .AND.
252 . ilev /= 20 .AND. ilev /= 21 .AND. ilev /= 22 .AND.
253 . ilev /= 25 .AND. ilev /= 26 .AND. ilev /= 27 .AND.
254 . ilev /= 28 .AND. ilev /= 30)
THEN
258 . anmode=aninfo_blind_2,
265 IF (
ale%GLOBAL%ICAA == 1 .AND. ilev == 0) ilev=4
266 IF (ilev == 5) ilev=0
269 IF ((ilev/=0 .AND. ilev/=1 .AND. ilev/=5 .AND. ilev/=25 .AND. ilev/=26 .AND. ilev/=27 .AND. ilev/=28)) idel2 = 0
270 IF (n2d == 1) idel2 = 0
273 IF ((n2d > 0).AND.(ilev/=0))
THEN
275 . anmode=aninfo_blind_1,
286 IF (ilev == 25 .or. ilev == 26 .or. ilev == 27 .or. ilev == 28) hiera = 0
290 nhin2=
max(nhin2,hiera)
301 IF (ilev == 25 .or. ilev == 26 .or. ilev == 27 .or. ilev == 28)
THEN
308 CALL hm_get_intv(
'Istf',igsti,is_available,lsubmodel)
309 IF (.NOT. is_available) igsti = 0
316 CALL hm_get_floatv(
'STFAC',stfac,is_available,lsubmodel,unitab)
317 CALL hm_get_floatv(
'MAT_MaxVisc',visc,is_available,lsubmodel,unitab)
320 IF (stfac == zero) stfac=one
321 IF (visc == zero) visc=fiveem2
326 CALL definter(key1 ,igsti ,iassign ,iprint ,
329 IF (igsti == 0) igsti=2
343 IF (ilev==20 .OR. ilev==21 .OR. ilev==22)
THEN
348 CALL hm_get_intv(
'RUPT',imod,is_available,lsubmodel)
349 CALL hm_get_intv(
'Ifiltr',ifiltr,is_available,lsubmodel)
350 CALL hm_get_intv(
'FUNCT_ID_sr',ifuns,is_available,lsubmodel)
351 CALL hm_get_intv(
'FUNCT_ID_sn',ifunn,is_available,lsubmodel)
352 CALL hm_get_intv(
'FUNCT_ID_st',ifunt,is_available,lsubmodel)
353 CALL hm_get_intv(
'Ismstr',isym,is_available,lsubmodel)
357 CALL hm_get_floatv(
'MAX_N_DIST',dnmax,is_available,lsubmodel,unitab)
358 CALL hm_get_floatv(
'MAX_T_DIST',dtmax,is_available,lsubmodel,unitab)
359 CALL hm_get_floatv(
'FScale11',scal_f,is_available,lsubmodel,unitab)
360 CALL hm_get_floatv(
'FScale22',scal_sr,is_available,lsubmodel,unitab)
361 CALL hm_get_floatv(
'FScale33',scal_d,is_available,lsubmodel,unitab)
372 IF (imod == 0) imod = 2
373 IF (scal_f == zero) scal_f = one*f_unit
374 IF (scal_sr == zero) scal_sr = one*sr_unit
375 IF (scal_d == zero) scal_d = one*d_unit
376 IF (dnmax == zero) dnmax = ep20
377 IF (dtmax == zero) dtmax = ep20
379 IF (ifiltr == 1)
THEN
431 CALL hm_get_intv(
'I_TH',intth,is_available,lsubmodel)
432 CALL hm_get_intv(
'Iproj',iproj,is_available,lsubmodel)
436 CALL hm_get_floatv(
'Kthe',kthe,is_available,lsubmodel,unitab)
439 IF (iproj==0) iproj = 1
440 IF (intth > 0 ) intheat = 1
446 IF (stfac == zero )stfac = one_fifth
449 IF (stopt == zero) stopt = ep30
457 IF (ipari(20)==20.OR.ipari(20)==21.OR.ipari(20)==22)
THEN
463 IF (ipari(48) == npc1(j))
THEN
469 IF (ipari(49) == npc1(j))
THEN
476 IF (ipari(50) == npc1(j))
THEN
485 . anmode=aninfo_blind_1,
501 CALL definter(key1 ,ignore ,iassign ,iprint ,
505 CALL definter(key1 ,ilev ,iassign ,iprint ,
509 CALL definter(key1 ,ibuc ,iassign ,iprint ,
513 CALL definter(key1 ,idel2 ,iassign ,iprint ,
517 CALL definter(key1 ,igsti ,iassign ,iprint ,
522 IF (ilev == 20 .OR. ilev == 21 .OR. ilev == 22)
THEN
523 WRITE(iout,1502)ilev,hiera,ibuc,frigap(4),ignore
524 WRITE(iout,2502)scal_f,scal_d,scal_sr,
alpha,areasl,
525 . dnmax,dtmax,ifunn,ifunt,ifuns,imod,isym,ifiltr
526 ELSEIF (ilev == 25 .or. ilev == 26 .or. ilev == 27 .or. ilev == 28)
THEN
527 WRITE(iout,1532) ilev,hiera,ibuc,frigap(4),stfac,igsti,
529 ELSEIF (ilev /= 0)
THEN
530 WRITE(iout,1502)ipari(20),hiera,ibuc,frigap(4),ignore
532 WRITE(iout,1502)int2def,hiera,ibuc,frigap(4),ignore
534 IF (ilev/=1 .and. ilev/=30 .and. ilev/=26)
THEN
535 WRITE(iout,1533) iproj
537 WRITE(iout,
'(A,A,I5/)')
538 .
' DELETION FLAG CASE FAILURE OF MAIN ELEMENT',
541 WRITE(iout,1534) kthe
546 WRITE(iout,
'(6X,A)')
'NO SECONDARY SURFACE INPUT'
548 WRITE(iout,
'(6X,A)')
'SECONDARY SURFACE INPUT BY SEGMENTS'
550 WRITE(iout,
'(6X,A)')
'SECONDARY SURFACE INPUT BY NODES'
552 WRITE(iout,
'(6X,A)')
'SECONDARY SURFACE INPUT BY SEGMENTS'
554 WRITE(iout,
'(6X,A)')
'SECONDARY SIDE INPUT BY BRICKS'
556 WRITE(iout,
'(6X,A)')
'SECONDARY SIDE INPUT BY SOLID ELEMENTS'
559 WRITE(iout,
'(6X,A)')
'NO MAIN SURFACE INPUT'
561 WRITE(iout,
'(6X,A)')
'MAIN SURFACE INPUT BY SEGMENTS'
563 WRITE(iout,
'(6X,A)')
'MAIN SURFACE INPUT BY NODES'
565 WRITE(iout,
'(6X,A)')
'MAIN SURFACE INPUT BY SEGMENTS'
567 WRITE(iout,
'(6X,A)')
'MAIN SURFACE REFERS ',
568 .
'TO HYPER-ELLIPSOIDAL SURFACE'
570 IF(is1<0.AND.is2<0)
WRITE(iout,
'(4X,A)')
'SURFACE TO SURFACE INPUT'
573 1000
FORMAT(/1x,
' INTERFACE NUMBER :',i10,1x,a)
574 1300
FORMAT( /1x,
' INTERFACES ' /
575 . 1x,
' -------------- '// )
579 .
' TYPE==2 TIED SLIDING ' //
580 .
' FORMULATION LEVEL . . . . . . . . . . . . ',i5/,
581 .
' HIERARCHICAL SOLVING LEVEL. . . . . . . . ',i5/,
582 .
' SEARCH FORMULATION. . . . . . . . . . . . ',i5/,
583 .
' SEARCH DISTANCE . . . . . . . . . . . . . ',1pg20.13/,
584 .
' IGNORE FLAG . . . . . . . . . . . . . . . ',i5/)
586 .
' TYPE==2 TIED SLIDING ' //
587 .
' FORMULATION LEVEL . . . . . . . . . . . . ',i5/,
588 .
' HIERARCHICAL SOLVING LEVEL. . . . . . . . ',i5/,
589 .
' SEARCH FORMULATION. . . . . . . . . . . . ',i5/,
590 .
' SEARCH DISTANCE . . . . . . . . . . . . . ',1pg20.13/,
591 .
' STIFFNESS FACTOR. . . . . . . . . . . . . ',1pg20.13/,
592 .
' STIFFNESS FORMULATION . . . . . . . . . . ',i1/,
593 .
' 1 : STIFFNESS IS COMPUTED ON MAIN SEGMENT'/,
594 .
' 2,3,4,5 : STIFFNESS IS COMPUTED FROM MAIN SEGMENT'/,
595 .
' AND SECONDARY NODE'/,
596 .
' CRITICAL DAMPING FACTOR . . . . . . . . . ',1pg20.13/,
597 .
' IGNORE FLAG . . . . . . . . . . . . . . . ',i5/)
599 .
' PROJECTION FLAG . . . . . . . . . . . . . ',i1/)
601 .
' THERMAL INTERFACE . . . . . . . . . . . . . ',//
602 .
' THERMAL heat exchange coefficient .. . . . .',1pg20.13/)
603 2502
FORMAT(
' RUPTURE PARAMETERS '
604 . /10x,
'SCAL_F . . . . . . . . . . . . . . ',1pg20.13
605 . /10x,
'SCAL_DISP . . . . . . . . . . . . . ',1pg20.13
606 . /10x,
'SCAL_SR . . . . . . . . . . . . . . ',1pg20.13
607 .
'FILTERING COEFF . . . . . . . . . . ',1pg20.13
608 . /10x,
'DEFAULT SECONDARY AREA. . . . . . . . . ',1pg20.13
609 . /10x,
'DN_MAX . . . . . . . . . . . . . . ',1pg20.13
610 . /10x,
'DT_MAX . . . . . . . . . . . . . . ',1pg20.13
611 . /10x,
'IFUNN . . . . . . . . . . . . . . ',i10
612 . /10x,
'IFUNT . . . . . . . . . . . . . . ',i10
613 . /10x,
'IFUNS . . . . . . . . . . . . . . ',i10
614 . /10x,
'IMOD . . . . . . . . . . . . . . ',i10
615 . /10x,
'ISYM . . . . . . . . . . . . . . ',i10
616 . /10x,
'IFILTR . . . . . . . . . . . . . . ',i10//)
subroutine i2rupt(x, v, a, ms, in, stifn, fsav, weight, irect, nsv, msr, irtl, irupt, crst, mmass, miner, smass, siner, area, uvar, xsm0, dsm, fsm, prop, ipari, nsn, nmn, nuvar, igtyp, pid, npf, tf, itab, fncont, pdama2, isym, inorm, h3d_data, fncontp, ftcontp)
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)