/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2008,2009,2010,2011,2012,2013,2014,2015,2016, by the GROMACS development team, led by
+ * Copyright (c) 2008,2009,2010,2011,2012,2013,2014,2015,2016,2017, 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.
case StatePart::freeEnergyHistory: return edfh_names[ecpt];
}
- return NULL;
+ return nullptr;
}
static void cp_warning(FILE *fp)
default: GMX_RELEASE_ASSERT(false, "XDR data type not implemented");
}
- return NULL;
+ return nullptr;
}
/*! \brief Lists or only reads an xdr vector from checkpoint file
std::vector<char> data(nf*elemSize);
res = xdr_vector(xd, data.data(), nf, elemSize, xdrProc(xdrType));
- if (list != NULL)
+ if (list != nullptr)
{
switch (xdrType)
{
T **v, std::vector<T> *vector,
FILE *list, CptElementType cptElementType)
{
- GMX_RELEASE_ASSERT(list != NULL || (v != NULL && vector == NULL) || (v == NULL && vector != NULL), "Without list, we should have exactly one of v and vector != NULL");
+ GMX_RELEASE_ASSERT(list != nullptr || (v != nullptr && vector == nullptr) || (v == nullptr && vector != nullptr), "Without list, we should have exactly one of v and vector != NULL");
bool_t res = 0;
int numElemInTheFile;
- if (list == NULL)
+ if (list == nullptr)
{
if (nval >= 0)
{
- GMX_RELEASE_ASSERT(nptr == NULL, "With nval>=0 we should have nptr==NULL");
+ GMX_RELEASE_ASSERT(nptr == nullptr, "With nval>=0 we should have nptr==NULL");
numElemInTheFile = nval;
}
else
{
- if (v != NULL)
+ if (v != nullptr)
{
- GMX_RELEASE_ASSERT(nptr != NULL, "With nval<0 we should have nptr!=NULL");
+ GMX_RELEASE_ASSERT(nptr != nullptr, "With nval<0 we should have nptr!=NULL");
// cppcheck-suppress nullPointer
numElemInTheFile = *nptr;
}
return -1;
}
- if (list == NULL && (sflags & (1 << ecpt)))
+ if (list == nullptr && (sflags & (1 << ecpt)))
{
if (nval >= 0)
{
gmx_fatal(FARGS, "Count mismatch for state entry %s, code count is %d, file count is %d\n", entryName(part, ecpt), nval, numElemInTheFile);
}
}
- else if (nptr != NULL)
+ else if (nptr != nullptr)
{
*nptr = numElemInTheFile;
}
}
T *vp;
- if (v != NULL)
+ if (v != nullptr)
{
- if (*v == NULL)
+ if (*v == nullptr)
{
snew(*v, numElemInTheFile);
}
static int doVector(XDR *xd, StatePart part, int ecpt, int sflags,
std::vector<T> *vector, FILE *list)
{
- return doVectorLow<T>(xd, part, ecpt, sflags, -1, NULL, NULL, vector, list, CptElementType::real);
+ return doVectorLow<T>(xd, part, ecpt, sflags, -1, nullptr, nullptr, vector, list, CptElementType::real);
}
//! \brief Read/Write an std::vector, on read checks the number of elements matches \p numElements
static int doVector(XDR *xd, StatePart part, int ecpt, int sflags,
int numElements, std::vector<T> *vector, FILE *list)
{
- return doVectorLow<T>(xd, part, ecpt, sflags, numElements, NULL, NULL, vector, list, CptElementType::real);
+ return doVectorLow<T>(xd, part, ecpt, sflags, numElements, nullptr, nullptr, vector, list, CptElementType::real);
}
//! \brief Read/Write a PaddedRVecVector, on read checks the number of elements matches \p numElements
{
rvec *v_rvec;
- if (list == NULL && (sflags & (1 << ecpt)))
+ if (list == nullptr && (sflags & (1 << ecpt)))
{
/* We resize the vector here to avoid pointer reallocation in
* do_cpte_reals_low. Note the we allocate 1 element extra for SIMD.
}
else
{
- v_rvec = NULL;
+ v_rvec = nullptr;
}
return doVectorLow<real>(xd, part, ecpt, sflags,
- numElements*DIM, NULL, (real **)(&v_rvec), NULL,
+ numElements*DIM, nullptr, (real **)(&v_rvec), nullptr,
list, CptElementType::real3);
}
static int do_cpte_reals(XDR *xd, StatePart part, int ecpt, int sflags,
int n, real **v, FILE *list)
{
- return doVectorLow<real>(xd, part, ecpt, sflags, n, NULL, v, NULL, list, CptElementType::real);
+ return doVectorLow<real>(xd, part, ecpt, sflags, n, nullptr, v, nullptr, list, CptElementType::real);
}
/* This function does the same as do_cpte_reals,
static int do_cpte_n_reals(XDR *xd, StatePart part, int ecpt, int sflags,
int *n, real **v, FILE *list)
{
- return doVectorLow<real>(xd, part, ecpt, sflags, -1, n, v, NULL, list, CptElementType::real);
+ return doVectorLow<real>(xd, part, ecpt, sflags, -1, n, v, nullptr, list, CptElementType::real);
}
static int do_cpte_real(XDR *xd, StatePart part, int ecpt, int sflags,
real *r, FILE *list)
{
- return doVectorLow<real>(xd, part, ecpt, sflags, 1, NULL, &r, NULL, list, CptElementType::real);
+ return doVectorLow<real>(xd, part, ecpt, sflags, 1, nullptr, &r, nullptr, list, CptElementType::real);
}
static int do_cpte_ints(XDR *xd, StatePart part, int ecpt, int sflags,
int n, int **v, FILE *list)
{
- return doVectorLow<int>(xd, part, ecpt, sflags, n, NULL, v, NULL, list, CptElementType::integer);
+ return doVectorLow<int>(xd, part, ecpt, sflags, n, nullptr, v, nullptr, list, CptElementType::integer);
}
static int do_cpte_int(XDR *xd, StatePart part, int ecpt, int sflags,
static int do_cpte_doubles(XDR *xd, StatePart part, int ecpt, int sflags,
int n, double **v, FILE *list)
{
- return doVectorLow<double>(xd, part, ecpt, sflags, n, NULL, v, NULL, list, CptElementType::real);
+ return doVectorLow<double>(xd, part, ecpt, sflags, n, nullptr, v, nullptr, list, CptElementType::real);
}
static int do_cpte_double(XDR *xd, StatePart part, int ecpt, int sflags,
vr = &(v[0][0]);
ret = doVectorLow<real>(xd, part, ecpt, sflags,
- DIM*DIM, NULL, &vr, NULL, NULL, CptElementType::matrix3x3);
+ DIM*DIM, nullptr, &vr, nullptr, nullptr, CptElementType::matrix3x3);
if (list && ret == 0)
{
char name[CPTSTRLEN];
ret = 0;
- if (v == NULL)
+ if (v == nullptr)
{
snew(v, n);
}
for (i = 0; i < n; i++)
{
- reti = doVectorLow<real>(xd, part, ecpt, sflags, n, NULL, &(v[i]), NULL, NULL, CptElementType::matrix3x3);
+ reti = doVectorLow<real>(xd, part, ecpt, sflags, n, nullptr, &(v[i]), nullptr, nullptr, CptElementType::matrix3x3);
if (list && reti == 0)
{
sprintf(name, "%s[%d]", entryName(part, ecpt), i);
int n, matrix **v, FILE *list)
{
bool_t res = 0;
- matrix *vp, *va = NULL;
+ matrix *vp, *va = nullptr;
real *vr;
int nf, i, j, k;
int ret;
{
return -1;
}
- if (list == NULL && nf != n)
+ if (list == nullptr && nf != n)
{
gmx_fatal(FARGS, "Count mismatch for state entry %s, code count is %d, file count is %d\n", entryName(part, ecpt), n, nf);
}
}
else
{
- if (*v == NULL)
+ if (*v == nullptr)
{
snew(*v, nf);
}
}
}
ret = doVectorLow<real>(xd, part, ecpt, sflags,
- nf*DIM*DIM, NULL, &vr, NULL, NULL,
+ nf*DIM*DIM, nullptr, &vr, nullptr, nullptr,
CptElementType::matrix3x3);
for (i = 0; i < nf; i++)
{
if (*file_version >= 12)
{
do_cpt_string_err(xd, bRead, "generating host", &fhost, list);
- if (list == NULL)
+ if (list == nullptr)
{
sfree(fhost);
}
/* The RNG entries are no longer written,
* the next 4 lines are only for reading old files.
*/
- case estLD_RNG: ret = do_cpte_ints(xd, part, i, sflags, 0, NULL, list); break;
- case estLD_RNGI: ret = do_cpte_ints(xd, part, i, sflags, 0, NULL, list); break;
- case estMC_RNG: ret = do_cpte_ints(xd, part, i, sflags, 0, NULL, list); break;
- case estMC_RNGI: ret = do_cpte_ints(xd, part, i, sflags, 0, NULL, list); break;
+ case estLD_RNG: ret = do_cpte_ints(xd, part, i, sflags, 0, nullptr, list); break;
+ case estLD_RNGI: ret = do_cpte_ints(xd, part, i, sflags, 0, nullptr, list); break;
+ case estMC_RNG: ret = do_cpte_ints(xd, part, i, sflags, 0, nullptr, list); break;
+ case estMC_RNGI: ret = do_cpte_ints(xd, part, i, sflags, 0, nullptr, list); break;
case estDISRE_INITF: ret = do_cpte_real (xd, part, i, sflags, &state->hist.disre_initf, list); break;
case estDISRE_RM3TAV: ret = do_cpte_n_reals(xd, part, i, sflags, &state->hist.ndisrepairs, &state->hist.disre_rm3tav, list); break;
case estORIRE_INITF: ret = do_cpte_real (xd, part, i, sflags, &state->hist.orire_initf, list); break;
return 0;
}
- if (*swapstatePtr == NULL)
+ if (*swapstatePtr == nullptr)
{
snew(*swapstatePtr, 1);
}
do_cpt_int_err(xd, "swap influx net p", gs->inflow_net_p[ic], list);
}
- if (bRead && (NULL == gs->nMolPast[ic]) )
+ if (bRead && (nullptr == gs->nMolPast[ic]) )
{
snew(gs->nMolPast[ic], swapstate->nAverage);
}
return 0;
}
- if (*dfhistPtr == NULL)
+ if (*dfhistPtr == nullptr)
{
snew(*dfhistPtr, 1);
(*dfhistPtr)->nlambda = nlambda;
return 0;
}
- if (*EDstatePtr == NULL)
+ if (*EDstatePtr == nullptr)
{
snew(*EDstatePtr, 1);
}
{
do_cpt_string_err(xd, bRead, "output filename", &buf, list);
std::strncpy(outputfiles[i].filename, buf, CPTSTRLEN-1);
- if (list == NULL)
+ if (list == nullptr)
{
sfree(buf);
}
do_cpt_header(gmx_fio_getxdr(fp), FALSE, &file_version,
&version, &btime, &buser, &bhost, &double_prec, &fprog, &ftime,
&eIntegrator, &simulation_part, &step, &t, &nppnodes,
- DOMAINDECOMP(cr) ? domdecCells : NULL, &npmenodes,
+ DOMAINDECOMP(cr) ? domdecCells : nullptr, &npmenodes,
&state->natoms, &state->ngtc, &state->nnhpres,
&state->nhchainlength, &nlambda, &state->flags, &flags_eks, &flags_enh, &flags_dfh,
&nED, &eSwapCoords,
- NULL);
+ nullptr);
sfree(version);
sfree(btime);
sfree(bhost);
sfree(fprog);
- if ((do_cpt_state(gmx_fio_getxdr(fp), state->flags, state, NULL) < 0) ||
- (do_cpt_ekinstate(gmx_fio_getxdr(fp), flags_eks, &state->ekinstate, NULL) < 0) ||
- (do_cpt_enerhist(gmx_fio_getxdr(fp), FALSE, flags_enh, enerhist, NULL) < 0) ||
- (do_cpt_df_hist(gmx_fio_getxdr(fp), flags_dfh, nlambda, &state->dfhist, NULL) < 0) ||
- (do_cpt_EDstate(gmx_fio_getxdr(fp), FALSE, nED, &state->edsamstate, NULL) < 0) ||
- (do_cpt_swapstate(gmx_fio_getxdr(fp), FALSE, eSwapCoords, &state->swapstate, NULL) < 0) ||
- (do_cpt_files(gmx_fio_getxdr(fp), FALSE, &outputfiles, &noutputfiles, NULL,
+ if ((do_cpt_state(gmx_fio_getxdr(fp), state->flags, state, nullptr) < 0) ||
+ (do_cpt_ekinstate(gmx_fio_getxdr(fp), flags_eks, &state->ekinstate, nullptr) < 0) ||
+ (do_cpt_enerhist(gmx_fio_getxdr(fp), FALSE, flags_enh, enerhist, nullptr) < 0) ||
+ (do_cpt_df_hist(gmx_fio_getxdr(fp), flags_dfh, nlambda, &state->dfhist, nullptr) < 0) ||
+ (do_cpt_EDstate(gmx_fio_getxdr(fp), FALSE, nED, &state->edsamstate, nullptr) < 0) ||
+ (do_cpt_swapstate(gmx_fio_getxdr(fp), FALSE, eSwapCoords, &state->swapstate, nullptr) < 0) ||
+ (do_cpt_files(gmx_fio_getxdr(fp), FALSE, &outputfiles, &noutputfiles, nullptr,
file_version) < 0))
{
gmx_file("Cannot read/write checkpoint; corrupt file, or maybe you are out of disk space?");
"Cannot fsync '%s'; maybe you are out of disk space?",
gmx_fio_getname(ret));
- if (getenv(GMX_IGNORE_FSYNC_FAILURE_ENV) == NULL)
+ if (getenv(GMX_IGNORE_FSYNC_FAILURE_ENV) == nullptr)
{
gmx_file(buf);
}
&nppnodes_f, dd_nc_f, &npmenodes_f,
&natoms, &ngtc, &nnhpres, &nhchainlength, &nlambda,
&fflags, &flags_eks, &flags_enh, &flags_dfh,
- &nED, &eSwapCoords, NULL);
+ &nED, &eSwapCoords, nullptr);
if (bAppendOutputFiles &&
file_version >= 13 && double_prec != GMX_DOUBLE)
gmx_fatal(FARGS, "Output file appending requested, but the code and checkpoint file precision (single/double) don't match");
}
- if (cr == NULL || MASTER(cr))
+ if (cr == nullptr || MASTER(cr))
{
fprintf(stderr, "\nReading checkpoint file %s generated: %s\n\n",
fn, ftime);
"You can try with the -noappend option, and get more info in the log file.\n");
}
- if (getenv("GMX_ALLOW_CPT_MISMATCH") == NULL)
+ if (getenv("GMX_ALLOW_CPT_MISMATCH") == nullptr)
{
gmx_fatal(FARGS, "You seem to have switched ensemble, integrator, T and/or P-coupling algorithm between the cpt and tpr file. The recommended way of doing this is passing the cpt file to grompp (with option -t) instead of to mdrun. If you know what you are doing, you can override this error by setting the env.var. GMX_ALLOW_CPT_MISMATCH");
}
reproducibilityRequested);
}
}
- ret = do_cpt_state(gmx_fio_getxdr(fp), fflags, state, NULL);
+ ret = do_cpt_state(gmx_fio_getxdr(fp), fflags, state, nullptr);
*init_fep_state = state->fep_state; /* there should be a better way to do this than setting it here.
Investigate for 5.0. */
if (ret)
{
cp_error();
}
- ret = do_cpt_ekinstate(gmx_fio_getxdr(fp), flags_eks, &state->ekinstate, NULL);
+ ret = do_cpt_ekinstate(gmx_fio_getxdr(fp), flags_eks, &state->ekinstate, nullptr);
if (ret)
{
cp_error();
((flags_eks & (1<<eeksEKINSCALEF)) | (flags_eks & (1<<eeksEKINSCALEH)) | (flags_eks & (1<<eeksVSCALE))));
ret = do_cpt_enerhist(gmx_fio_getxdr(fp), TRUE,
- flags_enh, enerhist, NULL);
+ flags_enh, enerhist, nullptr);
if (ret)
{
cp_error();
enerhist->nsum_sim = *step;
}
- ret = do_cpt_df_hist(gmx_fio_getxdr(fp), flags_dfh, nlambda, &state->dfhist, NULL);
+ ret = do_cpt_df_hist(gmx_fio_getxdr(fp), flags_dfh, nlambda, &state->dfhist, nullptr);
if (ret)
{
cp_error();
}
- ret = do_cpt_EDstate(gmx_fio_getxdr(fp), TRUE, nED, &state->edsamstate, NULL);
+ ret = do_cpt_EDstate(gmx_fio_getxdr(fp), TRUE, nED, &state->edsamstate, nullptr);
if (ret)
{
cp_error();
}
- ret = do_cpt_swapstate(gmx_fio_getxdr(fp), TRUE, eSwapCoords, &state->swapstate, NULL);
+ ret = do_cpt_swapstate(gmx_fio_getxdr(fp), TRUE, eSwapCoords, &state->swapstate, nullptr);
if (ret)
{
cp_error();
}
- ret = do_cpt_files(gmx_fio_getxdr(fp), TRUE, &outputfiles, &nfiles, NULL, file_version);
+ ret = do_cpt_files(gmx_fio_getxdr(fp), TRUE, &outputfiles, &nfiles, nullptr, file_version);
if (ret)
{
cp_error();
int nED, eSwapCoords;
t_fileio *fp;
- if (filename == NULL ||
+ if (filename == nullptr ||
!gmx_fexist(filename) ||
(!(fp = gmx_fio_open(filename, "r"))))
{
&eIntegrator, simulation_part, step, &t, &nppnodes, dd_nc, &npme,
&state.natoms, &state.ngtc, &state.nnhpres, &state.nhchainlength,
&nlambda, &state.flags, &flags_eks, &flags_enh, &flags_dfh,
- &nED, &eSwapCoords, NULL);
+ &nED, &eSwapCoords, nullptr);
gmx_fio_close(fp);
}
int flags_eks, flags_enh, flags_dfh;
int nED, eSwapCoords;
int nfiles_loc;
- gmx_file_position_t *files_loc = NULL;
+ gmx_file_position_t *files_loc = nullptr;
int ret;
do_cpt_header(gmx_fio_getxdr(fp), TRUE, &file_version,
&eIntegrator, simulation_part, step, t, &nppnodes, dd_nc, &npme,
&state->natoms, &state->ngtc, &state->nnhpres, &state->nhchainlength,
&nlambda, &state->flags, &flags_eks, &flags_enh, &flags_dfh,
- &nED, &eSwapCoords, NULL);
+ &nED, &eSwapCoords, nullptr);
ret =
- do_cpt_state(gmx_fio_getxdr(fp), state->flags, state, NULL);
+ do_cpt_state(gmx_fio_getxdr(fp), state->flags, state, nullptr);
if (ret)
{
cp_error();
}
- ret = do_cpt_ekinstate(gmx_fio_getxdr(fp), flags_eks, &state->ekinstate, NULL);
+ ret = do_cpt_ekinstate(gmx_fio_getxdr(fp), flags_eks, &state->ekinstate, nullptr);
if (ret)
{
cp_error();
energyhistory_t enerhist;
ret = do_cpt_enerhist(gmx_fio_getxdr(fp), TRUE,
- flags_enh, &enerhist, NULL);
+ flags_enh, &enerhist, nullptr);
if (ret)
{
cp_error();
}
- ret = do_cpt_df_hist(gmx_fio_getxdr(fp), flags_dfh, nlambda, &state->dfhist, NULL);
+ ret = do_cpt_df_hist(gmx_fio_getxdr(fp), flags_dfh, nlambda, &state->dfhist, nullptr);
if (ret)
{
cp_error();
}
- ret = do_cpt_EDstate(gmx_fio_getxdr(fp), TRUE, nED, &state->edsamstate, NULL);
+ ret = do_cpt_EDstate(gmx_fio_getxdr(fp), TRUE, nED, &state->edsamstate, nullptr);
if (ret)
{
cp_error();
}
- ret = do_cpt_swapstate(gmx_fio_getxdr(fp), TRUE, eSwapCoords, &state->swapstate, NULL);
+ ret = do_cpt_swapstate(gmx_fio_getxdr(fp), TRUE, eSwapCoords, &state->swapstate, nullptr);
if (ret)
{
cp_error();
ret = do_cpt_files(gmx_fio_getxdr(fp), TRUE,
&files_loc,
&nfiles_loc,
- NULL, file_version);
+ nullptr, file_version);
if (outputfiles != nullptr)
{
*outputfiles = files_loc;
t_fileio *fp;
fp = gmx_fio_open(fn, "r");
- read_checkpoint_data(fp, simulation_part, step, t, state, NULL, NULL);
+ read_checkpoint_data(fp, simulation_part, step, t, state, nullptr, nullptr);
if (gmx_fio_close(fp) != 0)
{
gmx_file("Cannot read/write checkpoint; corrupt file, or maybe you are out of disk space?");
init_state(&state, 0, 0, 0, 0, 0);
- read_checkpoint_data(fp, &simulation_part, &step, &t, &state, NULL, NULL);
+ read_checkpoint_data(fp, &simulation_part, &step, &t, &state, nullptr, nullptr);
fr->natoms = state.natoms;
fr->bTitle = FALSE;