OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
r5def3.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "com01_c.inc"
#include "com08_c.inc"
#include "param_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine r5def3 (xl, vx2l, ry1l, rz1l, rx2l, ry2l, rz2l, fr_wave, fr_w_e, eint, fx, xmom, ymom, zmom, fy, fz, partsav, ipartr, exx, eyx, ezx, exy, eyy, ezy, exz, eyz, ezz, rx1, ry1, rz1, rx2, ry2, rz2, vx1, vx2, vy1, vy2, vz1, vz2, nc1, nc2, nel)

Function/Subroutine Documentation

◆ r5def3()

subroutine r5def3 ( xl,
vx2l,
ry1l,
rz1l,
rx2l,
ry2l,
rz2l,
fr_wave,
fr_w_e,
eint,
fx,
xmom,
ymom,
zmom,
fy,
fz,
partsav,
integer, dimension(*) ipartr,
exx,
eyx,
ezx,
exy,
eyy,
ezy,
exz,
eyz,
ezz,
rx1,
ry1,
rz1,
rx2,
ry2,
rz2,
vx1,
vx2,
vy1,
vy2,
vz1,
vz2,
integer, dimension(*) nc1,
integer, dimension(*) nc2,
integer, intent(in) nel )

Definition at line 28 of file r5def3.F.

40C-----------------------------------------------
41C I m p l i c i t T y p e s
42C-----------------------------------------------
43#include "implicit_f.inc"
44C-----------------------------------------------
45C G l o b a l P a r a m e t e r s
46C-----------------------------------------------
47#include "mvsiz_p.inc"
48C-----------------------------------------------
49C C o m m o n B l o c k s
50C-----------------------------------------------
51#include "com01_c.inc"
52#include "com08_c.inc"
53#include "param_c.inc"
54C-----------------------------------------------
55C D u m m y A r g u m e n t s
56C-----------------------------------------------
57 INTEGER, INTENT(IN) :: NEL
58 INTEGER IPARTR(*),NC1(*),NC2(*)
59C REAL
61 . xl(*), vx2l(*),ry1l(*), rz1l(*), rx2l(*), ry2l(*), rz2l(*),
62 . fr_wave(*) ,fr_w_e(*),eint(*) ,
63 . fx(*), fy(*), fz(*), xmom(*), ymom(*),zmom(*),partsav(npsav,*),
64 . exx(mvsiz), eyx(mvsiz), ezx(mvsiz),
65 . exy(mvsiz), eyy(mvsiz), ezy(mvsiz),
66 . exz(mvsiz), eyz(mvsiz), ezz(mvsiz), rx1(mvsiz), rx2(mvsiz),
67 . ry1(mvsiz), ry2(mvsiz), rz1(mvsiz), rz2(mvsiz), vx1(mvsiz),
68 . vx2(mvsiz), vy1(mvsiz), vy2(mvsiz), vz1(mvsiz), vz2(mvsiz)
69C-----------------------------------------------
70C L o c a l V a r i a b l e s
71C-----------------------------------------------
72 INTEGER I,MX
73C REAL
75 . vx1l, vy1l, vy2l, vz1l, vz2l,theta , xldemi,xsign
76C-----------------------------------------------
77C--------------------------------------------
78C VITESSES REPERE CONVECTEE
79C--------------------------------------------
80 DO i=1,nel
81 rx2l(i) = exx(i)*(rx2(i)-rx1(i))
82 . + eyx(i)*(ry2(i)-ry1(i))
83 . + ezx(i)*(rz2(i)-rz1(i))
84 ry1l(i) = exy(i)*rx1(i)+eyy(i)*ry1(i)+ezy(i)*rz1(i)
85 ry2l(i) = exy(i)*rx2(i)+eyy(i)*ry2(i)+ezy(i)*rz2(i)
86 rz1l(i) = exz(i)*rx1(i)+eyz(i)*ry1(i)+ezz(i)*rz1(i)
87 rz2l(i) = exz(i)*rx2(i)+eyz(i)*ry2(i)+ezz(i)*rz2(i)
88 vx2l(i) = exx(i)*(vx2(i)-vx1(i))
89 . + eyx(i)*(vy2(i)-vy1(i))
90 . + ezx(i)*(vz2(i)-vz1(i))
91 vy2l = exy(i)*(vx2(i)-vx1(i))
92 . + eyy(i)*(vy2(i)-vy1(i))
93 . + ezy(i)*(vz2(i)-vz1(i))
94 xsign = sign(one, xl(i) - half*vx2l(i)*dt1)
95 xldemi = xsign/max(em15,abs(xl(i) - half*vx2l(i)*dt1))
96 theta = vy2l * xldemi
97 rz1l(i) = rz1l(i) - theta
98 rz2l(i) = rz2l(i) - theta
99 vz2l = exz(i)*(vx2(i)-vx1(i))
100 . + eyz(i)*(vy2(i)-vy1(i))
101 . + ezz(i)*(vz2(i)-vz1(i))
102 theta = vz2l * xldemi
103 ry1l(i) = ry1l(i) + theta
104 ry2l(i) = ry2l(i) + theta
105 vx2l(i) = vx2l(i)
106 . - half*dt1*xldemi*(vy2l*vy2l+vz2l*vz2l)
107 ENDDO
108C--------------------------------------------
109C Energy
110C--------------------------------------------
111 DO i=1,nel
112 eint(i) = eint(i)
113 .+ half*dt1 * (vx2l(i) * fx(i) + rx2l(i) * xmom(i)
114 . + (ry2l(i) - ry1l(i)) * ymom(i)
115 . + (rz2l(i) - rz1l(i)) * zmom(i)
116 . + half * (ry2l(i) + ry1l(i)) * fz(i) * xl(i)
117 . - half * (rz2l(i) + rz1l(i)) * fy(i) * xl(i) )
118 ENDDO
119C
120 IF (npsav >= 21) THEN
121 DO i=1,nel
122 mx = ipartr(i)
123 partsav(23,mx)=partsav(23,mx)
124 . + half*dt1 * (rx2l(i) * xmom(i)
125 . + (ry2l(i) - ry1l(i)) * ymom(i)
126 . + (rz2l(i) - rz1l(i)) * zmom(i)
127 . + half * (ry2l(i) + ry1l(i)) * fz(i) * xl(i)
128 . - half * (rz2l(i) + rz1l(i)) * fy(i) * xl(i) )
129 ENDDO
130 ENDIF
131C--------------------------------------------
132C Front wave
133C--------------------------------------------
134 IF (ifrwv /= 0) THEN
135 DO i=1,nel
136 fr_w_e(i)=max(fr_wave(nc1(i)),fr_wave(nc2(i)),zero)
137 ENDDO
138 ENDIF
139C---
140 RETURN
#define my_real
Definition cppsort.cpp:32
#define max(a, b)
Definition macros.h:21