以前ここで、fortranのプログラム方法について質問しg77、meadowをあわせて使えと言われたのでダウンロードしたのですが、使い方がよく分かりません。g77単独ならMS-DOSプロンプトからの使い方が分かったのですが、もとから含まれていたSAMPLEのみで他のプログラムではエラーがでてしまいます。いろいろ調べてMEADOWにはFORTRANモードというのがあるらしいのですが、モードの変更の仕方がわかりません。エラーの解除方法とあわせて詳しく教えていただけないでしょうか?よろしくお願いします。

A 回答 (2件)

すいません。

キー操作が1つ抜けてました。(^^;
ESCキーの後に、x(エックス)を入力してから、fortran-modeと入力して、エンターキーです。
入力する場所は、下の「ESC-」と表示された場所でOKです。
    • good
    • 0

MeadowはもともとEmacsというUNIX上で良く使われているエディタなので、使い方に関してはEmacsで検索するといろいろ見つかると思います。


またEmacsに関してはかなり多くの書籍も出版されていますので、それらも参考にするとよいと思います。

モードの変更に関してですが、Meadowを起動した上で以下のように入力してください。

ESCキーを押す。
下のmini-bufferに入力が移動するので、fortran-modeと入力してEnterキーを押す。

これで、下のほうにFortan-modeと表示されればOKです。

この回答への補足

 ありがとうございます。さっそくやってみたんですが、ESCキーを押しても下の方の小さい窓に「ESC-」と表示されるだけでなんにもなりません。何か間違っているのでしょうか?

補足日時:2001/12/09 23:15
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QFORTRAN77(g77)で(D)CBRTがエラーになってしまいます

FORTRAN77(g77)をVine Linux 4.2で使用しています。

立方根の計算をしたいのですが、コンパイル時に"(D)CBRT"がエラーになってしまいます。
原因・代替策など御助言いただければ幸いです。
なお、(D)SQRTは問題なくコンパイル・実行できました。

以下、テスト用ソースとそのコンパイル時のエラーメッセージです。
[ソース]
program a
implicit none
real*8 n
write(*,*)"n= ?"
read(*,*)n
write(*,*)DCBRT(n)
stop
end
[エラーメッセージ]
a.f: In program `a':
a.f:6:
write(*,*)DCBRT(n)
^
Invalid declaration of or reference to symbol `dcbrt' at (^) [initially seen at (^)]

※こちらの画面ではスペースがうまく入りませんので悪しからず。

FORTRAN77(g77)をVine Linux 4.2で使用しています。

立方根の計算をしたいのですが、コンパイル時に"(D)CBRT"がエラーになってしまいます。
原因・代替策など御助言いただければ幸いです。
なお、(D)SQRTは問題なくコンパイル・実行できました。

以下、テスト用ソースとそのコンパイル時のエラーメッセージです。
[ソース]
program a
implicit none
real*8 n
write(*,*)"n= ?"
read(*,*)n
write(*,*)DCBRT(n)
stop
end
[エラーメッセージ]
a....続きを読む

Aベストアンサー

自信無し。普段、fortranの人間じゃないので見るところ自体が間違っているかも。g95でうまくいかず。

cbrt関数は
fortran 77では
http://web.mit.edu/sunsoft_v5.1/www/fortran/f77rm/6_intrinsics.doc.html

>Intrinsic functions that are Sun extensions of the ANSI FORTRAN 77 standard are marked with ♦.

ANSI Fortran 77をSunが拡張したものだよ、と言われています。

fortran 90
http://www.nsc.liu.se/~boein/f77to90/a5.html#section3
にも
fortran 95
http://docs.sun.com/source/819-3684/2_F95_Intrins.html
にも載っていませんので、
GNU Fortran 77にはひょっとしたらないのかもしれません。

最初のページに載っていた
a**(1/3)ではうまくいかず、(割り算の戻り値が整数なのかな?)
a**(1.0/3.0)で
5.000000239824943
を出すことが出来ています。誤差はありますが。一応アドバイスまで

自信無し。普段、fortranの人間じゃないので見るところ自体が間違っているかも。g95でうまくいかず。

cbrt関数は
fortran 77では
http://web.mit.edu/sunsoft_v5.1/www/fortran/f77rm/6_intrinsics.doc.html

>Intrinsic functions that are Sun extensions of the ANSI FORTRAN 77 standard are marked with ♦.

ANSI Fortran 77をSunが拡張したものだよ、と言われています。

fortran 90
http://www.nsc.liu.se/~boein/f77to90/a5.html#section3
にも
fortran 95
http://docs.sun.com/source/819...続きを読む

Qg77(fortran77)でのエラー

http://www.eq.db.shibaura-it.ac.jp/fortran/ex.html#install

 このサイトの通りに従い、g77コンパイラをインストールして、fortran77のソースをコンパイルしようとしたのですが、

“g77: installation problem, cannot exec 'f771': No such file or directory”

というメッセージが出てうまくできません。なぜなのか、どうすればうまくいくのか、ご教授をお願い致します。
 Windows Vista sp2です。

Aベストアンサー

説明が悪いですね。

(1)以下の3つのファイルをダウンロースする.(フリーのソフトウエア,オリジナルはここにあります.)
g77lib.zip(209KB)(必須)
g77bin.zip(1,576KB)(必須)
g77doc.zip(303KB)
(2)cドライブにg77というフォルダを作る.
(3)今作成したフォルダg77の下にlib,bin,docの3つのフォルダを作る.
(4)g77lib.zipを解凍し,フォルダlibの下に入れる.
(5)g77bin.zipを解凍し,フォルダbinの下に入れる.
(6)g77doc.zipを解凍し,フォルダdocの下に入れる.

ではなく、c:\にg77lib.zipとg77bin.zipを置き、そのまま解凍してください。
そうすると、c:\G77\binとc:\G77:libが出来上がります。

あとは、PATHの設定ですがc:\G77\binを加えましたか?

QFortran90/Fortran95→Fortran77

大学の授業でFortranを使ったプログラミングを勉強しています。

以下の文が大学のPCに入っているコンパイラでは問題なくコンパイルでき実行できるのですが、家のPCだとコンパイルすることが出来ません(以下の文でエラーが出ます)
大学のPCの開発環境はFujitsu-FORTRANだと思います(^ ^;
家のPCはSalford FTN77 Personal Edition CompilerとCPad for Salford FTN77を組み合わせて使用しています

なぜエラーがでるのか自分なりに考えた結果、Fortran90/Fortran95のプログラムをFortran77のコンパイラでコンパイルしているからだと思います(全くの勘違いだったら指摘して下さい)

Fortran90/Fortran95の開発環境がフリーで整えばいいのですが、見つからないのでプログラムを修正したいと思います そこで、力を貸していただきたいのです

前置きが長くなりましたが、エラーが出る文は以下のところです
open(8,file='freq_ex13.dat',action='write',status='replace')
ここを、Fortran77のコンパイラでコンパイルできるようにアドバイスを下さい よろしくお願いします

大学の授業でFortranを使ったプログラミングを勉強しています。

以下の文が大学のPCに入っているコンパイラでは問題なくコンパイルでき実行できるのですが、家のPCだとコンパイルすることが出来ません(以下の文でエラーが出ます)
大学のPCの開発環境はFujitsu-FORTRANだと思います(^ ^;
家のPCはSalford FTN77 Personal Edition CompilerとCPad for Salford FTN77を組み合わせて使用しています

なぜエラーがでるのか自分なりに考えた結果、Fortran90/Fortran95のプログラムをFortran77のコンパイラでコン...続きを読む

Aベストアンサー

action='write'を削除してみては?
8番にREADを使わなければいいだけの話です。
http://docs.hp.com/ja/B3908-90007/ch10s65.html#id21163286

Fortranはコンパイラ毎に独自の拡張が相当されてますから、移植する際にはどの拡張が使えるのか把握する必要があります。
使えない場合はコンパイルエラーが返ってくるのですぐにわかりますけど。
http://www.cc.nao.ac.jp/vppman/HTML/japan/langFort/fvp11/fvp00079.htm

参考URL:http://docs.hp.com/ja/B3908-90007/ch10s65.html#id21163286

QFORTRANプログラム

学校の課題で1000まで『ゴールドバッハの予想』を表示させないと行けないのですが全くわかりません…
フローチャートだけでもわかる方おられませんか?
ぜひ教えてください!!
補足:前回も同じ内容で質問しましたが、どのプログラムでするか書くの忘れていました。FORTRANプログラムです。よろしくお願いします!!

Aベストアンサー

「全くわからない」わけじゃないってことは, 「わかるところもある」ということだよね.
どこまで理解できていて, どこからが理解できてないんですか?

QFortran90のプログラムについて

大学で卒論のためにFortran90でランダムウォークのプログラムを作ってるんですが…2週間悩んでるんですが、できないところがあります。
「1次元のランダムウォークにおいて、ステップ数Nとxの値を与えたときのすべての可能な歩行を数え上げるプログラムを書け」というものです。
直接ステップ数を書き込んだプログラムを基にして任意のステップ数を入力するプログラムを作ってみたんですが、うまくいきません。
integer :: a(100,20), x, i1, i2, i3
x = 0
do i1 = -1, 1, 2;do i2 = -1, 1, 2;do i3 = -1, 1, 2
x = x + 1
a(x, 1) = i1;a(x, 2) = i2;a(x, 3) = i3
end do;end do;end do
end
が基にしたプログラムです。これはステップ数が'3'なので実行結果は「-1-1-1,-1-11,-11-1,-11-1,-111,1-1-1,11-1,111」というxの変位の仕方が出ます。
integer, allocatable :: a(:,:)
integer :: i, n, x, l
print *, 'ステップ数を入力:'; read *, n
allocate(a(n, 2**n))
do l = 1, n
do i = -1, 1, 2
x = x + 1
a(x, l) = i
end do
end do
end
という風に作ってみたんですが、'3'を入力しても同じ結果が出ません。わかりにくい文章で申し訳ないですがどなたかご教授お願いします。

大学で卒論のためにFortran90でランダムウォークのプログラムを作ってるんですが…2週間悩んでるんですが、できないところがあります。
「1次元のランダムウォークにおいて、ステップ数Nとxの値を与えたときのすべての可能な歩行を数え上げるプログラムを書け」というものです。
直接ステップ数を書き込んだプログラムを基にして任意のステップ数を入力するプログラムを作ってみたんですが、うまくいきません。
integer :: a(100,20), x, i1, i2, i3
x = 0
do i1 = -1, 1, 2;do i2 = -1, 1, 2;do i3 = -1, 1,...続きを読む

Aベストアンサー

元のプログラムを再現するなら
allocate(a(2**n, n))
じゃないかなぁと思うのでこれでいくんだけど, 例えば a(:, 1) は
「最初の 2**(n-1) 個が 1, 次の 2**(n-1) 個が -1」
ですね. で, a(:, 2) は
「2**(n-2) 個ずつ 1 と -1 を繰り返す」
ですね. ということで, a(:, l) は
「2**(n-l) 個ずつ 1 と -1 を繰り返す」
ことになります. つまり,
do l = 1, n
do i = 1, 2**n, 2**(n-l+1)
a(i:i+2**(n-l)-1) = 1
a(i+2**(n-l):i+2**(n-l+1)-1) = -1
end do
end do
で終わり... じゃないかな.


人気Q&Aランキング

おすすめ情報