19 real(dp),
dimension(:),
pointer,
contiguous,
private :: x => null()
20 real(dp),
dimension(:),
pointer,
contiguous,
private :: flowja => null()
43 integer(I4B),
pointer,
intent(in) :: inobs
46 call obs%allocate_scalars()
48 obs%inputFilename =
''
49 obs%inUnitObs => inobs
60 type(
gwfictype),
pointer,
intent(in) :: ic
61 real(DP),
dimension(:),
pointer,
contiguous,
intent(in) :: x
62 real(DP),
dimension(:),
pointer,
contiguous,
intent(in) :: flowja
68 call this%set_pointers(ic, x, flowja)
79 integer(I4B),
intent(in) :: iout
80 character(len=*),
intent(in) :: pkgname
81 character(len=*),
intent(in) :: filtyp
87 call this%ObsType%obs_df(iout, pkgname, filtyp, dis)
93 call this%StoreObsType(
'head', .false., indx)
97 call this%StoreObsType(
'drawdown', .false., indx)
101 call this%StoreObsType(
'flow-ja-face', .true., indx)
114 integer(I4B) :: i, jaindex, nodenumber
116 character(len=100) :: msg
119 call this%obs_bd_clear()
122 if (this%npakobs > 0)
then
123 do i = 1, this%npakobs
124 obsrv => this%pakobs(i)%obsrv
125 nodenumber = obsrv%NodeNumber
126 jaindex = obsrv%JaIndex
127 select case (obsrv%ObsTypeId)
129 call this%SaveOneSimval(obsrv, this%x(nodenumber))
131 v = this%ic%strt(nodenumber) - this%x(nodenumber)
132 call this%SaveOneSimval(obsrv, v)
133 case (
'FLOW-JA-FACE')
134 call this%SaveOneSimval(obsrv, this%flowja(jaindex))
136 msg =
'Error: Unrecognized observation type: '//trim(obsrv%ObsTypeId)
171 nullify (this%flowja)
172 call this%ObsType%obs_da()
183 type(
gwfictype),
pointer,
intent(in) :: ic
184 real(DP),
dimension(:),
pointer,
contiguous,
intent(in) :: x
185 real(DP),
dimension(:),
pointer,
contiguous,
intent(in) :: flowja
189 this%flowja => flowja
203 integer(I4B),
intent(in) :: inunitobs
204 integer(I4B),
intent(in) :: iout
207 integer(I4B) :: icol, istart, istop
208 character(len=LINELENGTH) :: ermsg, string
211 string = obsrv%IDstring
216 nn1 = dis%noder_from_string(icol, istart, istop, inunitobs, &
217 iout, string, .false.)
220 obsrv%NodeNumber = nn1
222 ermsg =
'Error reading data from ID string'
237 integer(I4B),
intent(in) :: inunitobs
238 integer(I4B),
intent(in) :: iout
240 integer(I4B) :: nn1, nn2
241 integer(I4B) :: icol, istart, istop, jaidx
242 character(len=LINELENGTH) :: ermsg, string
244 70
format(
'Error: No connection exists between cells identified in text: ', a)
247 string = obsrv%IDstring
252 nn1 = dis%noder_from_string(icol, istart, istop, inunitobs, &
253 iout, string, .false.)
256 obsrv%NodeNumber = nn1
258 ermsg =
'Error reading data from ID string: '//string(istart:istop)
264 nn2 = dis%noder_from_string(icol, istart, istop, inunitobs, &
265 iout, string, .false.)
267 obsrv%NodeNumber2 = nn2
269 ermsg =
'Error reading data from ID string: '//string(istart:istop)
274 jaidx = dis%con%getjaindex(nn1, nn2)
276 write (ermsg, 70) trim(string)
279 obsrv%JaIndex = jaidx
This module contains simulation constants.
integer(i4b), parameter linelength
maximum length of a standard line
integer(i4b), parameter maxobstypes
maximum number of observation types
subroutine gwf_process_head_drawdown_obs_id(obsrv, dis, inunitobs, iout)
Calculate drawdown observation when requested.
subroutine gwf_obs_da(this)
Deallocate memory.
subroutine gwf_obs_rp(this)
Do GWF observations need any checking? If so, add checks here.
subroutine gwf_obs_bd(this)
Save obs.
subroutine gwf_obs_df(this, iout, pkgname, filtyp, dis)
Define.
subroutine, public gwf_obs_cr(obs, inobs)
Create a new GwfObsType object.
subroutine set_pointers(this, ic, x, flowja)
Set pointers.
subroutine gwf_process_intercell_obs_id(obsrv, dis, inunitobs, iout)
Process flow between two cells when requested.
subroutine gwf_obs_ar(this, ic, x, flowja)
Allocate and read.
This module defines variable data types.
This module contains the derived types ObserveType and ObsDataType.
This module contains the derived type ObsType.
This module contains simulation methods.
subroutine, public store_error(msg, terminate)
Store an error message.
integer(i4b) function, public count_errors()
Return number of errors.
subroutine, public store_error_unit(iunit, terminate)
Store the file unit number.