2D AMRCLAW
putsp.f
Go to the documentation of this file.
1 c
2 c ----------------------------------------------------------
3 c
4  subroutine putsp(lbase,level,nvar,naux)
5 c
6  use amr_module
7  implicit double precision (a-h,o-z)
8 
9 c
10 c ::::::::::::::::::::::::::::::: PUTSP :::::::::::::::::::::::::
11 c
12 c reclaim list space in nodes cfluxptr and ffluxptr for grids at level
13 c
14 c first compute max. space allocated in node cfluxptr.
15 c
16 c :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
17 c
18  if (level .eq. lfine) go to 30
19 c
20  mptr = lstart(level)
21  20 call reclam(node(cfluxptr,mptr), 5*listsp(level))
22  node(cfluxptr,mptr) = 0
23  mptr = node(levelptr,mptr)
24  if (mptr .ne. 0) go to 20
25 c
26  30 if (level .eq. lbase) go to 99
27  mptr = lstart(level)
28  40 nx = node(ndihi,mptr) - node(ndilo,mptr) + 1
29  ny = node(ndjhi,mptr) - node(ndjlo,mptr) + 1
30  ikeep = nx/intratx(level-1)
31  jkeep = ny/intraty(level-1)
32  lenbc = 2*(ikeep+jkeep)
33 c twice perimeter since saving plus or minus fluxes
34 c plus coarse solution storage
35  call reclam(node(ffluxptr,mptr), 2*nvar*lenbc+naux*lenbc)
36  mptr = node(levelptr,mptr)
37  if (mptr .ne. 0) go to 40
38 c
39  99 return
40  end
subroutine reclam(index, nwords)
Definition: reclam.f:4
subroutine putsp(lbase, level, nvar, naux)
Definition: putsp.f:4