31 SUBROUTINE dtnodamp(ITAB ,MS ,IN ,STIFN ,STIFR ,DT2T,
32 1 WEIGHT ,IGRNOD ,DAMPR ,ISTOP ,
33 2 I_DAMP_RDOF_TAB,ICONTACT ,IXC ,X )
38 use element_mod ,
only : nixc
42#include "implicit_f.inc"
55 INTEGER ITAB(*),WEIGHT(*),ISTOP,
56 . I_DAMP_RDOF_TAB(*),ICONTACT(*),IXC(NIXC,*)
58 my_real dt2t, stifn(*), stifr(*),
59 . ms(*) ,in(*) ,dampr(nrdamp,*),x(3,*)
61 TYPE (GROUP_) ,
DIMENSION(NGRNOD) :: IGRNOD
65 INTEGER N,I,J,ISK,IGR,ND,K,L,LL
66 my_real FACTB,DAMPBR,DAMPAR,D_TSTART,D_TSTOP,DAMPT,
67 . dt2n(numnod),bb,coeff,dt_cible,eta,beta,
73 IF (dampr(20,nd)>0)
THEN
77 IF (icontact(k)==1)
THEN
81 i_damp_rdof_tab(ll) = dampr(19,nd)
93 alpha = dtmin1(11)/dtfac1(11)
95 dampa0=
max(dampr(9,nd),dampr(11,nd),dampr(13,nd))
97 dampr(11,nd)=
min(dampr(11,nd),1/
alpha)
98 dampr(13,nd)=
min(dampr(13,nd),1/
alpha)
99 dampar=
max(dampr(9,nd),dampr(11,nd),dampr(13,nd))
100 IF (dampa0/=dampar)
THEN
101 print *,
"WARNING ALPHA reduced to",1/
alpha
106 igr = nint(dampr(2,nd))
107 isk = nint(dampr(15,nd))
109 d_tstart = dampr(17,nd)
110 d_tstop = dampr(18,nd)
111 IF (tt>=d_tstart .AND. tt<=d_tstop)
THEN
112 dampar =
max(dampr(9,nd),dampr(11,nd),dampr(13,nd))
113 dampbr =
max(dampr(10,nd),dampr(12,nd),dampr(14,nd))
115 DO i=1,igrnod(igr)%NENTITY
116 n=igrnod(igr)%ENTITY(i)
117 IF(stifr(n)<=zero)
THEN
119 ELSEIF(in(n)>zero)
THEN
120 dt2n(n)=dtfac1(11)*sqrt(two*in(n)/stifr(n))
124 DO i=1,igrnod(igr)%NENTITY
125 n=igrnod(igr)%ENTITY(i)
126 dampt =
min(dt1,dt2n(n))*factb
127 beta =
min(dampbr,dampt)
129 bb = beta+half*half*
alpha*dt2n(n)*dt2n(n)
130 eta = sqrt(bb*bb + dt2n(n)*dt2n(n)) - bb
131 IF (idtmin(11)==3)
THEN
132 dt_cible = eta+0*
max(eta,dtmin1(11))
136 coeff = (one+(2*beta/dt_cible))/((1-half*
alpha*dt_cible))
137 IF (dampr(19,nd)/=0)
THEN
138 IF ((i_damp_rdof_tab(n)+icontact(n))/=0)
THEN
139 stifr(n) = stifr(n)*coeff
subroutine dtnodamp(itab, ms, in, stifn, stifr, dt2t, weight, igrnod, dampr, istop, i_damp_rdof_tab, icontact, ixc, x)