ファイル名を変更

BOSSが書いた Fortran のプログラムを変更中。パラメータを変更しながら計算し、計算結果を出力するファイルのファイル名にパラメータが使われるようになっている。

        I2=INT(LAMBDA*1.D0)
        WRITE(FNA,'(I4)') I2
        I2=INT(ALPHA*10.D0)
        WRITE(FNA2,'(I3)') I2
C   
      OPEN(1,FILE='DI4'//THNUM//'-'//FNA//FNA2//'.dat',STATUS='UNKNOWN')

このままでは、ファイル名にスペースが入る。計算結果を gnuplot でグラフ化するなど、shell script で使うときに面倒なのである。そこでファイル名のスペースをアンダスコアになるように変更した。やってることは、doループで文字列中のスペースをアンダスコアに置き換えるだけ。プログラムの初期化ルーチンに短いループが入るだけなので、全体の計算時間にはまったく影響しない。

        I2=INT(LAMBDA*1.D0)
        WRITE(FNA,'(I4)') I2
        do j=1,8
          if ( FNA(j:j) .EQ. ' ' ) FNA(j:j)='_'
        end do
        I2=INT(ALPHA*10.D0)
        WRITE(FNA2,'(I3)') I2
        do j=1,5
          if ( FNA2(j:j) .EQ. ' ' ) FNA2(j:j)='_'
        end do
C   
      OPEN(1,FILE='DI4'//THNUM//'-'//FNA//FNA2//'.dat',STATUS='UNKNOWN')