c---------------------------------------------------------
c     Including file for parameters and constants used 
c     in the entire SPH software packages.
c---------------------------------------------------------
c          pro zmenu dim zmenit: shocktube, shocktube_2D, dim a ghost_particles
c     Simulation cases
c     shocktube = .true. : carry out shock tube simulation
c     shocktube_2D = .true. : carry out shock tube 2D simulation
      logical shocktube, shocktube_2D
      parameter ( shocktube  = .false. )
      parameter ( shocktube_2D  = .true. )

c     dim : Dimension of the problem (1, 2 or 3)
      integer dim
      parameter ( dim = 2)   

c     maxn    : Maximum number of particles
c     max_interation : Maximum number of interaction pairs
      integer maxn,max_interaction
      parameter ( maxn    = 12000    ,
     &            max_interaction = 100 * maxn )

c     Parameters for the computational geometry,  
c     x_maxgeom : Upper limit of allowed x-regime 
c     x_mingeom : Lower limit of allowed x-regime 
c     y_maxgeom : Upper limit of allowed y-regime 
c     y_mingeom : Lower limit of allowed y-regime 
c     z_maxgeom : Upper limit of allowed z-regime 
c     z_mingeom : Lower limit of allowed z-regime 
      double precision x_maxgeom,x_mingeom,y_maxgeom,
     &                 y_mingeom,z_maxgeom,z_mingeom
      parameter ( x_maxgeom =  10.e0     ,
     &            x_mingeom = -10.e0     ,
     &            y_maxgeom =  10.e0     ,
     &            y_mingeom = -10.e0     ,
     &            z_maxgeom =  10.e0     ,
     &            z_mingeom = -10.e0     )
    
c     SPH algorithm for particle approximation (pa_sph)
c     pa_sph = 1 : (e.g. (p(i)+p(j))/(rho(i)*rho(j))
c              2 : (e.g. (p(i)/rho(i)**2+p(j)/rho(j)**2)
      integer pa_sph 
      parameter(pa_sph = 2)

c     Nearest neighbor particle searching (nnps) method
c     nnps = 1 : Simplest and direct searching
c            2 : Sorting grid linked list
c            3 : Tree algorithm
      integer nnps 
      parameter(nnps = 3)

c     Smoothing length evolution (sle) algorithm
c     sle = 0 : Keep unchanged,
c           1 : h = fac * (m/rho)^(1/dim)             nevhodne pro 2D
c           2 : dh/dt = (-1/dim)*(h/rho)*(drho/dt)    naprosto nevhodne pro 1D(oscilace)
c           3 : Other approaches (e.g. h = h_0 * (rho_0/rho)**(1/dim) ) 

      integer sle 
      parameter(sle = 2)

c     Smoothing kernel function 
c     skf = 1, cubic spline kernel by W4 - Spline (Monaghan 1985)   nevhodne pro 2D (oscilace)
c         = 2, Gauss kernel   (Gingold and Monaghan 1981) 
c         = 3, Quintic kernel (Morris 1997)                         nevhodne pro 2D (oscilace)
      integer skf 
      parameter(skf = 2)

c     Switches for different senarios

c     summation_density = .TRUE. : Use density summation model in the code, 
c                        .FALSE.: Use continuiity equation
c     average_velocity = .TRUE. : Monaghan treatment on average velocity,
c                       .FALSE.: No average treatment.
c     config_input = .TRUE. : Load initial configuration data,
c                   .FALSE.: Generate initial configuration.
c     virtual_part = .TRUE. : Use vritual particle,
c                   .FALSE.: No use of vritual particle.
c     ghost_particles = .TRUE. : Use ghost particle,
c                      .FALSE.: No use of ghost particle.
c     no_slip = .TRUE. : no_slip boundary conditions,
c                .FALSE.: free-slip boundary conditions.
c     vp_input = .TRUE. : Load virtual particle information,
c               .FALSE.: Generate virtual particle information.
c     visc = .true. : Consider viscosity,
c           .false.: No viscosity.
c     ex_force =.true. : Consider external force,
c               .false.: No external force.
c     visc_artificial = .true. : Consider artificial viscosity,
c                      .false.: No considering of artificial viscosity.
c     heat_artificial = .true. : Consider artificial heating,
c                      .false.: No considering of artificial heating.
c     self_gravity = .true. : Considering self_gravity,
c                    .false.: No considering of self_gravity
c     nor_density =  .true. : Density normalization by using CSPM,
c                    .false.: No normalization.
      logical summation_density, average_velocity, config_input,
     &       virtual_part, ghost_particles, wall_particles, vp_input,
     &       visc, ex_force, heat_artificial, visc_artificial, 
     &       self_gravity, nor_density, no_slip
      parameter ( summation_density  = .false. )
      parameter ( average_velocity  = .false. ) !
      parameter ( config_input  = .false. )
      parameter ( virtual_part  = .false. )      !
      parameter ( ghost_particles  = .true. )   !jakoby tam nebyla stena
      parameter ( no_slip = .false. )       ! no_slip boundary conditions
      parameter ( wall_particles = .false. )  ! zpusobi nulovou rychlost
      parameter ( vp_input  = .false.  )
      parameter ( visc  = .false.  )             !
      parameter ( ex_force  = .false. )           !
      parameter ( visc_artificial  = .true. )  !
      parameter ( heat_artificial  = .false. )
      parameter ( self_gravity  = .false. )      
      parameter ( nor_density  = .false. )      

c     Symmetry of the problem
c     nsym = 0 : no symmetry,
c          = 1 : axis symmetry,
c          = 2 : center symmetry.     
      integer    nsym
      parameter ( nsym = 0)

c     Control parameters for output 
c     int_stat = .true. : Print statistics about SPH particle interactions.
c                        including virtual particle information.
c     print_step: Print Timestep (On Screen)
c     save_step : Save Timestep    (To Disk File)
c     moni_particle: The particle number for information monitoring.
      logical int_stat
      parameter ( int_stat = .true. )
      integer print_step, save_step, moni_particle
      parameter ( print_step = 20 ,
     &            save_step = 100,
     &            moni_particle = 330   )
           
      double precision pi
      parameter ( pi = 3.14159265358979323846 )

