fix more bugs with dump_modify every/time

This commit is contained in:
Axel Kohlmeyer
2022-05-05 00:06:08 -04:00
parent bd4bbbddbe
commit 2b1716cb3a
2 changed files with 5 additions and 6 deletions

View File

@ -1086,6 +1086,7 @@ void Dump::modify_params(int narg, char **arg)
} }
output->mode_dump[idump] = 1; output->mode_dump[idump] = 1;
output->every_time_dump[idump] = delta; output->every_time_dump[idump] = delta;
output->next_dump[idump] = update->ntimestep;
iarg += 2; iarg += 2;
} else if (strcmp(arg[iarg],"fileper") == 0) { } else if (strcmp(arg[iarg],"fileper") == 0) {

View File

@ -495,8 +495,7 @@ void Output::calculate_next_dump(int which, int idump, bigint ntimestep)
// which = WRITE: increment nextdump by every_dump // which = WRITE: increment nextdump by every_dump
if (which == SETUP) if (which == SETUP)
next_dump[idump] = next_dump[idump] = (ntimestep/every_dump[idump])*every_dump[idump] + every_dump[idump];
(ntimestep/every_dump[idump])*every_dump[idump] + every_dump[idump];
else if (which == WRITE) else if (which == WRITE)
next_dump[idump] += every_dump[idump]; next_dump[idump] += every_dump[idump];
@ -754,16 +753,14 @@ void Output::add_dump(int narg, char **arg)
if (ndump == max_dump) { if (ndump == max_dump) {
max_dump += DELTA; max_dump += DELTA;
dump = (Dump **) dump = (Dump **) memory->srealloc(dump,max_dump*sizeof(Dump *),"output:dump");
memory->srealloc(dump,max_dump*sizeof(Dump *),"output:dump");
memory->grow(mode_dump,max_dump,"output:mode_dump"); memory->grow(mode_dump,max_dump,"output:mode_dump");
memory->grow(every_dump,max_dump,"output:every_dump"); memory->grow(every_dump,max_dump,"output:every_dump");
memory->grow(every_time_dump,max_dump,"output:every_time_dump"); memory->grow(every_time_dump,max_dump,"output:every_time_dump");
memory->grow(next_dump,max_dump,"output:next_dump"); memory->grow(next_dump,max_dump,"output:next_dump");
memory->grow(next_time_dump,max_dump,"output:next_time_dump"); memory->grow(next_time_dump,max_dump,"output:next_time_dump");
memory->grow(last_dump,max_dump,"output:last_dump"); memory->grow(last_dump,max_dump,"output:last_dump");
var_dump = (char **) var_dump = (char **) memory->srealloc(var_dump,max_dump*sizeof(char *),"output:var_dump");
memory->srealloc(var_dump,max_dump*sizeof(char *),"output:var_dump");
memory->grow(ivar_dump,max_dump,"output:ivar_dump"); memory->grow(ivar_dump,max_dump,"output:ivar_dump");
} }
@ -784,6 +781,7 @@ void Output::add_dump(int narg, char **arg)
last_dump[ndump] = -1; last_dump[ndump] = -1;
var_dump[ndump] = nullptr; var_dump[ndump] = nullptr;
ivar_dump[ndump] = -1; ivar_dump[ndump] = -1;
next_dump[ndump] = 0;
ndump++; ndump++;
} }