4 subroutine regrid (nvar,lbase,cut,naux,start_time)
7 implicit double precision (a-h,o-z)
8 integer newnumgrids(maxlv)
9 integer clock_start2, clock_finish, clock_rate
33 verbosity_regrid = method(4)
34 lcheck = min0(lfine,mxnest-1)
39 time = rnode(timemult, lstart(lbase))
41 20
if (lcheck .lt. lbase) go to 50
42 call
grdfit(lbase,lcheck,nvar,naux,cut,time,start_time)
43 if (newstl(lcheck+1) .eq. 0) go to 40
44 lfnew = max0(lcheck + 1,lfnew)
56 do lev = lbase+1,lfnew
59 52
if (mptr .eq. 0) go to 55
60 ngridcount = ngridcount + 1
61 mptr = node(levelptr,mptr)
64 55 newnumgrids(lev) = ngridcount
65 maxnumnewgrids = max(maxnumnewgrids,ngridcount)
71 call system_clock(clock_start2,clock_rate)
72 call
gfixup(lbase,lfnew,nvar,naux,newnumgrids,maxnumnewgrids)
73 call system_clock(clock_finish,clock_rate)
74 timegrdfit2 = timegrdfit2 + clock_finish - clock_start2
80 do 60 level = lbase, lfine-1
81 call
prepf(level+1,nvar,naux)
82 call
prepc(level,nvar)
89 do 72 levnew = lbase+1, mxnest
93 do while (mptr .gt. 0)
94 ngridcount = ngridcount + 1
95 ncells = ncells + (node(ndihi,mptr)-node(ndilo,mptr)+1)
96 . * (node(ndjhi,mptr)-node(ndjlo,mptr)+1)
97 mptr = node(levelptr, mptr)
99 numgrids(levnew) = ngridcount
100 numcells(levnew) = ncells
101 avenumgrids(levnew) = avenumgrids(levnew) + ngridcount
102 iregridcount(levnew) = iregridcount(levnew) + 1
105 if (ngridcount .gt. 1) call
arrangegrids(levnew,ngridcount)
107 if (verbosity_regrid .ge. levnew)
then
108 write(*,100) ngridcount,ncells,levnew
109 write(outunit,100) ngridcount,ncells,levnew
110 100
format(
"there are ",i6,
" grids with ",i10,
111 &
" cells at level ", i3)
117 do levnew = lbase+1, lfine
129 implicit double precision (a-h,o-z)
130 integer listgrids(numg), cost(numg), index(numg), prevptr
138 cost(i) = (node(ndihi,mptr)-node(ndilo,mptr)+1) *
139 1 (node(ndjhi,mptr)-node(ndjlo,mptr)+1)
141 mptr = node(levelptr, mptr)
147 call
qsorti(index, numg, cost)
154 lstart(level) = listgrids(index(numg))
155 prevptr = listgrids(index(numg))
157 node(levelptr, prevptr) = listgrids(index(numg-i))
158 prevptr = listgrids(index(numg-i))
160 node(levelptr,prevptr) = null
subroutine makebndrylist(level)
subroutine regrid(nvar, lbase, cut, naux, start_time)
subroutine prepc(level, nvar)
subroutine qsorti(ORD, N, A)
subroutine makegridlist(lbase)
subroutine grdfit(lbase, lcheck, nvar, naux, cut, time, start_time)
subroutine gfixup(lbase, lfnew, nvar, naux, newnumgrids, maxnumnewgrids)
subroutine arrangegrids(level, numg)
subroutine prepf(level, nvar, naux)