2130c2a5431bc8864d3b58a7aa7f070f418bfd2b
[alexxy/gromacs.git] / src / contrib / testxml.c
1 /*
2  * 
3  *                This source code is part of
4  * 
5  *                 G   R   O   M   A   C   S
6  * 
7  *          GROningen MAchine for Chemical Simulations
8  * 
9  *                        VERSION 3.2.0
10  * Written by David van der Spoel, Erik Lindahl, Berk Hess, and others.
11  * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
12  * Copyright (c) 2001-2004, The GROMACS development team,
13  * check out http://www.gromacs.org for more information.
14
15  * This program is free software; you can redistribute it and/or
16  * modify it under the terms of the GNU General Public License
17  * as published by the Free Software Foundation; either version 2
18  * of the License, or (at your option) any later version.
19  * 
20  * If you want to redistribute modifications, please consider that
21  * scientific software is very special. Version control is crucial -
22  * bugs must be traceable. We will be happy to consider code for
23  * inclusion in the official distribution, but derived work must not
24  * be called official GROMACS. Details are found in the README & COPYING
25  * files - if they are missing, get the official version at www.gromacs.org.
26  * 
27  * To help us fund GROMACS development, we humbly ask that you cite
28  * the papers on the package - you can find them in the top README file.
29  * 
30  * For more info, check our website at http://www.gromacs.org
31  * 
32  * And Hey:
33  * GROningen Mixture of Alchemy and Childrens' Stories
34  */
35 #include "macros.h"
36 #include "smalloc.h"
37 #include "xmlio.h"
38 #include "gromacs/commandline/pargs.h"
39 #include "gromacs/fileio/tpxio.h"
40
41 int cmain(int argc,char *argv[])
42 {
43   int        step,natoms;
44   real       t,lambda;
45   t_inputrec ir;
46   t_topology top;
47   matrix     box;
48   rvec       *x,*v,*f;
49   t_filenm fnm[] = {
50     { efTPX, NULL, NULL, ffREAD  },
51     { efXML, "-r", NULL, ffREAD  },
52     { efXML, "-o", NULL, ffWRITE }
53   };  
54 #define NFILE asize(fnm)
55
56   CopyRight(stderr,argv[0]);
57   parse_common_args(&argc,argv,0,NFILE,fnm,0,NULL,0,NULL,0,NULL);
58   
59   init_top(&top);
60   if (opt2bSet("-r",NFILE,fnm))
61     read_xml(opt2fn("-r",NFILE,fnm),&step,&t,&lambda,&ir,
62              box,&natoms,&x,&v,&f,&top);
63   else {
64     t_tpxheader tpx;
65     
66     read_tpxheader(ftp2fn(efTPX,NFILE,fnm),&tpx,FALSE);
67     snew(x,tpx.natoms);
68     snew(v,tpx.natoms);
69     f = NULL;
70     read_tpx(ftp2fn(efTPX,NFILE,fnm),&step,&t,&lambda,&ir,
71              box,&natoms,x,v,f,&top);
72   }
73   /*write_xml(opt2fn("-o",NFILE,fnm),step,t,lambda,&ir,box,natoms,x,v,f,&top);*/
74   
75   return 0;
76 }
77
78
79