OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
rbycor.F File Reference
#include "implicit_f.inc"
#include "comlock.inc"
#include "com04_c.inc"
#include "scr11_c.inc"
#include "param_c.inc"
#include "impl1_c.inc"
#include "lockon.inc"
#include "lockoff.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine rbycor (rby, x, v, vr, skew, fsav, lpby, npby, iskew, itab, weight, a, ar, ms, in, kind, irbkin_l, nrbykin_l, weight_md, ms_2d)

Function/Subroutine Documentation

◆ rbycor()

subroutine rbycor ( rby,
x,
v,
vr,
skew,
fsav,
integer, dimension(*) lpby,
integer, dimension(nnpby,*) npby,
integer, dimension(*) iskew,
integer, dimension(*) itab,
integer, dimension(*) weight,
a,
ar,
ms,
in,
integer, dimension(nrbykin) kind,
integer, dimension(*) irbkin_l,
integer nrbykin_l,
integer, dimension(*) weight_md,
ms_2d )

Definition at line 32 of file rbycor.F.

36C-----------------------------------------------
37 USE imp_dyna
38C----6---------------------------------------------------------------7---------8
39C I m p l i c i t T y p e s
40C-----------------------------------------------
41#include "implicit_f.inc"
42#include "comlock.inc"
43C-----------------------------------------------
44C C o m m o n B l o c k s
45C-----------------------------------------------
46#include "com04_c.inc"
47#include "scr11_c.inc"
48#include "param_c.inc"
49#include "impl1_c.inc"
50C-----------------------------------------------------------------
51C D u m m y A r g u m e n t s
52C-----------------------------------------------
53 INTEGER WEIGHT(*),LPBY(*),NPBY(NNPBY,*),ISKEW(*),ITAB(*),
54 . KIND(NRBYKIN),IRBKIN_L(*),NRBYKIN_L,WEIGHT_MD(*)
55C REAL
57 . rby(nrby,*) ,x(3,*) ,v(3,*) ,vr(3,*),skew(*),
58 . fsav(nthvki,*) ,a(3,*),ar(3,*),in(*),ms(*) ,ms_2d(*)
59C-----------------------------------------------
60C L o c a l V a r i a b l e s
61C-----------------------------------------------
62 INTEGER J,K,N,KK
63C REAL
65 . enrot_t,encin_t,xmass_t,
66 . xmomt_t,ymomt_t,zmomt_t,encin2_t,enrot2_t
67C-----------------------------------------------
68C-------------------------------------
69C CALCUL SUPER RIGID BODIES (non multi-thread) sur premiere tache libre
70C-------------------------------------
71!$omp single
72 DO kk=1,nrbykin_l
73 n=irbkin_l(kk)
74 k = kind(n)
75 IF(npby(7,n)>0.AND.npby(4,n)/=0)THEN
76 j = ninter+nrwall+n
77 IF( idyna>0 ) THEN
78 CALL rgbcor(
79 1 dy_v,dy_vr,x,rby(1,n),lpby(k),
80 2 npby(1,n),skew,iskew,fsav(1,j),itab,
81 3 weight,dy_a,dy_ar,ms,in,enrot,encin,xmass,
82 4 xmomt,ymomt,zmomt,npby(4,n),weight_md,encin2,enrot2,
83 5 ms_2d)
84 ELSE
85 CALL rgbcor(
86 1 v,vr,x,rby(1,n),lpby(k),
87 2 npby(1,n),skew,iskew,fsav(1,j),itab,
88 3 weight,a,ar,ms,in,enrot,encin,xmass,
89 4 xmomt,ymomt,zmomt,npby(4,n),weight_md,encin2,enrot2,
90 5 ms_2d)
91 ENDIF
92 ENDIF
93 ENDDO
94!$OMP END SINGLE
95C-------------------------------------
96C CALCUL FORCE RIGID BODIES CLASSIQUES (multi-thread)
97C-------------------------------------
98C
99C optimisation locks
100 enrot_t=zero
101 encin_t=zero
102 xmass_t=zero
103 xmomt_t=zero
104 ymomt_t=zero
105 zmomt_t=zero
106 enrot2_t=zero
107 encin2_t=zero
108C
109!$OMP DO SCHEDULE(DYNAMIC,1)
110 DO kk=1,nrbykin_l
111 n = irbkin_l(kk)
112 k = kind(n)
113 IF( npby(7,n)>0.AND.npby(4,n)==0)THEN
114 j = ninter+nrwall+n
115 IF( idyna>0 ) THEN
116 CALL rgbcor(
117 1 dy_v,dy_vr,x,rby(1,n),lpby(k),
118 2 npby(1,n),skew,iskew,fsav(1,j),itab,
119 3 weight,dy_a,dy_ar,ms,in,enrot_t,encin_t,xmass_t,
120 4 xmomt_t,ymomt_t,zmomt_t,npby(4,n),weight_md,encin2_t,
121 5 enrot2_t,ms_2d)
122 ELSE
123 CALL rgbcor(
124 1 v,vr,x,rby(1,n),lpby(k),
125 2 npby(1,n),skew,iskew,fsav(1,j),itab,
126 3 weight,a,ar,ms,in,enrot_t,encin_t,xmass_t,
127 4 xmomt_t,ymomt_t,zmomt_t,npby(4,n),weight_md,encin2_t,
128 5 enrot2_t,ms_2d)
129 ENDIF
130 ENDIF
131 ENDDO
132!$OMP END DO NOWAIT
133C
134#include "lockon.inc"
135 enrot=enrot + enrot_t
136 encin=encin + encin_t
137 xmass=xmass + xmass_t
138 xmomt=xmomt + xmomt_t
139 ymomt=ymomt + ymomt_t
140 zmomt=zmomt + zmomt_t
141 encin2=encin2 + encin2_t
142 enrot2=enrot2 + enrot2_t
143#include "lockoff.inc"
144C
145 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine rgbcor(v, vr, x, rby, nod, nby, skew, iskew, fs, itab, weight, a, ar, ms, in, enrot_t, encin_t, xmass_t, xmomt_t, ymomt_t, zmomt_t, isens, weight_md, encin2_t, enrot2_t, ms_2d)
Definition rgbcor.F:37