anchor.diff:          type(geo_look_up_table),intent(in)::geolut
           integer::i,k,l,ny,nx,localx,localy
           real::localw
  +        real :: local_center
   
           nx=size(fieldout,1)
           ny=size(fieldout,2)
  
positive.code:         real :: x0,y0,x1,y1
          double precision :: slope, x_line
  
          internal_precision = 1e-7
          if (present(precision)) internal_precision = precision
          n = size(poly,2)
  
  
negative.code:             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
                      ! fieldout(i,j,k)=0
                      ! do l=1,4
                      !     localx=geolut%x(l,i,k)
                      !     localy=geolut%y(l,i,k)
                      !     localw=geolut%w(l,i,k)
                      !     fieldout(i,j,k)=fieldout(i,j,k)+fieldin(localx,j,localy)*localw
                      ! enddo
                  enddo
              enddo
          enddo
  