void writenodetable(Pfloat *x) /* **--------------------------------------------------------------- ** Input: x = pointer to node results for current time ** Output: none ** Purpose: writes node results for current time to report file **--------------------------------------------------------------- */ { int i,j; char s[MAXLINE+1],s1[16]; float y[MAXVAR]; /* Write table header */ writeheader(NODEHDR,0); /* For each node: */ for (i=1; i<=Nnodes; i++) { /* Place results for each node variable in y */ y[ELEV] = Node[i].El*Ucf[ELEV]; for (j=DEMAND; j<=QUALITY; j++) y[j] = *((x[j-DEMAND])+i); /* Check if node gets reported on */ if ((Nodeflag == 1 || Node[i].Rpt) && checklimits(y,ELEV,QUALITY)) { /* Check if new page needed */ if (LineNum == (long)PageSize) writeheader(NODEHDR,1); /* Add node ID and each reported field to string s */ sprintf(s,"%-15s",Node[i].ID); for (j=ELEV; j<=QUALITY; j++) { if (Field[j].Enabled == TRUE) { /*** Updated 6/24/02 ***/ if (fabs(y[j]) > 1.e6) sprintf(s1, "%10.2e", y[j]); else sprintf(s1, "%10.*f", Field[j].Precision, y[j]); /*** End of update ***/ strcat(s, s1); } } /* Note if node is a reservoir/tank */ if (i > Njuncs) { strcat(s, " "); strcat(s, NodeTxt[getnodetype(i)]); } /* Write results for node */ writeline(s); } } writeline(" "); }
void writecontrolaction(int k, int i) /* ---------------------------------------------------------------- ** Input: k = link index ** i = control index ** Output: none ** Purpose: writes control action taken to status report **-------------------------------------------------------------- */ { int n; switch (Control[i].Type) { case LOWLEVEL: case HILEVEL: n = Control[i].Node; sprintf(Msg,FMT54,clocktime(Atime,Htime),LinkTxt[Link[k].Type], Link[k].ID,NodeTxt[getnodetype(n)],Node[n].ID); break; case TIMER: case TIMEOFDAY: sprintf(Msg,FMT55,clocktime(Atime,Htime),LinkTxt[Link[k].Type], Link[k].ID); break; default: return; } writeline(Msg); }
nodetype* insert_edge(nodetype *edges,int c){ nodetype *t,*temp; //printf("char is %d\n",c); t=edges; if(edges==NULL){ edges=getnodetype(edges); edges->edge=c; t=edges; }else{ while(t->next!=NULL){ t=t->next; } temp=getnodetype(temp); t->next=temp; temp->edge=c; } return edges; }