OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
rbyvit.F File Reference
#include "implicit_f.inc"
#include "com01_c.inc"
#include "com04_c.inc"
#include "param_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine rbyvit (rby, x, v, vr, skew, fsav, lpby, npby, iskew, itab, weight, a, ar, ms, in, kind, irbkin_l, nrbykin_l, nodreac, fthreac, freac)

Function/Subroutine Documentation

◆ rbyvit()

subroutine rbyvit ( 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(*) nodreac,
fthreac,
freac )

Definition at line 33 of file rbyvit.F.

38C-----------------------------------------------
39C M o d u l e s
40C-----------------------------------------------
41 USE message_mod
42C----6---------------------------------------------------------------7---------8
43C I m p l i c i t T y p e s
44C-----------------------------------------------
45#include "implicit_f.inc"
46C-----------------------------------------------
47C C o m m o n B l o c k s
48C-----------------------------------------------
49#include "com01_c.inc"
50#include "com04_c.inc"
51#include "param_c.inc"
52C-----------------------------------------------------------------
53C D u m m y A r g u m e n t s
54C-----------------------------------------------
55 INTEGER WEIGHT(*),LPBY(*),NPBY(NNPBY,*),ISKEW(*),ITAB(*),
56 . KIND(NRBYKIN),IRBKIN_L(*),NRBYKIN_L,NODREAC(*)
57C REAL
59 . rby(nrby,*) ,x(3,*) ,v(3,*) ,vr(3,*),skew(*),
60 . fsav(nthvki,*) ,a(3,*),ar(3,*),in(*),ms(*),fthreac(*),freac(*)
61C----------------------------------------------3
62C L o c a l V a r i a b l e s
63C-----------------------------------------------
64 INTEGER J,K,N,KK,IFAIL,ICOMM
66 . fn, ft,expn,expt
67 my_real, DIMENSION(:), ALLOCATABLE ::
68 . crit
69C REAL
70 SAVE crit
71C-----------------------------------------------
72!$OMP SINGLE
73 IF(nrbfail /= 0 .AND. nspmd > 1)THEN
74 ALLOCATE(crit(nrbykin))
75 crit(1:nrbykin) = zero
76 ELSE
77 ALLOCATE(crit(0))
78 END IF
79!$OMP END SINGLE
80C-------------------------------------
81C CALCUL SUPER RIGID BODIES (non multi-thread) sur premiere tache libre
82C-------------------------------------
83
84!$OMP SINGLE
85
86 DO kk=1,nrbykin_l
87 n=irbkin_l(kk)
88 k = kind(n)
89 IF(npby(7,n)>0.AND.npby(4,n)/=0)THEN
90 j = ninter+nrwall+n
91 ifail = npby(18,n)
92 fn = rby(26,n)
93 ft = rby(27,n)
94 expn = rby(28,n)
95 expt = rby(29,n)
96C correction variables globales faites dans rbycor
97 CALL rgbodv(v ,vr ,x ,rby(1,n) ,lpby(k),
98 2 npby(1,n),skew ,iskew ,fsav(1,j) ,itab ,
99 3 weight ,a ,ar ,ms ,in ,
100 4 npby(4,n),npby(6,n) ,ifail ,fn ,expn ,
101 5 ft ,expt ,rby(30,n),nodreac,fthreac ,
102 6 freac )
103C
104 IF(nrbfail /= 0 .AND. nspmd > 1) crit(n)= rby(30,n)
105C
106 ENDIF
107 ENDDO
108
109!$OMP END SINGLE
110
111C-------------------------------------
112C CALCUL FORCE RIGID BODIES CLASSIQUES (multi-thread)
113C-------------------------------------
114
115!$OMP DO SCHEDULE(DYNAMIC,1)
116
117 DO kk=1,nrbykin_l
118 n=irbkin_l(kk)
119 k = kind(n)
120 IF(npby(7,n)>0.AND.npby(4,n)==0)THEN
121 j = ninter+nrwall+n
122 ifail = npby(18,n)
123 fn = rby(26,n)
124 ft = rby(27,n)
125 expn = rby(28,n)
126 expt = rby(29,n)
127C correction variables globales faites dans rbycor
128 CALL rgbodv(v ,vr ,x ,rby(1,n) ,lpby(k),
129 2 npby(1,n),skew ,iskew ,fsav(1,j) ,itab ,
130 3 weight ,a ,ar ,ms ,in ,
131 4 npby(4,n),npby(6,n) ,ifail ,fn ,expn ,
132 5 ft ,expt ,rby(30,n),nodreac,fthreac ,
133 6 freac )
134C
135 IF(nrbfail /= 0 .AND. nspmd > 1) crit(n)= rby(30,n)
136C
137 ENDIF
138 ENDDO
139
140!$OMP END DO
141C
142!$OMP SINGLE
143 IF(nrbfail /= 0 .AND. nspmd > 1)THEN
144 CALL spmd_all_dmax(crit,nrbykin)
145 DO n=1,nrbykin
146 rby(30,n) = crit(n)
147 ENDDO
148 END IF
149 DEALLOCATE(crit)
150!$OMP END SINGLE
151C
152 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine rgbodv(v, vr, x, rby, nod, nby, skew, iskew, fs, itab, weight, a, ar, ms, in, isens, id, ifail, fny, expn, fty, expt, crit, nodreac, fthreac, freac)
Definition rgbodv.F:41
subroutine spmd_all_dmax(v, len)
Definition spmd_sph.F:1146