Partial commit of the project to remove all static variables.
[gromacs.git] / src / kernel / toppush.h
blob3f7eb4d18b1f2c1e17b5cfdadbb437859b26d727
1 /*
2 * $Id$
3 *
4 * This source code is part of
5 *
6 * G R O M A C S
7 *
8 * GROningen MAchine for Chemical Simulations
9 *
10 * VERSION 3.1
11 * Copyright (c) 1991-2001, University of Groningen, The Netherlands
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
17 * If you want to redistribute modifications, please consider that
18 * scientific software is very special. Version control is crucial -
19 * bugs must be traceable. We will be happy to consider code for
20 * inclusion in the official distribution, but derived work must not
21 * be called official GROMACS. Details are found in the README & COPYING
22 * files - if they are missing, get the official version at www.gromacs.org.
24 * To help us fund GROMACS development, we humbly ask that you cite
25 * the papers on the package - you can find them in the top README file.
27 * For more info, check our website at http://www.gromacs.org
29 * And Hey:
30 * Gromacs Runs One Microsecond At Cannonball Speeds
33 #ifndef _toppush_h
34 #define _toppush_h
37 #include "typedefs.h"
38 #include "toputil.h"
40 typedef struct {
41 int nr; /* The number of entries in the list */
42 int nra2; /* The total number of entries in a */
43 atom_id *nra; /* The number of entries in each a array (dim nr) */
44 atom_id **a; /* The atom numbers (dim nr) the length of each element */
45 /* i is nra[i] */
46 } t_block2;
48 extern void generate_nbparams(int comb,int funct,t_params plist[],
49 t_atomtype *atype,real npow);
51 extern void push_at (t_symtab *symtab,t_atomtype *at,t_bond_atomtype *bat,char *line,int nb_funct,
52 t_nbparam ***nbparam,t_nbparam ***pair);
54 extern void push_bt(directive d,t_params bt[], int nral,
55 char ***typenames, int ntypes, char *line);
57 extern void push_dihedraltype(directive d,t_params bt[],
58 char ***typenames, int ntypes,char *line);
60 extern void push_nbt(directive d,t_nbparam **nbt,t_atomtype *atype,
61 char *plines,int nb_funct);
63 extern void push_atom(t_symtab *symtab,
64 t_block *cgs,
65 t_atoms *at,
66 t_atomtype *atype,
67 char *line,
68 int *lastcg);
70 extern void push_bondnow (t_params *bond, t_param *b);
72 extern void push_bond(directive d,t_params bondtype[],t_params bond[],
73 t_atoms *at,t_atomtype *atype,char *line,bool bBonded,bool bGenPairs);
75 extern void push_mol(int nrmols,t_molinfo mols[],char *pline,
76 int *whichmol,int *nrcopies);
78 extern void push_molt(t_symtab *symtab,t_molinfo *newmol,char *line);
80 extern void init_block2(t_block2 *b2, int natom);
82 extern void done_block2(t_block2 *b2);
84 extern void push_excl(char *line, t_block2 *b2);
86 extern void merge_excl(t_block *excl, t_block2 *b2);
88 extern void b_to_b2(t_block *b, t_block2 *b2);
90 extern void b2_to_b(t_block2 *b2, t_block *b);
92 #endif /* _toppush_h */