Cosima
This information is available from Carpet. Carpet maintains a "grid hierarchy" gh, and if you use AMR, there will be a single gh that you can look up in Carpet, probably as "Carpet::
vhh.at(0)" (this is C++ code). This grid hierarchy contains the information you want -- you can look up which regions exist, to which process they are assigned, and you can also look up on which region (and thus on which process) a particular point is located.
Having said this -- are you sure that this will save a noticeable amount of time compared to letting Carpet handle the interpolation? Did you benchmark your current implementation? If you leave out the interpolation in your current implementation, how much time do you save?
I'd be happy to discuss further. A good venue would e.g. be one of the Einstein Toolkit telecons that we have on Mondays. (I might not attend next Monday because I'll be at SC16.)
-erik