17 character(len=LENFTYPE) ::
ftype =
'SRC'
18 character(len=16) ::
text =
' SRC'
22 character(len=LENVARNAME) :: depvartype =
''
45 subroutine src_create(packobj, id, ibcnum, inunit, iout, namemodel, pakname, &
48 class(
bndtype),
pointer :: packobj
49 integer(I4B),
intent(in) :: id
50 integer(I4B),
intent(in) :: ibcnum
51 integer(I4B),
intent(in) :: inunit
52 integer(I4B),
intent(in) :: iout
53 character(len=*),
intent(in) :: namemodel
54 character(len=*),
intent(in) :: pakname
55 character(len=LENVARNAME),
intent(in) :: depvartype
64 call packobj%set_names(ibcnum, namemodel, pakname,
ftype)
68 call srcobj%allocate_scalars()
71 call packobj%pack_initialize()
73 packobj%inunit = inunit
76 packobj%ibcnum = ibcnum
81 srcobj%depvartype = depvartype
93 call this%BndType%bnd_da()
108 call this%BndType%allocate_scalars()
125 integer(I4B) :: i, node
129 if (this%nbound == 0)
return
132 do i = 1, this%nbound
133 node = this%nodelist(i)
135 if (this%ibound(node) <= 0)
then
148 subroutine src_fc(this, rhs, ia, idxglo, matrix_sln)
151 real(DP),
dimension(:),
intent(inout) :: rhs
152 integer(I4B),
dimension(:),
intent(in) :: ia
153 integer(I4B),
dimension(:),
intent(in) :: idxglo
156 integer(I4B) :: i, n, ipos
159 if (this%imover == 1)
then
160 call this%pakmvrobj%fc()
164 do i = 1, this%nbound
166 rhs(n) = rhs(n) + this%rhs(i)
168 call matrix_sln%add_value_pos(idxglo(ipos), this%hcof(i))
172 if (this%imover == 1 .and. this%rhs(i) >
dzero)
then
173 call this%pakmvrobj%accumulate_qformvr(i, this%rhs(i))
189 this%listlabel = trim(this%filtyp)//
' NO.'
190 if (this%dis%ndim == 3)
then
191 write (this%listlabel,
'(a, a7)') trim(this%listlabel),
'LAYER'
192 write (this%listlabel,
'(a, a7)') trim(this%listlabel),
'ROW'
193 write (this%listlabel,
'(a, a7)') trim(this%listlabel),
'COL'
194 elseif (this%dis%ndim == 2)
then
195 write (this%listlabel,
'(a, a7)') trim(this%listlabel),
'LAYER'
196 write (this%listlabel,
'(a, a7)') trim(this%listlabel),
'CELL2D'
198 write (this%listlabel,
'(a, a7)') trim(this%listlabel),
'NODE'
200 write (this%listlabel,
'(a, a16)') trim(this%listlabel),
'STRESS RATE'
201 if (this%inamedbound == 1)
then
202 write (this%listlabel,
'(a, a16)') trim(this%listlabel),
'BOUNDARY NAME'
234 call this%obs%StoreObsType(
'src', .true., indx)
239 call this%obs%StoreObsType(
'to-mvr', .true., indx)
253 integer(I4B) :: i, nlinks
256 nlinks = this%TsManager%boundtslinks%Count()
259 if (
associated(tslink))
then
260 if (tslink%JCol == 1)
then
261 tslink%Text =
'SMASSRATE'
This module contains block parser methods.
This module contains the base boundary package.
This module contains simulation constants.
real(dp), parameter dem1
real constant 1e-1
integer(i4b), parameter lenvarname
maximum length of a variable name
integer(i4b), parameter lenftype
maximum length of a package type (DIS, WEL, OC, etc.)
real(dp), parameter dzero
real constant zero
real(dp), parameter done
real constant 1
character(len=lenftype) ftype
subroutine src_fc(this, rhs, ia, idxglo, matrix_sln)
Add matrix terms related to specified mass source loading.
subroutine src_cf(this)
Formulate the HCOF and RHS terms.
subroutine src_allocate_scalars(this)
Allocate scalars.
subroutine src_da(this)
Deallocate memory.
subroutine, public src_create(packobj, id, ibcnum, inunit, iout, namemodel, pakname, depvartype)
Create a source loading package.
subroutine define_listlabel(this)
Define list labels.
subroutine src_rp_ts(this)
Procedure related to time series.
subroutine src_df_obs(this)
Define observations.
logical function src_obs_supported(this)
Support function for specified mass source loading observations.
This module defines variable data types.
This module contains the derived type ObsType.
subroutine, public defaultobsidprocessor(obsrv, dis, inunitobs, iout)
@ brief Process IDstring provided for each observation
type(timeserieslinktype) function, pointer, public gettimeserieslinkfromlist(list, indx)
Get time series link from a list.