out同士またはinとoutは衝突します。out両方のアクセスがされていますので衝突します。ランデブーの中で行うようにします。do;これで上側と下側のどちらが先に実行されても口座の残高は同じになります。どの変数にアクセスしているかという情報はサブプログラムの外に伝播します。ない単なるサブプログラムですとソースコード上では一箇所からしかアクセスしていないように見えてもやはりエラーになります。等を指定してチェックを行わないようにできます。翻訳単位を跨ぐと見えない変数が出てくるのではないか、抽象型はどうなっているのか、変数以外も競合するのでは等の疑問があるとは思います。