| /*************************************************************************/ |
| /* */ |
| /* 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; |