[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 04/11 21:43 / Filesize : 404 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

くだすれFORTRAN(超初心者用)



200 名前:199 [2006/02/24(金) 12:53:08 ]
参考 (tabが消えるので7カラム目までの空白は脳内で補完してください)
*FORTRAN66時代にありがちなプログラム
REAL A(20, 20), B(200)
CALL ZERO(200, B)
CALL ZERO(400, A)
CALL ZERO(20, A(1, 2))
CALL ZERO(20, A(1, 3))
CALL ZERO(20, A(1, 4))
END
SUBROUTINE ZERO(N, X)
REAL X(10)
DO 10 I = 1, N
X(I) = 0.0
10 CONTINUE
END

これは昔よく使われたやり方。サブルーチンに渡されるのは配列の先頭要素の
アドレスだけなので、次元が整合していなくても問題はない。また配列の途中
だけを渡して部分的に利用しても問題はない。(FORTRANの配列はCとは
逆順で列方向に対して連続的)

CALL ZERO(200, B) これは素直な呼び方。
CALL ZERO(400, A) これは2次元配列を1次元的に還元して渡している。
CALL ZERO(20, A(1, 2)) これは2次元配列の2列目だけを渡している。
CALL ZERO(20, A(1, 3)) この呼び方は列ベクトルの使用法として良く使われる。
CALL ZERO(20, A(1, 4)) 同様に3,4列目を渡している。

*FORTRAN77時代
SUBROUTINE ZERO(N, X)
REAL X(N)
または
REAL X(*)






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<404KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef