
c---------------------------------------------------------------------
c---------------------------------------------------------------------
c---  applu.incl   
c---------------------------------------------------------------------
c---------------------------------------------------------------------

c---------------------------------------------------------------------
c   npbparams.h defines parameters that depend on the class and 
c   number of nodes
c---------------------------------------------------------------------

      include 'npbparams.h'

c---------------------------------------------------------------------
c   parameters which can be overridden in runtime config file
c   isiz1,isiz2,isiz3 give the maximum size
c   ipr = 1 to print out verbose information
c   omega = 2.0 is correct for all classes
c   tolrsd is tolerance levels for steady state residuals
c---------------------------------------------------------------------
      integer ipr_default
      parameter (ipr_default = 1)
      double precision omega_default
      parameter (omega_default = 1.2d0)
      double precision tolrsd1_def, tolrsd2_def, tolrsd3_def, 
     >                 tolrsd4_def, tolrsd5_def
      parameter (tolrsd1_def=1.0e-08, 
     >          tolrsd2_def=1.0e-08, tolrsd3_def=1.0e-08, 
     >          tolrsd4_def=1.0e-08, tolrsd5_def=1.0e-08)

      double precision c1, c2, c3, c4, c5
      parameter( c1 = 1.40d+00, c2 = 0.40d+00,
     >           c3 = 1.00d-01, c4 = 1.00d+00,
     >           c5 = 1.40d+00 )

c---------------------------------------------------------------------
c   grid
c---------------------------------------------------------------------
      integer nx, ny, nz
      integer nx0, ny0, nz0
      integer ist, iend
      integer jst, jend
      integer ii1, ii2
      integer ji1, ji2
      integer ki1, ki2
      double precision  dxi, deta, dzeta
      double precision  tx1, tx2, tx3
      double precision  ty1, ty2, ty3
      double precision  tz1, tz2, tz3

      common/cgcon/ dxi, deta, dzeta,
     >              tx1, tx2, tx3,
     >              ty1, ty2, ty3,
     >              tz1, tz2, tz3,
     >              nx, ny, nz, 
     >              nx0, ny0, nz0,
     >              ist, iend,
     >              jst, jend,
     >              ii1, ii2, 
     >              ji1, ji2, 
     >              ki1, ki2

c---------------------------------------------------------------------
c   dissipation
c---------------------------------------------------------------------
      double precision dx1, dx2, dx3, dx4, dx5
      double precision dy1, dy2, dy3, dy4, dy5
      double precision dz1, dz2, dz3, dz4, dz5
      double precision dssp

      common/disp/ dx1,dx2,dx3,dx4,dx5,
     >             dy1,dy2,dy3,dy4,dy5,
     >             dz1,dz2,dz3,dz4,dz5,
     >             dssp

c---------------------------------------------------------------------
c   field variables and residuals
c   to improve cache performance, second two dimensions padded by 1 
c   for even number sizes only.
c   Note: corresponding array (called "v") in routines blts, buts, 
c   and l2norm are similarly padded
c---------------------------------------------------------------------
      double precision u(5,isiz1/2*2+1,
     >                     isiz2/2*2+1,
     >                     isiz3),
     >                 rsd(5,isiz1/2*2+1,
     >                       isiz2/2*2+1,
     >                       isiz3),
     >                 frct(5,isiz1/2*2+1,
     >                        isiz2/2*2+1,
     >                        isiz3),
     >                 flux(5,isiz1/2*2+1,
     >                        isiz2/2*2+1,
     >                        isiz3)

      common/cvar/ u,
     >             rsd,
     >             frct,
     >             flux


c---------------------------------------------------------------------
c   output control parameters
c---------------------------------------------------------------------
      integer ipr, inorm

      common/cprcon/ ipr, inorm

c---------------------------------------------------------------------
c   newton-raphson iteration control parameters
c---------------------------------------------------------------------
      integer itmax, invert
      double precision  dt, omega, tolrsd(5),
     >        rsdnm(5), errnm(5), frc, ttotal

      common/ctscon/ dt, omega, tolrsd,
     >               rsdnm, errnm, frc, ttotal,
     >               itmax, invert

      double precision a(5,5,isiz1,isiz2),
     >                 b(5,5,isiz1,isiz2),
     >                 c(5,5,isiz1,isiz2),
     >                 d(5,5,isiz1,isiz2)

      common/cjac/ a, b, c, d

c---------------------------------------------------------------------
c   coefficients of the exact solution
c---------------------------------------------------------------------
      double precision ce(5,13)

      common/cexact/ ce

c---------------------------------------------------------------------
c   multi-processor common blocks
c---------------------------------------------------------------------
      integer id, ndim, num, xdim, ydim, row, col
      common/dim/ id,ndim,num,xdim,ydim,row,col

      integer north,south,east,west
      common/neigh/ north,south,east, west

      integer from_s,from_n,from_e,from_w
      parameter (from_s=1,from_n=2,from_e=3,from_w=4)

      integer npmax
      parameter (npmax=isiz1+isiz2)

      logical icommn(npmax+1),icomms(npmax+1),
     >        icomme(npmax+1),icommw(npmax+1)
      double precision  buf(5,2*isiz2*isiz3),
     >                  buf1(5,2*isiz2*isiz3)

      common/comm/ buf, buf1,
     >             icommn,icomms,
     >             icomme,icommw

      double precision maxtime
      common/timer/maxtime


c---------------------------------------------------------------------
c   end of include file
c---------------------------------------------------------------------
