我在用福尔坦语言,我想给出文件名,例如它应该包括创建该文件的处理器的处理器 ID 以及创建该文件时的时间步变量。由于文件名应采用以下形式*
文件名_处理器ID_时间步长。
例如。 file_00001_001,其中
file -- 文件名,
00001 -- 处理器 ID,
001 -- 时间步长
答案1
要获取进程在其中运行的核心编号,您可以ps
与 option 一起使用ps -o psr -p PID
。
PID
要获取正在运行的进程(脚本)的当前信息,您可以使用$$
.
要获取您想要的任何格式的时间,您可以使用date
,例如timestamp
使用 format use获取时间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