5 &(phiel,nelem,nelmax,ikle,iopt,npoin,fn,fi_i,fstar,hn,h,su,teta,
57 INTEGER,
INTENT(IN) :: IOPT,NELEM,NELMAX
58 INTEGER,
INTENT(IN) :: IKLE(nelmax,3)
59 INTEGER,
INTENT(IN) :: NPOIN
60 DOUBLE PRECISION,
INTENT(IN) :: PHIEL(nelmax,3)
61 TYPE(bief_obj),
INTENT(IN) :: FN
62 DOUBLE PRECISION,
INTENT(INOUT) :: FI_I(npoin)
63 DOUBLE PRECISION,
INTENT(INOUT) :: FSTAR(npoin),H(npoin),HN(npoin)
64 DOUBLE PRECISION,
INTENT(IN) :: SU(nelem),DFDT(npoin),TETA
68 INTEGER IELEM,I1,I2,I3,I
69 DOUBLE PRECISION K1,K2,K3,TIERS,FN1,FN2,FN3,FS1,FS2,FS3
70 DOUBLE PRECISION BETA1,BETA2,BETA3,BETA1PSI,BETA2PSI,BETA3PSI
71 DOUBLE PRECISION FINCORR1,FINCORR2,FINCORR3
72 DOUBLE PRECISION PHITCOR,SUMAX,H1,H2,H3,COEF
74 DOUBLE PRECISION FP21,FP32,FP13,FP12,FP23,FP31
78 DOUBLE PRECISION,
PARAMETER :: EPSPHI = 1.d-12
86 IF(iopt.EQ.2.OR.iopt.EQ.3)
THEN 107 fp12=max(min(k1,-k2),0.d0)
108 fp23=max(min(k2,-k3),0.d0)
109 fp31=max(min(k3,-k1),0.d0)
110 fp21=max(min(k2,-k1),0.d0)
111 fp32=max(min(k3,-k2),0.d0)
112 fp13=max(min(k1,-k3),0.d0)
124 h1=((1.d0-teta)*h(i1)+teta*hn(i1))*coef
125 h2=((1.d0-teta)*h(i2)+teta*hn(i2))*coef
126 h3=((1.d0-teta)*h(i3)+teta*hn(i3))*coef
131 & +(1.d0-teta)*(fp12*(fn1-fn2)+fp13*(fn1-fn3))
132 & + teta *(fp12*(fs1-fs2)+fp13*(fs1-fs3))
134 & +(1.d0-teta)*(fp21*(fn2-fn1)+fp23*(fn2-fn3))
135 & + teta *(fp21*(fs2-fs1)+fp23*(fs2-fs3))
137 & +(1.d0-teta)*(fp31*(fn3-fn1)+fp32*(fn3-fn2))
138 & + teta *(fp31*(fs3-fs1)+fp32*(fs3-fs2))
142 phitcor=fincorr1+fincorr2+fincorr3
144 IF(abs(phitcor).GT.epsphi)
THEN 146 beta1=fincorr1/phitcor
147 beta2=fincorr2/phitcor
148 beta3=fincorr3/phitcor
150 sumax=max(0.d0,beta1)+max(0.d0,beta2)+max(0.d0,beta3)
151 IF(sumax.GT.1.d-20)
THEN 152 beta1psi=max(0.d0,beta1)/sumax
153 beta2psi=max(0.d0,beta2)/sumax
154 beta3psi=max(0.d0,beta3)/sumax
155 fi_i(i1)=fi_i(i1)+beta1psi*phitcor
156 fi_i(i2)=fi_i(i2)+beta2psi*phitcor
157 fi_i(i3)=fi_i(i3)+beta3psi*phitcor
167 WRITE(
lu,*)
'FLUX_EF_VF_2:' 168 WRITE(
lu,*)
'UNKNOWN OPTION: ',iopt
subroutine flux_ef_vf_2(PHIEL, NELEM, NELMAX, IKLE, IOPT, NPOIN, FN, FI_I, FSTAR, HN, H, SU, TETA, DFDT)