static void write_hconf_mtop(FILE *out,char *title,gmx_mtop_t *mtop, int pr, rvec *x,rvec *v,matrix box) { char format[100]; int i,resnr; gmx_mtop_atomloop_all_t aloop; t_atom *atom; char *atomname,*resname; bromacs(format,99); fprintf (out,"%s\n",(title && title[0])?title:format); fprintf (out,"%5d\n",mtop->natoms); make_hconf_format(pr,v!=NULL,format); aloop = gmx_mtop_atomloop_all_init(mtop); while (gmx_mtop_atomloop_all_next(aloop,&i,&atom)) { gmx_mtop_atomloop_all_names(aloop,&atomname,&resnr,&resname); fprintf(out,"%5d%-5.5s%5.5s%5d", (resnr+1)%100000,resname,atomname,(i+1)%100000); /* next fprintf uses built format string */ if (v) fprintf(out,format, x[i][XX], x[i][YY], x[i][ZZ], v[i][XX],v[i][YY],v[i][ZZ]); else fprintf(out,format, x[i][XX], x[i][YY], x[i][ZZ]); } write_hconf_box(out,pr,box); fflush(out); }
void write_hconf_indexed_p(FILE *out, const char *title, t_atoms *atoms, int nx, const atom_id index[], int pr, rvec *x, rvec *v, matrix box) { char resnm[6], nm[6], format[100]; int ai, i, resind, resnr; bromacs(format, 99); fprintf (out, "%s\n", (title && title[0]) ? title : format); fprintf (out, "%5d\n", nx); make_hconf_format(pr, v != NULL, format); for (i = 0; (i < nx); i++) { ai = index[i]; resind = atoms->atom[ai].resind; strncpy(resnm, " ??? ", sizeof(resnm)-1); if (resind < atoms->nres) { strncpy(resnm, *atoms->resinfo[resind].name, sizeof(resnm)-1); resnr = atoms->resinfo[resind].nr; } else { strncpy(resnm, " ??? ", sizeof(resnm)-1); resnr = resind + 1; } if (atoms->atom) { strncpy(nm, *atoms->atomname[ai], sizeof(nm)-1); } else { strncpy(nm, " ??? ", sizeof(nm)-1); } fprintf(out, "%5d%-5.5s%5.5s%5d", resnr%100000, resnm, nm, (ai+1)%100000); /* next fprintf uses built format string */ if (v) { fprintf(out, format, x[ai][XX], x[ai][YY], x[ai][ZZ], v[ai][XX], v[ai][YY], v[ai][ZZ]); } else { fprintf(out, format, x[ai][XX], x[ai][YY], x[ai][ZZ]); } } write_hconf_box(out, pr, box); fflush(out); }
void write_hconf_indexed_p(FILE *out,char *title,t_atoms *atoms, int nx,atom_id index[], int pr, rvec *x,rvec *v,matrix box) { char resnm[6],nm[6],format[100]; int ai,i,resnr; bromacs(format,99); fprintf (out,"%s\n",(title && title[0])?title:format); fprintf (out,"%5d\n",nx); make_hconf_format(pr,v!=NULL,format); for (i=0; (i<nx); i++) { ai=index[i]; resnr=atoms->atom[ai].resnr; strcpy(resnm," ??? "); if (resnr < atoms->nres) strcpy(resnm,*atoms->resname[resnr]); if (atoms->atom) strcpy(nm,*atoms->atomname[ai]); else strcpy(nm," ??? "); fprintf(out,"%5d%-5.5s%5.5s%5d",(resnr+1)%100000,resnm,nm,(ai+1)%100000); /* next fprintf uses built format string */ if (v) fprintf(out,format, x[ai][XX], x[ai][YY], x[ai][ZZ], v[ai][XX],v[ai][YY],v[ai][ZZ]); else fprintf(out,format, x[ai][XX], x[ai][YY], x[ai][ZZ]); } write_hconf_box(out,pr,box); fflush(out); }