fortran77でプログラム時間を計測する方法

このQ&Aのポイント
  • fortran77でプログラム時間を計測する方法を調べました。Linux環境での説明が多いですが、Windows環境でも可能です。
  • Windows環境でのfortran77プログラム時間計測方法について調べました。fcpadを使用してコンパイルしている場合でも実行できます。
  • Linux環境でコンパイルする利点として、メリットがあると言えます。Linux環境では豊富な開発ツールとシステムリソースを活用でき、効率的にプログラミングができます。
回答を見る
  • ベストアンサー

fortran77のプログラム時間を計測したい

fortran77のプログラム時間を計測したい こんばんわ。fortran77で実行結果が出るまでの時間の測定をしたいのですが、どうすればいいのでしょうか? 調べてみるといろいろな方法があるようです。しかし、そのほとんどがlinuxでの環境においての説明です。 私はwindowsの環境でfcpadを使ってコンパイルしています。ですので、「a.out」のコマンドを打ってプログラムを実行したことがありません。windows環境でもfortran77で時間計測というのはできますでしょうか? また、今回linuxの存在の大きさを感じた次第です。linuxでコンパイルするというのはメリットがあるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • f272
  • ベストアンサー率46% (8010/17118)
回答No.1

あなたの環境はSalford FTN77ということで良いのかな。そうだとして http://www.silverfrost.com/manuals/77library.pdf によると HIGH_RES_CLOCK@ という関数でCPUタイムが秒で得られるようです。 REAL*8 T1,T2,HIGH_RES_CLOCK@ T1=HIGH_RES_CLOCK@(.TRUE.) CALL SOME_PROCESS T2=HIGH_RES_CLOCK@(.FALSE.) PRINT *,'Time required = ',T2-T1 END

thjki6624
質問者

お礼

お返事遅れて申し訳ございませんでした。 >あなたの環境はSalford FTN77ということで良いのかな おっしゃる通りです。 HIGH_RES_CLOCK@ってすごいですね。サンプルプログラムを打ち込んだら 現在の時刻: **:**:**.** 新しい時刻を入力してください: って結果が出てきました。'現在の時刻'とかプログラムに記載していないのに出力されてきたのでびっくりしました。 しかし、私が知りたいのは「現在の時刻」ではなく、「処理をするのにかかった時間」なんです。今もどうやってやるか調べているのですが、分かりません。英語が苦手なので、説明書を見てもよくわかりません。 もし、分かるようでしたら教えていただけませんか?

その他の回答 (1)

  • f272
  • ベストアンサー率46% (8010/17118)
回答No.2

私は,Salford FTN77なんて持っていませんから,動作確認せずに書いてます。 HIGH_RES_CLOCK@は「処理をするのにかかった時間」を返します。しかしマニュアルによれば To achieve this precision the system clock is reprogrammed in mode 2. ということなんで,勝手なことをし始めたのかな。 代わりに,CPU時間ではないけど経過時間を返せば良いのなら,SECONDS_SINCE_1980@も使えます。 REAL*8 START, FINISH, SECONDS_SINCE_1980@ CALL SECONDS_SINCE_1980@(START) CALL SOME_PROCESS CALL SECONDS_SINCE_1980@(FINISH) PRINT*,'Elapse time used =', FINISH-START END

関連するQ&A

  • Fortranについて

    私は今大学生のものです。 今卒業研究でFortranのプログラムを用いています。しかし私はプログラミングには疎く、独学で勉強しようと思うのですがなにか初心者にわかりやすいお勧めの本、サイトなどはあるでしょうか? 本屋に行ってもFortranの本は販売されておらず、通販では手にはいるのですがどの本がいいのかわかりません。是非教えていただければと思いここに書き込ませていただきました。 また、家でもFortranのプログラムをコンパイル、実行できる環境をつくりたいのですがどうすればよろしいでしょうか? 学校ではcygwinをインストールして行っていますが家でもcygwinをインストールすればいいのでしょうか? また今もととなるプログラムはあるのですがこのプログラムはLinux上では正常にコンパイルされないところがあるらしく書き直さなければならないらしいのですがLinux上でのFortranのプログラムは普通のFortranのプログラムとは違うのでしょうか?ちなみに学校のパソコンのOSはWindows Vistaです。 初心者の質問ばかりになってしまってすみません。自分でしっかり学びたいと思うのでぜひ教えてください。

  • fortranで長いプログラムを書き、コンパイルはできたのですが

    fortranで長いプログラムを書き、コンパイルはできたのですが 実行の際、実行時間がかなりかかり実行がなかなか終わりません。 プログラムが長いと言っても、30分以上かかるようなプログラムではないと思うのですが。 実行時間が長くかかってしまう原因についてご存知の方は教えて下さい。 よろしくお願いします。

  • FORTRANとC++の連動について

    私は,Fortranを用いて解析の業務をしている,プログラム初心者です。 購入したのは,Intel Visual Fortran8.0(VF)ですが,Windows環境でコンパイルリンクするには,Microsoft Visual C++ .NET 2003(VC++)が必要ということで,こちらも購入しました。 普段は,Fortranのコンソールで ifort **.f といったコマンドでコンパイルリンクし,実行しているだけです。 これからは,VC++の方に移行していきたいと考えていますが,しばらくはFortranで作成したサブルーチンを有効活用したと考えています。 そこで,VC++ベースのメインプログラムからFortranのサブルーチンを呼び出すプログラムの作成方法,コンパイルリンク方法をご教授ください。よろしくお願いします。 (1)ソースにどう記述するか? void CMyDlg::OnBnClickedOk() { ここで,FORTRANのサブルーチンを呼び出したい。     Fortranなら call subroutine( a, b ) } (2)コンパイルするときは, Visual Studio開発環境で,コンパイル→実行で良いのか? それとも,あらかじめVC++とVFで.objファイルを作成する必要があるのか?

  • Fortran90/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のコンパイラでコンパイルできるようにアドバイスを下さい よろしくお願いします

  • c++からfortranの関数を呼び出す

    Linux上でintel fortran compilerとc compilerを使っているものです。 cのプログラムからfortranで書かれたsubroutineやfunction を呼び出したいと考えています。 いろいろネット上を調べたのですが、どれも細かいことは書いていても 具体的にどのようなコマンドを実行すればいいのか等については 部分的にしか書いておらず、よく把握できていません。 どなたか、非常に簡単なプログラムで結構ですので、 具体的なプログラムと、実行すべきコマンドについて 具体例を挙げて教えていただけないでしょうか? もしくは、そのようなページを教えてください。 よろしくお願い致します。

  • Fortranで書かれたプログラムのコンパイル方法

    VAX FORTRAN(version 5.0)で書かれたプログラムをWindowsXPで動かしたいのですが、これって可能でしょうか? Windows用のLF95は所有しており、コンソール画面から試したのですが無理なので何か良い方法がありましたらどなたか教えていただけないでしょうか? コンパイル用のバッチファイルとして@COMPILE.comファイルというのがあり、このコマンドを叩けばすべてが動くはずなのですが・・・。

  • fortranについて

    fortranでプログラムをコンパイルし、実行したところRun-time Errorと出てきて、00401000 main [+0052]と書いてありました。何が原因なんでしょうか?

  • プログラムの実行時間の計測について

    プログラムの実行時間を計測したいのですが、 どのようにすればよいですか? 使っている言語はC++です。

  • プログラムの実行時間を計測する方法について

    私は、Tiny Basic for Windowsを使って、 プログラムの計算方法の違いによる、 プログラムが答えを導き出すまでの実行時間の違いを調べたいと思っています。 内容としては、入力された数が素数かどうかを調べるものなのですが、 大体のプログラムは完成しています。 後は、時間を計測するだけなのですが、 BASIC言語でプログラムの実行時間を表示させるプログラムなどはできるのでしょうか。 それ以外の方法でもかまいません。 とにかく大体の実行時間を知りたいと思っています。 ストップウォッチで自分が計るしかないのでしょうか。 実行時間を知るための方法を教えてください。 よろしくお願いします。

  • JavaAppletのボタンを押すことで、Fortranプログラムが実

    JavaAppletのボタンを押すことで、Fortranプログラムが実行できるようにプログラムを作っています。ですが、今エラーが出て困っています。誰か教えて頂けないでしょうか? 必ず、エラーでディレクトリが見つかりません。とでます。 cdのコマンドでプログラムがある所まで移動したいのですが,どう打てばいいのか分かりません。現在のプログラムは以下のとおりになっています。 OSはLinuxのFedora10です。開発環境としてEclipse使ってます。 try { String command = "./main < input.txt"; //外部プロセス ProcessBuilder pb = new ProcessBuilder(command); //ProcessBuilder構築 Process process = pb.start(); //プロセス実行 process.waitFor(); } catch (Exception e1) { e1.printStackTrace(); }

専門家に質問してみよう