





















































































































 


































































































































































 

























































































































































































 





















































 










 








































































































































































































































 










                                
                                

                                
                                

                                
                                

                                



















































































subroutine NullInterp_TempInit(cctk_dim,cctk_gsh,cctk_lsh,cctk_lbnd,cctk_ubnd,cctk_tile_min,cctk_tile_max,cctk_ash,cctk_alignment,c&
  &ctk_alignment_offset,cctk_from,cctk_to,cctk_bbox,cctk_delta_time,cctk_time,cctk_delta_space,cctk_origin_space,cctk_levfac,cctk_l&
  &evoff,cctk_levoffdenom,cctk_timefac,cctk_convlevel,cctk_convfac,cctk_nghostzones,cctk_iteration,cctkGH,cctk_ash1,cctk_ash2,cctk_&
  &ash3, X0tmp_mask,X1tmp_mask,tmp_maskn,tmp_masks, X0EG_mask,X0EQ_mask,X0EV_mask,X0NullGrParArrI,X0NullGrParArrR,X0RadCrd,X0StCmCr&
  &d,X0StCrd,X0guard_mask,X0tmp_cgf,X0tmp_cgf3,X0tmp_rgf,X1EG_mask,X1EQ_mask,X1EV_mask,X1StCmCrd,X1StCrd,X1guard_mask,X1tmp_cgf,X1t&
  &mp_cgf3,X1tmp_rgf,EG_mask,EQ_mask,EV_mask,evolution_radius,guard_mask,null_delta,null_dx,null_gsh,null_lbnd,null_lsh,null_rb,nul&
  &l_rbh,null_ubnd,null_xb,null_xbh,qsize,stereo_p,stereo_pp,stereo_q,tmp_cgfn,tmp_cgfn1,tmp_cgfn2,tmp_cgfn3,tmp_cgfs,tmp_cgfs1,tmp&
  &_cgfs2,tmp_cgfs3,tmp_rgfn,tmp_rgfs,zeta)
   use cctk
   implicit none
   integer*8 stereo_patch_type
  integer, parameter :: cctki_use_stereo_patch_type = kind(stereo_patch_type)
  INTEGER*4 deriv_accuracy
  integer, parameter :: cctki_use_deriv_accuracy = kind(deriv_accuracy)
  INTEGER*4 poison_test
  integer, parameter :: cctki_use_poison_test = kind(poison_test)
  COMMON /NullInterprest/stereo_patch_type, deriv_accuracy, poison_test
  REAL*8 mask_testinterp_tolerance
  integer, parameter :: cctki_use_mask_testinterp_tolerance = kind(mask_testinterp_tolerance)
  REAL*8 poison_value
  integer, parameter :: cctki_use_poison_value = kind(poison_value)
  integer*8 interpolation_name
  integer, parameter :: cctki_use_interpolation_name = kind(interpolation_name)
  INTEGER*4 extended_guard_zone
  integer, parameter :: cctki_use_extended_guard_zone = kind(extended_guard_zone)
  INTEGER*4 interpolation_order
  integer, parameter :: cctki_use_interpolation_order = kind(interpolation_order)
  INTEGER*4 skip_interpolation
  integer, parameter :: cctki_use_skip_interpolation = kind(skip_interpolation)
  INTEGER*4 use_edge_check
  integer, parameter :: cctki_use_use_edge_check = kind(use_edge_check)
  COMMON /NullInterppriv/mask_testinterp_tolerance, poison_value, interpolation_name, extended_guard_zone, interpolation_order, ski&
  &p_interpolation, use_edge_check
  REAL*8 CCTKH1
  integer, parameter :: cctki_use_CCTKH1 = kind(CCTKH1)
  REAL*8 CCTKH2
  integer, parameter :: cctki_use_CCTKH2 = kind(CCTKH2)
  INTEGER*4 N_ang_ev_outside_eq
  integer, parameter :: cctki_use_N_ang_ev_outside_eq = kind(N_ang_ev_outside_eq)
  INTEGER*4 N_ang_ghost_pts
  integer, parameter :: cctki_use_N_ang_ghost_pts = kind(N_ang_ghost_pts)
  INTEGER*4 N_ang_pts_inside_eq
  integer, parameter :: cctki_use_N_ang_pts_inside_eq = kind(N_ang_pts_inside_eq)
  INTEGER*4 N_ang_stencil_size
  integer, parameter :: cctki_use_N_ang_stencil_size = kind(N_ang_stencil_size)
  INTEGER*4 CCTKH0
  integer, parameter :: cctki_use_CCTKH0 = kind(CCTKH0)
  INTEGER*4 CCTKH3
  integer, parameter :: cctki_use_CCTKH3 = kind(CCTKH3)
  COMMON /NULLGRIDrest/CCTKH1, CCTKH2, N_ang_ev_outside_eq, N_ang_ghost_pts, N_ang_pts_inside_eq, N_ang_stencil_size, CCTKH0, CCTKH3

  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_alignment)
  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_origin_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_levoffdenom)
  INTEGER cctk_timefac
  integer, parameter :: cctki_use_cctk_timefac = kind(cctk_timefac)
  INTEGER cctk_convlevel
  integer, parameter :: cctki_use_cctk_convlevel = kind(cctk_convlevel)
  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_nghostzones)
  INTEGER cctk_iteration
  integer, parameter :: cctki_use_cctk_iteration = kind(cctk_iteration)
  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)
  INTEGER X0tmp_mask
  INTEGER X1tmp_mask
  REAL*8 tmp_maskn (X0tmp_mask,X1tmp_mask)
  integer, parameter :: cctki_use_tmp_maskn = kind(tmp_maskn)
  REAL*8 tmp_masks (X0tmp_mask,X1tmp_mask)
  integer, parameter :: cctki_use_tmp_masks = kind(tmp_masks)
  INTEGER X0EG_mask
  INTEGER X0EQ_mask
  INTEGER X0EV_mask
  INTEGER X0NullGrParArrI
  INTEGER X0NullGrParArrR
  INTEGER X0RadCrd
  INTEGER X0StCmCrd
  INTEGER X0StCrd
  INTEGER X0guard_mask
  INTEGER X0tmp_cgf
  INTEGER X0tmp_cgf3
  INTEGER X0tmp_rgf
  INTEGER X1EG_mask
  INTEGER X1EQ_mask
  INTEGER X1EV_mask
  INTEGER X1StCmCrd
  INTEGER X1StCrd
  INTEGER X1guard_mask
  INTEGER X1tmp_cgf
  INTEGER X1tmp_cgf3
  INTEGER X1tmp_rgf
  INTEGER*4 EG_mask (X0EG_mask,X1EG_mask)
  integer, parameter :: cctki_use_EG_mask = kind(EG_mask)
  INTEGER*4 EQ_mask (X0EQ_mask,X1EQ_mask)
  integer, parameter :: cctki_use_EQ_mask = kind(EQ_mask)
  INTEGER*4 EV_mask (X0EV_mask,X1EV_mask)
  integer, parameter :: cctki_use_EV_mask = kind(EV_mask)
  REAL*8 evolution_radius
  integer, parameter :: cctki_use_evolution_radius = kind(evolution_radius)
  INTEGER*4 guard_mask (X0guard_mask,X1guard_mask)
  integer, parameter :: cctki_use_guard_mask = kind(guard_mask)
  REAL*8 null_delta (X0NullGrParArrR)
  integer, parameter :: cctki_use_null_delta = kind(null_delta)
  REAL*8 null_dx
  integer, parameter :: cctki_use_null_dx = kind(null_dx)
  INTEGER*4 null_gsh (X0NullGrParArrI)
  integer, parameter :: cctki_use_null_gsh = kind(null_gsh)
  INTEGER*4 null_lbnd (X0NullGrParArrI)
  integer, parameter :: cctki_use_null_lbnd = kind(null_lbnd)
  INTEGER*4 null_lsh (X0NullGrParArrI)
  integer, parameter :: cctki_use_null_lsh = kind(null_lsh)
  REAL*8 null_rb (X0RadCrd)
  integer, parameter :: cctki_use_null_rb = kind(null_rb)
  REAL*8 null_rbh (X0RadCrd)
  integer, parameter :: cctki_use_null_rbh = kind(null_rbh)
  INTEGER*4 null_ubnd (X0NullGrParArrI)
  integer, parameter :: cctki_use_null_ubnd = kind(null_ubnd)
  REAL*8 null_xb (X0RadCrd)
  integer, parameter :: cctki_use_null_xb = kind(null_xb)
  REAL*8 null_xbh (X0RadCrd)
  integer, parameter :: cctki_use_null_xbh = kind(null_xbh)
  REAL*8 qsize
  integer, parameter :: cctki_use_qsize = kind(qsize)
  REAL*8 stereo_p (X0StCrd,X1StCrd)
  integer, parameter :: cctki_use_stereo_p = kind(stereo_p)
  REAL*8 stereo_pp (X0StCrd,X1StCrd)
  integer, parameter :: cctki_use_stereo_pp = kind(stereo_pp)
  REAL*8 stereo_q (X0StCrd,X1StCrd)
  integer, parameter :: cctki_use_stereo_q = kind(stereo_q)
  COMPLEX*16 tmp_cgfn (X0tmp_cgf,X1tmp_cgf)
  integer, parameter :: cctki_use_tmp_cgfn = kind(tmp_cgfn)
  COMPLEX*16 tmp_cgfn1 (X0tmp_cgf3,X1tmp_cgf3)
  integer, parameter :: cctki_use_tmp_cgfn1 = kind(tmp_cgfn1)
  COMPLEX*16 tmp_cgfn2 (X0tmp_cgf3,X1tmp_cgf3)
  integer, parameter :: cctki_use_tmp_cgfn2 = kind(tmp_cgfn2)
  COMPLEX*16 tmp_cgfn3 (X0tmp_cgf3,X1tmp_cgf3)
  integer, parameter :: cctki_use_tmp_cgfn3 = kind(tmp_cgfn3)
  COMPLEX*16 tmp_cgfs (X0tmp_cgf,X1tmp_cgf)
  integer, parameter :: cctki_use_tmp_cgfs = kind(tmp_cgfs)
  COMPLEX*16 tmp_cgfs1 (X0tmp_cgf3,X1tmp_cgf3)
  integer, parameter :: cctki_use_tmp_cgfs1 = kind(tmp_cgfs1)
  COMPLEX*16 tmp_cgfs2 (X0tmp_cgf3,X1tmp_cgf3)
  integer, parameter :: cctki_use_tmp_cgfs2 = kind(tmp_cgfs2)
  COMPLEX*16 tmp_cgfs3 (X0tmp_cgf3,X1tmp_cgf3)
  integer, parameter :: cctki_use_tmp_cgfs3 = kind(tmp_cgfs3)
  REAL*8 tmp_rgfn (X0tmp_rgf,X1tmp_rgf)
  integer, parameter :: cctki_use_tmp_rgfn = kind(tmp_rgfn)
  REAL*8 tmp_rgfs (X0tmp_rgf,X1tmp_rgf)
  integer, parameter :: cctki_use_tmp_rgfs = kind(tmp_rgfs)
  COMPLEX*16 zeta (X0StCmCrd,X1StCmCrd)
  integer, parameter :: cctki_use_zeta = kind(zeta)
   interface
  integer*8 function CCTK_PointerTo (var)
  implicit none
  type(*),dimension(..),TARGET :: var
  end function CCTK_PointerTo
  end interface
  interface
  integer function CCTK_Equals (arg1, arg2)
  implicit none
  integer*8 arg1
  character(*) arg2
  end function CCTK_Equals
  integer function CCTK_MyProc (cctkGH)
  implicit none
  integer*8 cctkGH
  end function CCTK_MyProc
  integer function CCTK_nProcs (cctkGH)
  implicit none
  integer*8 cctkGH
  end function CCTK_nProcs
  integer function CCTK_IsThornActive (name)
  implicit none
  character(*) name
  end function CCTK_IsThornActive
  integer*8 function CCTK_NullPointer ()
  implicit none
  end function CCTK_NullPointer
  end interface

   integer levels_tmp_cgf, levels_tmp_rgf, levels_tmp_cgf3






  call CCTK_ActiveTimeLevels(levels_tmp_cgf, cctkGH, "NullInterp::tmp_cgf")
  call CCTK_ActiveTimeLevels(levels_tmp_rgf, cctkGH, "NullInterp::tmp_rgf")
  call CCTK_ActiveTimeLevels(levels_tmp_cgf3, cctkGH, "NullInterp::tmp_cgf3")
  
  if (levels_tmp_cgf.ge.1) then
  tmp_cgfn =1.e+0
  tmp_cgfs =1.e+0
  end if
 
  if (levels_tmp_rgf.ge.1) then
  tmp_rgfn=1.e+0
  tmp_rgfs=1.e+0
  end if
  
  if (levels_tmp_cgf3.ge.1) then
    tmp_cgfn1=1.e+0
    tmp_cgfs1=1.e+0
    tmp_cgfn2=1.e+0
    tmp_cgfs2=1.e+0
    tmp_cgfn3=1.e+0
    tmp_cgfs3=1.e+0
  end if


end subroutine NullInterp_TempInit
