20 real(dp),
dimension(:),
pointer,
contiguous,
private :: x => null()
21 real(dp),
dimension(:),
pointer,
contiguous,
private :: flowja => null()
22 character(len=LENVARNAME) :: depvartype =
''
46 integer(I4B),
pointer,
intent(in) :: inobs
47 character(len=LENVARNAME),
intent(in) :: dvt
50 call obs%allocate_scalars()
52 obs%inputFilename =
''
53 obs%inUnitObs => inobs
64 type(
tspictype),
pointer,
intent(in) :: ic
65 real(DP),
dimension(:),
pointer,
contiguous,
intent(in) :: x
66 real(DP),
dimension(:),
pointer,
contiguous,
intent(in) :: flowja
72 call this%set_pointers(ic, x, flowja)
80 integer(I4B),
intent(in) :: iout
81 character(len=*),
intent(in) :: pkgname
82 character(len=*),
intent(in) :: filtyp
88 call this%ObsType%obs_df(iout, pkgname, filtyp, dis)
94 call this%StoreObsType(trim(adjustl(this%depvartype)), .false., indx)
98 call this%StoreObsType(
'flow-ja-face', .true., indx)
108 integer(I4B) :: i, jaindex, nodenumber
109 character(len=100) :: msg
112 call this%obs_bd_clear()
115 if (this%npakobs > 0)
then
116 do i = 1, this%npakobs
117 obsrv => this%pakobs(i)%obsrv
118 nodenumber = obsrv%NodeNumber
119 jaindex = obsrv%JaIndex
120 select case (obsrv%ObsTypeId)
121 case (
'CONCENTRATION',
'TEMPERATURE')
122 call this%SaveOneSimval(obsrv, this%x(nodenumber))
123 case (
'FLOW-JA-FACE')
124 call this%SaveOneSimval(obsrv, this%flowja(jaindex))
126 msg =
' Unrecognized observation type: '//trim(obsrv%ObsTypeId)
153 nullify (this%flowja)
154 call this%ObsType%obs_da()
162 type(
tspictype),
pointer,
intent(in) :: ic
163 real(DP),
dimension(:),
pointer,
contiguous,
intent(in) :: x
164 real(DP),
dimension(:),
pointer,
contiguous,
intent(in) :: flowja
168 this%flowja => flowja
179 integer(I4B),
intent(in) :: inunitobs
180 integer(I4B),
intent(in) :: iout
183 integer(I4B) :: icol, istart, istop
184 character(len=LINELENGTH) :: ermsg, string
187 string = obsrv%IDstring
192 nn1 = dis%noder_from_string(icol, istart, istop, inunitobs, &
193 iout, string, .false.)
196 obsrv%NodeNumber = nn1
198 ermsg =
'Error reading data from ID string'
212 integer(I4B),
intent(in) :: inunitobs
213 integer(I4B),
intent(in) :: iout
215 integer(I4B) :: nn1, nn2
216 integer(I4B) :: icol, istart, istop, jaidx
217 character(len=LINELENGTH) :: ermsg, string
219 70
format(
'Error: No connection exists between cells identified in text: ', a)
222 string = obsrv%IDstring
227 nn1 = dis%noder_from_string(icol, istart, istop, inunitobs, &
228 iout, string, .false.)
231 obsrv%NodeNumber = nn1
233 ermsg =
'Error reading data from ID string: '//string(istart:istop)
239 nn2 = dis%noder_from_string(icol, istart, istop, inunitobs, &
240 iout, string, .false.)
242 obsrv%NodeNumber2 = nn2
244 ermsg =
'Error reading data from ID string: '//string(istart:istop)
249 jaidx = dis%con%getjaindex(nn1, nn2)
251 write (ermsg, 70) trim(string)
254 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
integer(i4b), parameter lenvarname
maximum length of a variable name
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.
subroutine tsp_process_intercell_obs_id(obsrv, dis, inunitobs, iout)
Procedure related to Tsp observations (NOT type-bound)
subroutine tsp_obs_da(this)
Deallocate memory.
subroutine set_pointers(this, ic, x, flowja)
Set pointers needed by the transport OBS package.
subroutine tsp_obs_rp(this)
If transport model observations need checks, add them here.
subroutine tsp_process_obs_id(obsrv, dis, inunitobs, iout)
Procedure related to Tsp observations (NOT type-bound)
subroutine tsp_obs_ar(this, ic, x, flowja)
Allocate and read method for package.
subroutine tsp_obs_bd(this)
Save observations.
subroutine, public tsp_obs_cr(obs, inobs, dvt)
Create a new TspObsType object.
subroutine tsp_obs_df(this, iout, pkgname, filtyp, dis)
Define observation object.