103 REAL(RFREAL),
INTENT(IN) :: t
109 INTEGER ::
order,njumps
110 LOGICAL :: usemaxtime
111 REAL(RFREAL) :: val,val0,val1,t0,t1
116 'UpdateTbcPiecewise.F90')
118 order = tbc%switches(tbcswi_order)
119 njumps = tbc%switches(tbcswi_njumps)
121 IF (t >= tbc%params(tbcdat_dat0 + 2*njumps))
THEN
125 ELSE IF (t < tbc%params(tbcdat_dat0 + 2))
THEN
128 val = tbc%params(tbcdat_dat0 + 1)
134 IF (t < tbc%params(tbcdat_dat0 + 2*
i))
THEN
136 CASE (tbcopt_constant)
137 val = tbc%params(tbcdat_dat0 + 2*
i-1)
139 val0 = tbc%params(tbcdat_dat0 + 2*
i-3)
140 t0 = tbc%params(tbcdat_dat0 + 2*
i-2)
141 val1 = tbc%params(tbcdat_dat0 + 2*
i-1)
142 t1 = tbc%params(tbcdat_dat0 + 2*
i)
143 val = ((t-t0)*val1 + (t1-t)*val0) / (t1-t0)
155 CASE (tbcopt_constant)
156 val = tbc%params(tbcdat_dat0 + 2*njumps+1)
158 val = tbc%params(tbcdat_dat0 + 2*njumps-1)
163 tbc%svals(tbcsto_val) = val
Size order() const
Degree of the element. 1 for linear and 2 for quadratic.
subroutine registerfunction(global, funName, fileName)
subroutine updatetbcpiecewise(global, tbc, t)
subroutine deregisterfunction(global)