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 **)