29 . PM ,GEO ,OFF ,IMAT ,IPID ,
30 . NEL ,NGL ,EXX ,EXY ,EXZ ,
31 . KXX ,KYY ,KZZ ,AL ,FA1 ,
32 . FA2 ,FA3 ,MA1 ,MA2 ,MA3 ,
33 . IMPL_S ,IDYNA ,DT1 )
37#include "implicit_f.inc"
46 INTEGER ,
INTENT(IN) :: NEL,IMAT,IPID,IMPL_S,IDYNA
47 INTEGER ,
DIMENSION(NEL) ,
INTENT(IN) :: NGL
48 my_real ,
DIMENSION(NPROPG,NUMGEO) ,
INTENT(IN):: GEO
49 my_real ,
DIMENSION(NPROPM,NUMMAT) ,
INTENT(IN):: PM
50 my_real ,
DIMENSION(NEL) ,
INTENT(IN) :: OFF
51 my_real ,
DIMENSION(NEL) ,
INTENT(IN) :: al
52 my_real ,
DIMENSION(NEL) ,
INTENT(IN) :: exx,exy,exz,kxx,kyy,kzz
53 my_real ,
DIMENSION(NEL) ,
INTENT(INOUT):: fa1,fa2,fa3,ma1,ma2,ma3
54 my_real ,
INTENT(IN) :: dt1
59 my_real :: rho,rhoe,rhog,young,g,dmm,iyy,izz,ixx
60 my_real ,
DIMENSION(NEL) :: vol,dmpm,dmpf
69 rhoe = sqrt(two*young*rho)
70 rhog = sqrt(two*g *rho)
72 vol(1:nel) =
area*al(1:nel)
73 dtinv = dt1/
max(dt1**2,em20)
75 IF (impl_s == 0 .OR. idyna > 0)
THEN
77 dmpm(i)=dtinv*geo(16,ipid)*off(i)
78 dmpf(i)=dtinv*geo(17,ipid)*off(i)
91 fa1(i) = fa1(i) + dmpm(i)*exx(i)*dmm
92 fa2(i) = fa2(i) + dmpf(i)*exy(i)*dmm
93 fa3(i) = fa3(i) + dmpf(i)*exz(i)*dmm
94 ma1(i) = ma1(i) + dmpf(i)*kxx(i)*al(i)*ixx*rhog
95 ma2(i) = ma2(i) + dmpf(i)*kyy(i)*al(i)*iyy*rhoe
96 ma3(i) = ma3(i) + dmpf(i)*kzz(i)*al(i)*izz*rhoe
subroutine pdamp3(pm, geo, off, imat, ipid, nel, ngl, exx, exy, exz, kxx, kyy, kzz, al, fa1, fa2, fa3, ma1, ma2, ma3, impl_s, idyna, dt1)