Call this each time step or subtime step.
104 class(TimeArraySeriesManagerType) :: this
106 type(TimeArraySeriesLinkType),
pointer :: tasLink => null()
107 type(TimeArraySeriesType),
pointer :: timearrayseries => null()
108 integer(I4B) :: i, j, nlinks, nvals, isize1, isize2, inunit
109 real(DP) :: begintime, endtime
111 character(len=*),
parameter :: fmt5 = &
112 "(/,'Time-array-series controlled arrays in stress period ', &
113 &i0, ', time step ', i0, ':')"
114 10
format(
'"', a,
'" package: ', a,
' array obtained from time-array series "', &
119 endtime = begintime + delt
124 if (
associated(this%boundTasLinks))
then
125 nlinks = this%boundTasLinks%Count()
127 taslink => gettimearrayserieslinkfromlist(this%boundTasLinks, i)
128 if (taslink%Iprpak == 1 .and. i == 1)
then
129 write (this%iout, fmt5) kper, kstp
131 if (taslink%UseDefaultProc)
then
132 timearrayseries => taslink%timeArraySeries
133 nvals =
size(taslink%BndArray)
136 call timearrayseries%GetAverageValues(nvals, taslink%BndArray, &
140 if (taslink%ConvertFlux)
then
141 call this%tasmgr_convert_flux(taslink)
146 if (taslink%Iprpak == 1)
then
147 write (this%iout, 10) trim(taslink%PackageName), &
148 trim(taslink%Text), &
149 trim(taslink%timeArraySeries%Name)
152 if (i == nlinks)
then
153 write (this%iout,
'()')
160 taslink => gettimearrayserieslinkfromlist(this%boundTasLinks, i)
161 if (taslink%UseDefaultProc)
then
162 if (
associated(taslink%RMultArray))
then
163 isize1 =
size(taslink%BndArray)
164 isize2 =
size(taslink%RMultArray)
165 if (isize1 == isize2 .and. isize1 == nvals)
then
167 taslink%BndArray(j) = taslink%BndArray(j) * taslink%RMultArray(j)
170 errmsg =
'Size mismatch between boundary and multiplier arrays'// &
171 ' using time-array series: '// &
172 trim(taslink%TimeArraySeries%Name)
173 call store_error(errmsg)
174 inunit = taslink%TimeArraySeries%GetInunit()
175 call store_error_unit(inunit)