A subVI is not supposed to return values until it's done. That's the way it works in other languages as well. There are ways to update the main while a subVI is executing but I think the biggest problem is that your subVI is just slow and ineffecient. From your post in another forum, I've modified your VI to do it a little differently and get the results that you said you want.