おいも貴婦人ブログ

生物系博士課程満期退学をしたAIエンジニアのブログ。

fortran90(f90)のコードをCに書き換える..............。(f90toC)

http://www.ncsa.illinois.edu/People/mdewing/f90toC/から、f90toC.tar.gzをダウンロードする。

$tar xvfz f90toC.tar.gz
$cd f90toC
$make

すると、以下のようなエラーが出る。

cc  -ggdb -c f90main.c
f90main.c: In function ‘genmain’:
f90main.c:22:17: warning: incompatible implicit declaration of built-in function ‘malloc’ [enabled by default]
f90main.c:31:6: warning: incompatible implicit declaration of built-in function ‘free’ [enabled by default]
f90main.c: In function ‘genfile’:
f90main.c:38:17: warning: incompatible implicit declaration of built-in function ‘malloc’ [enabled by default]
f90main.c:44:6: warning: incompatible implicit declaration of built-in function ‘free’ [enabled by default]
f90main.c: In function ‘gensub’:
f90main.c:53:17: warning: incompatible implicit declaration of built-in function ‘malloc’ [enabled by default]
f90main.c: In function ‘genbody’:
f90main.c:115:31: warning: incompatible implicit declaration of built-in function ‘malloc’ [enabled by default]
f90main.c:123:23: warning: incompatible implicit declaration of built-in function ‘strcpy’ [enabled by default]
f90main.c:337:17: warning: incompatible implicit declaration of built-in function ‘strcpy’ [enabled by default]
f90main.c:382:28: warning: incompatible implicit declaration of built-in function ‘malloc’ [enabled by default]
f90main.c:382:35: warning: incompatible implicit declaration of built-in function ‘strlen’ [enabled by default]
f90main.c:383:14: warning: incompatible implicit declaration of built-in function ‘strcpy’ [enabled by default]
cc  -ggdb -c f90decl.c
cc  -ggdb -c f90arg.c
f90arg.c: In function ‘genarglist2’:
f90arg.c:135:30: warning: incompatible implicit declaration of built-in function ‘malloc’ [enabled by default]
f90arg.c:153:15: warning: incompatible implicit declaration of built-in function ‘free’ [enabled by default]
bison -d f90.y
make: bison: Command not found
make: *** [f90.tab.c] Error 127

素直に、bisonをインストールする。後になって分かったが、flexというのも必要らしいので一緒にインストール。

sudo apt-get install biosn flex

結果、以下のコードの書き換えでもエラーがでる…。

program tmp
  implicit none
  write(*,*) "Hello,World!"
endprogram tmp