OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
aconv2.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "com01_c.inc"
#include "com04_c.inc"
#include "com08_c.inc"
#include "vect01_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine aconv2 (vtot, phi, flux, flu1, ale_connect, qmv, iflg, ixq, x, ioff)

Function/Subroutine Documentation

◆ aconv2()

subroutine aconv2 ( vtot,
phi,
flux,
flu1,
type(t_ale_connectivity), intent(in) ale_connect,
qmv,
integer iflg,
integer, dimension(nixq, numelq) ixq,
x,
integer, intent(in) ioff )

Definition at line 30 of file aconv2.F.

32C-----------------------------------------------
33C I m p l i c i t T y p e s
34C-----------------------------------------------
35#include "implicit_f.inc"
36C-----------------------------------------------
37C C o m m o n B l o c k s
38C-----------------------------------------------
39#include "mvsiz_p.inc"
40#include "com01_c.inc"
41#include "com04_c.inc"
42#include "com08_c.inc"
43#include "vect01_c.inc"
44C-----------------------------------------------
45C D u m m y A r g u m e n t s
46C-----------------------------------------------
47 INTEGER IFLG, IXQ(NIXQ, NUMELQ)
48 INTEGER,INTENT(IN) :: IOFF
49 my_real vtot(*), phi(*), flux(4,*), flu1(*), qmv(8,*), x(3,numnod)
50 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECT
51C-----------------------------------------------
52C L o c a l V a r i a b l e s
53C-----------------------------------------------
54 INTEGER I, J,IE, IV, IAD2, LGTH
55 my_real vl(6,mvsiz), r1, r2, r3, r4
56C-----------------------------------------------
57C S o u r c e L i n e s
58C-----------------------------------------------
59 DO i=lft,llt
60 ie =nft+i
61 iad2 = ale_connect%ee_connect%iad_connect(ie)
62 lgth = ale_connect%ee_connect%iad_connect(ie+1) - iad2
63 DO j=1,lgth
64 iv = ale_connect%ee_connect%connected(iad2 + j - 1)
65 IF(iv > 0)THEN
66 vl(j,i)=phi(iv)*flux(j,i)
67 ELSEIF(iv == 0)THEN
68 vl(j,i)=phi(ie)*flux(j,i)
69 ELSE
70 ! -IV is segment ID
71 ! ebcs : PHI(NUMEL + 1:NSEGFLU) is filled in aconve.F using
72 ! SEGVAR (filled in ebcs[0-9][0-9].F)
73 vl(j,i) = phi(-iv+ioff) *flux(j,i)
74 ENDIF
75 ENDDO
76 ENDDO
77
78 DO i=lft,llt
79 ie =nft+i
80 vtot(i) = vtot(i) + half * dt1 * (- phi(ie)*flu1(i) - vl(1,i)-vl(2,i)-vl(3,i)-vl(4,i) )
81 vtot(i)=max(em20,vtot(i))
82 ENDDO
83C
84 IF(trimat > 0 .AND. iflg == 1)THEN
85 IF (n2d == 1) THEN
86 DO i=lft,llt
87 ie =nft+i
88 r1 = half * (x(2, ixq(2, ie)) + x(2, ixq(3, ie)))
89 r2 = half * (x(2, ixq(3, ie)) + x(2, ixq(4, ie)))
90 r3 = half * (x(2, ixq(4, ie)) + x(2, ixq(5, ie)))
91 r4 = half * (x(2, ixq(5, ie)) + x(2, ixq(2, ie)))
92 !!! Beware of r=0 axis
93 IF (r1 == zero) r1 = one
94 IF (r2 == zero) r2 = one
95 IF (r3 == zero) r3 = one
96 IF (r4 == zero) r4 = one
97 !!! Divide by mean radius
98 qmv(1,i) = qmv(1,i) - vl(1,i) / r1 - phi(ie)*qmv(5,i)
99 qmv(2,i) = qmv(2,i) - vl(2,i) / r2 - phi(ie)*qmv(6,i)
100 qmv(3,i) = qmv(3,i) - vl(3,i) / r3 - phi(ie)*qmv(7,i)
101 qmv(4,i) = qmv(4,i) - vl(4,i) / r4 - phi(ie)*qmv(8,i)
102 ENDDO
103 ELSE
104 DO i=lft,llt
105 ie =nft+i
106 qmv(1,i) = qmv(1,i) - vl(1,i) - phi(ie)*qmv(5,i)
107 qmv(2,i) = qmv(2,i) - vl(2,i) - phi(ie)*qmv(6,i)
108 qmv(3,i) = qmv(3,i) - vl(3,i) - phi(ie)*qmv(7,i)
109 qmv(4,i) = qmv(4,i) - vl(4,i) - phi(ie)*qmv(8,i)
110 ENDDO
111 ENDIF
112 ENDIF
113C-----------------------------------------------
114 RETURN
#define my_real
Definition cppsort.cpp:32
#define max(a, b)
Definition macros.h:21