5 subroutine restrt(nsteps,time,nvar,naux)
8 implicit double precision (a-h,o-z)
32 write(6,*)
'Attempting to restart computation using ' 33 write(6,*)
' checkpoint file: ',trim(
rstfile)
34 inquire(file=trim(
rstfile),exist=foundfile)
35 if (.not. foundfile)
then 36 write(*,*)
" Did not find checkpoint file!" 67 write(6,100) nsteps,time
68 100
format(/,
' RESTARTING the calculation after ',i5,
' steps',
69 1 /,
' (time = ',e15.7,
')')
79 do i = 1, min(mxnold-1,
mxnest-1)
80 if ( (
intratx(i) .ne. intrtx(i)) .or.
81 . (
intraty(i) .ne. intrty(i)) )
then 84 .
" not allowed to change existing refinement ratios on Restart" 86 write(*,*)
" Old ratios:" 87 write(
outunit,903)(intrtx(j),j=1,mxnold-1)
88 write(*,903) (intrtx(j),j=1,mxnold-1)
89 write(
outunit,903)(intrty(j),j=1,mxnold-1)
90 write(*,903) (intrty(j),j=1,mxnold-1)
109 if (idif .gt. 0)
then 112 else if (idif .lt. 0)
then 115 900
format(
' size of alloc not allowed to shrink with ',/,
116 .
' restart old size ',i7,
' current size ',i7)
122 if (
mxnest .eq. mxnold)
go to 99
124 if (
mxnest .lt. mxnold)
then 129 write(*, 901) mxnold,
mxnest 130 901
format(
' mxnest reduced on restart: ',/,
131 &
' old mxnest ',i4,
' new mxnest ',i4)
132 write(
outunit,*)
" reclaiming finer levels from",
137 85
if (mptr .eq. 0)
go to 95
138 if (lev .lt. mxnold)
then 144 ikeep = nx/intrtx(lev-1)
145 jkeep = ny/intrty(lev-1)
146 lenbc = 2*(ikeep+jkeep)
157 if (naux .gt. 0)
then 162 if (lev .ge.
mxnest .and. lev .lt. mxnold)
then 174 if (
lstart(lev) .gt. 0)
then 176 write(*,*)
" resetting finest level to ",
lfine 185 do 10 level = 1, mxnold
191 write(*,*)
" increasing max num levels from ",mxnold,
193 write(
outunit,*)
" increasing max num levels from ",mxnold,
198 write(*,*)
" first Richardson error estimation step" 199 write(*,*)
" will estimate mostly spatial error " 200 write(
outunit,*)
" first Richardson error estimation step" 201 write(
outunit,*)
" will estimate mostly spatial error " 206 15
if (mptr .eq. 0)
go to 25
217 35
if (level .gt.
mxnest)
go to 45
270 timegridfitall = 0.d0
subroutine makebndrylist(level)
Preprocess each grid on level level to have a linked list of other grids at the same level that suppl...
subroutine restrt_alloc(isize)
integer, dimension(maxlv) kratio
function igetsp(nwords)
Allocate contiguous space of length nword in main storage array alloc.
subroutine restrt(nsteps, time, nvar, naux)
subroutine makegridlist(lbase)
Make (modify) array of grid numbers, listOfGrids, (after sorting them in the linked list so they are ...
subroutine reclam(index, nwords)
integer, dimension(maxlv) iregsz
real(kind=8), dimension(maxlv) hyposs
real(kind=8), dimension(maxlv) hxposs
integer, dimension(maxlv) newstl
integer, parameter ndihi
global i index of right border of this grid
integer, dimension(maxlv) jregsz
integer, dimension(nsize, maxgr) node
integer, dimension(maxlv) iregst
integer, dimension(0:maxlv+1) liststart
character(len=200) rstfile
integer, dimension(maxlv) numgrids
real(kind=8), dimension(rsize, maxgr) rnode
integer, dimension(maxlv) iregridcount
real(kind=8) timevaloutcpu
subroutine putnod(mptr)
Return mptr node to the linked list kept in node array.
real(kind=8), dimension(maxlv) avenumgrids
subroutine initrestoftimers()
integer, dimension(maxlv) icheck
integer, dimension(maxlv) jregst
integer, parameter rstunit
integer, parameter ndilo
global i index of left border of this grid
integer, parameter ndjlo
global j index of lower border of this grid
integer, parameter store1
pointer to the address of memory storing the first copy of solution data on this grid, usually for storing new solution
integer, dimension(maxlv) lstart
real(kind=8) timeboundcpu
integer, parameter store2
pointer to the address of memory storing the second copy of solution data on this grid...
real(kind=8), dimension(maxlv) tvollcpu
integer, dimension(maxlv) intraty
real(kind=8) timeregriddingcpu
real(kind=8), dimension(maxlv) rvoll
integer, parameter outunit
real(kind=8), dimension(maxlv) possk
integer, dimension(lfdim, 2) lfree
integer, dimension(maxlv) jregend
integer, parameter ndjhi
global j index of upper border of this grid
integer, dimension(maxlv) listsp
real(kind=8) timestepgridcpu
integer, dimension(maxlv) intratx
integer, parameter levelptr
node number (index) of next grid on the same level
The module contains the definition of a "node descriptor" as well as other global variables used duri...
integer, dimension(maxlv) iregend
subroutine initbndrylist()
integer, parameter cfluxptr
Pointer to an 5 by maxsp array, which has boundary information for this grid.
integer, parameter storeaux
pointer to the address of memory storing auxiliary data on this grid
integer, dimension(maxlv) tvoll
real(kind=8), dimension(:), allocatable alloc
integer, parameter ffluxptr
pointer to the address of memory storing fluxes in a layer around the grid, to be used in conservatio...