|
auxcoarsen.f.html |
|
|
Source file: auxcoarsen.f
|
|
Directory: /home/rjl/git/rjleveque/clawpack-4.x/amrclaw/2d/lib
|
|
Converted: Sun May 15 2011 at 19:16:13
using clawcode2html
|
|
This documentation file will
not reflect any later changes in the source file.
|
c
c ----------------------------------------------------------------
c
subroutine auxcoarsen(auxdub,midub,mjdub,auxbgc,
1 mi2tot,mj2tot,naux,auxtype)
implicit double precision (a-h, o-z)
dimension auxdub(midub, mjdub, naux)
dimension auxbgc(mi2tot,mj2tot,naux)
character*10 auxtype(naux)
c :::::::::::::::::::::::: COARSEN ::::::::::::::::::::::::::::::::
c coarsen = coarsen the fine grid auxiliary data (with double the usual
c number of ghost cells to prepare coarsened data
c for error estimation.
c :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
do 50 iaux = 1, naux
if (auxtype(iaux) .eq. "center" .or.
. auxtype(iaux) .eq. "capacity") then
do 20 j = 1, mj2tot
jfine = 2*(j-1) + 1
do 20 i = 1, mi2tot
ifine = 2*(i-1) + 1
auxbgc(i,j,iaux) = (auxdub(ifine,jfine,iaux) +
& auxdub(ifine+1,jfine,iaux)+
& auxdub(ifine,jfine+1,iaux) +
& auxdub(ifine+1,jfine+1,iaux))/4.d0
20 continue
elseif (auxtype(iaux) .eq. "xleft") then
do 10 j = 1, mj2tot
jfine = 2*(j-1) + 1
do 10 i = 1, mi2tot
ifine = 2*(i-1) + 1
auxbgc(i,j,iaux) = (auxdub(ifine,jfine,iaux) +
& auxdub(ifine,jfine+1,iaux)) /2.d0
10 continue
elseif (auxtype(iaux) .eq. "yleft") then
do 15 j = 1, mj2tot
jfine = 2*(j-1) + 1
do 15 i = 1, mi2tot
ifine = 2*(i-1) + 1
auxbgc(i,j,iaux) = (auxdub(ifine,jfine,iaux) +
& auxdub(ifine+1,jfine,iaux))/2.d0
15 continue
endif
50 continue
return
end