35 . WEIGHT,V_REF,A_REF,NDAMP_VREL,ID_DAMP_VREL,
36 . FR_DAMP_VREL,NGRNOD,NUMNOD,NDAMP,NRDAMP,
45#include "implicit_f.inc"
50 INTEGER,
INTENT(IN) :: WEIGHT(NUMNOD),NDAMP_VREL,ID_DAMP_VREL(NDAMP_VREL)
51 INTEGER,
INTENT(IN) :: FR_DAMP_VREL(NSPMD+2,NDAMP_VREL)
52 INTEGER,
INTENT(IN) :: NGRNOD,NUMNOD,NDAMP,NRDAMP,NSPMD,IPARIT,ISPMD
53 my_real,
INTENT(IN) :: a(3,numnod),v(3,numnod),ms(numnod)
54 my_real,
INTENT(IN) :: dampr(nrdamp,ndamp)
55 my_real,
INTENT(OUT) :: a_ref(3,ndamp),v_ref(3,ndamp)
57 TYPE (GROUP_),
DIMENSION(NGRNOD),
INTENT(IN) :: IGRNOD
61 INTEGER I,N,ND,IGR,NNOD,ID
63 DOUBLE PRECISION SUML6(7,6,NDAMP_VREL),SUML(7,NDAMP_VREL)
76 igr = nint(dampr(2,id))
77 suml6(1:7,1:6,nd) = zero
78 nnod = igrnod(igr)%NENTITY
80 . nd,nnod,igr,suml6,ngrnod,
86 IF ((nspmd>1).AND.(fr_damp_vrel(ispmd+1,nd)==1))
THEN
90 inv_mas=one/
max(em20,(suml6(7,1,nd)+suml6(7,2,nd)+suml6(7,3,nd)+
91 . suml6(7,4,nd)+suml6(7,5,nd)+suml6(7,6,nd)))
93 v_ref(1,id)=inv_mas*(suml6(1,1,nd)+suml6(1,2,nd)+suml6(1,3,nd)+
94 . suml6(1,4,nd)+suml6(1,5,nd)+suml6(1,6,nd))
95 v_ref(2,id)=inv_mas*(suml6(2,1,nd)+suml6(2,2,nd)+suml6(2,3,nd)+
96 . suml6(2,4,nd)+suml6(2,5,nd)+suml6(2,6,nd))
97 v_ref(3,id)=inv_mas*(suml6(3,1,nd)+suml6(3,2,nd)+suml6(3,3,nd)+
98 . suml6(3,4,nd)+suml6(3,5,nd)+suml6(3,6,nd))
99 a_ref(1,id)=inv_mas*(suml6(4,1,nd)+suml6(4,2,nd)+suml6(4,3,nd)+
100 . suml6(4,4,nd)+suml6(4,5,nd)+suml6(4,6,nd))
101 a_ref(2,id)=inv_mas*(suml6(5,1,nd)+suml6(5,2,nd)+suml6(5,3,nd)+
102 . suml6(5,4,nd)+suml6(5,5,nd)+suml6(5,6,nd))
103 a_ref(3,id)=inv_mas*(suml6(6,1,nd)+suml6(6,2,nd)+suml6(6,3,nd)+
104 . suml6(6,4,nd)+suml6(6,5,nd)+suml6(6,6,nd))
111 DO nd = 1, ndamp_vrel
112 id = id_damp_vrel(nd)
114 igr = nint(dampr(2,id))
115 DO n=1,igrnod(igr)%NENTITY
116 i=igrnod(igr)%ENTITY(n)
117 suml(1,nd) = suml(1,nd) + ms(i)*v(1,i)*weight(i)
118 suml(2,nd) = suml(2,nd) + ms(i)*v(2,i)*weight(i)
119 suml(3,nd) = suml(3,nd) + ms(i)*v(3,i)*weight(i)
120 suml(4,nd) = suml(4,nd) + ms(i)*a(1,i)*weight(i)
121 suml(5,nd) = suml(5,nd) + ms(i)*a(2,i)*weight(i)
122 suml(6,nd) = suml(6,nd) + ms(i)*a(3,i)*weight(i
123 suml(7,nd) = suml(7,nd) + ms(i)*weight(i)
127 DO nd = 1, ndamp_vrel
128 id = id_damp_vrel(nd)
129 IF ((nspmd>1).AND.(fr_damp_vrel(ispmd+1,nd)==1))
THEN
132 inv_mas = one/
max(em20,suml(7,nd))
133 v_ref(1,id) = suml(1,nd)*inv_mas
134 v_ref(2,id) = suml(2,nd)*inv_mas
135 v_ref(3,id) = suml(3,nd)*inv_mas
136 a_ref(1,id) = suml(4,nd)*inv_mas
137 a_ref(2,id) = suml(5,nd)*inv_mas
138 a_ref(3,id) = suml(6,nd)*inv_mas