/* * topoxp.h * * Summary: Reader for XPLOR topology files (PSF). * * Author: David Hardy */ #ifndef H_TOPOXP #define H_TOPOXP #include #include "topo.h" #include "pdata.h" #ifdef __cplusplus extern "C" { #endif typedef struct Topoxp_Tag { char *atomstring; /* contains name of each type of atom */ int *atomid; /* contains index into atom param array for each */ /* distinct atom -- unfortunately we need this */ /* due to a deficiency in the file design */ /* non-bonded exclusions are pairs of atoms that */ /* are stored in Yale sparse matrix manner */ int *excl_list; /* array of one element in pair -- must be read */ /* in first in its entirity */ /* then we read in a list of indices into above */ /* array that is size of system, one per atom */ int excl_start; /* preceding excl_list index */ int excl_end; /* next excl_list index */ int excl_atom; /* which atom (index) we are on */ int natom; /* keep a count of number read so far */ int nbond; int nangle; int ndihed; int nimpr; int nexcl; Tbuf *tbuf; Pdata *pdata; FILE *f; int state; int status; } Topoxp; int topoxp_init(Topoxp *, Tbuf *, Pdata *, FILE *); int topoxp_read(Topoxp *); int topoxp_status(Topoxp *); void topoxp_clear_status(Topoxp *); void topoxp_destroy(Topoxp *); #ifdef __cplusplus } #endif #endif /* H_TOPOXP */