3

この単純な Fortran コードと、メイン プログラムで引数を明示的に指定する関数があります。コードは以下のとおりです。

   implicit none

   real*8 rrr,x
   external tttt

   x = rrr(10)

   end

   function rrr(seed)
   integer seed, k
   real*8 rrr
   k = 7
   seed = 16807 * ( seed - k * 127773 ) - (k * 2836)
   print*,seed
   rrr = seed / 2.
   end

コンパイルはできますが、実行すると次のエラーが発生します。

Program received signal SIGBUS: Access to an undefined portion of a memory object.

Backtrace for this error:
#0  0x10f43bfe6
#1  0x10f43b7ac
#2  0x7fff89740529
#3  0x10f433d78
#4  0x10f433e2c
#5  0x10f433e6e
Bus error: 10

エラーの原因と思われるアイデアはありますか? コードのコンパイルには gfortran を使用します。

4

1 に答える 1