- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:gfortranでlog2(x)を自作関数)
gfortranでlog2(x)を自作関数として作成する方法
このQ&Aのポイント
- gfortranでlog2(x)を自作関数として作成しようとすると、Return type mismatchのエラーが発生します。
- 環境はLubuntu14.04LTS、gcc version 4.8.2です。
- 解決策として、log2(x)の返り値の型を修正する必要があります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
log2の関数本体が定義される前に、mainで write(*,*) x, log2(x) って呼ぶと「宣言が何も無いから、こいつはINTEGERを返すんだな」と思ってコンパイルして行きます。 んで、実際にlog2が定義されている所で real function log2(x) って書いてるから Error: Return type mismatch of function 'log2' at (1) (INTEGER(4)/REAL(4)) って感じで「log2の返り値がINTEGERとREALで一致してないぞ」というエラーになる。
お礼
ご教示ありがとうございます。 メインルーチンでreal x, log2のようにlog2をrealで宣言することで解決しました。