void get_stx_coordnum(const char *infile, int *natoms) { FILE *in; int ftp, tpxver, tpxgen; t_trxframe fr; char g96_line[STRLEN+1]; ftp = fn2ftp(infile); range_check(ftp, 0, efNR); switch (ftp) { case efGRO: get_coordnum(infile, natoms); break; case efG96: in = gmx_fio_fopen(infile, "r"); fr.title = NULL; fr.natoms = -1; fr.atoms = NULL; fr.x = NULL; fr.v = NULL; fr.f = NULL; *natoms = read_g96_conf(in, infile, &fr, g96_line); gmx_fio_fclose(in); break; case efPDB: case efBRK: case efENT: in = gmx_fio_fopen(infile, "r"); get_pdb_coordnum(in, natoms); gmx_fio_fclose(in); break; case efESP: *natoms = get_espresso_coordnum(infile); break; case efTPA: case efTPB: case efTPR: { t_tpxheader tpx; read_tpxheader(infile, &tpx, TRUE, &tpxver, &tpxgen); *natoms = tpx.natoms; break; } default: gmx_fatal(FARGS, "File type %s not supported in get_stx_coordnum", ftp2ext(ftp)); } }
static void get_stx_coordnum(const char *infile, int *natoms) { FILE *in; int ftp; t_trxframe fr; char g96_line[STRLEN+1]; ftp = fn2ftp(infile); range_check(ftp, 0, efNR); switch (ftp) { case efGRO: get_coordnum(infile, natoms); break; case efG96: { in = gmx_fio_fopen(infile, "r"); fr.title = NULL; fr.natoms = -1; fr.atoms = NULL; fr.x = NULL; fr.v = NULL; fr.f = NULL; *natoms = read_g96_conf(in, infile, &fr, NULL, g96_line); sfree(const_cast<char *>(fr.title)); gmx_fio_fclose(in); break; } case efPDB: case efBRK: case efENT: in = gmx_fio_fopen(infile, "r"); get_pdb_coordnum(in, natoms); gmx_fio_fclose(in); break; case efESP: *natoms = get_espresso_coordnum(infile); break; default: gmx_fatal(FARGS, "File type %s not supported in get_stx_coordnum", ftp2ext(ftp)); } }