17 real(dp),
dimension(:),
pointer,
contiguous,
private :: x => null()
18 real(dp),
dimension(:),
pointer,
contiguous,
private :: flowja => null()
36 integer(I4B),
pointer,
intent(in) :: inobs
39 call obs%allocate_scalars()
41 obs%inputFilename =
''
42 obs%inUnitObs => inobs
50 real(DP),
dimension(:),
pointer,
contiguous,
intent(in) :: x
51 real(DP),
dimension(:),
pointer,
contiguous,
intent(in) :: flowja
57 call this%set_pointers(x, flowja)
65 integer(I4B),
intent(in) :: iout
66 character(len=*),
intent(in) :: pkgname
67 character(len=*),
intent(in) :: filtyp
73 call this%ObsType%obs_df(iout, pkgname, filtyp, dis)
79 call this%StoreObsType(
'concentration', .false., indx)
83 call this%StoreObsType(
'flow-ja-face', .true., indx)
93 integer(I4B) :: i, jaindex, nodenumber
94 character(len=100) :: msg
97 call this%obs_bd_clear()
100 if (this%npakobs > 0)
then
101 do i = 1, this%npakobs
102 obsrv => this%pakobs(i)%obsrv
103 nodenumber = obsrv%NodeNumber
104 jaindex = obsrv%JaIndex
105 select case (obsrv%ObsTypeId)
106 case (
'CONCENTRATION')
107 call this%SaveOneSimval(obsrv, this%x(nodenumber))
108 case (
'FLOW-JA-FACE')
109 call this%SaveOneSimval(obsrv, this%flowja(jaindex))
111 msg =
'Error: Unrecognized observation type: '//trim(obsrv%ObsTypeId)
132 nullify (this%flowja)
133 call this%ObsType%obs_da()
141 real(DP),
dimension(:),
pointer,
contiguous,
intent(in) :: x
142 real(DP),
dimension(:),
pointer,
contiguous,
intent(in) :: flowja
145 this%flowja => flowja
155 integer(I4B),
intent(in) :: inunitobs
156 integer(I4B),
intent(in) :: iout
159 integer(I4B) :: icol, istart, istop
160 character(len=LINELENGTH) :: ermsg, string
163 string = obsrv%IDstring
168 nn1 = dis%noder_from_string(icol, istart, istop, inunitobs, &
169 iout, string, .false.)
172 obsrv%NodeNumber = nn1
174 ermsg =
'Error reading data from ID string'
185 integer(I4B),
intent(in) :: inunitobs
186 integer(I4B),
intent(in) :: iout
188 integer(I4B) :: nn1, nn2
189 integer(I4B) :: icol, istart, istop, jaidx
190 character(len=LINELENGTH) :: ermsg, string
192 70
format(
'Error: No connection exists between cells identified in text: ', a)
195 string = obsrv%IDstring
200 nn1 = dis%noder_from_string(icol, istart, istop, inunitobs, &
201 iout, string, .false.)
204 obsrv%NodeNumber = nn1
206 ermsg =
'Error reading data from ID string: '//string(istart:istop)
212 nn2 = dis%noder_from_string(icol, istart, istop, inunitobs, &
213 iout, string, .false.)
215 obsrv%NodeNumber2 = nn2
217 ermsg =
'Error reading data from ID string: '//string(istart:istop)
222 jaidx = dis%con%getjaindex(nn1, nn2)
224 write (ermsg, 70) trim(string)
227 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
This module defines variable data types.
This module contains the derived types ObserveType and ObsDataType.
This module contains the derived type ObsType.
subroutine prt_obs_df(this, iout, pkgname, filtyp, dis)
Define package.
subroutine prt_process_intercell_obs_id(obsrv, dis, inunitobs, iout)
subroutine prt_process_concentration_obs_id(obsrv, dis, inunitobs, iout)
subroutine set_pointers(this, x, flowja)
Set pointers.
subroutine prt_obs_da(this)
Deallocate.
subroutine prt_obs_rp(this)
Read and prepare.
subroutine prt_obs_ar(this, x, flowja)
Allocate and read.
subroutine prt_obs_bd(this)
Save observations.
subroutine, public prt_obs_cr(obs, inobs)
Create a new PrtObsType object.
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.