weights (n) [real] :: If present, this holds the square-roots of the diagonal entries of the weighting matrix, {\bm W}. If absent, then the norm in the least squares problem is taken to be the 2-norm, that is, {\bm W} = I.
These weights are not checked for non-negative values, the documentation should reflect this along with informing that the weights array is not preprocessed, e.g. not normalized, etc.
If absent then W=I, it is not clear what values should the user pass to have the same effect as W=I, since w=array(n, 1.0) does not produce the same solution point has w=NULL.
The documentation for the "weights" array states: