• 締切済み

ステップごとにファイル名を変えて出力する方法を教えてください(fortran)

数値計算で初期から100ステップまで計算するとします。 ステップ10,20,30・・・のときの結果を見たいのでそれぞれステップ数でファイル名をつけてテキストに出力するようにしたいのですが,どうやったらいいのでしょうか? どなたか教えていただけませんか?

みんなの回答

  • yotta
  • ベストアンサー率32% (26/79)
回答No.1

そのステップ変数を 10 で割った値に小数値が無い時に 出力するようにする ファイル名はそのステップ数を文字型に変換する

masa2-1
質問者

補足

ありがとうございます。助かります。 >そのステップ変数を 10 で割った値に小数値が無>い時に 出力するようにする これはmodを使えということですね, ありがとうございます。 >ファイル名はそのステップ数を文字型に変換する これはどういう命令文を使えばいいのでしょうか? ステップ数をniterとしているとしてどういう文に すればいいのか教えてくれませんか? よろしくお願いします。

関連するQ&A

  • fortran90 ファイル出力の名前

    ファイル出力の仕方なのですが do j=1,step ・ ・ ・ OPEN(3, FILE = "nucsig12.txt", STATUS = "old", ACTION = "WRITE") DO i=1,nucnum WRITE(3,*) i,nucsig12(i) END DO CLOSE(3) ・ ・ のようにstepごとにファイルの出力をしたいのですが テキスト名をstepごとに変えたいのですがどうしたらよいのでしょうか?? OPEN(3, FILE = "nucsig12.txt", STATUS = "old", ACTION = "WRITE") の部分をどう修正したらいいのか・・・ 理想としては "nucsig12[step].txt"(stepには数字をいれたい) というようにstepと同じ数のテキストファイルを作りたいです こういうことはできるのでしょうか?? もしできるなら教えてください お願いしますm(__)m

  • FORTRANでのファイルの上書き

    FORTRANで,何ステップかの解析データを順次テキストファイルに出力しているのですが,書き込んだファイルの一部だけを書き変えることはFORTRANでは無理なのでしょうか? 例えば, #ファイル名 解析ステップ数 STEP1 : 膨大な解析データ : STEP??? : END OF FILE なるファイルを作りたいときに,ステップ数は解析が終わらなければ分からないので,解析の最後に"解析ステップ数"の行に???の値を書き込みたいのですが,rewindして先頭に戻って頭の部分を書き直すとファイルごと上書きされてそれ以下の部分は全部消えてしまします。なので現状は解析終了後に生成されたファイルのステップ数の部分をいちいち書き換えてビューワーに投げています。膨大な解析データをメモリに保存して最後にまとめてテキストデータに出力することは避けたいのですが,何か良い方法はないでしょうか? よろしくお願いします。

  • FORTRANでファイルへの出力

    FORTRAN77で,以下のような出力をしたいのですが,どうしたらいいかわかりません.何かいい案があれば,教えてください. 繰り返し処理の途中で計算を止めても,何ステップまで計算したかを第一行目に出力したいです. ex.)繰返し終値が1000として,456ステップで計算を止めたとき, ----------出力ファイル-------------- 456ステップまで計算されています. (↑何ステップまで計算されたかを   第一行に記入したいです.) step 1,データ step 2,データ : : step 456,データ ----(簡単ですが)考えてたプログラム------- OPEN(10,○) WRITE(10,○)  ←ここを悩んでいます. DO I=1,1000 WRITE(10,○)'step',I,データ CONTINUE

  • fortranでのcsvファイルを出力する方法

    fortranでコンマ切りテキストファイル(CSVファイル)を 出力する方法をご存知の方、いらっしゃいませんでしょうか? 私が使用した処理系(intel fortran 8.0 for Windows)で write(600,*)1.4,',',2.33,',',30.11 というコードを実行させると fort.600 というファイル名のテキストファイルが生成されて 中身は ___1.400000_____,___2.330000_____,___30.11000____ となります。( _ は半角空白を意味します。) 私が欲しいのは余計な空白の入っていない 1.4,2.33,3.11 または 1.400000,2.330000,30.11000 という出力なのですが、どのような書式指定をすれば これが可能なのでしょうか? 全くのfortran初心者です。よろしくご教示ください。

  • ファイル名を出力したテキストファイルを読込みリモートファイルをGetする方法

    リモートからダウンロードが必要なファイル名をテキストファイルに出力し、そのテキストファイルを順次読込み、読込まれたファイル名をローカルにダウンロード(get)したい。 テキストファイルまでは作成できているのですが、テキストファイルを読込み、そこからファイルをゲットすることができません。 どのように記述すればよいのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Perl
  • FORTRANについて

    今、大学の研究室でFORTRANの勉強をしています。そこで、院生から問題を出されました。それは、 テキストファイルから数字を読み込み、それらをFORTRANの中で計算し、その答えをまたテキストファイルに出力する、というプログラムです。 計算するところまではできたのですが、どうしてもテキストファイルに出力するプログラムがわかりません。 出力の仕方だけでも教えてください。教科書にもなく、図書館でも古い時代のものばかりで。しかも、僕は学校の関係でFORTRANを全く知りません。

  • commonで定義した変数を文字型に変換してファイル名に使いたいのですが(fortran)

    たとえば計算ループの反復回数のカウントにniterという変数を使っているとします。 niterが10の倍数になる度にniterの数をファイル名にしてそれぞれの結果をそれぞれのファイルに出力したいのですが,うまくいきません。 open(10,file='file' // CHAR(ICHAR('0'+niter) // '.txt' &,status='unknown') のようにするようにと教わったのですが、これだけではうまくいかないので詳しい方教えていただけませんか? 

  • perlでファイルを分割してファイル名も出力したい

    >AA A AAA aaaaaaaaaaaaaaa aaaaaaaaaaaa >BBB BB B bbbbbbbbbbbbbbb bbbbbbbbbbbbbbb bbbbbbbbbbbbbb ・ ・ こういった形式でテキストが入った大きいサイズのひとつのファイルを ・ファイル名 AA A AAA ・テキスト内 >AA A AAA aaaaaaaaaaaaaaa aaaaaaaaaaaa ・ファイル名 BBB BB B ・テキスト内 >BBB BB B bbbbbbbbbbbbbbb bbbbbbbbbbbbbbb bbbbbbbbbbbbbb となるように個別に出力させたいのですがどのようにすればよいでしょうか? #!/usr/bin/perl -w use strict; my $first; my $file; $first = 1; open(IN,"分割前ファイル"); foreach(<IN>) { if ( /^>(.*)/ ) { if ($first == 0 ) { close(OUT); } else {$first = 0; } $file = $1; $file =~ s/[\r\n]//; open(OUT,">$file"); } else { print OUT $1; print OUT $_; } } close(IN); このようなプログラムを組んだのですが、出力結果はファイル名についてはいいのですが、テキスト内が思ったようにいきません。 ・ファイル名 AA A AAA ・テキスト内 AA A AAAaaaaaaaaaaaaaaa AA A AAAaaaaaaaaaaaa このような結果になってしまいます。 どなたか対処方をわかるかたがいましたらお願いします。

    • ベストアンサー
    • Perl
  • fortranのwrite文について

    fortranで数値計算をしています。 計算結果をdatファイルに出力する際、 長い変数名の数値を30列(1列は1000行以上)以上にわたって出力したいことがあります。 現在は、それぞれの変数名を横並びにプログラムに書き、 かつ、1行あたりの文字列の制限もあるので、 &記号を使って、無理やり出力しています。 具体的には、 do i=1,1000,1 write(1000,*)aaaaaaaaaaaaaaaa(i),& &bbbbbbbbbbbbbbbb(i),& &cccccccccccccccc(i),& &dddddddddddddddd(i),& ........ end do という形です。 もっとスマートにかけないでしょうか?

  • fortranのtxtファイル出力書式について

    こんにちは。 fortranのtxtファイル出力について質問させていただきます。 下記のようなコードでtxtファイルに計算結果を出力させています。(途中省略) open(20, file ='outputx1.txt') do ax1 = 1, m do ax2 = 1, l if (sum2(ax1, 1, ax2) == 1) then write(20,*) ax1, ax2 endif enddo enddo close(20) ここでm=103,l=300です。 このコードで出力すると、結果は以下のようになります。      9    293      9    294      9    295      10     97      10     98      10     99 しかし、以下のようにtxtファイルを出力したいと考えています。 9 164 9 165 9 166 10 151 10 152 10 153 *の部分を色々といじってみたのですが、うまいやり方が見つかりません。 説明不足とは思いますが、アドバイスよろしくお願いします。