























































































































 


































































































































































 




























































































































































































 



















































 










 








































































































































































































































 










                                
                                

                                
                                

                                
                                

                                







































      subroutine SetUp2DGFs(cctk_dim,cctk_gsh,cctk_lsh,cctk_lbnd,cctk_ub
     &nd,cctk_tile_min,cctk_tile_max,cctk_ash,cctk_alignment,cctk_alignm
     &ent_offset,cctk_from,cctk_to,cctk_bbox,cctk_delta_time,cctk_time,c
     &ctk_delta_space,cctk_origin_space,cctk_levfac,cctk_levoff,cctk_lev
     &offdenom,cctk_timefac,cctk_convlevel,cctk_convfac,cctk_nghostzones
     &,cctk_iteration,cctkGH,cctk_ash1,cctk_ash2,cctk_ash3, X0compinterp
     &s,X0coordarrays,X0realinterps,compgf1,compgf2,compgf3,compinterp1,
     &compinterp2,compinterp3,realgf1,realgf2,realgf3,realinterp1,realin
     &terp2,realinterp3,xcoord,ycoord,zcoord)

      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_alignme
     &nt)
      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_orig
     &in_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_levof
     &fdenom)
      INTEGER cctk_timefac
      integer, parameter :: cctki_use_cctk_timefac = kind(cctk_timefac)
      INTEGER cctk_convlevel
      integer, parameter :: cctki_use_cctk_convlevel = kind(cctk_convlev
     &el)
      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_nghos
     &tzones)
      INTEGER cctk_iteration
      integer, parameter :: cctki_use_cctk_iteration = kind(cctk_iterati
     &on)
      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 X0compinterps
      INTEGER X0coordarrays
      INTEGER X0realinterps
      COMPLEX*16 compgf1 (cctk_ash1)
      integer, parameter :: cctki_use_compgf1 = kind(compgf1)
      COMPLEX*16 compgf2 (cctk_ash1,cctk_ash2)
      integer, parameter :: cctki_use_compgf2 = kind(compgf2)
      COMPLEX*16 compgf3 (cctk_ash1,cctk_ash2,cctk_ash3)
      integer, parameter :: cctki_use_compgf3 = kind(compgf3)
      COMPLEX*16 compinterp1 (X0compinterps)
      integer, parameter :: cctki_use_compinterp1 = kind(compinterp1)
      COMPLEX*16 compinterp2 (X0compinterps)
      integer, parameter :: cctki_use_compinterp2 = kind(compinterp2)
      COMPLEX*16 compinterp3 (X0compinterps)
      integer, parameter :: cctki_use_compinterp3 = kind(compinterp3)
      REAL*8 realgf1 (cctk_ash1)
      integer, parameter :: cctki_use_realgf1 = kind(realgf1)
      REAL*8 realgf2 (cctk_ash1,cctk_ash2)
      integer, parameter :: cctki_use_realgf2 = kind(realgf2)
      REAL*8 realgf3 (cctk_ash1,cctk_ash2,cctk_ash3)
      integer, parameter :: cctki_use_realgf3 = kind(realgf3)
      REAL*8 realinterp1 (X0realinterps)
      integer, parameter :: cctki_use_realinterp1 = kind(realinterp1)
      REAL*8 realinterp2 (X0realinterps)
      integer, parameter :: cctki_use_realinterp2 = kind(realinterp2)
      REAL*8 realinterp3 (X0realinterps)
      integer, parameter :: cctki_use_realinterp3 = kind(realinterp3)
      REAL*8 xcoord (X0coordarrays)
      integer, parameter :: cctki_use_xcoord = kind(xcoord)
      REAL*8 ycoord (X0coordarrays)
      integer, parameter :: cctki_use_ycoord = kind(ycoord)
      REAL*8 zcoord (X0coordarrays)
      integer, parameter :: cctki_use_zcoord = kind(zcoord)

      integer nx,ny
      integer i,j
      REAL*8 xp,yp,rp
      REAL*8 dx,dy

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

      dx = cctk_delta_space(1)
      dy = cctk_delta_space(2)

      do j=1,ny
         do i=1,nx
            xp = (cctk_lbnd(1)+i-1)*dx-0.5d0
            yp = (cctk_lbnd(2)+j-1)*dy-0.5d0
            rp = sqrt( xp**2+yp**2 )
            realgf2(i,j) = rp
            compgf2(i,j) = cmplx(rp,cos(rp))
         end do
      end do

      return
      end
