From f4a4e6fadeca88d84e21bfaf1d89c73dd6780b1f Mon Sep 17 00:00:00 2001 From: Giovanni Bussi <giovanni.bussi@gmail.com> Date: Wed, 30 Mar 2016 17:04:13 +0200 Subject: [PATCH] Updated gmx patch some files where not up to date --- .../src/gromacs/CMakeLists.txt | 4 +- .../src/gromacs/CMakeLists.txt.preplumed | 4 +- .../src/programs/mdrun/md.cpp | 115 +++++++++--------- .../src/programs/mdrun/md.cpp.preplumed | 115 +++++++++--------- 4 files changed, 114 insertions(+), 124 deletions(-) diff --git a/patches/gromacs-5.1.2.diff/src/gromacs/CMakeLists.txt b/patches/gromacs-5.1.2.diff/src/gromacs/CMakeLists.txt index 3ff4b77ec..ee7174908 100644 --- a/patches/gromacs-5.1.2.diff/src/gromacs/CMakeLists.txt +++ b/patches/gromacs-5.1.2.diff/src/gromacs/CMakeLists.txt @@ -73,7 +73,7 @@ if(GMX_USE_TNG) "TNG >= 1.6.0 not found. " "You can set GMX_EXTERNAL_TNG=OFF to compile TNG.") endif() - include_directories(${TNG_IO_INCLUDE_DIRS}) + include_directories(SYSTEM ${TNG_IO_INCLUDE_DIRS}) endif() if(NOT GMX_EXTERNAL_TNG) include(${CMAKE_SOURCE_DIR}/src/external/tng_io/BuildTNG.cmake) @@ -83,7 +83,7 @@ if(GMX_USE_TNG) if (HAVE_ZLIB) list(APPEND GMX_EXTRA_LIBRARIES ${ZLIB_LIBRARIES}) - include_directories(${ZLIB_INCLUDE_DIRS}) + include_directories(SYSTEM ${ZLIB_INCLUDE_DIRS}) endif() endif() else() diff --git a/patches/gromacs-5.1.2.diff/src/gromacs/CMakeLists.txt.preplumed b/patches/gromacs-5.1.2.diff/src/gromacs/CMakeLists.txt.preplumed index 26d711138..467b0be4c 100644 --- a/patches/gromacs-5.1.2.diff/src/gromacs/CMakeLists.txt.preplumed +++ b/patches/gromacs-5.1.2.diff/src/gromacs/CMakeLists.txt.preplumed @@ -71,7 +71,7 @@ if(GMX_USE_TNG) "TNG >= 1.6.0 not found. " "You can set GMX_EXTERNAL_TNG=OFF to compile TNG.") endif() - include_directories(${TNG_IO_INCLUDE_DIRS}) + include_directories(SYSTEM ${TNG_IO_INCLUDE_DIRS}) endif() if(NOT GMX_EXTERNAL_TNG) include(${CMAKE_SOURCE_DIR}/src/external/tng_io/BuildTNG.cmake) @@ -81,7 +81,7 @@ if(GMX_USE_TNG) if (HAVE_ZLIB) list(APPEND GMX_EXTRA_LIBRARIES ${ZLIB_LIBRARIES}) - include_directories(${ZLIB_INCLUDE_DIRS}) + include_directories(SYSTEM ${ZLIB_INCLUDE_DIRS}) endif() endif() else() diff --git a/patches/gromacs-5.1.2.diff/src/programs/mdrun/md.cpp b/patches/gromacs-5.1.2.diff/src/programs/mdrun/md.cpp index 0007817df..d558a2aa1 100644 --- a/patches/gromacs-5.1.2.diff/src/programs/mdrun/md.cpp +++ b/patches/gromacs-5.1.2.diff/src/programs/mdrun/md.cpp @@ -3,7 +3,7 @@ * * Copyright (c) 1991-2000, University of Groningen, The Netherlands. * Copyright (c) 2001-2004, The GROMACS development team. - * Copyright (c) 2011,2012,2013,2014,2015, by the GROMACS development team, led by + * Copyright (c) 2011,2012,2013,2014,2015,2016, by the GROMACS development team, led by * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl, * and including many others, as listed in the AUTHORS file in the * top-level source directory and at http://www.gromacs.org. @@ -180,7 +180,7 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], gmx_int64_t step, step_rel; double elapsed_time; double t, t0, lam0[efptNR]; - gmx_bool bGStatEveryStep, bGStat, bCalcVir, bCalcEner; + gmx_bool bGStatEveryStep, bGStat, bCalcVir, bCalcEnerStep, bCalcEner; gmx_bool bNS, bNStList, bSimAnn, bStopCM, bRerunMD, bNotLastFrame = FALSE, bFirstStep, bStateFromCP, bStateFromTPX, bInitStep, bLastStep, bBornRadii, bStartingFromCpt; @@ -350,11 +350,6 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], gmx_fatal(FARGS, "Normal Mode analysis is not supported with virtual sites.\nIf you'd like to help with adding support, we have an open discussion at http://redmine.gromacs.org/issues/879\n"); } - if (bRerunMD && fr->cutoff_scheme == ecutsVERLET && ir->opts.ngener > 1 && usingGpu(fr->nbv)) - { - gmx_fatal(FARGS, "The Verlet scheme on GPUs does not support energy groups, so your rerun should probably use a .tpr file without energy groups, or mdrun -nb auto"); - } - if (DEFORM(*ir)) { tMPI_Thread_mutex_lock(&deform_init_box_mutex); @@ -547,6 +542,7 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], { gmx_fatal(FARGS, "nstexpanded should be divisible by nstcalclr"); } + nstfep = gmx_greatest_common_divisor(ir->expandedvals->nstexpanded, nstfep); } if (repl_ex_nst > 0) { @@ -972,7 +968,13 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], bBornRadii = TRUE; } - do_log = do_per_step(step, ir->nstlog) || bFirstStep || bLastStep; + /* do_log triggers energy and virial calculation. Because this leads + * to different code paths, forces can be different. Thus for exact + * continuation we should avoid extra log output. + * Note that the || bLastStep can result in non-exact continuation + * beyond the last step. But we don't consider that to be an issue. + */ + do_log = do_per_step(step, ir->nstlog) || (bFirstStep && !bStateFromCP) || bLastStep; do_verbose = bVerbose && (step % stepout == 0 || bFirstStep || bLastStep); @@ -1066,21 +1068,18 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], but the virial needs to be calculated on both the current step and the 'next' step. Future reorganization may be able to get rid of one of the bCalcVir=TRUE steps. */ - bCalcEner = do_per_step(step-1, ir->nstcalcenergy); - bCalcVir = bCalcEner || + /* TODO: This is probably not what we want, we will write to energy file one step after nstcalcenergy steps. */ + bCalcEnerStep = do_per_step(step - 1, ir->nstcalcenergy); + bCalcVir = bCalcEnerStep || (ir->epc != epcNO && (do_per_step(step, ir->nstpcouple) || do_per_step(step-1, ir->nstpcouple))); } else { - bCalcEner = do_per_step(step, ir->nstcalcenergy); - bCalcVir = bCalcEner || + bCalcEnerStep = do_per_step(step, ir->nstcalcenergy); + bCalcVir = bCalcEnerStep || (ir->epc != epcNO && do_per_step(step, ir->nstpcouple)); } - - /* Do we need global communication ? */ - bGStat = (bCalcVir || bCalcEner || bStopCM || - do_per_step(step, nstglobalcomm) || - (bVV && IR_NVT_TROTTER(ir) && do_per_step(step-1, nstglobalcomm))); + bCalcEner = bCalcEnerStep; do_ene = (do_per_step(step, ir->nstenergy) || bLastStep); @@ -1088,9 +1087,13 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], { bCalcVir = TRUE; bCalcEner = TRUE; - bGStat = TRUE; } + /* Do we need global communication ? */ + bGStat = (bCalcVir || bCalcEner || bStopCM || + do_per_step(step, nstglobalcomm) || + (bVV && IR_NVT_TROTTER(ir) && do_per_step(step-1, nstglobalcomm))); + /* these CGLO_ options remain the same throughout the iteration */ cglo_flags = ((bRerunMD ? CGLO_RERUNMD : 0) | (bGStat ? CGLO_GSTAT : 0) @@ -1270,6 +1273,7 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], | (bTemp ? CGLO_TEMPERATURE : 0) | (bPres ? CGLO_PRESSURE : 0) | (bPres ? CGLO_CONSTRAINT : 0) + | (bStopCM ? CGLO_STOPCM : 0) | CGLO_SCALEEKIN ); /* explanation of above: @@ -1372,8 +1376,8 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], /* Check if IMD step and do IMD communication, if bIMD is TRUE. */ bIMDstep = do_IMD(ir->bIMD, step, cr, bNS, state->box, state->x, ir, t, wcycle); - /* kludge -- virial is lost with restart for NPT control. Must restart */ - if (bStartingFromCpt && bVV) + /* kludge -- virial is lost with restart for MTTK NPT control. Must reload (saved earlier). */ + if (bStartingFromCpt && bTrotter) { copy_mat(state->svir_prev, shake_vir); copy_mat(state->fvir_prev, force_vir); @@ -1448,26 +1452,21 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], gs.sig[eglsCHKPT] = 1; } - /* at the start of step, randomize or scale the velocities (trotter done elsewhere) */ - if (EI_VV(ir->eI)) + /* at the start of step, randomize or scale the velocities ((if vv. Restriction of Andersen controlled + in preprocessing */ + + if (ETC_ANDERSEN(ir->etc)) /* keep this outside of update_tcouple because of the extra info required to pass */ { - if (!bInitStep) - { - update_tcouple(step, ir, state, ekind, &MassQ, mdatoms); - } - if (ETC_ANDERSEN(ir->etc)) /* keep this outside of update_tcouple because of the extra info required to pass */ + gmx_bool bIfRandomize; + bIfRandomize = update_randomize_velocities(ir, step, cr, mdatoms, state, upd, constr); + /* if we have constraints, we have to remove the kinetic energy parallel to the bonds */ + if (constr && bIfRandomize) { - gmx_bool bIfRandomize; - bIfRandomize = update_randomize_velocities(ir, step, cr, mdatoms, state, upd, constr); - /* if we have constraints, we have to remove the kinetic energy parallel to the bonds */ - if (constr && bIfRandomize) - { - update_constraints(fplog, step, NULL, ir, mdatoms, - state, fr->bMolPBC, graph, f, - &top->idef, tmp_vir, - cr, nrnb, wcycle, upd, constr, - TRUE, bCalcVir); - } + update_constraints(fplog, step, NULL, ir, mdatoms, + state, fr->bMolPBC, graph, f, + &top->idef, tmp_vir, + cr, nrnb, wcycle, upd, constr, + TRUE, bCalcVir); } } /* ######### START SECOND UPDATE STEP ################# */ @@ -1697,36 +1696,32 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], /* Output stuff */ if (MASTER(cr)) { - gmx_bool do_dr, do_or; - if (fplog && do_log && bDoExpanded) { /* only needed if doing expanded ensemble */ PrintFreeEnergyInfoToFile(fplog, ir->fepvals, ir->expandedvals, ir->bSimTemp ? ir->simtempvals : NULL, &state_global->dfhist, state->fep_state, ir->nstlog, step); } - if (!(bStartingFromCpt && (EI_VV(ir->eI)))) + if (bCalcEner) { - if (bCalcEner) - { - upd_mdebin(mdebin, bDoDHDL, TRUE, - t, mdatoms->tmass, enerd, state, - ir->fepvals, ir->expandedvals, lastbox, - shake_vir, force_vir, total_vir, pres, - ekind, mu_tot, constr); - } - else - { - upd_mdebin_step(mdebin); - } + upd_mdebin(mdebin, bDoDHDL, bCalcEnerStep, + t, mdatoms->tmass, enerd, state, + ir->fepvals, ir->expandedvals, lastbox, + shake_vir, force_vir, total_vir, pres, + ekind, mu_tot, constr); + } + else + { + upd_mdebin_step(mdebin); + } - do_dr = do_per_step(step, ir->nstdisreout); - do_or = do_per_step(step, ir->nstorireout); + gmx_bool do_dr = do_per_step(step, ir->nstdisreout); + gmx_bool do_or = do_per_step(step, ir->nstorireout); + + print_ebin(mdoutf_get_fp_ene(outf), do_ene, do_dr, do_or, do_log ? fplog : NULL, + step, t, + eprNORMAL, bCompact, mdebin, fcd, groups, &(ir->opts)); - print_ebin(mdoutf_get_fp_ene(outf), do_ene, do_dr, do_or, do_log ? fplog : NULL, - step, t, - eprNORMAL, bCompact, mdebin, fcd, groups, &(ir->opts)); - } if (ir->bPull) { pull_print_output(ir->pull_work, step, t); @@ -1864,7 +1859,7 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], * until after load balancing completes, * e.g. https://gerrit.gromacs.org/#/c/4964/2 */ gmx_fatal(FARGS, "PME tuning was still active when attempting to " - "reset mdrun counters at step " GMX_PRId64 ". Try " + "reset mdrun counters at step %" GMX_PRId64 ". Try " "resetting counters later in the run, e.g. with gmx " "mdrun -resetstep.", step); } diff --git a/patches/gromacs-5.1.2.diff/src/programs/mdrun/md.cpp.preplumed b/patches/gromacs-5.1.2.diff/src/programs/mdrun/md.cpp.preplumed index 4f33d897e..ce25ac7e9 100644 --- a/patches/gromacs-5.1.2.diff/src/programs/mdrun/md.cpp.preplumed +++ b/patches/gromacs-5.1.2.diff/src/programs/mdrun/md.cpp.preplumed @@ -3,7 +3,7 @@ * * Copyright (c) 1991-2000, University of Groningen, The Netherlands. * Copyright (c) 2001-2004, The GROMACS development team. - * Copyright (c) 2011,2012,2013,2014,2015, by the GROMACS development team, led by + * Copyright (c) 2011,2012,2013,2014,2015,2016, by the GROMACS development team, led by * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl, * and including many others, as listed in the AUTHORS file in the * top-level source directory and at http://www.gromacs.org. @@ -174,7 +174,7 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], gmx_int64_t step, step_rel; double elapsed_time; double t, t0, lam0[efptNR]; - gmx_bool bGStatEveryStep, bGStat, bCalcVir, bCalcEner; + gmx_bool bGStatEveryStep, bGStat, bCalcVir, bCalcEnerStep, bCalcEner; gmx_bool bNS, bNStList, bSimAnn, bStopCM, bRerunMD, bNotLastFrame = FALSE, bFirstStep, bStateFromCP, bStateFromTPX, bInitStep, bLastStep, bBornRadii, bStartingFromCpt; @@ -338,11 +338,6 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], gmx_fatal(FARGS, "Normal Mode analysis is not supported with virtual sites.\nIf you'd like to help with adding support, we have an open discussion at http://redmine.gromacs.org/issues/879\n"); } - if (bRerunMD && fr->cutoff_scheme == ecutsVERLET && ir->opts.ngener > 1 && usingGpu(fr->nbv)) - { - gmx_fatal(FARGS, "The Verlet scheme on GPUs does not support energy groups, so your rerun should probably use a .tpr file without energy groups, or mdrun -nb auto"); - } - if (DEFORM(*ir)) { tMPI_Thread_mutex_lock(&deform_init_box_mutex); @@ -535,6 +530,7 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], { gmx_fatal(FARGS, "nstexpanded should be divisible by nstcalclr"); } + nstfep = gmx_greatest_common_divisor(ir->expandedvals->nstexpanded, nstfep); } if (repl_ex_nst > 0) { @@ -914,7 +910,13 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], bBornRadii = TRUE; } - do_log = do_per_step(step, ir->nstlog) || bFirstStep || bLastStep; + /* do_log triggers energy and virial calculation. Because this leads + * to different code paths, forces can be different. Thus for exact + * continuation we should avoid extra log output. + * Note that the || bLastStep can result in non-exact continuation + * beyond the last step. But we don't consider that to be an issue. + */ + do_log = do_per_step(step, ir->nstlog) || (bFirstStep && !bStateFromCP) || bLastStep; do_verbose = bVerbose && (step % stepout == 0 || bFirstStep || bLastStep); @@ -1001,21 +1003,18 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], but the virial needs to be calculated on both the current step and the 'next' step. Future reorganization may be able to get rid of one of the bCalcVir=TRUE steps. */ - bCalcEner = do_per_step(step-1, ir->nstcalcenergy); - bCalcVir = bCalcEner || + /* TODO: This is probably not what we want, we will write to energy file one step after nstcalcenergy steps. */ + bCalcEnerStep = do_per_step(step - 1, ir->nstcalcenergy); + bCalcVir = bCalcEnerStep || (ir->epc != epcNO && (do_per_step(step, ir->nstpcouple) || do_per_step(step-1, ir->nstpcouple))); } else { - bCalcEner = do_per_step(step, ir->nstcalcenergy); - bCalcVir = bCalcEner || + bCalcEnerStep = do_per_step(step, ir->nstcalcenergy); + bCalcVir = bCalcEnerStep || (ir->epc != epcNO && do_per_step(step, ir->nstpcouple)); } - - /* Do we need global communication ? */ - bGStat = (bCalcVir || bCalcEner || bStopCM || - do_per_step(step, nstglobalcomm) || - (bVV && IR_NVT_TROTTER(ir) && do_per_step(step-1, nstglobalcomm))); + bCalcEner = bCalcEnerStep; do_ene = (do_per_step(step, ir->nstenergy) || bLastStep); @@ -1023,9 +1022,13 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], { bCalcVir = TRUE; bCalcEner = TRUE; - bGStat = TRUE; } + /* Do we need global communication ? */ + bGStat = (bCalcVir || bCalcEner || bStopCM || + do_per_step(step, nstglobalcomm) || + (bVV && IR_NVT_TROTTER(ir) && do_per_step(step-1, nstglobalcomm))); + /* these CGLO_ options remain the same throughout the iteration */ cglo_flags = ((bRerunMD ? CGLO_RERUNMD : 0) | (bGStat ? CGLO_GSTAT : 0) @@ -1172,6 +1175,7 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], | (bTemp ? CGLO_TEMPERATURE : 0) | (bPres ? CGLO_PRESSURE : 0) | (bPres ? CGLO_CONSTRAINT : 0) + | (bStopCM ? CGLO_STOPCM : 0) | CGLO_SCALEEKIN ); /* explanation of above: @@ -1274,8 +1278,8 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], /* Check if IMD step and do IMD communication, if bIMD is TRUE. */ bIMDstep = do_IMD(ir->bIMD, step, cr, bNS, state->box, state->x, ir, t, wcycle); - /* kludge -- virial is lost with restart for NPT control. Must restart */ - if (bStartingFromCpt && bVV) + /* kludge -- virial is lost with restart for MTTK NPT control. Must reload (saved earlier). */ + if (bStartingFromCpt && bTrotter) { copy_mat(state->svir_prev, shake_vir); copy_mat(state->fvir_prev, force_vir); @@ -1350,26 +1354,21 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], gs.sig[eglsCHKPT] = 1; } - /* at the start of step, randomize or scale the velocities (trotter done elsewhere) */ - if (EI_VV(ir->eI)) + /* at the start of step, randomize or scale the velocities ((if vv. Restriction of Andersen controlled + in preprocessing */ + + if (ETC_ANDERSEN(ir->etc)) /* keep this outside of update_tcouple because of the extra info required to pass */ { - if (!bInitStep) - { - update_tcouple(step, ir, state, ekind, &MassQ, mdatoms); - } - if (ETC_ANDERSEN(ir->etc)) /* keep this outside of update_tcouple because of the extra info required to pass */ + gmx_bool bIfRandomize; + bIfRandomize = update_randomize_velocities(ir, step, cr, mdatoms, state, upd, constr); + /* if we have constraints, we have to remove the kinetic energy parallel to the bonds */ + if (constr && bIfRandomize) { - gmx_bool bIfRandomize; - bIfRandomize = update_randomize_velocities(ir, step, cr, mdatoms, state, upd, constr); - /* if we have constraints, we have to remove the kinetic energy parallel to the bonds */ - if (constr && bIfRandomize) - { - update_constraints(fplog, step, NULL, ir, mdatoms, - state, fr->bMolPBC, graph, f, - &top->idef, tmp_vir, - cr, nrnb, wcycle, upd, constr, - TRUE, bCalcVir); - } + update_constraints(fplog, step, NULL, ir, mdatoms, + state, fr->bMolPBC, graph, f, + &top->idef, tmp_vir, + cr, nrnb, wcycle, upd, constr, + TRUE, bCalcVir); } } /* ######### START SECOND UPDATE STEP ################# */ @@ -1599,36 +1598,32 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], /* Output stuff */ if (MASTER(cr)) { - gmx_bool do_dr, do_or; - if (fplog && do_log && bDoExpanded) { /* only needed if doing expanded ensemble */ PrintFreeEnergyInfoToFile(fplog, ir->fepvals, ir->expandedvals, ir->bSimTemp ? ir->simtempvals : NULL, &state_global->dfhist, state->fep_state, ir->nstlog, step); } - if (!(bStartingFromCpt && (EI_VV(ir->eI)))) + if (bCalcEner) { - if (bCalcEner) - { - upd_mdebin(mdebin, bDoDHDL, TRUE, - t, mdatoms->tmass, enerd, state, - ir->fepvals, ir->expandedvals, lastbox, - shake_vir, force_vir, total_vir, pres, - ekind, mu_tot, constr); - } - else - { - upd_mdebin_step(mdebin); - } + upd_mdebin(mdebin, bDoDHDL, bCalcEnerStep, + t, mdatoms->tmass, enerd, state, + ir->fepvals, ir->expandedvals, lastbox, + shake_vir, force_vir, total_vir, pres, + ekind, mu_tot, constr); + } + else + { + upd_mdebin_step(mdebin); + } - do_dr = do_per_step(step, ir->nstdisreout); - do_or = do_per_step(step, ir->nstorireout); + gmx_bool do_dr = do_per_step(step, ir->nstdisreout); + gmx_bool do_or = do_per_step(step, ir->nstorireout); + + print_ebin(mdoutf_get_fp_ene(outf), do_ene, do_dr, do_or, do_log ? fplog : NULL, + step, t, + eprNORMAL, bCompact, mdebin, fcd, groups, &(ir->opts)); - print_ebin(mdoutf_get_fp_ene(outf), do_ene, do_dr, do_or, do_log ? fplog : NULL, - step, t, - eprNORMAL, bCompact, mdebin, fcd, groups, &(ir->opts)); - } if (ir->bPull) { pull_print_output(ir->pull_work, step, t); @@ -1766,7 +1761,7 @@ double do_md(FILE *fplog, t_commrec *cr, int nfile, const t_filenm fnm[], * until after load balancing completes, * e.g. https://gerrit.gromacs.org/#/c/4964/2 */ gmx_fatal(FARGS, "PME tuning was still active when attempting to " - "reset mdrun counters at step " GMX_PRId64 ". Try " + "reset mdrun counters at step %" GMX_PRId64 ". Try " "resetting counters later in the run, e.g. with gmx " "mdrun -resetstep.", step); } -- GitLab