There appears to be an inadvertent duplication of the k index in the assignment of evapprod_p on line 652:
rainprod_p(i,k,j) = rainprod(k,i)
line 652: evapprod_p(i,k,j) = evapprod(k,k)
recloud_p(i,k,j) = re_cloud(k,i)
reice_p(i,k,j) = re_ice(k,i)
resnow_p(i,k,j) = re_snow(k,i)