1 名前:デフォルトの名無しさん [2006/11/22(水) 00:00:36 ] このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 FORTRAN使いが優しくコメントを返しますが、 お礼はFORTRANの布教と初心者の救済と次期Fortran2008規格でのCOMEFROM文採用をお願いします。 ●注意事項 ・質問する前にGoogle等の検索サイトで検索しましょう。 ・回答者にわかりやすい様に、質問内容はできる限り詳しく書きましょう。 ・エラーの場合は起きた状況、環境(OS・コンパイラ)、エラーメッセージも詳しく書きましょう。 ●前スレ くだすれFORTRAN(超初心者用) pc8.2ch.net/test/read.cgi/tech/1138063703/ ●関連スレ FORTRAN W pc8.2ch.net/test/read.cgi/tech/1163319215/
792 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 21:39:58 ] このスレは内部ファイルの質問の無限ループだなw
793 名前:デフォルトの名無しさん mailto:sage [2007/09/06(木) 08:01:37 ] 超初心者用だからな。 それだけ初心者にとって理解しにくい部分ってことだろ。
794 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 00:22:38 ] 次からテンプレに内部ファイルの使い方を書いといてくれ。
795 名前:デフォルトの名無しさん [2007/09/09(日) 19:45:39 ] visual fortranだと動くのに、FTN95だとめちゃくちゃエラーがでて コンパイルできません。金が無いんでフリーのFTNで動かしたいのですが 主な原因わかるかたいるでしょうか?
796 名前:デフォルトの名無しさん [2007/09/09(日) 21:04:57 ] >>789 Fortran まだあるのかよ Format変換かけて内部にWriteすればよいと思う SFTNとかUFTNとかあるのだろうか... $Branchi $do とか...
797 名前:エスパー mailto:sage [2007/09/09(日) 21:51:03 ] >>795 Visual Fortran独自の機能を使っているからだよ。
798 名前:デフォルトの名無しさん [2007/09/10(月) 13:12:28 ] FORTRAN使いが許容できるのはFORTRAN77迄だべ。 もはやFORTRANは死んでいる。C言語のプリプロセッサに成り下がった。
799 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 13:46:42 ] >>798 終わってるのはCのほうだろw
800 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 18:49:41 ] すいません。 整数を格納する1次元配列と整数のデータがあります. 整数データを重複を許さないで(重複データを飛ばして)配列に格納するにはどうすればよろしいでしょうか?
801 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 19:49:54 ] >>800 sort uniq
802 名前:デフォルトの名無しさん [2007/09/11(火) 05:00:09 ] 超初心者です。 format文の練習のために 学籍番号122番のアキラ君は 英語50点,国語80点、数学30点。この3科目の合計点は160点です。」 という文字を表示するプログラムを character*20 a integer b real c,d,e,f read(*,10)a,b,c,d,e,f 10 format(a6,i3,3i2,i3) f=c+d+e write(*,20)b,a,c,d,e,f 20+format('学籍番号',i3,'番の',a6,'君は',4x,'英語',i2,'点、国語',i2,'点、数学',i2,'点。この3科目の合計点は',i3,'点です。') stop end というように作ったんですけど 0007) write(*,20)b,a,c,d,e,f 0008) 20+format('学籍番号',i3,'番の',a6,'君は',4x,'英語',i2,'点、国語',i2,'点、数学',i2,'点。この3科目の合計点は',i3,'点です。') *** Non-blank label field in continuation line 0008) 20+format('学籍番号',i3,'番の',a6,'君は',4x,'英語',i2,'点、国語',i2,'点、数学',i2,'点。この3科目の合計点は',i3,'点です。') WARNING - Characters found after column 72 (use -NO_WARN73 to suppress) *** Unterminated or empty character constant 2 ERRORS,1 WARNINGS [<MAIN@>FTN77 Ver 4.03] *** Compilation failed とでてコンパイルできません。どこがいけないのでしょうか?
803 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 10:05:09 ] >>802 20+format プラス記号が紛れ込んで、継続行扱いになっている。それで矛盾。 あと72カラムはみ出している。 一応エラーメッセージを読めば書いてある。 初心者はエラーメッセージを読んでも分からないといって読まないのが普通だが、教養人なら読めw
804 名前:デフォルトの名無しさん [2007/09/12(水) 02:28:32 ] >>803 返信ありがとうございます。 すいません。お聞きしたいのですが72欄をこえて書くにはどうしたらよいのでしょうか? ネットで調べたら 6欄は72欄を超えてしまった場合、ここに何か文字を書けば(たいていは「+」を書く)、72欄を越す文であっても続けて書き続けることができるようになります。 と書いてあったのですけど自分の書き方ではいけないのでしょうか? 初心者名質問ですいません。ぜひ教えてください。
805 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 11:37:24 ] >>804 72カラムを超えては書けないので、次の行に継続することになる。 20 format('学籍番号',i3,'番の',a6,'君は',4x,'英語',i2,'点、国語', + i2,'点、数学',i2,'点。この3科目の合計点は',i3,'点です。') こんなかんじか。よく確かめていないが。
806 名前:デフォルトの名無しさん [2007/09/12(水) 14:59:44 ] >>804 ありがとうございます。コンパイルできました。 しかしまたあらたな問題が。 ネットでは>>802 のプログラムをコンパイルして実行したら 「学籍番号122番のアキラ君は 英語50点,国語80点、数学30点。この3科目の合計点は160点です。」という文が表示されます。 とかいてあったのですが実際に実行したらコマンドプロンプトの画面に C:\fortaran>format とでてきて何かを入力するみたいなんですがどのように入力すればいいのでしょうか? アキラ,122,50,80,30,160 と入力すればいいのでしょうか?でもコマンドプロンプト上では日本語入力できなくてこまってるんですけど。 すいません。また初歩的と思われる質問になってしまって。 お手数ですがよろしくお願いします。
807 名前:デフォルトの名無しさん [2007/09/12(水) 15:01:26 ] >>804 ありがとうございます。コンパイルできました。 しかしまたあらたな問題が。 ネットでは>>802 のプログラムをコンパイルして実行したら 「学籍番号122番のアキラ君は 英語50点,国語80点、数学30点。この3科目の合計点は160点です。」という文が表示されます。 とかいてあったのですが実際に実行したらコマンドプロンプトの画面に C:\fortaran>format とでてきて何かを入力するみたいなんですがどのように入力すればいいのでしょうか? アキラ,122,50,80,30,160 と入力すればいいのでしょうか?でもコマンドプロンプト上では日本語入力できなくてこまってるんですけど。 すいません。また初歩的と思われる質問になってしまって。 お手数ですがよろしくお願いします。
808 名前:デフォルトの名無しさん [2007/09/12(水) 15:02:19 ] すいません連続投稿となってしまいました。
809 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 20:16:55 ] >>806 >何かを入力するみたいなんですが つ READ文 使い方は(ry >どのように入力すればいいのでしょうか? アキラ122508030160 >コマンドプロンプト上では日本語入力できなくて [Alt] + [半角/全角 漢字] あと >>802 のプログラムは「変数の型」と「FORMAT文」について要復習だ。
810 名前:デフォルトの名無しさん [2007/09/14(金) 23:52:05 ] >>809 ありがとうございます。 もっとしっかり勉強します!
811 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 23:10:26 ] www12.plala.or.jp/ksp/formula/mathFormula/html/node8.html これらの式の右辺部を計算しようとした時に 式の通りに考えて wa=(1/2)*(n*(n+1)) wa=(1/6)*(n*(n+1)*(2n+1)) のようにしたらうまく計算出来ずにnに何を入れても0が出てしまいます。 wa=(n*(n+1))/2 wa=(n*(n+1)*(2n+1))/6 みたいにしたら出来たのですが。。。 上と下の違いがよくわかりません。括弧などの付け方は間違ってないと思うのですが・・・ 変数は integer n double precision wa で設定しました。
812 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 23:40:42 ] >>811 質問する時は一部だけ示すのではなく、コンパイル出来るソースを 最初から最後まで示すべき。 括弧の中の演算は先に実行されるから、先に(1/2)が計算される。 整数型同士の除算1/2は0となり、0と何が掛けられても0になる。 (1/2)でなく、(1./2.)と書いたら計算結果が変わるでしょ?
813 名前:811 mailto:sage [2007/09/15(土) 23:58:14 ] 質問の仕方が悪かったようで、申し訳ありませんでした。 今後はそのように質問させて頂きます。 問題は無事解決いたしました。どうも有り難うございました。
814 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 23:00:33 ] 素因数分解をするプログラムを組みました。 出力を99=1*3*3*11 みたいに1行に書きたいのですが 99=1 *3 *3 *11 のように複数行にわたってしまいます。これを改行せずに書きたいのですがどのようにしたらいいのでしょう。 文字列であれば write(*,'(a\)')'hoge' のように出来るのですが文字列と整数がごっちゃになった場合だとどうしてもうまくいかなくて・・・ アドバイスお願いします。 また、もしwrite文以外でもおかしな所があれば教えてください。 ソース(f90)は次の書き込みで書きます。
815 名前:814 mailto:sage [2007/09/16(日) 23:01:56 ] implicit none integer n,i,m,k write(*,'(a\)')'input n:' read(*,*)n write(*,*)n,'=1' k=n i=2 do while (i<=k) m=mod(k,i) if(m==0)then write(*,*)'*',i k=k/i cycle else if(k==i)then exit else i=i+1 cycle endif enddo end
816 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 23:21:51 ] write(*,'(A,I4,\)') '*', i
817 名前:デフォルトの名無しさん mailto:sage [2007/09/17(月) 00:45:50 ] >>814 program unko implicit none integer n,i,m,k write(*,'(a)', ADVANCE='NO')'input n:' read(*,*)n write(*,'(i4, a)', ADVANCE='NO')n,'= 1' k=n i=2 do while (i<=k) m=mod(k,i) if(m==0)then write(*, '(a, i3)', ADVANCE='NO') ' *', i k=k/i cycle else if(k==i)then exit else i=i+1 cycle endif enddo WRITE(*, *) end program unko FORTRAN90の標準内でやろうとすると、ADVANCE='NO'を使うことになると思う。
818 名前:814 mailto:sage [2007/09/17(月) 03:24:10 ] >>816 >>817 レス有り難うございます! 解決しました!なるほどそのように書けばよいのですか。 同じ改行しないようにするのでも 標準仕様とか拡張?仕様などによって変わるのですね。
819 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 00:18:17 ] Visual Studio 2005 + Intel Fortran v10 で、ソース行のトレースバックってどうやって表示させるの? CVFの時代は、簡単に出来たんだけど。 ソース行が分からないと、実行時エラーが出ても対処がめんどい。
820 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 12:46:28 ] >>819 Version 9系ならソース行付きトレースバックでる。10と共存できるのでとりあえずそれで見たら?
821 名前:デフォルトの名無しさん [2007/09/20(木) 14:13:16 ] 横に並んでいるデータをエクセルで1つのセルに表示させたいので、列ごとにファイルを出そうと思っているのですが 上手く読み込んでくれません。 わかるかたいたら教えていただきたいと思います。 program example implicit real*8(a-h,o-z) dimension x1(1000000),x2(1000000),x3(1000000),t(1000000) open(200,file='iwayaguchi1023k.dat') open(100,file='x1.dat') open(110,file='x2.dat') open(120,file='x3.dat') m=16.d0 n=2.0**m read(200,*) read(200,*) read(200,*) read(200,600) (t(i),x1(i),x2(i),x3(i),i=1,n) 600 format(4f10.3) do 10 k=1,n read(300,*) x1(k) read(300,*) x2(k) read(300,*) x3(k) write(100,*) x1(k) write(110,*) x2(k) write(120,*) x3(k) 10 continue pause stop end
822 名前:デフォルトの名無しさん [2007/09/20(木) 14:14:33 ] ちなみにもとのデータは以下のようになっています 2004/10/23 17:56:00 37.2900 138.8000 13.0 6.8 NIG001 38.2584 138.4337 2004/10/23 17:56:21 172960.010 N-S E-W U-D 0.000 -0.023 -0.025 -0.001 0.010 -0.006 0.003 0.009 0.020 0.001 -0.023 0.016 0.030 -0.020 -0.044 0.002 0.040 -0.012 -0.021 -0.001 0.050 -0.005 0.002 0.006 0.060 0.021 -0.004 -0.006 0.070 0.012 -0.004 0.004 0.080 -0.022 -0.020 -0.007 0.090 -0.038 0.018 -0.031 (このようなのがずっと続く) お願い致します。
823 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 20:36:59 ] >>821 program hoge implicit none character*8 dmy real*8 t, x1, x2, x3 integer i open(200, file='iwayaguchi1023k.dat', status='OLD') open(110, file='x1.txt', status='REPLACE') open(120, file='x2.txt', status='REPLACE') open(130, file='x3.txt', status='REPLACE') do 10 i = 1, 3 read(200, *) dmy 10 continue 20 continue read(200, fmt=*, end=99) t, x1, x2, x3 write(110, *) x1 write(120, *) x2 write(130, *) x3 goto 20 99 continue close(200) close(110) close(120) close(130) stop end >横に並んでいるデータをエクセルで1つのセルに表示させたいので、 データファイルを開くときにテキストファイルウィザードで 「元のデータ形式」に「スペースによって右または…」を選択して[次へ] フィールド区切りの矢印をダブルクリックですべて消して[完了]
824 名前:デフォルトの名無しさん [2007/09/21(金) 12:41:54 ] >>823 ありがとうございます。 おかげさまで問題解決いたしました。
825 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 13:03:30 ] 解決した、しなかっただけでなく、「どのようにして」のところを書いてほしい。
826 名前:デフォルトの名無しさん [2007/09/24(月) 15:01:57 ] 多重積分で2次元から3次元に拡張しただけなのにunpaired right bracketsが あることと、truncated lineがあるとエラーが出ました。こうしたエラーの 原因はなんでしょうか?
827 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 16:36:38 ] >>826 超能力者になれるかな。 1行72文字オーバー
828 名前:デフォルトの名無しさん [2007/09/25(火) 13:34:14 ] 825> 言われたとおりやったら解決いたしました
829 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 01:52:57 ] 質問させてください. あるFortranの計算コード群をソースからビルドしライブラリを作成した後, Cのコードから呼び出そうと考えています. ここで (1) Fortranコンパイラでビルド (2) f2cされたコードをCコンパイラでビルド の2つには有意な性能の差が生じるのでしょうか. 定説があれば教えて頂けると幸いです.
830 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 03:29:22 ] 定説はないので計ってみるしかない 自分の僅かな経験では (1)Intel Fortran Compilerと(2) f2c + gccについて 自分の書いたソースで比べたところ(1)の方が速かった
831 名前:デフォルトの名無しさん mailto:sage [2007/09/27(木) 16:42:57 ] すいません。 計算終了時に何かしら音が出るようにしたいのですが、 何かBEEP音のようなものを出す命令はないのでしょうか。
832 名前:829 mailto:sage [2007/09/28(金) 02:06:46 ] >>830 経験談ありがとうございます 時間のとれるときにじっくり計測してみたいと思います
833 名前:デフォルトの名無しさん [2007/09/30(日) 01:30:11 ] メモ帳でプログラムを組んでるんですが、インデントの感じが気に入りません。 Emacsみたいなフリーで手に入ってWindows XPで動くようなエディタはありませんか?
834 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 01:45:58 ] >>833 気に入らないも何もメモ帳はインデントしてくれないだろ? Emacsみたいなのが欲しいのなら、windowsで動くemacsクローンはMeadowとかいろいろある。
835 名前:833 [2007/09/30(日) 09:48:23 ] notepadのインデントはtabをおしたら何行も進むという意味です。 meadowとxyzzyならどっちがいいでしょうか?
836 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 14:49:56 ] >>835 手動インデントのことだったのか。てっきり自動インデントのことかと思った。 でも、タブで何行も進む?本当にそれはメモ帳? 835の「いい」の基準が分からないから実際にmeadowとxyzzyの両方を使ってみて気に入った方にすればいい。 慣れとかの点でemacs系を選択しようとしているんだと思うが、 emacsに拘らないのならメモ帳でソース書くよりは全然マシなフリーなエディタはwindowsにいくらでもあるぞ。 FORTRANに特化したものは無くてもFORTRANモード的なものを持ったものは何もemacsだけではない。
837 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 18:37:01 ] メモ帳はTABキーを押しても「タブ文字」が挿入されるだけ。
838 名前:833 [2007/09/30(日) 21:19:56 ] とりあえず、サクラエディタを入れてみました。 質問に答えていただいてありがとうございました。
839 名前:デフォルトの名無しさん [2007/10/02(火) 13:29:19 ] www.coastal-env.k.u-tokyo.ac.jp/koibuchi/fortran95/fortran77.htm Fortranを始めようと思ってこのページにある方法でやろうとしているのですが うまくいきません。 WRITE(*,*) 'TEST' END と入力してコンパイルしようとしても 「コンパイルに失敗しました ファイルC:\.....\fotran.exeは存在しません」 と言われて実行することが出来ません。 これはどうすれば良いのでしょうか? いますぐFortranを練習する必要があり、困っています。 どなたかお願い致します。
840 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 14:00:49 ] >>839 fortran.exeがどこにあるか検索してみては? そんなに急ぐなら、周りの友達に飯でも奢って助けてもらったら?
841 名前:デフォルトの名無しさん [2007/10/02(火) 14:12:49 ] >>840 fortran.exeの場所はちゃんと指定しています。 コンパイルして作成されるはずの実行ファイルがないと 言われているのですが。 それと 周りにfortranを扱える人はいません。
842 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 14:37:30 ] コンパイルして作成されるはずの実行ファイルがC:\.....\fotran.exeなの? それはコンパイラ自身じゃないの? FORTRAN処理系が何で、どういうインストールの仕方をして、 どこに何というソースファイルを作って、どういうふうにコンパイルをしたか、 詳しく書かないと原因がよくわからない。 単にWindowsのコマンドプロンプトの使い方が分かってないだけの問題ということはない?
843 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 14:44:14 ] WRITE(*,*) 'TEST'とENDの前に6つのスペース入れていないに1票
844 名前:デフォルトの名無しさん [2007/10/02(火) 15:01:19 ] >>843 ありがとうございます。 スペースを入れるとうまくいきました。 でも ace.phys.h.kyoto-u.ac.jp/~tomita/education/fortran90/examples/ex1_1.f90 このページにあるプログラムをそのままコピペして使おうとしても なぜか同じエラーが出てしまうのですが これはなぜなのでしょうか? スペースはちゃんと入っているはずなのですが
845 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 15:10:19 ] なんでそれで 「コンパイルに失敗しました ファイルC:\.....\fotran.exeは存在しません」 なんてエラーメッセージがでるんだよw
846 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 15:30:46 ] >>844 Fortran77のコンパイラでFortran90のコードをコンパイルするのは無理だと思いますよ。 FTN95でもインストールして見てはいかがですか? >>845 おまい、頭悪いな。>>839 がコードのファイル名をfotran.for'として 保存したからに決まってるだろw
847 名前:デフォルトの名無しさん [2007/10/02(火) 15:47:00 ] Fortran90とFTN95って どちらの方が新しいのでしょうか?
848 名前:844 [2007/10/02(火) 16:01:30 ] そんなに特殊な記述を使わない限り90の記述でも 77で使えると聞いたのですが違うのでしょうか? 一体どこの部分を治せばコンパイル可能になりますか? !----- Ex1_1: 3種類の平均値 ----- PROGRAM Example_1_1 REAL :: a, b, av1, av2, av3 READ *, a, b av1 = (a + b)/2.0 av2 = (a*b)**0.5 av3 = 2.0/(1.0/a + 1.0/b) PRINT*, av1, av2, av3 END
849 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 16:19:57 ] >>848 REALから始まる行を削除すればいい。
850 名前:デフォルトの名無しさん [2007/10/02(火) 16:24:48 ] >>849 やってみました。 でもうまくいかないようなんですが・・・
851 名前:デフォルトの名無しさん [2007/10/02(火) 16:45:54 ] www.silverfrost.com/11/ftn95/ftn95_fortran_95_for_windows.asp を使ってみましたが それでもうまくいきません。 なんなんでしょうか?これは?
852 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 16:51:26 ] >>846 「コンパイルに失敗しました」はコンパイラの吐くエラーだし 作られたはずの実行ファイルが無いというメッセージはコンパイラが吐くとは思えないんだが
853 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 17:52:13 ] >>851 普通にそのコンパイラで>>844 のコードも>>848 のコードも動きました。 付属のPlato3起動して左上のマウスを乗せるとNewを表示される白いアイコンをクリック 出てきたウィンドウでFree format Fortran source fileが選択されてる事を確認してOKを押す >>844 をコピペしたら、左上のマウスを乗せるとStartと表示される青い三角アイコンをクリック 適当なファイル名で保存(拡張子は弄らない) 保存後にウィンドウが出るが気にせずOKをクリック で動かなければ後は白根山 >>852 実行ファイルが無いというメッセージはCpadが吐いてる。
854 名前:デフォルトの名無しさん [2007/10/02(火) 19:24:31 ] >>853 丁寧な解説ありがとうございます。 しかし それと同じことはすでに行っているのですが sakuratan.ddo.jp/imgboard/img-box/img20071002191043.jpg のようなコマンドプロンプト画面が出てくるだけでプログラムが始まりません。 OSはXPsp2なのですが、それと何か関係があるのでしょうか?
855 名前:854 [2007/10/02(火) 19:31:26 ] すいません、解決しました。 数値を入力すれば良かったんですね。 ありがとうございます。 でも >>848-849 のように>>839 のコンパイラでうまくいかないのはなぜなのでしょうか? 実際に使用するのはFortran77なので 77に準拠したコンパイラを使いたいのですが。
856 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 21:53:39 ] >>855 何をやったのか どんな結果になってうまくいかなかったのか エラーメッセージが出たらその内容 くらい書かないと「しらねーよ」としか答えられない。
857 名前:デフォルトの名無しさん [2007/10/02(火) 22:06:47 ] >何をやったのか >どんな結果になってうまくいかなかったのか >エラーメッセージが出たらその内容 全部>>839 に書いてあるのですが・・・
858 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 23:04:32 ] >>857 「コンパイルに失敗しました」と表示されたときに CPadの下の方のメッセージウィンドウに何か表示されてない?
859 名前:デフォルトの名無しさん [2007/10/03(水) 11:42:56 ] >>858 ■C:\Documents and Settings\....\Fortran> ftn77 /link ttt.for [Salford FTN77/Win32 v4.03, Copyright (c) Salford Software Ltd. 1988-1998] Licensed to: FTN77 Personal Edition Department: Non-commercial use only 0001) !----- Ex1_1: 3種類の平均値 ----- 0002) PROGRAM Example_1_1 *** Unexpected continuation line (have you got more than 19?) 0007) PRINT*, av1, av2, av3 0008) END *** Non-blank label field in continuation line 0008) END 0009) *** Unexpected end of file (END statement assumed) 3 ERRORS [<MAIN@>FTN77 Ver 4.03] *** Compilation failed ^C というエラーが出ています。 どうすればいいんでしょうか?
860 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 11:51:10 ] >>859 1から6カラムまで開けろや!
861 名前:デフォルトの名無しさん [2007/10/03(水) 12:34:36 ] >>860 すいません、どういう意味ですか? 開けるというのは何を開けるのですか?
862 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 18:12:30 ] 言っちゃ何だが、FORTRANの文法をよく勉強したほうが いいんじゃないか? 自分のしたいことをコード化できないようじゃ理論ギャップ があるのかバグがあるのか判断できないじゃまいか。
863 名前:デフォルトの名無しさん [2007/10/03(水) 18:14:39 ] 勉強はするつもりです。 だからとりあえずコンパイラがちゃんと動くしたいのです。
864 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 18:42:19 ] じゃあ、エラーメッセージ読んで考えろよw
865 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 03:45:16 ] >>861 >>843 どんな入門書でも最初の数ページ以内に書いてあるような基本的なことだぞ。 ちゃんとしたプログラムが書けなきゃコンパイラがちゃんと動くかどうかも確認できないぞ。
866 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 11:29:36 ] >>865 Fortran90と混同しているから、教えるのはかなり大変だぞwwww 教育者としての真価が問われる。 神化しないと切れるだろうwwwwwwwwwww
867 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 03:23:05 ] もやすみちゃん
868 名前:デフォルトの名無しさん mailto:sage [2007/10/06(土) 01:50:10 ] 関数をサブルーチンの引数とすることはできるのでしょうか? サブルーチンの引数として被積分関数や積分範囲等を設定できればと思っています。 どなたかわかる方がいらっしゃいましたら、ご教授いただければと思います。
869 名前:デフォルトの名無しさん mailto:sage [2007/10/06(土) 09:45:37 ] >>868 制限付きでできる。 external 指定をすればよろし。マニュアル味噌。
870 名前:デフォルトの名無しさん mailto:sage [2007/10/06(土) 13:13:54 ] >>869 868です。ご返信ありがとうございます。 EXTERNALの指定で無事うまくいきました。 途中コンパイルがなかなか通らずどうしたものかと頭を抱えましたが、 「EXTERNALの指定でうまくいく!」という道筋を示していただけたおかげで、エラーの原因を他のところに絞り込むことができました。
871 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 11:56:52 ] 転置行列を書くために program ex2_19 implicit none integer n, i, j real(8) , allocatable :: c(:,:),ct(:,:) read(*, *) n allocate(c(n, n)) call random_seed call random_number(c(:,:)) write(*, *) c allocate(ct(n,n)) do i = 1, n do j = 1, n c(i, j) = ct(j, i) enddo enddo write(*, *) ct(:, :) end program ex2_19 というプログラムを書いたのですがどうしても出力結果が転置行列になりません。 どうしてでしょうか?誰か親切な方お願いします。
872 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 12:58:33 ] >>871 代入文をよく見直せ。
873 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 16:23:34 ] >>871 ct = transpose( c ) でもできる。
874 名前:871 mailto:sage [2007/10/08(月) 18:01:42 ] >>872 c(i, j) = ct(j, i) のところでしょうか?
875 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 19:11:47 ] c が元の行列 ct が転置行列 だよな?
876 名前:871 mailto:sage [2007/10/08(月) 20:18:58 ] >>875 そうです。 cは適当に乱数で決定されるようにしました。
877 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 22:50:50 ] > c(i, j) = ct(j, i) c(i, j) に ct(j, i) の内容を代入
878 名前:871 mailto:sage [2007/10/09(火) 00:23:13 ] >>877 わかりました! なんたる初歩的ミス…、頭の悪い質問ですみません。 ありがとうございました。
879 名前:デフォルトの名無しさん [2007/10/15(月) 17:14:30 ] K=0 ← こっちが前? DO 100 I=1,10 K=K+I 10 CONTINUE WRITE (6,100) K 100 FORMAT(1H ,i5) ← こっちが前?
880 名前:デフォルトの名無しさん [2007/10/15(月) 17:16:09 ] プログラムの「前」ってどっちですか? K=0 ← こっちが前? DO 100 I=1,10 K=K+I 10 CONTINUE WRITE (6,100) K 100 FORMAT(1H ,i5) ← こっちが前?
881 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 17:23:19 ] マルチすんなハゲ
882 名前:デフォルトの名無しさん mailto:sage [2007/10/15(月) 18:36:36 ] >>879 前とは先頭のほうだw
883 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 01:11:01 ] googleg G| o o |g | L | \_e__/ <ぐぐれかす
884 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 02:22:47 ] 誘導され >>57 あたりを読みました FTN95をインストールしました。 plato3(日本語不使用)でコンパイル実行可能でした ↓ fcpadを利用しては出来ないですか? コンパイラパス C:\Program Files\Silverfrost\FTN95\ftn95.exe と入力 コンパイルは通るもののexeファイルが生成されず おそらく設定の実行付近をいじると出来るのか?と思っていますが 誰か、ご指導願います・・・。
885 名前:884 mailto:sage [2007/10/16(火) 02:40:35 ] 原因は分かりました。 が、解決方法が分からないので教えていただきたいのですが /LINKがプログラム名の前に入っているため生成が出来ないようです。 【現在】ftn95 /LINK file.f となってしまう 【解決】ftn95 file.f /LINK としたい 解決方法分かる方よろしくお願いします。
886 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 02:44:09 ] >>884 >>355 fcpadは自由形式のプログラム編集には使えない(向かない)けどな
887 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 00:47:42 ] 割り算の結果がうまく表示されない現象に悩まされています。 integer a,b character c write(*,*)'計算式間にスペースを入れて入力' read(*,*)a,c,b select case(c) case('+') write(*,*)'=',a+b 省略 case('/') write(*,*)'=',a/b endselect stop end
888 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 01:33:51 ] >>887 a,bをINTEGERで宣言しているので、その割り算は切り捨てになる。
889 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 12:04:30 ] 結果自体が表示されないんですが…。 realで宣言しても同じです 割り算以外の演算は問題なしです
890 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 17:37:05 ] >>889 どのようにおかしいか、出力例も交えて、もっと情報を提供しなさい。 >>887 の内容では誰も答えられない。
891 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 17:51:28 ] >>887 やってみた。 例えば、 4 / 2 と入力しても、case('/')に入らない。 もし case default を用意したら、そこに入る。 代わりに 4 "/" 2 あるいは 4 '/' 2 と入力したら = 2 を返した。
892 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 19:00:27 ] ゲイツにきけwwwwwww