


























 
   










































































































































































 



































































































































































 






































































































 










 








































































































































































































































 










                                
                                

                                
                                

                                
                                

                                

















































































































































































































































































































































































































































































































 








  




  

subroutine H_viscosity(cctk_dim,cctk_gsh,cctk_lsh,cctk_lbnd,cctk_ubnd,cctk_level,cctk_patch,cctk_npatches,cctk_component,cctk_tile_&
  &min,cctk_tile_max,cctk_ash,cctk_alignment,cctk_alignment_offset,cctk_from,cctk_to,cctk_bbox,cctk_delta_time,cctk_time,cctk_delta&
  &_space,cctk_origin_space,cctk_levfac,cctk_levoff,cctk_levoffdenom,cctk_timefac,cctk_convlevel,cctk_convfac,cctk_nghostzones,cctk&
  &_iteration,cctkGH,cctk_ash1,cctk_ash2,cctk_ash3, GRHydro_tracer_cons_bext_length,GRHydro_tracer_flux_length,GRHydro_tracer_flux_&
  &splitting_length,GRHydro_tracer_prim_bext_length,GRHydro_tracer_rhs_length,X0particle_arrays,X0particle_rhs,X0particles,Aphiminu&
  &s,Aphiplus,Avecxminus,Avecxplus,Avecyminus,Avecyplus,Aveczminus,Aveczplus,Bconsxminus,Bconsxplus,Bconsyminus,Bconsyplus,Bconszmi&
  &nus,Bconszplus,Bvecxminus,Bvecxplus,Bvecyminus,Bvecyplus,Bveczminus,Bveczplus,DiffRho,GRHydro_maxima_iteration,GRHydro_mppm_eige&
  &nvalue_x_left,GRHydro_mppm_eigenvalue_x_right,GRHydro_mppm_eigenvalue_y_left,GRHydro_mppm_eigenvalue_y_right,GRHydro_mppm_eigenv&
  &alue_z_left,GRHydro_mppm_eigenvalue_z_right,GRHydro_mppm_xwind,GRHydro_proper_separation,GRHydro_separation,GRHydro_trivial_rp_g&
  &f_x,GRHydro_trivial_rp_gf_y,GRHydro_trivial_rp_gf_z,GRHydro_x,GRHydro_x_p,GRHydro_x_p_p,GRHydro_x_rhs,GRHydro_y,GRHydro_y_p,GRHy&
  &dro_y_p_p,GRHydro_y_rhs,GRHydro_z,GRHydro_z_p,GRHydro_z_p_p,GRHydro_z_rhs,InLastMoLPostStep,Y_e_minus,Y_e_plus,cons_tracerflux,c&
  &ons_tracerminus,cons_tracerplus,cons_tracerrhs,densfminus,densfplus,densminus,densplus,entropyconsminus,entropyconsplus,entropym&
  &inus,entropyplus,eos_c,eos_cs2_ave,eos_cs2_m,eos_cs2_p,eos_dpdeps_ave,eos_dpdeps_m,eos_dpdeps_p,eos_dpdeps_temp,eos_dpdrho_temp,&
  &eps_ave,execute_MoL_PostStep,execute_MoL_Step,fs_alpha1,fs_alpha2,fs_alpha3,fs_alpha4,fs_alpha5,maxima_i,maxima_j,maxima_k,parti&
  &cle_alp,particle_betax,particle_betay,particle_betaz,particle_vx,particle_vy,particle_vz,particle_x,particle_x_p,particle_x_p_p,&
  &particle_x_rhs,particle_y,particle_y_p,particle_y_p_p,particle_y_rhs,particle_z,particle_z_p,particle_z_p_p,particle_z_rhs,press&
  &_ave,press_new,press_old,psidcminus,psidcplus,rho_ave,sxfminus,sxfplus,sxminus,sxplus,syfminus,syfplus,syminus,syplus,szfminus,s&
  &zfplus,szminus,szplus,taufminus,taufplus,tauminus,tauplus,tempminus,tempplus,tracerfminus,tracerfplus,tracerminus,tracerplus,vel&
  &x_ave,vely_ave,velz_ave,whichpsidcspeed, Avec_length,Avecrhs_length,Bcons_length,Bconsrhs_length,Bvec_length,Evec_length,GRHydro&
  &_cons_tracers_length,GRHydro_tracers_length,bcom_length,lBvec_length,lvel_length,scon_length,srhs_length,vel_length,Abar,Abar_p,&
  &Abar_p_p,Aphi,Aphi_p,Aphi_p_p,Aphiflux,Aphirhs,Avec,Avec_p,Avec_p_p,Avecrhs,Avecxflux,Avecyflux,Aveczflux,Bcons,Bcons_p,Bcons_p_&
  &p,Bconsrhs,Bconsxflux,Bconsyflux,Bconszflux,Bvec,Bvec_p,Bvec_p_p,Evec,GRHydro_C2P_failed,GRHydro_eos_handle,GRHydro_polytrope_ha&
  &ndle,GRHydro_reflevel,GRHydro_rho_min,GRHydro_tau_min,Y_e,Y_e_p,Y_e_p_p,Y_e_con,Y_e_con_p,Y_e_con_p_p,Y_e_con_flux,Y_e_con_rhs,a&
  &lp,alp_p,alp_p_p,atmosphere_atmosp_descriptor,atmosphere_field_descriptor,atmosphere_mask,atmosphere_mask_real,atmosphere_normal&
  &_descriptor,bcom,bcom_p,bcom_p_p,bcom0,bcom0_p,bcom0_p_p,bcom_sq,bcom_sq_p,bcom_sq_p_p,betaa,betab,betac,betax,betax_p,betax_p_p&
  &,betay,betay_p,betay_p_p,betaz,betaz_p,betaz_p_p,coarse_dx,coarse_dy,coarse_dz,conformal_state,cons_tracer,cons_tracer_p,cons_tr&
  &acer_p_p,cs2minus,cs2plus,dens,dens_p,dens_p_p,densflux,densrhs,divB,dtalp,dtalp_p,dtalp_p_p,dtbetax,dtbetax_p,dtbetax_p_p,dtbet&
  &ay,dtbetay_p,dtbetay_p_p,dtbetaz,dtbetaz_p,dtbetaz_p_p,dtlapse_state,dtshift_state,eTtt,eTtt_p,eTtt_p_p,eTtx,eTtx_p,eTtx_p_p,eTt&
  &y,eTty_p,eTty_p_p,eTtz,eTtz_p,eTtz_p_p,eTxx,eTxx_p,eTxx_p_p,eTxy,eTxy_p,eTxy_p_p,eTxz,eTxz_p,eTxz_p_p,eTyy,eTyy_p,eTyy_p_p,eTyz,&
  &eTyz_p,eTyz_p_p,eTzz,eTzz_p,eTzz_p_p,emask,entropy,entropy_p,entropy_p_p,entropycons,entropycons_p,entropycons_p_p,entropyflux,e&
  &ntropyrhs,eps,eps_p,eps_p_p,epsminus,epsplus,evolve_Lorenz_gge,evolve_MHD,evolve_Y_e,evolve_entropy,evolve_temper,flux_direction&
  &,gaa,gaa_p,gaa_p_p,gab,gab_p,gab_p_p,gac,gac_p,gac_p_p,gbb,gbb_p,gbb_p_p,gbc,gbc_p,gbc_p_p,gcc,gcc_p,gcc_p_p,gxx,gxx_p,gxx_p_p,g&
  &xy,gxy_p,gxy_p_p,gxz,gxz_p,gxz_p_p,gyy,gyy_p,gyy_p_p,gyz,gyz_p,gyz_p_p,gzz,gzz_p,gzz_p_p,hydro_excision_mask,kaa,kab,kac,kbb,kbc&
  &,kcc,kxx,kxx_p,kxx_p_p,kxy,kxy_p,kxy_p_p,kxz,kxz_p,kxz_p_p,kyy,kyy_p,kyy_p_p,kyz,kyz_p,kyz_p_p,kzz,kzz_p,kzz_p_p,lBvec,lBvec_p,l&
  &Bvec_p_p,lvel,lvel_p,lvel_p_p,maxima_x,maxima_y,maxima_z,maximum_density,maxrho_global,press,press_p,press_p_p,pressminus,pressp&
  &lus,psi,psidc,psidc_p,psidc_p_p,psidcflux,psidcrhs,psix,psixx,psixy,psixz,psiy,psiyy,psiyz,psiz,psizz,r,rho,rho_p,rho_p_p,rhomin&
  &us,rhoplus,scon,scon_p,scon_p_p,sdetg,shift_state,space_mask,srhs,stress_energy_state,sxflux,syflux,szflux,tau,tau_p,tau_p_p,tau&
  &flux,taurhs,temperature,temperature_p,temperature_p_p,tracer,tracer_p,tracer_p_p,vel,vel_p,vel_p_p,velxminus,velxplus,velyminus,&
  &velyplus,velzminus,velzplus,w_lorentz,w_lorentz_p,w_lorentz_p_p,w_lorentzminus,w_lorentzplus,x,xoffset,y,yoffset,z,zoffset)

  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_level
  integer, parameter :: cctki_use_cctk_level = kind(cctk_level)
  INTEGER cctk_patch
  integer, parameter :: cctki_use_cctk_patch = kind(cctk_patch)
  INTEGER cctk_npatches
  integer, parameter :: cctki_use_cctk_npatches = kind(cctk_npatches)
  INTEGER cctk_component
  integer, parameter :: cctki_use_cctk_component = kind(cctk_component)
  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 GRHydro_tracer_cons_bext_length
  INTEGER GRHydro_tracer_flux_length
  INTEGER GRHydro_tracer_flux_splitting_length
  INTEGER GRHydro_tracer_prim_bext_length
  INTEGER GRHydro_tracer_rhs_length
  INTEGER X0particle_arrays
  INTEGER X0particle_rhs
  INTEGER X0particles
  REAL*8 Aphiminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Aphiminus = kind(Aphiminus)
  REAL*8 Aphiplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Aphiplus = kind(Aphiplus)
  REAL*8 Avecxminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Avecxminus = kind(Avecxminus)
  REAL*8 Avecxplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Avecxplus = kind(Avecxplus)
  REAL*8 Avecyminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Avecyminus = kind(Avecyminus)
  REAL*8 Avecyplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Avecyplus = kind(Avecyplus)
  REAL*8 Aveczminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Aveczminus = kind(Aveczminus)
  REAL*8 Aveczplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Aveczplus = kind(Aveczplus)
  REAL*8 Bconsxminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bconsxminus = kind(Bconsxminus)
  REAL*8 Bconsxplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bconsxplus = kind(Bconsxplus)
  REAL*8 Bconsyminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bconsyminus = kind(Bconsyminus)
  REAL*8 Bconsyplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bconsyplus = kind(Bconsyplus)
  REAL*8 Bconszminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bconszminus = kind(Bconszminus)
  REAL*8 Bconszplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bconszplus = kind(Bconszplus)
  REAL*8 Bvecxminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bvecxminus = kind(Bvecxminus)
  REAL*8 Bvecxplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bvecxplus = kind(Bvecxplus)
  REAL*8 Bvecyminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bvecyminus = kind(Bvecyminus)
  REAL*8 Bvecyplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bvecyplus = kind(Bvecyplus)
  REAL*8 Bveczminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bveczminus = kind(Bveczminus)
  REAL*8 Bveczplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bveczplus = kind(Bveczplus)
  REAL*8 DiffRho (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_DiffRho = kind(DiffRho)
  INTEGER*4 GRHydro_maxima_iteration
  integer, parameter :: cctki_use_GRHydro_maxima_iteration = kind(GRHydro_maxima_iteration)
  REAL*8 GRHydro_mppm_eigenvalue_x_left (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_mppm_eigenvalue_x_left = kind(GRHydro_mppm_eigenvalue_x_left)
  REAL*8 GRHydro_mppm_eigenvalue_x_right (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_mppm_eigenvalue_x_right = kind(GRHydro_mppm_eigenvalue_x_right)
  REAL*8 GRHydro_mppm_eigenvalue_y_left (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_mppm_eigenvalue_y_left = kind(GRHydro_mppm_eigenvalue_y_left)
  REAL*8 GRHydro_mppm_eigenvalue_y_right (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_mppm_eigenvalue_y_right = kind(GRHydro_mppm_eigenvalue_y_right)
  REAL*8 GRHydro_mppm_eigenvalue_z_left (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_mppm_eigenvalue_z_left = kind(GRHydro_mppm_eigenvalue_z_left)
  REAL*8 GRHydro_mppm_eigenvalue_z_right (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_mppm_eigenvalue_z_right = kind(GRHydro_mppm_eigenvalue_z_right)
  REAL*8 GRHydro_mppm_xwind (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_mppm_xwind = kind(GRHydro_mppm_xwind)
  REAL*8 GRHydro_proper_separation
  integer, parameter :: cctki_use_GRHydro_proper_separation = kind(GRHydro_proper_separation)
  REAL*8 GRHydro_separation
  integer, parameter :: cctki_use_GRHydro_separation = kind(GRHydro_separation)
  INTEGER*4 GRHydro_trivial_rp_gf_x (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_trivial_rp_gf_x = kind(GRHydro_trivial_rp_gf_x)
  INTEGER*4 GRHydro_trivial_rp_gf_y (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_trivial_rp_gf_y = kind(GRHydro_trivial_rp_gf_y)
  INTEGER*4 GRHydro_trivial_rp_gf_z (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_trivial_rp_gf_z = kind(GRHydro_trivial_rp_gf_z)
  REAL*8 GRHydro_x (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_x = kind(GRHydro_x)
  REAL*8 GRHydro_x_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_x_p = kind(GRHydro_x_p)
  REAL*8 GRHydro_x_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_x_p_p = kind(GRHydro_x_p_p)
  REAL*8 GRHydro_x_rhs (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_x_rhs = kind(GRHydro_x_rhs)
  REAL*8 GRHydro_y (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_y = kind(GRHydro_y)
  REAL*8 GRHydro_y_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_y_p = kind(GRHydro_y_p)
  REAL*8 GRHydro_y_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_y_p_p = kind(GRHydro_y_p_p)
  REAL*8 GRHydro_y_rhs (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_y_rhs = kind(GRHydro_y_rhs)
  REAL*8 GRHydro_z (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_z = kind(GRHydro_z)
  REAL*8 GRHydro_z_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_z_p = kind(GRHydro_z_p)
  REAL*8 GRHydro_z_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_z_p_p = kind(GRHydro_z_p_p)
  REAL*8 GRHydro_z_rhs (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_z_rhs = kind(GRHydro_z_rhs)
  INTEGER*4 InLastMoLPostStep
  integer, parameter :: cctki_use_InLastMoLPostStep = kind(InLastMoLPostStep)
  REAL*8 Y_e_minus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Y_e_minus = kind(Y_e_minus)
  REAL*8 Y_e_plus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Y_e_plus = kind(Y_e_plus)
  REAL*8 cons_tracerflux (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_tracer_flux_length)
  integer, parameter :: cctki_use_cons_tracerflux = kind(cons_tracerflux)
  REAL*8 cons_tracerminus (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_tracer_cons_bext_length)
  integer, parameter :: cctki_use_cons_tracerminus = kind(cons_tracerminus)
  REAL*8 cons_tracerplus (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_tracer_cons_bext_length)
  integer, parameter :: cctki_use_cons_tracerplus = kind(cons_tracerplus)
  REAL*8 cons_tracerrhs (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_tracer_rhs_length)
  integer, parameter :: cctki_use_cons_tracerrhs = kind(cons_tracerrhs)
  REAL*8 densfminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_densfminus = kind(densfminus)
  REAL*8 densfplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_densfplus = kind(densfplus)
  REAL*8 densminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_densminus = kind(densminus)
  REAL*8 densplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_densplus = kind(densplus)
  REAL*8 entropyconsminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropyconsminus = kind(entropyconsminus)
  REAL*8 entropyconsplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropyconsplus = kind(entropyconsplus)
  REAL*8 entropyminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropyminus = kind(entropyminus)
  REAL*8 entropyplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropyplus = kind(entropyplus)
  REAL*8 eos_c (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eos_c = kind(eos_c)
  REAL*8 eos_cs2_ave (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eos_cs2_ave = kind(eos_cs2_ave)
  REAL*8 eos_cs2_m (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eos_cs2_m = kind(eos_cs2_m)
  REAL*8 eos_cs2_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eos_cs2_p = kind(eos_cs2_p)
  REAL*8 eos_dpdeps_ave (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eos_dpdeps_ave = kind(eos_dpdeps_ave)
  REAL*8 eos_dpdeps_m (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eos_dpdeps_m = kind(eos_dpdeps_m)
  REAL*8 eos_dpdeps_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eos_dpdeps_p = kind(eos_dpdeps_p)
  REAL*8 eos_dpdeps_temp (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eos_dpdeps_temp = kind(eos_dpdeps_temp)
  REAL*8 eos_dpdrho_temp (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eos_dpdrho_temp = kind(eos_dpdrho_temp)
  REAL*8 eps_ave (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eps_ave = kind(eps_ave)
  INTEGER*4 execute_MoL_PostStep
  integer, parameter :: cctki_use_execute_MoL_PostStep = kind(execute_MoL_PostStep)
  INTEGER*4 execute_MoL_Step
  integer, parameter :: cctki_use_execute_MoL_Step = kind(execute_MoL_Step)
  REAL*8 fs_alpha1
  integer, parameter :: cctki_use_fs_alpha1 = kind(fs_alpha1)
  REAL*8 fs_alpha2
  integer, parameter :: cctki_use_fs_alpha2 = kind(fs_alpha2)
  REAL*8 fs_alpha3
  integer, parameter :: cctki_use_fs_alpha3 = kind(fs_alpha3)
  REAL*8 fs_alpha4
  integer, parameter :: cctki_use_fs_alpha4 = kind(fs_alpha4)
  REAL*8 fs_alpha5
  integer, parameter :: cctki_use_fs_alpha5 = kind(fs_alpha5)
  REAL*8 maxima_i
  integer, parameter :: cctki_use_maxima_i = kind(maxima_i)
  REAL*8 maxima_j
  integer, parameter :: cctki_use_maxima_j = kind(maxima_j)
  REAL*8 maxima_k
  integer, parameter :: cctki_use_maxima_k = kind(maxima_k)
  REAL*8 particle_alp (X0particle_arrays)
  integer, parameter :: cctki_use_particle_alp = kind(particle_alp)
  REAL*8 particle_betax (X0particle_arrays)
  integer, parameter :: cctki_use_particle_betax = kind(particle_betax)
  REAL*8 particle_betay (X0particle_arrays)
  integer, parameter :: cctki_use_particle_betay = kind(particle_betay)
  REAL*8 particle_betaz (X0particle_arrays)
  integer, parameter :: cctki_use_particle_betaz = kind(particle_betaz)
  REAL*8 particle_vx (X0particle_arrays)
  integer, parameter :: cctki_use_particle_vx = kind(particle_vx)
  REAL*8 particle_vy (X0particle_arrays)
  integer, parameter :: cctki_use_particle_vy = kind(particle_vy)
  REAL*8 particle_vz (X0particle_arrays)
  integer, parameter :: cctki_use_particle_vz = kind(particle_vz)
  REAL*8 particle_x (X0particles)
  integer, parameter :: cctki_use_particle_x = kind(particle_x)
  REAL*8 particle_x_p (X0particles)
  integer, parameter :: cctki_use_particle_x_p = kind(particle_x_p)
  REAL*8 particle_x_p_p (X0particles)
  integer, parameter :: cctki_use_particle_x_p_p = kind(particle_x_p_p)
  REAL*8 particle_x_rhs (X0particle_rhs)
  integer, parameter :: cctki_use_particle_x_rhs = kind(particle_x_rhs)
  REAL*8 particle_y (X0particles)
  integer, parameter :: cctki_use_particle_y = kind(particle_y)
  REAL*8 particle_y_p (X0particles)
  integer, parameter :: cctki_use_particle_y_p = kind(particle_y_p)
  REAL*8 particle_y_p_p (X0particles)
  integer, parameter :: cctki_use_particle_y_p_p = kind(particle_y_p_p)
  REAL*8 particle_y_rhs (X0particle_rhs)
  integer, parameter :: cctki_use_particle_y_rhs = kind(particle_y_rhs)
  REAL*8 particle_z (X0particles)
  integer, parameter :: cctki_use_particle_z = kind(particle_z)
  REAL*8 particle_z_p (X0particles)
  integer, parameter :: cctki_use_particle_z_p = kind(particle_z_p)
  REAL*8 particle_z_p_p (X0particles)
  integer, parameter :: cctki_use_particle_z_p_p = kind(particle_z_p_p)
  REAL*8 particle_z_rhs (X0particle_rhs)
  integer, parameter :: cctki_use_particle_z_rhs = kind(particle_z_rhs)
  REAL*8 press_ave (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_press_ave = kind(press_ave)
  REAL*8 press_new (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_press_new = kind(press_new)
  REAL*8 press_old (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_press_old = kind(press_old)
  REAL*8 psidcminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psidcminus = kind(psidcminus)
  REAL*8 psidcplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psidcplus = kind(psidcplus)
  REAL*8 rho_ave (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_rho_ave = kind(rho_ave)
  REAL*8 sxfminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_sxfminus = kind(sxfminus)
  REAL*8 sxfplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_sxfplus = kind(sxfplus)
  REAL*8 sxminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_sxminus = kind(sxminus)
  REAL*8 sxplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_sxplus = kind(sxplus)
  REAL*8 syfminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_syfminus = kind(syfminus)
  REAL*8 syfplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_syfplus = kind(syfplus)
  REAL*8 syminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_syminus = kind(syminus)
  REAL*8 syplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_syplus = kind(syplus)
  REAL*8 szfminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_szfminus = kind(szfminus)
  REAL*8 szfplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_szfplus = kind(szfplus)
  REAL*8 szminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_szminus = kind(szminus)
  REAL*8 szplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_szplus = kind(szplus)
  REAL*8 taufminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_taufminus = kind(taufminus)
  REAL*8 taufplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_taufplus = kind(taufplus)
  REAL*8 tauminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_tauminus = kind(tauminus)
  REAL*8 tauplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_tauplus = kind(tauplus)
  REAL*8 tempminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_tempminus = kind(tempminus)
  REAL*8 tempplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_tempplus = kind(tempplus)
  REAL*8 tracerfminus (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_tracer_flux_splitting_length)
  integer, parameter :: cctki_use_tracerfminus = kind(tracerfminus)
  REAL*8 tracerfplus (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_tracer_flux_splitting_length)
  integer, parameter :: cctki_use_tracerfplus = kind(tracerfplus)
  REAL*8 tracerminus (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_tracer_prim_bext_length)
  integer, parameter :: cctki_use_tracerminus = kind(tracerminus)
  REAL*8 tracerplus (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_tracer_prim_bext_length)
  integer, parameter :: cctki_use_tracerplus = kind(tracerplus)
  REAL*8 velx_ave (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_velx_ave = kind(velx_ave)
  REAL*8 vely_ave (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_vely_ave = kind(vely_ave)
  REAL*8 velz_ave (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_velz_ave = kind(velz_ave)
  INTEGER*4 whichpsidcspeed
  integer, parameter :: cctki_use_whichpsidcspeed = kind(whichpsidcspeed)
  INTEGER Avec_length
  INTEGER Avecrhs_length
  INTEGER Bcons_length
  INTEGER Bconsrhs_length
  INTEGER Bvec_length
  INTEGER Evec_length
  INTEGER GRHydro_cons_tracers_length
  INTEGER GRHydro_tracers_length
  INTEGER bcom_length
  INTEGER lBvec_length
  INTEGER lvel_length
  INTEGER scon_length
  INTEGER srhs_length
  INTEGER vel_length
  REAL*8 Abar (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Abar = kind(Abar)
  REAL*8 Abar_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Abar_p = kind(Abar_p)
  REAL*8 Abar_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Abar_p_p = kind(Abar_p_p)
  REAL*8 Aphi (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Aphi = kind(Aphi)
  REAL*8 Aphi_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Aphi_p = kind(Aphi_p)
  REAL*8 Aphi_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Aphi_p_p = kind(Aphi_p_p)
  REAL*8 Aphiflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Aphiflux = kind(Aphiflux)
  REAL*8 Aphirhs (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Aphirhs = kind(Aphirhs)
  REAL*8 Avec (cctk_ash1,cctk_ash2,cctk_ash3,Avec_length)
  integer, parameter :: cctki_use_Avec = kind(Avec)
  REAL*8 Avec_p (cctk_ash1,cctk_ash2,cctk_ash3,Avec_length)
  integer, parameter :: cctki_use_Avec_p = kind(Avec_p)
  REAL*8 Avec_p_p (cctk_ash1,cctk_ash2,cctk_ash3,Avec_length)
  integer, parameter :: cctki_use_Avec_p_p = kind(Avec_p_p)
  REAL*8 Avecrhs (cctk_ash1,cctk_ash2,cctk_ash3,Avecrhs_length)
  integer, parameter :: cctki_use_Avecrhs = kind(Avecrhs)
  REAL*8 Avecxflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Avecxflux = kind(Avecxflux)
  REAL*8 Avecyflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Avecyflux = kind(Avecyflux)
  REAL*8 Aveczflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Aveczflux = kind(Aveczflux)
  REAL*8 Bcons (cctk_ash1,cctk_ash2,cctk_ash3,Bcons_length)
  integer, parameter :: cctki_use_Bcons = kind(Bcons)
  REAL*8 Bcons_p (cctk_ash1,cctk_ash2,cctk_ash3,Bcons_length)
  integer, parameter :: cctki_use_Bcons_p = kind(Bcons_p)
  REAL*8 Bcons_p_p (cctk_ash1,cctk_ash2,cctk_ash3,Bcons_length)
  integer, parameter :: cctki_use_Bcons_p_p = kind(Bcons_p_p)
  REAL*8 Bconsrhs (cctk_ash1,cctk_ash2,cctk_ash3,Bconsrhs_length)
  integer, parameter :: cctki_use_Bconsrhs = kind(Bconsrhs)
  REAL*8 Bconsxflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bconsxflux = kind(Bconsxflux)
  REAL*8 Bconsyflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bconsyflux = kind(Bconsyflux)
  REAL*8 Bconszflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bconszflux = kind(Bconszflux)
  REAL*8 Bvec (cctk_ash1,cctk_ash2,cctk_ash3,Bvec_length)
  integer, parameter :: cctki_use_Bvec = kind(Bvec)
  REAL*8 Bvec_p (cctk_ash1,cctk_ash2,cctk_ash3,Bvec_length)
  integer, parameter :: cctki_use_Bvec_p = kind(Bvec_p)
  REAL*8 Bvec_p_p (cctk_ash1,cctk_ash2,cctk_ash3,Bvec_length)
  integer, parameter :: cctki_use_Bvec_p_p = kind(Bvec_p_p)
  REAL*8 Evec (cctk_ash1,cctk_ash2,cctk_ash3,Evec_length)
  integer, parameter :: cctki_use_Evec = kind(Evec)
  REAL*8 GRHydro_C2P_failed (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_C2P_failed = kind(GRHydro_C2P_failed)
  INTEGER*4 GRHydro_eos_handle
  integer, parameter :: cctki_use_GRHydro_eos_handle = kind(GRHydro_eos_handle)
  INTEGER*4 GRHydro_polytrope_handle
  integer, parameter :: cctki_use_GRHydro_polytrope_handle = kind(GRHydro_polytrope_handle)
  INTEGER*4 GRHydro_reflevel
  integer, parameter :: cctki_use_GRHydro_reflevel = kind(GRHydro_reflevel)
  REAL*8 GRHydro_rho_min
  integer, parameter :: cctki_use_GRHydro_rho_min = kind(GRHydro_rho_min)
  REAL*8 GRHydro_tau_min
  integer, parameter :: cctki_use_GRHydro_tau_min = kind(GRHydro_tau_min)
  REAL*8 Y_e (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Y_e = kind(Y_e)
  REAL*8 Y_e_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Y_e_p = kind(Y_e_p)
  REAL*8 Y_e_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Y_e_p_p = kind(Y_e_p_p)
  REAL*8 Y_e_con (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Y_e_con = kind(Y_e_con)
  REAL*8 Y_e_con_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Y_e_con_p = kind(Y_e_con_p)
  REAL*8 Y_e_con_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Y_e_con_p_p = kind(Y_e_con_p_p)
  REAL*8 Y_e_con_flux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Y_e_con_flux = kind(Y_e_con_flux)
  REAL*8 Y_e_con_rhs (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Y_e_con_rhs = kind(Y_e_con_rhs)
  REAL*8 alp (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_alp = kind(alp)
  REAL*8 alp_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_alp_p = kind(alp_p)
  REAL*8 alp_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_alp_p_p = kind(alp_p_p)
  INTEGER*4 atmosphere_atmosp_descriptor
  integer, parameter :: cctki_use_atmosphere_atmosp_descriptor = kind(atmosphere_atmosp_descriptor)
  INTEGER*4 atmosphere_field_descriptor
  integer, parameter :: cctki_use_atmosphere_field_descriptor = kind(atmosphere_field_descriptor)
  INTEGER*4 atmosphere_mask (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_atmosphere_mask = kind(atmosphere_mask)
  REAL*8 atmosphere_mask_real (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_atmosphere_mask_real = kind(atmosphere_mask_real)
  INTEGER*4 atmosphere_normal_descriptor
  integer, parameter :: cctki_use_atmosphere_normal_descriptor = kind(atmosphere_normal_descriptor)
  REAL*8 bcom (cctk_ash1,cctk_ash2,cctk_ash3,bcom_length)
  integer, parameter :: cctki_use_bcom = kind(bcom)
  REAL*8 bcom_p (cctk_ash1,cctk_ash2,cctk_ash3,bcom_length)
  integer, parameter :: cctki_use_bcom_p = kind(bcom_p)
  REAL*8 bcom_p_p (cctk_ash1,cctk_ash2,cctk_ash3,bcom_length)
  integer, parameter :: cctki_use_bcom_p_p = kind(bcom_p_p)
  REAL*8 bcom0 (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_bcom0 = kind(bcom0)
  REAL*8 bcom0_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_bcom0_p = kind(bcom0_p)
  REAL*8 bcom0_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_bcom0_p_p = kind(bcom0_p_p)
  REAL*8 bcom_sq (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_bcom_sq = kind(bcom_sq)
  REAL*8 bcom_sq_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_bcom_sq_p = kind(bcom_sq_p)
  REAL*8 bcom_sq_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_bcom_sq_p_p = kind(bcom_sq_p_p)
  REAL*8 betaa (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betaa = kind(betaa)
  REAL*8 betab (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betab = kind(betab)
  REAL*8 betac (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betac = kind(betac)
  REAL*8 betax (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betax = kind(betax)
  REAL*8 betax_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betax_p = kind(betax_p)
  REAL*8 betax_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betax_p_p = kind(betax_p_p)
  REAL*8 betay (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betay = kind(betay)
  REAL*8 betay_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betay_p = kind(betay_p)
  REAL*8 betay_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betay_p_p = kind(betay_p_p)
  REAL*8 betaz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betaz = kind(betaz)
  REAL*8 betaz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betaz_p = kind(betaz_p)
  REAL*8 betaz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betaz_p_p = kind(betaz_p_p)
  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)
  INTEGER*4 conformal_state
  integer, parameter :: cctki_use_conformal_state = kind(conformal_state)
  REAL*8 cons_tracer (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_cons_tracers_length)
  integer, parameter :: cctki_use_cons_tracer = kind(cons_tracer)
  REAL*8 cons_tracer_p (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_cons_tracers_length)
  integer, parameter :: cctki_use_cons_tracer_p = kind(cons_tracer_p)
  REAL*8 cons_tracer_p_p (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_cons_tracers_length)
  integer, parameter :: cctki_use_cons_tracer_p_p = kind(cons_tracer_p_p)
  REAL*8 cs2minus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_cs2minus = kind(cs2minus)
  REAL*8 cs2plus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_cs2plus = kind(cs2plus)
  REAL*8 dens (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dens = kind(dens)
  REAL*8 dens_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dens_p = kind(dens_p)
  REAL*8 dens_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dens_p_p = kind(dens_p_p)
  REAL*8 densflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_densflux = kind(densflux)
  REAL*8 densrhs (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_densrhs = kind(densrhs)
  REAL*8 divB (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_divB = kind(divB)
  REAL*8 dtalp (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtalp = kind(dtalp)
  REAL*8 dtalp_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtalp_p = kind(dtalp_p)
  REAL*8 dtalp_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtalp_p_p = kind(dtalp_p_p)
  REAL*8 dtbetax (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtbetax = kind(dtbetax)
  REAL*8 dtbetax_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtbetax_p = kind(dtbetax_p)
  REAL*8 dtbetax_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtbetax_p_p = kind(dtbetax_p_p)
  REAL*8 dtbetay (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtbetay = kind(dtbetay)
  REAL*8 dtbetay_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtbetay_p = kind(dtbetay_p)
  REAL*8 dtbetay_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtbetay_p_p = kind(dtbetay_p_p)
  REAL*8 dtbetaz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtbetaz = kind(dtbetaz)
  REAL*8 dtbetaz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtbetaz_p = kind(dtbetaz_p)
  REAL*8 dtbetaz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtbetaz_p_p = kind(dtbetaz_p_p)
  INTEGER*4 dtlapse_state
  integer, parameter :: cctki_use_dtlapse_state = kind(dtlapse_state)
  INTEGER*4 dtshift_state
  integer, parameter :: cctki_use_dtshift_state = kind(dtshift_state)
  REAL*8 eTtt (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTtt = kind(eTtt)
  REAL*8 eTtt_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTtt_p = kind(eTtt_p)
  REAL*8 eTtt_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTtt_p_p = kind(eTtt_p_p)
  REAL*8 eTtx (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTtx = kind(eTtx)
  REAL*8 eTtx_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTtx_p = kind(eTtx_p)
  REAL*8 eTtx_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTtx_p_p = kind(eTtx_p_p)
  REAL*8 eTty (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTty = kind(eTty)
  REAL*8 eTty_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTty_p = kind(eTty_p)
  REAL*8 eTty_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTty_p_p = kind(eTty_p_p)
  REAL*8 eTtz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTtz = kind(eTtz)
  REAL*8 eTtz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTtz_p = kind(eTtz_p)
  REAL*8 eTtz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTtz_p_p = kind(eTtz_p_p)
  REAL*8 eTxx (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTxx = kind(eTxx)
  REAL*8 eTxx_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTxx_p = kind(eTxx_p)
  REAL*8 eTxx_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTxx_p_p = kind(eTxx_p_p)
  REAL*8 eTxy (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTxy = kind(eTxy)
  REAL*8 eTxy_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTxy_p = kind(eTxy_p)
  REAL*8 eTxy_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTxy_p_p = kind(eTxy_p_p)
  REAL*8 eTxz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTxz = kind(eTxz)
  REAL*8 eTxz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTxz_p = kind(eTxz_p)
  REAL*8 eTxz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTxz_p_p = kind(eTxz_p_p)
  REAL*8 eTyy (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTyy = kind(eTyy)
  REAL*8 eTyy_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTyy_p = kind(eTyy_p)
  REAL*8 eTyy_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTyy_p_p = kind(eTyy_p_p)
  REAL*8 eTyz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTyz = kind(eTyz)
  REAL*8 eTyz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTyz_p = kind(eTyz_p)
  REAL*8 eTyz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTyz_p_p = kind(eTyz_p_p)
  REAL*8 eTzz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTzz = kind(eTzz)
  REAL*8 eTzz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTzz_p = kind(eTzz_p)
  REAL*8 eTzz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTzz_p_p = kind(eTzz_p_p)
  REAL*8 emask (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_emask = kind(emask)
  REAL*8 entropy (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropy = kind(entropy)
  REAL*8 entropy_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropy_p = kind(entropy_p)
  REAL*8 entropy_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropy_p_p = kind(entropy_p_p)
  REAL*8 entropycons (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropycons = kind(entropycons)
  REAL*8 entropycons_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropycons_p = kind(entropycons_p)
  REAL*8 entropycons_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropycons_p_p = kind(entropycons_p_p)
  REAL*8 entropyflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropyflux = kind(entropyflux)
  REAL*8 entropyrhs (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropyrhs = kind(entropyrhs)
  REAL*8 eps (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eps = kind(eps)
  REAL*8 eps_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eps_p = kind(eps_p)
  REAL*8 eps_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eps_p_p = kind(eps_p_p)
  REAL*8 epsminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_epsminus = kind(epsminus)
  REAL*8 epsplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_epsplus = kind(epsplus)
  INTEGER*4 evolve_Lorenz_gge
  integer, parameter :: cctki_use_evolve_Lorenz_gge = kind(evolve_Lorenz_gge)
  INTEGER*4 evolve_MHD
  integer, parameter :: cctki_use_evolve_MHD = kind(evolve_MHD)
  INTEGER*4 evolve_Y_e
  integer, parameter :: cctki_use_evolve_Y_e = kind(evolve_Y_e)
  INTEGER*4 evolve_entropy
  integer, parameter :: cctki_use_evolve_entropy = kind(evolve_entropy)
  INTEGER*4 evolve_temper
  integer, parameter :: cctki_use_evolve_temper = kind(evolve_temper)
  INTEGER*4 flux_direction
  integer, parameter :: cctki_use_flux_direction = kind(flux_direction)
  REAL*8 gaa (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gaa = kind(gaa)
  REAL*8 gaa_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gaa_p = kind(gaa_p)
  REAL*8 gaa_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gaa_p_p = kind(gaa_p_p)
  REAL*8 gab (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gab = kind(gab)
  REAL*8 gab_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gab_p = kind(gab_p)
  REAL*8 gab_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gab_p_p = kind(gab_p_p)
  REAL*8 gac (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gac = kind(gac)
  REAL*8 gac_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gac_p = kind(gac_p)
  REAL*8 gac_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gac_p_p = kind(gac_p_p)
  REAL*8 gbb (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gbb = kind(gbb)
  REAL*8 gbb_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gbb_p = kind(gbb_p)
  REAL*8 gbb_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gbb_p_p = kind(gbb_p_p)
  REAL*8 gbc (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gbc = kind(gbc)
  REAL*8 gbc_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gbc_p = kind(gbc_p)
  REAL*8 gbc_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gbc_p_p = kind(gbc_p_p)
  REAL*8 gcc (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gcc = kind(gcc)
  REAL*8 gcc_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gcc_p = kind(gcc_p)
  REAL*8 gcc_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gcc_p_p = kind(gcc_p_p)
  REAL*8 gxx (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gxx = kind(gxx)
  REAL*8 gxx_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gxx_p = kind(gxx_p)
  REAL*8 gxx_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gxx_p_p = kind(gxx_p_p)
  REAL*8 gxy (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gxy = kind(gxy)
  REAL*8 gxy_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gxy_p = kind(gxy_p)
  REAL*8 gxy_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gxy_p_p = kind(gxy_p_p)
  REAL*8 gxz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gxz = kind(gxz)
  REAL*8 gxz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gxz_p = kind(gxz_p)
  REAL*8 gxz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gxz_p_p = kind(gxz_p_p)
  REAL*8 gyy (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gyy = kind(gyy)
  REAL*8 gyy_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gyy_p = kind(gyy_p)
  REAL*8 gyy_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gyy_p_p = kind(gyy_p_p)
  REAL*8 gyz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gyz = kind(gyz)
  REAL*8 gyz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gyz_p = kind(gyz_p)
  REAL*8 gyz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gyz_p_p = kind(gyz_p_p)
  REAL*8 gzz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gzz = kind(gzz)
  REAL*8 gzz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gzz_p = kind(gzz_p)
  REAL*8 gzz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gzz_p_p = kind(gzz_p_p)
  INTEGER*4 hydro_excision_mask (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_hydro_excision_mask = kind(hydro_excision_mask)
  REAL*8 kaa (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kaa = kind(kaa)
  REAL*8 kab (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kab = kind(kab)
  REAL*8 kac (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kac = kind(kac)
  REAL*8 kbb (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kbb = kind(kbb)
  REAL*8 kbc (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kbc = kind(kbc)
  REAL*8 kcc (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kcc = kind(kcc)
  REAL*8 kxx (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kxx = kind(kxx)
  REAL*8 kxx_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kxx_p = kind(kxx_p)
  REAL*8 kxx_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kxx_p_p = kind(kxx_p_p)
  REAL*8 kxy (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kxy = kind(kxy)
  REAL*8 kxy_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kxy_p = kind(kxy_p)
  REAL*8 kxy_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kxy_p_p = kind(kxy_p_p)
  REAL*8 kxz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kxz = kind(kxz)
  REAL*8 kxz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kxz_p = kind(kxz_p)
  REAL*8 kxz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kxz_p_p = kind(kxz_p_p)
  REAL*8 kyy (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kyy = kind(kyy)
  REAL*8 kyy_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kyy_p = kind(kyy_p)
  REAL*8 kyy_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kyy_p_p = kind(kyy_p_p)
  REAL*8 kyz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kyz = kind(kyz)
  REAL*8 kyz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kyz_p = kind(kyz_p)
  REAL*8 kyz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kyz_p_p = kind(kyz_p_p)
  REAL*8 kzz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kzz = kind(kzz)
  REAL*8 kzz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kzz_p = kind(kzz_p)
  REAL*8 kzz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kzz_p_p = kind(kzz_p_p)
  REAL*8 lBvec (cctk_ash1,cctk_ash2,cctk_ash3,lBvec_length)
  integer, parameter :: cctki_use_lBvec = kind(lBvec)
  REAL*8 lBvec_p (cctk_ash1,cctk_ash2,cctk_ash3,lBvec_length)
  integer, parameter :: cctki_use_lBvec_p = kind(lBvec_p)
  REAL*8 lBvec_p_p (cctk_ash1,cctk_ash2,cctk_ash3,lBvec_length)
  integer, parameter :: cctki_use_lBvec_p_p = kind(lBvec_p_p)
  REAL*8 lvel (cctk_ash1,cctk_ash2,cctk_ash3,lvel_length)
  integer, parameter :: cctki_use_lvel = kind(lvel)
  REAL*8 lvel_p (cctk_ash1,cctk_ash2,cctk_ash3,lvel_length)
  integer, parameter :: cctki_use_lvel_p = kind(lvel_p)
  REAL*8 lvel_p_p (cctk_ash1,cctk_ash2,cctk_ash3,lvel_length)
  integer, parameter :: cctki_use_lvel_p_p = kind(lvel_p_p)
  REAL*8 maxima_x
  integer, parameter :: cctki_use_maxima_x = kind(maxima_x)
  REAL*8 maxima_y
  integer, parameter :: cctki_use_maxima_y = kind(maxima_y)
  REAL*8 maxima_z
  integer, parameter :: cctki_use_maxima_z = kind(maxima_z)
  REAL*8 maximum_density
  integer, parameter :: cctki_use_maximum_density = kind(maximum_density)
  REAL*8 maxrho_global
  integer, parameter :: cctki_use_maxrho_global = kind(maxrho_global)
  REAL*8 press (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_press = kind(press)
  REAL*8 press_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_press_p = kind(press_p)
  REAL*8 press_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_press_p_p = kind(press_p_p)
  REAL*8 pressminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_pressminus = kind(pressminus)
  REAL*8 pressplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_pressplus = kind(pressplus)
  REAL*8 psi (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psi = kind(psi)
  REAL*8 psidc (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psidc = kind(psidc)
  REAL*8 psidc_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psidc_p = kind(psidc_p)
  REAL*8 psidc_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psidc_p_p = kind(psidc_p_p)
  REAL*8 psidcflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psidcflux = kind(psidcflux)
  REAL*8 psidcrhs (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psidcrhs = kind(psidcrhs)
  REAL*8 psix (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psix = kind(psix)
  REAL*8 psixx (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psixx = kind(psixx)
  REAL*8 psixy (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psixy = kind(psixy)
  REAL*8 psixz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psixz = kind(psixz)
  REAL*8 psiy (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psiy = kind(psiy)
  REAL*8 psiyy (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psiyy = kind(psiyy)
  REAL*8 psiyz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psiyz = kind(psiyz)
  REAL*8 psiz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psiz = kind(psiz)
  REAL*8 psizz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psizz = kind(psizz)
  REAL*8 r (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_r = kind(r)
  REAL*8 rho (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_rho = kind(rho)
  REAL*8 rho_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_rho_p = kind(rho_p)
  REAL*8 rho_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_rho_p_p = kind(rho_p_p)
  REAL*8 rhominus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_rhominus = kind(rhominus)
  REAL*8 rhoplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_rhoplus = kind(rhoplus)
  REAL*8 scon (cctk_ash1,cctk_ash2,cctk_ash3,scon_length)
  integer, parameter :: cctki_use_scon = kind(scon)
  REAL*8 scon_p (cctk_ash1,cctk_ash2,cctk_ash3,scon_length)
  integer, parameter :: cctki_use_scon_p = kind(scon_p)
  REAL*8 scon_p_p (cctk_ash1,cctk_ash2,cctk_ash3,scon_length)
  integer, parameter :: cctki_use_scon_p_p = kind(scon_p_p)
  REAL*8 sdetg (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_sdetg = kind(sdetg)
  INTEGER*4 shift_state
  integer, parameter :: cctki_use_shift_state = kind(shift_state)
  INTEGER*4 space_mask (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_space_mask = kind(space_mask)
  REAL*8 srhs (cctk_ash1,cctk_ash2,cctk_ash3,srhs_length)
  integer, parameter :: cctki_use_srhs = kind(srhs)
  INTEGER*4 stress_energy_state
  integer, parameter :: cctki_use_stress_energy_state = kind(stress_energy_state)
  REAL*8 sxflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_sxflux = kind(sxflux)
  REAL*8 syflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_syflux = kind(syflux)
  REAL*8 szflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_szflux = kind(szflux)
  REAL*8 tau (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_tau = kind(tau)
  REAL*8 tau_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_tau_p = kind(tau_p)
  REAL*8 tau_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_tau_p_p = kind(tau_p_p)
  REAL*8 tauflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_tauflux = kind(tauflux)
  REAL*8 taurhs (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_taurhs = kind(taurhs)
  REAL*8 temperature (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_temperature = kind(temperature)
  REAL*8 temperature_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_temperature_p = kind(temperature_p)
  REAL*8 temperature_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_temperature_p_p = kind(temperature_p_p)
  REAL*8 tracer (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_tracers_length)
  integer, parameter :: cctki_use_tracer = kind(tracer)
  REAL*8 tracer_p (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_tracers_length)
  integer, parameter :: cctki_use_tracer_p = kind(tracer_p)
  REAL*8 tracer_p_p (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_tracers_length)
  integer, parameter :: cctki_use_tracer_p_p = kind(tracer_p_p)
  REAL*8 vel (cctk_ash1,cctk_ash2,cctk_ash3,vel_length)
  integer, parameter :: cctki_use_vel = kind(vel)
  REAL*8 vel_p (cctk_ash1,cctk_ash2,cctk_ash3,vel_length)
  integer, parameter :: cctki_use_vel_p = kind(vel_p)
  REAL*8 vel_p_p (cctk_ash1,cctk_ash2,cctk_ash3,vel_length)
  integer, parameter :: cctki_use_vel_p_p = kind(vel_p_p)
  REAL*8 velxminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_velxminus = kind(velxminus)
  REAL*8 velxplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_velxplus = kind(velxplus)
  REAL*8 velyminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_velyminus = kind(velyminus)
  REAL*8 velyplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_velyplus = kind(velyplus)
  REAL*8 velzminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_velzminus = kind(velzminus)
  REAL*8 velzplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_velzplus = kind(velzplus)
  REAL*8 w_lorentz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_w_lorentz = kind(w_lorentz)
  REAL*8 w_lorentz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_w_lorentz_p = kind(w_lorentz_p)
  REAL*8 w_lorentz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_w_lorentz_p_p = kind(w_lorentz_p_p)
  REAL*8 w_lorentzminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_w_lorentzminus = kind(w_lorentzminus)
  REAL*8 w_lorentzplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_w_lorentzplus = kind(w_lorentzplus)
  REAL*8 x (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_x = kind(x)
  INTEGER*4 xoffset
  integer, parameter :: cctki_use_xoffset = kind(xoffset)
  REAL*8 y (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_y = kind(y)
  INTEGER*4 yoffset
  integer, parameter :: cctki_use_yoffset = kind(yoffset)
  REAL*8 z (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_z = kind(z)
  INTEGER*4 zoffset
  integer, parameter :: cctki_use_zoffset = kind(zoffset)
  REAL*8 GRHydro_Y_e_max
  integer, parameter :: cctki_use_GRHydro_Y_e_max = kind(GRHydro_Y_e_max)
  REAL*8 GRHydro_Y_e_min
  integer, parameter :: cctki_use_GRHydro_Y_e_min = kind(GRHydro_Y_e_min)
  REAL*8 GRHydro_atmo_tolerance
  integer, parameter :: cctki_use_GRHydro_atmo_tolerance = kind(GRHydro_atmo_tolerance)
  REAL*8 GRHydro_del_ptol
  integer, parameter :: cctki_use_GRHydro_del_ptol = kind(GRHydro_del_ptol)
  REAL*8 GRHydro_eos_rf_prec
  integer, parameter :: cctki_use_GRHydro_eos_rf_prec = kind(GRHydro_eos_rf_prec)
  REAL*8 GRHydro_eps_min
  integer, parameter :: cctki_use_GRHydro_eps_min = kind(GRHydro_eps_min)
  REAL*8 GRHydro_hot_atmo_Y_e
  integer, parameter :: cctki_use_GRHydro_hot_atmo_Y_e = kind(GRHydro_hot_atmo_Y_e)
  REAL*8 GRHydro_hot_atmo_temp
  integer, parameter :: cctki_use_GRHydro_hot_atmo_temp = kind(GRHydro_hot_atmo_temp)
  REAL*8 GRHydro_lorentz_overshoot_cutoff
  integer, parameter :: cctki_use_GRHydro_lorentz_overshoot_cutoff = kind(GRHydro_lorentz_overshoot_cutoff)
  REAL*8 GRHydro_max_temp
  integer, parameter :: cctki_use_GRHydro_max_temp = kind(GRHydro_max_temp)
  REAL*8 GRHydro_perc_ptol
  integer, parameter :: cctki_use_GRHydro_perc_ptol = kind(GRHydro_perc_ptol)
  REAL*8 GRHydro_rho_central
  integer, parameter :: cctki_use_GRHydro_rho_central = kind(GRHydro_rho_central)
  REAL*8 Tmunu_damping_radius_max
  integer, parameter :: cctki_use_Tmunu_damping_radius_max = kind(Tmunu_damping_radius_max)
  REAL*8 Tmunu_damping_radius_min
  integer, parameter :: cctki_use_Tmunu_damping_radius_min = kind(Tmunu_damping_radius_min)
  REAL*8 atmo_falloff_power
  integer, parameter :: cctki_use_atmo_falloff_power = kind(atmo_falloff_power)
  REAL*8 atmo_falloff_radius
  integer, parameter :: cctki_use_atmo_falloff_radius = kind(atmo_falloff_radius)
  REAL*8 atmo_tolerance_power
  integer, parameter :: cctki_use_atmo_tolerance_power = kind(atmo_tolerance_power)
  REAL*8 atmo_tolerance_radius
  integer, parameter :: cctki_use_atmo_tolerance_radius = kind(atmo_tolerance_radius)
  REAL*8 c2p_reset_pressure_to_value
  integer, parameter :: cctki_use_c2p_reset_pressure_to_value = kind(c2p_reset_pressure_to_value)
  REAL*8 comoving_factor
  integer, parameter :: cctki_use_comoving_factor = kind(comoving_factor)
  REAL*8 comoving_tanh_factor
  integer, parameter :: cctki_use_comoving_tanh_factor = kind(comoving_tanh_factor)
  REAL*8 comoving_tanh_offset
  integer, parameter :: cctki_use_comoving_tanh_offset = kind(comoving_tanh_offset)
  REAL*8 enhanced_ppm_C2
  integer, parameter :: cctki_use_enhanced_ppm_C2 = kind(enhanced_ppm_C2)
  REAL*8 enhanced_ppm_C3
  integer, parameter :: cctki_use_enhanced_ppm_C3 = kind(enhanced_ppm_C3)
  REAL*8 initial_Gamma
  integer, parameter :: cctki_use_initial_Gamma = kind(initial_Gamma)
  REAL*8 initial_atmosphere_factor
  integer, parameter :: cctki_use_initial_atmosphere_factor = kind(initial_atmosphere_factor)
  REAL*8 initial_k
  integer, parameter :: cctki_use_initial_k = kind(initial_k)
  REAL*8 initial_rho_abs_min
  integer, parameter :: cctki_use_initial_rho_abs_min = kind(initial_rho_abs_min)
  REAL*8 initial_rho_rel_min
  integer, parameter :: cctki_use_initial_rho_rel_min = kind(initial_rho_rel_min)
  REAL*8 kap_dc
  integer, parameter :: cctki_use_kap_dc = kind(kap_dc)
  REAL*8 max_magnetic_to_gas_pressure_ratio
  integer, parameter :: cctki_use_max_magnetic_to_gas_pressure_ratio = kind(max_magnetic_to_gas_pressure_ratio)
  REAL*8 min_tracer
  integer, parameter :: cctki_use_min_tracer = kind(min_tracer)
  REAL*8 mp5_alpha
  integer, parameter :: cctki_use_mp5_alpha = kind(mp5_alpha)
  REAL*8 mp5_eps
  integer, parameter :: cctki_use_mp5_eps = kind(mp5_eps)
  REAL*8 myfloor
  integer, parameter :: cctki_use_myfloor = kind(myfloor)
  REAL*8 ppm_epsilon
  integer, parameter :: cctki_use_ppm_epsilon = kind(ppm_epsilon)
  REAL*8 ppm_epsilon_shock
  integer, parameter :: cctki_use_ppm_epsilon_shock = kind(ppm_epsilon_shock)
  REAL*8 ppm_eta1
  integer, parameter :: cctki_use_ppm_eta1 = kind(ppm_eta1)
  REAL*8 ppm_eta2
  integer, parameter :: cctki_use_ppm_eta2 = kind(ppm_eta2)
  REAL*8 ppm_k0
  integer, parameter :: cctki_use_ppm_k0 = kind(ppm_k0)
  REAL*8 ppm_omega1
  integer, parameter :: cctki_use_ppm_omega1 = kind(ppm_omega1)
  REAL*8 ppm_omega2
  integer, parameter :: cctki_use_ppm_omega2 = kind(ppm_omega2)
  REAL*8 ppm_omega_tracer
  integer, parameter :: cctki_use_ppm_omega_tracer = kind(ppm_omega_tracer)
  REAL*8 ppm_small
  integer, parameter :: cctki_use_ppm_small = kind(ppm_small)
  REAL*8 rho_abs_min
  integer, parameter :: cctki_use_rho_abs_min = kind(rho_abs_min)
  REAL*8 rho_abs_min_after_recovery
  integer, parameter :: cctki_use_rho_abs_min_after_recovery = kind(rho_abs_min_after_recovery)
  REAL*8 rho_rel_min
  integer, parameter :: cctki_use_rho_rel_min = kind(rho_rel_min)
  REAL*8 setcharmax
  integer, parameter :: cctki_use_setcharmax = kind(setcharmax)
  REAL*8 setcharmin
  integer, parameter :: cctki_use_setcharmin = kind(setcharmin)
  REAL*8 sqrtdet_thr
  integer, parameter :: cctki_use_sqrtdet_thr = kind(sqrtdet_thr)
  REAL*8 tau_rel_min
  integer, parameter :: cctki_use_tau_rel_min = kind(tau_rel_min)
  REAL*8 weno_eps
  integer, parameter :: cctki_use_weno_eps = kind(weno_eps)
  integer*8 Avec_gauge
  integer, parameter :: cctki_use_Avec_gauge = kind(Avec_gauge)
  integer*8 EoS_Change_type
  integer, parameter :: cctki_use_EoS_Change_type = kind(EoS_Change_type)
  integer*8 GRHydro_c2p_failed_action
  integer, parameter :: cctki_use_GRHydro_c2p_failed_action = kind(GRHydro_c2p_failed_action)
  integer*8 GRHydro_eos_table
  integer, parameter :: cctki_use_GRHydro_eos_table = kind(GRHydro_eos_table)
  integer*8 GRHydro_eos_type
  integer, parameter :: cctki_use_GRHydro_eos_type = kind(GRHydro_eos_type)
  integer*8 HLLE_type
  integer, parameter :: cctki_use_HLLE_type = kind(HLLE_type)
  integer*8 bound
  integer, parameter :: cctki_use_bound = kind(bound)
  integer*8 comoving_attenuate
  integer, parameter :: cctki_use_comoving_attenuate = kind(comoving_attenuate)
  integer*8 comoving_v_method
  integer, parameter :: cctki_use_comoving_v_method = kind(comoving_v_method)
  integer*8 gradient_method
  integer, parameter :: cctki_use_gradient_method = kind(gradient_method)
  integer*8 left_eigenvectors
  integer, parameter :: cctki_use_left_eigenvectors = kind(left_eigenvectors)
  integer*8 method_type
  integer, parameter :: cctki_use_method_type = kind(method_type)
  integer*8 numerical_viscosity
  integer, parameter :: cctki_use_numerical_viscosity = kind(numerical_viscosity)
  integer*8 particle_interpolator
  integer, parameter :: cctki_use_particle_interpolator = kind(particle_interpolator)
  integer*8 ppm_flatten
  integer, parameter :: cctki_use_ppm_flatten = kind(ppm_flatten)
  integer*8 psidcspeed
  integer, parameter :: cctki_use_psidcspeed = kind(psidcspeed)
  integer*8 recon_method
  integer, parameter :: cctki_use_recon_method = kind(recon_method)
  integer*8 recon_vars
  integer, parameter :: cctki_use_recon_vars = kind(recon_vars)
  integer*8 riemann_solver
  integer, parameter :: cctki_use_riemann_solver = kind(riemann_solver)
  integer*8 tvd_limiter
  integer, parameter :: cctki_use_tvd_limiter = kind(tvd_limiter)
  integer*8 use_evolution_mask
  integer, parameter :: cctki_use_use_evolution_mask = kind(use_evolution_mask)
  INTEGER*4 Check_Rho_Minimum
  integer, parameter :: cctki_use_Check_Rho_Minimum = kind(Check_Rho_Minimum)
  INTEGER*4 EoS_Change
  integer, parameter :: cctki_use_EoS_Change = kind(EoS_Change)
  INTEGER*4 GRHydro_MaxNumConstrainedVars
  integer, parameter :: cctki_use_GRHydro_MaxNumConstrainedVars = kind(GRHydro_MaxNumConstrainedVars)
  INTEGER*4 GRHydro_MaxNumEvolvedVars
  integer, parameter :: cctki_use_GRHydro_MaxNumEvolvedVars = kind(GRHydro_MaxNumEvolvedVars)
  INTEGER*4 GRHydro_MaxNumEvolvedVarsSlow
  integer, parameter :: cctki_use_GRHydro_MaxNumEvolvedVarsSlow = kind(GRHydro_MaxNumEvolvedVarsSlow)
  INTEGER*4 GRHydro_MaxNumSandRVars
  integer, parameter :: cctki_use_GRHydro_MaxNumSandRVars = kind(GRHydro_MaxNumSandRVars)
  INTEGER*4 GRHydro_NaN_verbose
  integer, parameter :: cctki_use_GRHydro_NaN_verbose = kind(GRHydro_NaN_verbose)
  INTEGER*4 GRHydro_c2p_reset_eps_tau_hot_eos
  integer, parameter :: cctki_use_GRHydro_c2p_reset_eps_tau_hot_eos = kind(GRHydro_c2p_reset_eps_tau_hot_eos)
  INTEGER*4 GRHydro_c2p_warn_from_reflevel
  integer, parameter :: cctki_use_GRHydro_c2p_warn_from_reflevel = kind(GRHydro_c2p_warn_from_reflevel)
  INTEGER*4 GRHydro_c2p_warnlevel
  integer, parameter :: cctki_use_GRHydro_c2p_warnlevel = kind(GRHydro_c2p_warnlevel)
  INTEGER*4 GRHydro_countmax
  integer, parameter :: cctki_use_GRHydro_countmax = kind(GRHydro_countmax)
  INTEGER*4 GRHydro_countmin
  integer, parameter :: cctki_use_GRHydro_countmin = kind(GRHydro_countmin)
  INTEGER*4 GRHydro_enable_internal_excision
  integer, parameter :: cctki_use_GRHydro_enable_internal_excision = kind(GRHydro_enable_internal_excision)
  INTEGER*4 GRHydro_eos_hot_eps_fix
  integer, parameter :: cctki_use_GRHydro_eos_hot_eps_fix = kind(GRHydro_eos_hot_eps_fix)
  INTEGER*4 GRHydro_eos_hot_prim2con_warn
  integer, parameter :: cctki_use_GRHydro_eos_hot_prim2con_warn = kind(GRHydro_eos_hot_prim2con_warn)
  INTEGER*4 GRHydro_hydro_excision
  integer, parameter :: cctki_use_GRHydro_hydro_excision = kind(GRHydro_hydro_excision)
  INTEGER*4 GRHydro_oppm_reflevel
  integer, parameter :: cctki_use_GRHydro_oppm_reflevel = kind(GRHydro_oppm_reflevel)
  INTEGER*4 GRHydro_polish
  integer, parameter :: cctki_use_GRHydro_polish = kind(GRHydro_polish)
  INTEGER*4 GRHydro_stencil
  integer, parameter :: cctki_use_GRHydro_stencil = kind(GRHydro_stencil)
  INTEGER*4 WENO_order
  integer, parameter :: cctki_use_WENO_order = kind(WENO_order)
  INTEGER*4 apply_H_viscosity
  integer, parameter :: cctki_use_apply_H_viscosity = kind(apply_H_viscosity)
  INTEGER*4 c2p_reset_pressure
  integer, parameter :: cctki_use_c2p_reset_pressure = kind(c2p_reset_pressure)
  INTEGER*4 c2p_resort_to_bisection
  integer, parameter :: cctki_use_c2p_resort_to_bisection = kind(c2p_resort_to_bisection)
  INTEGER*4 calculate_bcom
  integer, parameter :: cctki_use_calculate_bcom = kind(calculate_bcom)
  INTEGER*4 check_for_trivial_rp
  integer, parameter :: cctki_use_check_for_trivial_rp = kind(check_for_trivial_rp)
  INTEGER*4 clean_divergence
  integer, parameter :: cctki_use_clean_divergence = kind(clean_divergence)
  INTEGER*4 con2prim_oct_hack
  integer, parameter :: cctki_use_con2prim_oct_hack = kind(con2prim_oct_hack)
  INTEGER*4 decouple_normal_Bfield
  integer, parameter :: cctki_use_decouple_normal_Bfield = kind(decouple_normal_Bfield)
  INTEGER*4 eno_order
  integer, parameter :: cctki_use_eno_order = kind(eno_order)
  INTEGER*4 evolve_tracer
  integer, parameter :: cctki_use_evolve_tracer = kind(evolve_tracer)
  INTEGER*4 mp5_adaptive_eps
  integer, parameter :: cctki_use_mp5_adaptive_eps = kind(mp5_adaptive_eps)
  INTEGER*4 number_of_arrays
  integer, parameter :: cctki_use_number_of_arrays = kind(number_of_arrays)
  INTEGER*4 number_of_particles
  integer, parameter :: cctki_use_number_of_particles = kind(number_of_particles)
  INTEGER*4 number_of_tracers
  integer, parameter :: cctki_use_number_of_tracers = kind(number_of_tracers)
  INTEGER*4 particle_interpolation_order
  integer, parameter :: cctki_use_particle_interpolation_order = kind(particle_interpolation_order)
  INTEGER*4 ppm_detect
  integer, parameter :: cctki_use_ppm_detect = kind(ppm_detect)
  INTEGER*4 ppm_mppm
  integer, parameter :: cctki_use_ppm_mppm = kind(ppm_mppm)
  INTEGER*4 ppm_mppm_debug_eigenvalues
  integer, parameter :: cctki_use_ppm_mppm_debug_eigenvalues = kind(ppm_mppm_debug_eigenvalues)
  INTEGER*4 reconstruct_Wv
  integer, parameter :: cctki_use_reconstruct_Wv = kind(reconstruct_Wv)
  INTEGER*4 reconstruct_temper
  integer, parameter :: cctki_use_reconstruct_temper = kind(reconstruct_temper)
  INTEGER*4 set_trivial_rp_grid_function
  integer, parameter :: cctki_use_set_trivial_rp_grid_function = kind(set_trivial_rp_grid_function)
  INTEGER*4 sources_spatial_order
  integer, parameter :: cctki_use_sources_spatial_order = kind(sources_spatial_order)
  INTEGER*4 sync_conserved_only
  integer, parameter :: cctki_use_sync_conserved_only = kind(sync_conserved_only)
  INTEGER*4 track_divB
  integer, parameter :: cctki_use_track_divB = kind(track_divB)
  INTEGER*4 transport_constraints
  integer, parameter :: cctki_use_transport_constraints = kind(transport_constraints)
  INTEGER*4 use_MoL_slow_multirate_sector
  integer, parameter :: cctki_use_use_MoL_slow_multirate_sector = kind(use_MoL_slow_multirate_sector)
  INTEGER*4 use_enhanced_ppm
  integer, parameter :: cctki_use_use_enhanced_ppm = kind(use_enhanced_ppm)
  INTEGER*4 use_min_tracer
  integer, parameter :: cctki_use_use_min_tracer = kind(use_min_tracer)
  INTEGER*4 use_optimized_ppm
  integer, parameter :: cctki_use_use_optimized_ppm = kind(use_optimized_ppm)
  INTEGER*4 use_weighted_fluxes
  integer, parameter :: cctki_use_use_weighted_fluxes = kind(use_weighted_fluxes)
  INTEGER*4 weno_adaptive_epsilon
  integer, parameter :: cctki_use_weno_adaptive_epsilon = kind(weno_adaptive_epsilon)
  INTEGER*4 wk_atmosphere
  integer, parameter :: cctki_use_wk_atmosphere = kind(wk_atmosphere)
  COMMON /GRHydrorest/GRHydro_Y_e_max, GRHydro_Y_e_min, GRHydro_atmo_tolerance, GRHydro_del_ptol, GRHydro_eos_rf_prec, GRHydro_eps_&
  &min, GRHydro_hot_atmo_Y_e, GRHydro_hot_atmo_temp, GRHydro_lorentz_overshoot_cutoff, GRHydro_max_temp, GRHydro_perc_ptol, GRHydro&
  &_rho_central, Tmunu_damping_radius_max, Tmunu_damping_radius_min, atmo_falloff_power, atmo_falloff_radius, atmo_tolerance_power,&
  & atmo_tolerance_radius, c2p_reset_pressure_to_value, comoving_factor, comoving_tanh_factor, comoving_tanh_offset, enhanced_ppm_C&
  &2, enhanced_ppm_C3, initial_Gamma, initial_atmosphere_factor, initial_k, initial_rho_abs_min, initial_rho_rel_min, kap_dc, max_m&
  &agnetic_to_gas_pressure_ratio, min_tracer, mp5_alpha, mp5_eps, myfloor, ppm_epsilon, ppm_epsilon_shock, ppm_eta1, ppm_eta2, ppm_&
  &k0, ppm_omega1, ppm_omega2, ppm_omega_tracer, ppm_small, rho_abs_min, rho_abs_min_after_recovery, rho_rel_min, setcharmax, setch&
  &armin, sqrtdet_thr, tau_rel_min, weno_eps, Avec_gauge, EoS_Change_type, GRHydro_c2p_failed_action, GRHydro_eos_table, GRHydro_eo&
  &s_type, HLLE_type, bound, comoving_attenuate, comoving_v_method, gradient_method, left_eigenvectors, method_type, numerical_visc&
  &osity, particle_interpolator, ppm_flatten, psidcspeed, recon_method, recon_vars, riemann_solver, tvd_limiter, use_evolution_mask&
  &, Check_Rho_Minimum, EoS_Change, GRHydro_MaxNumConstrainedVars, GRHydro_MaxNumEvolvedVars, GRHydro_MaxNumEvolvedVarsSlow, GRHydr&
  &o_MaxNumSandRVars, GRHydro_NaN_verbose, GRHydro_c2p_reset_eps_tau_hot_eos, GRHydro_c2p_warn_from_reflevel, GRHydro_c2p_warnlevel&
  &, GRHydro_countmax, GRHydro_countmin, GRHydro_enable_internal_excision, GRHydro_eos_hot_eps_fix, GRHydro_eos_hot_prim2con_warn, &
  &GRHydro_hydro_excision, GRHydro_oppm_reflevel, GRHydro_polish, GRHydro_stencil, WENO_order, apply_H_viscosity, c2p_reset_pressur&
  &e, c2p_resort_to_bisection, calculate_bcom, check_for_trivial_rp, clean_divergence, con2prim_oct_hack, decouple_normal_Bfield, e&
  &no_order, evolve_tracer, mp5_adaptive_eps, number_of_arrays, number_of_particles, number_of_tracers, particle_interpolation_orde&
  &r, ppm_detect, ppm_mppm, ppm_mppm_debug_eigenvalues, reconstruct_Wv, reconstruct_temper, set_trivial_rp_grid_function, sources_s&
  &patial_order, sync_conserved_only, track_divB, transport_constraints, use_MoL_slow_multirate_sector, use_enhanced_ppm, use_min_t&
  &racer, use_optimized_ppm, use_weighted_fluxes, weno_adaptive_epsilon, wk_atmosphere
  INTEGER*4 constrain_to_1D
  integer, parameter :: cctki_use_constrain_to_1D = kind(constrain_to_1D)
  INTEGER*4 use_cxx_code
  integer, parameter :: cctki_use_use_cxx_code = kind(use_cxx_code)
  INTEGER*4 verbose
  integer, parameter :: cctki_use_verbose = kind(verbose)
  COMMON /GRHydropriv/constrain_to_1D, use_cxx_code, verbose
  integer*8 CCTKH0
  integer, parameter :: cctki_use_CCTKH0 = kind(CCTKH0)
  integer*8 CCTKH1
  integer, parameter :: cctki_use_CCTKH1 = kind(CCTKH1)
  integer*8 CCTKH2
  integer, parameter :: cctki_use_CCTKH2 = kind(CCTKH2)
  integer*8 CCTKH3
  integer, parameter :: cctki_use_CCTKH3 = kind(CCTKH3)
  integer*8 CCTKH4
  integer, parameter :: cctki_use_CCTKH4 = kind(CCTKH4)
  integer*8 CCTKH5
  integer, parameter :: cctki_use_CCTKH5 = kind(CCTKH5)
  integer*8 CCTKH6
  integer, parameter :: cctki_use_CCTKH6 = kind(CCTKH6)
  integer*8 CCTKH7
  integer, parameter :: cctki_use_CCTKH7 = kind(CCTKH7)
  integer*8 initial_shift
  integer, parameter :: cctki_use_initial_shift = kind(initial_shift)
  integer*8 CCTKH8
  integer, parameter :: cctki_use_CCTKH8 = kind(CCTKH8)
  integer*8 CCTKH9
  integer, parameter :: cctki_use_CCTKH9 = kind(CCTKH9)
  integer*8 CCTKH11
  integer, parameter :: cctki_use_CCTKH11 = kind(CCTKH11)
  integer*8 metric_type
  integer, parameter :: cctki_use_metric_type = kind(metric_type)
  integer*8 shift_evolution_method
  integer, parameter :: cctki_use_shift_evolution_method = kind(shift_evolution_method)
  integer*8 CCTKH13
  integer, parameter :: cctki_use_CCTKH13 = kind(CCTKH13)
  INTEGER*4 CCTKH10
  integer, parameter :: cctki_use_CCTKH10 = kind(CCTKH10)
  INTEGER*4 CCTKH12
  integer, parameter :: cctki_use_CCTKH12 = kind(CCTKH12)
  INTEGER*4 CCTKH14
  integer, parameter :: cctki_use_CCTKH14 = kind(CCTKH14)
  COMMON /ADMBASErest/CCTKH0, CCTKH1, CCTKH2, CCTKH3, CCTKH4, CCTKH5, CCTKH6, CCTKH7, initial_shift, CCTKH8, CCTKH9, CCTKH11, metri&
  &c_type, shift_evolution_method, CCTKH13, CCTKH10, CCTKH12, CCTKH14
  REAL*8 CCTKH15
  integer, parameter :: cctki_use_CCTKH15 = kind(CCTKH15)
  REAL*8 CCTKH25
  integer, parameter :: cctki_use_CCTKH25 = kind(CCTKH25)
  REAL*8 CCTKH26
  integer, parameter :: cctki_use_CCTKH26 = kind(CCTKH26)
  REAL*8 CCTKH27 (10)
  integer, parameter :: cctki_use_CCTKH27 = kind(CCTKH27)
  REAL*8 CCTKH28
  integer, parameter :: cctki_use_CCTKH28 = kind(CCTKH28)
  REAL*8 CCTKH29
  integer, parameter :: cctki_use_CCTKH29 = kind(CCTKH29)
  REAL*8 CCTKH30
  integer, parameter :: cctki_use_CCTKH30 = kind(CCTKH30)
  REAL*8 CCTKH31
  integer, parameter :: cctki_use_CCTKH31 = kind(CCTKH31)
  REAL*8 CCTKH32
  integer, parameter :: cctki_use_CCTKH32 = kind(CCTKH32)
  REAL*8 CCTKH33 (9)
  integer, parameter :: cctki_use_CCTKH33 = kind(CCTKH33)
  REAL*8 CCTKH34
  integer, parameter :: cctki_use_CCTKH34 = kind(CCTKH34)
  REAL*8 CCTKH38
  integer, parameter :: cctki_use_CCTKH38 = kind(CCTKH38)
  REAL*8 CCTKH39
  integer, parameter :: cctki_use_CCTKH39 = kind(CCTKH39)
  REAL*8 poly_k
  integer, parameter :: cctki_use_poly_k = kind(poly_k)
  integer*8 CCTKH17
  integer, parameter :: cctki_use_CCTKH17 = kind(CCTKH17)
  integer*8 CCTKH20
  integer, parameter :: cctki_use_CCTKH20 = kind(CCTKH20)
  integer*8 CCTKH24
  integer, parameter :: cctki_use_CCTKH24 = kind(CCTKH24)
  integer*8 CCTKH37
  integer, parameter :: cctki_use_CCTKH37 = kind(CCTKH37)
  INTEGER*4 CCTKH16
  integer, parameter :: cctki_use_CCTKH16 = kind(CCTKH16)
  INTEGER*4 CCTKH18
  integer, parameter :: cctki_use_CCTKH18 = kind(CCTKH18)
  INTEGER*4 CCTKH19
  integer, parameter :: cctki_use_CCTKH19 = kind(CCTKH19)
  INTEGER*4 CCTKH21
  integer, parameter :: cctki_use_CCTKH21 = kind(CCTKH21)
  INTEGER*4 CCTKH22
  integer, parameter :: cctki_use_CCTKH22 = kind(CCTKH22)
  INTEGER*4 CCTKH23
  integer, parameter :: cctki_use_CCTKH23 = kind(CCTKH23)
  INTEGER*4 CCTKH35
  integer, parameter :: cctki_use_CCTKH35 = kind(CCTKH35)
  INTEGER*4 CCTKH36
  integer, parameter :: cctki_use_CCTKH36 = kind(CCTKH36)
  INTEGER*4 CCTKH40
  integer, parameter :: cctki_use_CCTKH40 = kind(CCTKH40)
  INTEGER*4 CCTKH41
  integer, parameter :: cctki_use_CCTKH41 = kind(CCTKH41)
  COMMON /EOS_OMNIrest/CCTKH15, CCTKH25, CCTKH26, CCTKH27, CCTKH28, CCTKH29, CCTKH30, CCTKH31, CCTKH32, CCTKH33, CCTKH34, CCTKH38, &
  &CCTKH39, poly_k, CCTKH17, CCTKH20, CCTKH24, CCTKH37, CCTKH16, CCTKH18, CCTKH19, CCTKH21, CCTKH22, CCTKH23, CCTKH35, CCTKH36, CCT&
  &KH40, CCTKH41
  integer*8 CCTKH42
  integer, parameter :: cctki_use_CCTKH42 = kind(CCTKH42)
  integer*8 Bvec_evolution_method
  integer, parameter :: cctki_use_Bvec_evolution_method = kind(Bvec_evolution_method)
  integer*8 Y_e_evolution_method
  integer, parameter :: cctki_use_Y_e_evolution_method = kind(Y_e_evolution_method)
  integer*8 entropy_evolution_method
  integer, parameter :: cctki_use_entropy_evolution_method = kind(entropy_evolution_method)
  integer*8 evolution_method
  integer, parameter :: cctki_use_evolution_method = kind(evolution_method)
  integer*8 CCTKH43
  integer, parameter :: cctki_use_CCTKH43 = kind(CCTKH43)
  integer*8 CCTKH44
  integer, parameter :: cctki_use_CCTKH44 = kind(CCTKH44)
  integer*8 CCTKH45
  integer, parameter :: cctki_use_CCTKH45 = kind(CCTKH45)
  integer*8 initial_Bvec
  integer, parameter :: cctki_use_initial_Bvec = kind(initial_Bvec)
  integer*8 CCTKH46
  integer, parameter :: cctki_use_CCTKH46 = kind(CCTKH46)
  integer*8 CCTKH47
  integer, parameter :: cctki_use_CCTKH47 = kind(CCTKH47)
  integer*8 CCTKH48
  integer, parameter :: cctki_use_CCTKH48 = kind(CCTKH48)
  integer*8 CCTKH49
  integer, parameter :: cctki_use_CCTKH49 = kind(CCTKH49)
  integer*8 prolongation_type
  integer, parameter :: cctki_use_prolongation_type = kind(prolongation_type)
  integer*8 temperature_evolution_method
  integer, parameter :: cctki_use_temperature_evolution_method = kind(temperature_evolution_method)
  INTEGER*4 hydro_excision
  integer, parameter :: cctki_use_hydro_excision = kind(hydro_excision)
  INTEGER*4 timelevels
  integer, parameter :: cctki_use_timelevels = kind(timelevels)
  COMMON /HYDROBASErest/CCTKH42, Bvec_evolution_method, Y_e_evolution_method, entropy_evolution_method, evolution_method, CCTKH43, &
  &CCTKH44, CCTKH45, initial_Bvec, CCTKH46, CCTKH47, CCTKH48, CCTKH49, prolongation_type, temperature_evolution_method, hydro_excis&
  &ion, timelevels
  INTEGER*4 MoL_Max_Evolved_Array_Size
  integer, parameter :: cctki_use_MoL_Max_Evolved_Array_Size = kind(MoL_Max_Evolved_Array_Size)
  INTEGER*4 CCTKH50
  integer, parameter :: cctki_use_CCTKH50 = kind(CCTKH50)
  INTEGER*4 MoL_Num_ArrayEvolved_Vars
  integer, parameter :: cctki_use_MoL_Num_ArrayEvolved_Vars = kind(MoL_Num_ArrayEvolved_Vars)
  INTEGER*4 CCTKH51
  integer, parameter :: cctki_use_CCTKH51 = kind(CCTKH51)
  INTEGER*4 MoL_Num_Constrained_Vars
  integer, parameter :: cctki_use_MoL_Num_Constrained_Vars = kind(MoL_Num_Constrained_Vars)
  INTEGER*4 MoL_Num_Evolved_Vars
  integer, parameter :: cctki_use_MoL_Num_Evolved_Vars = kind(MoL_Num_Evolved_Vars)
  INTEGER*4 MoL_Num_Evolved_Vars_Slow
  integer, parameter :: cctki_use_MoL_Num_Evolved_Vars_Slow = kind(MoL_Num_Evolved_Vars_Slow)
  INTEGER*4 MoL_Num_SaveAndRestore_Vars
  integer, parameter :: cctki_use_MoL_Num_SaveAndRestore_Vars = kind(MoL_Num_SaveAndRestore_Vars)
  INTEGER*4 CCTKH52
  integer, parameter :: cctki_use_CCTKH52 = kind(CCTKH52)
  COMMON /METHODOFLINESrest/MoL_Max_Evolved_Array_Size, CCTKH50, MoL_Num_ArrayEvolved_Vars, CCTKH51, MoL_Num_Constrained_Vars, MoL_&
  &Num_Evolved_Vars, MoL_Num_Evolved_Vars_Slow, MoL_Num_SaveAndRestore_Vars, CCTKH52
  INTEGER*4 use_mask
  integer, parameter :: cctki_use_use_mask = kind(use_mask)
  COMMON /SPACEMASKrest/use_mask
  
  
  integer :: i, j, k, nx, ny, nz
  REAL*8 dpdrho,dpdeps, cs2
  character*256 :: warnline
  
  
  INTEGER*4 :: GRHydro_UseGeneralCoordinates
  REAL*8, DIMENSION(cctk_ash1,cctk_ash2,cctk_ash3) :: g11, g12, g13, g22, g23, g33
  pointer (pg11,g11), (pg12,g12), (pg13,g13), (pg22,g22), (pg23,g23), (pg33,g33)
  REAL*8, DIMENSION(cctk_ash1,cctk_ash2,cctk_ash3,3) :: vup
  pointer (pvup,vup)
  

  INTEGER*4  :: n,keytemp,anyerr,keyerr(1)
  REAL*8 :: xpress(1),xeps(1),xtemp(1),xye(1)
  n = 1;keytemp = 0;anyerr = 0;keyerr(1) = 0
  xpress = 0.0d0;xeps = 0.0d0;xtemp = 0.0d0;xye = 0.0d0


  
  if (GRHydro_UseGeneralCoordinates(cctkGH).ne.0) then
    pg11 = loc(gaa)
    pg12 = loc(gab)
    pg13 = loc(gac)
    pg22 = loc(gbb)
    pg23 = loc(gbc)
    pg33 = loc(gcc)
    pvup = loc(lvel)
  else
    pg11 = loc(gxx)
    pg12 = loc(gxy)
    pg13 = loc(gxz)
    pg22 = loc(gyy)
    pg23 = loc(gyz)
    pg33 = loc(gzz)
    pvup = loc(vel)
  end if

  nx = cctk_lsh(1)
  ny = cctk_lsh(2)
  nz = cctk_lsh(3)   

  !$OMP PARALLEL DO PRIVATE(i,j,k,&
  !$OMP anyerr, keyerr, keytemp,&
  !$OMP warnline, xpress,xeps,xtemp,xye, dpdrho, dpdeps, cs2)
  do k = 1, nz 
    do j = 1, ny 
      do i = 1, nx

        
        eos_c(i,j,k) = 0.0d0
      
        
        if ((atmosphere_mask(i,j,k) .ne. 0) .or. &
            (GRHydro_enable_internal_excision /= 0 .and. (hydro_excision_mask(i,j,k) .gt. 0))) cycle


        if (evolve_temper.ne.1) then

           call EOS_Omni_press(GRHydro_eos_handle,keytemp,GRHydro_eos_rf_prec,n,&
              rho(i,j,k),eps(i,j,k),xtemp,xye,xpress,keyerr,anyerr)

            call EOS_Omni_DPressByDEps(GRHydro_eos_handle,keytemp,GRHydro_eos_rf_prec,n,&
              rho(i,j,k),eps(i,j,k),xtemp,xye,dpdeps,keyerr,anyerr)

           call EOS_Omni_DPressByDRho(GRHydro_eos_handle,keytemp,GRHydro_eos_rf_prec,n,&
              rho(i,j,k),eps(i,j,k),xtemp,xye,dpdrho,keyerr,anyerr)

           cs2 = (dpdrho + xpress(1) * dpdeps / (rho(i,j,k)**2))/ &
              (1.0d0 + eps(i,j,k) + xpress(1)/rho(i,j,k))

           eos_c(i,j,k) = sqrt(cs2)
         
         else
           
           call EOS_Omni_cs2(GRHydro_eos_handle,keytemp,GRHydro_eos_rf_prec,n,&
              rho(i,j,k),eps(i,j,k),temperature(i,j,k),Y_e(i,j,k),cs2,keyerr,anyerr)
  
           eos_c(i,j,k) = sqrt(cs2)
         
         end if
  
       end do
    end do
  end do
  
end subroutine H_viscosity
  
  
subroutine GRHydro_HLLE(cctk_dim,cctk_gsh,cctk_lsh,cctk_lbnd,cctk_ubnd,cctk_level,cctk_patch,cctk_npatches,cctk_component,cctk_tile&
  &_min,cctk_tile_max,cctk_ash,cctk_alignment,cctk_alignment_offset,cctk_from,cctk_to,cctk_bbox,cctk_delta_time,cctk_time,cctk_delt&
  &a_space,cctk_origin_space,cctk_levfac,cctk_levoff,cctk_levoffdenom,cctk_timefac,cctk_convlevel,cctk_convfac,cctk_nghostzones,cct&
  &k_iteration,cctkGH,cctk_ash1,cctk_ash2,cctk_ash3, GRHydro_tracer_cons_bext_length,GRHydro_tracer_flux_length,GRHydro_tracer_flux&
  &_splitting_length,GRHydro_tracer_prim_bext_length,GRHydro_tracer_rhs_length,X0particle_arrays,X0particle_rhs,X0particles,Aphimin&
  &us,Aphiplus,Avecxminus,Avecxplus,Avecyminus,Avecyplus,Aveczminus,Aveczplus,Bconsxminus,Bconsxplus,Bconsyminus,Bconsyplus,Bconszm&
  &inus,Bconszplus,Bvecxminus,Bvecxplus,Bvecyminus,Bvecyplus,Bveczminus,Bveczplus,DiffRho,GRHydro_maxima_iteration,GRHydro_mppm_eig&
  &envalue_x_left,GRHydro_mppm_eigenvalue_x_right,GRHydro_mppm_eigenvalue_y_left,GRHydro_mppm_eigenvalue_y_right,GRHydro_mppm_eigen&
  &value_z_left,GRHydro_mppm_eigenvalue_z_right,GRHydro_mppm_xwind,GRHydro_proper_separation,GRHydro_separation,GRHydro_trivial_rp_&
  &gf_x,GRHydro_trivial_rp_gf_y,GRHydro_trivial_rp_gf_z,GRHydro_x,GRHydro_x_p,GRHydro_x_p_p,GRHydro_x_rhs,GRHydro_y,GRHydro_y_p,GRH&
  &ydro_y_p_p,GRHydro_y_rhs,GRHydro_z,GRHydro_z_p,GRHydro_z_p_p,GRHydro_z_rhs,InLastMoLPostStep,Y_e_minus,Y_e_plus,cons_tracerflux,&
  &cons_tracerminus,cons_tracerplus,cons_tracerrhs,densfminus,densfplus,densminus,densplus,entropyconsminus,entropyconsplus,entropy&
  &minus,entropyplus,eos_c,eos_cs2_ave,eos_cs2_m,eos_cs2_p,eos_dpdeps_ave,eos_dpdeps_m,eos_dpdeps_p,eos_dpdeps_temp,eos_dpdrho_temp&
  &,eps_ave,execute_MoL_PostStep,execute_MoL_Step,fs_alpha1,fs_alpha2,fs_alpha3,fs_alpha4,fs_alpha5,maxima_i,maxima_j,maxima_k,part&
  &icle_alp,particle_betax,particle_betay,particle_betaz,particle_vx,particle_vy,particle_vz,particle_x,particle_x_p,particle_x_p_p&
  &,particle_x_rhs,particle_y,particle_y_p,particle_y_p_p,particle_y_rhs,particle_z,particle_z_p,particle_z_p_p,particle_z_rhs,pres&
  &s_ave,press_new,press_old,psidcminus,psidcplus,rho_ave,sxfminus,sxfplus,sxminus,sxplus,syfminus,syfplus,syminus,syplus,szfminus,&
  &szfplus,szminus,szplus,taufminus,taufplus,tauminus,tauplus,tempminus,tempplus,tracerfminus,tracerfplus,tracerminus,tracerplus,ve&
  &lx_ave,vely_ave,velz_ave,whichpsidcspeed, Avec_length,Avecrhs_length,Bcons_length,Bconsrhs_length,Bvec_length,Evec_length,GRHydr&
  &o_cons_tracers_length,GRHydro_tracers_length,bcom_length,lBvec_length,lvel_length,scon_length,srhs_length,vel_length,Abar,Abar_p&
  &,Abar_p_p,Aphi,Aphi_p,Aphi_p_p,Aphiflux,Aphirhs,Avec,Avec_p,Avec_p_p,Avecrhs,Avecxflux,Avecyflux,Aveczflux,Bcons,Bcons_p,Bcons_p&
  &_p,Bconsrhs,Bconsxflux,Bconsyflux,Bconszflux,Bvec,Bvec_p,Bvec_p_p,Evec,GRHydro_C2P_failed,GRHydro_eos_handle,GRHydro_polytrope_h&
  &andle,GRHydro_reflevel,GRHydro_rho_min,GRHydro_tau_min,Y_e,Y_e_p,Y_e_p_p,Y_e_con,Y_e_con_p,Y_e_con_p_p,Y_e_con_flux,Y_e_con_rhs,&
  &alp,alp_p,alp_p_p,atmosphere_atmosp_descriptor,atmosphere_field_descriptor,atmosphere_mask,atmosphere_mask_real,atmosphere_norma&
  &l_descriptor,bcom,bcom_p,bcom_p_p,bcom0,bcom0_p,bcom0_p_p,bcom_sq,bcom_sq_p,bcom_sq_p_p,betaa,betab,betac,betax,betax_p,betax_p_&
  &p,betay,betay_p,betay_p_p,betaz,betaz_p,betaz_p_p,coarse_dx,coarse_dy,coarse_dz,conformal_state,cons_tracer,cons_tracer_p,cons_t&
  &racer_p_p,cs2minus,cs2plus,dens,dens_p,dens_p_p,densflux,densrhs,divB,dtalp,dtalp_p,dtalp_p_p,dtbetax,dtbetax_p,dtbetax_p_p,dtbe&
  &tay,dtbetay_p,dtbetay_p_p,dtbetaz,dtbetaz_p,dtbetaz_p_p,dtlapse_state,dtshift_state,eTtt,eTtt_p,eTtt_p_p,eTtx,eTtx_p,eTtx_p_p,eT&
  &ty,eTty_p,eTty_p_p,eTtz,eTtz_p,eTtz_p_p,eTxx,eTxx_p,eTxx_p_p,eTxy,eTxy_p,eTxy_p_p,eTxz,eTxz_p,eTxz_p_p,eTyy,eTyy_p,eTyy_p_p,eTyz&
  &,eTyz_p,eTyz_p_p,eTzz,eTzz_p,eTzz_p_p,emask,entropy,entropy_p,entropy_p_p,entropycons,entropycons_p,entropycons_p_p,entropyflux,&
  &entropyrhs,eps,eps_p,eps_p_p,epsminus,epsplus,evolve_Lorenz_gge,evolve_MHD,evolve_Y_e,evolve_entropy,evolve_temper,flux_directio&
  &n,gaa,gaa_p,gaa_p_p,gab,gab_p,gab_p_p,gac,gac_p,gac_p_p,gbb,gbb_p,gbb_p_p,gbc,gbc_p,gbc_p_p,gcc,gcc_p,gcc_p_p,gxx,gxx_p,gxx_p_p,&
  &gxy,gxy_p,gxy_p_p,gxz,gxz_p,gxz_p_p,gyy,gyy_p,gyy_p_p,gyz,gyz_p,gyz_p_p,gzz,gzz_p,gzz_p_p,hydro_excision_mask,kaa,kab,kac,kbb,kb&
  &c,kcc,kxx,kxx_p,kxx_p_p,kxy,kxy_p,kxy_p_p,kxz,kxz_p,kxz_p_p,kyy,kyy_p,kyy_p_p,kyz,kyz_p,kyz_p_p,kzz,kzz_p,kzz_p_p,lBvec,lBvec_p,&
  &lBvec_p_p,lvel,lvel_p,lvel_p_p,maxima_x,maxima_y,maxima_z,maximum_density,maxrho_global,press,press_p,press_p_p,pressminus,press&
  &plus,psi,psidc,psidc_p,psidc_p_p,psidcflux,psidcrhs,psix,psixx,psixy,psixz,psiy,psiyy,psiyz,psiz,psizz,r,rho,rho_p,rho_p_p,rhomi&
  &nus,rhoplus,scon,scon_p,scon_p_p,sdetg,shift_state,space_mask,srhs,stress_energy_state,sxflux,syflux,szflux,tau,tau_p,tau_p_p,ta&
  &uflux,taurhs,temperature,temperature_p,temperature_p_p,tracer,tracer_p,tracer_p_p,vel,vel_p,vel_p_p,velxminus,velxplus,velyminus&
  &,velyplus,velzminus,velzplus,w_lorentz,w_lorentz_p,w_lorentz_p_p,w_lorentzminus,w_lorentzplus,x,xoffset,y,yoffset,z,zoffset)
  USE GRHydro_Eigenproblem

  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_level
  integer, parameter :: cctki_use_cctk_level = kind(cctk_level)
  INTEGER cctk_patch
  integer, parameter :: cctki_use_cctk_patch = kind(cctk_patch)
  INTEGER cctk_npatches
  integer, parameter :: cctki_use_cctk_npatches = kind(cctk_npatches)
  INTEGER cctk_component
  integer, parameter :: cctki_use_cctk_component = kind(cctk_component)
  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 GRHydro_tracer_cons_bext_length
  INTEGER GRHydro_tracer_flux_length
  INTEGER GRHydro_tracer_flux_splitting_length
  INTEGER GRHydro_tracer_prim_bext_length
  INTEGER GRHydro_tracer_rhs_length
  INTEGER X0particle_arrays
  INTEGER X0particle_rhs
  INTEGER X0particles
  REAL*8 Aphiminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Aphiminus = kind(Aphiminus)
  REAL*8 Aphiplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Aphiplus = kind(Aphiplus)
  REAL*8 Avecxminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Avecxminus = kind(Avecxminus)
  REAL*8 Avecxplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Avecxplus = kind(Avecxplus)
  REAL*8 Avecyminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Avecyminus = kind(Avecyminus)
  REAL*8 Avecyplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Avecyplus = kind(Avecyplus)
  REAL*8 Aveczminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Aveczminus = kind(Aveczminus)
  REAL*8 Aveczplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Aveczplus = kind(Aveczplus)
  REAL*8 Bconsxminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bconsxminus = kind(Bconsxminus)
  REAL*8 Bconsxplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bconsxplus = kind(Bconsxplus)
  REAL*8 Bconsyminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bconsyminus = kind(Bconsyminus)
  REAL*8 Bconsyplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bconsyplus = kind(Bconsyplus)
  REAL*8 Bconszminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bconszminus = kind(Bconszminus)
  REAL*8 Bconszplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bconszplus = kind(Bconszplus)
  REAL*8 Bvecxminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bvecxminus = kind(Bvecxminus)
  REAL*8 Bvecxplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bvecxplus = kind(Bvecxplus)
  REAL*8 Bvecyminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bvecyminus = kind(Bvecyminus)
  REAL*8 Bvecyplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bvecyplus = kind(Bvecyplus)
  REAL*8 Bveczminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bveczminus = kind(Bveczminus)
  REAL*8 Bveczplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bveczplus = kind(Bveczplus)
  REAL*8 DiffRho (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_DiffRho = kind(DiffRho)
  INTEGER*4 GRHydro_maxima_iteration
  integer, parameter :: cctki_use_GRHydro_maxima_iteration = kind(GRHydro_maxima_iteration)
  REAL*8 GRHydro_mppm_eigenvalue_x_left (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_mppm_eigenvalue_x_left = kind(GRHydro_mppm_eigenvalue_x_left)
  REAL*8 GRHydro_mppm_eigenvalue_x_right (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_mppm_eigenvalue_x_right = kind(GRHydro_mppm_eigenvalue_x_right)
  REAL*8 GRHydro_mppm_eigenvalue_y_left (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_mppm_eigenvalue_y_left = kind(GRHydro_mppm_eigenvalue_y_left)
  REAL*8 GRHydro_mppm_eigenvalue_y_right (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_mppm_eigenvalue_y_right = kind(GRHydro_mppm_eigenvalue_y_right)
  REAL*8 GRHydro_mppm_eigenvalue_z_left (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_mppm_eigenvalue_z_left = kind(GRHydro_mppm_eigenvalue_z_left)
  REAL*8 GRHydro_mppm_eigenvalue_z_right (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_mppm_eigenvalue_z_right = kind(GRHydro_mppm_eigenvalue_z_right)
  REAL*8 GRHydro_mppm_xwind (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_mppm_xwind = kind(GRHydro_mppm_xwind)
  REAL*8 GRHydro_proper_separation
  integer, parameter :: cctki_use_GRHydro_proper_separation = kind(GRHydro_proper_separation)
  REAL*8 GRHydro_separation
  integer, parameter :: cctki_use_GRHydro_separation = kind(GRHydro_separation)
  INTEGER*4 GRHydro_trivial_rp_gf_x (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_trivial_rp_gf_x = kind(GRHydro_trivial_rp_gf_x)
  INTEGER*4 GRHydro_trivial_rp_gf_y (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_trivial_rp_gf_y = kind(GRHydro_trivial_rp_gf_y)
  INTEGER*4 GRHydro_trivial_rp_gf_z (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_trivial_rp_gf_z = kind(GRHydro_trivial_rp_gf_z)
  REAL*8 GRHydro_x (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_x = kind(GRHydro_x)
  REAL*8 GRHydro_x_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_x_p = kind(GRHydro_x_p)
  REAL*8 GRHydro_x_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_x_p_p = kind(GRHydro_x_p_p)
  REAL*8 GRHydro_x_rhs (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_x_rhs = kind(GRHydro_x_rhs)
  REAL*8 GRHydro_y (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_y = kind(GRHydro_y)
  REAL*8 GRHydro_y_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_y_p = kind(GRHydro_y_p)
  REAL*8 GRHydro_y_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_y_p_p = kind(GRHydro_y_p_p)
  REAL*8 GRHydro_y_rhs (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_y_rhs = kind(GRHydro_y_rhs)
  REAL*8 GRHydro_z (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_z = kind(GRHydro_z)
  REAL*8 GRHydro_z_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_z_p = kind(GRHydro_z_p)
  REAL*8 GRHydro_z_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_z_p_p = kind(GRHydro_z_p_p)
  REAL*8 GRHydro_z_rhs (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_z_rhs = kind(GRHydro_z_rhs)
  INTEGER*4 InLastMoLPostStep
  integer, parameter :: cctki_use_InLastMoLPostStep = kind(InLastMoLPostStep)
  REAL*8 Y_e_minus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Y_e_minus = kind(Y_e_minus)
  REAL*8 Y_e_plus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Y_e_plus = kind(Y_e_plus)
  REAL*8 cons_tracerflux (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_tracer_flux_length)
  integer, parameter :: cctki_use_cons_tracerflux = kind(cons_tracerflux)
  REAL*8 cons_tracerminus (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_tracer_cons_bext_length)
  integer, parameter :: cctki_use_cons_tracerminus = kind(cons_tracerminus)
  REAL*8 cons_tracerplus (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_tracer_cons_bext_length)
  integer, parameter :: cctki_use_cons_tracerplus = kind(cons_tracerplus)
  REAL*8 cons_tracerrhs (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_tracer_rhs_length)
  integer, parameter :: cctki_use_cons_tracerrhs = kind(cons_tracerrhs)
  REAL*8 densfminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_densfminus = kind(densfminus)
  REAL*8 densfplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_densfplus = kind(densfplus)
  REAL*8 densminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_densminus = kind(densminus)
  REAL*8 densplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_densplus = kind(densplus)
  REAL*8 entropyconsminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropyconsminus = kind(entropyconsminus)
  REAL*8 entropyconsplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropyconsplus = kind(entropyconsplus)
  REAL*8 entropyminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropyminus = kind(entropyminus)
  REAL*8 entropyplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropyplus = kind(entropyplus)
  REAL*8 eos_c (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eos_c = kind(eos_c)
  REAL*8 eos_cs2_ave (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eos_cs2_ave = kind(eos_cs2_ave)
  REAL*8 eos_cs2_m (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eos_cs2_m = kind(eos_cs2_m)
  REAL*8 eos_cs2_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eos_cs2_p = kind(eos_cs2_p)
  REAL*8 eos_dpdeps_ave (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eos_dpdeps_ave = kind(eos_dpdeps_ave)
  REAL*8 eos_dpdeps_m (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eos_dpdeps_m = kind(eos_dpdeps_m)
  REAL*8 eos_dpdeps_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eos_dpdeps_p = kind(eos_dpdeps_p)
  REAL*8 eos_dpdeps_temp (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eos_dpdeps_temp = kind(eos_dpdeps_temp)
  REAL*8 eos_dpdrho_temp (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eos_dpdrho_temp = kind(eos_dpdrho_temp)
  REAL*8 eps_ave (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eps_ave = kind(eps_ave)
  INTEGER*4 execute_MoL_PostStep
  integer, parameter :: cctki_use_execute_MoL_PostStep = kind(execute_MoL_PostStep)
  INTEGER*4 execute_MoL_Step
  integer, parameter :: cctki_use_execute_MoL_Step = kind(execute_MoL_Step)
  REAL*8 fs_alpha1
  integer, parameter :: cctki_use_fs_alpha1 = kind(fs_alpha1)
  REAL*8 fs_alpha2
  integer, parameter :: cctki_use_fs_alpha2 = kind(fs_alpha2)
  REAL*8 fs_alpha3
  integer, parameter :: cctki_use_fs_alpha3 = kind(fs_alpha3)
  REAL*8 fs_alpha4
  integer, parameter :: cctki_use_fs_alpha4 = kind(fs_alpha4)
  REAL*8 fs_alpha5
  integer, parameter :: cctki_use_fs_alpha5 = kind(fs_alpha5)
  REAL*8 maxima_i
  integer, parameter :: cctki_use_maxima_i = kind(maxima_i)
  REAL*8 maxima_j
  integer, parameter :: cctki_use_maxima_j = kind(maxima_j)
  REAL*8 maxima_k
  integer, parameter :: cctki_use_maxima_k = kind(maxima_k)
  REAL*8 particle_alp (X0particle_arrays)
  integer, parameter :: cctki_use_particle_alp = kind(particle_alp)
  REAL*8 particle_betax (X0particle_arrays)
  integer, parameter :: cctki_use_particle_betax = kind(particle_betax)
  REAL*8 particle_betay (X0particle_arrays)
  integer, parameter :: cctki_use_particle_betay = kind(particle_betay)
  REAL*8 particle_betaz (X0particle_arrays)
  integer, parameter :: cctki_use_particle_betaz = kind(particle_betaz)
  REAL*8 particle_vx (X0particle_arrays)
  integer, parameter :: cctki_use_particle_vx = kind(particle_vx)
  REAL*8 particle_vy (X0particle_arrays)
  integer, parameter :: cctki_use_particle_vy = kind(particle_vy)
  REAL*8 particle_vz (X0particle_arrays)
  integer, parameter :: cctki_use_particle_vz = kind(particle_vz)
  REAL*8 particle_x (X0particles)
  integer, parameter :: cctki_use_particle_x = kind(particle_x)
  REAL*8 particle_x_p (X0particles)
  integer, parameter :: cctki_use_particle_x_p = kind(particle_x_p)
  REAL*8 particle_x_p_p (X0particles)
  integer, parameter :: cctki_use_particle_x_p_p = kind(particle_x_p_p)
  REAL*8 particle_x_rhs (X0particle_rhs)
  integer, parameter :: cctki_use_particle_x_rhs = kind(particle_x_rhs)
  REAL*8 particle_y (X0particles)
  integer, parameter :: cctki_use_particle_y = kind(particle_y)
  REAL*8 particle_y_p (X0particles)
  integer, parameter :: cctki_use_particle_y_p = kind(particle_y_p)
  REAL*8 particle_y_p_p (X0particles)
  integer, parameter :: cctki_use_particle_y_p_p = kind(particle_y_p_p)
  REAL*8 particle_y_rhs (X0particle_rhs)
  integer, parameter :: cctki_use_particle_y_rhs = kind(particle_y_rhs)
  REAL*8 particle_z (X0particles)
  integer, parameter :: cctki_use_particle_z = kind(particle_z)
  REAL*8 particle_z_p (X0particles)
  integer, parameter :: cctki_use_particle_z_p = kind(particle_z_p)
  REAL*8 particle_z_p_p (X0particles)
  integer, parameter :: cctki_use_particle_z_p_p = kind(particle_z_p_p)
  REAL*8 particle_z_rhs (X0particle_rhs)
  integer, parameter :: cctki_use_particle_z_rhs = kind(particle_z_rhs)
  REAL*8 press_ave (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_press_ave = kind(press_ave)
  REAL*8 press_new (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_press_new = kind(press_new)
  REAL*8 press_old (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_press_old = kind(press_old)
  REAL*8 psidcminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psidcminus = kind(psidcminus)
  REAL*8 psidcplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psidcplus = kind(psidcplus)
  REAL*8 rho_ave (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_rho_ave = kind(rho_ave)
  REAL*8 sxfminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_sxfminus = kind(sxfminus)
  REAL*8 sxfplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_sxfplus = kind(sxfplus)
  REAL*8 sxminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_sxminus = kind(sxminus)
  REAL*8 sxplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_sxplus = kind(sxplus)
  REAL*8 syfminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_syfminus = kind(syfminus)
  REAL*8 syfplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_syfplus = kind(syfplus)
  REAL*8 syminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_syminus = kind(syminus)
  REAL*8 syplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_syplus = kind(syplus)
  REAL*8 szfminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_szfminus = kind(szfminus)
  REAL*8 szfplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_szfplus = kind(szfplus)
  REAL*8 szminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_szminus = kind(szminus)
  REAL*8 szplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_szplus = kind(szplus)
  REAL*8 taufminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_taufminus = kind(taufminus)
  REAL*8 taufplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_taufplus = kind(taufplus)
  REAL*8 tauminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_tauminus = kind(tauminus)
  REAL*8 tauplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_tauplus = kind(tauplus)
  REAL*8 tempminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_tempminus = kind(tempminus)
  REAL*8 tempplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_tempplus = kind(tempplus)
  REAL*8 tracerfminus (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_tracer_flux_splitting_length)
  integer, parameter :: cctki_use_tracerfminus = kind(tracerfminus)
  REAL*8 tracerfplus (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_tracer_flux_splitting_length)
  integer, parameter :: cctki_use_tracerfplus = kind(tracerfplus)
  REAL*8 tracerminus (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_tracer_prim_bext_length)
  integer, parameter :: cctki_use_tracerminus = kind(tracerminus)
  REAL*8 tracerplus (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_tracer_prim_bext_length)
  integer, parameter :: cctki_use_tracerplus = kind(tracerplus)
  REAL*8 velx_ave (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_velx_ave = kind(velx_ave)
  REAL*8 vely_ave (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_vely_ave = kind(vely_ave)
  REAL*8 velz_ave (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_velz_ave = kind(velz_ave)
  INTEGER*4 whichpsidcspeed
  integer, parameter :: cctki_use_whichpsidcspeed = kind(whichpsidcspeed)
  INTEGER Avec_length
  INTEGER Avecrhs_length
  INTEGER Bcons_length
  INTEGER Bconsrhs_length
  INTEGER Bvec_length
  INTEGER Evec_length
  INTEGER GRHydro_cons_tracers_length
  INTEGER GRHydro_tracers_length
  INTEGER bcom_length
  INTEGER lBvec_length
  INTEGER lvel_length
  INTEGER scon_length
  INTEGER srhs_length
  INTEGER vel_length
  REAL*8 Abar (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Abar = kind(Abar)
  REAL*8 Abar_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Abar_p = kind(Abar_p)
  REAL*8 Abar_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Abar_p_p = kind(Abar_p_p)
  REAL*8 Aphi (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Aphi = kind(Aphi)
  REAL*8 Aphi_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Aphi_p = kind(Aphi_p)
  REAL*8 Aphi_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Aphi_p_p = kind(Aphi_p_p)
  REAL*8 Aphiflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Aphiflux = kind(Aphiflux)
  REAL*8 Aphirhs (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Aphirhs = kind(Aphirhs)
  REAL*8 Avec (cctk_ash1,cctk_ash2,cctk_ash3,Avec_length)
  integer, parameter :: cctki_use_Avec = kind(Avec)
  REAL*8 Avec_p (cctk_ash1,cctk_ash2,cctk_ash3,Avec_length)
  integer, parameter :: cctki_use_Avec_p = kind(Avec_p)
  REAL*8 Avec_p_p (cctk_ash1,cctk_ash2,cctk_ash3,Avec_length)
  integer, parameter :: cctki_use_Avec_p_p = kind(Avec_p_p)
  REAL*8 Avecrhs (cctk_ash1,cctk_ash2,cctk_ash3,Avecrhs_length)
  integer, parameter :: cctki_use_Avecrhs = kind(Avecrhs)
  REAL*8 Avecxflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Avecxflux = kind(Avecxflux)
  REAL*8 Avecyflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Avecyflux = kind(Avecyflux)
  REAL*8 Aveczflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Aveczflux = kind(Aveczflux)
  REAL*8 Bcons (cctk_ash1,cctk_ash2,cctk_ash3,Bcons_length)
  integer, parameter :: cctki_use_Bcons = kind(Bcons)
  REAL*8 Bcons_p (cctk_ash1,cctk_ash2,cctk_ash3,Bcons_length)
  integer, parameter :: cctki_use_Bcons_p = kind(Bcons_p)
  REAL*8 Bcons_p_p (cctk_ash1,cctk_ash2,cctk_ash3,Bcons_length)
  integer, parameter :: cctki_use_Bcons_p_p = kind(Bcons_p_p)
  REAL*8 Bconsrhs (cctk_ash1,cctk_ash2,cctk_ash3,Bconsrhs_length)
  integer, parameter :: cctki_use_Bconsrhs = kind(Bconsrhs)
  REAL*8 Bconsxflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bconsxflux = kind(Bconsxflux)
  REAL*8 Bconsyflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bconsyflux = kind(Bconsyflux)
  REAL*8 Bconszflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bconszflux = kind(Bconszflux)
  REAL*8 Bvec (cctk_ash1,cctk_ash2,cctk_ash3,Bvec_length)
  integer, parameter :: cctki_use_Bvec = kind(Bvec)
  REAL*8 Bvec_p (cctk_ash1,cctk_ash2,cctk_ash3,Bvec_length)
  integer, parameter :: cctki_use_Bvec_p = kind(Bvec_p)
  REAL*8 Bvec_p_p (cctk_ash1,cctk_ash2,cctk_ash3,Bvec_length)
  integer, parameter :: cctki_use_Bvec_p_p = kind(Bvec_p_p)
  REAL*8 Evec (cctk_ash1,cctk_ash2,cctk_ash3,Evec_length)
  integer, parameter :: cctki_use_Evec = kind(Evec)
  REAL*8 GRHydro_C2P_failed (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_C2P_failed = kind(GRHydro_C2P_failed)
  INTEGER*4 GRHydro_eos_handle
  integer, parameter :: cctki_use_GRHydro_eos_handle = kind(GRHydro_eos_handle)
  INTEGER*4 GRHydro_polytrope_handle
  integer, parameter :: cctki_use_GRHydro_polytrope_handle = kind(GRHydro_polytrope_handle)
  INTEGER*4 GRHydro_reflevel
  integer, parameter :: cctki_use_GRHydro_reflevel = kind(GRHydro_reflevel)
  REAL*8 GRHydro_rho_min
  integer, parameter :: cctki_use_GRHydro_rho_min = kind(GRHydro_rho_min)
  REAL*8 GRHydro_tau_min
  integer, parameter :: cctki_use_GRHydro_tau_min = kind(GRHydro_tau_min)
  REAL*8 Y_e (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Y_e = kind(Y_e)
  REAL*8 Y_e_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Y_e_p = kind(Y_e_p)
  REAL*8 Y_e_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Y_e_p_p = kind(Y_e_p_p)
  REAL*8 Y_e_con (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Y_e_con = kind(Y_e_con)
  REAL*8 Y_e_con_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Y_e_con_p = kind(Y_e_con_p)
  REAL*8 Y_e_con_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Y_e_con_p_p = kind(Y_e_con_p_p)
  REAL*8 Y_e_con_flux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Y_e_con_flux = kind(Y_e_con_flux)
  REAL*8 Y_e_con_rhs (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Y_e_con_rhs = kind(Y_e_con_rhs)
  REAL*8 alp (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_alp = kind(alp)
  REAL*8 alp_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_alp_p = kind(alp_p)
  REAL*8 alp_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_alp_p_p = kind(alp_p_p)
  INTEGER*4 atmosphere_atmosp_descriptor
  integer, parameter :: cctki_use_atmosphere_atmosp_descriptor = kind(atmosphere_atmosp_descriptor)
  INTEGER*4 atmosphere_field_descriptor
  integer, parameter :: cctki_use_atmosphere_field_descriptor = kind(atmosphere_field_descriptor)
  INTEGER*4 atmosphere_mask (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_atmosphere_mask = kind(atmosphere_mask)
  REAL*8 atmosphere_mask_real (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_atmosphere_mask_real = kind(atmosphere_mask_real)
  INTEGER*4 atmosphere_normal_descriptor
  integer, parameter :: cctki_use_atmosphere_normal_descriptor = kind(atmosphere_normal_descriptor)
  REAL*8 bcom (cctk_ash1,cctk_ash2,cctk_ash3,bcom_length)
  integer, parameter :: cctki_use_bcom = kind(bcom)
  REAL*8 bcom_p (cctk_ash1,cctk_ash2,cctk_ash3,bcom_length)
  integer, parameter :: cctki_use_bcom_p = kind(bcom_p)
  REAL*8 bcom_p_p (cctk_ash1,cctk_ash2,cctk_ash3,bcom_length)
  integer, parameter :: cctki_use_bcom_p_p = kind(bcom_p_p)
  REAL*8 bcom0 (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_bcom0 = kind(bcom0)
  REAL*8 bcom0_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_bcom0_p = kind(bcom0_p)
  REAL*8 bcom0_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_bcom0_p_p = kind(bcom0_p_p)
  REAL*8 bcom_sq (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_bcom_sq = kind(bcom_sq)
  REAL*8 bcom_sq_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_bcom_sq_p = kind(bcom_sq_p)
  REAL*8 bcom_sq_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_bcom_sq_p_p = kind(bcom_sq_p_p)
  REAL*8 betaa (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betaa = kind(betaa)
  REAL*8 betab (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betab = kind(betab)
  REAL*8 betac (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betac = kind(betac)
  REAL*8 betax (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betax = kind(betax)
  REAL*8 betax_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betax_p = kind(betax_p)
  REAL*8 betax_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betax_p_p = kind(betax_p_p)
  REAL*8 betay (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betay = kind(betay)
  REAL*8 betay_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betay_p = kind(betay_p)
  REAL*8 betay_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betay_p_p = kind(betay_p_p)
  REAL*8 betaz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betaz = kind(betaz)
  REAL*8 betaz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betaz_p = kind(betaz_p)
  REAL*8 betaz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betaz_p_p = kind(betaz_p_p)
  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)
  INTEGER*4 conformal_state
  integer, parameter :: cctki_use_conformal_state = kind(conformal_state)
  REAL*8 cons_tracer (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_cons_tracers_length)
  integer, parameter :: cctki_use_cons_tracer = kind(cons_tracer)
  REAL*8 cons_tracer_p (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_cons_tracers_length)
  integer, parameter :: cctki_use_cons_tracer_p = kind(cons_tracer_p)
  REAL*8 cons_tracer_p_p (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_cons_tracers_length)
  integer, parameter :: cctki_use_cons_tracer_p_p = kind(cons_tracer_p_p)
  REAL*8 cs2minus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_cs2minus = kind(cs2minus)
  REAL*8 cs2plus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_cs2plus = kind(cs2plus)
  REAL*8 dens (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dens = kind(dens)
  REAL*8 dens_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dens_p = kind(dens_p)
  REAL*8 dens_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dens_p_p = kind(dens_p_p)
  REAL*8 densflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_densflux = kind(densflux)
  REAL*8 densrhs (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_densrhs = kind(densrhs)
  REAL*8 divB (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_divB = kind(divB)
  REAL*8 dtalp (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtalp = kind(dtalp)
  REAL*8 dtalp_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtalp_p = kind(dtalp_p)
  REAL*8 dtalp_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtalp_p_p = kind(dtalp_p_p)
  REAL*8 dtbetax (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtbetax = kind(dtbetax)
  REAL*8 dtbetax_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtbetax_p = kind(dtbetax_p)
  REAL*8 dtbetax_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtbetax_p_p = kind(dtbetax_p_p)
  REAL*8 dtbetay (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtbetay = kind(dtbetay)
  REAL*8 dtbetay_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtbetay_p = kind(dtbetay_p)
  REAL*8 dtbetay_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtbetay_p_p = kind(dtbetay_p_p)
  REAL*8 dtbetaz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtbetaz = kind(dtbetaz)
  REAL*8 dtbetaz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtbetaz_p = kind(dtbetaz_p)
  REAL*8 dtbetaz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtbetaz_p_p = kind(dtbetaz_p_p)
  INTEGER*4 dtlapse_state
  integer, parameter :: cctki_use_dtlapse_state = kind(dtlapse_state)
  INTEGER*4 dtshift_state
  integer, parameter :: cctki_use_dtshift_state = kind(dtshift_state)
  REAL*8 eTtt (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTtt = kind(eTtt)
  REAL*8 eTtt_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTtt_p = kind(eTtt_p)
  REAL*8 eTtt_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTtt_p_p = kind(eTtt_p_p)
  REAL*8 eTtx (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTtx = kind(eTtx)
  REAL*8 eTtx_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTtx_p = kind(eTtx_p)
  REAL*8 eTtx_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTtx_p_p = kind(eTtx_p_p)
  REAL*8 eTty (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTty = kind(eTty)
  REAL*8 eTty_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTty_p = kind(eTty_p)
  REAL*8 eTty_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTty_p_p = kind(eTty_p_p)
  REAL*8 eTtz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTtz = kind(eTtz)
  REAL*8 eTtz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTtz_p = kind(eTtz_p)
  REAL*8 eTtz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTtz_p_p = kind(eTtz_p_p)
  REAL*8 eTxx (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTxx = kind(eTxx)
  REAL*8 eTxx_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTxx_p = kind(eTxx_p)
  REAL*8 eTxx_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTxx_p_p = kind(eTxx_p_p)
  REAL*8 eTxy (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTxy = kind(eTxy)
  REAL*8 eTxy_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTxy_p = kind(eTxy_p)
  REAL*8 eTxy_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTxy_p_p = kind(eTxy_p_p)
  REAL*8 eTxz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTxz = kind(eTxz)
  REAL*8 eTxz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTxz_p = kind(eTxz_p)
  REAL*8 eTxz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTxz_p_p = kind(eTxz_p_p)
  REAL*8 eTyy (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTyy = kind(eTyy)
  REAL*8 eTyy_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTyy_p = kind(eTyy_p)
  REAL*8 eTyy_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTyy_p_p = kind(eTyy_p_p)
  REAL*8 eTyz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTyz = kind(eTyz)
  REAL*8 eTyz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTyz_p = kind(eTyz_p)
  REAL*8 eTyz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTyz_p_p = kind(eTyz_p_p)
  REAL*8 eTzz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTzz = kind(eTzz)
  REAL*8 eTzz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTzz_p = kind(eTzz_p)
  REAL*8 eTzz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTzz_p_p = kind(eTzz_p_p)
  REAL*8 emask (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_emask = kind(emask)
  REAL*8 entropy (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropy = kind(entropy)
  REAL*8 entropy_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropy_p = kind(entropy_p)
  REAL*8 entropy_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropy_p_p = kind(entropy_p_p)
  REAL*8 entropycons (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropycons = kind(entropycons)
  REAL*8 entropycons_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropycons_p = kind(entropycons_p)
  REAL*8 entropycons_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropycons_p_p = kind(entropycons_p_p)
  REAL*8 entropyflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropyflux = kind(entropyflux)
  REAL*8 entropyrhs (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropyrhs = kind(entropyrhs)
  REAL*8 eps (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eps = kind(eps)
  REAL*8 eps_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eps_p = kind(eps_p)
  REAL*8 eps_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eps_p_p = kind(eps_p_p)
  REAL*8 epsminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_epsminus = kind(epsminus)
  REAL*8 epsplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_epsplus = kind(epsplus)
  INTEGER*4 evolve_Lorenz_gge
  integer, parameter :: cctki_use_evolve_Lorenz_gge = kind(evolve_Lorenz_gge)
  INTEGER*4 evolve_MHD
  integer, parameter :: cctki_use_evolve_MHD = kind(evolve_MHD)
  INTEGER*4 evolve_Y_e
  integer, parameter :: cctki_use_evolve_Y_e = kind(evolve_Y_e)
  INTEGER*4 evolve_entropy
  integer, parameter :: cctki_use_evolve_entropy = kind(evolve_entropy)
  INTEGER*4 evolve_temper
  integer, parameter :: cctki_use_evolve_temper = kind(evolve_temper)
  INTEGER*4 flux_direction
  integer, parameter :: cctki_use_flux_direction = kind(flux_direction)
  REAL*8 gaa (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gaa = kind(gaa)
  REAL*8 gaa_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gaa_p = kind(gaa_p)
  REAL*8 gaa_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gaa_p_p = kind(gaa_p_p)
  REAL*8 gab (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gab = kind(gab)
  REAL*8 gab_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gab_p = kind(gab_p)
  REAL*8 gab_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gab_p_p = kind(gab_p_p)
  REAL*8 gac (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gac = kind(gac)
  REAL*8 gac_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gac_p = kind(gac_p)
  REAL*8 gac_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gac_p_p = kind(gac_p_p)
  REAL*8 gbb (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gbb = kind(gbb)
  REAL*8 gbb_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gbb_p = kind(gbb_p)
  REAL*8 gbb_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gbb_p_p = kind(gbb_p_p)
  REAL*8 gbc (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gbc = kind(gbc)
  REAL*8 gbc_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gbc_p = kind(gbc_p)
  REAL*8 gbc_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gbc_p_p = kind(gbc_p_p)
  REAL*8 gcc (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gcc = kind(gcc)
  REAL*8 gcc_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gcc_p = kind(gcc_p)
  REAL*8 gcc_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gcc_p_p = kind(gcc_p_p)
  REAL*8 gxx (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gxx = kind(gxx)
  REAL*8 gxx_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gxx_p = kind(gxx_p)
  REAL*8 gxx_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gxx_p_p = kind(gxx_p_p)
  REAL*8 gxy (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gxy = kind(gxy)
  REAL*8 gxy_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gxy_p = kind(gxy_p)
  REAL*8 gxy_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gxy_p_p = kind(gxy_p_p)
  REAL*8 gxz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gxz = kind(gxz)
  REAL*8 gxz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gxz_p = kind(gxz_p)
  REAL*8 gxz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gxz_p_p = kind(gxz_p_p)
  REAL*8 gyy (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gyy = kind(gyy)
  REAL*8 gyy_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gyy_p = kind(gyy_p)
  REAL*8 gyy_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gyy_p_p = kind(gyy_p_p)
  REAL*8 gyz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gyz = kind(gyz)
  REAL*8 gyz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gyz_p = kind(gyz_p)
  REAL*8 gyz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gyz_p_p = kind(gyz_p_p)
  REAL*8 gzz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gzz = kind(gzz)
  REAL*8 gzz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gzz_p = kind(gzz_p)
  REAL*8 gzz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gzz_p_p = kind(gzz_p_p)
  INTEGER*4 hydro_excision_mask (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_hydro_excision_mask = kind(hydro_excision_mask)
  REAL*8 kaa (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kaa = kind(kaa)
  REAL*8 kab (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kab = kind(kab)
  REAL*8 kac (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kac = kind(kac)
  REAL*8 kbb (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kbb = kind(kbb)
  REAL*8 kbc (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kbc = kind(kbc)
  REAL*8 kcc (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kcc = kind(kcc)
  REAL*8 kxx (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kxx = kind(kxx)
  REAL*8 kxx_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kxx_p = kind(kxx_p)
  REAL*8 kxx_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kxx_p_p = kind(kxx_p_p)
  REAL*8 kxy (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kxy = kind(kxy)
  REAL*8 kxy_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kxy_p = kind(kxy_p)
  REAL*8 kxy_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kxy_p_p = kind(kxy_p_p)
  REAL*8 kxz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kxz = kind(kxz)
  REAL*8 kxz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kxz_p = kind(kxz_p)
  REAL*8 kxz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kxz_p_p = kind(kxz_p_p)
  REAL*8 kyy (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kyy = kind(kyy)
  REAL*8 kyy_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kyy_p = kind(kyy_p)
  REAL*8 kyy_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kyy_p_p = kind(kyy_p_p)
  REAL*8 kyz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kyz = kind(kyz)
  REAL*8 kyz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kyz_p = kind(kyz_p)
  REAL*8 kyz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kyz_p_p = kind(kyz_p_p)
  REAL*8 kzz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kzz = kind(kzz)
  REAL*8 kzz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kzz_p = kind(kzz_p)
  REAL*8 kzz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kzz_p_p = kind(kzz_p_p)
  REAL*8 lBvec (cctk_ash1,cctk_ash2,cctk_ash3,lBvec_length)
  integer, parameter :: cctki_use_lBvec = kind(lBvec)
  REAL*8 lBvec_p (cctk_ash1,cctk_ash2,cctk_ash3,lBvec_length)
  integer, parameter :: cctki_use_lBvec_p = kind(lBvec_p)
  REAL*8 lBvec_p_p (cctk_ash1,cctk_ash2,cctk_ash3,lBvec_length)
  integer, parameter :: cctki_use_lBvec_p_p = kind(lBvec_p_p)
  REAL*8 lvel (cctk_ash1,cctk_ash2,cctk_ash3,lvel_length)
  integer, parameter :: cctki_use_lvel = kind(lvel)
  REAL*8 lvel_p (cctk_ash1,cctk_ash2,cctk_ash3,lvel_length)
  integer, parameter :: cctki_use_lvel_p = kind(lvel_p)
  REAL*8 lvel_p_p (cctk_ash1,cctk_ash2,cctk_ash3,lvel_length)
  integer, parameter :: cctki_use_lvel_p_p = kind(lvel_p_p)
  REAL*8 maxima_x
  integer, parameter :: cctki_use_maxima_x = kind(maxima_x)
  REAL*8 maxima_y
  integer, parameter :: cctki_use_maxima_y = kind(maxima_y)
  REAL*8 maxima_z
  integer, parameter :: cctki_use_maxima_z = kind(maxima_z)
  REAL*8 maximum_density
  integer, parameter :: cctki_use_maximum_density = kind(maximum_density)
  REAL*8 maxrho_global
  integer, parameter :: cctki_use_maxrho_global = kind(maxrho_global)
  REAL*8 press (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_press = kind(press)
  REAL*8 press_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_press_p = kind(press_p)
  REAL*8 press_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_press_p_p = kind(press_p_p)
  REAL*8 pressminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_pressminus = kind(pressminus)
  REAL*8 pressplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_pressplus = kind(pressplus)
  REAL*8 psi (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psi = kind(psi)
  REAL*8 psidc (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psidc = kind(psidc)
  REAL*8 psidc_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psidc_p = kind(psidc_p)
  REAL*8 psidc_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psidc_p_p = kind(psidc_p_p)
  REAL*8 psidcflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psidcflux = kind(psidcflux)
  REAL*8 psidcrhs (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psidcrhs = kind(psidcrhs)
  REAL*8 psix (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psix = kind(psix)
  REAL*8 psixx (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psixx = kind(psixx)
  REAL*8 psixy (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psixy = kind(psixy)
  REAL*8 psixz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psixz = kind(psixz)
  REAL*8 psiy (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psiy = kind(psiy)
  REAL*8 psiyy (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psiyy = kind(psiyy)
  REAL*8 psiyz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psiyz = kind(psiyz)
  REAL*8 psiz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psiz = kind(psiz)
  REAL*8 psizz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psizz = kind(psizz)
  REAL*8 r (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_r = kind(r)
  REAL*8 rho (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_rho = kind(rho)
  REAL*8 rho_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_rho_p = kind(rho_p)
  REAL*8 rho_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_rho_p_p = kind(rho_p_p)
  REAL*8 rhominus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_rhominus = kind(rhominus)
  REAL*8 rhoplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_rhoplus = kind(rhoplus)
  REAL*8 scon (cctk_ash1,cctk_ash2,cctk_ash3,scon_length)
  integer, parameter :: cctki_use_scon = kind(scon)
  REAL*8 scon_p (cctk_ash1,cctk_ash2,cctk_ash3,scon_length)
  integer, parameter :: cctki_use_scon_p = kind(scon_p)
  REAL*8 scon_p_p (cctk_ash1,cctk_ash2,cctk_ash3,scon_length)
  integer, parameter :: cctki_use_scon_p_p = kind(scon_p_p)
  REAL*8 sdetg (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_sdetg = kind(sdetg)
  INTEGER*4 shift_state
  integer, parameter :: cctki_use_shift_state = kind(shift_state)
  INTEGER*4 space_mask (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_space_mask = kind(space_mask)
  REAL*8 srhs (cctk_ash1,cctk_ash2,cctk_ash3,srhs_length)
  integer, parameter :: cctki_use_srhs = kind(srhs)
  INTEGER*4 stress_energy_state
  integer, parameter :: cctki_use_stress_energy_state = kind(stress_energy_state)
  REAL*8 sxflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_sxflux = kind(sxflux)
  REAL*8 syflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_syflux = kind(syflux)
  REAL*8 szflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_szflux = kind(szflux)
  REAL*8 tau (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_tau = kind(tau)
  REAL*8 tau_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_tau_p = kind(tau_p)
  REAL*8 tau_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_tau_p_p = kind(tau_p_p)
  REAL*8 tauflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_tauflux = kind(tauflux)
  REAL*8 taurhs (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_taurhs = kind(taurhs)
  REAL*8 temperature (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_temperature = kind(temperature)
  REAL*8 temperature_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_temperature_p = kind(temperature_p)
  REAL*8 temperature_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_temperature_p_p = kind(temperature_p_p)
  REAL*8 tracer (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_tracers_length)
  integer, parameter :: cctki_use_tracer = kind(tracer)
  REAL*8 tracer_p (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_tracers_length)
  integer, parameter :: cctki_use_tracer_p = kind(tracer_p)
  REAL*8 tracer_p_p (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_tracers_length)
  integer, parameter :: cctki_use_tracer_p_p = kind(tracer_p_p)
  REAL*8 vel (cctk_ash1,cctk_ash2,cctk_ash3,vel_length)
  integer, parameter :: cctki_use_vel = kind(vel)
  REAL*8 vel_p (cctk_ash1,cctk_ash2,cctk_ash3,vel_length)
  integer, parameter :: cctki_use_vel_p = kind(vel_p)
  REAL*8 vel_p_p (cctk_ash1,cctk_ash2,cctk_ash3,vel_length)
  integer, parameter :: cctki_use_vel_p_p = kind(vel_p_p)
  REAL*8 velxminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_velxminus = kind(velxminus)
  REAL*8 velxplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_velxplus = kind(velxplus)
  REAL*8 velyminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_velyminus = kind(velyminus)
  REAL*8 velyplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_velyplus = kind(velyplus)
  REAL*8 velzminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_velzminus = kind(velzminus)
  REAL*8 velzplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_velzplus = kind(velzplus)
  REAL*8 w_lorentz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_w_lorentz = kind(w_lorentz)
  REAL*8 w_lorentz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_w_lorentz_p = kind(w_lorentz_p)
  REAL*8 w_lorentz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_w_lorentz_p_p = kind(w_lorentz_p_p)
  REAL*8 w_lorentzminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_w_lorentzminus = kind(w_lorentzminus)
  REAL*8 w_lorentzplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_w_lorentzplus = kind(w_lorentzplus)
  REAL*8 x (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_x = kind(x)
  INTEGER*4 xoffset
  integer, parameter :: cctki_use_xoffset = kind(xoffset)
  REAL*8 y (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_y = kind(y)
  INTEGER*4 yoffset
  integer, parameter :: cctki_use_yoffset = kind(yoffset)
  REAL*8 z (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_z = kind(z)
  INTEGER*4 zoffset
  integer, parameter :: cctki_use_zoffset = kind(zoffset)
  REAL*8 GRHydro_Y_e_max
  integer, parameter :: cctki_use_GRHydro_Y_e_max = kind(GRHydro_Y_e_max)
  REAL*8 GRHydro_Y_e_min
  integer, parameter :: cctki_use_GRHydro_Y_e_min = kind(GRHydro_Y_e_min)
  REAL*8 GRHydro_atmo_tolerance
  integer, parameter :: cctki_use_GRHydro_atmo_tolerance = kind(GRHydro_atmo_tolerance)
  REAL*8 GRHydro_del_ptol
  integer, parameter :: cctki_use_GRHydro_del_ptol = kind(GRHydro_del_ptol)
  REAL*8 GRHydro_eos_rf_prec
  integer, parameter :: cctki_use_GRHydro_eos_rf_prec = kind(GRHydro_eos_rf_prec)
  REAL*8 GRHydro_eps_min
  integer, parameter :: cctki_use_GRHydro_eps_min = kind(GRHydro_eps_min)
  REAL*8 GRHydro_hot_atmo_Y_e
  integer, parameter :: cctki_use_GRHydro_hot_atmo_Y_e = kind(GRHydro_hot_atmo_Y_e)
  REAL*8 GRHydro_hot_atmo_temp
  integer, parameter :: cctki_use_GRHydro_hot_atmo_temp = kind(GRHydro_hot_atmo_temp)
  REAL*8 GRHydro_lorentz_overshoot_cutoff
  integer, parameter :: cctki_use_GRHydro_lorentz_overshoot_cutoff = kind(GRHydro_lorentz_overshoot_cutoff)
  REAL*8 GRHydro_max_temp
  integer, parameter :: cctki_use_GRHydro_max_temp = kind(GRHydro_max_temp)
  REAL*8 GRHydro_perc_ptol
  integer, parameter :: cctki_use_GRHydro_perc_ptol = kind(GRHydro_perc_ptol)
  REAL*8 GRHydro_rho_central
  integer, parameter :: cctki_use_GRHydro_rho_central = kind(GRHydro_rho_central)
  REAL*8 Tmunu_damping_radius_max
  integer, parameter :: cctki_use_Tmunu_damping_radius_max = kind(Tmunu_damping_radius_max)
  REAL*8 Tmunu_damping_radius_min
  integer, parameter :: cctki_use_Tmunu_damping_radius_min = kind(Tmunu_damping_radius_min)
  REAL*8 atmo_falloff_power
  integer, parameter :: cctki_use_atmo_falloff_power = kind(atmo_falloff_power)
  REAL*8 atmo_falloff_radius
  integer, parameter :: cctki_use_atmo_falloff_radius = kind(atmo_falloff_radius)
  REAL*8 atmo_tolerance_power
  integer, parameter :: cctki_use_atmo_tolerance_power = kind(atmo_tolerance_power)
  REAL*8 atmo_tolerance_radius
  integer, parameter :: cctki_use_atmo_tolerance_radius = kind(atmo_tolerance_radius)
  REAL*8 c2p_reset_pressure_to_value
  integer, parameter :: cctki_use_c2p_reset_pressure_to_value = kind(c2p_reset_pressure_to_value)
  REAL*8 comoving_factor
  integer, parameter :: cctki_use_comoving_factor = kind(comoving_factor)
  REAL*8 comoving_tanh_factor
  integer, parameter :: cctki_use_comoving_tanh_factor = kind(comoving_tanh_factor)
  REAL*8 comoving_tanh_offset
  integer, parameter :: cctki_use_comoving_tanh_offset = kind(comoving_tanh_offset)
  REAL*8 enhanced_ppm_C2
  integer, parameter :: cctki_use_enhanced_ppm_C2 = kind(enhanced_ppm_C2)
  REAL*8 enhanced_ppm_C3
  integer, parameter :: cctki_use_enhanced_ppm_C3 = kind(enhanced_ppm_C3)
  REAL*8 initial_Gamma
  integer, parameter :: cctki_use_initial_Gamma = kind(initial_Gamma)
  REAL*8 initial_atmosphere_factor
  integer, parameter :: cctki_use_initial_atmosphere_factor = kind(initial_atmosphere_factor)
  REAL*8 initial_k
  integer, parameter :: cctki_use_initial_k = kind(initial_k)
  REAL*8 initial_rho_abs_min
  integer, parameter :: cctki_use_initial_rho_abs_min = kind(initial_rho_abs_min)
  REAL*8 initial_rho_rel_min
  integer, parameter :: cctki_use_initial_rho_rel_min = kind(initial_rho_rel_min)
  REAL*8 kap_dc
  integer, parameter :: cctki_use_kap_dc = kind(kap_dc)
  REAL*8 max_magnetic_to_gas_pressure_ratio
  integer, parameter :: cctki_use_max_magnetic_to_gas_pressure_ratio = kind(max_magnetic_to_gas_pressure_ratio)
  REAL*8 min_tracer
  integer, parameter :: cctki_use_min_tracer = kind(min_tracer)
  REAL*8 mp5_alpha
  integer, parameter :: cctki_use_mp5_alpha = kind(mp5_alpha)
  REAL*8 mp5_eps
  integer, parameter :: cctki_use_mp5_eps = kind(mp5_eps)
  REAL*8 myfloor
  integer, parameter :: cctki_use_myfloor = kind(myfloor)
  REAL*8 ppm_epsilon
  integer, parameter :: cctki_use_ppm_epsilon = kind(ppm_epsilon)
  REAL*8 ppm_epsilon_shock
  integer, parameter :: cctki_use_ppm_epsilon_shock = kind(ppm_epsilon_shock)
  REAL*8 ppm_eta1
  integer, parameter :: cctki_use_ppm_eta1 = kind(ppm_eta1)
  REAL*8 ppm_eta2
  integer, parameter :: cctki_use_ppm_eta2 = kind(ppm_eta2)
  REAL*8 ppm_k0
  integer, parameter :: cctki_use_ppm_k0 = kind(ppm_k0)
  REAL*8 ppm_omega1
  integer, parameter :: cctki_use_ppm_omega1 = kind(ppm_omega1)
  REAL*8 ppm_omega2
  integer, parameter :: cctki_use_ppm_omega2 = kind(ppm_omega2)
  REAL*8 ppm_omega_tracer
  integer, parameter :: cctki_use_ppm_omega_tracer = kind(ppm_omega_tracer)
  REAL*8 ppm_small
  integer, parameter :: cctki_use_ppm_small = kind(ppm_small)
  REAL*8 rho_abs_min
  integer, parameter :: cctki_use_rho_abs_min = kind(rho_abs_min)
  REAL*8 rho_abs_min_after_recovery
  integer, parameter :: cctki_use_rho_abs_min_after_recovery = kind(rho_abs_min_after_recovery)
  REAL*8 rho_rel_min
  integer, parameter :: cctki_use_rho_rel_min = kind(rho_rel_min)
  REAL*8 setcharmax
  integer, parameter :: cctki_use_setcharmax = kind(setcharmax)
  REAL*8 setcharmin
  integer, parameter :: cctki_use_setcharmin = kind(setcharmin)
  REAL*8 sqrtdet_thr
  integer, parameter :: cctki_use_sqrtdet_thr = kind(sqrtdet_thr)
  REAL*8 tau_rel_min
  integer, parameter :: cctki_use_tau_rel_min = kind(tau_rel_min)
  REAL*8 weno_eps
  integer, parameter :: cctki_use_weno_eps = kind(weno_eps)
  integer*8 Avec_gauge
  integer, parameter :: cctki_use_Avec_gauge = kind(Avec_gauge)
  integer*8 EoS_Change_type
  integer, parameter :: cctki_use_EoS_Change_type = kind(EoS_Change_type)
  integer*8 GRHydro_c2p_failed_action
  integer, parameter :: cctki_use_GRHydro_c2p_failed_action = kind(GRHydro_c2p_failed_action)
  integer*8 GRHydro_eos_table
  integer, parameter :: cctki_use_GRHydro_eos_table = kind(GRHydro_eos_table)
  integer*8 GRHydro_eos_type
  integer, parameter :: cctki_use_GRHydro_eos_type = kind(GRHydro_eos_type)
  integer*8 HLLE_type
  integer, parameter :: cctki_use_HLLE_type = kind(HLLE_type)
  integer*8 bound
  integer, parameter :: cctki_use_bound = kind(bound)
  integer*8 comoving_attenuate
  integer, parameter :: cctki_use_comoving_attenuate = kind(comoving_attenuate)
  integer*8 comoving_v_method
  integer, parameter :: cctki_use_comoving_v_method = kind(comoving_v_method)
  integer*8 gradient_method
  integer, parameter :: cctki_use_gradient_method = kind(gradient_method)
  integer*8 left_eigenvectors
  integer, parameter :: cctki_use_left_eigenvectors = kind(left_eigenvectors)
  integer*8 method_type
  integer, parameter :: cctki_use_method_type = kind(method_type)
  integer*8 numerical_viscosity
  integer, parameter :: cctki_use_numerical_viscosity = kind(numerical_viscosity)
  integer*8 particle_interpolator
  integer, parameter :: cctki_use_particle_interpolator = kind(particle_interpolator)
  integer*8 ppm_flatten
  integer, parameter :: cctki_use_ppm_flatten = kind(ppm_flatten)
  integer*8 psidcspeed
  integer, parameter :: cctki_use_psidcspeed = kind(psidcspeed)
  integer*8 recon_method
  integer, parameter :: cctki_use_recon_method = kind(recon_method)
  integer*8 recon_vars
  integer, parameter :: cctki_use_recon_vars = kind(recon_vars)
  integer*8 riemann_solver
  integer, parameter :: cctki_use_riemann_solver = kind(riemann_solver)
  integer*8 tvd_limiter
  integer, parameter :: cctki_use_tvd_limiter = kind(tvd_limiter)
  integer*8 use_evolution_mask
  integer, parameter :: cctki_use_use_evolution_mask = kind(use_evolution_mask)
  INTEGER*4 Check_Rho_Minimum
  integer, parameter :: cctki_use_Check_Rho_Minimum = kind(Check_Rho_Minimum)
  INTEGER*4 EoS_Change
  integer, parameter :: cctki_use_EoS_Change = kind(EoS_Change)
  INTEGER*4 GRHydro_MaxNumConstrainedVars
  integer, parameter :: cctki_use_GRHydro_MaxNumConstrainedVars = kind(GRHydro_MaxNumConstrainedVars)
  INTEGER*4 GRHydro_MaxNumEvolvedVars
  integer, parameter :: cctki_use_GRHydro_MaxNumEvolvedVars = kind(GRHydro_MaxNumEvolvedVars)
  INTEGER*4 GRHydro_MaxNumEvolvedVarsSlow
  integer, parameter :: cctki_use_GRHydro_MaxNumEvolvedVarsSlow = kind(GRHydro_MaxNumEvolvedVarsSlow)
  INTEGER*4 GRHydro_MaxNumSandRVars
  integer, parameter :: cctki_use_GRHydro_MaxNumSandRVars = kind(GRHydro_MaxNumSandRVars)
  INTEGER*4 GRHydro_NaN_verbose
  integer, parameter :: cctki_use_GRHydro_NaN_verbose = kind(GRHydro_NaN_verbose)
  INTEGER*4 GRHydro_c2p_reset_eps_tau_hot_eos
  integer, parameter :: cctki_use_GRHydro_c2p_reset_eps_tau_hot_eos = kind(GRHydro_c2p_reset_eps_tau_hot_eos)
  INTEGER*4 GRHydro_c2p_warn_from_reflevel
  integer, parameter :: cctki_use_GRHydro_c2p_warn_from_reflevel = kind(GRHydro_c2p_warn_from_reflevel)
  INTEGER*4 GRHydro_c2p_warnlevel
  integer, parameter :: cctki_use_GRHydro_c2p_warnlevel = kind(GRHydro_c2p_warnlevel)
  INTEGER*4 GRHydro_countmax
  integer, parameter :: cctki_use_GRHydro_countmax = kind(GRHydro_countmax)
  INTEGER*4 GRHydro_countmin
  integer, parameter :: cctki_use_GRHydro_countmin = kind(GRHydro_countmin)
  INTEGER*4 GRHydro_enable_internal_excision
  integer, parameter :: cctki_use_GRHydro_enable_internal_excision = kind(GRHydro_enable_internal_excision)
  INTEGER*4 GRHydro_eos_hot_eps_fix
  integer, parameter :: cctki_use_GRHydro_eos_hot_eps_fix = kind(GRHydro_eos_hot_eps_fix)
  INTEGER*4 GRHydro_eos_hot_prim2con_warn
  integer, parameter :: cctki_use_GRHydro_eos_hot_prim2con_warn = kind(GRHydro_eos_hot_prim2con_warn)
  INTEGER*4 GRHydro_hydro_excision
  integer, parameter :: cctki_use_GRHydro_hydro_excision = kind(GRHydro_hydro_excision)
  INTEGER*4 GRHydro_oppm_reflevel
  integer, parameter :: cctki_use_GRHydro_oppm_reflevel = kind(GRHydro_oppm_reflevel)
  INTEGER*4 GRHydro_polish
  integer, parameter :: cctki_use_GRHydro_polish = kind(GRHydro_polish)
  INTEGER*4 GRHydro_stencil
  integer, parameter :: cctki_use_GRHydro_stencil = kind(GRHydro_stencil)
  INTEGER*4 WENO_order
  integer, parameter :: cctki_use_WENO_order = kind(WENO_order)
  INTEGER*4 apply_H_viscosity
  integer, parameter :: cctki_use_apply_H_viscosity = kind(apply_H_viscosity)
  INTEGER*4 c2p_reset_pressure
  integer, parameter :: cctki_use_c2p_reset_pressure = kind(c2p_reset_pressure)
  INTEGER*4 c2p_resort_to_bisection
  integer, parameter :: cctki_use_c2p_resort_to_bisection = kind(c2p_resort_to_bisection)
  INTEGER*4 calculate_bcom
  integer, parameter :: cctki_use_calculate_bcom = kind(calculate_bcom)
  INTEGER*4 check_for_trivial_rp
  integer, parameter :: cctki_use_check_for_trivial_rp = kind(check_for_trivial_rp)
  INTEGER*4 clean_divergence
  integer, parameter :: cctki_use_clean_divergence = kind(clean_divergence)
  INTEGER*4 con2prim_oct_hack
  integer, parameter :: cctki_use_con2prim_oct_hack = kind(con2prim_oct_hack)
  INTEGER*4 decouple_normal_Bfield
  integer, parameter :: cctki_use_decouple_normal_Bfield = kind(decouple_normal_Bfield)
  INTEGER*4 eno_order
  integer, parameter :: cctki_use_eno_order = kind(eno_order)
  INTEGER*4 evolve_tracer
  integer, parameter :: cctki_use_evolve_tracer = kind(evolve_tracer)
  INTEGER*4 mp5_adaptive_eps
  integer, parameter :: cctki_use_mp5_adaptive_eps = kind(mp5_adaptive_eps)
  INTEGER*4 number_of_arrays
  integer, parameter :: cctki_use_number_of_arrays = kind(number_of_arrays)
  INTEGER*4 number_of_particles
  integer, parameter :: cctki_use_number_of_particles = kind(number_of_particles)
  INTEGER*4 number_of_tracers
  integer, parameter :: cctki_use_number_of_tracers = kind(number_of_tracers)
  INTEGER*4 particle_interpolation_order
  integer, parameter :: cctki_use_particle_interpolation_order = kind(particle_interpolation_order)
  INTEGER*4 ppm_detect
  integer, parameter :: cctki_use_ppm_detect = kind(ppm_detect)
  INTEGER*4 ppm_mppm
  integer, parameter :: cctki_use_ppm_mppm = kind(ppm_mppm)
  INTEGER*4 ppm_mppm_debug_eigenvalues
  integer, parameter :: cctki_use_ppm_mppm_debug_eigenvalues = kind(ppm_mppm_debug_eigenvalues)
  INTEGER*4 reconstruct_Wv
  integer, parameter :: cctki_use_reconstruct_Wv = kind(reconstruct_Wv)
  INTEGER*4 reconstruct_temper
  integer, parameter :: cctki_use_reconstruct_temper = kind(reconstruct_temper)
  INTEGER*4 set_trivial_rp_grid_function
  integer, parameter :: cctki_use_set_trivial_rp_grid_function = kind(set_trivial_rp_grid_function)
  INTEGER*4 sources_spatial_order
  integer, parameter :: cctki_use_sources_spatial_order = kind(sources_spatial_order)
  INTEGER*4 sync_conserved_only
  integer, parameter :: cctki_use_sync_conserved_only = kind(sync_conserved_only)
  INTEGER*4 track_divB
  integer, parameter :: cctki_use_track_divB = kind(track_divB)
  INTEGER*4 transport_constraints
  integer, parameter :: cctki_use_transport_constraints = kind(transport_constraints)
  INTEGER*4 use_MoL_slow_multirate_sector
  integer, parameter :: cctki_use_use_MoL_slow_multirate_sector = kind(use_MoL_slow_multirate_sector)
  INTEGER*4 use_enhanced_ppm
  integer, parameter :: cctki_use_use_enhanced_ppm = kind(use_enhanced_ppm)
  INTEGER*4 use_min_tracer
  integer, parameter :: cctki_use_use_min_tracer = kind(use_min_tracer)
  INTEGER*4 use_optimized_ppm
  integer, parameter :: cctki_use_use_optimized_ppm = kind(use_optimized_ppm)
  INTEGER*4 use_weighted_fluxes
  integer, parameter :: cctki_use_use_weighted_fluxes = kind(use_weighted_fluxes)
  INTEGER*4 weno_adaptive_epsilon
  integer, parameter :: cctki_use_weno_adaptive_epsilon = kind(weno_adaptive_epsilon)
  INTEGER*4 wk_atmosphere
  integer, parameter :: cctki_use_wk_atmosphere = kind(wk_atmosphere)
  COMMON /GRHydrorest/GRHydro_Y_e_max, GRHydro_Y_e_min, GRHydro_atmo_tolerance, GRHydro_del_ptol, GRHydro_eos_rf_prec, GRHydro_eps_&
  &min, GRHydro_hot_atmo_Y_e, GRHydro_hot_atmo_temp, GRHydro_lorentz_overshoot_cutoff, GRHydro_max_temp, GRHydro_perc_ptol, GRHydro&
  &_rho_central, Tmunu_damping_radius_max, Tmunu_damping_radius_min, atmo_falloff_power, atmo_falloff_radius, atmo_tolerance_power,&
  & atmo_tolerance_radius, c2p_reset_pressure_to_value, comoving_factor, comoving_tanh_factor, comoving_tanh_offset, enhanced_ppm_C&
  &2, enhanced_ppm_C3, initial_Gamma, initial_atmosphere_factor, initial_k, initial_rho_abs_min, initial_rho_rel_min, kap_dc, max_m&
  &agnetic_to_gas_pressure_ratio, min_tracer, mp5_alpha, mp5_eps, myfloor, ppm_epsilon, ppm_epsilon_shock, ppm_eta1, ppm_eta2, ppm_&
  &k0, ppm_omega1, ppm_omega2, ppm_omega_tracer, ppm_small, rho_abs_min, rho_abs_min_after_recovery, rho_rel_min, setcharmax, setch&
  &armin, sqrtdet_thr, tau_rel_min, weno_eps, Avec_gauge, EoS_Change_type, GRHydro_c2p_failed_action, GRHydro_eos_table, GRHydro_eo&
  &s_type, HLLE_type, bound, comoving_attenuate, comoving_v_method, gradient_method, left_eigenvectors, method_type, numerical_visc&
  &osity, particle_interpolator, ppm_flatten, psidcspeed, recon_method, recon_vars, riemann_solver, tvd_limiter, use_evolution_mask&
  &, Check_Rho_Minimum, EoS_Change, GRHydro_MaxNumConstrainedVars, GRHydro_MaxNumEvolvedVars, GRHydro_MaxNumEvolvedVarsSlow, GRHydr&
  &o_MaxNumSandRVars, GRHydro_NaN_verbose, GRHydro_c2p_reset_eps_tau_hot_eos, GRHydro_c2p_warn_from_reflevel, GRHydro_c2p_warnlevel&
  &, GRHydro_countmax, GRHydro_countmin, GRHydro_enable_internal_excision, GRHydro_eos_hot_eps_fix, GRHydro_eos_hot_prim2con_warn, &
  &GRHydro_hydro_excision, GRHydro_oppm_reflevel, GRHydro_polish, GRHydro_stencil, WENO_order, apply_H_viscosity, c2p_reset_pressur&
  &e, c2p_resort_to_bisection, calculate_bcom, check_for_trivial_rp, clean_divergence, con2prim_oct_hack, decouple_normal_Bfield, e&
  &no_order, evolve_tracer, mp5_adaptive_eps, number_of_arrays, number_of_particles, number_of_tracers, particle_interpolation_orde&
  &r, ppm_detect, ppm_mppm, ppm_mppm_debug_eigenvalues, reconstruct_Wv, reconstruct_temper, set_trivial_rp_grid_function, sources_s&
  &patial_order, sync_conserved_only, track_divB, transport_constraints, use_MoL_slow_multirate_sector, use_enhanced_ppm, use_min_t&
  &racer, use_optimized_ppm, use_weighted_fluxes, weno_adaptive_epsilon, wk_atmosphere
  INTEGER*4 constrain_to_1D
  integer, parameter :: cctki_use_constrain_to_1D = kind(constrain_to_1D)
  INTEGER*4 use_cxx_code
  integer, parameter :: cctki_use_use_cxx_code = kind(use_cxx_code)
  INTEGER*4 verbose
  integer, parameter :: cctki_use_verbose = kind(verbose)
  COMMON /GRHydropriv/constrain_to_1D, use_cxx_code, verbose
  integer*8 CCTKH0
  integer, parameter :: cctki_use_CCTKH0 = kind(CCTKH0)
  integer*8 CCTKH1
  integer, parameter :: cctki_use_CCTKH1 = kind(CCTKH1)
  integer*8 CCTKH2
  integer, parameter :: cctki_use_CCTKH2 = kind(CCTKH2)
  integer*8 CCTKH3
  integer, parameter :: cctki_use_CCTKH3 = kind(CCTKH3)
  integer*8 CCTKH4
  integer, parameter :: cctki_use_CCTKH4 = kind(CCTKH4)
  integer*8 CCTKH5
  integer, parameter :: cctki_use_CCTKH5 = kind(CCTKH5)
  integer*8 CCTKH6
  integer, parameter :: cctki_use_CCTKH6 = kind(CCTKH6)
  integer*8 CCTKH7
  integer, parameter :: cctki_use_CCTKH7 = kind(CCTKH7)
  integer*8 initial_shift
  integer, parameter :: cctki_use_initial_shift = kind(initial_shift)
  integer*8 CCTKH8
  integer, parameter :: cctki_use_CCTKH8 = kind(CCTKH8)
  integer*8 CCTKH9
  integer, parameter :: cctki_use_CCTKH9 = kind(CCTKH9)
  integer*8 CCTKH11
  integer, parameter :: cctki_use_CCTKH11 = kind(CCTKH11)
  integer*8 metric_type
  integer, parameter :: cctki_use_metric_type = kind(metric_type)
  integer*8 shift_evolution_method
  integer, parameter :: cctki_use_shift_evolution_method = kind(shift_evolution_method)
  integer*8 CCTKH13
  integer, parameter :: cctki_use_CCTKH13 = kind(CCTKH13)
  INTEGER*4 CCTKH10
  integer, parameter :: cctki_use_CCTKH10 = kind(CCTKH10)
  INTEGER*4 CCTKH12
  integer, parameter :: cctki_use_CCTKH12 = kind(CCTKH12)
  INTEGER*4 CCTKH14
  integer, parameter :: cctki_use_CCTKH14 = kind(CCTKH14)
  COMMON /ADMBASErest/CCTKH0, CCTKH1, CCTKH2, CCTKH3, CCTKH4, CCTKH5, CCTKH6, CCTKH7, initial_shift, CCTKH8, CCTKH9, CCTKH11, metri&
  &c_type, shift_evolution_method, CCTKH13, CCTKH10, CCTKH12, CCTKH14
  REAL*8 CCTKH15
  integer, parameter :: cctki_use_CCTKH15 = kind(CCTKH15)
  REAL*8 CCTKH25
  integer, parameter :: cctki_use_CCTKH25 = kind(CCTKH25)
  REAL*8 CCTKH26
  integer, parameter :: cctki_use_CCTKH26 = kind(CCTKH26)
  REAL*8 CCTKH27 (10)
  integer, parameter :: cctki_use_CCTKH27 = kind(CCTKH27)
  REAL*8 CCTKH28
  integer, parameter :: cctki_use_CCTKH28 = kind(CCTKH28)
  REAL*8 CCTKH29
  integer, parameter :: cctki_use_CCTKH29 = kind(CCTKH29)
  REAL*8 CCTKH30
  integer, parameter :: cctki_use_CCTKH30 = kind(CCTKH30)
  REAL*8 CCTKH31
  integer, parameter :: cctki_use_CCTKH31 = kind(CCTKH31)
  REAL*8 CCTKH32
  integer, parameter :: cctki_use_CCTKH32 = kind(CCTKH32)
  REAL*8 CCTKH33 (9)
  integer, parameter :: cctki_use_CCTKH33 = kind(CCTKH33)
  REAL*8 CCTKH34
  integer, parameter :: cctki_use_CCTKH34 = kind(CCTKH34)
  REAL*8 CCTKH38
  integer, parameter :: cctki_use_CCTKH38 = kind(CCTKH38)
  REAL*8 CCTKH39
  integer, parameter :: cctki_use_CCTKH39 = kind(CCTKH39)
  REAL*8 poly_k
  integer, parameter :: cctki_use_poly_k = kind(poly_k)
  integer*8 CCTKH17
  integer, parameter :: cctki_use_CCTKH17 = kind(CCTKH17)
  integer*8 CCTKH20
  integer, parameter :: cctki_use_CCTKH20 = kind(CCTKH20)
  integer*8 CCTKH24
  integer, parameter :: cctki_use_CCTKH24 = kind(CCTKH24)
  integer*8 CCTKH37
  integer, parameter :: cctki_use_CCTKH37 = kind(CCTKH37)
  INTEGER*4 CCTKH16
  integer, parameter :: cctki_use_CCTKH16 = kind(CCTKH16)
  INTEGER*4 CCTKH18
  integer, parameter :: cctki_use_CCTKH18 = kind(CCTKH18)
  INTEGER*4 CCTKH19
  integer, parameter :: cctki_use_CCTKH19 = kind(CCTKH19)
  INTEGER*4 CCTKH21
  integer, parameter :: cctki_use_CCTKH21 = kind(CCTKH21)
  INTEGER*4 CCTKH22
  integer, parameter :: cctki_use_CCTKH22 = kind(CCTKH22)
  INTEGER*4 CCTKH23
  integer, parameter :: cctki_use_CCTKH23 = kind(CCTKH23)
  INTEGER*4 CCTKH35
  integer, parameter :: cctki_use_CCTKH35 = kind(CCTKH35)
  INTEGER*4 CCTKH36
  integer, parameter :: cctki_use_CCTKH36 = kind(CCTKH36)
  INTEGER*4 CCTKH40
  integer, parameter :: cctki_use_CCTKH40 = kind(CCTKH40)
  INTEGER*4 CCTKH41
  integer, parameter :: cctki_use_CCTKH41 = kind(CCTKH41)
  COMMON /EOS_OMNIrest/CCTKH15, CCTKH25, CCTKH26, CCTKH27, CCTKH28, CCTKH29, CCTKH30, CCTKH31, CCTKH32, CCTKH33, CCTKH34, CCTKH38, &
  &CCTKH39, poly_k, CCTKH17, CCTKH20, CCTKH24, CCTKH37, CCTKH16, CCTKH18, CCTKH19, CCTKH21, CCTKH22, CCTKH23, CCTKH35, CCTKH36, CCT&
  &KH40, CCTKH41
  integer*8 CCTKH42
  integer, parameter :: cctki_use_CCTKH42 = kind(CCTKH42)
  integer*8 Bvec_evolution_method
  integer, parameter :: cctki_use_Bvec_evolution_method = kind(Bvec_evolution_method)
  integer*8 Y_e_evolution_method
  integer, parameter :: cctki_use_Y_e_evolution_method = kind(Y_e_evolution_method)
  integer*8 entropy_evolution_method
  integer, parameter :: cctki_use_entropy_evolution_method = kind(entropy_evolution_method)
  integer*8 evolution_method
  integer, parameter :: cctki_use_evolution_method = kind(evolution_method)
  integer*8 CCTKH43
  integer, parameter :: cctki_use_CCTKH43 = kind(CCTKH43)
  integer*8 CCTKH44
  integer, parameter :: cctki_use_CCTKH44 = kind(CCTKH44)
  integer*8 CCTKH45
  integer, parameter :: cctki_use_CCTKH45 = kind(CCTKH45)
  integer*8 initial_Bvec
  integer, parameter :: cctki_use_initial_Bvec = kind(initial_Bvec)
  integer*8 CCTKH46
  integer, parameter :: cctki_use_CCTKH46 = kind(CCTKH46)
  integer*8 CCTKH47
  integer, parameter :: cctki_use_CCTKH47 = kind(CCTKH47)
  integer*8 CCTKH48
  integer, parameter :: cctki_use_CCTKH48 = kind(CCTKH48)
  integer*8 CCTKH49
  integer, parameter :: cctki_use_CCTKH49 = kind(CCTKH49)
  integer*8 prolongation_type
  integer, parameter :: cctki_use_prolongation_type = kind(prolongation_type)
  integer*8 temperature_evolution_method
  integer, parameter :: cctki_use_temperature_evolution_method = kind(temperature_evolution_method)
  INTEGER*4 hydro_excision
  integer, parameter :: cctki_use_hydro_excision = kind(hydro_excision)
  INTEGER*4 timelevels
  integer, parameter :: cctki_use_timelevels = kind(timelevels)
  COMMON /HYDROBASErest/CCTKH42, Bvec_evolution_method, Y_e_evolution_method, entropy_evolution_method, evolution_method, CCTKH43, &
  &CCTKH44, CCTKH45, initial_Bvec, CCTKH46, CCTKH47, CCTKH48, CCTKH49, prolongation_type, temperature_evolution_method, hydro_excis&
  &ion, timelevels
  INTEGER*4 MoL_Max_Evolved_Array_Size
  integer, parameter :: cctki_use_MoL_Max_Evolved_Array_Size = kind(MoL_Max_Evolved_Array_Size)
  INTEGER*4 CCTKH50
  integer, parameter :: cctki_use_CCTKH50 = kind(CCTKH50)
  INTEGER*4 MoL_Num_ArrayEvolved_Vars
  integer, parameter :: cctki_use_MoL_Num_ArrayEvolved_Vars = kind(MoL_Num_ArrayEvolved_Vars)
  INTEGER*4 CCTKH51
  integer, parameter :: cctki_use_CCTKH51 = kind(CCTKH51)
  INTEGER*4 MoL_Num_Constrained_Vars
  integer, parameter :: cctki_use_MoL_Num_Constrained_Vars = kind(MoL_Num_Constrained_Vars)
  INTEGER*4 MoL_Num_Evolved_Vars
  integer, parameter :: cctki_use_MoL_Num_Evolved_Vars = kind(MoL_Num_Evolved_Vars)
  INTEGER*4 MoL_Num_Evolved_Vars_Slow
  integer, parameter :: cctki_use_MoL_Num_Evolved_Vars_Slow = kind(MoL_Num_Evolved_Vars_Slow)
  INTEGER*4 MoL_Num_SaveAndRestore_Vars
  integer, parameter :: cctki_use_MoL_Num_SaveAndRestore_Vars = kind(MoL_Num_SaveAndRestore_Vars)
  INTEGER*4 CCTKH52
  integer, parameter :: cctki_use_CCTKH52 = kind(CCTKH52)
  COMMON /METHODOFLINESrest/MoL_Max_Evolved_Array_Size, CCTKH50, MoL_Num_ArrayEvolved_Vars, CCTKH51, MoL_Num_Constrained_Vars, MoL_&
  &Num_Evolved_Vars, MoL_Num_Evolved_Vars_Slow, MoL_Num_SaveAndRestore_Vars, CCTKH52
  INTEGER*4 use_mask
  integer, parameter :: cctki_use_use_mask = kind(use_mask)
  COMMON /SPACEMASKrest/use_mask
  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
  interface
  INTEGER*4 function Boundary_SelectGroupForBC (GH, faces, boundary_width, table_handle, group_name, bc_name)
  implicit none
  integer*8 GH
  INTEGER*4 faces
  INTEGER*4 boundary_width
  INTEGER*4 table_handle
  character(*) group_name
  character(*) bc_name
  end function Boundary_SelectGroupForBC
  end interface
  interface
  INTEGER*4 function Boundary_SelectVarForBC (GH, faces, boundary_width, table_handle, var_name, bc_name)
  implicit none
  integer*8 GH
  INTEGER*4 faces
  INTEGER*4 boundary_width
  INTEGER*4 table_handle
  character(*) var_name
  character(*) bc_name
  end function Boundary_SelectVarForBC
  end interface
  interface
  subroutine Con2PrimGen (handle, dens, sx, sy, sz, tau, rho, velx, vely, velz, epsilon, pressure, w_lorentz, uxx, uxy, uxz, uyy, u&
  &yz, uzz, det, x, y, z, r, epsnegative, GRHydro_rho_min, pmin, epsmin, GRHydro_reflevel, retval)
  implicit none
  INTEGER*4 handle
  REAL*8 dens
  REAL*8 sx
  REAL*8 sy
  REAL*8 sz
  REAL*8 tau
  REAL*8 rho
  REAL*8 velx
  REAL*8 vely
  REAL*8 velz
  REAL*8 epsilon
  REAL*8 pressure
  REAL*8 w_lorentz
  REAL*8 uxx
  REAL*8 uxy
  REAL*8 uxz
  REAL*8 uyy
  REAL*8 uyz
  REAL*8 uzz
  REAL*8 det
  REAL*8 x
  REAL*8 y
  REAL*8 z
  REAL*8 r
  INTEGER*4 epsnegative
  REAL*8 GRHydro_rho_min
  REAL*8 pmin
  REAL*8 epsmin
  INTEGER*4 GRHydro_reflevel
  REAL*8 retval
  end subroutine Con2PrimGen
  end interface
  interface
  subroutine Con2PrimGenM (handle, keytemp, prec, gamma_eos, dens, sx, sy, sz, tau, Bconsx, Bconsy, Bconsz, y_e, temp, rho, velx, v&
  &ely, velz, epsilon, pressure, Bvecx, Bvecy, Bvecz, bvecsq, w_lorentz, gxx, gxy, gxz, gyy, gyz, gzz, uxx, uxy, uxz, uyy, uyz, uzz&
  &, det, epsnegative, retval)
  implicit none
  INTEGER*4 handle
  INTEGER*4 keytemp
  REAL*8 prec
  REAL*8 gamma_eos
  REAL*8 dens
  REAL*8 sx
  REAL*8 sy
  REAL*8 sz
  REAL*8 tau
  REAL*8 Bconsx
  REAL*8 Bconsy
  REAL*8 Bconsz
  REAL*8 y_e
  REAL*8 temp
  REAL*8 rho
  REAL*8 velx
  REAL*8 vely
  REAL*8 velz
  REAL*8 epsilon
  REAL*8 pressure
  REAL*8 Bvecx
  REAL*8 Bvecy
  REAL*8 Bvecz
  REAL*8 bvecsq
  REAL*8 w_lorentz
  REAL*8 gxx
  REAL*8 gxy
  REAL*8 gxz
  REAL*8 gyy
  REAL*8 gyz
  REAL*8 gzz
  REAL*8 uxx
  REAL*8 uxy
  REAL*8 uxz
  REAL*8 uyy
  REAL*8 uyz
  REAL*8 uzz
  REAL*8 det
  INTEGER*4 epsnegative
  REAL*8 retval
  end subroutine Con2PrimGenM
  end interface
  interface
  subroutine Con2PrimGenMee (handle, keytemp, prec, gamma_eos, dens, sx, sy, sz, tau, Bconsx, Bconsy, Bconsz, entropycons, y_e, tem&
  &p, rho, velx, vely, velz, epsilon, pressure, Bvecx, Bvecy, Bvecz, Bvecsq, w_lorentz, gxx, gxy, gxz, gyy, gyz, gzz, uxx, uxy, uxz&
  &, uyy, uyz, uzz, det, epsnegative, retval)
  implicit none
  INTEGER*4 handle
  INTEGER*4 keytemp
  REAL*8 prec
  REAL*8 gamma_eos
  REAL*8 dens
  REAL*8 sx
  REAL*8 sy
  REAL*8 sz
  REAL*8 tau
  REAL*8 Bconsx
  REAL*8 Bconsy
  REAL*8 Bconsz
  REAL*8 entropycons
  REAL*8 y_e
  REAL*8 temp
  REAL*8 rho
  REAL*8 velx
  REAL*8 vely
  REAL*8 velz
  REAL*8 epsilon
  REAL*8 pressure
  REAL*8 Bvecx
  REAL*8 Bvecy
  REAL*8 Bvecz
  REAL*8 Bvecsq
  REAL*8 w_lorentz
  REAL*8 gxx
  REAL*8 gxy
  REAL*8 gxz
  REAL*8 gyy
  REAL*8 gyz
  REAL*8 gzz
  REAL*8 uxx
  REAL*8 uxy
  REAL*8 uxz
  REAL*8 uyy
  REAL*8 uyz
  REAL*8 uzz
  REAL*8 det
  INTEGER*4 epsnegative
  REAL*8 retval
  end subroutine Con2PrimGenMee
  end interface
  interface
  subroutine Con2PrimPoly (handle, dens, sx, sy, sz, tau, rho, velx, vely, velz, epsilon, press, w_lorentz, uxx, uxy, uxz, uyy, uyz&
  &, uzz, det, x, y, z, r, rho_min, GRHydro_reflevel, GRHydro_C2P_failed)
  implicit none
  INTEGER*4 handle
  REAL*8 dens
  REAL*8 sx
  REAL*8 sy
  REAL*8 sz
  REAL*8 tau
  REAL*8 rho
  REAL*8 velx
  REAL*8 vely
  REAL*8 velz
  REAL*8 epsilon
  REAL*8 press
  REAL*8 w_lorentz
  REAL*8 uxx
  REAL*8 uxy
  REAL*8 uxz
  REAL*8 uyy
  REAL*8 uyz
  REAL*8 uzz
  REAL*8 det
  REAL*8 x
  REAL*8 y
  REAL*8 z
  REAL*8 r
  REAL*8 rho_min
  INTEGER*4 GRHydro_reflevel
  REAL*8 GRHydro_C2P_failed
  end subroutine Con2PrimPoly
  end interface
  interface
  subroutine Con2PrimPolyM (handle, gamma_eos, dens, sx, sy, sz, sc, Bconsx, Bconsy, Bconsz, rho, velx, vely, velz, epsilon, pressu&
  &re, Bvecx, Bvecy, Bvecz, Bvecsq, w_lorentz, gxx, gxy, gxz, gyy, gyz, gzz, uxx, uxy, uxz, uyy, uyz, uzz, det, epsnegative, retval)
  implicit none
  INTEGER*4 handle
  REAL*8 gamma_eos
  REAL*8 dens
  REAL*8 sx
  REAL*8 sy
  REAL*8 sz
  REAL*8 sc
  REAL*8 Bconsx
  REAL*8 Bconsy
  REAL*8 Bconsz
  REAL*8 rho
  REAL*8 velx
  REAL*8 vely
  REAL*8 velz
  REAL*8 epsilon
  REAL*8 pressure
  REAL*8 Bvecx
  REAL*8 Bvecy
  REAL*8 Bvecz
  REAL*8 Bvecsq
  REAL*8 w_lorentz
  REAL*8 gxx
  REAL*8 gxy
  REAL*8 gxz
  REAL*8 gyy
  REAL*8 gyz
  REAL*8 gzz
  REAL*8 uxx
  REAL*8 uxy
  REAL*8 uxz
  REAL*8 uyy
  REAL*8 uyz
  REAL*8 uzz
  REAL*8 det
  INTEGER*4 epsnegative
  REAL*8 retval
  end subroutine Con2PrimPolyM
  end interface
  interface
  subroutine EOS_Omni_DPressByDEps (eoskey, havetemp, rf_precision, npoints, rho, eps, temp, ye, dpdepsrho, keyerr, anyerr)
  implicit none
  INTEGER*4 eoskey
  INTEGER*4 havetemp
  REAL*8 rf_precision
  INTEGER*4 npoints
  REAL*8 rho(*)
  REAL*8 eps(*)
  REAL*8 temp(*)
  REAL*8 ye(*)
  REAL*8 dpdepsrho(*)
  INTEGER*4 keyerr(*)
  INTEGER*4 anyerr
  end subroutine EOS_Omni_DPressByDEps
  end interface
  interface
  subroutine EOS_Omni_DPressByDRho (eoskey, havetemp, rf_precision, npoints, rho, eps, temp, ye, dpdrhoeps, keyerr, anyerr)
  implicit none
  INTEGER*4 eoskey
  INTEGER*4 havetemp
  REAL*8 rf_precision
  INTEGER*4 npoints
  REAL*8 rho(*)
  REAL*8 eps(*)
  REAL*8 temp(*)
  REAL*8 ye(*)
  REAL*8 dpdrhoeps(*)
  INTEGER*4 keyerr(*)
  INTEGER*4 anyerr
  end subroutine EOS_Omni_DPressByDRho
  end interface
  interface
  subroutine EOS_Omni_EpsFromPress (eoskey, havetemp, rf_precision, npoints, rho, eps, temp, ye, press, xeps, keyerr, anyerr)
  implicit none
  INTEGER*4 eoskey
  INTEGER*4 havetemp
  REAL*8 rf_precision
  INTEGER*4 npoints
  REAL*8 rho(*)
  REAL*8 eps(*)
  REAL*8 temp(*)
  REAL*8 ye(*)
  REAL*8 press(*)
  REAL*8 xeps(*)
  INTEGER*4 keyerr(*)
  INTEGER*4 anyerr
  end subroutine EOS_Omni_EpsFromPress
  end interface
  interface
  INTEGER*4 function EOS_Omni_GetHandle (name)
  implicit none
  character(*) name
  end function EOS_Omni_GetHandle
  end interface
  interface
  subroutine EOS_Omni_cs2 (eoskey, havetemp, rf_precision, npoints, rho, eps, temp, ye, cs2, keyerr, anyerr)
  implicit none
  INTEGER*4 eoskey
  INTEGER*4 havetemp
  REAL*8 rf_precision
  INTEGER*4 npoints
  REAL*8 rho(*)
  REAL*8 eps(*)
  REAL*8 temp(*)
  REAL*8 ye(*)
  REAL*8 cs2(*)
  INTEGER*4 keyerr(*)
  INTEGER*4 anyerr
  end subroutine EOS_Omni_cs2
  end interface
  interface
  subroutine EOS_Omni_dpderho_dpdrhoe (eoskey, havetemp, rf_precision, npoints, rho, eps, temp, ye, dpderho, dpdrhoe, keyerr, anyer&
  &r)
  implicit none
  INTEGER*4 eoskey
  INTEGER*4 havetemp
  REAL*8 rf_precision
  INTEGER*4 npoints
  REAL*8 rho(*)
  REAL*8 eps(*)
  REAL*8 temp(*)
  REAL*8 ye(*)
  REAL*8 dpderho(*)
  REAL*8 dpdrhoe(*)
  INTEGER*4 keyerr(*)
  INTEGER*4 anyerr
  end subroutine EOS_Omni_dpderho_dpdrhoe
  end interface
  interface
  subroutine EOS_Omni_press (eoskey, havetemp, rf_precision, npoints, rho, eps, temp, ye, press, keyerr, anyerr)
  implicit none
  INTEGER*4 eoskey
  INTEGER*4 havetemp
  REAL*8 rf_precision
  INTEGER*4 npoints
  REAL*8 rho(*)
  REAL*8 eps(*)
  REAL*8 temp(*)
  REAL*8 ye(*)
  REAL*8 press(*)
  INTEGER*4 keyerr(*)
  INTEGER*4 anyerr
  end subroutine EOS_Omni_press
  end interface
  interface
  subroutine EOS_Omni_pressOMP (eoskey, havetemp, rf_precision, npoints, rho, eps, temp, ye, press, keyerr, anyerr)
  implicit none
  INTEGER*4 eoskey
  INTEGER*4 havetemp
  REAL*8 rf_precision
  INTEGER*4 npoints
  REAL*8 rho(*)
  REAL*8 eps(*)
  REAL*8 temp(*)
  REAL*8 ye(*)
  REAL*8 press(*)
  INTEGER*4 keyerr(*)
  INTEGER*4 anyerr
  end subroutine EOS_Omni_pressOMP
  end interface
  interface
  subroutine EOS_Omni_press_cs2 (eoskey, havetemp, rf_precision, npoints, rho, eps, temp, ye, press, cs2, keyerr, anyerr)
  implicit none
  INTEGER*4 eoskey
  INTEGER*4 havetemp
  REAL*8 rf_precision
  INTEGER*4 npoints
  REAL*8 rho(*)
  REAL*8 eps(*)
  REAL*8 temp(*)
  REAL*8 ye(*)
  REAL*8 press(*)
  REAL*8 cs2(*)
  INTEGER*4 keyerr(*)
  INTEGER*4 anyerr
  end subroutine EOS_Omni_press_cs2
  end interface
  interface
  INTEGER*4 function MoLRegisterConstrained (ConstrainedIndex)
  implicit none
  INTEGER*4 ConstrainedIndex
  end function MoLRegisterConstrained
  end interface
  interface
  INTEGER*4 function MoLRegisterConstrainedGroup (ConstrainedIndex)
  implicit none
  INTEGER*4 ConstrainedIndex
  end function MoLRegisterConstrainedGroup
  end interface
  interface
  INTEGER*4 function MoLRegisterEvolved (EvolvedIndex, RHSIndex)
  implicit none
  INTEGER*4 EvolvedIndex
  INTEGER*4 RHSIndex
  end function MoLRegisterEvolved
  end interface
  interface
  INTEGER*4 function MoLRegisterEvolvedGroup (EvolvedIndex, RHSIndex)
  implicit none
  INTEGER*4 EvolvedIndex
  INTEGER*4 RHSIndex
  end function MoLRegisterEvolvedGroup
  end interface
  interface
  INTEGER*4 function MoLRegisterEvolvedGroupSlow (EvolvedIndex, RHSIndexSlow)
  implicit none
  INTEGER*4 EvolvedIndex
  INTEGER*4 RHSIndexSlow
  end function MoLRegisterEvolvedGroupSlow
  end interface
  interface
  INTEGER*4 function MoLRegisterEvolvedSlow (EvolvedIndex, RHSIndexSlow)
  implicit none
  INTEGER*4 EvolvedIndex
  INTEGER*4 RHSIndexSlow
  end function MoLRegisterEvolvedSlow
  end interface
  interface
  INTEGER*4 function MoLRegisterSaveAndRestoreGroup (SandRIndex)
  implicit none
  INTEGER*4 SandRIndex
  end function MoLRegisterSaveAndRestoreGroup
  end interface
  interface
  subroutine Prim2ConGen (handle, gxx, gxy, gxz, gyy, gyz, gzz, det, dens, sx, sy, sz, tau, rho, velx, vely, velz, epsilon, press, &
  &w_lorentz)
  implicit none
  INTEGER*4 handle
  REAL*8 gxx
  REAL*8 gxy
  REAL*8 gxz
  REAL*8 gyy
  REAL*8 gyz
  REAL*8 gzz
  REAL*8 det
  REAL*8 dens
  REAL*8 sx
  REAL*8 sy
  REAL*8 sz
  REAL*8 tau
  REAL*8 rho
  REAL*8 velx
  REAL*8 vely
  REAL*8 velz
  REAL*8 epsilon
  REAL*8 press
  REAL*8 w_lorentz
  end subroutine Prim2ConGen
  end interface
  interface
  subroutine Prim2ConGenM (handle, gxx, gxy, gxz, gyy, gyz, gzz, det, dens, sx, sy, sz, tau, Bconsx, Bconsy, Bconsz, rho, velx, vel&
  &y, velz, epsilon, press, Bvecx, Bvecy, Bvecz, w_lorentz)
  implicit none
  INTEGER*4 handle
  REAL*8 gxx
  REAL*8 gxy
  REAL*8 gxz
  REAL*8 gyy
  REAL*8 gyz
  REAL*8 gzz
  REAL*8 det
  REAL*8 dens
  REAL*8 sx
  REAL*8 sy
  REAL*8 sz
  REAL*8 tau
  REAL*8 Bconsx
  REAL*8 Bconsy
  REAL*8 Bconsz
  REAL*8 rho
  REAL*8 velx
  REAL*8 vely
  REAL*8 velz
  REAL*8 epsilon
  REAL*8 press
  REAL*8 Bvecx
  REAL*8 Bvecy
  REAL*8 Bvecz
  REAL*8 w_lorentz
  end subroutine Prim2ConGenM
  end interface
  interface
  subroutine Prim2ConGenM_hot (handle, GRHydro_reflevel, i, j, k, x, y, z, gxx, gxy, gxz, gyy, gyz, gzz, det, dens, sx, sy, sz, tau&
  &, Bconsx, Bconsy, Bconsz, rho, velx, vely, velz, epsilon, press, Bvecx, Bvecy, Bvecz, w_lorentz, temperature, Y_e)
  implicit none
  INTEGER*4 handle
  INTEGER*4 GRHydro_reflevel
  INTEGER*4 i
  INTEGER*4 j
  INTEGER*4 k
  REAL*8 x
  REAL*8 y
  REAL*8 z
  REAL*8 gxx
  REAL*8 gxy
  REAL*8 gxz
  REAL*8 gyy
  REAL*8 gyz
  REAL*8 gzz
  REAL*8 det
  REAL*8 dens
  REAL*8 sx
  REAL*8 sy
  REAL*8 sz
  REAL*8 tau
  REAL*8 Bconsx
  REAL*8 Bconsy
  REAL*8 Bconsz
  REAL*8 rho
  REAL*8 velx
  REAL*8 vely
  REAL*8 velz
  REAL*8 epsilon
  REAL*8 press
  REAL*8 Bvecx
  REAL*8 Bvecy
  REAL*8 Bvecz
  REAL*8 w_lorentz
  REAL*8 temperature
  REAL*8 Y_e
  end subroutine Prim2ConGenM_hot
  end interface
  interface
  subroutine Prim2ConPoly (handle, gxx, gxy, gxz, gyy, gyz, gzz, det, dens, sx, sy, sz, tau, rho, velx, vely, velz, epsilon, press,&
  & w_lorentz)
  implicit none
  INTEGER*4 handle
  REAL*8 gxx
  REAL*8 gxy
  REAL*8 gxz
  REAL*8 gyy
  REAL*8 gyz
  REAL*8 gzz
  REAL*8 det
  REAL*8 dens
  REAL*8 sx
  REAL*8 sy
  REAL*8 sz
  REAL*8 tau
  REAL*8 rho
  REAL*8 velx
  REAL*8 vely
  REAL*8 velz
  REAL*8 epsilon
  REAL*8 press
  REAL*8 w_lorentz
  end subroutine Prim2ConPoly
  end interface
  interface
  subroutine Prim2ConPolyM (handle, gxx, gxy, gxz, gyy, gyz, gzz, det, dens, sx, sy, sz, tau, Bconsx, Bconsy, Bconsz, rho, velx, ve&
  &ly, velz, epsilon, press, Bvecx, Bvecy, Bvecz, w_lorentz)
  implicit none
  INTEGER*4 handle
  REAL*8 gxx
  REAL*8 gxy
  REAL*8 gxz
  REAL*8 gyy
  REAL*8 gyz
  REAL*8 gzz
  REAL*8 det
  REAL*8 dens
  REAL*8 sx
  REAL*8 sy
  REAL*8 sz
  REAL*8 tau
  REAL*8 Bconsx
  REAL*8 Bconsy
  REAL*8 Bconsz
  REAL*8 rho
  REAL*8 velx
  REAL*8 vely
  REAL*8 velz
  REAL*8 epsilon
  REAL*8 press
  REAL*8 Bvecx
  REAL*8 Bvecy
  REAL*8 Bvecz
  REAL*8 w_lorentz
  end subroutine Prim2ConPolyM
  end interface
  interface
  subroutine SetDriftCorrectPosition (GH_Pointer, x, y, z)
  implicit none
  integer*8 GH_Pointer
  REAL*8 x
  REAL*8 y
  REAL*8 z
  end subroutine SetDriftCorrectPosition
  end interface
  interface
  subroutine SpatialDet (gxx, gxy, gxz, gyy, gyz, gzz, det)
  implicit none
  REAL*8 gxx
  REAL*8 gxy
  REAL*8 gxz
  REAL*8 gyy
  REAL*8 gyz
  REAL*8 gzz
  REAL*8 det
  end subroutine SpatialDet
  end interface
  interface
  subroutine UpperMet (uxx, uxy, uxz, uyy, uyz, uzz, det, gxx, gxy, gxz, gyy, gyz, gzz)
  implicit none
  REAL*8 uxx
  REAL*8 uxy
  REAL*8 uxz
  REAL*8 uyy
  REAL*8 uyz
  REAL*8 uzz
  REAL*8 det
  REAL*8 gxx
  REAL*8 gxy
  REAL*8 gxz
  REAL*8 gyy
  REAL*8 gyz
  REAL*8 gzz
  end subroutine UpperMet
  end interface
  
  INTEGER*4, parameter :: izero = 0
  integer, parameter :: ik = kind(izero)

  integer :: i, j, k, m
  INTEGER*4 :: keytemp
  REAL*8, dimension(5) :: consp,consm_i,fplus,fminus,lamplus
  REAL*8, dimension(5) :: f1,lamminus
  REAL*8, dimension(5) :: qdiff
  REAL*8 ::  charmin, charmax, charpm,avg_alp,avg_det, etabar
  REAL*8 :: gxxh, gxyh, gxzh, gyyh, gyzh, gzzh, uxxh, uxyh, &
       uxzh, uyyh, uyzh, uzzh, avg_beta, usendh
    
  INTEGER*4 :: type_bits, trivial

  
  REAL*8, parameter :: one = 1d0
  
  
  INTEGER*4 :: GRHydro_UseGeneralCoordinates
  REAL*8, DIMENSION(cctk_ash1,cctk_ash2,cctk_ash3) :: g11, g12, g13, g22, g23, g33
  pointer (pg11,g11), (pg12,g12), (pg13,g13), (pg22,g22), (pg23,g23), (pg33,g33)
  REAL*8, DIMENSION(cctk_ash1,cctk_ash2,cctk_ash3) :: beta1, beta2, beta3
  pointer (pbeta1,beta1), (pbeta2,beta2), (pbeta3,beta3)
  REAL*8, DIMENSION(cctk_ash1,cctk_ash2,cctk_ash3,3) :: vup
  pointer (pvup,vup)
  
  if (GRHydro_UseGeneralCoordinates(cctkGH).ne.0) then
    pg11 = loc(gaa)
    pg12 = loc(gab)
    pg13 = loc(gac)
    pg22 = loc(gbb)
    pg23 = loc(gbc)
    pg33 = loc(gcc)
    pbeta1 = loc(betaa)
    pbeta2 = loc(betab)
    pbeta3 = loc(betac)
    pvup = loc(lvel)
  else
    pg11 = loc(gxx)
    pg12 = loc(gxy)
    pg13 = loc(gxz)
    pg22 = loc(gyy)
    pg23 = loc(gyz)
    pg33 = loc(gzz)
    pbeta1 = loc(betax)
    pbeta2 = loc(betay)
    pbeta3 = loc(betaz)
    pvup = loc(vel)
  end if

  if (flux_direction == 1) then
    call SpaceMask_GetTypeBits(type_bits, "Hydro_RiemannProblemX")
    call SpaceMask_GetStateBits(trivial, "Hydro_RiemannProblemX", &
         &"trivial")
  else if (flux_direction == 2) then
    call SpaceMask_GetTypeBits(type_bits, "Hydro_RiemannProblemY")
    call SpaceMask_GetStateBits(trivial, "Hydro_RiemannProblemY", &
         &"trivial")
  else if (flux_direction == 3) then
    call SpaceMask_GetTypeBits(type_bits, "Hydro_RiemannProblemZ")
    call SpaceMask_GetStateBits(trivial, "Hydro_RiemannProblemZ", &
         &"trivial")
  else
    call CCTK_Error(216,"GRHydro_HLLE.F90","GRHydro","Flux direction not x,y,z")
    STOP
  end if

  if(evolve_temper.eq.1.and.reconstruct_temper.eq.1) then
     keytemp = 1
  else
     keytemp = 0
  endif

  !$OMP PARALLEL DO PRIVATE(k,j,i,f1,lamminus,lamplus,consp,consm_i, &
  !$OMP fplus,fminus,qdiff,avg_beta,avg_alp, &
  !$OMP avg_det,gxxh,gxyh,gxzh,gyyh,gyzh,gzzh, &
  !$OMP uxxh,uxyh,uxzh,uyyh,uyzh,uzzh, &
  !$OMP usendh, charmin, charmax, charpm, &
  !$OMP m,etabar)
  do k = GRHydro_stencil, cctk_lsh(3) - GRHydro_stencil
    do j = GRHydro_stencil, cctk_lsh(2) - GRHydro_stencil
      do i = GRHydro_stencil, cctk_lsh(1) - GRHydro_stencil
        
        f1 = 0.d0
        lamminus = 0.d0
        lamplus = 0.d0
        consp = 0.d0
        consm_i = 0.d0
        fplus = 0.d0
        fminus = 0.d0
        qdiff = 0.d0
        

        
        consp(1)   = densplus(i,j,k) 
        consp(2)   = sxplus(i,j,k)
        consp(3)   = syplus(i,j,k)
        consp(4)   = szplus(i,j,k)
        consp(5)   = tauplus(i,j,k)
        
        consm_i(1) = densminus(i+xoffset,j+yoffset,k+zoffset)
        consm_i(2) = sxminus(i+xoffset,j+yoffset,k+zoffset)
        consm_i(3) = syminus(i+xoffset,j+yoffset,k+zoffset)
        consm_i(4) = szminus(i+xoffset,j+yoffset,k+zoffset)
        consm_i(5) = tauminus(i+xoffset,j+yoffset,k+zoffset) 
          




        if (flux_direction == 1) then
           avg_beta = 0.5d0 * (beta1(i+xoffset,j+yoffset,k+zoffset) + &
               beta1(i,j,k))
        else if (flux_direction == 2) then
           avg_beta = 0.5d0 * (beta2(i+xoffset,j+yoffset,k+zoffset) + &
               beta2(i,j,k))
        else if (flux_direction == 3) then
           avg_beta = 0.5d0 * (beta3(i+xoffset,j+yoffset,k+zoffset) + &
               beta3(i,j,k))
        else
            call CCTK_Error(273,"GRHydro_HLLE.F90","GRHydro","Flux direction not x,y,z")
            STOP
         end if

        avg_alp = 0.5 * (alp(i,j,k) + alp(i+xoffset,j+yoffset,k+zoffset))
        
        gxxh = 0.5d0 * (g11(i+xoffset,j+yoffset,k+zoffset) + g11(i,j,k))
        gxyh = 0.5d0 * (g12(i+xoffset,j+yoffset,k+zoffset) + g12(i,j,k))
        gxzh = 0.5d0 * (g13(i+xoffset,j+yoffset,k+zoffset) + g13(i,j,k))
        gyyh = 0.5d0 * (g22(i+xoffset,j+yoffset,k+zoffset) + g22(i,j,k))
        gyzh = 0.5d0 * (g23(i+xoffset,j+yoffset,k+zoffset) + g23(i,j,k))
        gzzh = 0.5d0 * (g33(i+xoffset,j+yoffset,k+zoffset) + g33(i,j,k))

        avg_det =  (-(gxzh)**2*(             gyyh) + 2.0d0*(gxyh)*(gxzh)*(gyzh) - (gxxh)*(gyzh)**2 - (gxyh)**2*(gzzh)    + (gxxh)*(&
  &             gyyh)*(gzzh))




          
        if ((iand(space_mask(( i),( j),( k)),( type_bits)).eq.( trivial))) then

          if (flux_direction == 1) then
            call num_x_flux(consp(1),consp(2),consp(3),consp(4),consp(5),&
                 f1(1),f1(2),f1(3),&
                 f1(4),f1(5),&
                 velxplus(i,j,k),pressplus(i,j,k),&
                 avg_det,avg_alp,avg_beta)
          else if (flux_direction == 2) then
            call num_x_flux(consp(1),consp(3),consp(4),consp(2),consp(5),&
                 f1(1),f1(3),f1(4),&
                 f1(2),f1(5),&
                 velyplus(i,j,k),pressplus(i,j,k),&
                 avg_det,avg_alp,avg_beta)
          else if (flux_direction == 3) then
            call num_x_flux(consp(1),consp(4),consp(2),consp(3),consp(5),&
                 f1(1),f1(4),f1(2),&
                 f1(3),f1(5),&
                 velzplus(i,j,k),pressplus(i,j,k),&
                 avg_det,avg_alp,avg_beta)
          else
            call CCTK_Error(313,"GRHydro_HLLE.F90","GRHydro","Flux direction not x,y,z")
            STOP
          end if
          
        else 
            
          call UpperMetric(uxxh, uxyh, uxzh, uyyh, uyzh, uzzh, &
               avg_det,gxxh, gxyh, gxzh, &
               gyyh, gyzh, gzzh)
          
          if (flux_direction == 1) then
            usendh = uxxh
          else if (flux_direction == 2) then
            usendh = uyyh
          else if (flux_direction == 3) then
            usendh = uzzh
          else
            call CCTK_Error(330,"GRHydro_HLLE.F90","GRHydro","Flux direction not x,y,z")
            STOP
          end if
          

          
          qdiff(1) = consm_i(1) - consp(1)
          qdiff(2) = consm_i(2) - consp(2)
          qdiff(3) = consm_i(3) - consp(3)
          qdiff(4) = consm_i(4) - consp(4)
          qdiff(5) = consm_i(5) - consp(5)
          

          
          if (flux_direction == 1) then
             if(evolve_temper.ne.1) then
                call eigenvalues(GRHydro_eos_handle,&
                     rhominus(i+xoffset,j+yoffset,k+zoffset),&
                     velxminus(i+xoffset,j+yoffset,k+zoffset),&
                     velyminus(i+xoffset,j+yoffset,k+zoffset),&
                     velzminus(i+xoffset,j+yoffset,k+zoffset),&
                     epsminus(i+xoffset,j+yoffset,k+zoffset),&
                     w_lorentzminus(i+xoffset,j+yoffset,k+zoffset),&
                     lamminus,gxxh,gxyh,gxzh,gyyh,&
                     gyzh,gzzh,&
                     usendh,avg_alp,avg_beta)
                call eigenvalues(GRHydro_eos_handle,rhoplus(i,j,k),&
                     velxplus(i,j,k),velyplus(i,j,k),&
                     velzplus(i,j,k),epsplus(i,j,k),w_lorentzplus(i,j,k),&
                     lamplus,gxxh,gxyh,gxzh,gyyh,&
                     gyzh,gzzh,&
                     usendh,avg_alp,avg_beta)
             else
                call eigenvalues_hot(GRHydro_eos_handle,keytemp,&
                     int(i,ik),int(j,ik),int(k,ik),&
                     rhominus(i+xoffset,j+yoffset,k+zoffset),&
                     velxminus(i+xoffset,j+yoffset,k+zoffset),&
                     velyminus(i+xoffset,j+yoffset,k+zoffset),&
                     velzminus(i+xoffset,j+yoffset,k+zoffset),&
                     epsminus(i+xoffset,j+yoffset,k+zoffset),&
                     tempminus(i+xoffset,j+yoffset,k+zoffset),&
                     y_e_minus(i+xoffset,j+yoffset,k+zoffset),&
                     w_lorentzminus(i+xoffset,j+yoffset,k+zoffset),&
                     lamminus,gxxh,gxyh,gxzh,gyyh,&
                     gyzh,gzzh,&
                     usendh,avg_alp,avg_beta)
                call eigenvalues_hot(GRHydro_eos_handle,keytemp,&
                     int(i,ik),int(j,ik),int(k,ik),&
                     rhoplus(i,j,k),&
                     velxplus(i,j,k),velyplus(i,j,k),&
                     velzplus(i,j,k),epsplus(i,j,k), &
                     tempplus(i,j,k),&
                     y_e_plus(i,j,k),&
                     w_lorentzplus(i,j,k),&
                     lamplus,gxxh,gxyh,gxzh,gyyh,&
                     gyzh,gzzh,&
                     usendh,avg_alp,avg_beta)
             endif
            call num_x_flux(consp(1),consp(2),consp(3),consp(4),consp(5),&
                 fplus(1),fplus(2),fplus(3),fplus(4),&
                 fplus(5),velxplus(i,j,k),pressplus(i,j,k),&
                 avg_det,avg_alp,avg_beta)
            call num_x_flux(consm_i(1),consm_i(2),consm_i(3),&
                 consm_i(4),consm_i(5),fminus(1),fminus(2),fminus(3),&
                 fminus(4), fminus(5),&
                 velxminus(i+xoffset,j+yoffset,k+zoffset),&
                 pressminus(i+xoffset,j+yoffset,k+zoffset),&
                 avg_det,avg_alp,avg_beta)
          else if (flux_direction == 2) then
             if(evolve_temper.ne.1) then
                call eigenvalues(GRHydro_eos_handle,&
                     rhominus(i+xoffset,j+yoffset,k+zoffset),&
                     velyminus(i+xoffset,j+yoffset,k+zoffset),&
                     velzminus(i+xoffset,j+yoffset,k+zoffset),&
                     velxminus(i+xoffset,j+yoffset,k+zoffset),&
                     epsminus(i+xoffset,j+yoffset,k+zoffset),&
                     w_lorentzminus(i+xoffset,j+yoffset,k+zoffset),&
                     lamminus,gyyh,gyzh,gxyh,gzzh,&
                     gxzh,gxxh,&
                     usendh,avg_alp,avg_beta)
                call eigenvalues(GRHydro_eos_handle,rhoplus(i,j,k),&
                     velyplus(i,j,k),velzplus(i,j,k),&
                     velxplus(i,j,k),epsplus(i,j,k),w_lorentzplus(i,j,k),&
                     lamplus,gyyh,gyzh,gxyh,gzzh,&
                     gxzh,gxxh,&
                     usendh,avg_alp,avg_beta)
             else
                call eigenvalues_hot(GRHydro_eos_handle,keytemp,int(i,ik),int(j,ik),int(k,ik),&
                     rhominus(i+xoffset,j+yoffset,k+zoffset),&
                     velyminus(i+xoffset,j+yoffset,k+zoffset),&
                     velzminus(i+xoffset,j+yoffset,k+zoffset),&
                     velxminus(i+xoffset,j+yoffset,k+zoffset),&
                     epsminus(i+xoffset,j+yoffset,k+zoffset),&
                     tempminus(i+xoffset,j+yoffset,k+zoffset),&
                     y_e_minus(i+xoffset,j+yoffset,k+zoffset),&
                     w_lorentzminus(i+xoffset,j+yoffset,k+zoffset),&
                     lamminus,gyyh,gyzh,gxyh,gzzh,&
                     gxzh,gxxh,&
                     usendh,avg_alp,avg_beta)
                call eigenvalues_hot(GRHydro_eos_handle,keytemp,int(i,ik),int(j,ik),int(k,ik),&
                     rhoplus(i,j,k),&
                     velyplus(i,j,k),velzplus(i,j,k),&
                     velxplus(i,j,k),epsplus(i,j,k),&
                     tempplus(i,j,k),y_e_plus(i,j,k),&
                     w_lorentzplus(i,j,k),&
                     lamplus,gyyh,gyzh,gxyh,gzzh,&
                     gxzh,gxxh,&
                     usendh,avg_alp,avg_beta)
             endif
            call num_x_flux(consp(1),consp(3),consp(4),consp(2),consp(5),&
                 fplus(1),fplus(3),fplus(4),fplus(2),&
                 fplus(5),velyplus(i,j,k),pressplus(i,j,k),&
                 avg_det,avg_alp,avg_beta)
            call num_x_flux(consm_i(1),consm_i(3),consm_i(4),&
                 consm_i(2),consm_i(5),fminus(1),fminus(3),fminus(4),&
                 fminus(2), fminus(5),&
                 velyminus(i+xoffset,j+yoffset,k+zoffset),&
                 pressminus(i+xoffset,j+yoffset,k+zoffset),&
                 avg_det,avg_alp,avg_beta)
          else if (flux_direction == 3) then
             if(evolve_temper.ne.1) then
                call eigenvalues(GRHydro_eos_handle,&
                     rhominus(i+xoffset,j+yoffset,k+zoffset),&
                     velzminus(i+xoffset,j+yoffset,k+zoffset),&
                     velxminus(i+xoffset,j+yoffset,k+zoffset),&
                     velyminus(i+xoffset,j+yoffset,k+zoffset),&
                     epsminus(i+xoffset,j+yoffset,k+zoffset),&
                     w_lorentzminus(i+xoffset,j+yoffset,k+zoffset),&
                     lamminus,gzzh,gxzh,gyzh,&
                     gxxh,gxyh,gyyh,&
                     usendh,avg_alp,avg_beta)
                call eigenvalues(GRHydro_eos_handle,rhoplus(i,j,k),&
                     velzplus(i,j,k),velxplus(i,j,k),&
                     velyplus(i,j,k),epsplus(i,j,k),w_lorentzplus(i,j,k),&
                     lamplus,gzzh,gxzh,gyzh,&
                     gxxh,gxyh,gyyh,&
                     usendh,avg_alp,avg_beta)
             else
                call eigenvalues_hot(GRHydro_eos_handle,keytemp,int(i,ik),int(j,ik),int(k,ik),&
                     rhominus(i+xoffset,j+yoffset,k+zoffset),&
                     velzminus(i+xoffset,j+yoffset,k+zoffset),&
                     velxminus(i+xoffset,j+yoffset,k+zoffset),&
                     velyminus(i+xoffset,j+yoffset,k+zoffset),&
                     epsminus(i+xoffset,j+yoffset,k+zoffset),&
                     tempminus(i+xoffset,j+yoffset,k+zoffset),&
                     y_e_minus(i+xoffset,j+yoffset,k+zoffset),&
                     w_lorentzminus(i+xoffset,j+yoffset,k+zoffset),&
                     lamminus,gzzh,gxzh,gyzh,&
                     gxxh,gxyh,gyyh,&
                     usendh,avg_alp,avg_beta)
                call eigenvalues_hot(GRHydro_eos_handle,keytemp,&
                     int(i,ik),int(j,ik),int(k,ik),&
                     rhoplus(i,j,k),&
                     velzplus(i,j,k),velxplus(i,j,k),&
                     velyplus(i,j,k),epsplus(i,j,k),&
                     tempplus(i,j,k),y_e_plus(i,j,k),&
                     w_lorentzplus(i,j,k),&
                     lamplus,gzzh,gxzh,gyzh,&
                     gxxh,gxyh,gyyh,&
                     usendh,avg_alp,avg_beta)
             endif
            call num_x_flux(consp(1),consp(4),consp(2),consp(3),consp(5),&
                 fplus(1),fplus(4),fplus(2),fplus(3),&
                 fplus(5),velzplus(i,j,k),pressplus(i,j,k),avg_det,&
                 avg_alp,avg_beta)
            call num_x_flux(consm_i(1),consm_i(4),consm_i(2),&
                 consm_i(3),consm_i(5),fminus(1),fminus(4),fminus(2),&
                 fminus(3), fminus(5),&
                 velzminus(i+xoffset,j+yoffset,k+zoffset),&
                 pressminus(i+xoffset,j+yoffset,k+zoffset),&
                 avg_det,avg_alp,avg_beta)
          else
            call CCTK_Error(502,"GRHydro_HLLE.F90","GRHydro","Flux direction not x,y,z")
            STOP
          end if


          
          if (apply_H_viscosity .ne. 0) then
          
            if (flux_direction == 1) then
              etabar = max((0.5d0*(abs( vup((i)+1,j,k,1)- vup(i,j,k,1)) + abs( eos_c((i)+1,j,k)- eos_c(i,j,k)))),&
                           (0.5d0*(abs( vup(i,(j)+1,k,2)- vup(i,j,k,2)) + abs( eos_c(i,(j)+1,k)- eos_c(i,j,k)))),&
                           (0.5d0*(abs( vup(i+1,(j)+1,k,2)- vup(i+1,j,k,2)) + abs( eos_c(i+1,(j)+1,k)- eos_c(i+1,j,k)))),&
                           (0.5d0*(abs( vup(i,(j-1)+1,k,2)- vup(i,j-1,k,2)) + abs( eos_c(i,(j-1)+1,k)- eos_c(i,j-1,k)))),&
                           (0.5d0*(abs( vup(i+1,(j-1)+1,k,2)- vup(i+1,j-1,k,2)) + abs( eos_c(i+1,(j-1)+1,k)- eos_c(i+1,j-1,k)))),&
                           (0.5d0*(abs( vup(i,j,(k)+1,3)- vup(i,j,k,3)) + abs( eos_c(i,j,(k)+1)- eos_c(i,j,k)))),&
                           (0.5d0*(abs( vup(i+1,j,(k)+1,3)- vup(i+1,j,k,3)) + abs( eos_c(i+1,j,(k)+1)- eos_c(i+1,j,k)))),&
                           (0.5d0*(abs( vup(i,j,(k-1)+1,3)- vup(i,j,k-1,3)) + abs( eos_c(i,j,(k-1)+1)- eos_c(i,j,k-1)))),&
                           (0.5d0*(abs( vup(i+1,j,(k-1)+1,3)- vup(i+1,j,k-1,3)) + abs( eos_c(i+1,j,(k-1)+1)- eos_c(i+1,j,k-1)))))
            else if (flux_direction == 2) then
              etabar = max((0.5d0*(abs( vup(i,(j)+1,k,2)- vup(i,j,k,2)) + abs( eos_c(i,(j)+1,k)- eos_c(i,j,k)))),&
                           (0.5d0*(abs( vup((i)+1,j,k,1)- vup(i,j,k,1)) + abs( eos_c((i)+1,j,k)- eos_c(i,j,k)))),&
                           (0.5d0*(abs( vup((i)+1,j+1,k,1)- vup(i,j+1,k,1)) + abs( eos_c((i)+1,j+1,k)- eos_c(i,j+1,k)))),&
                           (0.5d0*(abs( vup((i-1)+1,j,k,1)- vup(i-1,j,k,1)) + abs( eos_c((i-1)+1,j,k)- eos_c(i-1,j,k)))),&
                           (0.5d0*(abs( vup((i-1)+1,j+1,k,1)- vup(i-1,j+1,k,1)) + abs( eos_c((i-1)+1,j+1,k)- eos_c(i-1,j+1,k)))),&
                           (0.5d0*(abs( vup(i,j,(k)+1,3)- vup(i,j,k,3)) + abs( eos_c(i,j,(k)+1)- eos_c(i,j,k)))),&
                           (0.5d0*(abs( vup(i,j+1,(k)+1,3)- vup(i,j+1,k,3)) + abs( eos_c(i,j+1,(k)+1)- eos_c(i,j+1,k)))),&
                           (0.5d0*(abs( vup(i,j,(k-1)+1,3)- vup(i,j,k-1,3)) + abs( eos_c(i,j,(k-1)+1)- eos_c(i,j,k-1)))),&
                           (0.5d0*(abs( vup(i,j+1,(k-1)+1,3)- vup(i,j+1,k-1,3)) + abs( eos_c(i,j+1,(k-1)+1)- eos_c(i,j+1,k-1)))))
            else if (flux_direction == 3) then
              etabar = max((0.5d0*(abs( vup(i,j,(k)+1,3)- vup(i,j,k,3)) + abs( eos_c(i,j,(k)+1)- eos_c(i,j,k)))),&
                           (0.5d0*(abs( vup((i)+1,j,k,1)- vup(i,j,k,1)) + abs( eos_c((i)+1,j,k)- eos_c(i,j,k)))),&
                           (0.5d0*(abs( vup((i)+1,j,k+1,1)- vup(i,j,k+1,1)) + abs( eos_c((i)+1,j,k+1)- eos_c(i,j,k+1)))),&
                           (0.5d0*(abs( vup((i-1)+1,j,k,1)- vup(i-1,j,k,1)) + abs( eos_c((i-1)+1,j,k)- eos_c(i-1,j,k)))),&
                           (0.5d0*(abs( vup((i-1)+1,j,k+1,1)- vup(i-1,j,k+1,1)) + abs( eos_c((i-1)+1,j,k+1)- eos_c(i-1,j,k+1)))),&
                           (0.5d0*(abs( vup(i,(j)+1,k,2)- vup(i,j,k,2)) + abs( eos_c(i,(j)+1,k)- eos_c(i,j,k)))),&
                           (0.5d0*(abs( vup(i,(j)+1,k+1,2)- vup(i,j,k+1,2)) + abs( eos_c(i,(j)+1,k+1)- eos_c(i,j,k+1)))),&
                           (0.5d0*(abs( vup(i,(j-1)+1,k,2)- vup(i,j-1,k,2)) + abs( eos_c(i,(j-1)+1,k)- eos_c(i,j-1,k)))),&
                           (0.5d0*(abs( vup(i,(j-1)+1,k+1,2)- vup(i,j-1,k+1,2)) + abs( eos_c(i,(j-1)+1,k+1)- eos_c(i,j-1,k+1)))))
            else
              call CCTK_Error(541,"GRHydro_HLLE.F90","GRHydro","Flux direction not x,y,z")
              STOP
            end if
            
            
            do m = 1,5
               lamplus(m) = sign(one, lamplus(m))*max(abs(lamplus(m)), etabar)
               lamminus(m) = sign(one, lamminus(m))*max(abs(lamminus(m)), etabar)
            end do
          endif
          
          

      
          charmin = min(0.d0, lamplus(1), lamplus(2), lamplus(3), &
               lamplus(4),lamplus(5),  lamminus(1),lamminus(2),lamminus(3),&
               lamminus(4),lamminus(5))  
          
          charmax = max(0.d0, lamplus(1), lamplus(2), lamplus(3), &
               lamplus(4),lamplus(5),  lamminus(1),lamminus(2),lamminus(3),&
               lamminus(4),lamminus(5))
          
          charpm = charmax - charmin
          

          
          do m = 1,5 
            
            qdiff(m) = consm_i(m) - consp(m)
            
            f1(m) = (charmax * fplus(m) - charmin * fminus(m) + &
                 charmax * charmin * qdiff(m)) / charpm
            
          end do

        end if 
            
        densflux(i, j, k) = f1(1)
        sxflux(i, j, k) = f1(2)
        syflux(i, j, k) = f1(3)
        szflux(i, j, k) = f1(4)
        tauflux(i, j, k) = f1(5)

        if(evolve_Y_e.ne.0) then
           if (densflux(i, j, k) > 0.d0) then
              Y_e_con_flux(i, j, k) = &
                   Y_e_plus(i, j, k) * &
                   densflux(i, j, k)
           else
              Y_e_con_flux(i, j, k) = &
                   Y_e_minus(i + xoffset, j + yoffset, k + zoffset) * &
                   densflux(i, j, k)
           endif
        endif

      end do
    end do
  end do
  !$OMP END PARALLEL DO
      
end subroutine GRHydro_HLLE

 

subroutine GRHydro_HLLE_Tracer(cctk_dim,cctk_gsh,cctk_lsh,cctk_lbnd,cctk_ubnd,cctk_level,cctk_patch,cctk_npatches,cctk_component,cc&
  &tk_tile_min,cctk_tile_max,cctk_ash,cctk_alignment,cctk_alignment_offset,cctk_from,cctk_to,cctk_bbox,cctk_delta_time,cctk_time,cc&
  &tk_delta_space,cctk_origin_space,cctk_levfac,cctk_levoff,cctk_levoffdenom,cctk_timefac,cctk_convlevel,cctk_convfac,cctk_nghostzo&
  &nes,cctk_iteration,cctkGH,cctk_ash1,cctk_ash2,cctk_ash3, GRHydro_tracer_cons_bext_length,GRHydro_tracer_flux_length,GRHydro_trac&
  &er_flux_splitting_length,GRHydro_tracer_prim_bext_length,GRHydro_tracer_rhs_length,X0particle_arrays,X0particle_rhs,X0particles,&
  &Aphiminus,Aphiplus,Avecxminus,Avecxplus,Avecyminus,Avecyplus,Aveczminus,Aveczplus,Bconsxminus,Bconsxplus,Bconsyminus,Bconsyplus,&
  &Bconszminus,Bconszplus,Bvecxminus,Bvecxplus,Bvecyminus,Bvecyplus,Bveczminus,Bveczplus,DiffRho,GRHydro_maxima_iteration,GRHydro_m&
  &ppm_eigenvalue_x_left,GRHydro_mppm_eigenvalue_x_right,GRHydro_mppm_eigenvalue_y_left,GRHydro_mppm_eigenvalue_y_right,GRHydro_mpp&
  &m_eigenvalue_z_left,GRHydro_mppm_eigenvalue_z_right,GRHydro_mppm_xwind,GRHydro_proper_separation,GRHydro_separation,GRHydro_triv&
  &ial_rp_gf_x,GRHydro_trivial_rp_gf_y,GRHydro_trivial_rp_gf_z,GRHydro_x,GRHydro_x_p,GRHydro_x_p_p,GRHydro_x_rhs,GRHydro_y,GRHydro_&
  &y_p,GRHydro_y_p_p,GRHydro_y_rhs,GRHydro_z,GRHydro_z_p,GRHydro_z_p_p,GRHydro_z_rhs,InLastMoLPostStep,Y_e_minus,Y_e_plus,cons_trac&
  &erflux,cons_tracerminus,cons_tracerplus,cons_tracerrhs,densfminus,densfplus,densminus,densplus,entropyconsminus,entropyconsplus,&
  &entropyminus,entropyplus,eos_c,eos_cs2_ave,eos_cs2_m,eos_cs2_p,eos_dpdeps_ave,eos_dpdeps_m,eos_dpdeps_p,eos_dpdeps_temp,eos_dpdr&
  &ho_temp,eps_ave,execute_MoL_PostStep,execute_MoL_Step,fs_alpha1,fs_alpha2,fs_alpha3,fs_alpha4,fs_alpha5,maxima_i,maxima_j,maxima&
  &_k,particle_alp,particle_betax,particle_betay,particle_betaz,particle_vx,particle_vy,particle_vz,particle_x,particle_x_p,particl&
  &e_x_p_p,particle_x_rhs,particle_y,particle_y_p,particle_y_p_p,particle_y_rhs,particle_z,particle_z_p,particle_z_p_p,particle_z_r&
  &hs,press_ave,press_new,press_old,psidcminus,psidcplus,rho_ave,sxfminus,sxfplus,sxminus,sxplus,syfminus,syfplus,syminus,syplus,sz&
  &fminus,szfplus,szminus,szplus,taufminus,taufplus,tauminus,tauplus,tempminus,tempplus,tracerfminus,tracerfplus,tracerminus,tracer&
  &plus,velx_ave,vely_ave,velz_ave,whichpsidcspeed, Avec_length,Avecrhs_length,Bcons_length,Bconsrhs_length,Bvec_length,Evec_length&
  &,GRHydro_cons_tracers_length,GRHydro_tracers_length,bcom_length,lBvec_length,lvel_length,scon_length,srhs_length,vel_length,Abar&
  &,Abar_p,Abar_p_p,Aphi,Aphi_p,Aphi_p_p,Aphiflux,Aphirhs,Avec,Avec_p,Avec_p_p,Avecrhs,Avecxflux,Avecyflux,Aveczflux,Bcons,Bcons_p,&
  &Bcons_p_p,Bconsrhs,Bconsxflux,Bconsyflux,Bconszflux,Bvec,Bvec_p,Bvec_p_p,Evec,GRHydro_C2P_failed,GRHydro_eos_handle,GRHydro_poly&
  &trope_handle,GRHydro_reflevel,GRHydro_rho_min,GRHydro_tau_min,Y_e,Y_e_p,Y_e_p_p,Y_e_con,Y_e_con_p,Y_e_con_p_p,Y_e_con_flux,Y_e_c&
  &on_rhs,alp,alp_p,alp_p_p,atmosphere_atmosp_descriptor,atmosphere_field_descriptor,atmosphere_mask,atmosphere_mask_real,atmospher&
  &e_normal_descriptor,bcom,bcom_p,bcom_p_p,bcom0,bcom0_p,bcom0_p_p,bcom_sq,bcom_sq_p,bcom_sq_p_p,betaa,betab,betac,betax,betax_p,b&
  &etax_p_p,betay,betay_p,betay_p_p,betaz,betaz_p,betaz_p_p,coarse_dx,coarse_dy,coarse_dz,conformal_state,cons_tracer,cons_tracer_p&
  &,cons_tracer_p_p,cs2minus,cs2plus,dens,dens_p,dens_p_p,densflux,densrhs,divB,dtalp,dtalp_p,dtalp_p_p,dtbetax,dtbetax_p,dtbetax_p&
  &_p,dtbetay,dtbetay_p,dtbetay_p_p,dtbetaz,dtbetaz_p,dtbetaz_p_p,dtlapse_state,dtshift_state,eTtt,eTtt_p,eTtt_p_p,eTtx,eTtx_p,eTtx&
  &_p_p,eTty,eTty_p,eTty_p_p,eTtz,eTtz_p,eTtz_p_p,eTxx,eTxx_p,eTxx_p_p,eTxy,eTxy_p,eTxy_p_p,eTxz,eTxz_p,eTxz_p_p,eTyy,eTyy_p,eTyy_p&
  &_p,eTyz,eTyz_p,eTyz_p_p,eTzz,eTzz_p,eTzz_p_p,emask,entropy,entropy_p,entropy_p_p,entropycons,entropycons_p,entropycons_p_p,entro&
  &pyflux,entropyrhs,eps,eps_p,eps_p_p,epsminus,epsplus,evolve_Lorenz_gge,evolve_MHD,evolve_Y_e,evolve_entropy,evolve_temper,flux_d&
  &irection,gaa,gaa_p,gaa_p_p,gab,gab_p,gab_p_p,gac,gac_p,gac_p_p,gbb,gbb_p,gbb_p_p,gbc,gbc_p,gbc_p_p,gcc,gcc_p,gcc_p_p,gxx,gxx_p,g&
  &xx_p_p,gxy,gxy_p,gxy_p_p,gxz,gxz_p,gxz_p_p,gyy,gyy_p,gyy_p_p,gyz,gyz_p,gyz_p_p,gzz,gzz_p,gzz_p_p,hydro_excision_mask,kaa,kab,kac&
  &,kbb,kbc,kcc,kxx,kxx_p,kxx_p_p,kxy,kxy_p,kxy_p_p,kxz,kxz_p,kxz_p_p,kyy,kyy_p,kyy_p_p,kyz,kyz_p,kyz_p_p,kzz,kzz_p,kzz_p_p,lBvec,l&
  &Bvec_p,lBvec_p_p,lvel,lvel_p,lvel_p_p,maxima_x,maxima_y,maxima_z,maximum_density,maxrho_global,press,press_p,press_p_p,pressminu&
  &s,pressplus,psi,psidc,psidc_p,psidc_p_p,psidcflux,psidcrhs,psix,psixx,psixy,psixz,psiy,psiyy,psiyz,psiz,psizz,r,rho,rho_p,rho_p_&
  &p,rhominus,rhoplus,scon,scon_p,scon_p_p,sdetg,shift_state,space_mask,srhs,stress_energy_state,sxflux,syflux,szflux,tau,tau_p,tau&
  &_p_p,tauflux,taurhs,temperature,temperature_p,temperature_p_p,tracer,tracer_p,tracer_p_p,vel,vel_p,vel_p_p,velxminus,velxplus,ve&
  &lyminus,velyplus,velzminus,velzplus,w_lorentz,w_lorentz_p,w_lorentz_p_p,w_lorentzminus,w_lorentzplus,x,xoffset,y,yoffset,z,zoffs&
  &et)

  USE GRHydro_Eigenproblem

  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_level
  integer, parameter :: cctki_use_cctk_level = kind(cctk_level)
  INTEGER cctk_patch
  integer, parameter :: cctki_use_cctk_patch = kind(cctk_patch)
  INTEGER cctk_npatches
  integer, parameter :: cctki_use_cctk_npatches = kind(cctk_npatches)
  INTEGER cctk_component
  integer, parameter :: cctki_use_cctk_component = kind(cctk_component)
  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 GRHydro_tracer_cons_bext_length
  INTEGER GRHydro_tracer_flux_length
  INTEGER GRHydro_tracer_flux_splitting_length
  INTEGER GRHydro_tracer_prim_bext_length
  INTEGER GRHydro_tracer_rhs_length
  INTEGER X0particle_arrays
  INTEGER X0particle_rhs
  INTEGER X0particles
  REAL*8 Aphiminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Aphiminus = kind(Aphiminus)
  REAL*8 Aphiplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Aphiplus = kind(Aphiplus)
  REAL*8 Avecxminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Avecxminus = kind(Avecxminus)
  REAL*8 Avecxplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Avecxplus = kind(Avecxplus)
  REAL*8 Avecyminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Avecyminus = kind(Avecyminus)
  REAL*8 Avecyplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Avecyplus = kind(Avecyplus)
  REAL*8 Aveczminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Aveczminus = kind(Aveczminus)
  REAL*8 Aveczplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Aveczplus = kind(Aveczplus)
  REAL*8 Bconsxminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bconsxminus = kind(Bconsxminus)
  REAL*8 Bconsxplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bconsxplus = kind(Bconsxplus)
  REAL*8 Bconsyminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bconsyminus = kind(Bconsyminus)
  REAL*8 Bconsyplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bconsyplus = kind(Bconsyplus)
  REAL*8 Bconszminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bconszminus = kind(Bconszminus)
  REAL*8 Bconszplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bconszplus = kind(Bconszplus)
  REAL*8 Bvecxminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bvecxminus = kind(Bvecxminus)
  REAL*8 Bvecxplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bvecxplus = kind(Bvecxplus)
  REAL*8 Bvecyminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bvecyminus = kind(Bvecyminus)
  REAL*8 Bvecyplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bvecyplus = kind(Bvecyplus)
  REAL*8 Bveczminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bveczminus = kind(Bveczminus)
  REAL*8 Bveczplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bveczplus = kind(Bveczplus)
  REAL*8 DiffRho (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_DiffRho = kind(DiffRho)
  INTEGER*4 GRHydro_maxima_iteration
  integer, parameter :: cctki_use_GRHydro_maxima_iteration = kind(GRHydro_maxima_iteration)
  REAL*8 GRHydro_mppm_eigenvalue_x_left (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_mppm_eigenvalue_x_left = kind(GRHydro_mppm_eigenvalue_x_left)
  REAL*8 GRHydro_mppm_eigenvalue_x_right (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_mppm_eigenvalue_x_right = kind(GRHydro_mppm_eigenvalue_x_right)
  REAL*8 GRHydro_mppm_eigenvalue_y_left (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_mppm_eigenvalue_y_left = kind(GRHydro_mppm_eigenvalue_y_left)
  REAL*8 GRHydro_mppm_eigenvalue_y_right (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_mppm_eigenvalue_y_right = kind(GRHydro_mppm_eigenvalue_y_right)
  REAL*8 GRHydro_mppm_eigenvalue_z_left (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_mppm_eigenvalue_z_left = kind(GRHydro_mppm_eigenvalue_z_left)
  REAL*8 GRHydro_mppm_eigenvalue_z_right (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_mppm_eigenvalue_z_right = kind(GRHydro_mppm_eigenvalue_z_right)
  REAL*8 GRHydro_mppm_xwind (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_mppm_xwind = kind(GRHydro_mppm_xwind)
  REAL*8 GRHydro_proper_separation
  integer, parameter :: cctki_use_GRHydro_proper_separation = kind(GRHydro_proper_separation)
  REAL*8 GRHydro_separation
  integer, parameter :: cctki_use_GRHydro_separation = kind(GRHydro_separation)
  INTEGER*4 GRHydro_trivial_rp_gf_x (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_trivial_rp_gf_x = kind(GRHydro_trivial_rp_gf_x)
  INTEGER*4 GRHydro_trivial_rp_gf_y (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_trivial_rp_gf_y = kind(GRHydro_trivial_rp_gf_y)
  INTEGER*4 GRHydro_trivial_rp_gf_z (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_trivial_rp_gf_z = kind(GRHydro_trivial_rp_gf_z)
  REAL*8 GRHydro_x (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_x = kind(GRHydro_x)
  REAL*8 GRHydro_x_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_x_p = kind(GRHydro_x_p)
  REAL*8 GRHydro_x_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_x_p_p = kind(GRHydro_x_p_p)
  REAL*8 GRHydro_x_rhs (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_x_rhs = kind(GRHydro_x_rhs)
  REAL*8 GRHydro_y (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_y = kind(GRHydro_y)
  REAL*8 GRHydro_y_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_y_p = kind(GRHydro_y_p)
  REAL*8 GRHydro_y_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_y_p_p = kind(GRHydro_y_p_p)
  REAL*8 GRHydro_y_rhs (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_y_rhs = kind(GRHydro_y_rhs)
  REAL*8 GRHydro_z (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_z = kind(GRHydro_z)
  REAL*8 GRHydro_z_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_z_p = kind(GRHydro_z_p)
  REAL*8 GRHydro_z_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_z_p_p = kind(GRHydro_z_p_p)
  REAL*8 GRHydro_z_rhs (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_z_rhs = kind(GRHydro_z_rhs)
  INTEGER*4 InLastMoLPostStep
  integer, parameter :: cctki_use_InLastMoLPostStep = kind(InLastMoLPostStep)
  REAL*8 Y_e_minus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Y_e_minus = kind(Y_e_minus)
  REAL*8 Y_e_plus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Y_e_plus = kind(Y_e_plus)
  REAL*8 cons_tracerflux (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_tracer_flux_length)
  integer, parameter :: cctki_use_cons_tracerflux = kind(cons_tracerflux)
  REAL*8 cons_tracerminus (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_tracer_cons_bext_length)
  integer, parameter :: cctki_use_cons_tracerminus = kind(cons_tracerminus)
  REAL*8 cons_tracerplus (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_tracer_cons_bext_length)
  integer, parameter :: cctki_use_cons_tracerplus = kind(cons_tracerplus)
  REAL*8 cons_tracerrhs (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_tracer_rhs_length)
  integer, parameter :: cctki_use_cons_tracerrhs = kind(cons_tracerrhs)
  REAL*8 densfminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_densfminus = kind(densfminus)
  REAL*8 densfplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_densfplus = kind(densfplus)
  REAL*8 densminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_densminus = kind(densminus)
  REAL*8 densplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_densplus = kind(densplus)
  REAL*8 entropyconsminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropyconsminus = kind(entropyconsminus)
  REAL*8 entropyconsplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropyconsplus = kind(entropyconsplus)
  REAL*8 entropyminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropyminus = kind(entropyminus)
  REAL*8 entropyplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropyplus = kind(entropyplus)
  REAL*8 eos_c (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eos_c = kind(eos_c)
  REAL*8 eos_cs2_ave (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eos_cs2_ave = kind(eos_cs2_ave)
  REAL*8 eos_cs2_m (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eos_cs2_m = kind(eos_cs2_m)
  REAL*8 eos_cs2_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eos_cs2_p = kind(eos_cs2_p)
  REAL*8 eos_dpdeps_ave (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eos_dpdeps_ave = kind(eos_dpdeps_ave)
  REAL*8 eos_dpdeps_m (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eos_dpdeps_m = kind(eos_dpdeps_m)
  REAL*8 eos_dpdeps_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eos_dpdeps_p = kind(eos_dpdeps_p)
  REAL*8 eos_dpdeps_temp (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eos_dpdeps_temp = kind(eos_dpdeps_temp)
  REAL*8 eos_dpdrho_temp (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eos_dpdrho_temp = kind(eos_dpdrho_temp)
  REAL*8 eps_ave (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eps_ave = kind(eps_ave)
  INTEGER*4 execute_MoL_PostStep
  integer, parameter :: cctki_use_execute_MoL_PostStep = kind(execute_MoL_PostStep)
  INTEGER*4 execute_MoL_Step
  integer, parameter :: cctki_use_execute_MoL_Step = kind(execute_MoL_Step)
  REAL*8 fs_alpha1
  integer, parameter :: cctki_use_fs_alpha1 = kind(fs_alpha1)
  REAL*8 fs_alpha2
  integer, parameter :: cctki_use_fs_alpha2 = kind(fs_alpha2)
  REAL*8 fs_alpha3
  integer, parameter :: cctki_use_fs_alpha3 = kind(fs_alpha3)
  REAL*8 fs_alpha4
  integer, parameter :: cctki_use_fs_alpha4 = kind(fs_alpha4)
  REAL*8 fs_alpha5
  integer, parameter :: cctki_use_fs_alpha5 = kind(fs_alpha5)
  REAL*8 maxima_i
  integer, parameter :: cctki_use_maxima_i = kind(maxima_i)
  REAL*8 maxima_j
  integer, parameter :: cctki_use_maxima_j = kind(maxima_j)
  REAL*8 maxima_k
  integer, parameter :: cctki_use_maxima_k = kind(maxima_k)
  REAL*8 particle_alp (X0particle_arrays)
  integer, parameter :: cctki_use_particle_alp = kind(particle_alp)
  REAL*8 particle_betax (X0particle_arrays)
  integer, parameter :: cctki_use_particle_betax = kind(particle_betax)
  REAL*8 particle_betay (X0particle_arrays)
  integer, parameter :: cctki_use_particle_betay = kind(particle_betay)
  REAL*8 particle_betaz (X0particle_arrays)
  integer, parameter :: cctki_use_particle_betaz = kind(particle_betaz)
  REAL*8 particle_vx (X0particle_arrays)
  integer, parameter :: cctki_use_particle_vx = kind(particle_vx)
  REAL*8 particle_vy (X0particle_arrays)
  integer, parameter :: cctki_use_particle_vy = kind(particle_vy)
  REAL*8 particle_vz (X0particle_arrays)
  integer, parameter :: cctki_use_particle_vz = kind(particle_vz)
  REAL*8 particle_x (X0particles)
  integer, parameter :: cctki_use_particle_x = kind(particle_x)
  REAL*8 particle_x_p (X0particles)
  integer, parameter :: cctki_use_particle_x_p = kind(particle_x_p)
  REAL*8 particle_x_p_p (X0particles)
  integer, parameter :: cctki_use_particle_x_p_p = kind(particle_x_p_p)
  REAL*8 particle_x_rhs (X0particle_rhs)
  integer, parameter :: cctki_use_particle_x_rhs = kind(particle_x_rhs)
  REAL*8 particle_y (X0particles)
  integer, parameter :: cctki_use_particle_y = kind(particle_y)
  REAL*8 particle_y_p (X0particles)
  integer, parameter :: cctki_use_particle_y_p = kind(particle_y_p)
  REAL*8 particle_y_p_p (X0particles)
  integer, parameter :: cctki_use_particle_y_p_p = kind(particle_y_p_p)
  REAL*8 particle_y_rhs (X0particle_rhs)
  integer, parameter :: cctki_use_particle_y_rhs = kind(particle_y_rhs)
  REAL*8 particle_z (X0particles)
  integer, parameter :: cctki_use_particle_z = kind(particle_z)
  REAL*8 particle_z_p (X0particles)
  integer, parameter :: cctki_use_particle_z_p = kind(particle_z_p)
  REAL*8 particle_z_p_p (X0particles)
  integer, parameter :: cctki_use_particle_z_p_p = kind(particle_z_p_p)
  REAL*8 particle_z_rhs (X0particle_rhs)
  integer, parameter :: cctki_use_particle_z_rhs = kind(particle_z_rhs)
  REAL*8 press_ave (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_press_ave = kind(press_ave)
  REAL*8 press_new (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_press_new = kind(press_new)
  REAL*8 press_old (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_press_old = kind(press_old)
  REAL*8 psidcminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psidcminus = kind(psidcminus)
  REAL*8 psidcplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psidcplus = kind(psidcplus)
  REAL*8 rho_ave (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_rho_ave = kind(rho_ave)
  REAL*8 sxfminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_sxfminus = kind(sxfminus)
  REAL*8 sxfplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_sxfplus = kind(sxfplus)
  REAL*8 sxminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_sxminus = kind(sxminus)
  REAL*8 sxplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_sxplus = kind(sxplus)
  REAL*8 syfminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_syfminus = kind(syfminus)
  REAL*8 syfplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_syfplus = kind(syfplus)
  REAL*8 syminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_syminus = kind(syminus)
  REAL*8 syplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_syplus = kind(syplus)
  REAL*8 szfminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_szfminus = kind(szfminus)
  REAL*8 szfplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_szfplus = kind(szfplus)
  REAL*8 szminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_szminus = kind(szminus)
  REAL*8 szplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_szplus = kind(szplus)
  REAL*8 taufminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_taufminus = kind(taufminus)
  REAL*8 taufplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_taufplus = kind(taufplus)
  REAL*8 tauminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_tauminus = kind(tauminus)
  REAL*8 tauplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_tauplus = kind(tauplus)
  REAL*8 tempminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_tempminus = kind(tempminus)
  REAL*8 tempplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_tempplus = kind(tempplus)
  REAL*8 tracerfminus (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_tracer_flux_splitting_length)
  integer, parameter :: cctki_use_tracerfminus = kind(tracerfminus)
  REAL*8 tracerfplus (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_tracer_flux_splitting_length)
  integer, parameter :: cctki_use_tracerfplus = kind(tracerfplus)
  REAL*8 tracerminus (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_tracer_prim_bext_length)
  integer, parameter :: cctki_use_tracerminus = kind(tracerminus)
  REAL*8 tracerplus (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_tracer_prim_bext_length)
  integer, parameter :: cctki_use_tracerplus = kind(tracerplus)
  REAL*8 velx_ave (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_velx_ave = kind(velx_ave)
  REAL*8 vely_ave (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_vely_ave = kind(vely_ave)
  REAL*8 velz_ave (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_velz_ave = kind(velz_ave)
  INTEGER*4 whichpsidcspeed
  integer, parameter :: cctki_use_whichpsidcspeed = kind(whichpsidcspeed)
  INTEGER Avec_length
  INTEGER Avecrhs_length
  INTEGER Bcons_length
  INTEGER Bconsrhs_length
  INTEGER Bvec_length
  INTEGER Evec_length
  INTEGER GRHydro_cons_tracers_length
  INTEGER GRHydro_tracers_length
  INTEGER bcom_length
  INTEGER lBvec_length
  INTEGER lvel_length
  INTEGER scon_length
  INTEGER srhs_length
  INTEGER vel_length
  REAL*8 Abar (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Abar = kind(Abar)
  REAL*8 Abar_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Abar_p = kind(Abar_p)
  REAL*8 Abar_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Abar_p_p = kind(Abar_p_p)
  REAL*8 Aphi (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Aphi = kind(Aphi)
  REAL*8 Aphi_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Aphi_p = kind(Aphi_p)
  REAL*8 Aphi_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Aphi_p_p = kind(Aphi_p_p)
  REAL*8 Aphiflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Aphiflux = kind(Aphiflux)
  REAL*8 Aphirhs (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Aphirhs = kind(Aphirhs)
  REAL*8 Avec (cctk_ash1,cctk_ash2,cctk_ash3,Avec_length)
  integer, parameter :: cctki_use_Avec = kind(Avec)
  REAL*8 Avec_p (cctk_ash1,cctk_ash2,cctk_ash3,Avec_length)
  integer, parameter :: cctki_use_Avec_p = kind(Avec_p)
  REAL*8 Avec_p_p (cctk_ash1,cctk_ash2,cctk_ash3,Avec_length)
  integer, parameter :: cctki_use_Avec_p_p = kind(Avec_p_p)
  REAL*8 Avecrhs (cctk_ash1,cctk_ash2,cctk_ash3,Avecrhs_length)
  integer, parameter :: cctki_use_Avecrhs = kind(Avecrhs)
  REAL*8 Avecxflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Avecxflux = kind(Avecxflux)
  REAL*8 Avecyflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Avecyflux = kind(Avecyflux)
  REAL*8 Aveczflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Aveczflux = kind(Aveczflux)
  REAL*8 Bcons (cctk_ash1,cctk_ash2,cctk_ash3,Bcons_length)
  integer, parameter :: cctki_use_Bcons = kind(Bcons)
  REAL*8 Bcons_p (cctk_ash1,cctk_ash2,cctk_ash3,Bcons_length)
  integer, parameter :: cctki_use_Bcons_p = kind(Bcons_p)
  REAL*8 Bcons_p_p (cctk_ash1,cctk_ash2,cctk_ash3,Bcons_length)
  integer, parameter :: cctki_use_Bcons_p_p = kind(Bcons_p_p)
  REAL*8 Bconsrhs (cctk_ash1,cctk_ash2,cctk_ash3,Bconsrhs_length)
  integer, parameter :: cctki_use_Bconsrhs = kind(Bconsrhs)
  REAL*8 Bconsxflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bconsxflux = kind(Bconsxflux)
  REAL*8 Bconsyflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bconsyflux = kind(Bconsyflux)
  REAL*8 Bconszflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Bconszflux = kind(Bconszflux)
  REAL*8 Bvec (cctk_ash1,cctk_ash2,cctk_ash3,Bvec_length)
  integer, parameter :: cctki_use_Bvec = kind(Bvec)
  REAL*8 Bvec_p (cctk_ash1,cctk_ash2,cctk_ash3,Bvec_length)
  integer, parameter :: cctki_use_Bvec_p = kind(Bvec_p)
  REAL*8 Bvec_p_p (cctk_ash1,cctk_ash2,cctk_ash3,Bvec_length)
  integer, parameter :: cctki_use_Bvec_p_p = kind(Bvec_p_p)
  REAL*8 Evec (cctk_ash1,cctk_ash2,cctk_ash3,Evec_length)
  integer, parameter :: cctki_use_Evec = kind(Evec)
  REAL*8 GRHydro_C2P_failed (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_GRHydro_C2P_failed = kind(GRHydro_C2P_failed)
  INTEGER*4 GRHydro_eos_handle
  integer, parameter :: cctki_use_GRHydro_eos_handle = kind(GRHydro_eos_handle)
  INTEGER*4 GRHydro_polytrope_handle
  integer, parameter :: cctki_use_GRHydro_polytrope_handle = kind(GRHydro_polytrope_handle)
  INTEGER*4 GRHydro_reflevel
  integer, parameter :: cctki_use_GRHydro_reflevel = kind(GRHydro_reflevel)
  REAL*8 GRHydro_rho_min
  integer, parameter :: cctki_use_GRHydro_rho_min = kind(GRHydro_rho_min)
  REAL*8 GRHydro_tau_min
  integer, parameter :: cctki_use_GRHydro_tau_min = kind(GRHydro_tau_min)
  REAL*8 Y_e (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Y_e = kind(Y_e)
  REAL*8 Y_e_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Y_e_p = kind(Y_e_p)
  REAL*8 Y_e_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Y_e_p_p = kind(Y_e_p_p)
  REAL*8 Y_e_con (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Y_e_con = kind(Y_e_con)
  REAL*8 Y_e_con_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Y_e_con_p = kind(Y_e_con_p)
  REAL*8 Y_e_con_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Y_e_con_p_p = kind(Y_e_con_p_p)
  REAL*8 Y_e_con_flux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Y_e_con_flux = kind(Y_e_con_flux)
  REAL*8 Y_e_con_rhs (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Y_e_con_rhs = kind(Y_e_con_rhs)
  REAL*8 alp (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_alp = kind(alp)
  REAL*8 alp_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_alp_p = kind(alp_p)
  REAL*8 alp_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_alp_p_p = kind(alp_p_p)
  INTEGER*4 atmosphere_atmosp_descriptor
  integer, parameter :: cctki_use_atmosphere_atmosp_descriptor = kind(atmosphere_atmosp_descriptor)
  INTEGER*4 atmosphere_field_descriptor
  integer, parameter :: cctki_use_atmosphere_field_descriptor = kind(atmosphere_field_descriptor)
  INTEGER*4 atmosphere_mask (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_atmosphere_mask = kind(atmosphere_mask)
  REAL*8 atmosphere_mask_real (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_atmosphere_mask_real = kind(atmosphere_mask_real)
  INTEGER*4 atmosphere_normal_descriptor
  integer, parameter :: cctki_use_atmosphere_normal_descriptor = kind(atmosphere_normal_descriptor)
  REAL*8 bcom (cctk_ash1,cctk_ash2,cctk_ash3,bcom_length)
  integer, parameter :: cctki_use_bcom = kind(bcom)
  REAL*8 bcom_p (cctk_ash1,cctk_ash2,cctk_ash3,bcom_length)
  integer, parameter :: cctki_use_bcom_p = kind(bcom_p)
  REAL*8 bcom_p_p (cctk_ash1,cctk_ash2,cctk_ash3,bcom_length)
  integer, parameter :: cctki_use_bcom_p_p = kind(bcom_p_p)
  REAL*8 bcom0 (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_bcom0 = kind(bcom0)
  REAL*8 bcom0_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_bcom0_p = kind(bcom0_p)
  REAL*8 bcom0_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_bcom0_p_p = kind(bcom0_p_p)
  REAL*8 bcom_sq (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_bcom_sq = kind(bcom_sq)
  REAL*8 bcom_sq_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_bcom_sq_p = kind(bcom_sq_p)
  REAL*8 bcom_sq_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_bcom_sq_p_p = kind(bcom_sq_p_p)
  REAL*8 betaa (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betaa = kind(betaa)
  REAL*8 betab (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betab = kind(betab)
  REAL*8 betac (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betac = kind(betac)
  REAL*8 betax (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betax = kind(betax)
  REAL*8 betax_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betax_p = kind(betax_p)
  REAL*8 betax_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betax_p_p = kind(betax_p_p)
  REAL*8 betay (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betay = kind(betay)
  REAL*8 betay_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betay_p = kind(betay_p)
  REAL*8 betay_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betay_p_p = kind(betay_p_p)
  REAL*8 betaz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betaz = kind(betaz)
  REAL*8 betaz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betaz_p = kind(betaz_p)
  REAL*8 betaz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_betaz_p_p = kind(betaz_p_p)
  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)
  INTEGER*4 conformal_state
  integer, parameter :: cctki_use_conformal_state = kind(conformal_state)
  REAL*8 cons_tracer (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_cons_tracers_length)
  integer, parameter :: cctki_use_cons_tracer = kind(cons_tracer)
  REAL*8 cons_tracer_p (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_cons_tracers_length)
  integer, parameter :: cctki_use_cons_tracer_p = kind(cons_tracer_p)
  REAL*8 cons_tracer_p_p (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_cons_tracers_length)
  integer, parameter :: cctki_use_cons_tracer_p_p = kind(cons_tracer_p_p)
  REAL*8 cs2minus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_cs2minus = kind(cs2minus)
  REAL*8 cs2plus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_cs2plus = kind(cs2plus)
  REAL*8 dens (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dens = kind(dens)
  REAL*8 dens_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dens_p = kind(dens_p)
  REAL*8 dens_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dens_p_p = kind(dens_p_p)
  REAL*8 densflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_densflux = kind(densflux)
  REAL*8 densrhs (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_densrhs = kind(densrhs)
  REAL*8 divB (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_divB = kind(divB)
  REAL*8 dtalp (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtalp = kind(dtalp)
  REAL*8 dtalp_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtalp_p = kind(dtalp_p)
  REAL*8 dtalp_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtalp_p_p = kind(dtalp_p_p)
  REAL*8 dtbetax (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtbetax = kind(dtbetax)
  REAL*8 dtbetax_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtbetax_p = kind(dtbetax_p)
  REAL*8 dtbetax_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtbetax_p_p = kind(dtbetax_p_p)
  REAL*8 dtbetay (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtbetay = kind(dtbetay)
  REAL*8 dtbetay_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtbetay_p = kind(dtbetay_p)
  REAL*8 dtbetay_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtbetay_p_p = kind(dtbetay_p_p)
  REAL*8 dtbetaz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtbetaz = kind(dtbetaz)
  REAL*8 dtbetaz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtbetaz_p = kind(dtbetaz_p)
  REAL*8 dtbetaz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_dtbetaz_p_p = kind(dtbetaz_p_p)
  INTEGER*4 dtlapse_state
  integer, parameter :: cctki_use_dtlapse_state = kind(dtlapse_state)
  INTEGER*4 dtshift_state
  integer, parameter :: cctki_use_dtshift_state = kind(dtshift_state)
  REAL*8 eTtt (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTtt = kind(eTtt)
  REAL*8 eTtt_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTtt_p = kind(eTtt_p)
  REAL*8 eTtt_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTtt_p_p = kind(eTtt_p_p)
  REAL*8 eTtx (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTtx = kind(eTtx)
  REAL*8 eTtx_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTtx_p = kind(eTtx_p)
  REAL*8 eTtx_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTtx_p_p = kind(eTtx_p_p)
  REAL*8 eTty (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTty = kind(eTty)
  REAL*8 eTty_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTty_p = kind(eTty_p)
  REAL*8 eTty_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTty_p_p = kind(eTty_p_p)
  REAL*8 eTtz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTtz = kind(eTtz)
  REAL*8 eTtz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTtz_p = kind(eTtz_p)
  REAL*8 eTtz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTtz_p_p = kind(eTtz_p_p)
  REAL*8 eTxx (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTxx = kind(eTxx)
  REAL*8 eTxx_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTxx_p = kind(eTxx_p)
  REAL*8 eTxx_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTxx_p_p = kind(eTxx_p_p)
  REAL*8 eTxy (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTxy = kind(eTxy)
  REAL*8 eTxy_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTxy_p = kind(eTxy_p)
  REAL*8 eTxy_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTxy_p_p = kind(eTxy_p_p)
  REAL*8 eTxz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTxz = kind(eTxz)
  REAL*8 eTxz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTxz_p = kind(eTxz_p)
  REAL*8 eTxz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTxz_p_p = kind(eTxz_p_p)
  REAL*8 eTyy (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTyy = kind(eTyy)
  REAL*8 eTyy_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTyy_p = kind(eTyy_p)
  REAL*8 eTyy_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTyy_p_p = kind(eTyy_p_p)
  REAL*8 eTyz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTyz = kind(eTyz)
  REAL*8 eTyz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTyz_p = kind(eTyz_p)
  REAL*8 eTyz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTyz_p_p = kind(eTyz_p_p)
  REAL*8 eTzz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTzz = kind(eTzz)
  REAL*8 eTzz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTzz_p = kind(eTzz_p)
  REAL*8 eTzz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eTzz_p_p = kind(eTzz_p_p)
  REAL*8 emask (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_emask = kind(emask)
  REAL*8 entropy (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropy = kind(entropy)
  REAL*8 entropy_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropy_p = kind(entropy_p)
  REAL*8 entropy_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropy_p_p = kind(entropy_p_p)
  REAL*8 entropycons (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropycons = kind(entropycons)
  REAL*8 entropycons_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropycons_p = kind(entropycons_p)
  REAL*8 entropycons_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropycons_p_p = kind(entropycons_p_p)
  REAL*8 entropyflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropyflux = kind(entropyflux)
  REAL*8 entropyrhs (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_entropyrhs = kind(entropyrhs)
  REAL*8 eps (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eps = kind(eps)
  REAL*8 eps_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eps_p = kind(eps_p)
  REAL*8 eps_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_eps_p_p = kind(eps_p_p)
  REAL*8 epsminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_epsminus = kind(epsminus)
  REAL*8 epsplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_epsplus = kind(epsplus)
  INTEGER*4 evolve_Lorenz_gge
  integer, parameter :: cctki_use_evolve_Lorenz_gge = kind(evolve_Lorenz_gge)
  INTEGER*4 evolve_MHD
  integer, parameter :: cctki_use_evolve_MHD = kind(evolve_MHD)
  INTEGER*4 evolve_Y_e
  integer, parameter :: cctki_use_evolve_Y_e = kind(evolve_Y_e)
  INTEGER*4 evolve_entropy
  integer, parameter :: cctki_use_evolve_entropy = kind(evolve_entropy)
  INTEGER*4 evolve_temper
  integer, parameter :: cctki_use_evolve_temper = kind(evolve_temper)
  INTEGER*4 flux_direction
  integer, parameter :: cctki_use_flux_direction = kind(flux_direction)
  REAL*8 gaa (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gaa = kind(gaa)
  REAL*8 gaa_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gaa_p = kind(gaa_p)
  REAL*8 gaa_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gaa_p_p = kind(gaa_p_p)
  REAL*8 gab (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gab = kind(gab)
  REAL*8 gab_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gab_p = kind(gab_p)
  REAL*8 gab_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gab_p_p = kind(gab_p_p)
  REAL*8 gac (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gac = kind(gac)
  REAL*8 gac_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gac_p = kind(gac_p)
  REAL*8 gac_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gac_p_p = kind(gac_p_p)
  REAL*8 gbb (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gbb = kind(gbb)
  REAL*8 gbb_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gbb_p = kind(gbb_p)
  REAL*8 gbb_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gbb_p_p = kind(gbb_p_p)
  REAL*8 gbc (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gbc = kind(gbc)
  REAL*8 gbc_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gbc_p = kind(gbc_p)
  REAL*8 gbc_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gbc_p_p = kind(gbc_p_p)
  REAL*8 gcc (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gcc = kind(gcc)
  REAL*8 gcc_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gcc_p = kind(gcc_p)
  REAL*8 gcc_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gcc_p_p = kind(gcc_p_p)
  REAL*8 gxx (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gxx = kind(gxx)
  REAL*8 gxx_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gxx_p = kind(gxx_p)
  REAL*8 gxx_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gxx_p_p = kind(gxx_p_p)
  REAL*8 gxy (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gxy = kind(gxy)
  REAL*8 gxy_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gxy_p = kind(gxy_p)
  REAL*8 gxy_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gxy_p_p = kind(gxy_p_p)
  REAL*8 gxz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gxz = kind(gxz)
  REAL*8 gxz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gxz_p = kind(gxz_p)
  REAL*8 gxz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gxz_p_p = kind(gxz_p_p)
  REAL*8 gyy (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gyy = kind(gyy)
  REAL*8 gyy_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gyy_p = kind(gyy_p)
  REAL*8 gyy_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gyy_p_p = kind(gyy_p_p)
  REAL*8 gyz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gyz = kind(gyz)
  REAL*8 gyz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gyz_p = kind(gyz_p)
  REAL*8 gyz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gyz_p_p = kind(gyz_p_p)
  REAL*8 gzz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gzz = kind(gzz)
  REAL*8 gzz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gzz_p = kind(gzz_p)
  REAL*8 gzz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_gzz_p_p = kind(gzz_p_p)
  INTEGER*4 hydro_excision_mask (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_hydro_excision_mask = kind(hydro_excision_mask)
  REAL*8 kaa (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kaa = kind(kaa)
  REAL*8 kab (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kab = kind(kab)
  REAL*8 kac (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kac = kind(kac)
  REAL*8 kbb (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kbb = kind(kbb)
  REAL*8 kbc (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kbc = kind(kbc)
  REAL*8 kcc (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kcc = kind(kcc)
  REAL*8 kxx (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kxx = kind(kxx)
  REAL*8 kxx_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kxx_p = kind(kxx_p)
  REAL*8 kxx_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kxx_p_p = kind(kxx_p_p)
  REAL*8 kxy (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kxy = kind(kxy)
  REAL*8 kxy_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kxy_p = kind(kxy_p)
  REAL*8 kxy_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kxy_p_p = kind(kxy_p_p)
  REAL*8 kxz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kxz = kind(kxz)
  REAL*8 kxz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kxz_p = kind(kxz_p)
  REAL*8 kxz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kxz_p_p = kind(kxz_p_p)
  REAL*8 kyy (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kyy = kind(kyy)
  REAL*8 kyy_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kyy_p = kind(kyy_p)
  REAL*8 kyy_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kyy_p_p = kind(kyy_p_p)
  REAL*8 kyz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kyz = kind(kyz)
  REAL*8 kyz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kyz_p = kind(kyz_p)
  REAL*8 kyz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kyz_p_p = kind(kyz_p_p)
  REAL*8 kzz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kzz = kind(kzz)
  REAL*8 kzz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kzz_p = kind(kzz_p)
  REAL*8 kzz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_kzz_p_p = kind(kzz_p_p)
  REAL*8 lBvec (cctk_ash1,cctk_ash2,cctk_ash3,lBvec_length)
  integer, parameter :: cctki_use_lBvec = kind(lBvec)
  REAL*8 lBvec_p (cctk_ash1,cctk_ash2,cctk_ash3,lBvec_length)
  integer, parameter :: cctki_use_lBvec_p = kind(lBvec_p)
  REAL*8 lBvec_p_p (cctk_ash1,cctk_ash2,cctk_ash3,lBvec_length)
  integer, parameter :: cctki_use_lBvec_p_p = kind(lBvec_p_p)
  REAL*8 lvel (cctk_ash1,cctk_ash2,cctk_ash3,lvel_length)
  integer, parameter :: cctki_use_lvel = kind(lvel)
  REAL*8 lvel_p (cctk_ash1,cctk_ash2,cctk_ash3,lvel_length)
  integer, parameter :: cctki_use_lvel_p = kind(lvel_p)
  REAL*8 lvel_p_p (cctk_ash1,cctk_ash2,cctk_ash3,lvel_length)
  integer, parameter :: cctki_use_lvel_p_p = kind(lvel_p_p)
  REAL*8 maxima_x
  integer, parameter :: cctki_use_maxima_x = kind(maxima_x)
  REAL*8 maxima_y
  integer, parameter :: cctki_use_maxima_y = kind(maxima_y)
  REAL*8 maxima_z
  integer, parameter :: cctki_use_maxima_z = kind(maxima_z)
  REAL*8 maximum_density
  integer, parameter :: cctki_use_maximum_density = kind(maximum_density)
  REAL*8 maxrho_global
  integer, parameter :: cctki_use_maxrho_global = kind(maxrho_global)
  REAL*8 press (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_press = kind(press)
  REAL*8 press_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_press_p = kind(press_p)
  REAL*8 press_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_press_p_p = kind(press_p_p)
  REAL*8 pressminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_pressminus = kind(pressminus)
  REAL*8 pressplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_pressplus = kind(pressplus)
  REAL*8 psi (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psi = kind(psi)
  REAL*8 psidc (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psidc = kind(psidc)
  REAL*8 psidc_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psidc_p = kind(psidc_p)
  REAL*8 psidc_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psidc_p_p = kind(psidc_p_p)
  REAL*8 psidcflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psidcflux = kind(psidcflux)
  REAL*8 psidcrhs (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psidcrhs = kind(psidcrhs)
  REAL*8 psix (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psix = kind(psix)
  REAL*8 psixx (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psixx = kind(psixx)
  REAL*8 psixy (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psixy = kind(psixy)
  REAL*8 psixz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psixz = kind(psixz)
  REAL*8 psiy (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psiy = kind(psiy)
  REAL*8 psiyy (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psiyy = kind(psiyy)
  REAL*8 psiyz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psiyz = kind(psiyz)
  REAL*8 psiz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psiz = kind(psiz)
  REAL*8 psizz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_psizz = kind(psizz)
  REAL*8 r (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_r = kind(r)
  REAL*8 rho (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_rho = kind(rho)
  REAL*8 rho_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_rho_p = kind(rho_p)
  REAL*8 rho_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_rho_p_p = kind(rho_p_p)
  REAL*8 rhominus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_rhominus = kind(rhominus)
  REAL*8 rhoplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_rhoplus = kind(rhoplus)
  REAL*8 scon (cctk_ash1,cctk_ash2,cctk_ash3,scon_length)
  integer, parameter :: cctki_use_scon = kind(scon)
  REAL*8 scon_p (cctk_ash1,cctk_ash2,cctk_ash3,scon_length)
  integer, parameter :: cctki_use_scon_p = kind(scon_p)
  REAL*8 scon_p_p (cctk_ash1,cctk_ash2,cctk_ash3,scon_length)
  integer, parameter :: cctki_use_scon_p_p = kind(scon_p_p)
  REAL*8 sdetg (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_sdetg = kind(sdetg)
  INTEGER*4 shift_state
  integer, parameter :: cctki_use_shift_state = kind(shift_state)
  INTEGER*4 space_mask (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_space_mask = kind(space_mask)
  REAL*8 srhs (cctk_ash1,cctk_ash2,cctk_ash3,srhs_length)
  integer, parameter :: cctki_use_srhs = kind(srhs)
  INTEGER*4 stress_energy_state
  integer, parameter :: cctki_use_stress_energy_state = kind(stress_energy_state)
  REAL*8 sxflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_sxflux = kind(sxflux)
  REAL*8 syflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_syflux = kind(syflux)
  REAL*8 szflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_szflux = kind(szflux)
  REAL*8 tau (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_tau = kind(tau)
  REAL*8 tau_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_tau_p = kind(tau_p)
  REAL*8 tau_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_tau_p_p = kind(tau_p_p)
  REAL*8 tauflux (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_tauflux = kind(tauflux)
  REAL*8 taurhs (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_taurhs = kind(taurhs)
  REAL*8 temperature (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_temperature = kind(temperature)
  REAL*8 temperature_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_temperature_p = kind(temperature_p)
  REAL*8 temperature_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_temperature_p_p = kind(temperature_p_p)
  REAL*8 tracer (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_tracers_length)
  integer, parameter :: cctki_use_tracer = kind(tracer)
  REAL*8 tracer_p (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_tracers_length)
  integer, parameter :: cctki_use_tracer_p = kind(tracer_p)
  REAL*8 tracer_p_p (cctk_ash1,cctk_ash2,cctk_ash3,GRHydro_tracers_length)
  integer, parameter :: cctki_use_tracer_p_p = kind(tracer_p_p)
  REAL*8 vel (cctk_ash1,cctk_ash2,cctk_ash3,vel_length)
  integer, parameter :: cctki_use_vel = kind(vel)
  REAL*8 vel_p (cctk_ash1,cctk_ash2,cctk_ash3,vel_length)
  integer, parameter :: cctki_use_vel_p = kind(vel_p)
  REAL*8 vel_p_p (cctk_ash1,cctk_ash2,cctk_ash3,vel_length)
  integer, parameter :: cctki_use_vel_p_p = kind(vel_p_p)
  REAL*8 velxminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_velxminus = kind(velxminus)
  REAL*8 velxplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_velxplus = kind(velxplus)
  REAL*8 velyminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_velyminus = kind(velyminus)
  REAL*8 velyplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_velyplus = kind(velyplus)
  REAL*8 velzminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_velzminus = kind(velzminus)
  REAL*8 velzplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_velzplus = kind(velzplus)
  REAL*8 w_lorentz (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_w_lorentz = kind(w_lorentz)
  REAL*8 w_lorentz_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_w_lorentz_p = kind(w_lorentz_p)
  REAL*8 w_lorentz_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_w_lorentz_p_p = kind(w_lorentz_p_p)
  REAL*8 w_lorentzminus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_w_lorentzminus = kind(w_lorentzminus)
  REAL*8 w_lorentzplus (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_w_lorentzplus = kind(w_lorentzplus)
  REAL*8 x (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_x = kind(x)
  INTEGER*4 xoffset
  integer, parameter :: cctki_use_xoffset = kind(xoffset)
  REAL*8 y (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_y = kind(y)
  INTEGER*4 yoffset
  integer, parameter :: cctki_use_yoffset = kind(yoffset)
  REAL*8 z (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_z = kind(z)
  INTEGER*4 zoffset
  integer, parameter :: cctki_use_zoffset = kind(zoffset)
  REAL*8 GRHydro_Y_e_max
  integer, parameter :: cctki_use_GRHydro_Y_e_max = kind(GRHydro_Y_e_max)
  REAL*8 GRHydro_Y_e_min
  integer, parameter :: cctki_use_GRHydro_Y_e_min = kind(GRHydro_Y_e_min)
  REAL*8 GRHydro_atmo_tolerance
  integer, parameter :: cctki_use_GRHydro_atmo_tolerance = kind(GRHydro_atmo_tolerance)
  REAL*8 GRHydro_del_ptol
  integer, parameter :: cctki_use_GRHydro_del_ptol = kind(GRHydro_del_ptol)
  REAL*8 GRHydro_eos_rf_prec
  integer, parameter :: cctki_use_GRHydro_eos_rf_prec = kind(GRHydro_eos_rf_prec)
  REAL*8 GRHydro_eps_min
  integer, parameter :: cctki_use_GRHydro_eps_min = kind(GRHydro_eps_min)
  REAL*8 GRHydro_hot_atmo_Y_e
  integer, parameter :: cctki_use_GRHydro_hot_atmo_Y_e = kind(GRHydro_hot_atmo_Y_e)
  REAL*8 GRHydro_hot_atmo_temp
  integer, parameter :: cctki_use_GRHydro_hot_atmo_temp = kind(GRHydro_hot_atmo_temp)
  REAL*8 GRHydro_lorentz_overshoot_cutoff
  integer, parameter :: cctki_use_GRHydro_lorentz_overshoot_cutoff = kind(GRHydro_lorentz_overshoot_cutoff)
  REAL*8 GRHydro_max_temp
  integer, parameter :: cctki_use_GRHydro_max_temp = kind(GRHydro_max_temp)
  REAL*8 GRHydro_perc_ptol
  integer, parameter :: cctki_use_GRHydro_perc_ptol = kind(GRHydro_perc_ptol)
  REAL*8 GRHydro_rho_central
  integer, parameter :: cctki_use_GRHydro_rho_central = kind(GRHydro_rho_central)
  REAL*8 Tmunu_damping_radius_max
  integer, parameter :: cctki_use_Tmunu_damping_radius_max = kind(Tmunu_damping_radius_max)
  REAL*8 Tmunu_damping_radius_min
  integer, parameter :: cctki_use_Tmunu_damping_radius_min = kind(Tmunu_damping_radius_min)
  REAL*8 atmo_falloff_power
  integer, parameter :: cctki_use_atmo_falloff_power = kind(atmo_falloff_power)
  REAL*8 atmo_falloff_radius
  integer, parameter :: cctki_use_atmo_falloff_radius = kind(atmo_falloff_radius)
  REAL*8 atmo_tolerance_power
  integer, parameter :: cctki_use_atmo_tolerance_power = kind(atmo_tolerance_power)
  REAL*8 atmo_tolerance_radius
  integer, parameter :: cctki_use_atmo_tolerance_radius = kind(atmo_tolerance_radius)
  REAL*8 c2p_reset_pressure_to_value
  integer, parameter :: cctki_use_c2p_reset_pressure_to_value = kind(c2p_reset_pressure_to_value)
  REAL*8 comoving_factor
  integer, parameter :: cctki_use_comoving_factor = kind(comoving_factor)
  REAL*8 comoving_tanh_factor
  integer, parameter :: cctki_use_comoving_tanh_factor = kind(comoving_tanh_factor)
  REAL*8 comoving_tanh_offset
  integer, parameter :: cctki_use_comoving_tanh_offset = kind(comoving_tanh_offset)
  REAL*8 enhanced_ppm_C2
  integer, parameter :: cctki_use_enhanced_ppm_C2 = kind(enhanced_ppm_C2)
  REAL*8 enhanced_ppm_C3
  integer, parameter :: cctki_use_enhanced_ppm_C3 = kind(enhanced_ppm_C3)
  REAL*8 initial_Gamma
  integer, parameter :: cctki_use_initial_Gamma = kind(initial_Gamma)
  REAL*8 initial_atmosphere_factor
  integer, parameter :: cctki_use_initial_atmosphere_factor = kind(initial_atmosphere_factor)
  REAL*8 initial_k
  integer, parameter :: cctki_use_initial_k = kind(initial_k)
  REAL*8 initial_rho_abs_min
  integer, parameter :: cctki_use_initial_rho_abs_min = kind(initial_rho_abs_min)
  REAL*8 initial_rho_rel_min
  integer, parameter :: cctki_use_initial_rho_rel_min = kind(initial_rho_rel_min)
  REAL*8 kap_dc
  integer, parameter :: cctki_use_kap_dc = kind(kap_dc)
  REAL*8 max_magnetic_to_gas_pressure_ratio
  integer, parameter :: cctki_use_max_magnetic_to_gas_pressure_ratio = kind(max_magnetic_to_gas_pressure_ratio)
  REAL*8 min_tracer
  integer, parameter :: cctki_use_min_tracer = kind(min_tracer)
  REAL*8 mp5_alpha
  integer, parameter :: cctki_use_mp5_alpha = kind(mp5_alpha)
  REAL*8 mp5_eps
  integer, parameter :: cctki_use_mp5_eps = kind(mp5_eps)
  REAL*8 myfloor
  integer, parameter :: cctki_use_myfloor = kind(myfloor)
  REAL*8 ppm_epsilon
  integer, parameter :: cctki_use_ppm_epsilon = kind(ppm_epsilon)
  REAL*8 ppm_epsilon_shock
  integer, parameter :: cctki_use_ppm_epsilon_shock = kind(ppm_epsilon_shock)
  REAL*8 ppm_eta1
  integer, parameter :: cctki_use_ppm_eta1 = kind(ppm_eta1)
  REAL*8 ppm_eta2
  integer, parameter :: cctki_use_ppm_eta2 = kind(ppm_eta2)
  REAL*8 ppm_k0
  integer, parameter :: cctki_use_ppm_k0 = kind(ppm_k0)
  REAL*8 ppm_omega1
  integer, parameter :: cctki_use_ppm_omega1 = kind(ppm_omega1)
  REAL*8 ppm_omega2
  integer, parameter :: cctki_use_ppm_omega2 = kind(ppm_omega2)
  REAL*8 ppm_omega_tracer
  integer, parameter :: cctki_use_ppm_omega_tracer = kind(ppm_omega_tracer)
  REAL*8 ppm_small
  integer, parameter :: cctki_use_ppm_small = kind(ppm_small)
  REAL*8 rho_abs_min
  integer, parameter :: cctki_use_rho_abs_min = kind(rho_abs_min)
  REAL*8 rho_abs_min_after_recovery
  integer, parameter :: cctki_use_rho_abs_min_after_recovery = kind(rho_abs_min_after_recovery)
  REAL*8 rho_rel_min
  integer, parameter :: cctki_use_rho_rel_min = kind(rho_rel_min)
  REAL*8 setcharmax
  integer, parameter :: cctki_use_setcharmax = kind(setcharmax)
  REAL*8 setcharmin
  integer, parameter :: cctki_use_setcharmin = kind(setcharmin)
  REAL*8 sqrtdet_thr
  integer, parameter :: cctki_use_sqrtdet_thr = kind(sqrtdet_thr)
  REAL*8 tau_rel_min
  integer, parameter :: cctki_use_tau_rel_min = kind(tau_rel_min)
  REAL*8 weno_eps
  integer, parameter :: cctki_use_weno_eps = kind(weno_eps)
  integer*8 Avec_gauge
  integer, parameter :: cctki_use_Avec_gauge = kind(Avec_gauge)
  integer*8 EoS_Change_type
  integer, parameter :: cctki_use_EoS_Change_type = kind(EoS_Change_type)
  integer*8 GRHydro_c2p_failed_action
  integer, parameter :: cctki_use_GRHydro_c2p_failed_action = kind(GRHydro_c2p_failed_action)
  integer*8 GRHydro_eos_table
  integer, parameter :: cctki_use_GRHydro_eos_table = kind(GRHydro_eos_table)
  integer*8 GRHydro_eos_type
  integer, parameter :: cctki_use_GRHydro_eos_type = kind(GRHydro_eos_type)
  integer*8 HLLE_type
  integer, parameter :: cctki_use_HLLE_type = kind(HLLE_type)
  integer*8 bound
  integer, parameter :: cctki_use_bound = kind(bound)
  integer*8 comoving_attenuate
  integer, parameter :: cctki_use_comoving_attenuate = kind(comoving_attenuate)
  integer*8 comoving_v_method
  integer, parameter :: cctki_use_comoving_v_method = kind(comoving_v_method)
  integer*8 gradient_method
  integer, parameter :: cctki_use_gradient_method = kind(gradient_method)
  integer*8 left_eigenvectors
  integer, parameter :: cctki_use_left_eigenvectors = kind(left_eigenvectors)
  integer*8 method_type
  integer, parameter :: cctki_use_method_type = kind(method_type)
  integer*8 numerical_viscosity
  integer, parameter :: cctki_use_numerical_viscosity = kind(numerical_viscosity)
  integer*8 particle_interpolator
  integer, parameter :: cctki_use_particle_interpolator = kind(particle_interpolator)
  integer*8 ppm_flatten
  integer, parameter :: cctki_use_ppm_flatten = kind(ppm_flatten)
  integer*8 psidcspeed
  integer, parameter :: cctki_use_psidcspeed = kind(psidcspeed)
  integer*8 recon_method
  integer, parameter :: cctki_use_recon_method = kind(recon_method)
  integer*8 recon_vars
  integer, parameter :: cctki_use_recon_vars = kind(recon_vars)
  integer*8 riemann_solver
  integer, parameter :: cctki_use_riemann_solver = kind(riemann_solver)
  integer*8 tvd_limiter
  integer, parameter :: cctki_use_tvd_limiter = kind(tvd_limiter)
  integer*8 use_evolution_mask
  integer, parameter :: cctki_use_use_evolution_mask = kind(use_evolution_mask)
  INTEGER*4 Check_Rho_Minimum
  integer, parameter :: cctki_use_Check_Rho_Minimum = kind(Check_Rho_Minimum)
  INTEGER*4 EoS_Change
  integer, parameter :: cctki_use_EoS_Change = kind(EoS_Change)
  INTEGER*4 GRHydro_MaxNumConstrainedVars
  integer, parameter :: cctki_use_GRHydro_MaxNumConstrainedVars = kind(GRHydro_MaxNumConstrainedVars)
  INTEGER*4 GRHydro_MaxNumEvolvedVars
  integer, parameter :: cctki_use_GRHydro_MaxNumEvolvedVars = kind(GRHydro_MaxNumEvolvedVars)
  INTEGER*4 GRHydro_MaxNumEvolvedVarsSlow
  integer, parameter :: cctki_use_GRHydro_MaxNumEvolvedVarsSlow = kind(GRHydro_MaxNumEvolvedVarsSlow)
  INTEGER*4 GRHydro_MaxNumSandRVars
  integer, parameter :: cctki_use_GRHydro_MaxNumSandRVars = kind(GRHydro_MaxNumSandRVars)
  INTEGER*4 GRHydro_NaN_verbose
  integer, parameter :: cctki_use_GRHydro_NaN_verbose = kind(GRHydro_NaN_verbose)
  INTEGER*4 GRHydro_c2p_reset_eps_tau_hot_eos
  integer, parameter :: cctki_use_GRHydro_c2p_reset_eps_tau_hot_eos = kind(GRHydro_c2p_reset_eps_tau_hot_eos)
  INTEGER*4 GRHydro_c2p_warn_from_reflevel
  integer, parameter :: cctki_use_GRHydro_c2p_warn_from_reflevel = kind(GRHydro_c2p_warn_from_reflevel)
  INTEGER*4 GRHydro_c2p_warnlevel
  integer, parameter :: cctki_use_GRHydro_c2p_warnlevel = kind(GRHydro_c2p_warnlevel)
  INTEGER*4 GRHydro_countmax
  integer, parameter :: cctki_use_GRHydro_countmax = kind(GRHydro_countmax)
  INTEGER*4 GRHydro_countmin
  integer, parameter :: cctki_use_GRHydro_countmin = kind(GRHydro_countmin)
  INTEGER*4 GRHydro_enable_internal_excision
  integer, parameter :: cctki_use_GRHydro_enable_internal_excision = kind(GRHydro_enable_internal_excision)
  INTEGER*4 GRHydro_eos_hot_eps_fix
  integer, parameter :: cctki_use_GRHydro_eos_hot_eps_fix = kind(GRHydro_eos_hot_eps_fix)
  INTEGER*4 GRHydro_eos_hot_prim2con_warn
  integer, parameter :: cctki_use_GRHydro_eos_hot_prim2con_warn = kind(GRHydro_eos_hot_prim2con_warn)
  INTEGER*4 GRHydro_hydro_excision
  integer, parameter :: cctki_use_GRHydro_hydro_excision = kind(GRHydro_hydro_excision)
  INTEGER*4 GRHydro_oppm_reflevel
  integer, parameter :: cctki_use_GRHydro_oppm_reflevel = kind(GRHydro_oppm_reflevel)
  INTEGER*4 GRHydro_polish
  integer, parameter :: cctki_use_GRHydro_polish = kind(GRHydro_polish)
  INTEGER*4 GRHydro_stencil
  integer, parameter :: cctki_use_GRHydro_stencil = kind(GRHydro_stencil)
  INTEGER*4 WENO_order
  integer, parameter :: cctki_use_WENO_order = kind(WENO_order)
  INTEGER*4 apply_H_viscosity
  integer, parameter :: cctki_use_apply_H_viscosity = kind(apply_H_viscosity)
  INTEGER*4 c2p_reset_pressure
  integer, parameter :: cctki_use_c2p_reset_pressure = kind(c2p_reset_pressure)
  INTEGER*4 c2p_resort_to_bisection
  integer, parameter :: cctki_use_c2p_resort_to_bisection = kind(c2p_resort_to_bisection)
  INTEGER*4 calculate_bcom
  integer, parameter :: cctki_use_calculate_bcom = kind(calculate_bcom)
  INTEGER*4 check_for_trivial_rp
  integer, parameter :: cctki_use_check_for_trivial_rp = kind(check_for_trivial_rp)
  INTEGER*4 clean_divergence
  integer, parameter :: cctki_use_clean_divergence = kind(clean_divergence)
  INTEGER*4 con2prim_oct_hack
  integer, parameter :: cctki_use_con2prim_oct_hack = kind(con2prim_oct_hack)
  INTEGER*4 decouple_normal_Bfield
  integer, parameter :: cctki_use_decouple_normal_Bfield = kind(decouple_normal_Bfield)
  INTEGER*4 eno_order
  integer, parameter :: cctki_use_eno_order = kind(eno_order)
  INTEGER*4 evolve_tracer
  integer, parameter :: cctki_use_evolve_tracer = kind(evolve_tracer)
  INTEGER*4 mp5_adaptive_eps
  integer, parameter :: cctki_use_mp5_adaptive_eps = kind(mp5_adaptive_eps)
  INTEGER*4 number_of_arrays
  integer, parameter :: cctki_use_number_of_arrays = kind(number_of_arrays)
  INTEGER*4 number_of_particles
  integer, parameter :: cctki_use_number_of_particles = kind(number_of_particles)
  INTEGER*4 number_of_tracers
  integer, parameter :: cctki_use_number_of_tracers = kind(number_of_tracers)
  INTEGER*4 particle_interpolation_order
  integer, parameter :: cctki_use_particle_interpolation_order = kind(particle_interpolation_order)
  INTEGER*4 ppm_detect
  integer, parameter :: cctki_use_ppm_detect = kind(ppm_detect)
  INTEGER*4 ppm_mppm
  integer, parameter :: cctki_use_ppm_mppm = kind(ppm_mppm)
  INTEGER*4 ppm_mppm_debug_eigenvalues
  integer, parameter :: cctki_use_ppm_mppm_debug_eigenvalues = kind(ppm_mppm_debug_eigenvalues)
  INTEGER*4 reconstruct_Wv
  integer, parameter :: cctki_use_reconstruct_Wv = kind(reconstruct_Wv)
  INTEGER*4 reconstruct_temper
  integer, parameter :: cctki_use_reconstruct_temper = kind(reconstruct_temper)
  INTEGER*4 set_trivial_rp_grid_function
  integer, parameter :: cctki_use_set_trivial_rp_grid_function = kind(set_trivial_rp_grid_function)
  INTEGER*4 sources_spatial_order
  integer, parameter :: cctki_use_sources_spatial_order = kind(sources_spatial_order)
  INTEGER*4 sync_conserved_only
  integer, parameter :: cctki_use_sync_conserved_only = kind(sync_conserved_only)
  INTEGER*4 track_divB
  integer, parameter :: cctki_use_track_divB = kind(track_divB)
  INTEGER*4 transport_constraints
  integer, parameter :: cctki_use_transport_constraints = kind(transport_constraints)
  INTEGER*4 use_MoL_slow_multirate_sector
  integer, parameter :: cctki_use_use_MoL_slow_multirate_sector = kind(use_MoL_slow_multirate_sector)
  INTEGER*4 use_enhanced_ppm
  integer, parameter :: cctki_use_use_enhanced_ppm = kind(use_enhanced_ppm)
  INTEGER*4 use_min_tracer
  integer, parameter :: cctki_use_use_min_tracer = kind(use_min_tracer)
  INTEGER*4 use_optimized_ppm
  integer, parameter :: cctki_use_use_optimized_ppm = kind(use_optimized_ppm)
  INTEGER*4 use_weighted_fluxes
  integer, parameter :: cctki_use_use_weighted_fluxes = kind(use_weighted_fluxes)
  INTEGER*4 weno_adaptive_epsilon
  integer, parameter :: cctki_use_weno_adaptive_epsilon = kind(weno_adaptive_epsilon)
  INTEGER*4 wk_atmosphere
  integer, parameter :: cctki_use_wk_atmosphere = kind(wk_atmosphere)
  COMMON /GRHydrorest/GRHydro_Y_e_max, GRHydro_Y_e_min, GRHydro_atmo_tolerance, GRHydro_del_ptol, GRHydro_eos_rf_prec, GRHydro_eps_&
  &min, GRHydro_hot_atmo_Y_e, GRHydro_hot_atmo_temp, GRHydro_lorentz_overshoot_cutoff, GRHydro_max_temp, GRHydro_perc_ptol, GRHydro&
  &_rho_central, Tmunu_damping_radius_max, Tmunu_damping_radius_min, atmo_falloff_power, atmo_falloff_radius, atmo_tolerance_power,&
  & atmo_tolerance_radius, c2p_reset_pressure_to_value, comoving_factor, comoving_tanh_factor, comoving_tanh_offset, enhanced_ppm_C&
  &2, enhanced_ppm_C3, initial_Gamma, initial_atmosphere_factor, initial_k, initial_rho_abs_min, initial_rho_rel_min, kap_dc, max_m&
  &agnetic_to_gas_pressure_ratio, min_tracer, mp5_alpha, mp5_eps, myfloor, ppm_epsilon, ppm_epsilon_shock, ppm_eta1, ppm_eta2, ppm_&
  &k0, ppm_omega1, ppm_omega2, ppm_omega_tracer, ppm_small, rho_abs_min, rho_abs_min_after_recovery, rho_rel_min, setcharmax, setch&
  &armin, sqrtdet_thr, tau_rel_min, weno_eps, Avec_gauge, EoS_Change_type, GRHydro_c2p_failed_action, GRHydro_eos_table, GRHydro_eo&
  &s_type, HLLE_type, bound, comoving_attenuate, comoving_v_method, gradient_method, left_eigenvectors, method_type, numerical_visc&
  &osity, particle_interpolator, ppm_flatten, psidcspeed, recon_method, recon_vars, riemann_solver, tvd_limiter, use_evolution_mask&
  &, Check_Rho_Minimum, EoS_Change, GRHydro_MaxNumConstrainedVars, GRHydro_MaxNumEvolvedVars, GRHydro_MaxNumEvolvedVarsSlow, GRHydr&
  &o_MaxNumSandRVars, GRHydro_NaN_verbose, GRHydro_c2p_reset_eps_tau_hot_eos, GRHydro_c2p_warn_from_reflevel, GRHydro_c2p_warnlevel&
  &, GRHydro_countmax, GRHydro_countmin, GRHydro_enable_internal_excision, GRHydro_eos_hot_eps_fix, GRHydro_eos_hot_prim2con_warn, &
  &GRHydro_hydro_excision, GRHydro_oppm_reflevel, GRHydro_polish, GRHydro_stencil, WENO_order, apply_H_viscosity, c2p_reset_pressur&
  &e, c2p_resort_to_bisection, calculate_bcom, check_for_trivial_rp, clean_divergence, con2prim_oct_hack, decouple_normal_Bfield, e&
  &no_order, evolve_tracer, mp5_adaptive_eps, number_of_arrays, number_of_particles, number_of_tracers, particle_interpolation_orde&
  &r, ppm_detect, ppm_mppm, ppm_mppm_debug_eigenvalues, reconstruct_Wv, reconstruct_temper, set_trivial_rp_grid_function, sources_s&
  &patial_order, sync_conserved_only, track_divB, transport_constraints, use_MoL_slow_multirate_sector, use_enhanced_ppm, use_min_t&
  &racer, use_optimized_ppm, use_weighted_fluxes, weno_adaptive_epsilon, wk_atmosphere
  INTEGER*4 constrain_to_1D
  integer, parameter :: cctki_use_constrain_to_1D = kind(constrain_to_1D)
  INTEGER*4 use_cxx_code
  integer, parameter :: cctki_use_use_cxx_code = kind(use_cxx_code)
  INTEGER*4 verbose
  integer, parameter :: cctki_use_verbose = kind(verbose)
  COMMON /GRHydropriv/constrain_to_1D, use_cxx_code, verbose
  integer*8 CCTKH0
  integer, parameter :: cctki_use_CCTKH0 = kind(CCTKH0)
  integer*8 CCTKH1
  integer, parameter :: cctki_use_CCTKH1 = kind(CCTKH1)
  integer*8 CCTKH2
  integer, parameter :: cctki_use_CCTKH2 = kind(CCTKH2)
  integer*8 CCTKH3
  integer, parameter :: cctki_use_CCTKH3 = kind(CCTKH3)
  integer*8 CCTKH4
  integer, parameter :: cctki_use_CCTKH4 = kind(CCTKH4)
  integer*8 CCTKH5
  integer, parameter :: cctki_use_CCTKH5 = kind(CCTKH5)
  integer*8 CCTKH6
  integer, parameter :: cctki_use_CCTKH6 = kind(CCTKH6)
  integer*8 CCTKH7
  integer, parameter :: cctki_use_CCTKH7 = kind(CCTKH7)
  integer*8 initial_shift
  integer, parameter :: cctki_use_initial_shift = kind(initial_shift)
  integer*8 CCTKH8
  integer, parameter :: cctki_use_CCTKH8 = kind(CCTKH8)
  integer*8 CCTKH9
  integer, parameter :: cctki_use_CCTKH9 = kind(CCTKH9)
  integer*8 CCTKH11
  integer, parameter :: cctki_use_CCTKH11 = kind(CCTKH11)
  integer*8 metric_type
  integer, parameter :: cctki_use_metric_type = kind(metric_type)
  integer*8 shift_evolution_method
  integer, parameter :: cctki_use_shift_evolution_method = kind(shift_evolution_method)
  integer*8 CCTKH13
  integer, parameter :: cctki_use_CCTKH13 = kind(CCTKH13)
  INTEGER*4 CCTKH10
  integer, parameter :: cctki_use_CCTKH10 = kind(CCTKH10)
  INTEGER*4 CCTKH12
  integer, parameter :: cctki_use_CCTKH12 = kind(CCTKH12)
  INTEGER*4 CCTKH14
  integer, parameter :: cctki_use_CCTKH14 = kind(CCTKH14)
  COMMON /ADMBASErest/CCTKH0, CCTKH1, CCTKH2, CCTKH3, CCTKH4, CCTKH5, CCTKH6, CCTKH7, initial_shift, CCTKH8, CCTKH9, CCTKH11, metri&
  &c_type, shift_evolution_method, CCTKH13, CCTKH10, CCTKH12, CCTKH14
  REAL*8 CCTKH15
  integer, parameter :: cctki_use_CCTKH15 = kind(CCTKH15)
  REAL*8 CCTKH25
  integer, parameter :: cctki_use_CCTKH25 = kind(CCTKH25)
  REAL*8 CCTKH26
  integer, parameter :: cctki_use_CCTKH26 = kind(CCTKH26)
  REAL*8 CCTKH27 (10)
  integer, parameter :: cctki_use_CCTKH27 = kind(CCTKH27)
  REAL*8 CCTKH28
  integer, parameter :: cctki_use_CCTKH28 = kind(CCTKH28)
  REAL*8 CCTKH29
  integer, parameter :: cctki_use_CCTKH29 = kind(CCTKH29)
  REAL*8 CCTKH30
  integer, parameter :: cctki_use_CCTKH30 = kind(CCTKH30)
  REAL*8 CCTKH31
  integer, parameter :: cctki_use_CCTKH31 = kind(CCTKH31)
  REAL*8 CCTKH32
  integer, parameter :: cctki_use_CCTKH32 = kind(CCTKH32)
  REAL*8 CCTKH33 (9)
  integer, parameter :: cctki_use_CCTKH33 = kind(CCTKH33)
  REAL*8 CCTKH34
  integer, parameter :: cctki_use_CCTKH34 = kind(CCTKH34)
  REAL*8 CCTKH38
  integer, parameter :: cctki_use_CCTKH38 = kind(CCTKH38)
  REAL*8 CCTKH39
  integer, parameter :: cctki_use_CCTKH39 = kind(CCTKH39)
  REAL*8 poly_k
  integer, parameter :: cctki_use_poly_k = kind(poly_k)
  integer*8 CCTKH17
  integer, parameter :: cctki_use_CCTKH17 = kind(CCTKH17)
  integer*8 CCTKH20
  integer, parameter :: cctki_use_CCTKH20 = kind(CCTKH20)
  integer*8 CCTKH24
  integer, parameter :: cctki_use_CCTKH24 = kind(CCTKH24)
  integer*8 CCTKH37
  integer, parameter :: cctki_use_CCTKH37 = kind(CCTKH37)
  INTEGER*4 CCTKH16
  integer, parameter :: cctki_use_CCTKH16 = kind(CCTKH16)
  INTEGER*4 CCTKH18
  integer, parameter :: cctki_use_CCTKH18 = kind(CCTKH18)
  INTEGER*4 CCTKH19
  integer, parameter :: cctki_use_CCTKH19 = kind(CCTKH19)
  INTEGER*4 CCTKH21
  integer, parameter :: cctki_use_CCTKH21 = kind(CCTKH21)
  INTEGER*4 CCTKH22
  integer, parameter :: cctki_use_CCTKH22 = kind(CCTKH22)
  INTEGER*4 CCTKH23
  integer, parameter :: cctki_use_CCTKH23 = kind(CCTKH23)
  INTEGER*4 CCTKH35
  integer, parameter :: cctki_use_CCTKH35 = kind(CCTKH35)
  INTEGER*4 CCTKH36
  integer, parameter :: cctki_use_CCTKH36 = kind(CCTKH36)
  INTEGER*4 CCTKH40
  integer, parameter :: cctki_use_CCTKH40 = kind(CCTKH40)
  INTEGER*4 CCTKH41
  integer, parameter :: cctki_use_CCTKH41 = kind(CCTKH41)
  COMMON /EOS_OMNIrest/CCTKH15, CCTKH25, CCTKH26, CCTKH27, CCTKH28, CCTKH29, CCTKH30, CCTKH31, CCTKH32, CCTKH33, CCTKH34, CCTKH38, &
  &CCTKH39, poly_k, CCTKH17, CCTKH20, CCTKH24, CCTKH37, CCTKH16, CCTKH18, CCTKH19, CCTKH21, CCTKH22, CCTKH23, CCTKH35, CCTKH36, CCT&
  &KH40, CCTKH41
  integer*8 CCTKH42
  integer, parameter :: cctki_use_CCTKH42 = kind(CCTKH42)
  integer*8 Bvec_evolution_method
  integer, parameter :: cctki_use_Bvec_evolution_method = kind(Bvec_evolution_method)
  integer*8 Y_e_evolution_method
  integer, parameter :: cctki_use_Y_e_evolution_method = kind(Y_e_evolution_method)
  integer*8 entropy_evolution_method
  integer, parameter :: cctki_use_entropy_evolution_method = kind(entropy_evolution_method)
  integer*8 evolution_method
  integer, parameter :: cctki_use_evolution_method = kind(evolution_method)
  integer*8 CCTKH43
  integer, parameter :: cctki_use_CCTKH43 = kind(CCTKH43)
  integer*8 CCTKH44
  integer, parameter :: cctki_use_CCTKH44 = kind(CCTKH44)
  integer*8 CCTKH45
  integer, parameter :: cctki_use_CCTKH45 = kind(CCTKH45)
  integer*8 initial_Bvec
  integer, parameter :: cctki_use_initial_Bvec = kind(initial_Bvec)
  integer*8 CCTKH46
  integer, parameter :: cctki_use_CCTKH46 = kind(CCTKH46)
  integer*8 CCTKH47
  integer, parameter :: cctki_use_CCTKH47 = kind(CCTKH47)
  integer*8 CCTKH48
  integer, parameter :: cctki_use_CCTKH48 = kind(CCTKH48)
  integer*8 CCTKH49
  integer, parameter :: cctki_use_CCTKH49 = kind(CCTKH49)
  integer*8 prolongation_type
  integer, parameter :: cctki_use_prolongation_type = kind(prolongation_type)
  integer*8 temperature_evolution_method
  integer, parameter :: cctki_use_temperature_evolution_method = kind(temperature_evolution_method)
  INTEGER*4 hydro_excision
  integer, parameter :: cctki_use_hydro_excision = kind(hydro_excision)
  INTEGER*4 timelevels
  integer, parameter :: cctki_use_timelevels = kind(timelevels)
  COMMON /HYDROBASErest/CCTKH42, Bvec_evolution_method, Y_e_evolution_method, entropy_evolution_method, evolution_method, CCTKH43, &
  &CCTKH44, CCTKH45, initial_Bvec, CCTKH46, CCTKH47, CCTKH48, CCTKH49, prolongation_type, temperature_evolution_method, hydro_excis&
  &ion, timelevels
  INTEGER*4 MoL_Max_Evolved_Array_Size
  integer, parameter :: cctki_use_MoL_Max_Evolved_Array_Size = kind(MoL_Max_Evolved_Array_Size)
  INTEGER*4 CCTKH50
  integer, parameter :: cctki_use_CCTKH50 = kind(CCTKH50)
  INTEGER*4 MoL_Num_ArrayEvolved_Vars
  integer, parameter :: cctki_use_MoL_Num_ArrayEvolved_Vars = kind(MoL_Num_ArrayEvolved_Vars)
  INTEGER*4 CCTKH51
  integer, parameter :: cctki_use_CCTKH51 = kind(CCTKH51)
  INTEGER*4 MoL_Num_Constrained_Vars
  integer, parameter :: cctki_use_MoL_Num_Constrained_Vars = kind(MoL_Num_Constrained_Vars)
  INTEGER*4 MoL_Num_Evolved_Vars
  integer, parameter :: cctki_use_MoL_Num_Evolved_Vars = kind(MoL_Num_Evolved_Vars)
  INTEGER*4 MoL_Num_Evolved_Vars_Slow
  integer, parameter :: cctki_use_MoL_Num_Evolved_Vars_Slow = kind(MoL_Num_Evolved_Vars_Slow)
  INTEGER*4 MoL_Num_SaveAndRestore_Vars
  integer, parameter :: cctki_use_MoL_Num_SaveAndRestore_Vars = kind(MoL_Num_SaveAndRestore_Vars)
  INTEGER*4 CCTKH52
  integer, parameter :: cctki_use_CCTKH52 = kind(CCTKH52)
  COMMON /METHODOFLINESrest/MoL_Max_Evolved_Array_Size, CCTKH50, MoL_Num_ArrayEvolved_Vars, CCTKH51, MoL_Num_Constrained_Vars, MoL_&
  &Num_Evolved_Vars, MoL_Num_Evolved_Vars_Slow, MoL_Num_SaveAndRestore_Vars, CCTKH52
  INTEGER*4 use_mask
  integer, parameter :: cctki_use_use_mask = kind(use_mask)
  COMMON /SPACEMASKrest/use_mask
  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
  interface
  INTEGER*4 function Boundary_SelectGroupForBC (GH, faces, boundary_width, table_handle, group_name, bc_name)
  implicit none
  integer*8 GH
  INTEGER*4 faces
  INTEGER*4 boundary_width
  INTEGER*4 table_handle
  character(*) group_name
  character(*) bc_name
  end function Boundary_SelectGroupForBC
  end interface
  interface
  INTEGER*4 function Boundary_SelectVarForBC (GH, faces, boundary_width, table_handle, var_name, bc_name)
  implicit none
  integer*8 GH
  INTEGER*4 faces
  INTEGER*4 boundary_width
  INTEGER*4 table_handle
  character(*) var_name
  character(*) bc_name
  end function Boundary_SelectVarForBC
  end interface
  interface
  subroutine Con2PrimGen (handle, dens, sx, sy, sz, tau, rho, velx, vely, velz, epsilon, pressure, w_lorentz, uxx, uxy, uxz, uyy, u&
  &yz, uzz, det, x, y, z, r, epsnegative, GRHydro_rho_min, pmin, epsmin, GRHydro_reflevel, retval)
  implicit none
  INTEGER*4 handle
  REAL*8 dens
  REAL*8 sx
  REAL*8 sy
  REAL*8 sz
  REAL*8 tau
  REAL*8 rho
  REAL*8 velx
  REAL*8 vely
  REAL*8 velz
  REAL*8 epsilon
  REAL*8 pressure
  REAL*8 w_lorentz
  REAL*8 uxx
  REAL*8 uxy
  REAL*8 uxz
  REAL*8 uyy
  REAL*8 uyz
  REAL*8 uzz
  REAL*8 det
  REAL*8 x
  REAL*8 y
  REAL*8 z
  REAL*8 r
  INTEGER*4 epsnegative
  REAL*8 GRHydro_rho_min
  REAL*8 pmin
  REAL*8 epsmin
  INTEGER*4 GRHydro_reflevel
  REAL*8 retval
  end subroutine Con2PrimGen
  end interface
  interface
  subroutine Con2PrimGenM (handle, keytemp, prec, gamma_eos, dens, sx, sy, sz, tau, Bconsx, Bconsy, Bconsz, y_e, temp, rho, velx, v&
  &ely, velz, epsilon, pressure, Bvecx, Bvecy, Bvecz, bvecsq, w_lorentz, gxx, gxy, gxz, gyy, gyz, gzz, uxx, uxy, uxz, uyy, uyz, uzz&
  &, det, epsnegative, retval)
  implicit none
  INTEGER*4 handle
  INTEGER*4 keytemp
  REAL*8 prec
  REAL*8 gamma_eos
  REAL*8 dens
  REAL*8 sx
  REAL*8 sy
  REAL*8 sz
  REAL*8 tau
  REAL*8 Bconsx
  REAL*8 Bconsy
  REAL*8 Bconsz
  REAL*8 y_e
  REAL*8 temp
  REAL*8 rho
  REAL*8 velx
  REAL*8 vely
  REAL*8 velz
  REAL*8 epsilon
  REAL*8 pressure
  REAL*8 Bvecx
  REAL*8 Bvecy
  REAL*8 Bvecz
  REAL*8 bvecsq
  REAL*8 w_lorentz
  REAL*8 gxx
  REAL*8 gxy
  REAL*8 gxz
  REAL*8 gyy
  REAL*8 gyz
  REAL*8 gzz
  REAL*8 uxx
  REAL*8 uxy
  REAL*8 uxz
  REAL*8 uyy
  REAL*8 uyz
  REAL*8 uzz
  REAL*8 det
  INTEGER*4 epsnegative
  REAL*8 retval
  end subroutine Con2PrimGenM
  end interface
  interface
  subroutine Con2PrimGenMee (handle, keytemp, prec, gamma_eos, dens, sx, sy, sz, tau, Bconsx, Bconsy, Bconsz, entropycons, y_e, tem&
  &p, rho, velx, vely, velz, epsilon, pressure, Bvecx, Bvecy, Bvecz, Bvecsq, w_lorentz, gxx, gxy, gxz, gyy, gyz, gzz, uxx, uxy, uxz&
  &, uyy, uyz, uzz, det, epsnegative, retval)
  implicit none
  INTEGER*4 handle
  INTEGER*4 keytemp
  REAL*8 prec
  REAL*8 gamma_eos
  REAL*8 dens
  REAL*8 sx
  REAL*8 sy
  REAL*8 sz
  REAL*8 tau
  REAL*8 Bconsx
  REAL*8 Bconsy
  REAL*8 Bconsz
  REAL*8 entropycons
  REAL*8 y_e
  REAL*8 temp
  REAL*8 rho
  REAL*8 velx
  REAL*8 vely
  REAL*8 velz
  REAL*8 epsilon
  REAL*8 pressure
  REAL*8 Bvecx
  REAL*8 Bvecy
  REAL*8 Bvecz
  REAL*8 Bvecsq
  REAL*8 w_lorentz
  REAL*8 gxx
  REAL*8 gxy
  REAL*8 gxz
  REAL*8 gyy
  REAL*8 gyz
  REAL*8 gzz
  REAL*8 uxx
  REAL*8 uxy
  REAL*8 uxz
  REAL*8 uyy
  REAL*8 uyz
  REAL*8 uzz
  REAL*8 det
  INTEGER*4 epsnegative
  REAL*8 retval
  end subroutine Con2PrimGenMee
  end interface
  interface
  subroutine Con2PrimPoly (handle, dens, sx, sy, sz, tau, rho, velx, vely, velz, epsilon, press, w_lorentz, uxx, uxy, uxz, uyy, uyz&
  &, uzz, det, x, y, z, r, rho_min, GRHydro_reflevel, GRHydro_C2P_failed)
  implicit none
  INTEGER*4 handle
  REAL*8 dens
  REAL*8 sx
  REAL*8 sy
  REAL*8 sz
  REAL*8 tau
  REAL*8 rho
  REAL*8 velx
  REAL*8 vely
  REAL*8 velz
  REAL*8 epsilon
  REAL*8 press
  REAL*8 w_lorentz
  REAL*8 uxx
  REAL*8 uxy
  REAL*8 uxz
  REAL*8 uyy
  REAL*8 uyz
  REAL*8 uzz
  REAL*8 det
  REAL*8 x
  REAL*8 y
  REAL*8 z
  REAL*8 r
  REAL*8 rho_min
  INTEGER*4 GRHydro_reflevel
  REAL*8 GRHydro_C2P_failed
  end subroutine Con2PrimPoly
  end interface
  interface
  subroutine Con2PrimPolyM (handle, gamma_eos, dens, sx, sy, sz, sc, Bconsx, Bconsy, Bconsz, rho, velx, vely, velz, epsilon, pressu&
  &re, Bvecx, Bvecy, Bvecz, Bvecsq, w_lorentz, gxx, gxy, gxz, gyy, gyz, gzz, uxx, uxy, uxz, uyy, uyz, uzz, det, epsnegative, retval)
  implicit none
  INTEGER*4 handle
  REAL*8 gamma_eos
  REAL*8 dens
  REAL*8 sx
  REAL*8 sy
  REAL*8 sz
  REAL*8 sc
  REAL*8 Bconsx
  REAL*8 Bconsy
  REAL*8 Bconsz
  REAL*8 rho
  REAL*8 velx
  REAL*8 vely
  REAL*8 velz
  REAL*8 epsilon
  REAL*8 pressure
  REAL*8 Bvecx
  REAL*8 Bvecy
  REAL*8 Bvecz
  REAL*8 Bvecsq
  REAL*8 w_lorentz
  REAL*8 gxx
  REAL*8 gxy
  REAL*8 gxz
  REAL*8 gyy
  REAL*8 gyz
  REAL*8 gzz
  REAL*8 uxx
  REAL*8 uxy
  REAL*8 uxz
  REAL*8 uyy
  REAL*8 uyz
  REAL*8 uzz
  REAL*8 det
  INTEGER*4 epsnegative
  REAL*8 retval
  end subroutine Con2PrimPolyM
  end interface
  interface
  subroutine EOS_Omni_DPressByDEps (eoskey, havetemp, rf_precision, npoints, rho, eps, temp, ye, dpdepsrho, keyerr, anyerr)
  implicit none
  INTEGER*4 eoskey
  INTEGER*4 havetemp
  REAL*8 rf_precision
  INTEGER*4 npoints
  REAL*8 rho(*)
  REAL*8 eps(*)
  REAL*8 temp(*)
  REAL*8 ye(*)
  REAL*8 dpdepsrho(*)
  INTEGER*4 keyerr(*)
  INTEGER*4 anyerr
  end subroutine EOS_Omni_DPressByDEps
  end interface
  interface
  subroutine EOS_Omni_DPressByDRho (eoskey, havetemp, rf_precision, npoints, rho, eps, temp, ye, dpdrhoeps, keyerr, anyerr)
  implicit none
  INTEGER*4 eoskey
  INTEGER*4 havetemp
  REAL*8 rf_precision
  INTEGER*4 npoints
  REAL*8 rho(*)
  REAL*8 eps(*)
  REAL*8 temp(*)
  REAL*8 ye(*)
  REAL*8 dpdrhoeps(*)
  INTEGER*4 keyerr(*)
  INTEGER*4 anyerr
  end subroutine EOS_Omni_DPressByDRho
  end interface
  interface
  subroutine EOS_Omni_EpsFromPress (eoskey, havetemp, rf_precision, npoints, rho, eps, temp, ye, press, xeps, keyerr, anyerr)
  implicit none
  INTEGER*4 eoskey
  INTEGER*4 havetemp
  REAL*8 rf_precision
  INTEGER*4 npoints
  REAL*8 rho(*)
  REAL*8 eps(*)
  REAL*8 temp(*)
  REAL*8 ye(*)
  REAL*8 press(*)
  REAL*8 xeps(*)
  INTEGER*4 keyerr(*)
  INTEGER*4 anyerr
  end subroutine EOS_Omni_EpsFromPress
  end interface
  interface
  INTEGER*4 function EOS_Omni_GetHandle (name)
  implicit none
  character(*) name
  end function EOS_Omni_GetHandle
  end interface
  interface
  subroutine EOS_Omni_cs2 (eoskey, havetemp, rf_precision, npoints, rho, eps, temp, ye, cs2, keyerr, anyerr)
  implicit none
  INTEGER*4 eoskey
  INTEGER*4 havetemp
  REAL*8 rf_precision
  INTEGER*4 npoints
  REAL*8 rho(*)
  REAL*8 eps(*)
  REAL*8 temp(*)
  REAL*8 ye(*)
  REAL*8 cs2(*)
  INTEGER*4 keyerr(*)
  INTEGER*4 anyerr
  end subroutine EOS_Omni_cs2
  end interface
  interface
  subroutine EOS_Omni_dpderho_dpdrhoe (eoskey, havetemp, rf_precision, npoints, rho, eps, temp, ye, dpderho, dpdrhoe, keyerr, anyer&
  &r)
  implicit none
  INTEGER*4 eoskey
  INTEGER*4 havetemp
  REAL*8 rf_precision
  INTEGER*4 npoints
  REAL*8 rho(*)
  REAL*8 eps(*)
  REAL*8 temp(*)
  REAL*8 ye(*)
  REAL*8 dpderho(*)
  REAL*8 dpdrhoe(*)
  INTEGER*4 keyerr(*)
  INTEGER*4 anyerr
  end subroutine EOS_Omni_dpderho_dpdrhoe
  end interface
  interface
  subroutine EOS_Omni_press (eoskey, havetemp, rf_precision, npoints, rho, eps, temp, ye, press, keyerr, anyerr)
  implicit none
  INTEGER*4 eoskey
  INTEGER*4 havetemp
  REAL*8 rf_precision
  INTEGER*4 npoints
  REAL*8 rho(*)
  REAL*8 eps(*)
  REAL*8 temp(*)
  REAL*8 ye(*)
  REAL*8 press(*)
  INTEGER*4 keyerr(*)
  INTEGER*4 anyerr
  end subroutine EOS_Omni_press
  end interface
  interface
  subroutine EOS_Omni_pressOMP (eoskey, havetemp, rf_precision, npoints, rho, eps, temp, ye, press, keyerr, anyerr)
  implicit none
  INTEGER*4 eoskey
  INTEGER*4 havetemp
  REAL*8 rf_precision
  INTEGER*4 npoints
  REAL*8 rho(*)
  REAL*8 eps(*)
  REAL*8 temp(*)
  REAL*8 ye(*)
  REAL*8 press(*)
  INTEGER*4 keyerr(*)
  INTEGER*4 anyerr
  end subroutine EOS_Omni_pressOMP
  end interface
  interface
  subroutine EOS_Omni_press_cs2 (eoskey, havetemp, rf_precision, npoints, rho, eps, temp, ye, press, cs2, keyerr, anyerr)
  implicit none
  INTEGER*4 eoskey
  INTEGER*4 havetemp
  REAL*8 rf_precision
  INTEGER*4 npoints
  REAL*8 rho(*)
  REAL*8 eps(*)
  REAL*8 temp(*)
  REAL*8 ye(*)
  REAL*8 press(*)
  REAL*8 cs2(*)
  INTEGER*4 keyerr(*)
  INTEGER*4 anyerr
  end subroutine EOS_Omni_press_cs2
  end interface
  interface
  INTEGER*4 function MoLRegisterConstrained (ConstrainedIndex)
  implicit none
  INTEGER*4 ConstrainedIndex
  end function MoLRegisterConstrained
  end interface
  interface
  INTEGER*4 function MoLRegisterConstrainedGroup (ConstrainedIndex)
  implicit none
  INTEGER*4 ConstrainedIndex
  end function MoLRegisterConstrainedGroup
  end interface
  interface
  INTEGER*4 function MoLRegisterEvolved (EvolvedIndex, RHSIndex)
  implicit none
  INTEGER*4 EvolvedIndex
  INTEGER*4 RHSIndex
  end function MoLRegisterEvolved
  end interface
  interface
  INTEGER*4 function MoLRegisterEvolvedGroup (EvolvedIndex, RHSIndex)
  implicit none
  INTEGER*4 EvolvedIndex
  INTEGER*4 RHSIndex
  end function MoLRegisterEvolvedGroup
  end interface
  interface
  INTEGER*4 function MoLRegisterEvolvedGroupSlow (EvolvedIndex, RHSIndexSlow)
  implicit none
  INTEGER*4 EvolvedIndex
  INTEGER*4 RHSIndexSlow
  end function MoLRegisterEvolvedGroupSlow
  end interface
  interface
  INTEGER*4 function MoLRegisterEvolvedSlow (EvolvedIndex, RHSIndexSlow)
  implicit none
  INTEGER*4 EvolvedIndex
  INTEGER*4 RHSIndexSlow
  end function MoLRegisterEvolvedSlow
  end interface
  interface
  INTEGER*4 function MoLRegisterSaveAndRestoreGroup (SandRIndex)
  implicit none
  INTEGER*4 SandRIndex
  end function MoLRegisterSaveAndRestoreGroup
  end interface
  interface
  subroutine Prim2ConGen (handle, gxx, gxy, gxz, gyy, gyz, gzz, det, dens, sx, sy, sz, tau, rho, velx, vely, velz, epsilon, press, &
  &w_lorentz)
  implicit none
  INTEGER*4 handle
  REAL*8 gxx
  REAL*8 gxy
  REAL*8 gxz
  REAL*8 gyy
  REAL*8 gyz
  REAL*8 gzz
  REAL*8 det
  REAL*8 dens
  REAL*8 sx
  REAL*8 sy
  REAL*8 sz
  REAL*8 tau
  REAL*8 rho
  REAL*8 velx
  REAL*8 vely
  REAL*8 velz
  REAL*8 epsilon
  REAL*8 press
  REAL*8 w_lorentz
  end subroutine Prim2ConGen
  end interface
  interface
  subroutine Prim2ConGenM (handle, gxx, gxy, gxz, gyy, gyz, gzz, det, dens, sx, sy, sz, tau, Bconsx, Bconsy, Bconsz, rho, velx, vel&
  &y, velz, epsilon, press, Bvecx, Bvecy, Bvecz, w_lorentz)
  implicit none
  INTEGER*4 handle
  REAL*8 gxx
  REAL*8 gxy
  REAL*8 gxz
  REAL*8 gyy
  REAL*8 gyz
  REAL*8 gzz
  REAL*8 det
  REAL*8 dens
  REAL*8 sx
  REAL*8 sy
  REAL*8 sz
  REAL*8 tau
  REAL*8 Bconsx
  REAL*8 Bconsy
  REAL*8 Bconsz
  REAL*8 rho
  REAL*8 velx
  REAL*8 vely
  REAL*8 velz
  REAL*8 epsilon
  REAL*8 press
  REAL*8 Bvecx
  REAL*8 Bvecy
  REAL*8 Bvecz
  REAL*8 w_lorentz
  end subroutine Prim2ConGenM
  end interface
  interface
  subroutine Prim2ConGenM_hot (handle, GRHydro_reflevel, i, j, k, x, y, z, gxx, gxy, gxz, gyy, gyz, gzz, det, dens, sx, sy, sz, tau&
  &, Bconsx, Bconsy, Bconsz, rho, velx, vely, velz, epsilon, press, Bvecx, Bvecy, Bvecz, w_lorentz, temperature, Y_e)
  implicit none
  INTEGER*4 handle
  INTEGER*4 GRHydro_reflevel
  INTEGER*4 i
  INTEGER*4 j
  INTEGER*4 k
  REAL*8 x
  REAL*8 y
  REAL*8 z
  REAL*8 gxx
  REAL*8 gxy
  REAL*8 gxz
  REAL*8 gyy
  REAL*8 gyz
  REAL*8 gzz
  REAL*8 det
  REAL*8 dens
  REAL*8 sx
  REAL*8 sy
  REAL*8 sz
  REAL*8 tau
  REAL*8 Bconsx
  REAL*8 Bconsy
  REAL*8 Bconsz
  REAL*8 rho
  REAL*8 velx
  REAL*8 vely
  REAL*8 velz
  REAL*8 epsilon
  REAL*8 press
  REAL*8 Bvecx
  REAL*8 Bvecy
  REAL*8 Bvecz
  REAL*8 w_lorentz
  REAL*8 temperature
  REAL*8 Y_e
  end subroutine Prim2ConGenM_hot
  end interface
  interface
  subroutine Prim2ConPoly (handle, gxx, gxy, gxz, gyy, gyz, gzz, det, dens, sx, sy, sz, tau, rho, velx, vely, velz, epsilon, press,&
  & w_lorentz)
  implicit none
  INTEGER*4 handle
  REAL*8 gxx
  REAL*8 gxy
  REAL*8 gxz
  REAL*8 gyy
  REAL*8 gyz
  REAL*8 gzz
  REAL*8 det
  REAL*8 dens
  REAL*8 sx
  REAL*8 sy
  REAL*8 sz
  REAL*8 tau
  REAL*8 rho
  REAL*8 velx
  REAL*8 vely
  REAL*8 velz
  REAL*8 epsilon
  REAL*8 press
  REAL*8 w_lorentz
  end subroutine Prim2ConPoly
  end interface
  interface
  subroutine Prim2ConPolyM (handle, gxx, gxy, gxz, gyy, gyz, gzz, det, dens, sx, sy, sz, tau, Bconsx, Bconsy, Bconsz, rho, velx, ve&
  &ly, velz, epsilon, press, Bvecx, Bvecy, Bvecz, w_lorentz)
  implicit none
  INTEGER*4 handle
  REAL*8 gxx
  REAL*8 gxy
  REAL*8 gxz
  REAL*8 gyy
  REAL*8 gyz
  REAL*8 gzz
  REAL*8 det
  REAL*8 dens
  REAL*8 sx
  REAL*8 sy
  REAL*8 sz
  REAL*8 tau
  REAL*8 Bconsx
  REAL*8 Bconsy
  REAL*8 Bconsz
  REAL*8 rho
  REAL*8 velx
  REAL*8 vely
  REAL*8 velz
  REAL*8 epsilon
  REAL*8 press
  REAL*8 Bvecx
  REAL*8 Bvecy
  REAL*8 Bvecz
  REAL*8 w_lorentz
  end subroutine Prim2ConPolyM
  end interface
  interface
  subroutine SetDriftCorrectPosition (GH_Pointer, x, y, z)
  implicit none
  integer*8 GH_Pointer
  REAL*8 x
  REAL*8 y
  REAL*8 z
  end subroutine SetDriftCorrectPosition
  end interface
  interface
  subroutine SpatialDet (gxx, gxy, gxz, gyy, gyz, gzz, det)
  implicit none
  REAL*8 gxx
  REAL*8 gxy
  REAL*8 gxz
  REAL*8 gyy
  REAL*8 gyz
  REAL*8 gzz
  REAL*8 det
  end subroutine SpatialDet
  end interface
  interface
  subroutine UpperMet (uxx, uxy, uxz, uyy, uyz, uzz, det, gxx, gxy, gxz, gyy, gyz, gzz)
  implicit none
  REAL*8 uxx
  REAL*8 uxy
  REAL*8 uxz
  REAL*8 uyy
  REAL*8 uyz
  REAL*8 uzz
  REAL*8 det
  REAL*8 gxx
  REAL*8 gxy
  REAL*8 gxz
  REAL*8 gyy
  REAL*8 gyz
  REAL*8 gzz
  end subroutine UpperMet
  end interface
  
  integer :: i, j, k,  m
  REAL*8, dimension(number_of_tracers) :: consp,consm_i,fplus,fminus,f1
  REAL*8, dimension(5) :: lamminus,lamplus
  REAL*8, dimension(number_of_tracers) :: qdiff
  REAL*8 ::  charmin, charmax, charpm,avg_alp,avg_det
  REAL*8 :: gxxh, gxyh, gxzh, gyyh, gyzh, gzzh, uxxh, uxyh, &
       uxzh, uyyh, uyzh, uzzh, avg_beta, usendh
    
  INTEGER*4 :: type_bits, trivial

  
  INTEGER*4 :: GRHydro_UseGeneralCoordinates
  REAL*8, DIMENSION(cctk_ash1,cctk_ash2,cctk_ash3) :: g11, g12, g13, g22, g23, g33
  pointer (pg11,g11), (pg12,g12), (pg13,g13), (pg22,g22), (pg23,g23), (pg33,g33)
  REAL*8, DIMENSION(cctk_ash1,cctk_ash2,cctk_ash3) :: beta1, beta2, beta3
  pointer (pbeta1,beta1), (pbeta2,beta2), (pbeta3,beta3)

  if (GRHydro_UseGeneralCoordinates(cctkGH).ne.0) then
    pg11 = loc(gaa)
    pg12 = loc(gab)
    pg13 = loc(gac)
    pg22 = loc(gbb)
    pg23 = loc(gbc)
    pg33 = loc(gcc)
    pbeta1 = loc(betaa)
    pbeta2 = loc(betab)
    pbeta3 = loc(betac)
  else
    pg11 = loc(gxx)
    pg12 = loc(gxy)
    pg13 = loc(gxz)
    pg22 = loc(gyy)
    pg23 = loc(gyz)
    pg33 = loc(gzz)
    pbeta1 = loc(betax)
    pbeta2 = loc(betay)
    pbeta3 = loc(betaz)
  end if

  if (flux_direction == 1) then
    call SpaceMask_GetTypeBits(type_bits, "Hydro_RiemannProblemX")
    call SpaceMask_GetStateBits(trivial, "Hydro_RiemannProblemX", &
         &"trivial")
  else if (flux_direction == 2) then
    call SpaceMask_GetTypeBits(type_bits, "Hydro_RiemannProblemY")
    call SpaceMask_GetStateBits(trivial, "Hydro_RiemannProblemY", &
         &"trivial")
  else if (flux_direction == 3) then
    call SpaceMask_GetTypeBits(type_bits, "Hydro_RiemannProblemZ")
    call SpaceMask_GetStateBits(trivial, "Hydro_RiemannProblemZ", &
         &"trivial")
  else
    call CCTK_Error(680,"GRHydro_HLLE.F90","GRHydro","Flux direction not x,y,z")
    STOP
  end if

  do k = GRHydro_stencil, cctk_lsh(3) - GRHydro_stencil
    do j = GRHydro_stencil, cctk_lsh(2) - GRHydro_stencil
      do i = GRHydro_stencil, cctk_lsh(1) - GRHydro_stencil
        
        f1 = 0.d0
        lamminus = 0.d0
        lamplus = 0.d0
        consp = 0.d0
        consm_i = 0.d0
        fplus = 0.d0
        fminus = 0.d0
        qdiff = 0.d0
        

        
        do m=1,number_of_tracers
           consp(m)   = cons_tracerplus(i,j,k,m)         
           consm_i(m) = cons_tracerminus(i+xoffset,j+yoffset,k+zoffset,m)
        enddo




        if (flux_direction == 1) then
           avg_beta = 0.5d0 * (beta1(i+xoffset,j+yoffset,k+zoffset) + &
               beta1(i,j,k))
        else if (flux_direction == 2) then
           avg_beta = 0.5d0 * (beta2(i+xoffset,j+yoffset,k+zoffset) + &
               beta2(i,j,k))
        else if (flux_direction == 3) then
           avg_beta = 0.5d0 * (beta3(i+xoffset,j+yoffset,k+zoffset) + &
               beta3(i,j,k))
        else
           call CCTK_Error(717,"GRHydro_HLLE.F90","GRHydro","Flux direction not x,y,z")
           STOP
        end if

        avg_alp = 0.5 * (alp(i,j,k) + alp(i+xoffset,j+yoffset,k+zoffset))
        
        gxxh = 0.5d0 * (g11(i+xoffset,j+yoffset,k+zoffset) + g11(i,j,k))
        gxyh = 0.5d0 * (g12(i+xoffset,j+yoffset,k+zoffset) + g12(i,j,k))
        gxzh = 0.5d0 * (g13(i+xoffset,j+yoffset,k+zoffset) + g13(i,j,k))
        gyyh = 0.5d0 * (g22(i+xoffset,j+yoffset,k+zoffset) + g22(i,j,k))
        gyzh = 0.5d0 * (g23(i+xoffset,j+yoffset,k+zoffset) + g23(i,j,k))
        gzzh = 0.5d0 * (g33(i+xoffset,j+yoffset,k+zoffset) + g33(i,j,k))

        avg_det =  (-(gxzh)**2*(             gyyh) + 2.0d0*(gxyh)*(gxzh)*(gyzh) - (gxxh)*(gyzh)**2 - (gxyh)**2*(gzzh)    + (gxxh)*(&
  &             gyyh)*(gzzh))


        call UpperMetric(uxxh, uxyh, uxzh, uyyh, uyzh, uzzh, &
             avg_det,gxxh, gxyh, gxzh, &
             gyyh, gyzh, gzzh)
        
        if (flux_direction == 1) then
          usendh = uxxh
        else if (flux_direction == 2) then
          usendh = uyyh
        else if (flux_direction == 3) then
          usendh = uzzh
        else
          call CCTK_Error(744,"GRHydro_HLLE.F90","GRHydro","Flux direction not x,y,z")
          STOP
        end if
          

          
        qdiff = consm_i - consp
          

          
        if (flux_direction == 1) then
          call eigenvalues(GRHydro_eos_handle,&
               rhominus(i+xoffset,j+yoffset,k+zoffset),&
               velxminus(i+xoffset,j+yoffset,k+zoffset),&
               velyminus(i+xoffset,j+yoffset,k+zoffset),&
               velzminus(i+xoffset,j+yoffset,k+zoffset),&
               epsminus(i+xoffset,j+yoffset,k+zoffset),&
               w_lorentzminus(i+xoffset,j+yoffset,k+zoffset),&
               lamminus,gxxh,gxyh,gxzh,gyyh,&
               gyzh,gzzh,&
               usendh,avg_alp,avg_beta)
          call eigenvalues(GRHydro_eos_handle,rhoplus(i,j,k),&
               velxplus(i,j,k),velyplus(i,j,k),&
               velzplus(i,j,k),epsplus(i,j,k),w_lorentzplus(i,j,k),&
               lamplus,gxxh,gxyh,gxzh,gyyh,&
               gyzh,gzzh,&
               usendh,avg_alp,avg_beta)
          fplus(:)  = (velxplus(i,j,k)  - avg_beta / avg_alp) * &
               cons_tracerplus(i,j,k,:)
          fminus(:) = (velxminus(i+xoffset,j+yoffset,k+zoffset) - avg_beta / avg_alp) * &
               cons_tracerminus(i+xoffset,j+yoffset,k+zoffset,:)
        else if (flux_direction == 2) then
          call eigenvalues(GRHydro_eos_handle,&
               rhominus(i+xoffset,j+yoffset,k+zoffset),&
               velyminus(i+xoffset,j+yoffset,k+zoffset),&
               velzminus(i+xoffset,j+yoffset,k+zoffset),&
               velxminus(i+xoffset,j+yoffset,k+zoffset),&
               epsminus(i+xoffset,j+yoffset,k+zoffset),&
               w_lorentzminus(i+xoffset,j+yoffset,k+zoffset),&
               lamminus,gyyh,gyzh,gxyh,gzzh,&
               gxzh,gxxh,&
               usendh,avg_alp,avg_beta)
          call eigenvalues(GRHydro_eos_handle,rhoplus(i,j,k),&
               velyplus(i,j,k),velzplus(i,j,k),&
               velxplus(i,j,k),epsplus(i,j,k),w_lorentzplus(i,j,k),&
               lamplus,gyyh,gyzh,gxyh,gzzh,&
               gxzh,gxxh,&
               usendh,avg_alp,avg_beta)
          fplus(:)  = (velyplus(i,j,k)  - avg_beta / avg_alp) * &
               cons_tracerplus(i,j,k,:)
          fminus(:) = (velyminus(i+xoffset,j+yoffset,k+zoffset) - avg_beta / avg_alp) * &
               cons_tracerminus(i+xoffset,j+yoffset,k+zoffset,:)
        else if (flux_direction == 3) then
          call eigenvalues(GRHydro_eos_handle,&
               rhominus(i+xoffset,j+yoffset,k+zoffset),&
               velzminus(i+xoffset,j+yoffset,k+zoffset),&
               velxminus(i+xoffset,j+yoffset,k+zoffset),&
               velyminus(i+xoffset,j+yoffset,k+zoffset),&
               epsminus(i+xoffset,j+yoffset,k+zoffset),&
               w_lorentzminus(i+xoffset,j+yoffset,k+zoffset),&
               lamminus,gzzh,gxzh,gyzh,&
               gxxh,gxyh,gyyh,&
               usendh,avg_alp,avg_beta)
          call eigenvalues(GRHydro_eos_handle,rhoplus(i,j,k),&
               velzplus(i,j,k),velxplus(i,j,k),&
               velyplus(i,j,k),epsplus(i,j,k),w_lorentzplus(i,j,k),&
               lamplus,gzzh,gxzh,gyzh,&
               gxxh,gxyh,gyyh,&
               usendh,avg_alp,avg_beta)
          fplus(:)  = (velzplus(i,j,k) - avg_beta / avg_alp) * &
               cons_tracerplus(i,j,k,:)
          fminus(:) = (velzminus(i+xoffset,j+yoffset,k+zoffset) - avg_beta / avg_alp) * &
               cons_tracerminus(i+xoffset,j+yoffset,k+zoffset,:)
        else
          call CCTK_Error(818,"GRHydro_HLLE.F90","GRHydro","Flux direction not x,y,z")
          STOP
        end if
        

      
        charmin = min(0.d0, lamplus(1), lamplus(2), lamplus(3), &
             lamplus(4),lamplus(5),  lamminus(1),lamminus(2),lamminus(3),&
             lamminus(4),lamminus(5))  
          
        charmax = max(0.d0, lamplus(1), lamplus(2), lamplus(3), &
             lamplus(4),lamplus(5),  lamminus(1),lamminus(2),lamminus(3),&
             lamminus(4),lamminus(5))
        
        charpm = charmax - charmin
          

          
        do m = 1,number_of_tracers
            
          qdiff(m) = consm_i(m) - consp(m)
          
          f1(m) = (charmax * fplus(m) - charmin * fminus(m) + &
               charmax * charmin * qdiff(m)) / charpm
          
        end do
            
        cons_tracerflux(i, j, k,:) = f1(:)







        
      end do
    end do
  end do

      
end subroutine GRHydro_HLLE_Tracer

