23 character*1 str1, str2
35 $
'module ['//trim(nseb_name)//
'] already registered')
44 $
'Parent module ['//
'FRAME'//
'] not registered')
49 $
'Adding white noise in rectangular domain')
54 $
'NSEB_TOT',
'Noise box total time',.false.)
57 call rprm_sec_reg(nseb_sec_id,nseb_id,
'_'//adjustl(nseb_name),
58 $
'Runtime paramere section for nseb module')
63 $
'Time to add noise',rpar_real,0,0.0,.false.,
' ')
65 call rprm_rp_reg(nseb_amp_id,nseb_sec_id,
'AMPLITUDE',
66 $
'Noise amplitude',rpar_real,0,0.0,.false.,
' ')
68 call rprm_rp_reg(nseb_bmin_id(1),nseb_sec_id,
'BOXMINX',
69 $
'Position of lower left box corner; dimension X ',
70 $ rpar_real,0,0.0,.false.,
' ')
72 call rprm_rp_reg(nseb_bmin_id(2),nseb_sec_id,
'BOXMINY',
73 $
'Position of lower left box corner; dimension Y ',
74 $ rpar_real,0,0.0,.false.,
' ')
76 if (if3d)
call rprm_rp_reg(nseb_bmin_id(ndim),nseb_sec_id,
77 $
'BOXMINZ',
'Position of lower left box corner; dimension Z ',
78 $ rpar_real,0,0.0,.false.,
' ')
80 call rprm_rp_reg(nseb_bmax_id(1),nseb_sec_id,
'BOXMAXX',
81 $
'Position of upper right box corner; dimension X ',
82 $ rpar_real,0,0.0,.false.,
' ')
84 call rprm_rp_reg(nseb_bmax_id(2),nseb_sec_id,
'BOXMAXY',
85 $
'Position of upper right box corner; dimension Y ',
86 $ rpar_real,0,0.0,.false.,
' ')
88 if (if3d)
call rprm_rp_reg(nseb_bmax_id(ndim),nseb_sec_id,
89 $
'BOXMAXZ',
'Position of upper right box corner; dimension Z ',
90 $ rpar_real,0,0.0,.false.,
' ')
106 write(str1,
'(I1.1)') il
108 write(str2,
'(I1.1)') jl
110 $
'FRC'//str2//
'_'//str1,
111 $
'Function coefficient for random number gnerator ',
112 $ rpar_real,0,rfc(jl,il),.false.,
' ')
117 ltim = dnekclock() - ltim
136 integer ierr, nhour, nmin, il, jl
146 if (nseb_ifinit)
then
148 $
'module ['//trim(nseb_name)//
'] already initiaised.')
156 call rprm_rp_get(itmp,rtmp,ltmp,ctmp,nseb_tim_id,rpar_real)
159 call rprm_rp_get(itmp,rtmp,ltmp,ctmp,nseb_amp_id,rpar_real)
162 call rprm_rp_get(itmp,rtmp,ltmp,ctmp,nseb_bmin_id(1),
166 call rprm_rp_get(itmp,rtmp,ltmp,ctmp,nseb_bmin_id(2),
171 call rprm_rp_get(itmp,rtmp,ltmp,ctmp,nseb_bmin_id(ndim),
173 nseb_bmin(ndim) = rtmp
176 call rprm_rp_get(itmp,rtmp,ltmp,ctmp,nseb_bmax_id(1),
180 call rprm_rp_get(itmp,rtmp,ltmp,ctmp,nseb_bmax_id(2),
185 call rprm_rp_get(itmp,rtmp,ltmp,ctmp,nseb_bmax_id(ndim),
187 nseb_bmax(ndim) = rtmp
193 call rprm_rp_get(itmp,rtmp,ltmp,ctmp,nseb_rfc_id(jl,il),
195 nseb_rfc(jl,il) = rtmp
203 ltim = dnekclock() - ltim
238 integer iel, ieg, il, jl, kl, nl
245 real dnekclock, math_ran_dst
248 if (nseb_amp.gt.0.0)
then
249 if (nseb_tim.ge.time.and.nseb_tim.le.(time+dt))
then
254 $
"Adding noise to velocity field")
261 xl(1) = xm1(il,jl,kl,iel)
262 xl(2) = ym1(il,jl,kl,iel)
263 if (if3d) xl(ndim) = zm1(il,jl,kl,iel)
266 if (xl(nl).lt.nseb_bmin(nl).or.
267 $ xl(nl).gt.nseb_bmax(nl))
then
274 vx(il,jl,kl,iel)=vx(il,jl,kl,iel)+nseb_amp*
275 $ math_ran_dst(il,jl,kl,ieg,xl,nseb_rfc(1,1))
276 vy(il,jl,kl,iel)=vy(il,jl,kl,iel)+nseb_amp*
277 $ math_ran_dst(il,jl,kl,ieg,xl,nseb_rfc(1,2))
278 if (if3d) vz(il,jl,kl,iel)=vz(il,jl,kl,iel)+
279 $ nseb_amp*math_ran_dst(il,jl,kl,ieg,xl,
290 call opcolv (vx,vy,vz,vmult)
293 ltim = dnekclock() - ltim
subroutine mntr_tmr_is_name_reg(mid, mname)
Check if timer name is registered and return its id.
subroutine mntr_warn(mid, logs)
Write warning message.
subroutine mntr_tmr_add(mid, icount, time)
Check if timer id is registered. This operation is performed locally.
subroutine mntr_mod_is_name_reg(mid, mname)
Check if module name is registered and return its id.
subroutine mntr_abort(mid, logs)
Abort simulation.
subroutine mntr_log(mid, priority, logs)
Write log message.
subroutine mntr_mod_reg(mid, pmid, mname, mdscr)
Register new module.
subroutine mntr_tmr_reg(mid, pmid, modid, mname, mdscr, ifsum)
Register new timer.
logical function nseb_is_initialised()
Check if module was initialised.
subroutine nseb_init()
Initilise noise box module.
subroutine nseb_register()
Register noise box module.
subroutine nseb_noise_add()
Add noise to velocity field in a box.
subroutine rprm_rp_get(ipval, rpval, lpval, cpval, rpid, ptype)
Get runtime parameter form active section. This operation is performed locally.
subroutine rprm_rp_reg(rpid, mid, pname, pdscr, ptype, ipval, rpval, lpval, cpval)
Register new runtime parameter.
subroutine rprm_sec_set_act(ifact, rpid)
Set section's activation flag. Master value is broadcasted.
subroutine rprm_sec_reg(rpid, mid, pname, pdscr)
Register new parameter section.
subroutine opdssum(a, b, c)
subroutine opcolv(a1, a2, a3, c)