Windows Vista Home PremiumにFTN95をインストールしたPCにて、Fortranのプログラミングをし始め、「Cpad for Salford FTN77」を利用してプログラミングをしています(FORTRAN77・Fortran90ともに)。FTN95でのFortranプログラミングに際し、FortranプログラムからC言語で実装された関数を呼ぶには、どのように対処すれば可能になりますでしょうか?何分初心者ですので、拙い質問かと思いますが、何卒ご教示願います。
No.1ベストアンサー
- 回答日時:
回答いたします。
ユーザーガイドの213ページ(アクロバットだと、231ページ)に出ています。具体的には、Fortranプログラム中に、C_EXTERNALという宣言をした関数は、Cの関数と同じくアクセスできるようになります。
そしてC側では、
#extern <返り値>関数名(引数)を与えれば、Cの関数として呼び込むことが出来ます。
ユーザガイドの仕様にしたがってサンプルを書いてみると。
サンプル2を例に取ります。
Fortran側
C_EXTERNAL WRITE 'WriteFile' : INTEGER*4
INTERGER*4 RESULT
RESULT=WRITE()
以下続く
最後は、RETURN
C側
#extern int Writefile(int);
こんな感じですね。
では。
この回答への補足
上記の例を提示してくださり、ありがとうございました。ところで、コンパイルのほうですが、うまくいきません。Fortran側でRETURNを最後に持ってくると
D:\work\fortran> ftn95c /link /dreal sample.f
D:\work\fortran>ftn95.exe /link /dreal sample.f /link
[FTN95/Win32 Ver. 5.01.0 Copyright (c) Silverfrost Ltd 1993-2006]
0005) return
*** RETURN cannot be inside a PROGRAM block
1 ERROR [<main program> FTN95/Win32 v5.01.0]
*** Compilation failed
となってしまうのです。「Cpad for Salford FTN77」を使ってコンパイルしています。
使っているファイルをいくつか書き出します。
<D:\work\fortran\sample.f>
C_EXTERNAL WRITE 'WriteFile' : INTEGER*4
INTEGER*4 RESULT
RESULT=WRITE()
write(*,*) result
return
end
<D:\work\fortran\sample.c>
#extern int Writefile(int);
<C:\Program Files\Silverfrost\FTN95\ftn95c.bat>
ftn95.exe %1 %2 %3 %4 %5 %6 %7 %8 %9 /link
ちなみに、「Cpad for Salford FTN77」での実行/設定/実行/コンパイル時のパラメータは「/link /dreal」です。もちろんftn95.exeへのパスは通してあります。
何が問題でしょうか?再度ご教示願います。
上記の例を提示してくださり、ありがとうございました。ところで、コンパイルのほうですが、うまくいきません。
何が問題でしょうか?再度ご教示願います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) FORTRAN77の配列(除算) 2 2023/02/01 14:34
- IT・エンジニアリング FORTRAN、COBOL、C、Java、C++とか誰が作ったのですか?言語習い使いまた出て、キリが 4 2023/05/06 23:11
- その他(自然科学) 科学技術計算の仕事について 2 2023/02/04 18:09
- 計算機科学 fortranという言語は今でも科学技術計算でPythonと同じくらい使われてると聞いたのですが、そ 10 2022/08/25 00:43
- C言語・C++・C# exeファイルが作れない(windows10) 6 2022/08/13 08:47
- C言語・C++・C# 画像の画素値を変えるC言語のプログラムで指定された画像の中に白い三角形を右上に表示させるにはどのよう 3 2022/10/30 01:16
- その他(パソコン・スマホ・電化製品) FORTRANの紙テープに穴開けるタイプの電算機使ったことありますか?マークシートに記入して、読み込 3 2023/05/29 19:54
- その他(プログラミング・Web制作) プログラミングについて(Python) 添付した画像はC言語で簡単に作ったソースで、1つの配列に5つ 3 2022/09/10 19:15
- その他(プログラミング・Web制作) Pythonを用いたフラッシュ暗算ソフトの開発に必要なもの 2 2023/01/29 02:22
- C言語・C++・C# 参考にいろいろとc言語、c++言語プログラミングでレジストリーを操作したいのですが、無料配布のc++ 3 2022/12/22 01:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
小学1年生の子です。塾に行かせ...
-
IT業界より楽に稼げる業界って...
-
家庭のパソコンで Python の 環...
-
私はプログラミングは一切分か...
-
LeetCodeていうの初めて、
-
プログラミングの雑談とかでき...
-
プログラミングを教えたいです...
-
GitHubについて
-
以下のサイトのようなフォーム...
-
義務教育レベルのプログラミン...
-
最近小学生、中学生にもプログ...
-
Visual Studio Codeについて
-
VBA フォルダ アクセス権限付与
-
自閉症の才能にもレベルがある?
-
情報学部に通う大学生です。 パ...
-
質問失礼します。 就職サポート...
-
cygwinでのGUIプログラミングの...
-
マイナーなMACでプログラミング...
-
誤差拡散法のプログラミング
-
VCの描画について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
小学1年生の子です。塾に行かせ...
-
Visual Studio Codeについて
-
プログラミングを教えたいです...
-
LeetCodeていうの初めて、
-
義務教育レベルのプログラミン...
-
procってなんですか?
-
私はプログラミングは一切分か...
-
IT業界より楽に稼げる業界って...
-
プログラミングの雑談とかでき...
-
最近小学生、中学生にもプログ...
-
アセンブリ名とは??
-
CSVデータの"(ダブルクォーテ...
-
以下のサイトのようなフォーム...
-
家庭のパソコンで Python の 環...
-
オススメのプログラミングスク...
-
VBA フォルダ アクセス権限付与
-
プログラミングをやってます。 ...
-
エクセルVBAでRS232Cへ
-
MFCとC++/CLIとの比較
-
VBAプログラミング
おすすめ情報