
























































































































 


































































































































































 























































































































































































 



















































 










 








































































































































































































































 










                                
                                

                                
                                

                                
                                

                                


















































subroutine proca_symmetries( cctk_dim,cctk_gsh,cctk_lsh,cctk_lbnd,cctk_ubnd,cctk_tile_min,cctk_tile_max,cctk_ash,cctk_alignment,cct&
  &k_alignment_offset,cctk_from,cctk_to,cctk_bbox,cctk_delta_time,cctk_time,cctk_delta_space,cctk_origin_space,cctk_levfac,cctk_lev&
  &off,cctk_levoffdenom,cctk_timefac,cctk_convlevel,cctk_convfac,cctk_nghostzones,cctk_iteration,cctkGH,cctk_ash1,cctk_ash2,cctk_as&
  &h3, Aphi,Aphi_p,Aphi_p_p,Ax,Ax_p,Ax_p_p,Ay,Ay_p,Ay_p_p,Az,Az_p,Az_p_p,Ex,Ex_p,Ex_p_p,Ey,Ey_p,Ey_p_p,Ez,Ez_p,Ez_p_p,Zeta,Zeta_p,Z&
  &eta_p_p )

  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)
  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 Ax (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Ax = kind(Ax)
  REAL*8 Ax_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Ax_p = kind(Ax_p)
  REAL*8 Ax_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Ax_p_p = kind(Ax_p_p)
  REAL*8 Ay (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Ay = kind(Ay)
  REAL*8 Ay_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Ay_p = kind(Ay_p)
  REAL*8 Ay_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Ay_p_p = kind(Ay_p_p)
  REAL*8 Az (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Az = kind(Az)
  REAL*8 Az_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Az_p = kind(Az_p)
  REAL*8 Az_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Az_p_p = kind(Az_p_p)
  REAL*8 Ex (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Ex = kind(Ex)
  REAL*8 Ex_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Ex_p = kind(Ex_p)
  REAL*8 Ex_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Ex_p_p = kind(Ex_p_p)
  REAL*8 Ey (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Ey = kind(Ey)
  REAL*8 Ey_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Ey_p = kind(Ey_p)
  REAL*8 Ey_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Ey_p_p = kind(Ey_p_p)
  REAL*8 Ez (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Ez = kind(Ez)
  REAL*8 Ez_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Ez_p = kind(Ez_p)
  REAL*8 Ez_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Ez_p_p = kind(Ez_p_p)
  REAL*8 Zeta (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Zeta = kind(Zeta)
  REAL*8 Zeta_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Zeta_p = kind(Zeta_p)
  REAL*8 Zeta_p_p (cctk_ash1,cctk_ash2,cctk_ash3)
  integer, parameter :: cctki_use_Zeta_p_p = kind(Zeta_p_p)
  REAL*8 A0 (3)
  integer, parameter :: cctki_use_A0 = kind(A0)
  REAL*8 Aphi0
  integer, parameter :: cctki_use_Aphi0 = kind(Aphi0)
  REAL*8 E0 (3)
  integer, parameter :: cctki_use_E0 = kind(E0)
  REAL*8 mu
  integer, parameter :: cctki_use_mu = kind(mu)
  integer*8 evolution_method
  integer, parameter :: cctki_use_evolution_method = kind(evolution_method)
  integer*8 initial_Proca
  integer, parameter :: cctki_use_initial_Proca = kind(initial_Proca)
  INTEGER*4 n_A (3)
  integer, parameter :: cctki_use_n_A = kind(n_A)
  INTEGER*4 n_Aphi
  integer, parameter :: cctki_use_n_Aphi = kind(n_Aphi)
  INTEGER*4 n_E (3)
  integer, parameter :: cctki_use_n_E = kind(n_E)
  INTEGER*4 n_Zeta
  integer, parameter :: cctki_use_n_Zeta = kind(n_Zeta)
  COMMON /ProcaBaserest/A0, Aphi0, E0, mu, evolution_method, initial_Proca, n_A, n_Aphi, n_E, n_Zeta
  REAL*8 CCTKH5
  integer, parameter :: cctki_use_CCTKH5 = kind(CCTKH5)
  REAL*8 CCTKH20
  integer, parameter :: cctki_use_CCTKH20 = kind(CCTKH20)
  REAL*8 CCTKH30
  integer, parameter :: cctki_use_CCTKH30 = kind(CCTKH30)
  REAL*8 CCTKH32
  integer, parameter :: cctki_use_CCTKH32 = kind(CCTKH32)
  REAL*8 CCTKH34
  integer, parameter :: cctki_use_CCTKH34 = kind(CCTKH34)
  REAL*8 CCTKH36
  integer, parameter :: cctki_use_CCTKH36 = kind(CCTKH36)
  REAL*8 CCTKH38
  integer, parameter :: cctki_use_CCTKH38 = kind(CCTKH38)
  REAL*8 CCTKH40
  integer, parameter :: cctki_use_CCTKH40 = kind(CCTKH40)
  REAL*8 CCTKH42
  integer, parameter :: cctki_use_CCTKH42 = kind(CCTKH42)
  REAL*8 CCTKH44
  integer, parameter :: cctki_use_CCTKH44 = kind(CCTKH44)
  REAL*8 CCTKH46
  integer, parameter :: cctki_use_CCTKH46 = kind(CCTKH46)
  integer*8 CCTKH2
  integer, parameter :: cctki_use_CCTKH2 = kind(CCTKH2)
  integer*8 CCTKH3
  integer, parameter :: cctki_use_CCTKH3 = kind(CCTKH3)
  integer*8 CCTKH6
  integer, parameter :: cctki_use_CCTKH6 = kind(CCTKH6)
  integer*8 CCTKH9
  integer, parameter :: cctki_use_CCTKH9 = kind(CCTKH9)
  integer*8 CCTKH10
  integer, parameter :: cctki_use_CCTKH10 = kind(CCTKH10)
  integer*8 CCTKH11
  integer, parameter :: cctki_use_CCTKH11 = kind(CCTKH11)
  integer*8 CCTKH15
  integer, parameter :: cctki_use_CCTKH15 = kind(CCTKH15)
  integer*8 CCTKH16
  integer, parameter :: cctki_use_CCTKH16 = kind(CCTKH16)
  integer*8 CCTKH22
  integer, parameter :: cctki_use_CCTKH22 = kind(CCTKH22)
  integer*8 CCTKH23
  integer, parameter :: cctki_use_CCTKH23 = kind(CCTKH23)
  integer*8 CCTKH24
  integer, parameter :: cctki_use_CCTKH24 = kind(CCTKH24)
  integer*8 CCTKH26
  integer, parameter :: cctki_use_CCTKH26 = kind(CCTKH26)
  integer*8 CCTKH48
  integer, parameter :: cctki_use_CCTKH48 = kind(CCTKH48)
  integer*8 CCTKH50
  integer, parameter :: cctki_use_CCTKH50 = kind(CCTKH50)
  integer*8 recover
  integer, parameter :: cctki_use_recover = kind(recover)
  integer*8 CCTKH53
  integer, parameter :: cctki_use_CCTKH53 = kind(CCTKH53)
  integer*8 CCTKH54
  integer, parameter :: cctki_use_CCTKH54 = kind(CCTKH54)
  integer*8 CCTKH57
  integer, parameter :: cctki_use_CCTKH57 = kind(CCTKH57)
  INTEGER*4 CCTKH0
  integer, parameter :: cctki_use_CCTKH0 = kind(CCTKH0)
  INTEGER*4 CCTKH1
  integer, parameter :: cctki_use_CCTKH1 = kind(CCTKH1)
  INTEGER*4 CCTKH4
  integer, parameter :: cctki_use_CCTKH4 = kind(CCTKH4)
  INTEGER*4 CCTKH7
  integer, parameter :: cctki_use_CCTKH7 = kind(CCTKH7)
  INTEGER*4 CCTKH8
  integer, parameter :: cctki_use_CCTKH8 = kind(CCTKH8)
  INTEGER*4 CCTKH12
  integer, parameter :: cctki_use_CCTKH12 = kind(CCTKH12)
  INTEGER*4 CCTKH13
  integer, parameter :: cctki_use_CCTKH13 = kind(CCTKH13)
  INTEGER*4 CCTKH14
  integer, parameter :: cctki_use_CCTKH14 = kind(CCTKH14)
  INTEGER*4 CCTKH17
  integer, parameter :: cctki_use_CCTKH17 = kind(CCTKH17)
  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 CCTKH25
  integer, parameter :: cctki_use_CCTKH25 = kind(CCTKH25)
  INTEGER*4 CCTKH27
  integer, parameter :: cctki_use_CCTKH27 = kind(CCTKH27)
  INTEGER*4 CCTKH28
  integer, parameter :: cctki_use_CCTKH28 = kind(CCTKH28)
  INTEGER*4 CCTKH29
  integer, parameter :: cctki_use_CCTKH29 = kind(CCTKH29)
  INTEGER*4 CCTKH31
  integer, parameter :: cctki_use_CCTKH31 = kind(CCTKH31)
  INTEGER*4 CCTKH33
  integer, parameter :: cctki_use_CCTKH33 = kind(CCTKH33)
  INTEGER*4 CCTKH35
  integer, parameter :: cctki_use_CCTKH35 = kind(CCTKH35)
  INTEGER*4 CCTKH37
  integer, parameter :: cctki_use_CCTKH37 = kind(CCTKH37)
  INTEGER*4 CCTKH39
  integer, parameter :: cctki_use_CCTKH39 = kind(CCTKH39)
  INTEGER*4 CCTKH41
  integer, parameter :: cctki_use_CCTKH41 = kind(CCTKH41)
  INTEGER*4 CCTKH43
  integer, parameter :: cctki_use_CCTKH43 = kind(CCTKH43)
  INTEGER*4 CCTKH45
  integer, parameter :: cctki_use_CCTKH45 = kind(CCTKH45)
  INTEGER*4 CCTKH47
  integer, parameter :: cctki_use_CCTKH47 = kind(CCTKH47)
  INTEGER*4 CCTKH49
  integer, parameter :: cctki_use_CCTKH49 = kind(CCTKH49)
  INTEGER*4 CCTKH51
  integer, parameter :: cctki_use_CCTKH51 = kind(CCTKH51)
  INTEGER*4 CCTKH52
  integer, parameter :: cctki_use_CCTKH52 = kind(CCTKH52)
  INTEGER*4 CCTKH55
  integer, parameter :: cctki_use_CCTKH55 = kind(CCTKH55)
  INTEGER*4 CCTKH56
  integer, parameter :: cctki_use_CCTKH56 = kind(CCTKH56)
  COMMON /IOrest/CCTKH5, CCTKH20, CCTKH30, CCTKH32, CCTKH34, CCTKH36, CCTKH38, CCTKH40, CCTKH42, CCTKH44, CCTKH46, CCTKH2, CCTKH3, &
  &CCTKH6, CCTKH9, CCTKH10, CCTKH11, CCTKH15, CCTKH16, CCTKH22, CCTKH23, CCTKH24, CCTKH26, CCTKH48, CCTKH50, recover, CCTKH53, CCTK&
  &H54, CCTKH57, CCTKH0, CCTKH1, CCTKH4, CCTKH7, CCTKH8, CCTKH12, CCTKH13, CCTKH14, CCTKH17, CCTKH18, CCTKH19, CCTKH21, CCTKH25, CC&
  &TKH27, CCTKH28, CCTKH29, CCTKH31, CCTKH33, CCTKH35, CCTKH37, CCTKH39, CCTKH41, CCTKH43, CCTKH45, CCTKH47, CCTKH49, CCTKH51, CCTK&
  &H52, CCTKH55, CCTKH56

  INTEGER*4 ierr

  call SetCartSymVN( ierr, cctkGH, (/-1, 1, 1/), "ProcaBase::Ex" )
  call SetCartSymVN( ierr, cctkGH, (/ 1,-1, 1/), "ProcaBase::Ey" )
  call SetCartSymVN( ierr, cctkGH, (/ 1, 1,-1/), "ProcaBase::Ez" )

  call SetCartSymVN( ierr, cctkGH, (/-1, 1, 1/), "ProcaBase::Ax" )
  call SetCartSymVN( ierr, cctkGH, (/ 1,-1, 1/), "ProcaBase::Ay" )
  call SetCartSymVN( ierr, cctkGH, (/ 1, 1,-1/), "ProcaBase::Az" )

  call SetCartSymVN( ierr, cctkGH, (/ 1, 1, 1/), "ProcaBase::Zeta" )

  call SetCartSymVN( ierr, cctkGH, (/ 1, 1, 1/), "ProcaBase::Aphi" )

end subroutine proca_symmetries
