XXX がintent(out) でコンパイルが通ったということは、
YYY の値が変更されない限り
XXX は何度目の n でも同じ値になりそう・・。
なんか根本的にコードの構造を間違ってない?

自分なら
YYY の値が狂った、
引数に出てこない module common 渡しの変数が狂った
可能性を取り敢えず、疑って見るが。