OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_inter_type10.F File Reference
#include "implicit_f.inc"
#include "scr06_c.inc"
#include "com01_c.inc"
#include "com04_c.inc"
#include "units_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine hm_read_inter_type10 (ipari, stfac, frigap, igrnod, igrsurf, lsubmodel, unitab, titr, noint)

Function/Subroutine Documentation

◆ hm_read_inter_type10()

subroutine hm_read_inter_type10 ( integer, dimension(*) ipari,
stfac,
dimension(*) frigap,
type (group_), dimension(ngrnod), target igrnod,
type (surf_), dimension(nsurf), target igrsurf,
type (submodel_data), dimension(*), intent(in) lsubmodel,
type (unit_type_), intent(in) unitab,
character(len=nchartitle), intent(in) titr,
integer noint )

Definition at line 37 of file hm_read_inter_type10.F.

40C=======================================================================
41C M o d u l e s
42C-----------------------------------------------
43 USE unitab_mod
44 USE message_mod
45 USE groupdef_mod
46 USE elbuftag_mod
47 USE submodel_mod
49C-----------------------------------------------
50C I m p l i c i t T y p e s
51C-----------------------------------------------
52#include "implicit_f.inc"
53C-----------------------------------------------
54C C o m m o n B l o c k s
55C-----------------------------------------------
56#include "scr06_c.inc"
57#include "com01_c.inc"
58#include "com04_c.inc"
59#include "units_c.inc"
60C-----------------------------------------------
61C D u m m y A r g u m e n t s
62C-----------------------------------------------
63 INTEGER :: NOINT
64 my_real :: stfac
65 INTEGER, DIMENSION(*) :: IPARI
66 my_real, DIMENSION(*) :: frigap
67 CHARACTER(LEN=NCHARTITLE) ,INTENT(IN) :: TITR
68 TYPE (UNIT_TYPE_) ,INTENT(IN) :: UNITAB
69 TYPE (SUBMODEL_DATA), DIMENSION(*),INTENT(IN) :: LSUBMODEL
70C-----------------------------------------------
71 TYPE (GROUP_) ,TARGET ,DIMENSION(NGRNOD) :: IGRNOD
72 TYPE (SURF_) ,TARGET ,DIMENSION(NSURF) :: IGRSURF
73C-----------------------------------------------
74C L o c a l V a r i a b l e s
75C-----------------------------------------------
76 INTEGER :: NTYP,IS1,IS2,ISU1,ISU2,IDELKEEP,ILEV,IGAP,INACTI,IDEL10,MULTIMP,ITIED
77 my_real :: fric,gap,startt,stopt,visc,bumult,gapmax,fpenmax
78 INTEGER, DIMENSION(:), POINTER :: INGR2USR
79 LOGICAL :: IS_AVAILABLE
80C-----------------------------------------------
81C E x t e r n a l F u n c t i o n s
82C-----------------------------------------------
83 INTEGER NGR2USR
84C=======================================================================
85c Initializations
86c--------------------------------------------------------
87 ntyp = 10
88 igap = 0
89 ilev = 0
90 multimp = 4
91 idelkeep = 0
92 idel10 = 0
93 gapmax = infinity
94 fpenmax = zero
95 is_available = .false.
96c--------------------------------------------------------
97c Read input fields
98c--------------------------------------------------------
99card1
100 CALL hm_get_intv ('secondaryentityids' ,isu1 ,is_available, lsubmodel)
101 CALL hm_get_intv ('mainentityids' ,isu2 ,is_available, lsubmodel)
102 CALL hm_get_intv ('NodDel10' ,idel10 ,is_available, lsubmodel)
103card2
104 CALL hm_get_floatv('TYPE10_SCALE' ,stfac ,is_available, lsubmodel, unitab)
105 CALL hm_get_floatv('GAP' ,gap ,is_available, lsubmodel, unitab)
106 CALL hm_get_floatv('TSTART' ,startt ,is_available, lsubmodel, unitab)
107 CALL hm_get_floatv('TSTOP' ,stopt ,is_available, lsubmodel, unitab)
108card2
109 CALL hm_get_intv ('Itied' ,itied ,is_available, lsubmodel)
110 CALL hm_get_intv ('INACTIV' ,inacti ,is_available, lsubmodel)
111 CALL hm_get_floatv('STIFF_DC' ,visc ,is_available, lsubmodel, unitab)
112 CALL hm_get_floatv('SORT_FACT' ,bumult ,is_available, lsubmodel, unitab)
113c--------------------------------------------------------
114c Checks
115c--------------------------------------------------------
116 IF (inacti == 5) CALL ancmsg(msgid=1162,
117 . msgtype=msgerror,
118 . anmode=aninfo,
119 . i1=noint,
120 . c1=titr)
121c
122 is1 = 2 ! SECONDARY surface input by node group
123 is2 = 1 ! main surface input by surface Id
124 ingr2usr => igrnod(1:ngrnod)%ID
125 IF (isu1 /= 0) isu1 = ngr2usr(isu1,ingr2usr,ngrnod)
126 ingr2usr => igrsurf(1:nsurf)%ID
127 isu2 = ngr2usr(isu2,ingr2usr,nsurf)
128 IF (idel10 < 0) THEN
129 idelkeep=1
130 idel10 = abs(idel10)
131 END IF
132 IF (idel10 > 2.OR. n2d == 1) idel10 = 0
133c
134 fric = itied
135 IF (stfac == zero) stfac = one_fifth
136 IF (visc == zero) visc = fiveem2
137 IF (bumult == zero) bumult = bmul0
138 IF (stopt == zero) stopt = infinity
139c--------------------------------------------------------
140c Fill interface buffers
141c--------------------------------------------------------
142 frigap(1) = fric
143 frigap(2) = gap
144 frigap(3) = startt
145 frigap(4) = bumult
146 frigap(10) = zero ! only in engine for storing number of couples candidates
147 frigap(11) = stopt
148 frigap(14) = visc
149 frigap(16) = gapmax
150 frigap(27) = fpenmax
151 frigap(15) = zero
152c
153 ipari(7) = ntyp
154 ipari(11) = 0
155 ipari(17) = idel10
156 ipari(13) = is1*10 + is2
157 ipari(20) = ilev
158 ipari(21) = igap
159 ipari(22) = inacti
160 ipari(65) = 0
161 ipari(15) = noint
162 ipari(23) = multimp
163 ipari(45) = isu1
164 ipari(46) = isu2
165 ipari(61) = idelkeep
166c--------------------------------------------------------
167c Printout
168c--------------------------------------------------------
169 itied = nint(fric)
170 WRITE(iout,1510) itied,stfac,gap,startt,stopt,
171 . bumult,inacti,visc,multimp
172c
173 IF (idel10 /= 0) THEN
174 WRITE(iout,'(A,A,I5/)')
175 .' DELETION FLAG ON FAILURE OF MAIN ELEMENT',
176 .' (1:YES-ALL/2:YES-ANY) SET TO ',idel10
177 IF (idelkeep == 1) THEN
178 WRITE(iout,'(A)')
179 .' IDEL: DO NOT REMOVE NON-CONNECTED NODES FROM SECONDARY SURFACE'
180 ENDIF
181 ENDIF
182 WRITE(iout,'(6X,A)')'SECONDARY SURFACE INPUT BY NODES'
183 WRITE(iout,'(6X,A)')'MAIN SURFACE INPUT BY SEGMENTS'
184
185c--------------------------------------------------------
186 1510 FORMAT(//
187 . ' TYPE 10 TIED - AUTO IMPACTING ' //,
188 . ' ITIED . . . . . . . . . . . . . . . . . . . ',i1/,
189 . ' 0: TIED DURING IMPACT - REBOUND AUTORIZED'/,
190 . ' 1: TIED AFTER IMPACT NO REBOUND AUTORIZED'/,
191 . ' STIFFNESS FACTOR. . . . . . . . . . . . . ',1pg20.13/,
192 . ' MINIMUM GAP . . . . . . . . . . . . . . . ',1pg20.13/,
193 . ' START TIME. . . . . . . . . . . . . . . . ',1pg20.13/,
194 . ' STOP TIME . . . . . . . . . . . . . . . . ',1pg20.13/,
195 . ' BUCKET FACTOR . . . . . . . . . . . . . . ',1pg20.13/,
196 . ' DE-ACTIVATION OF INITIAL PENETRATIONS . . ',i10/,
197 . ' CRITICAL DAMPING FACTOR . . . . . . . . . ',1pg20.13/,
198 . ' MEAN POSSIBLE NUMBER OF IMPACT/NODE . . . ',i5/)
199c-----------
200 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
integer, parameter nchartitle
integer function ngr2usr(iu, igr, ngr)
Definition nintrr.F:325
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)
Definition message.F:889