The pcorr routine uses the following formula to compute partial correlations:

t/sqrt(t^2 + N - K -1) where N = Sample size and K = # of X variables

This is not the most intuitive formula in the world, but it works! I would
like to modify the program to compute semipartial correlations.

To follow up on my own message: ssc now has a routine I have written called
-pcorr2- (type -findit pcorr2- to get it). It works exactly like Stata's
-pcorr- command, except it reports both the partial and semipartial
correlations (-pcorr-- only reports the partials). -pcorr- uses a wildly
non-intuitive but correct formula to get the partials so the only real
trick was figuring out the corresponding wildly non-intuitive but correct
formula for the semipartials. Thanks to Nick Cox for telling me how to
make this publicly available and to Kit Baum for adding it to ssc.