181 class(GwfPrtExchangeType) :: this
183 class(BaseModelType),
pointer :: mb => null()
184 type(GwfModelType),
pointer :: gwfmodel => null()
185 type(PrtModelType),
pointer :: prtmodel => null()
187 character(len=*),
parameter :: fmtdiserr = &
188 "('GWF and PRT Models do not have the same discretization for exchange&
190 & GWF Model has ', i0, ' user nodes and ', i0, ' reduced nodes.&
191 & PRT Model has ', i0, ' user nodes and ', i0, ' reduced nodes.&
192 & Ensure discretization packages, including IDOMAIN, are identical.')"
195 mb => getbasemodelfromlist(basemodellist, this%m1id)
197 type is (gwfmodeltype)
202 mb => getbasemodelfromlist(basemodellist, this%m2id)
204 type is (prtmodeltype)
209 if (prtmodel%dis%nodes /= gwfmodel%dis%nodes .or. &
210 prtmodel%dis%nodesuser /= gwfmodel%dis%nodesuser)
then
211 write (errmsg, fmtdiserr) trim(this%name), &
212 gwfmodel%dis%nodesuser, &
213 gwfmodel%dis%nodes, &
214 prtmodel%dis%nodesuser, &
216 call store_error(errmsg, terminate=.true.)
220 prtmodel%fmi%gwfhead => gwfmodel%x
222 'GWFHEAD', prtmodel%fmi%memoryPath, &
223 'X', gwfmodel%memoryPath)
224 prtmodel%fmi%gwfsat => gwfmodel%npf%sat
226 'GWFSAT', prtmodel%fmi%memoryPath, &
227 'SAT', gwfmodel%npf%memoryPath)
228 prtmodel%fmi%gwfspdis => gwfmodel%npf%spdis
230 'GWFSPDIS', prtmodel%fmi%memoryPath, &
231 'SPDIS', gwfmodel%npf%memoryPath)
235 if (prtmodel%inmst > 0)
then
236 if (gwfmodel%insto > 0)
then
237 prtmodel%fmi%gwfstrgss => gwfmodel%sto%strgss
238 prtmodel%fmi%igwfstrgss = 1
239 if (gwfmodel%sto%iusesy == 1)
then
240 prtmodel%fmi%gwfstrgsy => gwfmodel%sto%strgsy
241 prtmodel%fmi%igwfstrgsy = 1
247 call this%gwfbnd2prtfmi()
250 if (gwfmodel%inmvr /= 0) &
251 prtmodel%fmi%mvrbudobj => gwfmodel%mvr%budobj