問題タブ [fortran95]
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.
fortran - Fortran 95 で任意の浮動小数点文字列を実数に変換する
fortran で任意の浮動小数点文字列を実数に変換する簡単な方法はありますか? 次のようなことを考えてくださいstrtod
。ステートメントの問題READ
は、すべての浮動小数点形式の編集記述子が明示的な幅を必要とすることです。これまでのところ、私が行った最善の回避策は次のようなものです。
しかし、何かが足りないのではないかと思っています。それを行うためのより良い方法はありますか?
fortran - 毎回異なる関数を引数としてサブルーチンを複数回呼び出す
私は用語を知らない初心者なので、これに対する答えを Web で検索することはできません。
プログラミングで、このようなことをしたいと思ったことは一度ならずあります。
A と B はサブルーチン、c と d は関数です。A と B はそれぞれ、内部で関数を複数回呼び出します。
この構造は機能しません。少なくともこのコンテキストでは、Fortran は関数のエイリアシングをサポートしていないと言われています。(「エイリアシング」を含むほとんどの検索結果は、関数ではなくエイリアシング変数を参照しているため、答えが見つかりませんでした。)
では、A と B の複数のバージョンを作成せずにこれを行うには、どのような構造を使用すればよいでしょうか?
module - モジュールがFortran90/95のスコープから外れるのはいつですか?
私の使用目的は
具体的にはmodule mod
、範囲内になりsubroutine sub
ますか?また、モジュールがスコープ内/スコープ外にあるときをもっと一般的に知りたいと思います。重要な場合は、gfortran4.6.1を使用しています。
fortran90 - 10**-2とE-2の差の結果
次のプログラムは、に対して1を出力し、100E-2
に対して0を与えます。100*10**(-2)
これは、演算子の指数が負の数に対して機能しないことを意味し**
ます。これは正しいことです。前もって感謝します
fortran - 95プログラムのFortran77のインターフェース
私はFortranにまったく慣れておらず、Fortran 95と2003でしか記述していません。現在、主に95で記述されているプログラムがありますが、完全にFortran 77構文であり、77の機能も含まれています。
今、私は別のプログラムの機能が必要ですが、プログラム全体を書き直したくありません。私のアイデアは置き換えることでした
と
交換は機能していないようです。コンパイラは、
間違っている。誰かがこのトピックについてある程度の経験を持っていますか、またはコードを書き直さずに実装することさえ可能かどうか知っていますか?
function - FORTRAN で読み取りと印刷を行う
.dat ファイルを読み取って印刷できる Fortran プログラムを作成する必要があります。
(ファイル homework_6.dat には、書籍のレコードが含まれています: 名前 (最大 25 文字)、発行年 (4 桁の整数)、価格 (6 桁の実数)、ISBN (13 桁の整数)。ファイル (homework_6.dat) を読み取るプログラムを作成します。 dat) を作成し、次の形式で詳細を (画面上または別のファイルに) 印刷します。
ここに私が書くもの
しかし、Fortran は 8 行目にエラーがあると言っています。
どうすればいいのかわからない:(
ソーニャ (ITU)
- 編集 -
だから私はプログラムを書こうとしましたが、実行後にまだエラーがあります
14 行目にエラーがあります。 ERROR 52、フィールド DAT に無効な文字があります - ファイル homework.f95 の 14 行目 [+01b3]
arrays - 複数行のFortran95データリスト
私はFortran77でいくつかのコードを与えられたので、それを95に変換する必要があります。
上記を別々の行でどのように行うかわかりません。上記と関係があると思いますが、この場合、Mが何に使われているのかわかりません。
fortran - FORTRAN DEC UNION/MAP 拡張機能を他のものに変換
編集:Gfortran 6はこれらの拡張機能をサポートするようになりました:)
UNION と MAP を多用する古い f77 コードがあります。これらの拡張機能をサポートしていない gfortran を使用してこれをコンパイルする必要があります。これらを除いて、サポートされていないすべての拡張機能を変換する方法を見つけましたが、途方に暮れています。可能なアプローチについていくつか考えましたが、何もうまく実装できませんでした。現在と同じ方法で既存の UDT にアクセスする必要があります。UDT を再実装することはできますが、それらのインターフェイスは変更してはなりません。
私が持っているものの例:
要素へのアクセスは、次の方法で利用できる必要があります: TEST%test1、TEST%test2、TEST%test3
これまでの私の考え:
- 何らかの形で fortran EQUIVALENCE に置き換えます。
- C/C++ で構造体を定義し、何らかの形で FORTRAN コードから見えるようにします (これが可能かどうかは疑問です)。
UNION と MAP が標準から除外されたとき、f77 から f90/95 への多くのリファクタリングが行われたに違いないと思います。これがどのように処理された/処理された場合はどうなりますか?
編集:受け入れられた回答には、メモリのオーバーラップを許可する回避策がありますが、API を保持する限り、それは不可能です。
input - 長さが不明な文字列を読み取る
私は、ファイルから文字入力を読み取り、(最初に)それを再び吐き出すだけのFortran95プログラムを作成するという任務を負っています。トリッキーな部分は、これらの入力行の長さが変化し(最大長が指定されていない)、ファイル内に任意の数の行が存在する可能性があることです。
私は使用しました
しかし、私の最初のステートメントリスト
および適切な整数など。
私が求めているのは、最初に文字列のサイズをリストしない方法があるかどうかだと思います。200文字以上のDNAの文字列があり、次に25文字しかないDNAの文字列があるとします。プログラムが存在するものを読み取るだけで、追加の空白をすべて含める必要がない方法はありますか?len_trim
宣言ステートメントで参照できないため、を使用せずにこれを実行できますか?
fortran - 未定義の長さでの Fortran 文字入力
すべての文字について、Ceaser's Cipher で暗号化します
計算
これは完全には機能しません。
入力のすべての文字について、modulo(iachar()) 関数を使用して変換します。印刷まで機能し、デバッグに従いました。暗号化は問題ありません。しかし、出力の問題は LEN=100 にあります。do ループは 100 回実行され、存在しない文字をゴミに変換し、出力時に UNDEFINED TYPE でプログラムを中断します。
したがって、「test」と入力すると、CBNC*GARBAGE-TO-100* が暗号化されて出力されません。長さを 4 と定義して実行すると、機能します。長さを定義せずにできるようにしたいです。これを回避する方法はありますか?