34 real,
intent(in),
optional:: time
44 type(
gt_history),
intent(inout),
optional,
target:: history
62 real(DP),
intent(in),
optional:: timed
74 real,
pointer:: buffer(:) =>null()
78 logical:: err, dbg_mode
79 character(*),
parameter:: subname =
"HistorySetTime" 82 if (
present(history))
then 87 call debug( dbg_mode )
89 if (
present(difftime) )
then 90 timew =
evalbyunit( difftime,
'', hst % unlimited_units_symbol )
92 elseif (
present(timed) )
then 94 elseif (
present(time) )
then 98 if (hst % unlimited_index == 0)
then 101 var = hst % dimvars(hst % unlimited_index)
102 hst % dim_value_written(hst % unlimited_index) = .true.
103 if (
present(difftime) )
then 104 dt =
evalbyunit( difftime,
'', hst % unlimited_units_symbol )
106 elseif (
present(timed) )
then 111 elseif (
present(time) )
then 117 if ( dt < hst % oldest &
118 & .or. dt > hst % newest &
119 & .or. hst % count(2) == 0 )
then 120 hst % count(:) = maxval(hst % count(:)) + 1
121 hst % newest =
max(hst % newest, dt)
122 hst % oldest =
min(hst % oldest, dt)
123 call slice(var, 1, start=hst % count(1), count=1)
126 call put(var, (/timew/), 1, err)
130 call slice(var, 1, start=1, count=hst % count(2))
131 call get(var, buffer, err)
132 hst % count(1:1) = minloc(abs(buffer - timew))
type(gt_history), target, save, public default
subroutine historysettime(time, history, difftime, timed)
integer, parameter, public token
Character length for word, token.
integer, parameter, public dp
Double Precision Real number.
subroutine, public dbgmessage(fmt, i, r, d, L, n, c1, c2, c3, ca)
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
Provides kind type parameter values.
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
integer, parameter, public string
Character length for string.