Article View: fj.lang.fortran
Article #136Re: DEGITAL UNIX の...
From: Takao Kotani
Date: Mon, 16 Mar 1998 00:00
Date: Mon, 16 Mar 1998 00:00
63 lines
3143 bytes
3143 bytes
HIRASHIKI Yasuhisa wrote:
> 浅学なので曖昧な書き方になって申し訳ありませんが、
> > real(8):: hmat(nbloch)
> という定義に危うさを感じます。
> 私も主としてDigital Fortranしか使っていないので、他の処理系では
> よく分かりませんが、どうも仮引数を配列サイズに使った変数の宣言は
> うまくいかないことがあるようです。
>
平敷さま,
どうも,replyありがとうございました.
平敷さんの言われるようにやると,動的確保できません.
ぼくとしては,includeを使うとか,
parameterをprogramの途中に埋め込むとかは,極力避けたいんです.
makefileのcareに神経を使わないかんし...
f90においては,ぼくの書いたサンプルは正しい書式だと思います.
(かなり大きなprogramをcareしてますがちゃんと動いてます)
--------------------------------------
蛇足ですが,ぼくの思うプログラム記述の原則を書いておきます.
(まとまり悪いです)意見等聞かせてください.
(1)変数は可能なかぎり,使いまわしをしない(一回書いたものを書き換えない).
(2)可能なかぎりdo loopの数はへらす.
ベクトル表記のできるものは,できるだけそれを用いる.
(3)本質的な必要もないのにitterativeな構造は書かないこと(無意味なメモリ節
約はするな). pararellなものはpararellなように書く.
(4)itterativeな構造をもつdo loopはできるだけ小さい長さにする
(付随する量は後から計算すればいい).
(5)変数の依存関係(なにからなにを作るか)ができるだけ明瞭になるようにする
事.
(6)subroutineのi/oを明確にする.入出力を兼ねる引数は,できるだけ避ける.
(7)不要な媒介変数(work的エリア)はできるだけ用いない.
(8)ルーチンが長くなったからと言って細かいルーチンへわけるのは,意味がな
い.
(9)上位ルーチンから渡すような変数は,かならず整合配列で渡すべき.
サイズとarrayを同時に渡すべき.
(10)ぼくはglobal変数を使いたいときなんかは,たとえば,
logical function vefin()
vefin=.true.
end
などというような,functionを作って用いてます.これならlink事にbindされま
す.
(引用事には必ず()を忘れない事)
(11) commonは用いるべきでない.
(f77のときは一次元の巨大なstackとして利用していたが)
(12) includeやmoduleは用いるべきでない.f90のうちで,有効なのは,
「動的memory割付,ベクトル表記,sumなんかの関数」だけである.
Technical Details
Message-ID:
<350D9E2B.7889@phys.wani.osaka-u.ac.jp>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<3509C65A.4C87@phys.wani.osaka-u.ac.jp> <6ectn3$ivd$1@jwasun1.jwa.go.jp>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: 167b2b,72653753b4a23541 X-Google-Attributes: gid167b2b,public From: Takao Kotani <kotani@phys.wani.osaka-u.ac.jp> Subject: Re: DEGITAL UNIX の... Date: 1998/03/16 Message-ID: <350D9E2B.7889@phys.wani.osaka-u.ac.jp> X-Deja-AN: 334443974 Content-Transfer-Encoding: 7bit References: <3509C65A.4C87@phys.wani.osaka-u.ac.jp> <6ectn3$ivd$1@jwasun1.jwa.go.jp> Mime-Version: 1.0 Reply-To: kotani@phys.wani.osaka-u.ac.jp Content-Type: text/plain; charset=iso-2022-jp Organization: Department of Physics Newsgroups: fj.lang.fortran