It returns an empty bspline_4d 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_4d_constructor_empty() result(me) implicit none type(bspline_4d) :: me end function bspline_4d_constructor_empty