190 class(GwfPrtExchangeType) :: this
192 class(BaseModelType),
pointer :: mb => null()
193 type(GwfModelType),
pointer :: gwfmodel => null()
194 type(PrtModelType),
pointer :: prtmodel => null()
196 character(len=*),
parameter :: fmtdiserr = &
197 "('GWF and PRT Models do not have the same discretization for exchange&
199 & GWF Model has ', i0, ' user nodes and ', i0, ' reduced nodes.&
200 & PRT Model has ', i0, ' user nodes and ', i0, ' reduced nodes.&
201 & Ensure discretization packages, including IDOMAIN, are identical.')"
204 mb => getbasemodelfromlist(basemodellist, this%m1id)
206 type is (gwfmodeltype)
211 mb => getbasemodelfromlist(basemodellist, this%m2id)
213 type is (prtmodeltype)
218 if (prtmodel%dis%nodes /= gwfmodel%dis%nodes .or. &
219 prtmodel%dis%nodesuser /= gwfmodel%dis%nodesuser)
then
220 write (errmsg, fmtdiserr) trim(this%name), &
221 gwfmodel%dis%nodesuser, &
222 gwfmodel%dis%nodes, &
223 prtmodel%dis%nodesuser, &
225 call store_error(errmsg, terminate=.true.)
229 prtmodel%fmi%gwfhead => gwfmodel%x
231 'GWFHEAD', prtmodel%fmi%memoryPath, &
232 'X', gwfmodel%memoryPath)
233 prtmodel%fmi%gwfsat => gwfmodel%npf%sat
235 'GWFSAT', prtmodel%fmi%memoryPath, &
236 'SAT', gwfmodel%npf%memoryPath)
237 prtmodel%fmi%gwfspdis => gwfmodel%npf%spdis
239 'GWFSPDIS', prtmodel%fmi%memoryPath, &
240 'SPDIS', gwfmodel%npf%memoryPath)
244 if (prtmodel%inmst > 0)
then
245 if (gwfmodel%insto > 0)
then
246 prtmodel%fmi%gwfstrgss => gwfmodel%sto%strgss
247 prtmodel%fmi%igwfstrgss = 1
248 if (gwfmodel%sto%iusesy == 1)
then
249 prtmodel%fmi%gwfstrgsy => gwfmodel%sto%strgsy
250 prtmodel%fmi%igwfstrgsy = 1
261 call this%gwfbnd2prtfmi()
264 if (gwfmodel%inmvr /= 0) &
265 prtmodel%fmi%mvrbudobj => gwfmodel%mvr%budobj