














































 














































































 


































































































































































 
























































































































































































 



















































 










 








































































































































































































































 










                                
                                

                                
                                

                                
                                

                                


















































 

      subroutine IDScalarWave_CheckParameters(cctk_dim,cctk_gsh,cctk_lsh
     &,cctk_lbnd,cctk_ubnd,cctk_tile_min,cctk_tile_max,cctk_ash,cctk_ali
     &gnment,cctk_alignment_offset,cctk_from,cctk_to,cctk_bbox,cctk_delt
     &a_time,cctk_time,cctk_delta_space,cctk_origin_space,cctk_levfac,cc
     &tk_levoff,cctk_levoffdenom,cctk_timefac,cctk_convlevel,cctk_convfa
     &c,cctk_nghostzones,cctk_iteration,cctkGH,cctk_ash1,cctk_ash2,cctk_
     &ash3, coarse_dx,coarse_dy,coarse_dz,phi,phi_p,phi_p_p,r,x,y,z)

      implicit none


      INTEGER cctk_dim
      integer, parameter :: cctki_use_cctk_dim = kind(cctk_dim)
      INTEGER cctk_gsh (cctk_dim)
      integer, parameter :: cctki_use_cctk_gsh = kind(cctk_gsh)
      INTEGER cctk_lsh (cctk_dim)
      integer, parameter :: cctki_use_cctk_lsh = kind(cctk_lsh)
      INTEGER cctk_lbnd (cctk_dim)
      integer, parameter :: cctki_use_cctk_lbnd = kind(cctk_lbnd)
      INTEGER cctk_ubnd (cctk_dim)
      integer, parameter :: cctki_use_cctk_ubnd = kind(cctk_ubnd)
      INTEGER cctk_tile_min (cctk_dim)
      integer, parameter :: cctki_use_cctk_tile_min = kind(cctk_tile_min
     &)
      INTEGER cctk_tile_max (cctk_dim)
      integer, parameter :: cctki_use_cctk_tile_max = kind(cctk_tile_max
     &)
      INTEGER cctk_ash (cctk_dim)
      integer, parameter :: cctki_use_cctk_ash = kind(cctk_ash)
      INTEGER cctk_alignment
      integer, parameter :: cctki_use_cctk_alignment = kind(cctk_alignme
     &nt)
      INTEGER cctk_alignment_offset
      integer, parameter :: cctki_use_cctk_alignment_offset = kind(cctk_
     &alignment_offset)
      INTEGER cctk_from (cctk_dim)
      integer, parameter :: cctki_use_cctk_from = kind(cctk_from)
      INTEGER cctk_to (cctk_dim)
      integer, parameter :: cctki_use_cctk_to = kind(cctk_to)
      INTEGER cctk_bbox (2*cctk_dim)
      integer, parameter :: cctki_use_cctk_bbox = kind(cctk_bbox)
      REAL*8 cctk_delta_time
      integer, parameter :: cctki_use_cctk_delta_time = kind(cctk_delta_
     &time)
      REAL*8 cctk_time
      integer, parameter :: cctki_use_cctk_time = kind(cctk_time)
      REAL*8 cctk_delta_space (cctk_dim)
      integer, parameter :: cctki_use_cctk_delta_space = kind(cctk_delta
     &_space)
      REAL*8 cctk_origin_space (cctk_dim)
      integer, parameter :: cctki_use_cctk_origin_space = kind(cctk_orig
     &in_space)
      INTEGER cctk_levfac (cctk_dim)
      integer, parameter :: cctki_use_cctk_levfac = kind(cctk_levfac)
      INTEGER cctk_levoff (cctk_dim)
      integer, parameter :: cctki_use_cctk_levoff = kind(cctk_levoff)
      INTEGER cctk_levoffdenom (cctk_dim)
      integer, parameter :: cctki_use_cctk_levoffdenom = kind(cctk_levof
     &fdenom)
      INTEGER cctk_timefac
      integer, parameter :: cctki_use_cctk_timefac = kind(cctk_timefac)
      INTEGER cctk_convlevel
      integer, parameter :: cctki_use_cctk_convlevel = kind(cctk_convlev
     &el)
      INTEGER cctk_convfac
      integer, parameter :: cctki_use_cctk_convfac = kind(cctk_convfac)
      INTEGER cctk_nghostzones (cctk_dim)
      integer, parameter :: cctki_use_cctk_nghostzones = kind(cctk_nghos
     &tzones)
      INTEGER cctk_iteration
      integer, parameter :: cctki_use_cctk_iteration = kind(cctk_iterati
     &on)
      integer*8 cctkGH
      integer, parameter :: cctki_use_cctkGH = kind(cctkGH)
      INTEGER cctk_ash1
      integer, parameter :: cctki_use_cctk_ash1 = kind(cctk_ash1)
      INTEGER cctk_ash2
      integer, parameter :: cctki_use_cctk_ash2 = kind(cctk_ash2)
      INTEGER cctk_ash3
      integer, parameter :: cctki_use_cctk_ash3 = kind(cctk_ash3)
      REAL*8 coarse_dx
      integer, parameter :: cctki_use_coarse_dx = kind(coarse_dx)
      REAL*8 coarse_dy
      integer, parameter :: cctki_use_coarse_dy = kind(coarse_dy)
      REAL*8 coarse_dz
      integer, parameter :: cctki_use_coarse_dz = kind(coarse_dz)
      REAL*8 phi (cctk_ash1,cctk_ash2,cctk_ash3)
      integer, parameter :: cctki_use_phi = kind(phi)
      REAL*8 phi_p (cctk_ash1,cctk_ash2,cctk_ash3)
      integer, parameter :: cctki_use_phi_p = kind(phi_p)
      REAL*8 phi_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
      integer, parameter :: cctki_use_phi_p_p = kind(phi_p_p)
      REAL*8 r (cctk_ash1,cctk_ash2,cctk_ash3)
      integer, parameter :: cctki_use_r = kind(r)
      REAL*8 x (cctk_ash1,cctk_ash2,cctk_ash3)
      integer, parameter :: cctki_use_x = kind(x)
      REAL*8 y (cctk_ash1,cctk_ash2,cctk_ash3)
      integer, parameter :: cctki_use_y = kind(y)
      REAL*8 z (cctk_ash1,cctk_ash2,cctk_ash3)
      integer, parameter :: cctki_use_z = kind(z)
      integer*8 initial_data
      integer, parameter :: cctki_use_initial_data = kind(initial_data)
      COMMON /idscalarwaverest/initial_data
      REAL*8 amplitude
      integer, parameter :: cctki_use_amplitude = kind(amplitude)
      REAL*8 kx
      integer, parameter :: cctki_use_kx = kind(kx)
      REAL*8 ky
      integer, parameter :: cctki_use_ky = kind(ky)
      REAL*8 kz
      integer, parameter :: cctki_use_kz = kind(kz)
      REAL*8 radius
      integer, parameter :: cctki_use_radius = kind(radius)
      REAL*8 sigma
      integer, parameter :: cctki_use_sigma = kind(sigma)
      COMMON /IDScalarWavepriv/amplitude, kx, ky, kz, radius, sigma
      REAL*8 CCTKH2
      integer, parameter :: cctki_use_CCTKH2 = kind(CCTKH2)
      REAL*8 CCTKH3
      integer, parameter :: cctki_use_CCTKH3 = kind(CCTKH3)
      REAL*8 CCTKH4
      integer, parameter :: cctki_use_CCTKH4 = kind(CCTKH4)
      REAL*8 CCTKH5
      integer, parameter :: cctki_use_CCTKH5 = kind(CCTKH5)
      REAL*8 CCTKH14
      integer, parameter :: cctki_use_CCTKH14 = kind(CCTKH14)
      REAL*8 CCTKH15
      integer, parameter :: cctki_use_CCTKH15 = kind(CCTKH15)
      REAL*8 CCTKH16
      integer, parameter :: cctki_use_CCTKH16 = kind(CCTKH16)
      REAL*8 CCTKH17
      integer, parameter :: cctki_use_CCTKH17 = kind(CCTKH17)
      REAL*8 CCTKH18
      integer, parameter :: cctki_use_CCTKH18 = kind(CCTKH18)
      REAL*8 CCTKH19
      integer, parameter :: cctki_use_CCTKH19 = kind(CCTKH19)
      REAL*8 CCTKH20
      integer, parameter :: cctki_use_CCTKH20 = kind(CCTKH20)
      REAL*8 CCTKH21
      integer, parameter :: cctki_use_CCTKH21 = kind(CCTKH21)
      integer*8 CCTKH0
      integer, parameter :: cctki_use_CCTKH0 = kind(CCTKH0)
      integer*8 CCTKH1
      integer, parameter :: cctki_use_CCTKH1 = kind(CCTKH1)
      integer*8 CCTKH6
      integer, parameter :: cctki_use_CCTKH6 = kind(CCTKH6)
      integer*8 CCTKH7
      integer, parameter :: cctki_use_CCTKH7 = kind(CCTKH7)
      integer*8 type
      integer, parameter :: cctki_use_type = kind(type)
      INTEGER*4 CCTKH8
      integer, parameter :: cctki_use_CCTKH8 = kind(CCTKH8)
      INTEGER*4 CCTKH9
      integer, parameter :: cctki_use_CCTKH9 = kind(CCTKH9)
      INTEGER*4 CCTKH10
      integer, parameter :: cctki_use_CCTKH10 = kind(CCTKH10)
      INTEGER*4 CCTKH11
      integer, parameter :: cctki_use_CCTKH11 = kind(CCTKH11)
      INTEGER*4 CCTKH12
      integer, parameter :: cctki_use_CCTKH12 = kind(CCTKH12)
      INTEGER*4 CCTKH13
      integer, parameter :: cctki_use_CCTKH13 = kind(CCTKH13)
      COMMON /GRIDrest/CCTKH2, CCTKH3, CCTKH4, CCTKH5, CCTKH14, CCTKH15,
     & CCTKH16, CCTKH17, CCTKH18, CCTKH19, CCTKH20, CCTKH21, CCTKH0, CCT
     &KH1, CCTKH6, CCTKH7, type, CCTKH8, CCTKH9, CCTKH10, CCTKH11, CCTKH
     &12, CCTKH13

      INTEGER CCTK_Equals

      if (CCTK_Equals(initial_data,"box").eq.1) then

         if (CCTK_Equals(type, "box").eq.0) then
            call CCTK_ParamWarn("IDScalarWave","Must have a box grid wit
     &h box initial data")
         end if

         if (kx.eq.0 .or. ky.eq.0 .or. kz.eq.0) then
            call CCTK_ParamWarn("IDScalarWave","Cannot have zero kx,ky,k
     &z for box initial data")
         end if

      end if

      return
      end
