4 subroutine spest2 (nvar,naux,lcheck,start_time)
7 implicit double precision (a-h,o-z)
9 integer omp_get_thread_num, omp_get_max_threads
10 integer mythread/0/, maxthreads/1/
11 integer listgrids(numgrids(lcheck))
20 call
prepgrids(listgrids,numgrids(lcheck),lcheck)
32 do jg = 1, numgrids(lcheck)
34 nx = node(ndihi,mptr) - node(ndilo,mptr) + 1
35 ny = node(ndjhi,mptr) - node(ndjlo,mptr) + 1
38 locnew = node(store1,mptr)
39 locaux = node(storeaux,mptr)
40 time = rnode(timemult,mptr)
43 xleft = rnode(cornxlo,mptr)
44 ybot = rnode(cornylo,mptr)
45 xlow = xleft - nghost*dx
46 ylow = ybot - nghost*dy
48 locbig =
igetsp(mitot*mjtot*nvar)
49 node(tempptr,mptr) = locbig
54 if (start_time+possk(lcheck) .ne. time)
then
55 do 10 i = 1, mitot*mjtot*nvar
56 10 alloc(locbig+i-1) = alloc(locnew+i-1)
58 call
bound(time,nvar,nghost,alloc(locbig),mitot,mjtot,mptr,
61 locold = node(store2,mptr)
62 do 11 i = 1, mitot*mjtot*nvar
63 11 alloc(locbig+i-1) = alloc(locold+i-1)
70 if (flag_gradient)
then
73 mbuff = max(nghost,ibuff+1)
77 locamrflags =
igetsp(mibuff*mjbuff)
78 node(storeflags,mptr) = locamrflags
80 do 20 i = 1, mibuff*mjbuff
81 20 alloc(locamrflags+i-1) = goodpt
87 call
flag2refine2(nx,ny,nghost,mbuff,nvar,naux,xleft,ybot,
88 & dx,dy,time,lcheck,tolsp,alloc(locbig),
89 & alloc(locaux),alloc(locamrflags),goodpt,badpt)
subroutine flag2refine2(mx, my, mbc, mbuff, meqn, maux, xlower, ylower, dx, dy, t, level, tolsp, q, aux, amrflags, DONTFLAG, DOFLAG)
User routine to control flagging of points for refinement.
subroutine prepgrids(listgrids, num, level)
subroutine bound(time, nvar, ng, valbig, mitot, mjtot, mptr, aux, naux)
This routine sets the boundary values for a given grid at level level.
subroutine spest2(nvar, naux, lcheck, start_time)