/* _______________________________________________________________________ * * RDPARM/PTRAJ: APR 2000 * _______________________________________________________________________ * * $Header: /thr/gamow/cvsroot/amber7/src/ptraj/ptraj.h,v 1.10 2000/05/10 21:52:01 cheatham Exp $ * * Revision: $Revision: 1.10 $ * Date: $Date: 2000/05/10 21:52:01 $ * Last checked in by $Author: cheatham $ * * This source is now archived under CVS at Scripps in the amber7 tree. * * NOTE: this is a beta, pre-release version, is under constant development, * probably contains some bugs and is under constant revision; therefore * take care. Please report bugs (and fixes!) to cheatham@chpc.utah.edu or * cheatham@cgl.ucsf.edu * * Do not distribute this code without explicit permission. * Do not incorporate into other codes without explicit permission. * * Current contact information: * * Thomas Cheatham, III * 2000 East, 30 South, Skaggs Hall 201 * Department of Medicinal Chemistry * University of Utah * Salt Lake City, UT 84112-5820 * cheatham@chpc.utah.edu * (801) 587-9653 * FAX: (801) 585-5366 * * Other contributors: * * David Case (Scripps) * Michael Crowley (Scripps) * Jed Pitera (UCSF) * Vickie Tsui (Scripps) * _______________________________________________________________________ * * * This is the main header file for the ptraj and rdparm code. * * NOTE: All of the prototypes and structure definitions reside in * individual files based on the name of the source code file. * Despite this logical separation, all the individual include * files are included indirectly and automatically by including * this single include file. To separate local and global definitions * within the header files, environment variables are set in each of * the header files (#define X_MODULE where X is the name of the source * file) to differentiate local information needed for the source file * and globabally accessible (and prototyped) definitions. */ #include "constants.h" #include "ptraj_local.h" #include "utility.h" #include "pdb/pdb.h" #include "dispatch.h" #include "actions.h" #include "analyze.h" #include "rdparm.h" #include "io.h" #include "help.h" #include "vector.h" #include "trajectory.h" #include "torsion.h" #include "rms.h" #include "display.h" #include "interface.h" #include "experimental.h" /* * MACHINE DEPENDENCY * * Although most of this code is written in C, FORTRAN routines may * also be called although none currently is anymore... * Various systems handle calling FORTRAN routines from C differently. * We can overcome this the use of the C preprocess (CPP). Most systems * call FORTRAN function "foobar" from C via the "foobar_()" call. * Exceptions: * HPUX -- no appended underscore (i.e. "foobar()") * UNICOS -- no appended underscore, all capitals! (i.e. "FOOBAR()") */ /* * CRAY special case to avoid expf call... */ #ifdef CRAY #define expf exp #endif /* * GLOBAL DEFINES and ENUMERATED TYPES local to ptraj.c */ #ifdef PTRAJ_MODULE ptrajState *ptrajCurrentStatePointer = NULL; /* * this holds the current state which may evolve as actions are setup. * Each action has a local copy (setup as the action is initialized... */ stackType *transformFileStack = NULL; coordinateInfo *outInfo = NULL; stackType *transformReferenceStack = NULL; coordinateInfo *referenceInfo = NULL; stackType *transformActionStack = NULL; stackType *transformAnalyzeStack = NULL; stackType *vectorStack = NULL; stackType *scalarStack = NULL; stackType *hbondStack = NULL; int prnlev = 0; #else extern stackType *vectorStack; extern stackType *scalarStack; extern stackType *hbondStack; extern coordinateInfo *outInfo; extern stackType *transformReferenceStack; extern coordinateInfo *referenceInfo; extern int prnlev; #endif /* ifdef PTRAJ_MODULE */ /* * FUNCTION PROTOTYPES * * The following functions are defined in ptraj.c and are externally * accessible. In order to hide this prototyping/referencing from the * ptraj.c source (which like the other source files includes * this header file) the C preprocessor (CPP) token "PTRAJ_MODULE" is * defined at the top of the ptraj.c source to prevent inclusion... * This general strategy has been used throughout the source * where the defined CPP token is equivalent to the capitalized * file name without the ".c" appended with "_MODULE" */ #ifndef PTRAJ_MODULE # ifdef __STDC__ extern void ptraj(char *); extern void checkCoordinatesWrap(char *); extern int *processAtomMask(char *, ptrajState *); extern void checkAtomMask(char *); extern int *returnAtomMask(char *); extern void atomMaskIsActive(int *, ptrajState *, int *, int *); extern ptrajState **ptrajCurrentState(); extern void ptrajSetup(stackType *, int); extern void ptrajSetupAnalyze(stackType *, int); extern void ptrajSetupIO(stackType *, int); extern void ptrajInitializeState(ptrajState **, char *); extern int atomToResidue(int, int, int *); extern int atomToSolventMolecule(int, int, int *, int *); extern int atomToMolecule(int, int, int *); extern void modifyStateByMask(ptrajState **, ptrajState **, int *, int); extern scalarInfo *scalarStackGetName(stackType **, char *); extern transformHBondInfo *hbondInfoStackGetName(stackType **, char *); extern void boxToRecip(double box[6], double ucell[9], double recip[9]); extern double calculateDistance2(int, int, double *, double *, double *, double *, double *, double *, double); extern double calculateMinImagedDistance2(double *, double *, double *, double, double, double, double, double, double, int *, int *, int *); # else extern void ptraj(); extern void checkCoordinatesWrap(); extern int *processAtomMask(); extern void checkAtomMask(); extern int *returnAtomMask(); extern void atomMaskIsActive(); extern ptrajState **ptrajCurrentState(); extern void ptrajSetup(); extern void ptrajSetupAnalyze(); extern void ptrajSetupIO(); extern void ptrajInitializeState(); extern int atomToResidue(); extern int atomToSolventMolecule(); extern int atomToMolecule(); extern void modifyStateByMask(); extern scalarInfo *scalarStackGetName(); extern transformHBondInfo *hbondInfoStackGetName(); extern void boxToRecip(); extern double calculateDistance2(); extern double calculateMinImagedDistance2(); # endif #endif /* PTRAJ_MODULE */