diff --git a/src/fix_ave_time.cpp b/src/fix_ave_time.cpp index 481611a3cc..51e201000c 100644 --- a/src/fix_ave_time.cpp +++ b/src/fix_ave_time.cpp @@ -896,11 +896,34 @@ void FixAveTime::invoke_vector(bigint ntimestep) if (fp && me == 0) { if (overwrite) platform::fseek(fp,filepos); - fmt::print(fp,"{} {}\n",ntimestep,nrows); - for (i = 0; i < nrows; i++) { - fprintf(fp,"%d",i+1); - for (j = 0; j < nvalues; j++) fprintf(fp,format,array_total[i][j]/norm); - fprintf(fp,"\n"); + if (yaml_flag) { + if (!yaml_header || overwrite) { + yaml_header = true; + fputs("keywords:\n - Step\n", fp); + bool first = true; + for (auto k : keyword) { + if (first) { + first = false; + fmt::print(fp, " - - '{}'\n", k); + } else fmt::print(fp, " - '{}'\n", k); + } + fputs("data:\n", fp); + } + fmt::print(fp, " {}:\n", ntimestep); + for (i = 0; i < nvalues; i++) { + for (j = 0; j < nrows; j++) { + if (j == 0) fputs(" - - ", fp); + else fputs(" - ", fp); + fmt::print(fp,"{}\n",array_total[j][i]/norm); + } + } + } else { + fmt::print(fp,"{} {}\n",ntimestep,nrows); + for (i = 0; i < nrows; i++) { + fprintf(fp,"%d",i+1); + for (j = 0; j < nvalues; j++) fprintf(fp,format,array_total[i][j]/norm); + fprintf(fp,"\n"); + } } fflush(fp); if (overwrite) {