


















































































































 


































































































































































 



































































































































































































 



















































 










 








































































































































































































































 










                                
                                

                                
                                

                                
                                

                                






















































































subroutine NullEvol_Diag(cctk_dim,cctk_gsh,cctk_lsh,cctk_lbnd,cctk_ubnd,cctk_tile_min,cctk_tile_max,cctk_ash,cctk_alignment,cctk_al&
  &ignment_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, &
  &X0Jrad,X0aux_mask,X0diagtmp,X0dissip_mask,X0distmp,X0dxJrad,X0eth4_mask,X1aux_mask,X1diagtmp,X1dissip_mask,X1distmp,X1eth4_mask,&
  &diagtmp_length,distmp_length,auxiliary_maskn,auxiliary_masks,diagtmp,dissip_mask,distmp_F,distmp_d2F,distmp_d4F,dxjcn_rad,dxjcs_&
  &rad,eth4_maskn,eth4_masks,jcn_rad,jcs_rad, SHRE_alpha_e_length,SHRE_beta_e_length,SHRE_dalpha_e_length,SHRE_dbeta_e_length,SHRE_&
  &dgij_e_length,SHRE_dgit_e_length,SHRE_gij_e_length,SHRE_git_e_length,WT_r0_length,X0SHRE_alpha_e,X0SHRE_beta_e,X0SHRE_dalpha_e,X&
  &0SHRE_dbeta_e,X0SHRE_dgij_e,X0SHRE_dgit_e,X0SHRE_gij_e,X0SHRE_git_e,X0WT_r0,X0beta_l,X0beta_wt,X0j_l,X0j_wt,X0q_wt,X0u_l,X0u_wt,&
  &X0u_x_wt,X0w_l,X0w_wt,X0x_wt,X1SHRE_alpha_e,X1SHRE_beta_e,X1SHRE_dalpha_e,X1SHRE_dbeta_e,X1SHRE_dgij_e,X1SHRE_dgit_e,X1SHRE_gij_&
  &e,X1SHRE_git_e,X1WT_r0,X1beta_l,X1beta_wt,X1j_l,X1j_wt,X1q_wt,X1u_l,X1u_wt,X1u_x_wt,X1w_l,X1w_wt,X1x_wt,beta_l_length,beta_wt_le&
  &ngth,j_l_length,j_wt_length,q_wt_length,u_l_length,u_wt_length,u_x_wt_length,w_l_length,w_wt_length,x_wt_length,SHRE_alpha_e,SHR&
  &E_beta_e,SHRE_dpalpha_e,SHRE_dpbeta_e,SHRE_dpgij_e,SHRE_dpgit_e,SHRE_dqalpha_e,SHRE_dqbeta_e,SHRE_dqgij_e,SHRE_dqgit_e,SHRE_dral&
  &pha_e,SHRE_drbeta_e,SHRE_drgij_e,SHRE_drgit_e,SHRE_dtalpha_e,SHRE_dtbeta_e,SHRE_dtgij_e,SHRE_dtgit_e,SHRE_gij_e,SHRE_git_e,WT_r0&
  &,beta_l,beta_wt,beta_wt_p,j_l,j_wt,j_wt_p,q_wt,q_wt_p,u_l,u_wt,u_wt_p,u_x_wt,w_l,w_wt,w_wt_p,x_wt,x_wt_p, X0EG_mask,X0EQ_mask,X0&
  &EV_mask,X0NullGrParArrI,X0NullGrParArrR,X0RadCrd,X0StCmCrd,X0StCrd,X0cmplxcharfuncs_aux,X0cmplxcharfuncs_basic,X0guard_mask,X0nu&
  &ll_mask,X0realcharfuncs,X0tmp_cgf,X0tmp_cgf3,X0tmp_rgf,X1EG_mask,X1EQ_mask,X1EV_mask,X1StCmCrd,X1StCrd,X1cmplxcharfuncs_aux,X1cm&
  &plxcharfuncs_basic,X1guard_mask,X1null_mask,X1realcharfuncs,X1tmp_cgf,X1tmp_cgf3,X1tmp_rgf,cmplxcharfuncs_aux_length,cmplxcharfu&
  &ncs_basic_length,realcharfuncs_length,EG_mask,EQ_mask,EV_mask,bcn,bcn_p,bcs,bcs_p,boundary_maskn,boundary_masks,cbcn,cbcn_p,cbcs&
  &,cbcs_p,ckcn,ckcn_p,ckcs,ckcs_p,courant_min_time,courant_wave_speed,dxjcn,dxjcn_p,dxjcs,dxjcs_p,eth2jcn,eth2jcn_p,eth2jcs,eth2jc&
  &s_p,evolution_maskn,evolution_masks,evolution_radius,guard_mask,jcn,jcn_p,jcs,jcs_p,nucn,nucn_p,nucs,nucs_p,null_delta,null_dx,n&
  &ull_gsh,null_lbnd,null_lsh,null_rb,null_rbh,null_ubnd,null_xb,null_xbh,qcn,qcn_p,qcs,qcs_p,qsize,stereo_p,stereo_pp,stereo_q,tmp&
  &_cgfn,tmp_cgfn1,tmp_cgfn2,tmp_cgfn3,tmp_cgfs,tmp_cgfs1,tmp_cgfs2,tmp_cgfs3,tmp_rgfn,tmp_rgfs,ucn,ucn_p,ucs,ucs_p,wcn,wcn_p,wcs,w&
  &cs_p,zeta)

  use NullDecomp_SpinDecomp, only: SpinDecompCoefs
  use NullEvol_DiagMod

  implicit none


  INTEGER cctk_dim
  integer, parameter :: cctki_use_cctk_dim = kind(cctk_dim)
  INTEGER cctk_gsh (cctk_dim)
  integer, parameter :: cctki_use_cctk_gsh = kind(cctk_gsh)
  INTEGER cctk_lsh (cctk_dim)
  integer, parameter :: cctki_use_cctk_lsh = kind(cctk_lsh)
  INTEGER cctk_lbnd (cctk_dim)
  integer, parameter :: cctki_use_cctk_lbnd = kind(cctk_lbnd)
  INTEGER cctk_ubnd (cctk_dim)
  integer, parameter :: cctki_use_cctk_ubnd = kind(cctk_ubnd)
  INTEGER cctk_tile_min (cctk_dim)
  integer, parameter :: cctki_use_cctk_tile_min = kind(cctk_tile_min)
  INTEGER cctk_tile_max (cctk_dim)
  integer, parameter :: cctki_use_cctk_tile_max = kind(cctk_tile_max)
  INTEGER cctk_ash (cctk_dim)
  integer, parameter :: cctki_use_cctk_ash = kind(cctk_ash)
  INTEGER cctk_alignment
  integer, parameter :: cctki_use_cctk_alignment = kind(cctk_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 X0Jrad
  INTEGER X0aux_mask
  INTEGER X0diagtmp
  INTEGER X0dissip_mask
  INTEGER X0distmp
  INTEGER X0dxJrad
  INTEGER X0eth4_mask
  INTEGER X1aux_mask
  INTEGER X1diagtmp
  INTEGER X1dissip_mask
  INTEGER X1distmp
  INTEGER X1eth4_mask
  INTEGER diagtmp_length
  INTEGER distmp_length
  INTEGER*4 auxiliary_maskn (X0aux_mask,X1aux_mask)
  integer, parameter :: cctki_use_auxiliary_maskn = kind(auxiliary_maskn)
  INTEGER*4 auxiliary_masks (X0aux_mask,X1aux_mask)
  integer, parameter :: cctki_use_auxiliary_masks = kind(auxiliary_masks)
  COMPLEX*16 diagtmp (X0diagtmp,X1diagtmp,diagtmp_length)
  integer, parameter :: cctki_use_diagtmp = kind(diagtmp)
  REAL*8 dissip_mask (X0dissip_mask,X1dissip_mask)
  integer, parameter :: cctki_use_dissip_mask = kind(dissip_mask)
  COMPLEX*16 distmp_F (X0distmp,X1distmp,distmp_length)
  integer, parameter :: cctki_use_distmp_F = kind(distmp_F)
  COMPLEX*16 distmp_d2F (X0distmp,X1distmp,distmp_length)
  integer, parameter :: cctki_use_distmp_d2F = kind(distmp_d2F)
  COMPLEX*16 distmp_d4F (X0distmp,X1distmp,distmp_length)
  integer, parameter :: cctki_use_distmp_d4F = kind(distmp_d4F)
  COMPLEX*16 dxjcn_rad (X0dxJrad)
  integer, parameter :: cctki_use_dxjcn_rad = kind(dxjcn_rad)
  COMPLEX*16 dxjcs_rad (X0dxJrad)
  integer, parameter :: cctki_use_dxjcs_rad = kind(dxjcs_rad)
  INTEGER*4 eth4_maskn (X0eth4_mask,X1eth4_mask)
  integer, parameter :: cctki_use_eth4_maskn = kind(eth4_maskn)
  INTEGER*4 eth4_masks (X0eth4_mask,X1eth4_mask)
  integer, parameter :: cctki_use_eth4_masks = kind(eth4_masks)
  COMPLEX*16 jcn_rad (X0Jrad)
  integer, parameter :: cctki_use_jcn_rad = kind(jcn_rad)
  COMPLEX*16 jcs_rad (X0Jrad)
  integer, parameter :: cctki_use_jcs_rad = kind(jcs_rad)
  INTEGER SHRE_alpha_e_length
  INTEGER SHRE_beta_e_length
  INTEGER SHRE_dalpha_e_length
  INTEGER SHRE_dbeta_e_length
  INTEGER SHRE_dgij_e_length
  INTEGER SHRE_dgit_e_length
  INTEGER SHRE_gij_e_length
  INTEGER SHRE_git_e_length
  INTEGER WT_r0_length
  INTEGER X0SHRE_alpha_e
  INTEGER X0SHRE_beta_e
  INTEGER X0SHRE_dalpha_e
  INTEGER X0SHRE_dbeta_e
  INTEGER X0SHRE_dgij_e
  INTEGER X0SHRE_dgit_e
  INTEGER X0SHRE_gij_e
  INTEGER X0SHRE_git_e
  INTEGER X0WT_r0
  INTEGER X0beta_l
  INTEGER X0beta_wt
  INTEGER X0j_l
  INTEGER X0j_wt
  INTEGER X0q_wt
  INTEGER X0u_l
  INTEGER X0u_wt
  INTEGER X0u_x_wt
  INTEGER X0w_l
  INTEGER X0w_wt
  INTEGER X0x_wt
  INTEGER X1SHRE_alpha_e
  INTEGER X1SHRE_beta_e
  INTEGER X1SHRE_dalpha_e
  INTEGER X1SHRE_dbeta_e
  INTEGER X1SHRE_dgij_e
  INTEGER X1SHRE_dgit_e
  INTEGER X1SHRE_gij_e
  INTEGER X1SHRE_git_e
  INTEGER X1WT_r0
  INTEGER X1beta_l
  INTEGER X1beta_wt
  INTEGER X1j_l
  INTEGER X1j_wt
  INTEGER X1q_wt
  INTEGER X1u_l
  INTEGER X1u_wt
  INTEGER X1u_x_wt
  INTEGER X1w_l
  INTEGER X1w_wt
  INTEGER X1x_wt
  INTEGER beta_l_length
  INTEGER beta_wt_length
  INTEGER j_l_length
  INTEGER j_wt_length
  INTEGER q_wt_length
  INTEGER u_l_length
  INTEGER u_wt_length
  INTEGER u_x_wt_length
  INTEGER w_l_length
  INTEGER w_wt_length
  INTEGER x_wt_length
  REAL*8 SHRE_alpha_e (X0SHRE_alpha_e,X1SHRE_alpha_e,SHRE_alpha_e_length)
  integer, parameter :: cctki_use_SHRE_alpha_e = kind(SHRE_alpha_e)
  REAL*8 SHRE_beta_e (X0SHRE_beta_e,X1SHRE_beta_e,SHRE_beta_e_length)
  integer, parameter :: cctki_use_SHRE_beta_e = kind(SHRE_beta_e)
  REAL*8 SHRE_dpalpha_e (X0SHRE_dalpha_e,X1SHRE_dalpha_e,SHRE_dalpha_e_length)
  integer, parameter :: cctki_use_SHRE_dpalpha_e = kind(SHRE_dpalpha_e)
  REAL*8 SHRE_dpbeta_e (X0SHRE_dbeta_e,X1SHRE_dbeta_e,SHRE_dbeta_e_length)
  integer, parameter :: cctki_use_SHRE_dpbeta_e = kind(SHRE_dpbeta_e)
  REAL*8 SHRE_dpgij_e (X0SHRE_dgij_e,X1SHRE_dgij_e,SHRE_dgij_e_length)
  integer, parameter :: cctki_use_SHRE_dpgij_e = kind(SHRE_dpgij_e)
  REAL*8 SHRE_dpgit_e (X0SHRE_dgit_e,X1SHRE_dgit_e,SHRE_dgit_e_length)
  integer, parameter :: cctki_use_SHRE_dpgit_e = kind(SHRE_dpgit_e)
  REAL*8 SHRE_dqalpha_e (X0SHRE_dalpha_e,X1SHRE_dalpha_e,SHRE_dalpha_e_length)
  integer, parameter :: cctki_use_SHRE_dqalpha_e = kind(SHRE_dqalpha_e)
  REAL*8 SHRE_dqbeta_e (X0SHRE_dbeta_e,X1SHRE_dbeta_e,SHRE_dbeta_e_length)
  integer, parameter :: cctki_use_SHRE_dqbeta_e = kind(SHRE_dqbeta_e)
  REAL*8 SHRE_dqgij_e (X0SHRE_dgij_e,X1SHRE_dgij_e,SHRE_dgij_e_length)
  integer, parameter :: cctki_use_SHRE_dqgij_e = kind(SHRE_dqgij_e)
  REAL*8 SHRE_dqgit_e (X0SHRE_dgit_e,X1SHRE_dgit_e,SHRE_dgit_e_length)
  integer, parameter :: cctki_use_SHRE_dqgit_e = kind(SHRE_dqgit_e)
  REAL*8 SHRE_dralpha_e (X0SHRE_dalpha_e,X1SHRE_dalpha_e,SHRE_dalpha_e_length)
  integer, parameter :: cctki_use_SHRE_dralpha_e = kind(SHRE_dralpha_e)
  REAL*8 SHRE_drbeta_e (X0SHRE_dbeta_e,X1SHRE_dbeta_e,SHRE_dbeta_e_length)
  integer, parameter :: cctki_use_SHRE_drbeta_e = kind(SHRE_drbeta_e)
  REAL*8 SHRE_drgij_e (X0SHRE_dgij_e,X1SHRE_dgij_e,SHRE_dgij_e_length)
  integer, parameter :: cctki_use_SHRE_drgij_e = kind(SHRE_drgij_e)
  REAL*8 SHRE_drgit_e (X0SHRE_dgit_e,X1SHRE_dgit_e,SHRE_dgit_e_length)
  integer, parameter :: cctki_use_SHRE_drgit_e = kind(SHRE_drgit_e)
  REAL*8 SHRE_dtalpha_e (X0SHRE_dalpha_e,X1SHRE_dalpha_e,SHRE_dalpha_e_length)
  integer, parameter :: cctki_use_SHRE_dtalpha_e = kind(SHRE_dtalpha_e)
  REAL*8 SHRE_dtbeta_e (X0SHRE_dbeta_e,X1SHRE_dbeta_e,SHRE_dbeta_e_length)
  integer, parameter :: cctki_use_SHRE_dtbeta_e = kind(SHRE_dtbeta_e)
  REAL*8 SHRE_dtgij_e (X0SHRE_dgij_e,X1SHRE_dgij_e,SHRE_dgij_e_length)
  integer, parameter :: cctki_use_SHRE_dtgij_e = kind(SHRE_dtgij_e)
  REAL*8 SHRE_dtgit_e (X0SHRE_dgit_e,X1SHRE_dgit_e,SHRE_dgit_e_length)
  integer, parameter :: cctki_use_SHRE_dtgit_e = kind(SHRE_dtgit_e)
  REAL*8 SHRE_gij_e (X0SHRE_gij_e,X1SHRE_gij_e,SHRE_gij_e_length)
  integer, parameter :: cctki_use_SHRE_gij_e = kind(SHRE_gij_e)
  REAL*8 SHRE_git_e (X0SHRE_git_e,X1SHRE_git_e,SHRE_git_e_length)
  integer, parameter :: cctki_use_SHRE_git_e = kind(SHRE_git_e)
  REAL*8 WT_r0 (X0WT_r0,X1WT_r0,WT_r0_length)
  integer, parameter :: cctki_use_WT_r0 = kind(WT_r0)
  REAL*8 beta_l (X0beta_l,X1beta_l,beta_l_length)
  integer, parameter :: cctki_use_beta_l = kind(beta_l)
  REAL*8 beta_wt (X0beta_wt,X1beta_wt,beta_wt_length)
  integer, parameter :: cctki_use_beta_wt = kind(beta_wt)
  REAL*8 beta_wt_p (X0beta_wt,X1beta_wt,beta_wt_length)
  integer, parameter :: cctki_use_beta_wt_p = kind(beta_wt_p)
  COMPLEX*16 j_l (X0j_l,X1j_l,j_l_length)
  integer, parameter :: cctki_use_j_l = kind(j_l)
  COMPLEX*16 j_wt (X0j_wt,X1j_wt,j_wt_length)
  integer, parameter :: cctki_use_j_wt = kind(j_wt)
  COMPLEX*16 j_wt_p (X0j_wt,X1j_wt,j_wt_length)
  integer, parameter :: cctki_use_j_wt_p = kind(j_wt_p)
  COMPLEX*16 q_wt (X0q_wt,X1q_wt,q_wt_length)
  integer, parameter :: cctki_use_q_wt = kind(q_wt)
  COMPLEX*16 q_wt_p (X0q_wt,X1q_wt,q_wt_length)
  integer, parameter :: cctki_use_q_wt_p = kind(q_wt_p)
  COMPLEX*16 u_l (X0u_l,X1u_l,u_l_length)
  integer, parameter :: cctki_use_u_l = kind(u_l)
  COMPLEX*16 u_wt (X0u_wt,X1u_wt,u_wt_length)
  integer, parameter :: cctki_use_u_wt = kind(u_wt)
  COMPLEX*16 u_wt_p (X0u_wt,X1u_wt,u_wt_length)
  integer, parameter :: cctki_use_u_wt_p = kind(u_wt_p)
  COMPLEX*16 u_x_wt (X0u_x_wt,X1u_x_wt,u_x_wt_length)
  integer, parameter :: cctki_use_u_x_wt = kind(u_x_wt)
  REAL*8 w_l (X0w_l,X1w_l,w_l_length)
  integer, parameter :: cctki_use_w_l = kind(w_l)
  REAL*8 w_wt (X0w_wt,X1w_wt,w_wt_length)
  integer, parameter :: cctki_use_w_wt = kind(w_wt)
  REAL*8 w_wt_p (X0w_wt,X1w_wt,w_wt_length)
  integer, parameter :: cctki_use_w_wt_p = kind(w_wt_p)
  REAL*8 x_wt (X0x_wt,X1x_wt,x_wt_length)
  integer, parameter :: cctki_use_x_wt = kind(x_wt)
  REAL*8 x_wt_p (X0x_wt,X1x_wt,x_wt_length)
  integer, parameter :: cctki_use_x_wt_p = kind(x_wt_p)
  INTEGER X0EG_mask
  INTEGER X0EQ_mask
  INTEGER X0EV_mask
  INTEGER X0NullGrParArrI
  INTEGER X0NullGrParArrR
  INTEGER X0RadCrd
  INTEGER X0StCmCrd
  INTEGER X0StCrd
  INTEGER X0cmplxcharfuncs_aux
  INTEGER X0cmplxcharfuncs_basic
  INTEGER X0guard_mask
  INTEGER X0null_mask
  INTEGER X0realcharfuncs
  INTEGER X0tmp_cgf
  INTEGER X0tmp_cgf3
  INTEGER X0tmp_rgf
  INTEGER X1EG_mask
  INTEGER X1EQ_mask
  INTEGER X1EV_mask
  INTEGER X1StCmCrd
  INTEGER X1StCrd
  INTEGER X1cmplxcharfuncs_aux
  INTEGER X1cmplxcharfuncs_basic
  INTEGER X1guard_mask
  INTEGER X1null_mask
  INTEGER X1realcharfuncs
  INTEGER X1tmp_cgf
  INTEGER X1tmp_cgf3
  INTEGER X1tmp_rgf
  INTEGER cmplxcharfuncs_aux_length
  INTEGER cmplxcharfuncs_basic_length
  INTEGER realcharfuncs_length
  INTEGER*4 EG_mask (X0EG_mask,X1EG_mask)
  integer, parameter :: cctki_use_EG_mask = kind(EG_mask)
  INTEGER*4 EQ_mask (X0EQ_mask,X1EQ_mask)
  integer, parameter :: cctki_use_EQ_mask = kind(EQ_mask)
  INTEGER*4 EV_mask (X0EV_mask,X1EV_mask)
  integer, parameter :: cctki_use_EV_mask = kind(EV_mask)
  REAL*8 bcn (X0realcharfuncs,X1realcharfuncs,realcharfuncs_length)
  integer, parameter :: cctki_use_bcn = kind(bcn)
  REAL*8 bcn_p (X0realcharfuncs,X1realcharfuncs,realcharfuncs_length)
  integer, parameter :: cctki_use_bcn_p = kind(bcn_p)
  REAL*8 bcs (X0realcharfuncs,X1realcharfuncs,realcharfuncs_length)
  integer, parameter :: cctki_use_bcs = kind(bcs)
  REAL*8 bcs_p (X0realcharfuncs,X1realcharfuncs,realcharfuncs_length)
  integer, parameter :: cctki_use_bcs_p = kind(bcs_p)
  INTEGER*4 boundary_maskn (X0null_mask,X1null_mask)
  integer, parameter :: cctki_use_boundary_maskn = kind(boundary_maskn)
  INTEGER*4 boundary_masks (X0null_mask,X1null_mask)
  integer, parameter :: cctki_use_boundary_masks = kind(boundary_masks)
  COMPLEX*16 cbcn (X0cmplxcharfuncs_aux,X1cmplxcharfuncs_aux,cmplxcharfuncs_aux_length)
  integer, parameter :: cctki_use_cbcn = kind(cbcn)
  COMPLEX*16 cbcn_p (X0cmplxcharfuncs_aux,X1cmplxcharfuncs_aux,cmplxcharfuncs_aux_length)
  integer, parameter :: cctki_use_cbcn_p = kind(cbcn_p)
  COMPLEX*16 cbcs (X0cmplxcharfuncs_aux,X1cmplxcharfuncs_aux,cmplxcharfuncs_aux_length)
  integer, parameter :: cctki_use_cbcs = kind(cbcs)
  COMPLEX*16 cbcs_p (X0cmplxcharfuncs_aux,X1cmplxcharfuncs_aux,cmplxcharfuncs_aux_length)
  integer, parameter :: cctki_use_cbcs_p = kind(cbcs_p)
  COMPLEX*16 ckcn (X0cmplxcharfuncs_aux,X1cmplxcharfuncs_aux,cmplxcharfuncs_aux_length)
  integer, parameter :: cctki_use_ckcn = kind(ckcn)
  COMPLEX*16 ckcn_p (X0cmplxcharfuncs_aux,X1cmplxcharfuncs_aux,cmplxcharfuncs_aux_length)
  integer, parameter :: cctki_use_ckcn_p = kind(ckcn_p)
  COMPLEX*16 ckcs (X0cmplxcharfuncs_aux,X1cmplxcharfuncs_aux,cmplxcharfuncs_aux_length)
  integer, parameter :: cctki_use_ckcs = kind(ckcs)
  COMPLEX*16 ckcs_p (X0cmplxcharfuncs_aux,X1cmplxcharfuncs_aux,cmplxcharfuncs_aux_length)
  integer, parameter :: cctki_use_ckcs_p = kind(ckcs_p)
  REAL*8 courant_min_time
  integer, parameter :: cctki_use_courant_min_time = kind(courant_min_time)
  REAL*8 courant_wave_speed
  integer, parameter :: cctki_use_courant_wave_speed = kind(courant_wave_speed)
  COMPLEX*16 dxjcn (X0cmplxcharfuncs_basic,X1cmplxcharfuncs_basic,cmplxcharfuncs_basic_length)
  integer, parameter :: cctki_use_dxjcn = kind(dxjcn)
  COMPLEX*16 dxjcn_p (X0cmplxcharfuncs_basic,X1cmplxcharfuncs_basic,cmplxcharfuncs_basic_length)
  integer, parameter :: cctki_use_dxjcn_p = kind(dxjcn_p)
  COMPLEX*16 dxjcs (X0cmplxcharfuncs_basic,X1cmplxcharfuncs_basic,cmplxcharfuncs_basic_length)
  integer, parameter :: cctki_use_dxjcs = kind(dxjcs)
  COMPLEX*16 dxjcs_p (X0cmplxcharfuncs_basic,X1cmplxcharfuncs_basic,cmplxcharfuncs_basic_length)
  integer, parameter :: cctki_use_dxjcs_p = kind(dxjcs_p)
  COMPLEX*16 eth2jcn (X0cmplxcharfuncs_basic,X1cmplxcharfuncs_basic,cmplxcharfuncs_basic_length)
  integer, parameter :: cctki_use_eth2jcn = kind(eth2jcn)
  COMPLEX*16 eth2jcn_p (X0cmplxcharfuncs_basic,X1cmplxcharfuncs_basic,cmplxcharfuncs_basic_length)
  integer, parameter :: cctki_use_eth2jcn_p = kind(eth2jcn_p)
  COMPLEX*16 eth2jcs (X0cmplxcharfuncs_basic,X1cmplxcharfuncs_basic,cmplxcharfuncs_basic_length)
  integer, parameter :: cctki_use_eth2jcs = kind(eth2jcs)
  COMPLEX*16 eth2jcs_p (X0cmplxcharfuncs_basic,X1cmplxcharfuncs_basic,cmplxcharfuncs_basic_length)
  integer, parameter :: cctki_use_eth2jcs_p = kind(eth2jcs_p)
  INTEGER*4 evolution_maskn (X0null_mask,X1null_mask)
  integer, parameter :: cctki_use_evolution_maskn = kind(evolution_maskn)
  INTEGER*4 evolution_masks (X0null_mask,X1null_mask)
  integer, parameter :: cctki_use_evolution_masks = kind(evolution_masks)
  REAL*8 evolution_radius
  integer, parameter :: cctki_use_evolution_radius = kind(evolution_radius)
  INTEGER*4 guard_mask (X0guard_mask,X1guard_mask)
  integer, parameter :: cctki_use_guard_mask = kind(guard_mask)
  COMPLEX*16 jcn (X0cmplxcharfuncs_basic,X1cmplxcharfuncs_basic,cmplxcharfuncs_basic_length)
  integer, parameter :: cctki_use_jcn = kind(jcn)
  COMPLEX*16 jcn_p (X0cmplxcharfuncs_basic,X1cmplxcharfuncs_basic,cmplxcharfuncs_basic_length)
  integer, parameter :: cctki_use_jcn_p = kind(jcn_p)
  COMPLEX*16 jcs (X0cmplxcharfuncs_basic,X1cmplxcharfuncs_basic,cmplxcharfuncs_basic_length)
  integer, parameter :: cctki_use_jcs = kind(jcs)
  COMPLEX*16 jcs_p (X0cmplxcharfuncs_basic,X1cmplxcharfuncs_basic,cmplxcharfuncs_basic_length)
  integer, parameter :: cctki_use_jcs_p = kind(jcs_p)
  COMPLEX*16 nucn (X0cmplxcharfuncs_aux,X1cmplxcharfuncs_aux,cmplxcharfuncs_aux_length)
  integer, parameter :: cctki_use_nucn = kind(nucn)
  COMPLEX*16 nucn_p (X0cmplxcharfuncs_aux,X1cmplxcharfuncs_aux,cmplxcharfuncs_aux_length)
  integer, parameter :: cctki_use_nucn_p = kind(nucn_p)
  COMPLEX*16 nucs (X0cmplxcharfuncs_aux,X1cmplxcharfuncs_aux,cmplxcharfuncs_aux_length)
  integer, parameter :: cctki_use_nucs = kind(nucs)
  COMPLEX*16 nucs_p (X0cmplxcharfuncs_aux,X1cmplxcharfuncs_aux,cmplxcharfuncs_aux_length)
  integer, parameter :: cctki_use_nucs_p = kind(nucs_p)
  REAL*8 null_delta (X0NullGrParArrR)
  integer, parameter :: cctki_use_null_delta = kind(null_delta)
  REAL*8 null_dx
  integer, parameter :: cctki_use_null_dx = kind(null_dx)
  INTEGER*4 null_gsh (X0NullGrParArrI)
  integer, parameter :: cctki_use_null_gsh = kind(null_gsh)
  INTEGER*4 null_lbnd (X0NullGrParArrI)
  integer, parameter :: cctki_use_null_lbnd = kind(null_lbnd)
  INTEGER*4 null_lsh (X0NullGrParArrI)
  integer, parameter :: cctki_use_null_lsh = kind(null_lsh)
  REAL*8 null_rb (X0RadCrd)
  integer, parameter :: cctki_use_null_rb = kind(null_rb)
  REAL*8 null_rbh (X0RadCrd)
  integer, parameter :: cctki_use_null_rbh = kind(null_rbh)
  INTEGER*4 null_ubnd (X0NullGrParArrI)
  integer, parameter :: cctki_use_null_ubnd = kind(null_ubnd)
  REAL*8 null_xb (X0RadCrd)
  integer, parameter :: cctki_use_null_xb = kind(null_xb)
  REAL*8 null_xbh (X0RadCrd)
  integer, parameter :: cctki_use_null_xbh = kind(null_xbh)
  COMPLEX*16 qcn (X0cmplxcharfuncs_basic,X1cmplxcharfuncs_basic,cmplxcharfuncs_basic_length)
  integer, parameter :: cctki_use_qcn = kind(qcn)
  COMPLEX*16 qcn_p (X0cmplxcharfuncs_basic,X1cmplxcharfuncs_basic,cmplxcharfuncs_basic_length)
  integer, parameter :: cctki_use_qcn_p = kind(qcn_p)
  COMPLEX*16 qcs (X0cmplxcharfuncs_basic,X1cmplxcharfuncs_basic,cmplxcharfuncs_basic_length)
  integer, parameter :: cctki_use_qcs = kind(qcs)
  COMPLEX*16 qcs_p (X0cmplxcharfuncs_basic,X1cmplxcharfuncs_basic,cmplxcharfuncs_basic_length)
  integer, parameter :: cctki_use_qcs_p = kind(qcs_p)
  REAL*8 qsize
  integer, parameter :: cctki_use_qsize = kind(qsize)
  REAL*8 stereo_p (X0StCrd,X1StCrd)
  integer, parameter :: cctki_use_stereo_p = kind(stereo_p)
  REAL*8 stereo_pp (X0StCrd,X1StCrd)
  integer, parameter :: cctki_use_stereo_pp = kind(stereo_pp)
  REAL*8 stereo_q (X0StCrd,X1StCrd)
  integer, parameter :: cctki_use_stereo_q = kind(stereo_q)
  COMPLEX*16 tmp_cgfn (X0tmp_cgf,X1tmp_cgf)
  integer, parameter :: cctki_use_tmp_cgfn = kind(tmp_cgfn)
  COMPLEX*16 tmp_cgfn1 (X0tmp_cgf3,X1tmp_cgf3)
  integer, parameter :: cctki_use_tmp_cgfn1 = kind(tmp_cgfn1)
  COMPLEX*16 tmp_cgfn2 (X0tmp_cgf3,X1tmp_cgf3)
  integer, parameter :: cctki_use_tmp_cgfn2 = kind(tmp_cgfn2)
  COMPLEX*16 tmp_cgfn3 (X0tmp_cgf3,X1tmp_cgf3)
  integer, parameter :: cctki_use_tmp_cgfn3 = kind(tmp_cgfn3)
  COMPLEX*16 tmp_cgfs (X0tmp_cgf,X1tmp_cgf)
  integer, parameter :: cctki_use_tmp_cgfs = kind(tmp_cgfs)
  COMPLEX*16 tmp_cgfs1 (X0tmp_cgf3,X1tmp_cgf3)
  integer, parameter :: cctki_use_tmp_cgfs1 = kind(tmp_cgfs1)
  COMPLEX*16 tmp_cgfs2 (X0tmp_cgf3,X1tmp_cgf3)
  integer, parameter :: cctki_use_tmp_cgfs2 = kind(tmp_cgfs2)
  COMPLEX*16 tmp_cgfs3 (X0tmp_cgf3,X1tmp_cgf3)
  integer, parameter :: cctki_use_tmp_cgfs3 = kind(tmp_cgfs3)
  REAL*8 tmp_rgfn (X0tmp_rgf,X1tmp_rgf)
  integer, parameter :: cctki_use_tmp_rgfn = kind(tmp_rgfn)
  REAL*8 tmp_rgfs (X0tmp_rgf,X1tmp_rgf)
  integer, parameter :: cctki_use_tmp_rgfs = kind(tmp_rgfs)
  COMPLEX*16 ucn (X0cmplxcharfuncs_basic,X1cmplxcharfuncs_basic,cmplxcharfuncs_basic_length)
  integer, parameter :: cctki_use_ucn = kind(ucn)
  COMPLEX*16 ucn_p (X0cmplxcharfuncs_basic,X1cmplxcharfuncs_basic,cmplxcharfuncs_basic_length)
  integer, parameter :: cctki_use_ucn_p = kind(ucn_p)
  COMPLEX*16 ucs (X0cmplxcharfuncs_basic,X1cmplxcharfuncs_basic,cmplxcharfuncs_basic_length)
  integer, parameter :: cctki_use_ucs = kind(ucs)
  COMPLEX*16 ucs_p (X0cmplxcharfuncs_basic,X1cmplxcharfuncs_basic,cmplxcharfuncs_basic_length)
  integer, parameter :: cctki_use_ucs_p = kind(ucs_p)
  REAL*8 wcn (X0realcharfuncs,X1realcharfuncs,realcharfuncs_length)
  integer, parameter :: cctki_use_wcn = kind(wcn)
  REAL*8 wcn_p (X0realcharfuncs,X1realcharfuncs,realcharfuncs_length)
  integer, parameter :: cctki_use_wcn_p = kind(wcn_p)
  REAL*8 wcs (X0realcharfuncs,X1realcharfuncs,realcharfuncs_length)
  integer, parameter :: cctki_use_wcs = kind(wcs)
  REAL*8 wcs_p (X0realcharfuncs,X1realcharfuncs,realcharfuncs_length)
  integer, parameter :: cctki_use_wcs_p = kind(wcs_p)
  COMPLEX*16 zeta (X0StCmCrd,X1StCmCrd)
  integer, parameter :: cctki_use_zeta = kind(zeta)
  REAL*8 Diagnostics_Coord_x
  integer, parameter :: cctki_use_Diagnostics_Coord_x = kind(Diagnostics_Coord_x)
  integer*8 boundary_data
  integer, parameter :: cctki_use_boundary_data = kind(boundary_data)
  integer*8 initial_J_data
  integer, parameter :: cctki_use_initial_J_data = kind(initial_J_data)
  INTEGER*4 DEBUG_skip_B_update
  integer, parameter :: cctki_use_DEBUG_skip_B_update = kind(DEBUG_skip_B_update)
  INTEGER*4 DEBUG_skip_CB_update
  integer, parameter :: cctki_use_DEBUG_skip_CB_update = kind(DEBUG_skip_CB_update)
  INTEGER*4 DEBUG_skip_CK_update
  integer, parameter :: cctki_use_DEBUG_skip_CK_update = kind(DEBUG_skip_CK_update)
  INTEGER*4 DEBUG_skip_J_update
  integer, parameter :: cctki_use_DEBUG_skip_J_update = kind(DEBUG_skip_J_update)
  INTEGER*4 DEBUG_skip_NU_update
  integer, parameter :: cctki_use_DEBUG_skip_NU_update = kind(DEBUG_skip_NU_update)
  INTEGER*4 DEBUG_skip_Q_update
  integer, parameter :: cctki_use_DEBUG_skip_Q_update = kind(DEBUG_skip_Q_update)
  INTEGER*4 DEBUG_skip_U_update
  integer, parameter :: cctki_use_DEBUG_skip_U_update = kind(DEBUG_skip_U_update)
  INTEGER*4 DEBUG_skip_W_update
  integer, parameter :: cctki_use_DEBUG_skip_W_update = kind(DEBUG_skip_W_update)
  INTEGER*4 DEBUG_skip_evolution
  integer, parameter :: cctki_use_DEBUG_skip_evolution = kind(DEBUG_skip_evolution)
  INTEGER*4 debug_verbose
  integer, parameter :: cctki_use_debug_verbose = kind(debug_verbose)
  INTEGER*4 first_order_scheme
  integer, parameter :: cctki_use_first_order_scheme = kind(first_order_scheme)
  INTEGER*4 old_J_xderiv
  integer, parameter :: cctki_use_old_J_xderiv = kind(old_J_xderiv)
  COMMON /NullEvolverest/Diagnostics_Coord_x, boundary_data, initial_J_data, DEBUG_skip_B_update, DEBUG_skip_CB_update, DEBUG_skip_&
  &CK_update, DEBUG_skip_J_update, DEBUG_skip_NU_update, DEBUG_skip_Q_update, DEBUG_skip_U_update, DEBUG_skip_W_update, DEBUG_skip_&
  &evolution, debug_verbose, first_order_scheme, old_J_xderiv
  REAL*8 ID_AMP
  integer, parameter :: cctki_use_ID_AMP = kind(ID_AMP)
  REAL*8 Jcoeff_r0
  integer, parameter :: cctki_use_Jcoeff_r0 = kind(Jcoeff_r0)
  REAL*8 Jcoeff_r0i
  integer, parameter :: cctki_use_Jcoeff_r0i = kind(Jcoeff_r0i)
  REAL*8 Jcoeff_r0r
  integer, parameter :: cctki_use_Jcoeff_r0r = kind(Jcoeff_r0r)
  REAL*8 Jcoeff_r1
  integer, parameter :: cctki_use_Jcoeff_r1 = kind(Jcoeff_r1)
  REAL*8 Jcoeff_r1i
  integer, parameter :: cctki_use_Jcoeff_r1i = kind(Jcoeff_r1i)
  REAL*8 Jcoeff_r1r
  integer, parameter :: cctki_use_Jcoeff_r1r = kind(Jcoeff_r1r)
  REAL*8 Jcoeff_r3
  integer, parameter :: cctki_use_Jcoeff_r3 = kind(Jcoeff_r3)
  REAL*8 Jcoeff_r3i
  integer, parameter :: cctki_use_Jcoeff_r3i = kind(Jcoeff_r3i)
  REAL*8 Jcoeff_r3r
  integer, parameter :: cctki_use_Jcoeff_r3r = kind(Jcoeff_r3r)
  REAL*8 N_dissip_one_outside_eq
  integer, parameter :: cctki_use_N_dissip_one_outside_eq = kind(N_dissip_one_outside_eq)
  REAL*8 N_dissip_zero_outside_eq
  integer, parameter :: cctki_use_N_dissip_zero_outside_eq = kind(N_dissip_zero_outside_eq)
  REAL*8 dissip_J
  integer, parameter :: cctki_use_dissip_J = kind(dissip_J)
  REAL*8 dissip_Jx
  integer, parameter :: cctki_use_dissip_Jx = kind(dissip_Jx)
  REAL*8 dissip_Q
  integer, parameter :: cctki_use_dissip_Q = kind(dissip_Q)
  REAL*8 dissip_W
  integer, parameter :: cctki_use_dissip_W = kind(dissip_W)
  REAL*8 dissip_fudge_maxx
  integer, parameter :: cctki_use_dissip_fudge_maxx = kind(dissip_fudge_maxx)
  REAL*8 null_dissip
  integer, parameter :: cctki_use_null_dissip = kind(null_dissip)
  REAL*8 psmax
  integer, parameter :: cctki_use_psmax = kind(psmax)
  REAL*8 psmin
  integer, parameter :: cctki_use_psmin = kind(psmin)
  REAL*8 qsmax
  integer, parameter :: cctki_use_qsmax = kind(qsmax)
  REAL*8 qsmin
  integer, parameter :: cctki_use_qsmin = kind(qsmin)
  REAL*8 wrot
  integer, parameter :: cctki_use_wrot = kind(wrot)
  REAL*8 xmax
  integer, parameter :: cctki_use_xmax = kind(xmax)
  REAL*8 xmin
  integer, parameter :: cctki_use_xmin = kind(xmin)
  integer*8 dissip_mask_type
  integer, parameter :: cctki_use_dissip_mask_type = kind(dissip_mask_type)
  INTEGER*4 ID_POWER
  integer, parameter :: cctki_use_ID_POWER = kind(ID_POWER)
  INTEGER*4 ID_l
  integer, parameter :: cctki_use_ID_l = kind(ID_l)
  INTEGER*4 ID_m
  integer, parameter :: cctki_use_ID_m = kind(ID_m)
  INTEGER*4 dissip_fudge
  integer, parameter :: cctki_use_dissip_fudge = kind(dissip_fudge)
  INTEGER*4 use_rsYlm
  integer, parameter :: cctki_use_use_rsYlm = kind(use_rsYlm)
  COMMON /NullEvolvepriv/ID_AMP, Jcoeff_r0, Jcoeff_r0i, Jcoeff_r0r, Jcoeff_r1, Jcoeff_r1i, Jcoeff_r1r, Jcoeff_r3, Jcoeff_r3i, Jcoef&
  &f_r3r, N_dissip_one_outside_eq, N_dissip_zero_outside_eq, dissip_J, dissip_Jx, dissip_Q, dissip_W, dissip_fudge_maxx, null_dissi&
  &p, psmax, psmin, qsmax, qsmin, wrot, xmax, xmin, dissip_mask_type, ID_POWER, ID_l, ID_m, dissip_fudge, use_rsYlm
  REAL*8 CCTKH0
  integer, parameter :: cctki_use_CCTKH0 = kind(CCTKH0)
  REAL*8 cctk_initial_time
  integer, parameter :: cctki_use_cctk_initial_time = kind(cctk_initial_time)
  REAL*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*4 cctk_itlast
  integer, parameter :: cctki_use_cctk_itlast = kind(cctk_itlast)
  INTEGER*4 CCTKH4
  integer, parameter :: cctki_use_CCTKH4 = kind(CCTKH4)
  COMMON /CACTUSrest/CCTKH0, cctk_initial_time, CCTKH1, CCTKH2, CCTKH3, cctk_itlast, CCTKH4
  REAL*8 null_rwt
  integer, parameter :: cctki_use_null_rwt = kind(null_rwt)
  REAL*8 null_xin
  integer, parameter :: cctki_use_null_xin = kind(null_xin)
  INTEGER*4 N_ang_ev_outside_eq
  integer, parameter :: cctki_use_N_ang_ev_outside_eq = kind(N_ang_ev_outside_eq)
  INTEGER*4 N_ang_ghost_pts
  integer, parameter :: cctki_use_N_ang_ghost_pts = kind(N_ang_ghost_pts)
  INTEGER*4 N_ang_pts_inside_eq
  integer, parameter :: cctki_use_N_ang_pts_inside_eq = kind(N_ang_pts_inside_eq)
  INTEGER*4 N_ang_stencil_size
  integer, parameter :: cctki_use_N_ang_stencil_size = kind(N_ang_stencil_size)
  INTEGER*4 N_radial_pts
  integer, parameter :: cctki_use_N_radial_pts = kind(N_radial_pts)
  INTEGER*4 CCTKH5
  integer, parameter :: cctki_use_CCTKH5 = kind(CCTKH5)
  COMMON /NULLGRIDrest/null_rwt, null_xin, N_ang_ev_outside_eq, N_ang_ghost_pts, N_ang_pts_inside_eq, N_ang_stencil_size, N_radial_&
  &pts, CCTKH5
  integer*8 CCTKH7
  integer, parameter :: cctki_use_CCTKH7 = kind(CCTKH7)
  INTEGER*4 CCTKH6
  integer, parameter :: cctki_use_CCTKH6 = kind(CCTKH6)
  INTEGER*4 poison_test
  integer, parameter :: cctki_use_poison_test = kind(poison_test)
  COMMON /NULLINTERPrest/CCTKH7, CCTKH6, poison_test
  integer*8 timestep_method
  integer, parameter :: cctki_use_timestep_method = kind(timestep_method)
  INTEGER*4 CCTKH8
  integer, parameter :: cctki_use_CCTKH8 = kind(CCTKH8)
  COMMON /TIMErest/timestep_method, CCTKH8
  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 IO_TruncateOutputFiles (GH)
  implicit none
  integer*8 GH
  end function IO_TruncateOutputFiles
  end interface

  INTEGER*4, parameter :: izero = 0
  integer, parameter :: ik = kind(izero)

  logical, save :: first_time = .TRUE.
  logical :: truncate

  truncate = (IO_TruncateOutputFiles(cctkGH) .ne. 0) .and. first_time

  call NullEvol_DiagImArray(cctkGH, 'J_ev', truncate, 2_ik, jcn, jcs, diagtmp, null_xb, cctk_time)

  call NullEvol_DiagImArray(cctkGH, 'dxJ_ev', truncate, 2_ik, dxjcn, dxjcs, diagtmp, null_xb, cctk_time)

  call NullEvol_DiagImArray(cctkGH, 'Q_ev', truncate, 1_ik, qcn, qcs, diagtmp, null_xb, cctk_time)

  call NullEvol_DiagImArray(cctkGH, 'U_ev', truncate, 1_ik, ucn, ucs, diagtmp, null_xbh, cctk_time)

  if(first_order_scheme.ne.0) then

    call NullEvol_DiagImArray(cctkGH, 'CB_ev', truncate, 1_ik, cbcn, cbcs, diagtmp, null_xb, cctk_time)

    call NullEvol_DiagImArray(cctkGH, 'CK_ev', truncate, 1_ik, ckcn, ckcs, diagtmp, null_xb, cctk_time)

    call NullEvol_DiagImArray(cctkGH, 'NU_ev', truncate, 1_ik, nucn, nucs, diagtmp, null_xb, cctk_time)
  end if

  call NullEvol_DiagReArray(cctkGH, 'W_ev', truncate, wcn, wcs, diagtmp, null_xb, cctk_time)

  call NullEvol_DiagReArray(cctkGH, 'B_ev', truncate, bcn, bcs, diagtmp, null_xb, cctk_time)

  first_time = .FALSE.

end subroutine NullEvol_Diag
