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:
@ -906,7 +906,7 @@ void Input::partition()
|
|||||||
|
|
||||||
void Input::print()
|
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)
|
// copy 1st arg back into line (copy is being used)
|
||||||
// check maxline since arg[0] could have been exanded by variables
|
// check maxline since arg[0] could have been exanded by variables
|
||||||
@ -917,9 +917,41 @@ void Input::print()
|
|||||||
strcpy(line,arg[0]);
|
strcpy(line,arg[0]);
|
||||||
substitute(line,work,maxline,maxwork,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 (me == 0) {
|
||||||
if (screen) fprintf(screen,"%s\n",line);
|
if (strcmp(arg[iarg],"file") == 0) fp = fopen(arg[iarg+1],"w");
|
||||||
if (logfile) fprintf(logfile,"%s\n",line);
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user