예제 #1
0
void SendMessagetoMasterTyp(char* message,int typ){
	struct timeval tv ;

	pvm_initsend(PvmDataDefault);
	pvm_pkint(&typ, 1, 1);

	gettimeofday(&tv,NULL);
	pvm_pklong(&tv.tv_sec,1,1);
	pvm_pklong(&tv.tv_usec,1,1);

	pvm_pkstr(message);	

	pvm_send(tid_master, MSG_DBG);

}
예제 #2
0
void SendBorderTime(BOOL leftest, BOOL rightest)
{
  BorderTimeDesc *bt;
  int nbt = 0, i, dff;
  for (bt = bordertime; bt; bt = bt->next)
    nbt += (bt->section != WEST_BORDER || leftest)  &&
           (bt->section != EAST_BORDER || rightest);
  pvm_pkint(&nbt, 1, 1);
  for (bt = bordertime; bt; bt = bt->next)  {
    if ((bt->section == WEST_BORDER && !leftest)  ||
        (bt->section == EAST_BORDER && !rightest))  continue;
    pvm_pkint((int *)&bt->vartype, 1, 1);
    pvm_pkint((int *)&bt->section, 1, 1);
    pvm_pkint(&bt->bigdim, 1, 1);
    pvm_pkint(&bt->ntime, 1, 1);
    pvm_pkint(&bt->itime, 1, 1);
    pvm_pkint(&bt->cdfid, 1, 1);
    pvm_pkint(&bt->vid, 1, 1);
    pvm_pkstr((char *)bt->actualvar.name);
    pvm_pkint((int *)&bt->actualvar.v.et, 1, 1);
    pvm_pkushort(&bt->actualvar.dims, 1, 1);
    pvm_pkint((int *)&bt->actualvar.storetype, 1, 1);
    pvm_pkint(&bt->actualvar.id, 1, 1);
    pvm_pkint(&bt->actualvar.ncoord, 1, 1);
    pvm_pkint((int *)&bt->nextvar.v.et, 1, 1);
    pvm_pkushort(&bt->nextvar.dims, 1, 1);
    pvm_pkint((int *)&bt->nextvar.storetype, 1, 1);
    pvm_pklong(bt->timetable, bt->ntime, 1);
    pvm_pkuint((unsigned *)bt->coords, 4, 1);
    for (i = 0; i < 4; i++)  {
      dff = bt->dimptr[i] - bt->coords;
      pvm_pkint(&dff, 1, 1);
    }
  }
}