1!
2!     CalculiX - A 3-dimensional finite element program
3!     Copyright (C) 1998-2021 Guido Dhondt
4!
5!     This program is free software; you can redistribute it and/or
6!     modify it under the terms of the GNU General Public License as
7!     published by the Free Software Foundation(version 2);
8!
9!
10!     This program is distributed in the hope that it will be useful,
11!     but WITHOUT ANY WARRANTY; without even the implied warranty of
12!     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13!     GNU General Public License for more details.
14!     You should have received a copy of the GNU General Public License
15!     along with this program; if not, write to the Free Software
16!     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17!
18      subroutine rcavi2(node1,node2,nodem,nelem,lakon,kon,ipkon,
19     &     nactdog,identity,ielprop,prop,iflag,v,xflow,f,
20     &     nodef,idirf,df,cp,R,physcon,dvi,numf,set,mi,ttime,time,
21     &     iaxial,iplausi)
22!
23!     rotating cavity element
24!
25!     author: Yannick Muller
26!
27      implicit none
28!
29      logical identity
30      character*8 lakon(*)
31      character*81 set(*)
32!
33      integer nelem,nactdog(0:3,*),node1,node2,nodem,numf,
34     &     ielprop(*),nodef(*),idirf(*),index,iflag,mi(*),
35     &     inv,ipkon(*),kon(*),kgas,nelem_in,nelem_out,iaxial,
36     &     element0,node10,node20,node11,node21,node12,node22,node_cav,
37     &     node_main,node_main2,node_in1,node_out1,node_in2,node_out2,
38     &     iplausi
39!
40      real*8 prop(*),v(0:mi(2),*),xflow,f,df(*),kappa,R,a,d,
41     &     p1,p2,T1,T2,Aeff,C1,C2,C3,cd,cp,physcon(*),p2p1,km1,dvi,
42     &     kp1,kdkm1,tdkp1,km1dk,x,y,ca1,cb1,ca2,cb2,dT1,alambda,
43     &     reynolds,pi,xflow_oil,s,Tcav,pcav,pmin,pmax,ttime,time,
44     &     Tref,Alpha1, Alpha2, Alpha3, GF,kf,MRTAP_ref_ein,
45     &     MRTAP_ref_aus, m_ref_ein, m_ref_aus,maus_zu_mref,
46     &     mein_zu_mref, A_aus, A_ein, A_ges,m_aus, m_ein, m_sperr
47!
48!
49!
50      pi=4.d0*datan(1.d0)
51!
52      if (iflag.eq.0) then
53         identity=.true.
54!
55         if(nactdog(2,node1).ne.0)then
56            identity=.false.
57         elseif(nactdog(2,node2).ne.0)then
58            identity=.false.
59         elseif(nactdog(1,nodem).ne.0)then
60            identity=.false.
61         endif
62!
63      elseif (iflag.eq.1) then
64         if(v(1,nodem).ne.0.d0) return
65!
66         p1=v(2,node1)
67         call rcavi_cp_lt(xflow)
68
69         call rcavi_cp_nt(xflow)
70      elseif (iflag.eq.2) then
71!
72      elseif (iflag.eq.3) then
73!
74      endif
75      return
76      end
77