Is it correct that the result will be a 120x120 array of correlations, where each entry is the correlation of the 50 isotope values (which never change), and the 50 precip values at that location.
And is it also correct that we do not actually need the lat, lon, and time values to calculate that?
If so, then I believe this does what you want. I tried to fully comment the code, so you could more easily understand what is going on.
lat = linspace(1,60,120);
lon = linspace(120,180,120);
precip = randi(3000,120,120,50);
r_mat = corrcoef(isotope,precip(xi,yi,:));