intcopy.f.html | ![]() |
Source file: intcopy.f | |
Directory: /home/rjl/git/rjleveque/clawpack-4.x/amrclaw/2d/lib | |
Converted: Sun May 15 2011 at 19:16:14 using clawcode2html | |
This documentation file will not reflect any later changes in the source file. |
c c -------------------------------------------------------------------- c subroutine intcopy(val,mitot,mjtot,nvar,ilo,ihi,jlo,jhi,level, & iputst,jputst) implicit double precision (a-h, o-z) dimension val(mitot,mjtot,nvar) include "call.i" iadd(i,j,ivar) = loc + i - 1 + mi*((ivar-1)*mj+j-1) c ::::::::::::::::::::::::::: INTCOPY ::::::::::::::::::::::::::::::: c c find intersecting grids at the same level. copy data from c old grid to val. c old grid has "nghost" ghost cells - passed in nodal common block. c new grid has no ghost cells - indices describe entire patch. c iputst, jputst: where to copy values into. may not be in c location corresponding to ilo,ihi,etc. if c the patch has been periodically wrapped. c c ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: mptr = lstart(level) 10 if (mptr .eq. 0) go to 99 iglo = node(ndilo,mptr) ighi = node(ndihi,mptr) jglo = node(ndjlo,mptr) jghi = node(ndjhi,mptr) c # does it intersect? ixlo = max(iglo,ilo) ixhi = min(ighi,ihi) jxlo = max(jglo,jlo) jxhi = min(jghi,jhi) if (ixlo .le. ixhi .and. jxlo .le. jxhi) then loc = node(store1,mptr) nx = ighi - iglo + 1 ny = jghi - jglo + 1 mi = nx + 2*nghost mj = ny + 2*nghost do 20 j = jxlo, jxhi do 20 ivar = 1, nvar do 30 i = ixlo, ixhi val(iputst+i-ilo,jputst+j-jlo,ivar) = 1 alloc(iadd(i-iglo+nghost+1,j-jglo+nghost+1,ivar)) 30 continue 20 continue endif mptr = node(levelptr, mptr) go to 10 99 return end