160 class(PrtFmiType) :: this
162 integer :: j, i, ip, ib
163 integer :: ioffset, iflowface, iauxiflowface
164 double precision :: qbnd
165 character(len=LENAUXNAME) :: auxname
168 this%StorageFlows = 0d0
169 if (this%igwfstrgss /= 0) &
170 this%StorageFlows = this%StorageFlows + &
172 if (this%igwfstrgsy /= 0) &
173 this%StorageFlows = this%StorageFlows + &
177 this%SourceFlows = 0d0
179 this%BoundaryFlows = 0d0
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
195 do ib = 1, this%gwfpackages(ip)%nbound
196 i = this%gwfpackages(ip)%nodelist(ib)
198 if (this%ibound(i) <= 0) cycle
199 qbnd = this%gwfpackages(ip)%get_flow(ib)
201 if (iauxiflowface > 0)
then
203 iflowface = nint(this%gwfpackages(ip)%auxvar(iauxiflowface, ib))
204 if (iflowface < 0) iflowface = iflowface + 11
210 if (iflowface .gt. 0)
then
211 ioffset = (i - 1) * 10
212 this%BoundaryFlows(ioffset + iflowface) = &
213 this%BoundaryFlows(ioffset + iflowface) + qbnd
214 else if (qbnd .gt. 0d0)
then
215 this%SourceFlows(i) = this%SourceFlows(i) + qbnd
216 else if (qbnd .lt. 0d0)
then
217 this%SinkFlows(i) = this%SinkFlows(i) + qbnd