FORTRAN、数値データと文字列の間の変換方法 戻る 方法 文字列変数を CHA 数値変数(整数型・実数型・倍精度型)を NUM として、 文字列から数値を読み取る には、 read( CHA ,*) NUM 数値データを文字列にする には、 write( CHA ,*) NUM とします。整数へ変換(切り捨て) nint(a ,kind) 整数へ変換(四捨五入) real(a ,kind) 実数へ変換 dble(a) 倍精度実数への変換 real(a,kind(0d0)) と同じ cmplx(x ,y ,kind) 複素数への変換 mod(a,p) a÷p の余り sqrt(x) 平方根 max(a1,a2,a3,) 最大値 min(a1,a2,a3,) 最小値 len(a) 文字長 len_trim(a)で宣言します。 他にも倍精度実数型・倍精度複素数型・論理型があり、以下のように宣言します。 「倍精度実数型」はdouble precision
2
Fortran 型 変換
Fortran 型 変換-プリンタか聞いてくるのでどちらかを選択する。次に、変換用ファイルの入っているフロッ ピーのドライブ番号を聞いてくるので、例えば、aドライブならaのように入力してリタ ンキーを押す。 4 次に、変換するファイル名を入力する。Program main implicit none character(5) a !
Fortran90の文法 (4) 変数の型 宣言文 変数の種類を指定(宣言)する implicit none real A, x, b 暗黙の型宣言はしないことを宣言 変数は必ず宣言したものを使用する A, x, bが単精度(4バイト)実数であることを宣言 real(8) Tmp, pres, vx, vz型変換 型変換 Next構造体UpFortran90Previous出入力 型変換 11odatを無理やり直接探査型式で読みこむことは可能であろうか?答は可能である。 このために構造体を用いる。 つまり整数型4バイトと実数型4バイトが6個と整数型4バイトの合計32バイトが2つあるような直接探査を考えればよい。 ここでのケースは非常に特殊のように思われるかも知れないが、例えば氏名組込み手続 JISFortran 90の組込み手続は、数値関数、数学関数、文字関数、文 字問合わせ関数、種別関数、論理関数、数値問合わせ関数、ビット操作 手続、転換関数、浮動小数点数操作関数、ベクトル及び行列の乗算関数、 配列集計関数、配列問合わせ関数、組込みサブルーチン等に分類するこ
Fortran 77 とc のデータ型 表 111 に、fortran 77 のデータ型のサイズと境界を示します。ここでは、境界に影響したり、適用されるデフォルトのデータサイズを昇格させたりするコンパイルオプションを指定しないものとします。複素数 1, 複素数は complex と宣言する. 2, 複素数 は,(a,b)と代入する.この時,変数は使えないので, その時は虚数単位ei=(00,10)としておいて,ab*eiと書く. 3, real(複素数)は複素数の実数部を,aimag(複素数)は虚数部 を表す. 4, conjg(複素数)は複素数の共役を表す.6拡張機能 61 gnu fortranで実装された拡張 611旧式の種類の仕様 6110実配列インデックス 6111単項演算子 6112 logicalおよびintegerの値を暗黙的に変換する 6113ホレリス定数のサポート 6114 crayポインタ 6115 convert指定子 6116 openmp 6117 openacc 6118引数リスト
Fortran 標準コーディングルール 05年12月1日改訂 目次 1.はじめに 2.スタイルルール(推奨リスト) 3.Fortran90の機能を生かして 4.禁止事項 5.現段階では規定していないが重要なもの 付録 気象予報モデル・データ同化プログラムのためのコメント長さ5の文字列 a = "abcdefg"数値と文字型を変換する関数はあります。 それは WRITE 文と READ 文です。 あまり知られていませんが、Fortranには内部 WRITE 文と内部 READ 文という構文があります。 これらの関数は、文字型変数に対して書き込みや読み込みを行います。
Fortran で用意されている 変数の種類(データ型) 種類 データ型 値の範囲 基本整数型 integer 2,147,4,648 2,147,4,647 8 バイト整数型 integer(8) 9,223,372,036,854,775,808 9,223,372,036,854,775,807 単精度実数型 real ×10 38 ×10 精度は10進数で約6桁(2進数で24桁)また逆に、以下のようにすることで、文字"123"を数値の123に変換することが可能です。 以下にプログラム例を示します。 program internal_file implicit none real a, b character (5) s a = 1234 write (s,' (f03)') a ! 大文字を小文字へ変換する function lc( str ) character(*),intent(in) str character(len(str)) lc integer i do i=1, len_trim(str) if( str(ii) >= 'A' and str(ii)
Fortran 組込みデータ型の宣言についての詳細は,「型宣言文」を参照してください。たとえば,INTEGER(4) の宣言は,INTEGER(KIND=4) および INTEGER*4 と同じです。 Visual Fortran のデータ型FORTRAN 77 のソース・コードを Borland C Builder 5 または無償提供されている Borland C Compiler でコンパイルできる C 言語のソースに変換します。 F2C version から移植しましDbleは単精度実数を倍精度実数へ変換 する関数で型変換関数と呼ばれる。Fortranの仕様上、後ろに0がくっつくのではないことに注 意が必要である。逆に倍精度実数を単精度実数に変換する関数は、sngl( )である。 i =int(a1):実数変数を整数型へ変換する。
単純にデータ型の変換だけが目的であれば、ユーザー定義型に 送ってからLSetステートメントで変換するとか、もしくはいったん バイナリファイルとしてPut#してから、あらためて別の変数で Get#するなどすれば変換できます。21 標準の Fortran 95 総称組み込み関数 この節では、Fortran 95 規格で使用される Fortran 95 総称組み込み関数を機能によってグループ分けしています。 ここで示す引数は、 cmplx(Y=B, KIND=M, X=A) のようにキーワード形式で使用される場合、引数キーワードとして使用Documentation Home > Sun Studio 12 Fortran ライブラリ・リファレンス > 第 3 章 FORTRAN 77 および VMS 組み込み関数 > 31 算術関数と数学関数 > 313 三角関数 Sun Studio 12 Fortran ライブラリ・リファレンス
型変換 整数の実数化、実数の整数化 基本例(iの値をaiと実数化、aの値をiaと整数化) ai=DBLE(i) !整数型が実数型に変換されてから割り算が実行され、最終的な結果は実数型になります。 Fortran プログラミングでは常に「型」を意識することが大切です。 型変換の組込み関数 組込み関数 dble(整数型) や real(整数型, kind=8) を使うと、整数型の定数や変数を(例)「123」を「文字型」で入力し、「整数型」で出力する。 PROGRAM HENKAN INTEGER NUM,D1,D2,D3 CHARACTER*10 WORD WORD='123' D1=ICHAR(WORD(11))48 !文字のコード化(0の文字コードは48) D2=ICHAR(WORD(22))48 D3=ICHAR(WORD(33))48 NUM=D1*100D2*10D3 PRINT *,WORD,num STOP END PROGRAM HENKAN
Fortran の構文素、データ型、データの使用方法、およびプログラムの構造など、基本的な項目に ついて説明します。 第2 章 文および手続の詳細 Fortran の各文、組込み手続、およびサービスルーチンの構文規則および使用方法について説明し ます。以下の組込み関数を用いて明示的に型変換を行うことも出来る.例えば, real(1, kind=8) によって整数 1 が倍精度実数の 10_8 に変換される.ここでも2番目の引数を指定し忘れると精度が失われるので注意が必要である.ただし kind= は省略可能であり, real(1, 8) とするだけでも良い.GNU Fortran 7 9226 REAL 9226 REAL 実数型に変換する
character 型変数への代入 character 型変数(文字,文字列)への代入には,他の型と同じように代入演算子 = が利用できます. 代入する文字列リテラルが変数の長さよりも長い場合には,変数の長さを超えた分は打ち切られます.文字列リテラルが短い場合は,文字列の末尾は空白となります. Copied! 型変換で発生する誤差ということなのですね。(あってますかね?) 演算部分とごちゃまぜになっていました。 Dim sng As Single = Dim dbl As Double = Dim convDbl As Double = CDbl(sng) ConsoleWriteLine("sng={0}", sng) ConsoleWriteLine("dbl={0}", dbl)変換は例えば以下のように行う。 例) if ( line(ii) >= 'a' and line(ii)
文字列から実数への変換 print *, "b =", b end program internal_file 出力例: s = "1234" b =Fortran CHARACTER (LEN=*)は仮引数またはPARAMETERにのみ適用されます (1) 再帰サブルーチンを使用します。 私のコードは以下の通りです: PROGRAM PS IMPLICIT NONE CALL print_star (5, '*') CONTAINS RECURSIVE SUBROUTINE print_star (n, star) INTEGER n CHARACTER (LEN = *) star CHARACTER (LEN = *) new_star IF (n > 1) THEN new_star = star // '*' CALL print_star (n 1,実数から文字列への変換 print *, 's = "', s, '"' read (s,*) b !
312 型変換関数 表 3–2 FORTRAN 77 型変換関数 変換型 (以下の型への変換) 引数の数 総称名型変換 i変換 整数の変換 f変換 これが「暗黙の型宣言」といわれるfortranの文法上の規則である。なお、この命名規則についてbakusは『iから始まる6文字に決まったのは、みんな添え字にi、j、kをつかっていたので、(l、m、nを)気前よく増やした。Fortranのデータ型 主なデータ型は 「整数型」はinteger 「実数型」はreal 「複素数型」はcomplex 「文字型」はcharacter;
Fortran 90 では自由形式で記述できますが、FORTRAN 77 までは下記の様な固定形式でした。 1行は最大80カラムです。 1カラム目に C を書くと、その行はコメント行とみなされます。 1~5カラム目に数字を書くと、その数字はその行の行番号とみなされます。第 2 章 Fortran 95 組み込み関数 この章では、f95 コンパイラで認識される組み込み関数名を一覧表示します。 21 標準の Fortran 95 総称組み込み関数 この節では、Fortran 95 規格で使用される Fortran 95 総称組み込み関数を機能によってグループ分けしています。DBLE 要素別処理組込み関数 (総称):倍精度実数型の数値に変換します。 形式 result = DBLE (a) a (入力) 整数型,実数型,または複素数型。 結果 結果の型は倍精度実数型 (REAL(8) または REAL*8) です。1 つのデータ型を別の型に変換する関数は,代入文における暗黙の変換と同じ効果を持ちます。
型の定義は例えば以下のように行います。 type student character (32) name integer age end type student 定義された型を用いるには下記のように宣言をします。 type (student) a 構造型の各成分(ここでは name と age)へのアクセスは % を用いて下記に示されるように記述します。 a%name = "Sato" a%age = 構造型の定数表現は下記の例のように型の名前に続き括弧で括られ• Fortran はコンパイラ型言語 –上記のように, 機械語への変換と実行は分かれている –対義語はインタプリタ型言語 • プログラムを機械語に変換しながら実行する – 変換しながら実行するため, 相対的に実行が遅い • シェルスクリプト, ruby, perl, python,プロセッサーが結果を整数型で表現できない場合,結果は不定になります。 1 つのデータ型を別の型に変換する関数は,代入文における暗黙の変換と同じ効果を持ちます。 結果の値は,a の型と絶対値に依存します。 a が整数型ならば,INT (a) = a です。
231 数値演算 Fortran では、よく使われる数学上の演算や関数に対応するさまざまな関数が用意されている。 主な数値演算の関数には以下のようなものがある。 引数のところには式を書くこともできる。 数値演算の演算規則は、実数型も整数型も通常の
0 件のコメント:
コメントを投稿