real *w_rls = nullptr;
int m, i, d, frame, outframe, natoms, nout, ncent, newstep = 0, model_nr;
#define SKIP 10
- t_topology top;
+ t_topology *top = nullptr;
gmx_conect gc = nullptr;
int ePBC = -1;
t_atoms *atoms = nullptr, useatoms;
if (bTPS)
{
- read_tps_conf(top_file, &top, &ePBC, &xp, nullptr, top_box,
+ snew(top, 1);
+ read_tps_conf(top_file, top, &ePBC, &xp, nullptr, top_box,
bReset || bPBCcomRes);
- std::strncpy(top_title, *top.name, 255);
+ std::strncpy(top_title, *top->name, 255);
top_title[255] = '\0';
- atoms = &top.atoms;
+ atoms = &top->atoms;
- if (0 == top.mols.nr && (bCluster || bPBCcomMol))
+ if (0 == top->mols.nr && (bCluster || bPBCcomMol))
{
gmx_fatal(FARGS, "Option -pbc %s requires a .tpr file for the -s option", pbc_opt[pbc_enum]);
}
if (bCONECT)
{
- gc = gmx_conect_generate(&top);
+ gc = gmx_conect_generate(top);
}
if (bRmPBC)
{
- gpbc = gmx_rmpbc_init(&top.idef, ePBC, top.atoms.nr);
+ gpbc = gmx_rmpbc_init(&top->idef, ePBC, top->atoms.nr);
}
}
store original location (to put structure back) */
if (bRmPBC)
{
- gmx_rmpbc(gpbc, top.atoms.nr, top_box, xp);
+ gmx_rmpbc(gpbc, top->atoms.nr, top_box, xp);
}
copy_rvec(xp[index[0]], x_shift);
reset_x_ndim(nfitdim, ifit, ind_fit, atoms->nr, nullptr, xp, w_rls);
}
else if (bCluster)
{
- calc_pbc_cluster(ecenter, ifit, &top, ePBC, fr.x, ind_fit, fr.box);
+ calc_pbc_cluster(ecenter, ifit, top, ePBC, fr.x, ind_fit, fr.box);
}
if (bPFit)
if (bPBCcomMol)
{
put_molecule_com_in_box(unitcell_enum, ecenter,
- &top.mols,
+ &top->mols,
natoms, atoms->atom, ePBC, fr.box, fr.x);
}
/* Copy the input trxframe struct to the output trxframe struct */
if (bTPS)
{
- done_top(&top);
+ done_top(top);
+ sfree(top);
}
sfree(xp);
sfree(xmem);