OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
rmatacce.F File Reference
#include "implicit_f.inc"
#include "com04_c.inc"
#include "com08_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine rmatacce (rbym, arbym, arrbym, vrbym, vrrbym, irbym, lnrbym, x, a, ar, v, vr, kind)

Function/Subroutine Documentation

◆ rmatacce()

subroutine rmatacce ( rbym,
arbym,
arrbym,
vrbym,
vrrbym,
integer, dimension(nirbym,*) irbym,
integer, dimension(*) lnrbym,
x,
a,
ar,
v,
vr,
integer, dimension(*) kind )

Definition at line 28 of file rmatacce.F.

31C-----------------------------------------------
32C I m p l i c i t T y p e s
33C-----------------------------------------------
34#include "implicit_f.inc"
35C-----------------------------------------------
36C C o m m o n B l o c k s
37C-----------------------------------------------
38#include "com04_c.inc"
39#include "com08_c.inc"
40C-----------------------------------------------
41C D u m m y A r g u m e n t s
42C-----------------------------------------------
43 INTEGER IRBYM(NIRBYM,*),LNRBYM(*), KIND(*)
44C REAL
46 . x(3,*), a(3,*), ar(3,*), vr(3,*),v(3,*),
47 . vrrbym(3,*), arbym(3,*),arrbym(3,*),vrbym(3,*),
48 . rbym(nfrbym,*)
49C-----------------------------------------------
50C L o c a l V a r i a b l e s
51C-----------------------------------------------
52 INTEGER I, J, N, M, NSL, NSLT
53C REAL
54 my_real rx, ry, rz, msx, msy, msz, fsx, fsy, fsz,
55 . xg,yg,zg,usdt,v1x2,v2x1,v2x3,v3x2,v3x1,v1x3,
56 . vx2,vx1,vx3,vg(3)
57
58C======================================================================|
59 usdt = one /dt12
60
61!$OMP DO
62
63 DO m=1,nrbym
64C
65 nsl = irbym(2,m)
66 xg = rbym(2,m)
67 yg = rbym(3,m)
68 zg = rbym(4,m)
69C
70 nslt= kind(m)-1
71C
72 vg(1) = vrrbym(1,m) + arrbym(1,m)*dt12
73 vg(2) = vrrbym(2,m) + arrbym(2,m)*dt12
74 vg(3) = vrrbym(3,m) + arrbym(3,m)*dt12
75 DO i=1,nsl
76 n = lnrbym(nslt + i)
77C
78 rx = x(1,n) - xg
79 ry = x(2,n) - yg
80 rz = x(3,n) - zg
81C
82 ar(1,n) = (vg(1) - vr(1,n)) * usdt
83 ar(2,n) = (vg(2) - vr(2,n)) * usdt
84 ar(3,n) = (vg(3) - vr(3,n)) * usdt
85C
86 v1x2 = vg(1)*ry
87 v2x1 = vg(2)*rx
88 v2x3 = vg(2)*rz
89 v3x2 = vg(3)*ry
90 v3x1 = vg(3)*rx
91 v1x3 = vg(1)*rz
92C
93 vx1 = v2x3 - v3x2
94 vx2 = v3x1 - v1x3
95 vx3 = v1x2 - v2x1
96C
97 a(1,n)= arbym(1,m) + usdt*(
98 . vrbym(1,m) + vx1+half*dt2*(vg(2)*vx3-vg(3)*vx2)-v(1,n) )
99 a(2,n)= arbym(2,m) + usdt*(
100 . vrbym(2,m) + vx2+half*dt2*(vg(3)*vx1-vg(1)*vx3)-v(2,n))
101 a(3,n)= arbym(3,m) + usdt*(
102 . vrbym(3,m)+vx3+half*dt2*(vg(1)*vx2-vg(2)*vx1)-v(3,n))
103C compute rotational velocity
104C
105 ENDDO
106
107 vrbym(1,m) = vrbym(1,m) + arbym(1,m)*dt12
108 vrbym(2,m) = vrbym(2,m) + arbym(2,m)*dt12
109 vrbym(3,m) = vrbym(3,m) + arbym(3,m)*dt12
110C
111 vrrbym(1,m) = vg(1)
112 vrrbym(2,m) = vg(2)
113 vrrbym(3,m) = vg(3)
114 ENDDO
115
116!$OMP END DO
117
118C---
119 RETURN
#define my_real
Definition cppsort.cpp:32