int read_next_xtc(t_fileio* fio, int natoms, int64_t *step, real *time, matrix box, rvec *x, real *prec, gmx_bool *bOK) { int magic; int n; XDR *xd; *bOK = TRUE; xd = gmx_fio_getxdr(fio); /* read header */ if (!xtc_header(xd, &magic, &n, step, time, TRUE, bOK)) { return 0; } /* Check magic number */ check_xtc_magic(magic); if (n > natoms) { gmx_fatal(FARGS, "Frame contains more atoms (%d) than expected (%d)", n, natoms); } *bOK = (xtc_coord(xd, &natoms, box, x, prec, TRUE) != 0); return static_cast<int>(*bOK); }
int read_next_xtc(int fp, int natoms,int *step,real *time, matrix box,rvec *x,real *prec,bool *bOK) { int magic; int n; XDR *xd; *bOK=TRUE; xd = gmx_fio_getxdr(fp); /* read header */ if (!xtc_header(xd,&magic,&n,step,time,TRUE,bOK)) return 0; /* Check magic number */ check_xtc_magic(magic); if (n > natoms) { gmx_fatal(FARGS, "Frame contains more atoms (%d) than expected (%d)", n, natoms); } *bOK=xtc_coord(xd,&natoms,box,x,prec,TRUE); return *bOK; }
int write_xtc(int fp, int natoms,int step,real time, matrix box,rvec *x,real prec) { int magic_number = XTC_MAGIC; XDR *xd; bool bDum; int bOK; xd = gmx_fio_getxdr(fp); /* write magic number and xtc identidier */ if (xtc_header(xd,&magic_number,&natoms,&step,&time,FALSE,&bDum) == 0) { return 0; } /* write data */ bOK = xtc_coord(xd,&natoms,box,x,&prec,FALSE); /* bOK will be 1 if writing went well */ if(bOK) { if(gmx_fio_flush(fp) !=0) { bOK = 0; } } return bOK; /* 0 if bad, 1 if writing went well */ }
int write_xtc(XDRFILE *xd, int natoms,int step,float time, matrix box,rvec *x,float prec) /* Write a frame to xtc file */ { int result; if ((result = xtc_header(xd,&natoms,&step,&time,FALSE)) != exdrOK) return result; if ((result = xtc_coord(xd,&natoms,box,x,&prec,0)) != exdrOK) return result; return exdrOK; }
int read_xtc(XDRFILE *xd, int natoms,int *step,float *time, matrix box,rvec *x,float *prec) /* Read subsequent frames */ { int result; if ((result = xtc_header(xd,&natoms,step,time,TRUE)) != exdrOK) return result; if ((result = xtc_coord(xd,&natoms,box,x,prec,1)) != exdrOK) return result; return exdrOK; }
int read_first_xtc(int fp,int *natoms,int *step,real *time, matrix box,rvec **x,real *prec,bool *bOK) { int magic; XDR *xd; *bOK=TRUE; xd = gmx_fio_getxdr(fp); /* read header and malloc x */ if ( !xtc_header(xd,&magic,natoms,step,time,TRUE,bOK)) return 0; /* Check magic number */ check_xtc_magic(magic); snew(*x,*natoms); *bOK=xtc_coord(xd,natoms,box,*x,prec,TRUE); return *bOK; }
int read_first_xtc(t_fileio *fio, int *natoms, int64_t *step, real *time, matrix box, rvec **x, real *prec, gmx_bool *bOK) { int magic; XDR *xd; *bOK = TRUE; xd = gmx_fio_getxdr(fio); /* read header and malloc x */ if (!xtc_header(xd, &magic, natoms, step, time, TRUE, bOK)) { return 0; } /* Check magic number */ check_xtc_magic(magic); snew(*x, *natoms); *bOK = (xtc_coord(xd, natoms, box, *x, prec, TRUE) != 0); return static_cast<int>(*bOK); }
int write_xtc(t_fileio *fio, int natoms, int64_t step, real time, const rvec *box, const rvec *x, real prec) { int magic_number = XTC_MAGIC; XDR *xd; gmx_bool bDum; int bOK; if (!fio) { /* This means the fio object is not being used, e.g. because we are actually writing TNG output. We still have to return a pseudo-success value, to keep some callers happy. */ return 1; } xd = gmx_fio_getxdr(fio); /* write magic number and xtc identidier */ if (xtc_header(xd, &magic_number, &natoms, &step, &time, FALSE, &bDum) == 0) { return 0; } /* write data */ bOK = xtc_coord(xd, &natoms, const_cast<rvec *>(box), const_cast<rvec *>(x), &prec, FALSE); /* bOK will be 1 if writing went well */ if (bOK) { if (gmx_fio_flush(fio) != 0) { bOK = 0; } } return bOK; /* 0 if bad, 1 if writing went well */ }