/*************************************************************************/
/*                                                                       */
/*  Copyright (c) 1994 Stanford University                               */
/*                                                                       */
/*  All rights reserved.                                                 */
/*                                                                       */
/*  Permission is given to use, copy, and modify this software for any   */
/*  non-commercial purpose as long as this copyright notice is not       */
/*  removed.  All other uses, including redistribution in whole or in    */
/*  part, are forbidden without prior written permission.                */
/*                                                                       */
/*  This software is provided with absolutely no warranty and no         */
/*  support.                                                             */
/*                                                                       */
/*************************************************************************/

  /* this file contains the declarations of the main data
  structure types used by the program */

  /* per molecule, there are 3*8 = 24 bytes for the VM array */
  /* and 9*3*3*8 = 648 bytes for the F array 		   */
  /* that is, a total of 672 bytes		           */

  /* then there is some global memory, defined in global.H   */
  /* which mainly consists of an array of locks, one per mol */

  /* PRIVATE DATA:  Every process has a private array of computed  */
  /* interactions, PFORCES, defined in interf.C.  The size of this */
  /* is nmol*3*3*8 = 72 * nmol bytes				 */
  /* A processor only uses at most 72 * (nmol/2 + nmol/p) bytes of */
  /* this.                                                         */
  /* And, every process has six private arrays for use in interf   */
  /* These arrays are of size 15*8 = 120 bytes each, for a total   */
  /* of 720 bytes.  therefore per process data are                 */
  /* (72 * nmol) + 720 bytes.                                      */

typedef double vm_type[3];

typedef struct mol_dummy {
      vm_type VM;
      double F[MXOD2][NDIR][NATOM];
} molecule_type;

extern molecule_type *VAR;

extern double ****PFORCES;

extern double  TLC[100], FPOT, FKIN;

#define MAXPROCS 1024

extern long StartMol[MAXPROCS+1];
extern long MolsPerProc;
extern long NumProcs;
