void read_trnheader(char *fn,t_trnheader *trn) { int fp; bool bOK; fp = open_trn(fn,"r"); if (!do_trnheader(fp,TRUE,trn,&bOK)) gmx_fatal(FARGS,"Empty file %s",fn); close_trn(fp); }
void read_trnheader(const char *fn,t_trnheader *trn) { t_fileio *fio; gmx_bool bOK; fio = open_trn(fn,"r"); if (!do_trnheader(fio,TRUE,trn,&bOK)) gmx_fatal(FARGS,"Empty file %s",fn); close_trn(fio); }
static gmx_bool do_trn(t_fileio *fio, gmx_bool bRead, int *step, real *t, real *lambda, rvec *box, int *natoms, rvec *x, rvec *v, rvec *f) { t_trnheader *sh; gmx_bool bOK; snew(sh, 1); if (!bRead) { sh->box_size = (box) ? sizeof(matrix) : 0; sh->x_size = ((x) ? (*natoms*sizeof(x[0])) : 0); sh->v_size = ((v) ? (*natoms*sizeof(v[0])) : 0); sh->f_size = ((f) ? (*natoms*sizeof(f[0])) : 0); sh->natoms = *natoms; sh->step = *step; sh->nre = 0; sh->t = *t; sh->lambda = *lambda; } if (!do_trnheader(fio, bRead, sh, &bOK)) { return FALSE; } if (bRead) { *natoms = sh->natoms; *step = sh->step; *t = sh->t; *lambda = sh->lambda; if (sh->ir_size) { gmx_file("inputrec in trn file"); } if (sh->e_size) { gmx_file("energies in trn file"); } if (sh->top_size) { gmx_file("topology in trn file"); } if (sh->sym_size) { gmx_file("symbol table in trn file"); } } bOK = do_htrn(fio, sh, box, x, v, f); sfree(sh); return bOK; }
int read_trr_natoms(char *fn,int *natoms) { XDRFILE *xd; t_trnheader sh; int result; xd = xdrfile_open(fn,"r"); if (NULL == xd) return exdrFILENOTFOUND; if ((result = do_trnheader(xd,1,&sh)) != exdrOK) return result; xdrfile_close(xd); *natoms = sh.natoms; return exdrOK; }
static int do_trn(XDRFILE *xd,mybool bRead,int *step,float *t,float *lambda, matrix box,int *natoms,rvec *x,rvec *v,rvec *f) { t_trnheader *sh; int result; sh = calloc(1,sizeof(*sh)); if (!bRead) { sh->box_size = (NULL != box) ? sizeof(matrix):0; sh->x_size = ((NULL != x) ? (*natoms*sizeof(x[0])):0); sh->v_size = ((NULL != v) ? (*natoms*sizeof(v[0])):0); sh->f_size = ((NULL != f) ? (*natoms*sizeof(f[0])):0); sh->natoms = *natoms; sh->step = *step; sh->nre = 0; sh->td = *t; sh->lambdad = *lambda; sh->tf = *t; sh->lambdaf = *lambda; } if ((result = do_trnheader(xd,bRead,sh)) != exdrOK) return result; if (bRead) { *natoms = sh->natoms; *step = sh->step; *t = sh->td; *lambda = sh->lambdad; } if ((result = do_htrn(xd,bRead,sh,box,x,v,f)) != exdrOK) return result; free(sh); return exdrOK; }
gmx_bool fread_trnheader(t_fileio *fio, t_trnheader *trn, gmx_bool *bOK) { return do_trnheader(fio, TRUE, trn, bOK); }
bool fread_trnheader(int fp,t_trnheader *trn, bool *bOK) { return do_trnheader(fp,TRUE,trn,bOK); }