finished intercept method for convex and concave surfaces but not plane surfaces. Had to build 'centre' method to calculate the centre of the spherical surface, a 'surface' method that determines what type of surface it is based on its curvature sign, and a 'radius' method to calculate the radius. I also split up the long l calculation into variables such as 'rdotkunit' and 'r_mag' to make the code easier to read