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 31 of file aconv2.F.

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