ちょっとした省力化

ゼロクリア

配列のゼロクリアをする場合にDoループをいくつも回す方法では書く量が増えて面倒である。
以下の方法を用いるとたったの1行でゼロクリアできる。
配列の例としてTempという4次元配列があるとするとゼロクリアは

Temp(:,:,:,:)=0

のように書くことで行うことができる。
:(コロン)は配列要素の数でそれを ,(コンマ)で区切る

IOSTATを用いた読み込み

IOSTAT構文(Input output status)を用いることによってDOループを簡単の分岐を簡単に設定できる。

fortranプログラム例(抜粋)

OPEN(100,FILE="filelist.txt",STATUS="OLD")
DO
  READ(100,FMT=*,IOSTAT=readstatus) angle, hour, minute
  IF (readstatus<0) THEN
    EXIT
  ELSEIF (readstatus>0) THEN
    WRITE(6,*) "IOSTAT_error=", readstatus
  ENDIF
ENDDO

IOSTATの値は、readstatus(整数)に代入される。
IOSTATの値は、正常な読み込み=0、エラー>0、ファイル終了<0である。
このことからこの例のように、filelist.txtから読み込むものがなくなったらDOループからEXITができる。

最終更新:2010年10月26日 12:32