40 1 ELSOUT ,AOUTOT ,NVENT ,NELT ,ITTF ,
41 2 ELAREA ,ELSINI ,ELEM ,ITAGEL ,SVENT ,
42 3 IBAGHOL ,RVOLU ,RBAGHOL ,PORO ,P ,
43 4 ELTG ,IPARG ,MATTG ,NEL ,POROSITY,
44 5 IPM ,PM ,ELBUF_TAB,IGROUPC ,IGROUPTG)
53#include "implicit_f.inc"
64 INTEGER , NELT, NEL, ITTF, ELEM(3,*), IBAGHOL(NIBHOL,*), ITAGEL(*),
65 . ELTG(*), IPARG(NPARG,*), IPM(NPROPMI,*),
66 . MATTG(*), IGROUPC(*), IGROUPTG(*)
71 . elsout(*), elarea(*), elsini(*), rvolu(*), svent(nvent),
72 . rbaghol(nrbhol,*),
poro(*), p(*), pm(npropm,*), porosity(*)
73 TYPE(elbuf_struct_),
DIMENSION(NGROUP) :: ELBUF_TAB
78 INTEGER IEL, K, N1, N2, N3,
79 . IDEF, IVENT, IVENTYP,
80 . IPORT, IPORP, IPORA, IPORT1, , IPORA1,
83 INTEGER JEL, NFT, NELG
85 . PEXT, AVENT, BVENT, AOUT, AOUT1,
86 . FPORT, FPORP, FPORA, FPORT1, FPORP1, FPORA1, DERI,
87 . SCALT, SCALP, SCALS, AREA, AINI, EXTEN,
88 . ttf, flc, fac, fac1, svtfac, pmean, tt1,
104 IF (itagel(iel)<0)
THEN
106 svent(ivent)=svent(ivent)+elarea(iel)
111 rbaghol(16,ivent)=zero
112 rbaghol(17,ivent)=zero
113 rbaghol(18,ivent)=zero
114 rbaghol(19,ivent)=zero
115 rbaghol(20,ivent)=zero
116 rbaghol(21,ivent)=zero
117 rbaghol(22,ivent)=zero
125 IF (itagel(iel)<0)
THEN
128 iventyp=ibaghol(13,ivent)
132 pmean=third*(p(n1)+p(n2)+p(n3))
141 idef=ibaghol(1,ivent)
142 IF (idef==0.OR.idef==2) cycle
143 avent =rbaghol(2,ivent)
144 bvent =rbaghol(6,ivent)
145 tvent =rbaghol(3,ivent)
147 iport =ibaghol(3,ivent)
148 iporp =ibaghol(4,ivent)
149 ipora =ibaghol(5,ivent)
150 iport1=ibaghol(6,ivent)
151 iporp1=ibaghol(7,ivent)
152 ipora1=ibaghol(8,ivent)
154 fport =rbaghol(7,ivent)
155 fporp =rbaghol(8,ivent)
156 fpora =rbaghol(9,ivent)
157 fport1=rbaghol(10,ivent)
158 fporp1=rbaghol(11,ivent)
159 fpora1=rbaghol(12,ivent)
161 aout=avent*area*(one-
poro(iel))
162 aout1=bvent*area*
poro(iel)
164 IF (ittf==13) tt1=tt-ttf-tvent
165 IF (ipora/=0) aout=aout*fpora*get_u_func(ipora,exten,deri)
166 IF (iport/=0)aout=aout*fport*get_u_func(iport,tt1*scalt,deri)
167 IF (iporp/=0)aout=aout*fporp*get_u_func(iporp,(pmean-pext)*scalp,deri)
169 IF (ipora1/=0) aout1=aout1*fpora1*get_u_func(ipora1,exten,deri)
170 IF (iport1/=0)aout1=aout1*fport1*get_u_func(iport1,tt1*scalt,deri)
171 IF (iporp1/=0)aout1=aout1*fporp1*get_u_func(iporp1,(pmean-pext)*scalp,deri)
177 iblockage=ibaghol(14,ivent)
180 tvent=rbaghol(3,ivent)
187 IF (mtn/=19.AND.mtn/=58) cycle
190 nfunc = ipm(10,im)+ipm(6,im)
193 ELSEIF(ileakage==1)
THEN
197 ELSEIF(ileakage==2.OR.ileakage==3)
THEN
199 iport=ipm(10+nfunc-1,im)
203 flc=fport*get_u_func(iport,tt1*scalt,deri)
206 iporp=ipm(10+nfunc-2,im)
211 fac=fporp*get_u_func(iporp,pmean*scalp,deri)
213 fac=fporp*get_u_func(iporp,(pmean-pext)*scalp,deri)
217 ELSEIF(ileakage==4)
THEN
219 CALL porform4(svtfac,im,ipm,pm,area,aini,p,pext)
220 ELSEIF(ileakage==5)
THEN
222 CALL ancmsg(msgid=258,anmode=aninfo,i1=ipm(1,im))
235 CALL porform5(svtfac,im,ipm,pm,elbuf_tab(ng),p,pext,jel,nelg)
238 ELSEIF(ileakage==6)
THEN
240 CALL porform6(svtfac,im,pm,area,aini,p,pext)
247 IF(iblockage==1)
THEN
248 aout = (one -
poro(iel))*area*svtfac
251 aout =(one -
poro(iel))*area*svtfac
253 IF(fac1 == zero)
THEN
254 iport=ipm(10+nfunc,im)
258 fac1=fport*get_u_func(iport,tt1*scalt,deri)
261 aout1= fac1*
poro(iel)*area*svtfac
266 elsout(iel)=aout+aout1
267 aoutot=aoutot+elsout(iel)
268 rbaghol(16,ivent)=rbaghol(16,ivent)+aout
269 rbaghol(17,ivent)=rbaghol(17,ivent)+aout1
272 porosity(iel-nel)=
min(one,elsout(iel)/area)
subroutine fvvent0(elsout, aoutot, nvent, nelt, ittf, elarea, elsini, elem, itagel, svent, ibaghol, rvolu, rbaghol, poro, p, eltg, iparg, mattg, nel, porosity, ipm, pm, elbuf_tab, igroupc, igrouptg)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)