本来は、サブルーチンはメインの先でも後でも良いはずなのですが、現在のバージョンでは、サブルーチンはメインよりも前に置かないと、ローカル変数の定義が出来ない(二重定義エラーになる)という仕様になっています。