67 LOGICAL,
INTENT(IN) :: final
68 REAL(RFREAL),
INTENT(IN) :: t, dt
69 TYPE(t_region
),
INTENT(INOUT) :: region
76 INTEGER :: ipatch,
n, ftype
77 REAL(RFREAL),
POINTER :: vals(:,:)
87 global => region%global
92 finitedt = (dt > 1.e-10_rfreal*global%dtMin)
99 DO ipatch=1,region%nPatches
100 patch => region%levels(region%currLevel)%patches(ipatch)
104 DO ipatch=1,region%grid%nPatches
105 patch => region%patches(ipatch)
112 DO ftype = 1,ftype_max
113 SELECT CASE ( ftype )
126 IF ( global%specUsed .EQV. .false. )
THEN
139 IF (
ASSOCIATED(bc%vals) .NEQV. .true. )
THEN
152 IF ( tbc%tbcType /= tbc_none )
THEN
156 IF ( t <= tbc%params(tbcdat_ontime) )
THEN
158 ELSE IF ( t >= tbc%params(tbcdat_offtime) )
THEN
159 tbc%tbcType = tbc_none
165 SELECT CASE ( tbc%tbcType )
166 CASE ( tbc_sinusoidal )
169 vals(
n,:) = tbc%mean*(1.0_rfreal + tbc%svals(tbcsto_val))
171 CASE ( tbc_stochastic )
174 vals(
n,:) = tbc%mean*tbc%bvals(tbcsto_factor,:)
176 CASE ( tbc_whitenoise )
177 IF ( (tbc%switches(tbcswi_substep) == tbcopt_step .AND. final) .OR. &
178 (tbc%switches(tbcswi_substep) == tbcopt_substep .AND. finitedt) )
THEN
180 vals(
n,:) = tbc%mean*(1.0_rfreal + tbc%bvals(tbcsto_val,:))
182 CASE ( tbc_piecewise )
184 vals(
n,:) = tbc%mean*tbc%svals(tbcsto_val)
186 CALL
errorstop(global,err_reached_default,__line__)
subroutine registerfunction(global, funName, fileName)
subroutine updatetbcsinusoidal(global, tbc, t)
subroutine updatetbcstochastic(region, tbc, dt)
subroutine updatetbc(region, t, dt, final)
subroutine errorstop(global, errorCode, errorLine, addMessage)
subroutine updatetbcpiecewise(global, tbc, t)
subroutine deregisterfunction(global)
subroutine updatetbcwhitenoise(region, tbc)