31 SUBROUTINE dampdtnoda(MS ,IN ,STIFN ,STIFR ,IGRNOD ,DAMPR )
39#include "implicit_f.inc"
50 my_real ,
DIMENSION(NUMNOD),
INTENT(IN) ::ms
51 my_real ,
DIMENSION(NUMNOD*IRODDL),
INTENT(IN) ::in
52 my_real ,
DIMENSION(NUMNOD),
INTENT(INOUT) ::stifn
53 my_real ,
DIMENSION(NUMNOD),
INTENT(INOUT) ::stifr
54 my_real ,
DIMENSION(NRDAMP,NDAMP),
INTENT(IN) ::dampr
56 TYPE (GROUP_) ,
DIMENSION(NGRNOD),
INTENT(IN) :: IGRNOD
60 INTEGER N,I,J,ISK,IGR,ND,K,L,LL,FL_FREQ_RANGE
61 my_real factb,dampbr,dampar,d_tstart,d_tstop,dampt,
62 . dt2n(numnod),bb,coeff,dtn,dtn2,dampai,dampbi,dt0,dampa3,
63 . alpha05,beta1,dtmax,fac,dtmi1,fac0
69 fl_freq_range = nint(dampr(31,i))
70 IF ((dampr(19,i)/=0).OR.(fl_freq_range > 0)) cycle
77 dt2n(nd) = sqrt(two*ms(nd)/stifn(nd))
78 dt2n(nd) =
min(dtmax,dt2n(nd))
79 dtn =
min(dt2n(nd),dtn)
83 DO j=1,igrnod(igr)%NENTITY
84 nd=igrnod(igr)%ENTITY(j)
85 IF(stifr(nd)>em20 .AND. in(nd)>zero)
THEN
86 dtn2 = sqrt(two*in(nd)/stifr(nd))
87 dt2n(nd) =
min(dt2n(nd),dtn2)
88 dtn =
min(dt2n(nd),dtn)
93 dampai =
max(dampr(3,i),dampr(5,i),dampr(7,i))
94 dampai =
max(dampai,dampr(9,i),dampr(11,i),dampr(13,i))
95 dampbi =
max(dampr(4,i),dampr(6,i),dampr(8,i))
96 dampbi =
max(dampbi,dampr(10,i),dampr(12,i),dampr(14,i))
97 dampt = dt0*dampr(16,i)
98 dampbi =
min(dampbi,dampt)
100 DO j=1,igrnod(igr)%NENTITY
101 nd=igrnod(igr)%ENTITY(j)
102 bb=dampbi/dt2n(nd)+half*dampai*dt2n(nd)
103 fac = sqrt(bb*bb+one) -bb
104 IF (fac*dt2n(nd) < dtmi1)
THEN
105 bb=dampbi/dtmi1+half*dampai*dtmi1
106 fac =
max(fac,sqrt(bb*bb+one) -bb)
109 IF(stifn(nd)>em20 .AND. ms(nd)>zero)
THEN
110 stifn(nd) =stifn(nd)*coeff
113 IF(stifr(nd)>em20 .AND. in(nd)>zero)
THEN
114 stifr(nd) =stifr(nd)*coeff