45 . FV,MS,STIFN,EBCS_TAB, IEBCS, OUTPUT, DT1, TIME)
51 USE output_mod ,
ONLY : output_
55#include "implicit_f.inc"
62 INTEGER NSEG,NOD,ISEG(NSEG),LISTE(NOD),IRECT(4,NSEG)
63 my_real :: A(3,*),X(3,*),V(3,*),LA(3,NOD),VO(NOD),PO(NOD),FV(*),MS(*),STIFN(
64TYPE(t_ebcs_tab),
TARGET,
INTENT(IN) :: EBCS_TAB
65 INTEGER,
INTENT(IN) :: IEBCS
67 TYPE(output_),
INTENT(INOUT) :: OUTPUT
68 my_real,
INTENT(IN) :: dt1
69 my_real,
INTENT(IN) :: time
73 INTEGER :: IPRES,IRHO,I,IS,KSEG,N1,N2,N3,N4,NG1,NG2,NG3,NG4,N,IENER
74 my_real :: ORIENT,PRES,RHO,C,LCAR,R1,R2,ROC,ALP,FAC,
75 . X13,Y13,Z13,X24,Y24,Z24,NX,NY,NZ,S,
76 . ROOU,ENOU,VMX,VMY,VMZ,FLUXI,FLUXO,VN,PN,DU,DP,P,
78 my_real :: de, de_in, de_out, dm_in, dm_out
79 CLASS(t_ebcs),
POINTER :: EBCS
82 ebcs => ebcs_tab%tab(iebcs)%poly
104 pres=ebcs%pres*fv(ipres)
109 rho=ebcs%rho*fv(irho)
114 ener=ebcs%ener*fv(iener)
122 TYPE IS (t_ebcs_valvin)
127 pres=ebcs%pres*fv(ipres)
132 rho=ebcs%rho*fv(irho)
137 ener=ebcs%ener*fv(iener)
145 TYPE IS (t_ebcs_valvout)
150 pres=ebcs%pres*fv(ipres)
155 rho=ebcs%rho*fv(irho)
160 ener=ebcs%ener*fv(iener)
173 IF (lcar > zero)alp=c*dt1/lcar
183 orient=float(iseg(is)/kseg)
188 IF(n4==0 .OR. n4==n3)
THEN
189 fac=one_over_6*orient
192 fac=one_over_8*orient
199 x13=x(1,ng3)-x(1,ng1)
200 y13=x(2,ng3)-x(2,ng1)
201 z13=x(3,ng3)-x(3,ng1)
202 x24=x(1,ng4)-x(1,ng2)
203 y24=x(2,ng4)-x(2,ng2)
204 z24=x(3,ng4)-x(3,ng2)
206 nx=(y13*z24-z13*y24)*fac
207 ny=(z13*x24-x13*z24)*fac
208 nz=(x13*y24-y13*x24)*fac
220 vmx=v(1,ng1)+v(1,ng2)+v(1,ng3)
221 vmy=v(2,ng1)+v(2,ng2)+v(2,ng3)
222 vmz=v(3,ng1)+v(3,ng2)+v(3,ng3)
234 roou = segvar%RHO(kseg)
235 enou = segvar%EINT(kseg)
237 fluxo=(vmx*nx+vmy*ny+vmz*nz)*dt1
238 fluxi=
min(fluxo,zero)
239 fluxo=
max(fluxo,zero)
240 dm_out=dm_out-fluxo*roou
241 dm_in=dm_in-fluxi*rho
242 de_out=de_out-fluxo*enou
243 de_in=de_in-fluxi*ener
248 segvar%EINT(kseg)=ener
254 s=sqrt(la(1,i)**2+la(2,i)**2+la(3,i)**2)
255 vn=(v(1,n)*la(1,i)+v(2,n)*la(2,i)+v(3,n)*la(3,i))/s
257 pn=pres+r1*vn+r2*vn*abs(vn)
258 dpdv=roc+r1+two*r2*abs(vn)
279 a(1,n)=a(1,n)-p*la(1,i)
280 a(2,n)=a(2,n)-p*la(2,i)
281 a(3,n)=a(3,n)-p*la(3,i)
283 de = -half*(po(i)+p)*dt1*vn*s
284 de_in = de_in +
max(de, zero)
285 de_out = de_out +
min(de, zero)
287 stifn(n)=stifn(n)+(two*(s*dpdv)**2)/ms(n)
292 output%DATA%INOUT%DM_IN = output%DATA%INOUT%DM_IN + dm_in
293 output%DATA%INOUT%DM_OUT = output%DATA%INOUT%DM_OUT + dm_out
294 output%DATA%INOUT%DE_IN = output%DATA%INOUT%DE_IN + de_in
295 output%DATA%INOUT%DE_OUT = output%DATA%INOUT%DE_OUT + de_out
subroutine ebcs123_pres(nseg, iseg, segvar, a, v, x, liste, nod, irect, vo, po, la, fv, ms, stifn, ebcs_tab, iebcs, output, dt1, time)