[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 12:09 / Filesize : 350 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

くだすれFORTRAN(超初心者用)その2



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/


768 名前:762 mailto:sage [2007/07/28(土) 13:09:51 ]
>>766
初期化したら大丈夫でした。
何から何までありがとうございました。

769 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 17:13:16 ]
gfortran, ifort で NaN を検出したいのですが、
どうすればよいでしょうか。

program test
real(8) :: x,y
x=1.
y=0.
write(*,*) x/y,isnan(x/y)
end

$ gfortran test.f90
/tmp/ccABo1qT.o: In function `MAIN__':
test.f90:(.text+0xa3): undefined reference to `isnan_'
collect2: ld はステータス 1 で終了しました

$ i$ ifort test.f90
$ ./a.out
Infinity F

鳥は
Linux 2.6.20-gentoo-r8 SMP x86_64 Intel(R) Xeon(TM) CPU 3.80GHz GenuineIntel GNU/Linux
$ gfortran --version
GNU Fortran 95 (GCC) 4.1.2 (Gentoo 4.1.2)
$ ifort --version
ifort (IFORT) 9.1 20070215
です。


770 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 20:48:12 ]
>>769
Intel Fortran, g95 なら

program test
real(8) :: x,y
x=0.
y=0.
write(*,*) x/y,isnan(x/y)
end

gfortranの場合は知らん。

771 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 21:18:08 ]
>>770 thanks. infinity は NaN ではなかった。小手先の工夫で
program test
real(8) :: x,y
x=0.
y=0.
x=x/y
if(x-x.ne.0.) then
write(*,*) x
else
write(*,*) x-x
endif
end
を考えたのですが gfortran は NaN を返し、ifort は
0.000000000000000E+000
を, ifort -O0 は NaN を返しました。例外をトラップしようと思うと、
c のプログラムをリンクせざるとえないのかな。

772 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 23:20:20 ]
>>771
マニュアル味噌。

Module: USE IFPORT
Syntax
result = IEEE_FLAGS (action, mode, in, out)

gfortranの方は知らんが、F2003対応のIEEEモジュールを誰かが作ったとか書いてあったような。
記憶違いだったら、ごめんw


773 名前:デフォルトの名無しさん [2007/08/02(木) 03:31:02 ]
わざわざNanを検出する理由は何か?


774 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 09:17:03 ]
>>773
なんもない

775 名前:726 mailto:sage [2007/08/09(木) 12:58:16 ]
>>729
ずいぶん遅くなってしまいました。
私のやりたいことはデータを並び替えるだけなのですが、もともとの出力データは役所が絡んでいるので、
出力形式がオリジナルのものと違うと何かと説明が面倒なのです。
ありがとうございました。



776 名前:デフォルトの名無しさん mailto:sage [2007/08/10(金) 10:45:29 ]
標準入力でファイル名入れるときに、普通のシェルみたいに、タブによるインクリメントサーチ使えたらなぁ
やっぱり無理だよね?



777 名前:デフォルトの名無しさん [2007/08/10(金) 14:36:40 ]
だれかこのプログラムの使い方教えてください
cera-www.dkrz.de/IPCC_DDC/info/Readme.gzip
ASCIIデータをなにかに変換するプログラムなのですが
自分無知でよくわかりません。
おねがいしますm(__)m

778 名前:デフォルトの名無しさん mailto:sage [2007/08/10(金) 16:19:46 ]
ノットあナンバーはコンピューータサイエンスやるなら覚えとけボケ

779 名前:デフォルトの名無しさん mailto:sage [2007/08/10(金) 19:15:35 ]
>>777
只のデータフォーマットの説明とサンプルプログラムのようだが。

よくわからないなら使うなよ。

780 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 00:51:39 ]
>>778
Fortran利用者はコンピュータ・サイエンスなんか知らない。 
計算機自体をサイエンスだなんて何言ってんの?あんた馬鹿?って認識だろw

IEEEフォーマットが普及したのはありがたい。

IBMとクレイのフォーマットが最後までがんばっていたようだが、
各社の糞数値フォーマットもようやく死滅したようで、まずはめでたい。


Infのおかげで、ゼロ割エラーで止まらなくなったのはうれしい。
IF文で避けているはずなのに、投機的実行して0割エラーでアボンとか、ウンコ漏れそうになるw

正直NaNはあんまり助けにならん。


>>777
その質問じゃ答えようが無い。
もう少し具体的に質問すれば誰か答えてくれるだろう。

書いてあることは、>>779の言うとおりだ。
1.gzipで圧縮してあるからばらすが良い。解凍するとASCIIファイルが出る。
2.そのASCIIファイルのデータの書式。および読み込みサンプル。
の2点だ。



781 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 07:47:23 ]
中二病?

782 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 18:38:47 ]
夏休みで暇だから、宿題を持ってきたまえ。


783 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 12:27:55 ]
>>777
中身もちゃんと見ていないが、たぶん、IPCC(国際的な専門家でつくる気候変動に関する政府間パネル)
が、シミュレーションした結果をGRIB形式とかいうので保存してあるというやつの
中身の説明と、サンプルプログラムじゃないかな。

784 名前:デフォルトの名無しさん [2007/08/21(火) 11:56:55 ]
   OPEN(5,FILE='C:\\test-data.txt')
   DO 20 K=1,200
   READ(5,25)X(K),Y(K)
 25 FORMAT(2F20.0)
 20 CONTINUE 
のとき、test-data.txtはどんなデータを与えればいいのだ?
2F20.0がよくわからん。

785 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 23:10:05 ]
>>784
勝手に装置番号 5番を使うなよ。とか、
不用意に入力に書式仕様を使うなよ。というのは置いといて。

2F20.0
「20文字読み込んでその値を実数と見なす。小数点も指数も含まない場合は小数部のない実数と見なす。」
を 2回繰り返す。

786 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 00:32:58 ]
>>785
まぁ F20.0 を使ったのは筋のいいほうでないかいw




787 名前:デフォルトの名無しさん [2007/09/01(土) 03:44:42 ]
>>785
unit 番号は置いといて
読みこむ場合は、カラムの20,21カラムがしっかりしてたら
123.456
とかを入れても、123.456できちんと格納されてるよ。

788 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 10:11:05 ]
データの桁位置が絶対にズレないということなら大丈夫なんだけどね…

789 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 16:07:04 ]
Fortranで整数型 i = 1を文字型に変換するにはどうしたらよいでしょうか?
i = 1
hoge = char(i)
だとhogeに『のような文字が入りうまくいきません.

790 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 20:54:09 ]
>>789
二バイト文字を入れたいという質問か?


791 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 21:02:48 ]
>>789
>>587-590

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 ]
関数をサブルーチンの引数とすることはできるのでしょうか?
サブルーチンの引数として被積分関数や積分範囲等を設定できればと思っています。
どなたかわかる方がいらっしゃいましたら、ご教授いただければと思います。







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<350KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef