171 class(PrtFmiType) :: this
173 integer(I4B) :: j, i, ip, ib
174 integer(I4B) :: iflowface, iauxiflowface, icellface
176 character(len=LENAUXNAME) :: auxname
179 this%StorageFlows = dzero
180 if (this%igwfstrgss /= 0) &
181 this%StorageFlows = this%StorageFlows + this%gwfstrgss
182 if (this%igwfstrgsy /= 0) &
183 this%StorageFlows = this%StorageFlows + this%gwfstrgsy
185 this%SourceFlows = dzero
186 this%SinkFlows = dzero
187 this%BoundaryFlows = dzero
188 this%BoundaryFaces = 0
189 do ip = 1, this%nflowpack
191 naux = this%gwfpackages(ip)%naux
194 auxname = this%gwfpackages(ip)%auxname(j)
195 if (trim(adjustl(auxname)) ==
"IFLOWFACE")
then
201 do ib = 1, this%gwfpackages(ip)%nbound
202 i = this%gwfpackages(ip)%nodelist(ib)
204 if (this%ibound(i) <= 0) cycle
205 qbnd = this%gwfpackages(ip)%get_flow(ib)
209 if (iauxiflowface > 0)
then
210 iflowface = nint(this%gwfpackages(ip)%auxvar(iauxiflowface, ib))
211 icellface = this%iflowface_to_icellface(iflowface)
213 if (icellface > 0)
then
214 call this%mark_boundary_face(i, icellface)
215 this%BoundaryFlows(i, icellface) = &
216 this%BoundaryFlows(i, icellface) + qbnd
217 else if (qbnd .gt. dzero)
then
218 this%SourceFlows(i) = this%SourceFlows(i) + qbnd
219 else if (qbnd .lt. dzero)
then
220 this%SinkFlows(i) = this%SinkFlows(i) + qbnd