Esempio n. 1
0
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
Esempio n. 2
0
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
Esempio n. 3
0
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