anchor.diff:                      endif
                       yc = yc - ysign * yw
                   endif
  -                yc = min( max(yc, 1), ny)
  +                yc = min( max(yc, jms), jme)
                   if (lo%lat(xc,yc) < lat) then
                       if (yw == 2) then
                           yw = 1
  
positive.code:     !!  loops over y,z,x but geolut is only defined over x,y (for now)
      !!
      !!------------------------------------------------------------
      subroutine geo_interp(fieldout,fieldin,geolut,boundary_only)
          implicit none
          real,intent(inout)::fieldout(:,:,:)
          real,intent(in)::fieldin(:,:,:)
          type(geo_look_up_table),intent(in)::geolut
          logical,intent(in)::boundary_only
          integer::nx,nz,ny
          integer:: i,j,k,l,localx,localy
          real::localw
          real :: local_center
  
          nx=size(fieldout,1)
          nz=size(fieldout,2)
          ny=size(fieldout,3)
  
          ! if we are only processing the boundary, then make x and y increments be the size of the array
          ! so we only hit the edges of the array
          if (boundary_only) then
              call boundary_interpolate(fieldout, fieldin, geolut)
          else
          ! use the geographic lookup table generated earlier to
          ! compute a bilinear interpolation from lo to hi
          ! if we are doing the interior too, just iterate over all x and y
              do k=1,ny
                  do j=1,nz
                      do i=1,nx
                          fieldout(i,j,k)=0
                          local_center = 0
                          do l=1,4
                              localx=geolut%x(l,i,k)
                              localy=geolut%y(l,i,k)
                              local_center = local_center + fieldin(localx,j,localy)
                              if (l < 3) then
                                  localw=geolut%w(l,i,k)
                                  fieldout(i,j,k) = fieldout(i,j,k) + fieldin(localx,j,localy) * localw
                              endif
                          enddo
                          localw = geolut%w(3,i,k)
                          fieldout(i,j,k) = fieldout(i,j,k) + local_center/4 * localw
                          ! do l=1,4
                          !     localx=geolut%x(l,i,k)
                          !     localy=geolut%y(l,i,k)
  
negative.code:         real,intent(in)::yi,y(4),xi,x(4)
          real::x0,y0
          real, dimension(4) ::tri_weights
  
          real :: w1,w2,w3,denom
  
  