프로세서 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

관련 정보