Your problem is more basic, for example your inner greedy loop (in calculator) possibly causes a race condition such that the code above it potentially operates on the values the controls had when the iteration started, and not when the calculate button was pressed. (could happen with a slight difference in wiring). The 1000ms wait is pointless, because the outer loop stalls after each iteration, burning all CPU in the innermost loop doing nothing but poll the buttons as fast as the computer allows. Have a look at a simple state machine architecture.
I would recommend some basic tutorials before tackling the subVI problem. For that you need to know how to edit the connector pane. Are you familiar with that?