OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_dt.F File Reference
#include "implicit_f.inc"
#include "com04_c.inc"
#include "com06_c.inc"
#include "scr02_c.inc"
#include "scr17_c.inc"
#include "scr18_c.inc"
#include "sphcom.inc"
#include "sms_c.inc"
#include "units_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine hm_read_dt (igrpart)

Function/Subroutine Documentation

◆ hm_read_dt()

subroutine hm_read_dt ( type(group_), dimension(ngrpart) igrpart)

Definition at line 28 of file hm_read_dt.F.

29C-----------------------------------------------
30C M o d u l e s
31C-----------------------------------------------
32 USE message_mod
33 USE groupdef_mod
34C-----------------------------------------------
35C I m p l i c i t T y p e s
36C-----------------------------------------------
37#include "implicit_f.inc"
38C-----------------------------------------------
39C C o m m o n B l o c k s
40C-----------------------------------------------
41#include "com04_c.inc"
42#include "com06_c.inc"
43#include "scr02_c.inc"
44#include "scr17_c.inc"
45#include "scr18_c.inc"
46#include "sphcom.inc"
47#include "sms_c.inc"
48#include "units_c.inc"
49C-----------------------------------------------
50C D u m m y A r g u m e n t s
51C-----------------------------------------------
52 TYPE(GROUP_) ,DIMENSION(NGRPART) :: IGRPART
53C-----------------------------------------------
54C L o c a l V a r i a b l e s
55C-----------------------------------------------
56 INTEGER I
58 . dt_crit
59C-----------------------------------------------
60C Initializations ../..
61C-----------------------------------------------
62 DO i=1,102
63 dtfac1(i) = zero
64 dtmin1(i) = zero
65 idtmin(i) = 0
66 idtgr(i) = 0
67 ENDDO
68 nodadt = 0
69C-----
70 min_aspect = zero
71 min_defv = zero
72C-----
73C /DTIX
74 dtin = zero
75 dtmx = zero
76C-----
77C /DT/AMS & /DT/INTER/AMS
78 dtfacs = zero
79 dtmins = zero
80 dtfacs_int = zero
81 dtmins_int = zero
82C-----------------------------------------------
83C Read options ../..
84C-----------------------------------------------
85C
86C-----------------------------------------------
87C Finitializations after reading
88C-----------------------------------------------
89 DO i=1,51
90 IF(dtmin1(i) == zero)dtmin1(i) = dtmin
91 IF(dtfac1(i) == zero)dtfac1(i) = dtfac
92 ENDDO
93C-----
94 IF(nodadt == 0)THEN
95 IF(idtmin(1) == 0)idtmin(1) = 1
96 IF(idtmin(2) == 0)idtmin(2) = 1
97 IF(idtmin(3) == 0)idtmin(3) = 2
98 IF(idtmin(7) == 0)idtmin(7) = 2
99 ENDIF
100C-----
101 IF(idtmins/=0)THEN
102 IF(dtmins == zero)dtmins = dtmin
103 IF(dtfacs == zero)dtfacs = dtfac
104 IF(tol_sms == zero) tol_sms = em03
105 IF(nsmspcg==0)nsmspcg=1000
106 ENDIF
107 IF(idtmins_int/=0)THEN
108 IF(dtmins_int == zero)dtmins_int = dtmin
109 IF(dtfacs_int == zero)dtfacs_int = dtfac
110 IF(tol_sms == zero) tol_sms = em03
111 IF(nsmspcg==0)nsmspcg=1000
112 ENDIF
113C-----
114C-----------------------------------------------
115C Printing
116C-----------------------------------------------
117 WRITE(iout,1000)
118 IF(idt1sh /=0) WRITE(iout,4720)
119 IF(idt1sol /= 0) WRITE(iout,4710)
120 IF(idt1sol/=0) WRITE(iout,4730)
121 IF(idt1tet10/=0) WRITE(iout,4740)
122 IF(nodadt == 0)THEN
123 IF (min_aspect+min_defv > zero) THEN
124 WRITE(iout,1115) dtfac1(1),dtmin1(1),idtmin(1),
125 + min_aspect,min_defv,
126 + dtfac1(2),dtmin1(2),idtmin(2),
127 + dtfac1(3),dtmin1(3),idtmin(3),
128 + dtfac1(4),dtmin1(4),idtmin(4),
129 + dtfac1(5),dtmin1(5),idtmin(5),
130 + dtfac1(6),dtmin1(6),idtmin(6),
131 + dtfac1(9),dtmin1(9),idtmin(9),
132 + dtfac1(10),dtmin1(10),idtmin(10)
133 ! WRITE(IOUT,4710) DTFAC1(102),DTMIN1(102)
134 ELSE
135 WRITE(iout,1105) dtfac1(1),dtmin1(1),idtmin(1),
136 + dtfac1(2),dtmin1(2),idtmin(2),
137 + dtfac1(3),dtmin1(3),idtmin(3),
138 + dtfac1(4),dtmin1(4),idtmin(4),
139 + dtfac1(5),dtmin1(5),idtmin(5),
140 + dtfac1(6),dtmin1(6),idtmin(6),
141 + dtfac1(9),dtmin1(9),idtmin(9),
142 + dtfac1(10),dtmin1(10),idtmin(10)
143 ! WRITE(IOUT,4710) DTFAC1(102),DTMIN1(102)
144 END IF
145 IF(idtmin(11) == 3 .OR. idtmin(11) == 8) THEN
146 WRITE(iout,1107)dtfac1(11),dtmin1(11),idtmin(11)
147 ENDIF
148 IF(idtmins_int/=0)THEN
149 WRITE(iout,1208) dtfacs_int,dtmins_int
150 END IF
151 IF(idtmins/=0)THEN
152 IF(idtgrs <= 0)THEN
153 WRITE(iout,1108) dtfacs,dtmins,tol_sms,
154 . nsmspcg,ncprisms,-idtgrs
155 ELSE
156 WRITE(iout,1108) dtfacs,dtmins,tol_sms,
157 . nsmspcg,ncprisms,
158 . igrpart(idtgrs)%ID
159 END IF
160 END IF
161 ELSE
162 IF(idtmin(11)==3.OR.idtmin(11) == 8)THEN
163 WRITE(iout,1106) dtfac1(11),dtmin1(11),idtmin(11)
164 END IF
165 IF (min_aspect+min_defv > zero) THEN
166 WRITE(iout,1115) dtfac1(1),dtmin1(1),idtmin(1),
167 + min_aspect,min_defv,
168 + dtfac1(2),dtmin1(2),idtmin(2),
169 + dtfac1(3),dtmin1(3),idtmin(3),
170 + dtfac1(4),dtmin1(4),idtmin(4),
171 + dtfac1(5),dtmin1(5),idtmin(5),
172 + dtfac1(6),dtmin1(6),idtmin(6),
173 + dtfac1(9),dtmin1(9),idtmin(9),
174 + dtfac1(10),dtmin1(10),idtmin(10)
175 ! WRITE(IOUT,4710) DTFAC1(102),DTMIN1(102)
176 ELSE
177 WRITE(iout,1105) dtfac1(1),dtmin1(1),idtmin(1),
178 + dtfac1(2),dtmin1(2),idtmin(2),
179 + dtfac1(3),dtmin1(3),idtmin(3),
180 + dtfac1(4),dtmin1(4),idtmin(4),
181 + dtfac1(5),dtmin1(5),idtmin(5),
182 + dtfac1(6),dtmin1(6),idtmin(6),
183 + dtfac1(9),dtmin1(9),idtmin(9),
184 + dtfac1(10),dtmin1(10),idtmin(10)
185 ! WRITE(IOUT,4710) DTFAC1(102),DTMIN1(102)
186 END IF ! (MIN_ASPECT+MIN_DEFV > ZERO) THEN
187 IF(idtmins_int/=0)THEN
188 WRITE(iout,1208) dtfacs_int,dtmins_int
189 END IF
190C
191 IF (idtmins/=0) THEN
192 IF (isms_selec < 3) THEN
193 IF(idtgrs<=0)THEN
194 WRITE(iout,1108) dtfacs,dtmins,tol_sms,
195 . nsmspcg,ncprisms,-idtgrs
196 ELSE
197 WRITE(iout,1108) dtfacs,dtmins,tol_sms,
198 . nsmspcg,ncprisms,
199 . igrpart(idtgrs)%ID
200 END IF
201 ELSE
202C-- /DT/CST_AMS >- automatic element selection
203 dt_crit = dtmins / max(em20,dtfac1(11))
204 IF(idtgrs<=0)THEN
205 WRITE(iout,2108) dtfacs,dtmins,tol_sms,
206 . nsmspcg,ncprisms,dt_crit,-idtgrs
207 ELSE
208 WRITE(iout,2108) dtfacs,dtmins,tol_sms,
209 . nsmspcg,ncprisms,dt_crit,
210 . igrpart(idtgrs)%ID
211 END IF
212 ENDIF
213 END IF
214C
215 ENDIF ! IF(NODADT == 0)THEN
216C-----
217 IF(numsph /= 0)THEN
218 IF(idtmin(51) == 3)THEN
219 WRITE(istdo,*)
220 .' ** WARNING SMALL STRAIN FORMULATION FOR SPH'
221 WRITE(iout,*)
222 .' ** WARNING SMALL STRAIN FORMULATION IS NOT AVAILABLE FOR SPH,',
223 . ' OPTION /DT/SPHCEL/CST WILL BE OMITTED.'
224 idtmin(51)=0
225 ENDIF
226 IF(nodadt == 1)THEN
227 WRITE(iout,*)
228 . 'IMPROVED TIME STEP (NODAL) COMPUTATION ON SPH PARTICLES :'
229 dtfac1(51)=dtfac1(11)
230 ENDIF
231 WRITE(iout,1151)dtfac1(51),dtmin1(51),idtmin(51)
232 ENDIF
233C-----
234 WRITE(iout,1152)dtfac1(52),dtmin1(52),idtmin(52)
235C-----------------------------------------------
236 1000 FORMAT(/,' TIME STEP CONTROL . . . . . . .. . . . . . . ',/,
237 . ' ---------------------------------------------'/)
238 1105 FORMAT(
239 . ' BRICK TIME STEP SCALE FACTOR . . . . . . . . . . ',g14.7/
240 . ' BRICK MINIMUM TIME STEP. . . . . . . . . . . . . ',g14.7/
241 . ' MIN. TIME STEP FLAG (1:STOP RUN, 2:DELETE BRICK) ',i5//
242 . ' QUAD TIME STEP SCALE FACTOR. . . . . . . . . . . ',g14.7/
243 . ' QUAD MINIMUM TIME STEP . . . . . . . . . . . . . ',g14.7/
244 . ' MIN. TIME STEP FLAG (1:STOP RUN, 2:DELETE QUAD). ',i5//
245 . ' SHELL TIME STEP SCALE FACTOR . . . . . . . . . . ',g14.7/
246 . ' SHELL MINIMUM TIME STEP. . . . . . . . . . . . . ',g14.7/
247 . ' MIN. TIME FLAG (1:STOP, 2:DELETE, 3:SMALL STRAIN)',i5//
248 . ' TRUSS TIME STEP SCALE FACTOR . . . . . . . . . . ',g14.7/
249 . ' TRUSS MINIMUM TIME STEP. . . . . . . . . . . . . ',g14.7/
250 . ' MIN. TIME FLAG (1:STOP, 2:DELETE). . . . . . . . ',i5//
251 . ' BEAM TIME STEP SCALE FACTOR. . . . . . . . . . . ',g14.7/
252 . ' BEAM MINIMUM TIME STEP . . . . . . . . . . . . . ',g14.7/
253 . ' MIN. TIME FLAG (1:STOP, 2:DELETE). . . . . . . . ',i5//
254 . ' SPRING TIME STEP SCALE FACTOR. . . . . . . . . . ',g14.7/
255 . ' SPRING MINIMUM TIME STEP . . . . . . . . . . . . ',g14.7/
256 . ' MIN. TIME FLAG (1:STOP, 2:DELETE). . . . . . . . ',i5//
257 . ' AIRBAG TIME STEP SCALE FACTOR. . . . . . . . . . ',g14.7/
258 . ' AIRBAG MINIMUM TIME STEP . . . . . . . . . . . . ',g14.7/
259 . ' MIN. TIME FLAG (1:STOP). . . . . . . . . . . . . ',i5//
260 . ' CONTACT TIME STEP SCALE FACTOR . . . . . . . . . ',g14.7/
261 . ' CONTACT MINIMUM TIME STEP. . . . . . . . . . . . ',g14.7/
262 . ' MIN. TIME FLAG(1:STOP, 2:REMOVE NODE FROM INTERF)',i5/ )
263 1106 FORMAT(
264 . ' NODAL TIME STEP SCALE FACTOR, . . . . . . . . . ',g14.7/
265 . ' NODAL MINIMUM TIME STEP. . . . . . . . . . . . . ',g14.7/
266 . ' MIN. TIME FLAG . . . . . . . . . . . . . . . . . ',i5/
267 . ' 1:STOP. . . . . . . . . . . . . . . . . . . . ',/
268 . ' 3:INCREASE MASS, ORIGINAL FORMULATION . . . . ',/
269 . ' 8:INCREASE MASS, IMPROVED FORMULATION . . . . ',//)
270 1107 FORMAT(
271 . ' CONTACT NODAL TIME STEP SCALE FACTOR . . . . . . ',g14.7/
272 . ' CONTACT NODAL MINIMUM TIME STEP. . . . . . . . . ',g14.7/
273 . ' CONTACT NODAL MIN. TIME FLAG . . . . . . . . . . ',i5/
274 . ' 3:INCREASE MASS, ORIGINAL FORMULATION . . . . ',/
275 . ' 8:INCREASE MASS, IMPROVED FORMULATION . . . . ',//)
276 1108 FORMAT(
277 . ' ADVANCED MASS SCALING IS ON . . . . . . . . . . .',/
278 . ' AMS NODAL TIME STEP SCALE FACTOR. . . . . . . . .',g14.7/
279 . ' AMS NODAL MINIMUM TIME STEP . . . . . . . . . . .',g14.7/
280 . ' AMS TOLERANCE ON CONVERGENCE. . . . . . . . . . .',g14.7/
281 . ' AMS MAXIMUM NUMBER OF ITERATIONS FOR CONVERGENCE.',i10/
282 . ' OUTPUT FREQUENCY OF INFORMATION / CONVERGENCE . .',i10/
283 . ' PART GROUP ID (=0 ALL PARTS) . . . . . . . . . . ',i10//)
284 1113 FORMAT(
285 . ' GLOBAL TIME STEP IS ON . . . . . . . . . . . . . . .',/
286 . ' GLOBAL TIME STEP SCALE FACTOR. . . . . . .. . . .',g14.7/
287 . ' GLOBAL TIME STEP TOLERANCE ON CONVERGENCE. . .. .',g14.7/
288 . ' NUMBER OF CYCLES FOR GLOBAL TIME STEP UPDATE. . .',i10//)
289 1115 FORMAT(
290 . ' BRICK TIME STEP SCALE FACTOR . . . . . . . . . . ',g14.7/
291 . ' BRICK MINIMUM TIME STEP. . . . . . . . . . . . . ',g14.7/
292 . ' MIN. TIME STEP FLAG (1:STOP RUN, 2:DELETE 3:CST )',i5//
293 . ' BRICK MINIMUM ASPECT RATIO (Tet collapse). . . . :',g14.7/
294 . ' BRICK MINIMUM VOLUME CHANGE . . . . . . . . . . .:',g14.7//
295 . ' QUAD TIME STEP SCALE FACTOR. . . . . . . . . . . ',g14.7/
296 . ' QUAD MINIMUM TIME STEP . . . . . . . . . . . . . ',g14.7/
297 . ' MIN. TIME STEP FLAG (1:STOP RUN, 2:DELETE QUAD). ',i5//
298 . ' SHELL TIME STEP SCALE FACTOR . . . . . . . . . . ',g14.7/
299 . ' SHELL MINIMUM TIME STEP. . . . . . . . . . . . . ',g14.7/
300 . ' MIN. TIME FLAG (1:STOP, 2:DELETE, 3:SMALL STRAIN)',i5//
301 . ' TRUSS TIME STEP SCALE FACTOR . . . . . . . . . . ',g14.7/
302 . ' TRUSS MINIMUM TIME STEP. . . . . . . . . . . . . ',g14.7/
303 . ' MIN. TIME FLAG (1:STOP, 2:DELETE). . . . . . . . ',i5//
304 . ' BEAM TIME STEP SCALE FACTOR. . . . . . . . . . . ',g14.7/
305 . ' BEAM MINIMUM TIME STEP . . . . . . . . . . . . . ',g14.7/
306 . ' MIN. TIME FLAG (1:STOP, 2:DELETE). . . . . . . . ',i5//
307 . ' SPRING TIME STEP SCALE FACTOR. . . . . . . . . . ',g14.7/
308 . ' SPRING MINIMUM TIME STEP . . . . . . . . . . . . ',g14.7/
309 . ' MIN. TIME FLAG (1:STOP, 2:DELETE). . . . . . . . ',i5//
310 . ' AIRBAG TIME STEP SCALE FACTOR. . . . . . . . . . ',g14.7/
311 . ' AIRBAG MINIMUM TIME STEP . . . . . . . . . . . . ',g14.7/
312 . ' MIN. TIME FLAG (1:STOP). . . . . . . . . . . . . ',i5//
313 . ' INTERFACE TYPE 7 TIME STEP SCALE FACTOR. . . . . ',g14.7/
314 . ' INTERFACE TYPE 7 MINIMUM TIME STEP . . . . . . . ',g14.7/
315 . ' MIN. TIME FLAG(1:STOP, 2:REMOVE NODE FROM INTERF)',i5/ )
316 1151 FORMAT(
317 . ' SMOOTH PARTICLES TIME STEP SCALE FACTOR. . . . . ',g14.7/
318 . ' SMOOTH PARTICLES MINIMUM TIME STEP . . . . . . . ',g14.7/
319 . ' MIN. TIME FLAG (1:STOP, 2:DELETE, 5:KILL). . . . ',i5 )
320 1152 FORMAT(
321 . ' FVMBAG TIME STEP SCALE FACTOR. . . . . . . . . . ',g14.7/
322 . ' FVMBAG MINIMUM TIME STEP . . . . . . . . . . . . ',g14.7/
323 . ' FVMBAG TIME STEP FLAG. . . . . . . . . . . . . . ',i5,/)
324 1208 FORMAT(
325 . ' AMS CONTACT TIME STEP IS ON . . . . . . . . . . . . .',/
326 . ' . . . . . .(ALL CONTACTS WILL BE CONCERNED).) . . . .',/
327 . ' AMS CONTACT TIME STEP SCALE FACTOR. . . . . . . . . .',g14.7/
328 . ' AMS CONTACT MINIMUM TIME STEP . . . . . . . . . . . .',g14.7//)
329 2108 FORMAT(
330 . ' ADVANCED MASS SCALING IS ON . . . . . . . . . . .',/
331 . ' AMS TIME STEP SCALE FACTOR. . . . . . . . . . . .',g14.7/
332 . ' AMS MINIMUM TIME STEP . . . . . . . . . . . . . .',g14.7/
333 . ' AMS TOLERANCE ON CONVERGENCE. . . . . . . . . . .',g14.7/
334 . ' AMS MAXIMUM NUMBER OF ITERATIONS FOR CONVERGENCE.',i10/
335 . ' OUTPUT FREQUENCY OF INFORMATION / CONVERGENCE . .',i10/
336 . ' AUTO ELEMENT SELECTION - TIME STEP CRITERIA . . .',g14.7/
337 . ' PART GROUP ID (=0 ALL PARTS) . . . . . . . . . . ',i10//)
338 4710 FORMAT(
339 . ' ACCURATE TIME STEP COMPUTATION FOR HEPH IS USED .',/)
340 4720 FORMAT(
341 . ' accurate time step for shells is used. . . . . . ',/)
342 4730 FORMAT(
343 . ' accurate time step for 4-node tetrahedra is used ',/)
344 4740 FORMAT(
345 . ' accurate time step for 10-node tetrahedra is used ',/)
346C-----------------------------------------------
347 RETURN
#define my_real
Definition cppsort.cpp:32
#define max(a, b)
Definition macros.h:21
for(i8=*sizetab-1;i8 >=0;i8--)