Larry Chavis couldn't get _robust to work after nl. The trick is
'leave':
webuse klein,clear
nl log4 consump totinc, leave
tempvar e
mat b = e(b)
mat D= e(V)
predict double `e' if e(sample),r
_robust `e' if e(sample), v(D)
ereturn post b D, depn(`e(depvar)')
ereturn display
without the 'leave' option, _robust can't find the "variable" named b0.