It's probably a good idea to at least have a good understanding of what the circular dependency was before moving things around like this.  If possible I think I would prefer not to move cross_surface to tracking.F90, but perhaps it belongs there anyways, logically.  In that case though I would think cross_lattice should be moved as well.  Also, tracking down the circular dependency might reveal something else that we should fix.