anchor.diff:          integer   surfID_snap(nshg)
           real*8    x_tmp(nsd),    x_crt(nsd)
           real*8    mag,           rad
  +        integer   i
   c
           do i = 1, nshg
   c... if surf ID is snapSurfID
  
positive.code: c... current x
              x_tmp(:) = x(i,:) + disp_snap(i,:)
  c... correct x
  c... hardcoding; we should use simmetrix V_movedParamPoint to do this
              mag = sqrt(x_tmp(2)*x_tmp(2) + x_tmp(3)*x_tmp(3)) ! cylinder axis is x
              rad = 0.05
              x_crt(2) = x_tmp(2) / mag * rad
              x_crt(3) = x_tmp(3) / mag * rad
  c... end hardcoding
  c... update iBC and BC
              iBC(i) = ibset(iBC(i), 14)
  
negative.code:         subroutine resetSnapBC ( x,       disp_snap,
       &                           iBC,     BC,     surfID_snap)
  c
          use iso_c_binding
          use simmetrix_snap
  c
          include "common.h"
  c
          real*8    x(numnp,nsd),  disp_snap(numnp,nsd)
  