OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i6damp.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine i6damp (v, npc, tf, irect, msr, nsv, irtl, irtlo, cst, es, em, visc, ndamp1, ndamp2, lold, mass, vni, ascalf, ascalv, fscalv, h1, h2, h3, h4, fni, fxi, fyi, fzi, fx1, fx2, fx3, fx4, fy1, fy2, fy3, fy4, fz1, fz2, fz3, fz4, lft, llt, nft)

Function/Subroutine Documentation

◆ i6damp()

subroutine i6damp ( v,
integer, dimension(*) npc,
tf,
integer, dimension(4,*) irect,
integer, dimension(*) msr,
integer, dimension(*) nsv,
integer, dimension(*) irtl,
integer, dimension(*) irtlo,
cst,
es,
em,
visc,
integer ndamp1,
integer ndamp2,
integer, dimension(*) lold,
mass,
vni,
ascalf,
ascalv,
fscalv,
intent(in) h1,
intent(in) h2,
intent(in) h3,
intent(in) h4,
intent(in) fni,
intent(inout) fxi,
intent(inout) fyi,
intent(inout) fzi,
intent(inout) fx1,
intent(inout) fx2,
intent(inout) fx3,
intent(inout) fx4,
intent(inout) fy1,
intent(inout) fy2,
intent(inout) fy3,
intent(inout) fy4,
intent(inout) fz1,
intent(inout) fz2,
intent(inout) fz3,
intent(inout) fz4,
integer, intent(inout) lft,
integer, intent(inout) llt,
integer, intent(inout) nft )

Definition at line 30 of file i6damp.F.

42C-----------------------------------------------
43C I m p l i c i t T y p e s
44C-----------------------------------------------
45#include "implicit_f.inc"
46C-----------------------------------------------
47C G l o b a l P a r a m e t e r s
48C-----------------------------------------------
49#include "mvsiz_p.inc"
50C-----------------------------------------------
51C D u m m y A r g u m e n t s
52C-----------------------------------------------
53 INTEGER, INTENT(INOUT) :: LFT
54 INTEGER, INTENT(INOUT) :: LLT
55 INTEGER, INTENT(INOUT) :: NFT
56 INTEGER NDAMP1 ,NDAMP2
57 INTEGER IRECT(4,*),MSR(*),NSV(*),IRTL(*),IRTLO(*),NPC(*),LOLD(*)
58C REAL
60 . visc,ascalf,ascalv,fscalv
62 . v(3,*),cst(2,*),es(*),em(*),tf(*),mass(*),vni(*)
63 my_real, DIMENSION(MVSIZ), INTENT(IN) :: h1,h2,h3,h4,fni
64 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: fxi,fyi,fzi
65 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: fx1,fx2,fx3,fx4
66 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: fy1,fy2,fy3,fy4
67 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: fz1,fz2,fz3,fz4
68C-----------------------------------------------
69C C o m m o n B l o c k s
70C-----------------------------------------------
71C-----------------------------------------------
72C L o c a l V a r i a b l e s
73C-----------------------------------------------
74 INTEGER I,IG,IL, L, J3, J2, J1, I3, I2, I1
75C REAL
77 . fdamp
79 . vis(llt),viscv(llt),fact(llt),xx(llt)
80C-----------------------------------------------
81C Coefficient d'amortissement
82C--------------------------------
83 IF (ndamp1 > 0) THEN ! velocity function
84 DO i=lft,llt
85 xx(i) = vni(i)*ascalv
86 ENDDO
87 CALL ninterp(ndamp1,npc,tf,llt,xx,viscv)
88 ELSE
89 viscv(1:llt) = zero
90 ENDIF
91c
92 IF (ndamp2 > 0) THEN ! Force amplification factor
93 DO i=lft,llt
94 xx(i) = fni(i)*ascalf
95 ENDDO
96 CALL ninterp(ndamp2,npc,tf,llt,xx,fact)
97 ELSE
98 fact(1:llt) = one
99 ENDIF
100C--------------------------------
101 DO i=lft,llt
102 il = i+nft
103 fxi(i) = zero
104 fyi(i) = zero
105 fzi(i) = zero
106c
107 IF (lold(i) /= 0) THEN
108 ig = nsv(il)
109 l = irtl(il)
110c
111 fdamp = - (visc*vni(i) + fscalv*viscv(i))*fact(i)
112c
113c FXI(I) = N1(I)*FDAMP
114c FYI(I) = N2(I)*FDAMP
115c FZI(I) = N3(I)*FDAMP
116 fxi(i) = fdamp
117 fyi(i) = fdamp
118 fzi(i) = fdamp
119c
120 fx1(i)=fxi(i)*h1(i)
121 fy1(i)=fyi(i)*h1(i)
122 fz1(i)=fzi(i)*h1(i)
123C
124 fx2(i)=fxi(i)*h2(i)
125 fy2(i)=fyi(i)*h2(i)
126 fz2(i)=fzi(i)*h2(i)
127C
128 fx3(i)=fxi(i)*h3(i)
129 fy3(i)=fyi(i)*h3(i)
130 fz3(i)=fzi(i)*h3(i)
131C
132 fx4(i)=fxi(i)*h4(i)
133 fy4(i)=fyi(i)*h4(i)
134 fz4(i)=fzi(i)*h4(i)
135c
136c Force visc main
137c
138 j3=3*irect(1,l)
139 j2=j3-1
140 j1=j2-1
141 em(j1)=em(j1)+fx1(i)
142 em(j2)=em(j2)+fy1(i)
143 em(j3)=em(j3)+fz1(i)
144C
145 j3=3*irect(2,l)
146 j2=j3-1
147 j1=j2-1
148 em(j1)=em(j1)+fx2(i)
149 em(j2)=em(j2)+fy2(i)
150 em(j3)=em(j3)+fz2(i)
151C
152 j3=3*irect(3,l)
153 j2=j3-1
154 j1=j2-1
155 em(j1)=em(j1)+fx3(i)
156 em(j2)=em(j2)+fy3(i)
157 em(j3)=em(j3)+fz3(i)
158C
159 j3=3*irect(4,l)
160 j2=j3-1
161 j1=j2-1
162 em(j1)=em(j1)+fx4(i)
163 em(j2)=em(j2)+fy4(i)
164 em(j3)=em(j3)+fz4(i)
165c
166c Force visc secnd
167c
168 i3 = 3*il
169 i2 = i3-1
170 i1 = i2-1
171 es(i1) = es(i1)-fxi(i)
172 es(i2) = es(i2)-fyi(i)
173 es(i3) = es(i3)-fzi(i)
174c
175 ENDIF ! LOLD
176C
177 ENDDO ! I=LFT,LLT
178C-----------
179 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine ninterp(ifunc, npc, pld, npoint, xv, yv)
Definition ninterp.F:32