Call this each time step or subtime step.
110 class(TimeArraySeriesManagerType) :: this
112 type(TimeArraySeriesLinkType),
pointer :: tasLink => null()
113 type(TimeArraySeriesType),
pointer :: timearrayseries => null()
114 integer(I4B) :: i, j, nlinks, nvals, isize1, isize2, inunit
115 real(DP) :: begintime, endtime
117 character(len=*),
parameter :: fmt5 = &
118 "(/,'Time-array-series controlled arrays in stress period ', &
119 &i0, ', time step ', i0, ':')"
120 10
format(
'"', a,
'" package: ', a,
' array obtained from time-array series "', &
125 endtime = begintime + delt
130 if (
associated(this%boundTasLinks))
then
131 nlinks = this%boundTasLinks%Count()
133 taslink => gettimearrayserieslinkfromlist(this%boundTasLinks, i)
134 if (taslink%Iprpak == 1 .and. i == 1)
then
135 write (this%iout, fmt5) kper, kstp
137 if (taslink%UseDefaultProc)
then
138 timearrayseries => taslink%timeArraySeries
139 nvals =
size(taslink%BndArray)
142 call timearrayseries%GetAverageValues(nvals, taslink%BndArray, &
146 if (taslink%ConvertFlux)
then
147 call this%tasmgr_convert_flux(taslink)
152 if (taslink%Iprpak == 1)
then
153 write (this%iout, 10) trim(taslink%PackageName), &
154 trim(taslink%Text), &
155 trim(taslink%timeArraySeries%Name)
158 if (i == nlinks)
then
159 write (this%iout,
'()')
166 taslink => gettimearrayserieslinkfromlist(this%boundTasLinks, i)
167 if (taslink%UseDefaultProc)
then
168 if (
associated(taslink%RMultArray))
then
169 isize1 =
size(taslink%BndArray)
170 isize2 =
size(taslink%RMultArray)
171 if (isize1 == isize2 .and. isize1 == nvals)
then
173 taslink%BndArray(j) = taslink%BndArray(j) * taslink%RMultArray(j)
176 errmsg =
'Size mismatch between boundary and multiplier arrays'// &
177 ' using time-array series: '// &
178 trim(taslink%TimeArraySeries%Name)
179 call store_error(errmsg)
180 inunit = taslink%TimeArraySeries%GetInunit()
181 call store_error_unit(inunit)