32
33
34
36
37
38
39#include "implicit_f.inc"
40
41
42
43#include "scr02_c.inc"
44#include "scr18_c.inc"
45
46
47
48 INTEGER :: NEL,IMAT,NDDL
50 . dt2t
51 my_real,
DIMENSION(NEL),
INTENT(IN) ::
52 . le,off,thk
53 TYPE(NLOCAL_STR_), TARGET :: NLOC_DMG
54
55
56
57 INTEGER I
59 . l2,zeta,dtnl_th,dtnl,dampfac,le_max
60
61 my_real,
PARAMETER :: cdamp = 0.7d0
62
63
64 l2 = nloc_dmg%LEN(imat)**2
65 zeta = nloc_dmg%DENS(imat)
66 le_max = nloc_dmg%LE_MAX(imat)
67
68
69
70
71 IF (nodadt == 0) THEN
72 DO i = 1,nel
73
74 IF (off(i)/=zero) THEN
75
76 dtnl = (two*(
min(le(i),le_max))*sqrt(three*zeta))/
77 . sqrt(twelve*l2 + (
min(le(i),le_max))**2)
78
79 IF (nddl>1) THEN
80 IF (nddl > 2) THEN
81 dtnl_th = (two*(
min(thk(i)/nddl,le_max))*sqrt(three*zeta))/
82 . sqrt(twelve*l2 + (
min(thk(i)/nddl,le_max))**2)
83 ELSE
84 dtnl_th = (two*(
min(thk(i),le_max))*sqrt(three*zeta))/
85 . sqrt(twelve*l2 + (
min(thk(i),le_max))**2)
86 ENDIF
87 ELSE
88 dtnl_th = ep20
89 ENDIF
90
91 dt2t =
min(dt2t,dtfac1(1)*cdamp*dtnl_th,dtfac1(1)*cdamp*dtnl)
92 ENDIF
93 ENDDO
94 ENDIF
95