vtf-logo

clawpack/applications/euler_chem/3d/ConvReflDet/src/init3.f

c
c     =====================================================
       subroutine ic(maxmx,maxmy,maxmz,meqn,mbc,mx,my,mz,
     &     x,y,z,dx,dy,dz,q)
c     =====================================================
c
c      Copyright (C) 2003-2007 California Institute of Technology
c      Ralf Deiterding, ralf@amroc.net
c
       implicit double precision (a-h,o-z)
c
       include  "ck.i"
       include  "cuser.i"
c
       dimension q(meqn, 1-mbc:maxmx+mbc, 1-mbc:maxmy+mbc, 
     &      1-mbc:maxmz+mbc)
       dimension x(1-mbc:maxmx+mbc),y(1-mbc:maxmy+mbc),
     &      z(1-mbc:maxmz+mbc)
c
       do 10 k = 1, mz
          do 10 j = 1, my
             do 10 i = 1, mx                              
                if (dabs(x(i)-x0).lt.ra) then
                   r0 = sqrt(ra**2-(x(i)-x0)**2)
                   call cellave(y(j)-dy/2.d0,z(k)-dz/2.d0,dy,dz,wlx)
                else
                   wlx = 0.d0
                endif
                if (dabs(y(j)-y0).lt.ra) then
                   r0 = sqrt(ra**2-(y(j)-y0)**2)
                   call cellave(z(k)-dz/2.d0,x(i)-dx/2.d0,dz,dx,wly)
                else
                   wly = 0.d0
                endif
                if (dabs(z(k)-z0).lt.ra) then
                   r0 = sqrt(ra**2-(z(k)-z0)**2)
                   call cellave(x(i)-dx/2.d0,y(j)-dy/2.d0,dx,dy,wlz)
                else
                   wlz = 0.d0
                endif
                wl = (wlx+wly+wlz)/3.d0 
                do 10 m=1,meqn
                   q(m,i,j,k) = wl*qin(m) + (1.d0-wl)*qout(m)
 10    continue
c
       return
       end