blob: 7efdf0712caa08122f0b459e0425dbf6498bf233 [file] [log] [blame]
/*************************************************************************/
/* */
/* 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 128
extern int StartMol[MAXPROCS+1];
extern int MolsPerProc;
extern int NumProcs;