conck.f.html | ![]() |
Source file: conck.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 conck(level, nvar, time, rest) c implicit double precision (a-h,o-z) include "call.i" logical rest iadd(i,j,ivar) = loc + i - 1 + mitot*((ivar-1)*mjtot+j-1) iaddaux(i,j) = locaux + i - 1 + mitot*(j-1) + . mitot*mjtot*(mcapa-1) c c ****************************************************************** c conck - conservation check for specified level c mostly a debugging tool c this assumes grids don't overlap c ****************************************************************** c c c grid loop for given level c hx = hxposs(level) hy = hyposs(level) dt = possk(level) totmass = 0.d0 mptr = lstart(level) 20 if (mptr .eq. 0) go to 85 loc = node(store1,mptr) locaux = node(storeaux,mptr) nx = node(ndihi,mptr) - node(ndilo,mptr) + 1 ny = node(ndjhi,mptr) - node(ndjlo,mptr) + 1 mitot = nx + 2*nghost mjtot = ny + 2*nghost c if (mcapa .eq. 0) then do 50 j = nghost+1, mjtot-nghost do 50 i = nghost+1, mitot-nghost totmass = totmass + alloc(iadd(i,j,1)) 50 continue else c # with capa array: do 60 j = nghost+1, mjtot-nghost do 60 i = nghost+1, mitot-nghost totmass = totmass + alloc(iadd(i,j,1))*alloc(iaddaux(i,j)) 60 continue endif c mptr = node(levelptr,mptr) go to 20 c 85 totmass = totmass * hx * hy if (time.eq.tstart .and. (level.eq.1) .and. .not. rest) then tmass0 = totmass write(6,*) 'Total mass at initial time: ',tmass0 endif write(outunit,777) time, totmass, totmass-tmass0 777 format('time t = ',e12.5,', total mass = ',e22.15, ' diff = ', & e11.4) c 99 return end