リスタート計算について教えてください。

 市販のプログラムの場合は、ほとんどこの機能がついています。マニュアルを参照ください。

自分でこの機能をプログラムに入れる場合、いくつか方法があります。
ここでは、処理時間を参照しながら指定時間を超過した場合にリスタート計算ができるようにしたプログラムサンプルです。

(sample20.f/soudan/tune>を参照してください)

      t0(1)=second()            :
      ist=1
      ITAR=200
      Limit=9999
      iresin=0
      read(5,*) iresin,limitin         if (limitin.ne.0) Limit=limitin       : limitin=計算時間の上限      
!     ------------------- リスタート入力
      if(iresin.ne.0) then
         read(10) N,M,ITAR,IRESOUT,IRESIN,ADD,Limit,ist
         read(10) A,B,US
         ist=ist+1        : 処理済みの次から再開
         go to 50
      endif
!   -------------------------
        :
  50  DO K=ist,ITAR            :
        t0(2)=second()
        now = t0(2) - t0(1)         !     ------------------ リスタートファイルの出力
        if (now.ge.limit) then                rewind 10                          write(10) N,M,ITAR,IRESOUT,IRESIN,ADD,Limit,K
           write(10) A,B,US
           write(6,*) ' TIME= ',now,' resart out '
           goto 100
        endif
!     ------------------------  : Kが処理済み
      ENDDO

実際に動かしてみます。(sample20)

最初にリスタート無し
~/tune> pgf95 -fastsse  -o sample20 sample20.f wclock.c
~/tune> ./sample20   TIME=     2.520773        719400028.4671783     
FORTRAN STOP

処理時間が2.5秒なので、上限1で動かしてみます。
~/tune> ./sample20   TIME=     1.006387      resart out 
FORTRAN STOP

リスタートファイルを出しているので、次はこれを入力します
~/tune> ./sample20   TIME=     1.006011      resart out 
FORTRAN STOP
リスタートを上書きしているので、もう一度実行します。
:~/tune> ./sample20   TIME=    0.5993278        719400028.4671783     
FORTRAN STOP

リスタート無しと同じ結果を得ることができました。

TSUBAMEの場合は1日が上限ですから、23時間くらいをlimitに指定します。
実際のプログラムはデータ量がもっと多くて複雑です。処理内容を充分確認して機能を入れてください。