「暗黙の型宣言」てやつで、RAND自体は単精度実数になってる。
関数が持ってるMという変数の値はSAVE宣言されてるから、関数から抜けても値が保存される。
呼び出されるごとに関数が返す値は違う。IF文は乱数発生アルゴリズムを理解すれば意味がわかる。