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

Go to the source code of this file.

Functions/Subroutines

subroutine srfvit (x, v, vr, a, ar, npby, rby, ms, in, igrsurf, bufsf)

Function/Subroutine Documentation

◆ srfvit()

subroutine srfvit ( x,
v,
vr,
a,
ar,
integer, dimension(nnpby,*) npby,
rby,
ms,
in,
type (surf_), dimension(nsurf) igrsurf,
bufsf )

Definition at line 32 of file srfvit.F.

35C-----------------------------------------------
36C M o d u l e s
37C-----------------------------------------------
38 USE groupdef_mod
39C=======================================================================
40C
41C * Retour des conditions cinematiques vers les surfaces
42C * Envoi des positions ou devra etre effectue le calcul des forces
43C dans les interfaces, au pas suivant.
44C=======================================================================
45C----6---------------------------------------------------------------7---------8
46C I m p l i c i t T y p e s
47C-----------------------------------------------
48#include "implicit_f.inc"
49#include "comlock.inc"
50C-----------------------------------------------
51C C o m m o n B l o c k s
52C-----------------------------------------------
53#include "com04_c.inc"
54#include "com08_c.inc"
55#include "param_c.inc"
56C-----------------------------------------------------------------
57C D u m m y A r g u m e n t s
58C-----------------------------------------------
59 INTEGER NPBY(NNPBY,*)
60C REAL
62 . x(3,*) ,v(3,*) ,vr(3,*) ,a(3,*) ,ar(3,*) ,
63 . rby(nrby,*) ,in(*) ,ms(*),
64 . bufsf(*)
65 TYPE (SURF_) , DIMENSION(NSURF) :: IGRSURF
66C-----------------------------------------------
67C L o c a l V a r i a b l e s
68C-----------------------------------------------
69 INTEGER ISU, ADRSRF, IM, NRBOD
71 . vi(3), vm(3), vrm(3)
72C
73
74!$OMP DO
75
76 DO isu=1,nsurf
77
78 IF ( igrsurf(isu)%TYPE==101 ) THEN
79 nrbod=igrsurf(isu)%NB_MADYMO
80 IF ( nrbod/=0 ) THEN
81C ISURF(9,ISU)==1 (RIGID BODIES) !
82C A chaque instant (et a TT=0. dans le Starter),
83C le Rigid Body transmet la position et les vitesses du noeud main
84C a la surface.
85 im=npby(1,nrbod)
86 adrsrf=igrsurf(isu)%IAD_BUFR
87 bufsf(adrsrf+16)=x(1,im)
88 bufsf(adrsrf+17)=x(2,im)
89 bufsf(adrsrf+18)=x(3,im)
90 vm(1) =v(1,im) +a(1,im)*dt12
91 vm(2) =v(2,im) +a(2,im)*dt12
92 vm(3) =v(3,im) +a(3,im)*dt12
93 vrm(1)=vr(1,im)+ar(1,im)*dt12
94 vrm(2)=vr(2,im)+ar(2,im)*dt12
95 vrm(3)=vr(3,im)+ar(3,im)*dt12
96 bufsf(adrsrf+19)= vm(1)
97 bufsf(adrsrf+20)= vm(2)
98 bufsf(adrsrf+21)= vm(3)
99 bufsf(adrsrf+22)=vrm(1)
100 bufsf(adrsrf+23)=vrm(2)
101 bufsf(adrsrf+24)=vrm(3)
102C Translation et Rotation de la surface.
103C deplacer apres SORTIES :
104 bufsf(adrsrf+4)=bufsf(adrsrf+4)+vm(1)*dt2
105 bufsf(adrsrf+5)=bufsf(adrsrf+5)+vm(2)*dt2
106 bufsf(adrsrf+6)=bufsf(adrsrf+6)+vm(3)*dt2
107 CALL rotbmr(vrm,bufsf(adrsrf+7),dt2)
108 END IF
109 END IF
110 END DO
111
112!$OMP END DO
113
114C-----------------------------------------------
115 200 CONTINUE
116 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine rotbmr(vr, rby, dt)
Definition rotbmr.F:35