プロセッサIDと時間ステップを含むファイルに名前を付けるようにファイル名に含める必要があります。

プロセッサIDと時間ステップを含むファイルに名前を付けるようにファイル名に含める必要があります。

使っていますポルタン語、ファイル名を指定したい。たとえば、ファイルを生成したプロセッサのプロセッサIDと、ファイルが生成されたタイムステップ変数を含める必要があります。ファイル名は*形式でなければなりません。

Filename_ProcessorID_Timestep

例えば。 file_00001_001、ここで
file - ファイル名、
00001 - プロセッサID、
001 - 時間ステップ

答え1

プロセスが実行されているコア番号を取得するには、psオプションと一緒に使用できますps -o psr -p PID

PID実行中のプロセス(スクリプト)に関する最新情報を取得するには、を使用できます$$

希望の形式で時間を取得するには、を使用できます。dateたとえば、timestampformat use to get the timeを使用できますdate +"%s"

たとえば、

filename="file"
script_PID="$$"
core_id="$(ps -o psr -p $script_PID  | tail -n1)"
timestamp="$(date +%s)"
touch "$filename_$core_id_$timestamp"

結果:

file_3_1485412526

答え2

1)FortranからプロセスIDを取得するには、getpid関数を使用できます。 https://gcc.gnu.org/onlinedocs/gfortran/GETPID.html

2)計算されたファイル名を形式の文字列として書き込みます。

例は次のとおりです。

program test
  implicit none
  character*(40) :: filename
  integer :: pid, getpid, timestep
  pid = getpid()
  timestep=1

  write(filename,'(''file_'',I5.5,''_'',I3.3)') pid, timestep

  open(unit=10,file=trim(filename),STATUS='UNKNOWN')
  write(10,*) 'hello'
  close(10)

end

関連情報