ユーザ用ツール

サイト用ツール


fortran:tips

差分

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

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

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
fortran:tips [2016/06/02 17:01]
saito [makefileでコンパイル その2]
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する.
fortran/tips.1464854467.txt.gz · 最終更新: 2017/10/03 12:55 (外部編集)