I do not understand how the adjusted R^2 are calculated in these two commands.

Here I follow what has been done in the xtreg documentation

Code:
webuse nlswork, clear
xtset idcode

xtreg ln_w grade age c.age#c.age ttl_exp c.ttl_exp#c.ttl_exp tenure c.tenure#c.tenure 2.race not_smsa south, fe
Running
Code:
 ereturn list
and looking at e(r2_a) = .00626099 I found the R^2 adjusted.

However, if I run the following regression
Code:
areg ln_w grade age c.age#c.age ttl_exp c.ttl_exp#c.ttl_exp tenure c.tenure#c.tenure 2.race not_smsa south, absorb(idcode)
everything is the same except for the adjusted R^2 that is very different: Adj R-squared = 0.6299

I do not understand why. Thanks for your answers