• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:gfortranでlog2(x)を自作関数)

gfortranでlog2(x)を自作関数として作成する方法

このQ&Aのポイント
  • gfortranでlog2(x)を自作関数として作成しようとすると、Return type mismatchのエラーが発生します。
  • 環境はLubuntu14.04LTS、gcc version 4.8.2です。
  • 解決策として、log2(x)の返り値の型を修正する必要があります。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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で一致してないぞ」というエラーになる。

passo2006
質問者

お礼

ご教示ありがとうございます。 メインルーチンでreal x, log2のようにlog2をrealで宣言することで解決しました。

関連するQ&A