void output_saveNodeResults(double reportTime, FILE* file) // // Input: reportTime = elapsed simulation time (millisec) // file = ptr. to binary output file // Output: none // Purpose: writes computed node results to binary file. // { extern TRoutingTotals StepFlowTotals; // defined in massbal.c int j; // --- find where current reporting time lies between latest routing times double f = (reportTime - OldRoutingTime) / (NewRoutingTime - OldRoutingTime); // --- write node results to file for (j=0; j<Nobjects[NODE]; j++) { // --- retrieve interpolated results for reporting time & write to file node_getResults(j, f, NodeResults); if ( Node[j].rptFlag ) //(5.0.014 - LR) fwrite(NodeResults, sizeof(REAL4), NnodeResults, file); //(5.0.014 - LR) // --- update system-wide storage volume //(5.0.012 - LR) //SysResults[SYS_FLOODING] += NodeResults[NODE_OVERFLOW]; //(5.0.012 - LR) SysResults[SYS_STORAGE] += NodeResults[NODE_VOLUME]; //if ( Node[j].degree == 0 ) //(5.0.012 - LR) //{ //(5.0.012 - LR) // SysResults[SYS_OUTFLOW] += NodeResults[NODE_INFLOW]; //(5.0.012 - LR) //} //(5.0.012 - LR) } // --- update system-wide flows //(5.0.012 - LR) SysResults[SYS_FLOODING] = (REAL4) (StepFlowTotals.flooding * UCF(FLOW)); //(5.0.012 - LR) SysResults[SYS_OUTFLOW] = (REAL4) (StepFlowTotals.outflow * UCF(FLOW)); //(5.0.012 - LR) SysResults[SYS_DWFLOW] = (REAL4)(StepFlowTotals.dwInflow * UCF(FLOW)); SysResults[SYS_GWFLOW] = (REAL4)(StepFlowTotals.gwInflow * UCF(FLOW)); SysResults[SYS_IIFLOW] = (REAL4)(StepFlowTotals.iiInflow * UCF(FLOW)); SysResults[SYS_EXFLOW] = (REAL4)(StepFlowTotals.exInflow * UCF(FLOW)); SysResults[SYS_INFLOW] = SysResults[SYS_RUNOFF] + SysResults[SYS_DWFLOW] + SysResults[SYS_GWFLOW] + SysResults[SYS_IIFLOW] + SysResults[SYS_EXFLOW]; }
void output_saveNodeResults(Project* project, double reportTime, FILE* file) // // Input: reportTime = elapsed simulation time (millisec) // file = ptr. to binary output file // Output: none // Purpose: writes computed node results to binary file. // { //project->project->StepFlowTotals; // defined in massbal.c int j; // --- find where current reporting time lies between latest routing times double f = (reportTime - project->OldRoutingTime) / (project->NewRoutingTime - project->OldRoutingTime); // --- write node results to file for (j=0; j<project->Nobjects[NODE]; j++) { // --- retrieve interpolated results for reporting time & write to file node_getResults(project,j, f, project->NodeResults); if ( project->Node[j].rptFlag ) fwrite(project->NodeResults, sizeof(REAL4), project->NnodeResults, file); stats_updateMaxNodeDepth(project,j, project->NodeResults[NODE_DEPTH]); //(5.1.008) // --- update system-wide storage volume project->SysResults[SYS_STORAGE] += project->NodeResults[NODE_VOLUME]; } // --- update system-wide flows project->SysResults[SYS_FLOODING] = (REAL4) (project->StepFlowTotals.flooding * UCF(project,FLOW)); project->SysResults[SYS_OUTFLOW] = (REAL4)(project->StepFlowTotals.outflow * UCF(project, FLOW)); project->SysResults[SYS_DWFLOW] = (REAL4)(project->StepFlowTotals.dwInflow * UCF(project, FLOW)); project->SysResults[SYS_GWFLOW] = (REAL4)(project->StepFlowTotals.gwInflow * UCF(project, FLOW)); project->SysResults[SYS_IIFLOW] = (REAL4)(project->StepFlowTotals.iiInflow * UCF(project, FLOW)); project->SysResults[SYS_EXFLOW] = (REAL4)(project->StepFlowTotals.exInflow * UCF(project, FLOW)); project->SysResults[SYS_INFLOW] = project->SysResults[SYS_RUNOFF] + project->SysResults[SYS_DWFLOW] + project->SysResults[SYS_GWFLOW] + project->SysResults[SYS_IIFLOW] + project->SysResults[SYS_EXFLOW]; }