ユーザ用ツール

サイト用ツール


fortran:tips

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
fortran:tips [2015/03/03 12:44]
saito
fortran:tips [2017/10/03 12:55] (現在)
ライン 3: ライン 3:
   * [[http://​www.owlnet.rice.edu/​~ceng303/​manuals/​fortran/​]] が役に立ちそう.   * [[http://​www.owlnet.rice.edu/​~ceng303/​manuals/​fortran/​]] が役に立ちそう.
   *    * 
 +
 +===== よくある間違い =====
 +コーディングにおいてよくある間違いをまとめる.
 +
 +==== べき乗の順序 ====
 +<​nowiki>​計算の優先順位は
 ++- < */ < **
 +である.</​nowiki>​
 +<code fortran>
 +print*,​-1**0
 +</​code>​
 +<​nowiki>​
 +これは-(1**0)と解釈されるので,出力結果は−1.
 +-1に対してべき乗する場合は,(-1)**0.
 +</​nowiki>​
 +
 +==== 論理演算の順序 ====
 +<​nowiki>​
 +論理演算子の優先順位は
 +.eqv., .neqv. < .or. < .and. < .not.
 +である.
 +</​nowiki>​
 +<code fortran>
 +logical :: a=.false.
 +num :: i=1
 +if(a.eqv..false..or.i==1) then
 +print*,'​if'​
 +else
 +print*,'​else'​
 +end if
 +</​code><​nowiki>​
 +これは,a.eqv.(.false..or.i==1) と解釈される.
 +(.false..or.i==1) はtrueなので,上のコードはelseを吐き出す.
 +前後の条件をorでつなぐ場合は,
 +if((a.eqv..false.).or.(i==1)) としてカッコで順序を明示する.
 +</​nowiki>​
 +
 +ちなみに ​  
 +  * (.ture..or..false.)は.true.(どちらかが真なのでtrue)
 +  * (.ture..and..false.)は.false.(どちらも真でないのでfalse)
 +になる.
 ===== allocated ===== ===== allocated =====
 すでにallocateしたかどうかわからない時は,allocatedで確かめてからallocateする. すでにallocateしたかどうかわからない時は,allocatedで確かめてからallocateする.
ライン 70: ライン 111:
  
 ===== makefileでコンパイル その2===== ===== makefileでコンパイル その2=====
 +
 +以下の記事は古い.[[fortran:​makefile|別のページ]]を参照せよ.
 +
 moduleファイルを含む場合,依存関係をはっきりさせる必要がある. moduleファイルを含む場合,依存関係をはっきりさせる必要がある.
 依存関係を変えるたびにmakeファイルを書き変えるのは面倒なので,依存関係を見てくれる 依存関係を変えるたびにmakeファイルを書き変えるのは面倒なので,依存関係を見てくれる
fortran/tips.1425354244.txt.gz · 最終更新: 2017/10/03 12:55 (外部編集)