160 class(PrtFmiType) :: this
162 integer(I4B) :: j, i, ip, ib
163 integer(I4B) :: ioffset, iflowface, iauxiflowface
165 character(len=LENAUXNAME) :: auxname
168 this%StorageFlows = dzero
169 if (this%igwfstrgss /= 0) &
170 this%StorageFlows = this%StorageFlows + &
172 if (this%igwfstrgsy /= 0) &
173 this%StorageFlows = this%StorageFlows + &
176 this%SourceFlows = dzero
177 this%SinkFlows = dzero
178 this%BoundaryFlows = dzero
179 do ip = 1, this%nflowpack
181 naux = this%gwfpackages(ip)%naux
184 auxname = this%gwfpackages(ip)%auxname(j)
185 if (trim(adjustl(auxname)) ==
"IFLOWFACE")
then
191 do ib = 1, this%gwfpackages(ip)%nbound
192 i = this%gwfpackages(ip)%nodelist(ib)
194 if (this%ibound(i) <= 0) cycle
195 qbnd = this%gwfpackages(ip)%get_flow(ib)
198 if (iauxiflowface > 0)
then
199 iflowface = nint(this%gwfpackages(ip)%auxvar(iauxiflowface, ib))
201 if (iflowface < 0) iflowface = iflowface + this%max_faces + 1
203 if (iflowface .gt. 0)
then
204 ioffset = (i - 1) * this%max_faces
205 this%BoundaryFlows(ioffset + iflowface) = &
206 this%BoundaryFlows(ioffset + iflowface) + qbnd
207 else if (qbnd .gt. dzero)
then
208 this%SourceFlows(i) = this%SourceFlows(i) + qbnd
209 else if (qbnd .lt. dzero)
then
210 this%SinkFlows(i) = this%SinkFlows(i) + qbnd