33 use input, only : ifflow, iftran, solver_type, param
34 use soln, only : nid, jp
35 use tstep, only : istep, instep, nsteps, fintim, time
39 integer,
intent(inout) :: intracomm
87 use_spectral_coarse = .false.
88 if (param(48) == 1.)
then
89 use_spectral_coarse = .true.
100 if (nsteps == 0 .AND. fintim == 0.) instep=0
114 if(ifcvode .AND. nsteps > 0) call cv_setsize(0,nfield)
118 if(nid == 0)
write(6,*)
'call usrdat'
120 if(nid == 0)
write(6,
'(A,/)')
' done :: usrdat'
128 if(nid == 0)
write(6,*)
'call usrdat2'
130 if(nid == 0)
write(6,
'(A,/)')
' done :: usrdat2'
142 if (fintim /= 0.0 .OR. nsteps /= 0) call
geneig(igeom)
148 if (ifflow .AND. (fintim /= 0 .OR. nsteps /= 0))
then
150 if (iftran .AND. solver_type ==
'itr')
then
152 elseif (solver_type ==
'fdm' .OR. solver_type ==
'pdm')
then
153 write(*,*)
"Oops: gfdm"
157 if (ifsplit) ifemati = .false.
158 call gfdm_init(nx2,ny2,nz2,ifemati,kwave2)
160 elseif (solver_type ==
'25D')
then
169 if(nid == 0)
write(6,*)
'call usrdat3'
171 if(nid == 0)
write(6,
'(A,/)')
' done :: usrdat3'
179 if(nid == 0)
write(6,*)
'call userchk'
181 if(nid == 0)
write(6,
'(A,/)')
' done :: userchk'
186 if(ifcvode .AND. nsteps > 0) call cv_init
205 IF (time /= 0.0)
WRITE (6,
'(A,E14.7)')
' Initial time:',time
206 WRITE (6,
'(A,g13.5,A)') &
207 ' Initialization successfully completed ', &
208 etims0-etimes,
' sec'
221 use tstep, only : instep, nid, istep, nsteps, lastep
227 integer :: isyc, itime, msteps, kstep
231 if (instep == 0)
then
232 if(nid == 0)
write(6,
'(/,A,/,A,/)') &
233 ' nsteps=0 -> skip time loop', &
234 ' running solver in post processing mode'
236 if(nid == 0)
write(6,
'(/,A,/)')
'Starting time loop ...'
250 do kstep=1,nsteps,msteps
255 if (lastep == 1) goto 1001
265 if (instep == 0)
then
268 if(nid == 0)
write(6,*)
'call userchk'
270 if(nid == 0)
write(6,*)
'done :: userchk'
273 if (nid == 0)
write(6,
'(/,A,/)') &
274 'end of time-step loop'
285 use input, only : iftran, ifsplit, ifheat, ifflow, param
299 if (ifheat) call
heat(igeom)
303 if (ifflow) call
fluid(igeom)
304 if (param(103) > 0) call
q_filter(param(103))
308 write(*,*)
"Oops! Pn-2/Pn-2"
321 if (ifheat) call
heat(igeom)
324 write(*,*)
"Oops! ifpert"
326 if (ifbase .AND. ifheat) call
heat(igeom)
327 if (ifbase .AND. ifflow) call
fluid(igeom)
328 if (ifflow) call fluidp(igeom)
329 if (ifheat) call heatp(igeom)
332 if (ifheat) call
heat(igeom)
333 if (ifflow) call
fluid(igeom)
334 if (ifmvbd) call meshv(igeom)
337 if (igeom == ngeom .AND. param(103) > 0) &
352 use tstep, only : instep
366 use tstep, only : istep
369 integer,
intent(in) :: kstep
370 integer,
intent(in) :: msteps
374 istep = kstep + i - 1
#define nek_comm_settings
subroutine setvar
Initialize variables.
subroutine files
Defines machine specific input and output file names.
subroutine initdim
Transfer array dimensions to common.
subroutine nek_solve
integrate the governing equations in time
subroutine runstat
print run statistics from ctimer
Module containing data for HSMG.
subroutine init_scratch()
subroutine geom_reset(icall)
Generate geometry data.
subroutine genwz
Generate derivative and interpolation operators. GENERATE.
real(dp) function dnekclock_sync()
Arrays for direct stiffness summation. cleaned.
subroutine setsolv
Set ifsolv = .FALSE.
subroutine estrat
Decide strategy for E-solver.
subroutine opcount(ICALL)
init opcounter
subroutine setlog()
Subroutine to initialize logical flags.
subroutine setics
Set initial conditions.
subroutine dofcnt
count degrees of freedom
subroutine setup_convect(igeom)
subroutine init_dealias()
subroutine time00
zero the ctimer
subroutine init_parallel()
real(dp) function dnekclock()
#define nek_comm_startstat
subroutine prepost(ifdoin, prefin)
Store results for later postprocessing. Recent updates: p65 now indicates the number of parallel i/o ...
subroutine readat()
Read in data from preprocessor input file (.rea)
subroutine setprop
Set variable property arrays.
subroutine fluid(igeom)
Driver for solving the incompressible Navier-Stokes equations.
subroutine gengeom(igeom)
Generate geometry data.
subroutine get_session_info(intracomm)
subroutine geneig(igeom)
Compute eigenvalues.
subroutine q_filter(wght)
filter vx,vy,vz, and p by simple interpolation
subroutine set_overlap
Set up arrays for overlapping Schwartz algorithm for pressure solver
subroutine nek_advance
take a single time-step
subroutine nek_end
perform any end-of-run reporting
subroutine bcmask
Zero out masks corresponding to Dirichlet boundary points.
subroutine echopar
Echo the nonzero parameters from the readfile to the logfile.
subroutine setup_topo()
Parallel compatible routine to find connectivity of element structure. On Processor 0: ...
subroutine nek_init(intracomm)
initialize nek
subroutine heat(igeom)
Driver for temperature or passive scalar.
subroutine userchk_set_xfer
Dummy for singlmesh.
subroutine vrdsmsh()
Verify that mesh and dssum are properly defined by performing a direct stiffness operation on the X...
subroutine settime
setup time-stepping
subroutine comment
No need to comment !!
subroutine initdat
Initialize and set default values.
subroutine nek__multi_advance(kstep, msteps)
take a chunk of time-steps