





















































































































 


































































































































































 































































































































































































 



















































 










 








































































































































































































































 










                                
                                

                                
                                

                                
                                

                                



















































































 subroutine NullPsiInt_InitMoL(cctk_dim,cctk_gsh,cctk_lsh,cctk_lbnd,cctk_ubnd,cctk_tile_min,cctk_tile_max,cctk_ash,cctk_alignment,c&
  &ctk_alignment_offset,cctk_from,cctk_to,cctk_bbox,cctk_delta_time,cctk_time,cctk_delta_space,cctk_origin_space,cctk_levfac,cctk_l&
  &evoff,cctk_levoffdenom,cctk_timefac,cctk_convlevel,cctk_convfac,cctk_nghostzones,cctk_iteration,cctkGH,cctk_ash1,cctk_ash2,cctk_&
  &ash3, X0im_PsiInt,X0im_dotNewsB,X0re_PsiInt,X0re_dotNewsB,X1im_PsiInt,X1im_dotNewsB,X1re_PsiInt,X1re_dotNewsB,im_PsiInt_length,i&
  &m_dotNewsB_length,re_PsiInt_length,re_dotNewsB_length,im_PsiInt,im_PsiInt_p,im_dotNewsB,im_dotNewsB_p,re_PsiInt,re_PsiInt_p,re_d&
  &otNewsB,re_dotNewsB_p, JJ_l_length,NewsB_Psi_length,NewsB_length,NewsB_mask_length,NewsB_past_length,NewsB_uBondi_length,News_le&
  &ngth,News_past_length,News_uBondi_length,Psi4_length,Psi4_mask_length,Psi4_past_length,Psi4_uBondi_length,X0EG_mask,X0EQ_mask,X0&
  &EV_mask,X0JJ_l,X0News,X0NewsB,X0NewsB_Psi,X0NewsB_mask,X0NewsB_past,X0NewsB_uBondi,X0News_past,X0News_uBondi,X0NullGrParArrI,X0N&
  &ullGrParArrR,X0Psi4,X0Psi4_mask,X0Psi4_past,X0Psi4_uBondi,X0RadCrd,X0StCmCrd,X0StCrd,X0cmplxcharfuncs_aux,X0cmplxcharfuncs_basic&
  &,X0guard_mask,X0linStrain,X0linStrain_past,X0linStrain_uBondi,X0null_mask,X0omega,X0realcharfuncs,X0tmp_cgf,X0tmp_cgf3,X0tmp_rgf&
  &,X0uBondi,X0uBondi_past,X1EG_mask,X1EQ_mask,X1EV_mask,X1JJ_l,X1News,X1NewsB,X1NewsB_Psi,X1NewsB_mask,X1NewsB_past,X1NewsB_uBondi&
  &,X1News_past,X1News_uBondi,X1Psi4,X1Psi4_mask,X1Psi4_past,X1Psi4_uBondi,X1StCmCrd,X1StCrd,X1cmplxcharfuncs_aux,X1cmplxcharfuncs_&
  &basic,X1guard_mask,X1linStrain,X1linStrain_past,X1linStrain_uBondi,X1null_mask,X1omega,X1realcharfuncs,X1tmp_cgf,X1tmp_cgf3,X1tm&
  &p_rgf,X1uBondi,X1uBondi_past,cmplxcharfuncs_aux_length,cmplxcharfuncs_basic_length,linStrain_length,linStrain_past_length,linStr&
  &ain_uBondi_length,omega_length,realcharfuncs_length,uBondi_length,uBondi_past_length,EG_mask,EQ_mask,EV_mask,Jn_l,Jo_l,News,News&
  &B,NewsB_Psi,NewsB_mask,NewsB_past,NewsB_uBondi,News_past,News_uBondi,Psi4,Psi4_mask,Psi4_past,Psi4_uBondi,bcn,bcn_p,bcs,bcs_p,bo&
  &undary_maskn,boundary_masks,cbcn,cbcn_p,cbcs,cbcs_p,ckcn,ckcn_p,ckcs,ckcs_p,constant_uBondi,courant_min_time,courant_wave_speed,&
  &dxjcn,dxjcn_p,dxjcs,dxjcs_p,eth2jcn,eth2jcn_p,eth2jcs,eth2jcs_p,evolution_maskn,evolution_masks,evolution_radius,guard_mask,jcn,&
  &jcn_p,jcs,jcs_p,linStrain,linStrain_past,linStrain_uBondi,nucn,nucn_p,nucs,nucs_p,null_delta,null_dx,null_gsh,null_lbnd,null_lsh&
  &,null_rb,null_rbh,null_ubnd,null_xb,null_xbh,omegan,omegao,qcn,qcn_p,qcs,qcs_p,qsize,stereo_p,stereo_pp,stereo_q,time_of_news,tm&
  &p_cgfn,tmp_cgfn1,tmp_cgfn2,tmp_cgfn3,tmp_cgfs,tmp_cgfs1,tmp_cgfs2,tmp_cgfs3,tmp_rgfn,tmp_rgfs,uBondi,uBondi_past,ucn,ucn_p,ucs,u&
  &cs_p,wcn,wcn_p,wcs,wcs_p,zeta)
 use cctk
 use NullGrid_Vars
 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 X0im_PsiInt
  INTEGER X0im_dotNewsB
  INTEGER X0re_PsiInt
  INTEGER X0re_dotNewsB
  INTEGER X1im_PsiInt
  INTEGER X1im_dotNewsB
  INTEGER X1re_PsiInt
  INTEGER X1re_dotNewsB
  INTEGER im_PsiInt_length
  INTEGER im_dotNewsB_length
  INTEGER re_PsiInt_length
  INTEGER re_dotNewsB_length
  REAL*8 im_PsiInt (X0im_PsiInt,X1im_PsiInt,im_PsiInt_length)
  integer, parameter :: cctki_use_im_PsiInt = kind(im_PsiInt)
  REAL*8 im_PsiInt_p (X0im_PsiInt,X1im_PsiInt,im_PsiInt_length)
  integer, parameter :: cctki_use_im_PsiInt_p = kind(im_PsiInt_p)
  REAL*8 im_dotNewsB (X0im_dotNewsB,X1im_dotNewsB,im_dotNewsB_length)
  integer, parameter :: cctki_use_im_dotNewsB = kind(im_dotNewsB)
  REAL*8 im_dotNewsB_p (X0im_dotNewsB,X1im_dotNewsB,im_dotNewsB_length)
  integer, parameter :: cctki_use_im_dotNewsB_p = kind(im_dotNewsB_p)
  REAL*8 re_PsiInt (X0re_PsiInt,X1re_PsiInt,re_PsiInt_length)
  integer, parameter :: cctki_use_re_PsiInt = kind(re_PsiInt)
  REAL*8 re_PsiInt_p (X0re_PsiInt,X1re_PsiInt,re_PsiInt_length)
  integer, parameter :: cctki_use_re_PsiInt_p = kind(re_PsiInt_p)
  REAL*8 re_dotNewsB (X0re_dotNewsB,X1re_dotNewsB,re_dotNewsB_length)
  integer, parameter :: cctki_use_re_dotNewsB = kind(re_dotNewsB)
  REAL*8 re_dotNewsB_p (X0re_dotNewsB,X1re_dotNewsB,re_dotNewsB_length)
  integer, parameter :: cctki_use_re_dotNewsB_p = kind(re_dotNewsB_p)
  INTEGER JJ_l_length
  INTEGER NewsB_Psi_length
  INTEGER NewsB_length
  INTEGER NewsB_mask_length
  INTEGER NewsB_past_length
  INTEGER NewsB_uBondi_length
  INTEGER News_length
  INTEGER News_past_length
  INTEGER News_uBondi_length
  INTEGER Psi4_length
  INTEGER Psi4_mask_length
  INTEGER Psi4_past_length
  INTEGER Psi4_uBondi_length
  INTEGER X0EG_mask
  INTEGER X0EQ_mask
  INTEGER X0EV_mask
  INTEGER X0JJ_l
  INTEGER X0News
  INTEGER X0NewsB
  INTEGER X0NewsB_Psi
  INTEGER X0NewsB_mask
  INTEGER X0NewsB_past
  INTEGER X0NewsB_uBondi
  INTEGER X0News_past
  INTEGER X0News_uBondi
  INTEGER X0NullGrParArrI
  INTEGER X0NullGrParArrR
  INTEGER X0Psi4
  INTEGER X0Psi4_mask
  INTEGER X0Psi4_past
  INTEGER X0Psi4_uBondi
  INTEGER X0RadCrd
  INTEGER X0StCmCrd
  INTEGER X0StCrd
  INTEGER X0cmplxcharfuncs_aux
  INTEGER X0cmplxcharfuncs_basic
  INTEGER X0guard_mask
  INTEGER X0linStrain
  INTEGER X0linStrain_past
  INTEGER X0linStrain_uBondi
  INTEGER X0null_mask
  INTEGER X0omega
  INTEGER X0realcharfuncs
  INTEGER X0tmp_cgf
  INTEGER X0tmp_cgf3
  INTEGER X0tmp_rgf
  INTEGER X0uBondi
  INTEGER X0uBondi_past
  INTEGER X1EG_mask
  INTEGER X1EQ_mask
  INTEGER X1EV_mask
  INTEGER X1JJ_l
  INTEGER X1News
  INTEGER X1NewsB
  INTEGER X1NewsB_Psi
  INTEGER X1NewsB_mask
  INTEGER X1NewsB_past
  INTEGER X1NewsB_uBondi
  INTEGER X1News_past
  INTEGER X1News_uBondi
  INTEGER X1Psi4
  INTEGER X1Psi4_mask
  INTEGER X1Psi4_past
  INTEGER X1Psi4_uBondi
  INTEGER X1StCmCrd
  INTEGER X1StCrd
  INTEGER X1cmplxcharfuncs_aux
  INTEGER X1cmplxcharfuncs_basic
  INTEGER X1guard_mask
  INTEGER X1linStrain
  INTEGER X1linStrain_past
  INTEGER X1linStrain_uBondi
  INTEGER X1null_mask
  INTEGER X1omega
  INTEGER X1realcharfuncs
  INTEGER X1tmp_cgf
  INTEGER X1tmp_cgf3
  INTEGER X1tmp_rgf
  INTEGER X1uBondi
  INTEGER X1uBondi_past
  INTEGER cmplxcharfuncs_aux_length
  INTEGER cmplxcharfuncs_basic_length
  INTEGER linStrain_length
  INTEGER linStrain_past_length
  INTEGER linStrain_uBondi_length
  INTEGER omega_length
  INTEGER realcharfuncs_length
  INTEGER uBondi_length
  INTEGER uBondi_past_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)
  COMPLEX*16 Jn_l (X0JJ_l,X1JJ_l,JJ_l_length)
  integer, parameter :: cctki_use_Jn_l = kind(Jn_l)
  COMPLEX*16 Jo_l (X0JJ_l,X1JJ_l,JJ_l_length)
  integer, parameter :: cctki_use_Jo_l = kind(Jo_l)
  COMPLEX*16 News (X0News,X1News,News_length)
  integer, parameter :: cctki_use_News = kind(News)
  COMPLEX*16 NewsB (X0NewsB,X1NewsB,NewsB_length)
  integer, parameter :: cctki_use_NewsB = kind(NewsB)
  COMPLEX*16 NewsB_Psi (X0NewsB_Psi,X1NewsB_Psi,NewsB_Psi_length)
  integer, parameter :: cctki_use_NewsB_Psi = kind(NewsB_Psi)
  COMPLEX*16 NewsB_mask (X0NewsB_mask,X1NewsB_mask,NewsB_mask_length)
  integer, parameter :: cctki_use_NewsB_mask = kind(NewsB_mask)
  COMPLEX*16 NewsB_past (X0NewsB_past,X1NewsB_past,NewsB_past_length)
  integer, parameter :: cctki_use_NewsB_past = kind(NewsB_past)
  COMPLEX*16 NewsB_uBondi (X0NewsB_uBondi,X1NewsB_uBondi,NewsB_uBondi_length)
  integer, parameter :: cctki_use_NewsB_uBondi = kind(NewsB_uBondi)
  COMPLEX*16 News_past (X0News_past,X1News_past,News_past_length)
  integer, parameter :: cctki_use_News_past = kind(News_past)
  COMPLEX*16 News_uBondi (X0News_uBondi,X1News_uBondi,News_uBondi_length)
  integer, parameter :: cctki_use_News_uBondi = kind(News_uBondi)
  COMPLEX*16 Psi4 (X0Psi4,X1Psi4,Psi4_length)
  integer, parameter :: cctki_use_Psi4 = kind(Psi4)
  COMPLEX*16 Psi4_mask (X0Psi4_mask,X1Psi4_mask,Psi4_mask_length)
  integer, parameter :: cctki_use_Psi4_mask = kind(Psi4_mask)
  COMPLEX*16 Psi4_past (X0Psi4_past,X1Psi4_past,Psi4_past_length)
  integer, parameter :: cctki_use_Psi4_past = kind(Psi4_past)
  COMPLEX*16 Psi4_uBondi (X0Psi4_uBondi,X1Psi4_uBondi,Psi4_uBondi_length)
  integer, parameter :: cctki_use_Psi4_uBondi = kind(Psi4_uBondi)
  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 constant_uBondi
  integer, parameter :: cctki_use_constant_uBondi = kind(constant_uBondi)
  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 linStrain (X0linStrain,X1linStrain,linStrain_length)
  integer, parameter :: cctki_use_linStrain = kind(linStrain)
  COMPLEX*16 linStrain_past (X0linStrain_past,X1linStrain_past,linStrain_past_length)
  integer, parameter :: cctki_use_linStrain_past = kind(linStrain_past)
  COMPLEX*16 linStrain_uBondi (X0linStrain_uBondi,X1linStrain_uBondi,linStrain_uBondi_length)
  integer, parameter :: cctki_use_linStrain_uBondi = kind(linStrain_uBondi)
  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)
  REAL*8 omegan (X0omega,X1omega,omega_length)
  integer, parameter :: cctki_use_omegan = kind(omegan)
  REAL*8 omegao (X0omega,X1omega,omega_length)
  integer, parameter :: cctki_use_omegao = kind(omegao)
  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)
  REAL*8 time_of_news
  integer, parameter :: cctki_use_time_of_news = kind(time_of_news)
  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)
  REAL*8 uBondi (X0uBondi,X1uBondi,uBondi_length)
  integer, parameter :: cctki_use_uBondi = kind(uBondi)
  REAL*8 uBondi_past (X0uBondi_past,X1uBondi_past,uBondi_past_length)
  integer, parameter :: cctki_use_uBondi_past = kind(uBondi_past)
  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)
 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 MoLRegisterEvolvedGroup (EvolvedIndex, RHSIndex)
  implicit none
  INTEGER*4 EvolvedIndex
  INTEGER*4 RHSIndex
  end function MoLRegisterEvolvedGroup
  end interface
 INTEGER*4 NullPsiInt_MaxEvolvedArraySize
  integer, parameter :: cctki_use_NullPsiInt_MaxEvolvedArraySize = kind(NullPsiInt_MaxEvolvedArraySize)
  INTEGER*4 NullPsiInt_NumArrayEvolvedVars
  integer, parameter :: cctki_use_NullPsiInt_NumArrayEvolvedVars = kind(NullPsiInt_NumArrayEvolvedVars)
  COMMON /NullPsiIntrest/NullPsiInt_MaxEvolvedArraySize, NullPsiInt_NumArrayEvolvedVars
  integer*8 mask_type
  integer, parameter :: cctki_use_mask_type = kind(mask_type)
  COMMON /NullPsiIntpriv/mask_type
  INTEGER*4 MoL_Max_Evolved_Array_Size
  integer, parameter :: cctki_use_MoL_Max_Evolved_Array_Size = kind(MoL_Max_Evolved_Array_Size)
  INTEGER*4 CCTKH0
  integer, parameter :: cctki_use_CCTKH0 = kind(CCTKH0)
  INTEGER*4 MoL_Num_ArrayEvolved_Vars
  integer, parameter :: cctki_use_MoL_Num_ArrayEvolved_Vars = kind(MoL_Num_ArrayEvolved_Vars)
  INTEGER*4 CCTKH1
  integer, parameter :: cctki_use_CCTKH1 = kind(CCTKH1)
  INTEGER*4 CCTKH2
  integer, parameter :: cctki_use_CCTKH2 = kind(CCTKH2)
  INTEGER*4 CCTKH3
  integer, parameter :: cctki_use_CCTKH3 = kind(CCTKH3)
  INTEGER*4 CCTKH4
  integer, parameter :: cctki_use_CCTKH4 = kind(CCTKH4)
  INTEGER*4 CCTKH5
  integer, parameter :: cctki_use_CCTKH5 = kind(CCTKH5)
  INTEGER*4 CCTKH6
  integer, parameter :: cctki_use_CCTKH6 = kind(CCTKH6)
  COMMON /METHODOFLINESrest/MoL_Max_Evolved_Array_Size, CCTKH0, MoL_Num_ArrayEvolved_Vars, CCTKH1, CCTKH2, CCTKH3, CCTKH4, CCTKH5, &
  &CCTKH6
  REAL*8 CCTKH7
  integer, parameter :: cctki_use_CCTKH7 = kind(CCTKH7)
  REAL*8 CCTKH8
  integer, parameter :: cctki_use_CCTKH8 = kind(CCTKH8)
  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 CCTKH9
  integer, parameter :: cctki_use_CCTKH9 = kind(CCTKH9)
  COMMON /NULLGRIDrest/CCTKH7, CCTKH8, N_ang_ev_outside_eq, N_ang_ghost_pts, N_ang_pts_inside_eq, N_ang_stencil_size, N_radial_pts,&
  & CCTKH9

  INTEGER*4 :: patch_ID
  COMPLEX*16 :: ii
  ii = dcmplx(0.,1.)


  patch_ID = ip_n-1

  do patch_ID = 1, 2


    if ((CCTK_Equals(mask_type, "none") .ne. 0)) then

       NewsB_mask(:,:,patch_ID) = NewsB(:,:,patch_ID) 
       Psi4_mask(:,:,patch_ID) = Psi4(:,:,patch_ID)

    else if ((CCTK_Equals(mask_type, "EG_mask") .ne. 0)) then

       NewsB_mask(:,:,patch_ID) = EG_mask*NewsB(:,:,patch_ID)
       Psi4_mask(:,:,patch_ID) = EG_mask*Psi4(:,:,patch_ID)

    else if ((CCTK_Equals(mask_type, "EQ_mask") .ne. 0)) then

       NewsB_mask(:,:,patch_ID) = EQ_mask*NewsB(:,:,patch_ID)
       Psi4_mask(:,:,patch_ID) = EQ_mask*Psi4(:,:,patch_ID)

    else if ((CCTK_Equals(mask_type, "EV_mask") .ne. 0)) then

       NewsB_mask(:,:,patch_ID) = EV_mask*NewsB(:,:,patch_ID)
       Psi4_mask(:,:,patch_ID) = EV_mask*Psi4(:,:,patch_ID)

    else
      call CCTK_Warn(0,47,"NullPsiInt_InitMoL.F90","NullPsiInt", "unsupported circular mask type")
    end if


     re_dotNewsB(:,:,patch_ID) = dble(Psi4_mask(:,:,patch_ID))
     im_dotNewsB(:,:,patch_ID) = dimag(Psi4_mask(:,:,patch_ID))

     re_PsiInt(:,:,patch_ID) = dble(NewsB_mask(:,:,patch_ID))
     im_PsiInt(:,:,patch_ID) = dimag(NewsB_mask(:,:,patch_ID))

     NewsB_Psi(:,:,patch_ID) = re_PsiInt(:,:,patch_ID) + ii*im_PsiInt(:,:,patch_ID)

     re_dotNewsB_p(:,:,patch_ID) = dble(Psi4_mask(:,:,patch_ID))
     im_dotNewsB_p(:,:,patch_ID) = dimag(Psi4_mask(:,:,patch_ID))

     re_PsiInt_p(:,:,patch_ID) = dble(NewsB_mask(:,:,patch_ID))
     im_PsiInt_p(:,:,patch_ID) = dimag(NewsB_mask(:,:,patch_ID))

  end do 

 end subroutine NullPsiInt_InitMoL 
