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