Added file support to print command

git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@10589 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
athomps
2013-08-15 15:23:08 +00:00
parent 9dc10e8118
commit ba33c83271

View File

@ -906,7 +906,7 @@ void Input::partition()
void Input::print()
{
if (narg != 1) error->all(FLERR,"Illegal print command");
if (narg < 1) error->all(FLERR,"Illegal print command");
// copy 1st arg back into line (copy is being used)
// check maxline since arg[0] could have been exanded by variables
@ -917,9 +917,41 @@ void Input::print()
strcpy(line,arg[0]);
substitute(line,work,maxline,maxwork,0);
// parse optional args
FILE *fp = NULL;
int screenflag = 1;
int iarg = 1;
while (iarg < narg) {
if (strcmp(arg[iarg],"file") == 0 || strcmp(arg[iarg],"append") == 0) {
if (iarg+2 > narg) error->all(FLERR,"Illegal print command");
if (me == 0) {
if (screen) fprintf(screen,"%s\n",line);
if (logfile) fprintf(logfile,"%s\n",line);
if (strcmp(arg[iarg],"file") == 0) fp = fopen(arg[iarg+1],"w");
else fp = fopen(arg[iarg+1],"a");
if (fp == NULL) {
char str[128];
sprintf(str,"Cannot open print file %s",arg[iarg+1]);
error->one(FLERR,str);
}
}
iarg += 2;
} else if (strcmp(arg[iarg],"screen") == 0) {
if (iarg+2 > narg) error->all(FLERR,"Illegal print command");
if (strcmp(arg[iarg+1],"yes") == 0) screenflag = 1;
else if (strcmp(arg[iarg+1],"no") == 0) screenflag = 0;
else error->all(FLERR,"Illegal print command");
iarg += 2;
} else error->all(FLERR,"Illegal print command");
}
if (me == 0) {
if (screenflag && screen) fprintf(screen,"%s\n",line);
if (screenflag && logfile) fprintf(logfile,"%s\n",line);
if (fp) {
fprintf(fp,"%s\n",line);
fclose(fp);
}
}
}