Subdivide SOP previously implemented an improved OpenSubdiv Catmull-Clark and OpenSubdiv Bilinear algorithms using VEX, which handles a lot more topological cases and produces better results than the default OpenSubdiv algorithms for certain geometry, i.e. open polygonal curves, non-manifold geometry, mixed topology, etc.
Subdivide SOP now also provides the default OpenSubdiv Catmull-Clark and OpenSubdiv Bilinear algorithms, where the former is the new default algorithm. What I added on top of this is the ability to preserve the primitive boundaries when subdividing sub-geometry. VEX version already did this.
In general the default OpenSubdiv algorithms are faster than the VEX based implementation on average. So adding this feature covers the cases where you want to subdivide sub-geometry while preserving the primitive boundaries, where you might favor speed more than handling special topological cases, especially if your geometry is a regular polygonal surface.
This also allows me to abstract this complexity out of the Adaptive Subdivide SOP, and makes its network a lot simpler. Adaptive Subdivide SOP is primarily focused on adaptively subdividing geometry using proximity to another geometry. So it makes sense to have the subdivision operation handled with all its intricacies by the improved Subdivide SOP.
I also added Catmull-Clark Interpolate Position option to Subdivide SOP, which works the same as it does in Adaptive Subdivide SOP. It's only visible when the algorithm is based on Catmull-Clark subdivision. Leaving this option on keeps the Catmull-Clark subdivision as is. If you turn it off, then all attributes will still be interpolated using the Catmull-Clark interpolation, except P, which will use bilinear interpolation.
https://www.dropbox.com/s/f3s2cfx0ew2qu5f/Subdivide_SOP_Animatrix.otl?dl=1
https://www.dropbox.com/s/kcsd67b0ftgqvbf/AdaptiveSubdivide_SOP_Animatrix.otl?dl=1