31 SUBROUTINE ebcs7(NSEG,ISEG,SEGVAR,
41#include "implicit_f.inc"
50 INTEGER NSEG,NOD,ISEG(NSEG),LISTE(NOD),IRECT(4,NSEG)
52 . A(3,*),V(3,*),X(3,*),RO0(NSEG),EN0(NSEG),
53 . V0(3,NOD),LA(3,NOD),MS(*),STIFN(*)
54 TYPE(t_ebcs_iniv),
INTENT(IN) :: EBCS
59 INTEGER I,IS,KSEG,N1,N2,,N4,NG1,,NG3,NG4,N
61 . ORIENT,RHO,,ROC,FAC,
62 . X13,Y13,Z13,X24,Y24,Z24,NX,NY,NZ,S,
63 . roou,enou,vmx,vmy,vmz,fluxi,fluxo,p,dvx,dvy,dvz
74 ro0(is) = segvar%RHO(kseg)
75 en0(is) = segvar%EINT(kseg)
93 orient=float(iseg(is)/kseg)
98 IF(n4==0 .OR. n4==n3)
THEN
102 fac=one_over_8*orient
109 x13=x(1,ng3)-x(1,ng1)
110 y13=x(2,ng3)-x(2,ng1)
111 z13=x(3,ng3)-x(3,ng1)
112 x24=x(1,ng4)-x(1,ng2)
113 y24=x(2,ng4)-x(2,ng2)
114 z24=x(3,ng4)-x(3,ng2)
116 nx=(y13*z24-z13*y24)*fac
117 ny=(z13*x24-x13*z24)*fac
118 nz=(x13*y24-y13*x24)*fac
130 vmx=v(1,ng1)+v(1,ng2)+v(1,ng3)
131 vmy=v(2,ng1)+v(2,ng2)+v(2,ng3)
132 vmz=v(3,ng1)+v(3,ng2)+v(3,ng3)
145 roou = segvar%RHO(kseg)
146 enou = segvar%EINT(kseg)
148 fluxo=(vmx*nx+vmy*ny+vmz*nz)*dt1
149 fluxi=
min(fluxo,zero)
150 fluxo=
max(fluxo,zero)
152 dmf=dmf-fluxo*roou-fluxi*ro0(is)
153 def=def-fluxo*enou-fluxi*en0(is)
157 segvar%RHO(kseg)=ro0(is)
158 segvar%EINT(kseg)=en0(is)
163 s=sqrt(la(1,i)**2+la(2,i)**2+la(3,i)**2)
168 p=roc*(dvx*la(1,i)+dvy*la(2,i)+dvz*la(3,i))/s
170 a(1,n)=a(1,n)-p*la(1,i)
171 a(2,n)=a(2,n)-p*la(2,i)
172 a(3,n)=a(3,n)-p*la(3,i)
173 stifn(n)=stifn(n)+(two*(s*roc)**2)/ms(n)
subroutine ebcs7(nseg, iseg, segvar, a, v, x, liste, nod, irect, ro0, en0, v0, la, ms, stifn, ebcs)