void PDQ_SetVisits_p(char *nodename, char *workname, double *visits, double *service) { extern NODE_TYPE *node; extern int demand_ext; extern int PDQ_DEBUG; char *p = "PDQ_SetVisits()"; // Added by NJG on Wednesday, June 1, 2016 // Needed in case SetVisits used instead of SetDemand demands = 1; // non-zero since SetDemand equivalent now called if (PDQ_DEBUG) { PRINTF("nodename : %s workname : %s visits : %f service : %f\n", nodename, workname, *visits, *service); } if (demand_ext == VOID || demand_ext == VISITS) { node[getnode_index(nodename)].visits[getjob_index(workname)] = *visits; node[getnode_index(nodename)].service[getjob_index(workname)] = *service; node[getnode_index(nodename)].demand[getjob_index(workname)] = (*visits) * (*service); demand_ext = VISITS; } else errmsg(p, "Extension conflict"); } // PDQ_SetVisits
void PDQ_SetVisits_p(char *nodename, char *workname, double *visits, double *service) { extern NODE_TYPE *node; extern int demand_ext; extern int PDQ_DEBUG; char *p = "PDQ_SetVisits()"; if (PDQ_DEBUG) { PRINTF("nodename : %s workname : %s visits : %f service : %f\n", nodename, workname, *visits, *service); } if (demand_ext == VOID || demand_ext == VISITS) { node[getnode_index(nodename)].visits[getjob_index(workname)] = *visits; node[getnode_index(nodename)].service[getjob_index(workname)] = *service; node[getnode_index(nodename)].demand[getjob_index(workname)] = (*visits) * (*service); demand_ext = VISITS; } else errmsg(p, "Extension conflict"); } // PDQ_SetVisits
void PDQ_SetDemand_p(char *nodename, char *workname, double *time) { char *p = "PDQ_SetDemand()"; extern NODE_TYPE *node; extern int nodes; extern int streams; extern int demands; // from PDQ_Globals.h extern int demand_ext; extern int PDQ_DEBUG; int node_index; int job_index; FILE *out_fd; demands = 1; // count is non-zero since SetDemand now called if (PDQ_DEBUG) { debug(p, "Entering"); out_fd = fopen("PDQ.out", "a"); fprintf(out_fd, "nodename : %s workname : %s time : %f\n", nodename, workname, *time); //PJP This should really be fclose // close(out_fd); fclose(out_fd); } /* that demand type is being used consistently per model */ if (demand_ext == VOID || demand_ext == DEMAND) { node_index = getnode_index(nodename); job_index = getjob_index(workname); #ifndef __R_PDQ if (!((node_index >=0) && (node_index <= nodes))) { fprintf(stderr, "Illegal node index value %d\n", node_index); exit(1); } if (!((job_index >=0) && (job_index <= streams))) { fprintf(stderr, "Illegal job index value %d\n", job_index); exit(1); } #else if (!((node_index >=0) && (node_index <= nodes))) { // REprintf("Illegal node index value %d\n", node_index); error("Illegal node index value %d\n", node_index); } if (!((job_index >=0) && (job_index <= streams))) { // REprintf("Illegal node index value %d\n", node_index); error("Illegal node index value %d\n", node_index); } #endif node[node_index].demand[job_index] = *time; demand_ext = DEMAND; } else { errmsg(p, "Extension conflict"); } if (PDQ_DEBUG) { debug(p, "Exiting"); } } // PDQ_SetDemand