나는 사용하고있다포르탄어, 파일 이름을 지정하고 싶습니다. 예를 들어 파일을 생성한 프로세서의 프로세서 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