使っていますポルタン語、ファイル名を指定したい。たとえば、ファイルを生成したプロセッサのプロセッサIDと、ファイルが生成されたタイムステップ変数を含める必要があります。ファイル名は*形式でなければなりません。
Filename_ProcessorID_Timestep。
例えば。 file_00001_001、ここで
file - ファイル名、
00001 - プロセッサID、
001 - 時間ステップ
答え1
プロセスが実行されているコア番号を取得するには、ps
オプションと一緒に使用できますps -o psr -p PID
。
PID
実行中のプロセス(スクリプト)に関する最新情報を取得するには、を使用できます$$
。
希望の形式で時間を取得するには、を使用できます。date
たとえば、timestamp
format 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