155 class(PrtFmiType) :: this
157 integer(I4B) :: j, i, ip, ib
158 integer(I4B) :: ioffset, iflowface, iauxiflowface, icellface
160 character(len=LENAUXNAME) :: auxname
163 this%StorageFlows = dzero
164 if (this%igwfstrgss /= 0) &
165 this%StorageFlows = this%StorageFlows + this%gwfstrgss
166 if (this%igwfstrgsy /= 0) &
167 this%StorageFlows = this%StorageFlows + this%gwfstrgsy
169 this%SourceFlows = dzero
170 this%SinkFlows = dzero
171 this%BoundaryFlows = dzero
172 this%BoundaryFaces = 0
173 do ip = 1, this%nflowpack
175 naux = this%gwfpackages(ip)%naux
178 auxname = this%gwfpackages(ip)%auxname(j)
179 if (trim(adjustl(auxname)) ==
"IFLOWFACE")
then
185 do ib = 1, this%gwfpackages(ip)%nbound
186 i = this%gwfpackages(ip)%nodelist(ib)
188 if (this%ibound(i) <= 0) cycle
189 qbnd = this%gwfpackages(ip)%get_flow(ib)
193 if (iauxiflowface > 0)
then
194 iflowface = nint(this%gwfpackages(ip)%auxvar(iauxiflowface, ib))
195 icellface = this%iflowface_to_icellface(iflowface)
197 if (icellface > 0)
then
198 call this%mark_boundary_face(i, icellface)
199 ioffset = (i - 1) * this%max_faces
200 this%BoundaryFlows(ioffset + icellface) = &
201 this%BoundaryFlows(ioffset + icellface) + qbnd
202 else if (qbnd .gt. dzero)
then
203 this%SourceFlows(i) = this%SourceFlows(i) + qbnd
204 else if (qbnd .lt. dzero)
then
205 this%SinkFlows(i) = this%SinkFlows(i) + qbnd