162 class(PrtFmiType) :: this
164 integer(I4B) :: j, i, ip, ib
165 integer(I4B) :: iflowface, iauxiflowface, icellface
167 character(len=LENAUXNAME) :: auxname
170 this%StorageFlows = dzero
171 if (this%igwfstrgss /= 0) &
172 this%StorageFlows = this%StorageFlows + this%gwfstrgss
173 if (this%igwfstrgsy /= 0) &
174 this%StorageFlows = this%StorageFlows + this%gwfstrgsy
176 this%SourceFlows = dzero
177 this%SinkFlows = dzero
178 this%BoundaryFlows = dzero
179 this%BoundaryFaces = 0
180 do ip = 1, this%nflowpack
182 naux = this%gwfpackages(ip)%naux
185 auxname = this%gwfpackages(ip)%auxname(j)
186 if (trim(adjustl(auxname)) ==
"IFLOWFACE")
then
192 do ib = 1, this%gwfpackages(ip)%nbound
193 i = this%gwfpackages(ip)%nodelist(ib)
195 if (this%ibound(i) <= 0) cycle
196 qbnd = this%gwfpackages(ip)%get_flow(ib)
200 if (iauxiflowface > 0)
then
201 iflowface = nint(this%gwfpackages(ip)%auxvar(iauxiflowface, ib))
202 icellface = this%iflowface_to_icellface(iflowface)
204 if (icellface > 0)
then
205 call this%mark_boundary_face(i, icellface)
206 this%BoundaryFlows(i, icellface) = &
207 this%BoundaryFlows(i, icellface) + qbnd
208 else if (qbnd .gt. dzero)
then
209 this%SourceFlows(i) = this%SourceFlows(i) + qbnd
210 else if (qbnd .lt. dzero)
then
211 this%SinkFlows(i) = this%SinkFlows(i) + qbnd