perf: 降低 JSON 输出精度 15→8 位 + 添加 I/O 阶段提示

- C/C++/Fortran 引擎:%.15g/setprecision(15)/g0 → %.8g/g0.8
- 添加 "正在写入轨迹数据…" 提示,说明 100% 后的等待原因
- trajectory.txt 文件从 419MB → 407MB(仍有优化空间)
This commit is contained in:
2026-06-12 05:53:27 +08:00
parent 52505e9aff
commit c158c74609
4 changed files with 15 additions and 11 deletions
+3 -2
View File
@@ -166,6 +166,7 @@ program dynamics_f90
end do
! 输出轨迹
write(*, '("[Fortran-engine] 正在写入轨迹数据…")')
call write_json(output_dir, traj_x, traj_y, traj_z, traj_vx, traj_vy, traj_vz, &
record_steps, n_atoms, atom_ids, masses, &
NT, DT, NSTEP, warmup_steps, method, G, B, &
@@ -1071,7 +1072,7 @@ subroutine json_arr(u, vals, n, has_next, indent)
write(u, '(a)', advance='no') indent // '['
do i = 1, n
if (i > 1) write(u, '(a)', advance='no') ','
write(u, '(g0)', advance='no') vals(i)
write(u, '(g0.8)', advance='no') vals(i)
end do
if (has_next) then
write(u, '(a)') '],'
@@ -1108,7 +1109,7 @@ subroutine write_dbl_arr(u, name, arr, n, has_next)
write(u, '(a)', advance='no') ' "' // trim(name) // '": ['
do i = 1, n
if (i > 1) write(u, '(a)', advance='no') ','
write(u, '(g0)', advance='no') arr(i)
write(u, '(g0.8)', advance='no') arr(i)
end do
if (has_next) then
write(u, '(a)') '],'