私は常に、fortran が実体を「参照によって」仮引数に渡すと想定していました。それから私はこの答えを得ました(答えの実際の議論は関連していましたが、これについてではありません)
標準はそれを決して指定しておらず、実際、そのような指定を避けるためにかなりの努力をしています。あなたの考えはよくある誤解ですが、特に最適化がオンになっているほとんどの古いコンパイラでさえ、厳密には正確ではありませんでした。厳密な参照渡しは、多くの一般的な最適化を無効にします。
最近の標準では、参照渡しはほとんど許可されていない場合があります。標準では、その規範的なテキストでこれらの単語を使用していませんが、参照渡しで実装するのは実際的ではないものがあります。
ポインターのようなものに取り掛かり始めると、すべてが参照渡しであると想定する誤りが以前よりも明らかになり始めます。あなたはその誤解を捨てなければならないでしょう、さもなければ多くのことがあなたを混乱させるでしょう.
他の人が投稿の残りの部分に適切に答えていると思います。上記の点についても言及している人もいましたが、私はそれを強調したいと思いました。
帰属についてはこちらをご覧ください。
この回答によると、標準には、呼び出し元から呼び出し先にデータを送信する方法を指定するものは何もありません。実際には、特にインテント()仕様に関しては、(コンパイラが標準を実装する方法に起因する実際の影響に関係なく)実際に作業するという観点から、これをどのように解釈する必要がありますか?
編集:質問を明確にしたいと思います。私が理解しようとしているのは、通話を実行しているときに標準がどのように機能することを期待しているかということです。エンティティを渡すために使用される実際のコンパイラ戦略が標準によって定義されていないことを考えると、(標準によれば) 原則として、引数を関数に渡すことが実際に「参照渡し」として動作するとは期待できません。これは、この動作がコンパイラと最適化に依存するためです。したがって、標準は、実際の実装戦略に関係なく、動作するために従わなければならないプログラミング スタイルを課していると思います。