問題タブ [intel-fortran]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
196 参照

windows-7 - 矢印キーの動きをキャプチャできる Fortran ライブラリ

コンソール アプリケーションで QuickWin プロットのいくつかの点を移動するために矢印キーを使用したいと考えています。そのようなものをサポートするライブラリはありますか?

0 投票する
1 に答える
892 参照

optimization - 最適化された ifort の SIGSEGV

ifort で -O0 を付けてコンパイルすると、プログラムは正しく実行できます。しかし、最適化オプション (-O、-O3、-fast など) を開いている限り、SIGSEGV セグメンテーション エラーが発生します。

このエラーは、maketable() という名前のサブルーチンで発生しました。そして以下は現象です:

(1) このサブルーチンで fftw ライブラリを呼び出します。fftwの文章にコメントしてくれればOKです。しかし、このコードの他の場所でも fftw を使用しているので、fftw のせいではないと思います。

(2) fftw はループ内で呼び出され、プログラムがクラッシュしたときにループが数回実行される可能性があります。ループに入った最初の時点ではセグメンテーション違反は発生しません。

(3) スタックオーバーフローも考えましたが、今は考えていません。私はずっと前に他の人がコンパイルした実行可能ファイルを持っています。それは私のコンピューターで実行できます。システムスタックオーバーフローが原因ではないことを示唆していると思います。

ifort のバージョンは 10.0、fftw のバージョンは fftw-2.1.5 です。CPUタイプはIntel Xeon 5130です。どうもありがとう。

0 投票する
1 に答える
1467 参照

linux - Sublime Text 2ビルド(Ctrl + B)IntelFortranコンパイラ

Linux64ビットでifort11.1を使用しており、エディターとしてSublimeText2を使用しています。知りたいのですが、コードをコンパイルするためのカスタムビルドコマンドを作成するにはどうすればよいですか?また、ソースファイルと同じ名前の出力を生成する方法を知る必要があります。たとえば、次のコマンドをカスタムビルドシステムに再現したいとします。

これまでに試しました:

成功せずに。アイデア?

0 投票する
2 に答える
447 参照

fortran - コンパイルされたオブジェクトに Fortran の「パラメータ」タイプが含まれていません

属性を持つ変数と属性を持つ変数を含む Fortran モジュールがparameterありますsave。それらparameterはコンパイルされたオブジェクトに含まれていないため、ライブラリをアセンブルしようとすると問題になります。たとえば、ファイルを考えてみましょうtestModule.f90:

これを次のようにコンパイルします: ifort -c testModule.f90. 中身を確認すると:

thisIsSaved変数のみが存在します。ではなく変更できるthisIsParameteredことはわかっていますが、理想的には、リンクしているユーザーがこの値を変更できないようにしたいと考えています。これを行う方法はありますか?saveparameter

編集: Fortran だけでなく、C コードからもこのライブラリにアクセスできるようにしたいと思います。

0 投票する
1 に答える
686 参照

fortran - 境界チェックによってプログラムの動作が変わるのはなぜですか?

私が取り組んでいる Fortran で書かれた熱水力学のコードがあります。私のデバッグ バージョンでは、-check boundsコンパイル時に ifort 11.1 のオプションを使用します。過去にこの方法で配列境界エラーをキャッチしました。しかし最近、特定のケースでソリューションが急速に爆発しているのを見ました。奇妙な点は、コードのリリース バージョンでうまく収束していたことです。案の定-check bounds、デバッグ makefile からフラグを削除すると問題が解決しました。

奇妙なことは、以前に使用した他の多くのテスト ケースでデバッグ バージョンが正常に動作し、コード内の配列境界の外に出てもエラーが発生しなかったことです。この動作は私には非常に奇妙に思えます。コードに何らかのバグがあるのか​​ 、それとも何なのかわかりません。この種の動作を引き起こしている可能性のあるアイデアはありますか?

リクエストに応じて、リリースとデバッグに使用するフラグは次のとおりです。

リリース:-c -r8 -traceback -extend-source -override-limits -zero -unroll -O3

デバッグ:-c -r8 -traceback -extend-source -override-limits -zero -g -O0

もちろん、元の質問が示すように-check bounds、デバッグの場合はフラグのオンとオフを切り替えます。

0 投票する
1 に答える
5497 参照

fortran - Intel Fortran -- -check bounds で行番号が表示されない

ifortmpi 環境でintel fortran コンパイラ ( ) を使用しています。flags を指定してコンパイルすると、コードにバッファ オーバーフローが発生することが判明しました-g -O2 -check bounds。しばらく実行すると、次のメッセージが表示されます。

これは素晴らしいことです。オーバーランしていることはわかりましたXXが、どこでしょうか? を使用するとgfortran-fbounds-checkファイルと行番号が表示されます。それを得る方法はありますifortか?

0 投票する
4 に答える
6700 参照

fortran - Fortran で論理型を double に変換する

ifort と gfortran の両方で機能する、論理型変数を実数型に変換する防弾方法を探しています。次は ifort では機能しますが、gfortran では機能しません。

gfortranでスローされるエラーは

明らかに、.true. 1.d0 および .false にマップする必要があります。0.d0 に。これを行う最善の方法は何ですか?

0 投票する
1 に答える
4620 参照

macos - 自分の Mac (Snow leopard) に ifort がインストールされているかどうかを確認するにはどうすればよいですか?

「gfortran/ifort」コンパイラと一緒にインストールする必要があるプログラムがあります。Mac OSX 10.6.8 (Snow Leopard) を使用しています。gccがインストールされていることはわかっています。これは、自分自身をインストールしたためです(Xcodeインストーラー内のgccパッケージから、xcode全体をインストールする必要はありませんでした)。また、ターミナルに「which gcc」と入力した後、ディレクトリを取得します。

また、gnuからgfortranをインストールし、端末に「which gfortran」と入力した後、ディレクトリを取得しました。

ただし、このプロセスで学習しているため、gfortran をインストールしたときに「ifort」もインストールされているのか、それとも自分でインストールする必要があるのか​​ わかりません。ifort がインストールされているかどうかを確認するにはどうすればよいですか? インストールされていない場合、Snow Leopard はどこから入手できますか? xcode全体をインストールしてから「コマンドラインツール」をインストールすればインストールできますか?

0 投票する
1 に答える
1164 参照

fortran - ifortを使用した指数のFortran演算子の優先順位エラー

指数とそれに続く乗算を使用して単純な式を評価すると、ポートランドとインテルのFortranコンパイラーで異なる動作が発生します。演算子の優先順位の理解に基づいて、pgf90(およびgfortran)が正しく機能していることはかなり確信していますが、これらは少し注意が必要な場合があるため、セカンドオピニオンをお願いします。

これが私のコードを非常に基本的な形に簡略化したものです。ifortを使用して実行すると、フォームの式は、pgf90およびgfortranによってifortによってd1=a**-2*b解釈されます。指数から負の符号を削除すると、3つのコンパイラすべてがこれを。として解釈します。*bを+bに変更すると、3つすべてからも良好な動作が得られます。d1=a**(-2*b)d1=(a**-2)*bd1=(a**2)*b

これらの違いの背後にある歴史があり、それらは「機能」と見なされるべきですか?それとも、これはIntel側の完全なバグですか?

0 投票する
1 に答える
10920 参照

fortran - Fortran 90でincludeステートメントを使用するにはどうすればよいですか?

私はFORTRAN77のいくつかのモジュールに使用されるいくつかの.hファイルを持っています(私は自分で書いていません)。Fortran 90で新しいルーチンを作成し、そのような.hファイルを使用したいと思います。を使用しようとしましたがinclude 'foo.h'、コンパイルしようとすると(ifortバージョン13.0.0.079ビルド20120731を使用)、次のエラーが発生します。

Syntax error, found IDENTIFIER 'FOO' when expecting one of: ( % [ : . = => C FOO COMMOM

私も使用しようとしましinclude foo.hたが、次のエラーが発生します。 error #5082: Syntax error, found IDENTIFIER 'FOO' when expecting one of: <CHAR_CON_KIND_PARAM> <CHAR_NAM_KIND_PARAM> <CHARACTER_CONSTANT> INCLUDE FOO.h ----------^

error #6274: This statement must not appear in the specification part of a module INCLUDE foo.h --^

error #6236: A specification statement cannot appear in the executable section. !$ use omp_lib ---^

error #6236: A specification statement cannot appear in the executable section. implicit none --^

error #6456: This name must be a RECORD name. [FOO] INCLUDE FOO.h ----------^

error #6460: This is not a field name that is defined in the encompassing structure. [H] INCLUDE foo.h ----------------- ^

error #6252: This format specifier is invalid. [FOO] INCLUDE foo.h

includeF90には存在しないと思います。.hファイルを使用できるようなものはありますか?