void do_enxnms(ener_file_t ef,int *nre,gmx_enxnm_t **nms) { int magic=-55555; XDR *xdr; gmx_bool bRead = gmx_fio_getread(ef->fio); int file_version; int i; gmx_fio_checktype(ef->fio); xdr = gmx_fio_getxdr(ef->fio); if (!xdr_int(xdr,&magic)) { if(!bRead) { gmx_file("Cannot write energy names to file; maybe you are out of quota?"); } *nre=0; return; } if (magic > 0) { /* Assume this is an old edr format */ file_version = 1; *nre = magic; ef->eo.bOldFileOpen = TRUE; ef->eo.bReadFirstStep = FALSE; srenew(ef->eo.ener_prev,*nre); } else { ef->eo.bOldFileOpen=FALSE; if (magic != -55555) { gmx_fatal(FARGS,"Energy names magic number mismatch, this is not a GROMACS edr file"); } file_version = enx_version; xdr_int(xdr,&file_version); if (file_version > enx_version) { gmx_fatal(FARGS,"reading tpx file (%s) version %d with version %d program",gmx_fio_getname(ef->fio),file_version,enx_version); } xdr_int(xdr,nre); } if (file_version != enx_version) { fprintf(stderr,"Note: enx file_version %d, software version %d\n", file_version,enx_version); } edr_strings(xdr,bRead,file_version,*nre,nms); }
void do_enxnms(int fp,int *nre,gmx_enxnm_t **nms) { int magic=-55555; XDR *xdr; bool bRead = gmx_fio_getread(fp); int file_version; int i; gmx_fio_select(fp); xdr = gmx_fio_getxdr(fp); if (!xdr_int(xdr,&magic)) { if(!bRead) { gmx_file("Cannot write energy names to file; maybe you are out of quota?"); } *nre=0; return; } if (magic > 0) { /* Assume this is an old edr format */ file_version = 1; *nre = magic; if (fp >= ener_old_nalloc) { srenew(ener_old,fp + 1); for(i=ener_old_nalloc; i<fp+1; i++) { ener_old[i].bOldFileOpen = FALSE; ener_old[i].ener_prev = NULL; } ener_old_nalloc = fp + 1; } ener_old[fp].bOldFileOpen = TRUE; ener_old[fp].bReadFirstStep = FALSE; srenew(ener_old[fp].ener_prev,*nre); } else { if (fp < ener_old_nalloc) { ener_old[fp].bOldFileOpen = FALSE; } if (magic != -55555) { gmx_fatal(FARGS,"Energy names magic number mismatch, this is not a GROMACS edr file"); } file_version = enx_version; xdr_int(xdr,&file_version); if (file_version > enx_version) { gmx_fatal(FARGS,"reading tpx file (%s) version %d with version %d program",gmx_fio_getname(fp),file_version,enx_version); } xdr_int(xdr,nre); } if (file_version != enx_version) { fprintf(stderr,"Note: enx file_version %d, software version %d\n", file_version,enx_version); } edr_strings(xdr,bRead,file_version,*nre,nms); }