It returns an empty bspline_3d type. Note that INITIALIZE still needs to be called before it can be used. Not really that useful except perhaps in some OpenMP applications.
elemental function bspline_3d_constructor_empty() result(me) implicit none type(bspline_3d) :: me end function bspline_3d_constructor_empty