196 class(OlfGwfExchangeType) :: this
197 integer(I4B),
intent(in) :: iout
199 integer(I4B),
dimension(:, :),
contiguous,
pointer :: cellidm1
200 integer(I4B),
dimension(:, :),
contiguous,
pointer :: cellidm2
201 real(DP),
dimension(:),
contiguous,
pointer :: bedleak
202 real(DP),
dimension(:),
contiguous,
pointer :: cfact
203 character(len=20) :: cellstr1, cellstr2
205 integer(I4B) :: iexg, nodeswf, nodegwf
207 character(len=*),
parameter :: fmtexglabel =
"(1x, 3a10, 50(a16))"
208 character(len=*),
parameter :: fmtexgdata = &
209 "(5x, a, 1x, a ,50(1pg16.6))"
211 call mem_setptr(cellidm1,
'CELLIDM1', this%input_mempath)
212 call mem_setptr(cellidm2,
'CELLIDM2', this%input_mempath)
213 call mem_setptr(bedleak,
'BEDLEAK', this%input_mempath)
214 call mem_setptr(cfact,
'CFACT', this%input_mempath)
216 write (iout,
'(1x,a)')
'PROCESSING EXCHANGEDATA'
218 if (this%ipr_input /= 0)
then
219 write (iout, fmtexglabel)
'NODEM1',
'NODEM2',
'BEDLEAK',
'CFACT'
222 do iexg = 1, this%nexg
224 if (
associated(this%model1))
then
226 nodeswf = this%noder(this%model1, cellidm1(:, iexg), iout)
227 this%nodeswf(iexg) = nodeswf
229 this%nodeswf(iexg) = -1
232 if (
associated(this%model2))
then
234 nodegwf = this%noder(this%model2, cellidm2(:, iexg), iout)
235 this%nodegwf(iexg) = nodegwf
237 this%nodegwf(iexg) = -1
241 this%bedleak(iexg) = bedleak(iexg)
242 this%cfact(iexg) = cfact(iexg)
245 if (this%ipr_input /= 0)
then
246 cellstr1 = this%cellstr(this%model1, cellidm1(:, iexg), iout)
247 cellstr2 = this%cellstr(this%model2, cellidm2(:, iexg), iout)
248 write (iout, fmtexgdata) trim(cellstr1), trim(cellstr2), &
249 this%bedleak(iexg), this%cfact(iexg)
253 if (
associated(this%model1))
then
254 if (nodeswf <= 0)
then
255 cellstr1 = this%cellstr(this%model1, cellidm1(:, iexg), iout)
257 trim(adjustl(this%model1%name))// &
258 ' Cell is outside active grid domain ('// &
259 trim(adjustl(cellstr1))//
').'
260 call store_error(errmsg)
265 if (
associated(this%model2))
then
266 if (nodegwf <= 0)
then
267 cellstr2 = this%cellstr(this%model2, cellidm2(:, iexg), iout)
269 trim(adjustl(this%model2%name))// &
270 ' Cell is outside active grid domain ('// &
271 trim(adjustl(cellstr2))//
').'
272 call store_error(errmsg)
277 write (iout,
'(1x,a)')
'END OF EXCHANGEDATA'
280 nerr = count_errors()
282 call store_error(
'Errors encountered in exchange input file.')
283 call store_error_filename(this%filename)
subroutine, public memorystore_release(varname, memory_path)
Release a single variable from the memory store.