195 class(ChfGwfExchangeType) :: this
196 integer(I4B),
intent(in) :: iout
198 integer(I4B),
dimension(:, :),
contiguous,
pointer :: cellidm1
199 integer(I4B),
dimension(:, :),
contiguous,
pointer :: cellidm2
200 real(DP),
dimension(:),
contiguous,
pointer :: bedleak
201 real(DP),
dimension(:),
contiguous,
pointer :: cfact
202 character(len=20) :: cellstr1, cellstr2
204 integer(I4B) :: iexg, nodeswf, nodegwf
206 character(len=*),
parameter :: fmtexglabel =
"(1x, 3a10, 50(a16))"
207 character(len=*),
parameter :: fmtexgdata = &
208 "(5x, a, 1x, a ,50(1pg16.6))"
210 call mem_setptr(cellidm1,
'CELLIDM1', this%input_mempath)
211 call mem_setptr(cellidm2,
'CELLIDM2', this%input_mempath)
212 call mem_setptr(bedleak,
'BEDLEAK', this%input_mempath)
213 call mem_setptr(cfact,
'CFACT', this%input_mempath)
215 write (iout,
'(1x,a)')
'PROCESSING EXCHANGEDATA'
217 if (this%ipr_input /= 0)
then
218 write (iout, fmtexglabel)
'NODEM1',
'NODEM2',
'BEDLEAK',
'CFACT'
221 do iexg = 1, this%nexg
223 if (
associated(this%model1))
then
225 nodeswf = this%noder(this%model1, cellidm1(:, iexg), iout)
226 this%nodeswf(iexg) = nodeswf
228 this%nodeswf(iexg) = -1
231 if (
associated(this%model2))
then
233 nodegwf = this%noder(this%model2, cellidm2(:, iexg), iout)
234 this%nodegwf(iexg) = nodegwf
236 this%nodegwf(iexg) = -1
240 this%bedleak(iexg) = bedleak(iexg)
241 this%cfact(iexg) = cfact(iexg)
244 if (this%ipr_input /= 0)
then
245 cellstr1 = this%cellstr(this%model1, cellidm1(:, iexg), iout)
246 cellstr2 = this%cellstr(this%model2, cellidm2(:, iexg), iout)
247 write (iout, fmtexgdata) trim(cellstr1), trim(cellstr2), &
248 this%bedleak(iexg), this%cfact(iexg)
252 if (
associated(this%model1))
then
253 if (nodeswf <= 0)
then
254 cellstr1 = this%cellstr(this%model1, cellidm1(:, iexg), iout)
256 trim(adjustl(this%model1%name))// &
257 ' Cell is outside active grid domain ('// &
258 trim(adjustl(cellstr1))//
').'
259 call store_error(errmsg)
264 if (
associated(this%model2))
then
265 if (nodegwf <= 0)
then
266 cellstr2 = this%cellstr(this%model2, cellidm2(:, iexg), iout)
268 trim(adjustl(this%model2%name))// &
269 ' Cell is outside active grid domain ('// &
270 trim(adjustl(cellstr2))//
').'
271 call store_error(errmsg)
276 write (iout,
'(1x,a)')
'END OF EXCHANGEDATA'
279 nerr = count_errors()
281 call store_error(
'Errors encountered in exchange input file.')
282 call store_error_filename(this%filename)