16 #if defined(WIN32) && !defined(__CYGWIN__) 19 #define GETCWD _getcwd 21 #define PATHSEPSTR "\\" 27 #define PATHSEPSTR "/" 37 #ifdef MEM_OPT_VERSION 40 char *gWorkDir = NULL;
43 int main(
int argc,
char **argv) {
45 if ( argc > 2 && ! strcmp(argv[1],
"+tclsh") ) {
65 #ifdef NODEGROUP_FORCE_REGISTER 66 CProxy_PatchData cpdata(CkpvAccess(BOCclass_group).patchData);
67 PatchData* patchData = cpdata.ckLocalBranch();
71 for(argc = 0; argv[argc]; ++argc);
73 #if defined(WIN32) && !defined(__CYGWIN__) 74 CkPrintf(
"\nFATAL ERROR: No simulation config file specified on command line.\n");
75 CkPrintf(
"\nNOTE: NAMD has no graphical interface and must be run from a command line.\n");
77 CkPrintf(
"\nSleeping %d seconds before exiting...\n", nsleep);
82 NAMD_die(
"No simulation config file specified on command line.");
87 for(
int i = 1; i < argc; ++i) {
88 if ( strstr(argv[i],
"--") == argv[i] ) {
90 if ( i + 1 == argc ) {
91 sprintf(buf,
"missing argument for command line option %s", argv[i]);
94 if ( ! strcmp(argv[i],
"--tclmain") ) {
96 iout <<
iINFO <<
"Command-line argument is";
97 for (
int j=i; j<argc; ++j ) {
iout <<
" " << argv[j]; }
99 script->
tclmain(argc-i-1,argv+i+1);
103 sprintf(buf,
"%s %s", argv[i]+2, argv[i+1]);
104 iout <<
iINFO <<
"Command-line argument is --" << buf <<
"\n" <<
endi;
109 char *confFile = argv[i];
111 char *confFile = argv[argc-1];
113 iout <<
iINFO <<
"Configuration file is " << confFile <<
"\n" <<
endi;
115 char *currentdir=confFile;
118 for(tmp=confFile;*tmp;++tmp);
119 for( ; tmp != confFile && *tmp !=
PATHSEP; --tmp);
120 #if defined(WIN32) && !defined(__CYGWIN__) 121 if (tmp == confFile) {
123 for(tmp=confFile;*tmp;++tmp);
124 for( ; tmp != confFile && *tmp !=
'/'; --tmp);
128 if ( tmp != confFile )
130 *tmp = 0; confFile = tmp + 1;
133 if (stat(confFile, &statBuf)) {
135 sprintf(buf,
"Unable to access config file %s%c%s",currentdir,
PATHSEP,confFile);
138 iout <<
iINFO <<
"Changed directory to " << currentdir <<
"\n" <<
endi;
140 if ( ! currentdir )
NAMD_err(
"getcwd after chdir");
146 if (stat(confFile, &statBuf)) {
148 sprintf(buf,
"Unable to access config file %s",confFile);
153 if (stat(confFile, &statBuf)) {
155 if ( confFile[0] ==
'-' || confFile[0] ==
'+' ) {
156 sprintf(buf,
"Unknown command-line option %s",confFile);
158 sprintf(buf,
"Unable to access config file %s",confFile);
165 currentdir = tmpcurdir;
166 iout <<
iINFO <<
"Working in the current directory " << origcwd <<
"\n" <<
endi;
170 #ifdef MEM_OPT_VERSION 171 int dirlen = strlen(currentdir);
172 gWorkDir =
new char[dirlen+1];
174 memcpy(gWorkDir, currentdir, dirlen);
180 script->
load(confFile);
182 script->
run(confFile);
std::ostream & iINFO(std::ostream &s)
void NAMD_err(const char *err_msg)
void after_backend_init(int argc, char **argv)
void load(char *scriptFile)
static void exit(int status=0)
std::ostream & endi(std::ostream &s)
static void init(int argc, char **argv)
void setScript(ScriptTcl *s)
void NAMD_die(const char *err_msg)
void tclmain(int, char **)
int main(int argc, char **argv)
static int tclsh(int, char **)