예제 #1
0
파일: dio.c 프로젝트: rolk/ug
int     Read_DT_General (DIO_GENERAL *dio_general)
{
  int i;

  /* initialize basic i/o */
  if (Bio_Initialize(stream,BIO_ASCII,'r')) return (1);

  /* head always in ACSII */
  if (Bio_Read_string(buffer)) return (1);if (strcmp(buffer,DIO_TITLE_LINE)!=0) return (1);
  if (Bio_Read_mint(1,intList)) return (1);
  dio_general->mode               = intList[0];

  /* re-initialize basic i/o */
  if (Bio_Initialize(stream,dio_general->mode,'r')) return (1);

  /* now special mode */
  if (Bio_Read_string(dio_general->version)) return (1);
  if (strcmp(dio_general->version,"DATA_IO_1.6")==0)
  {
    strcpy(dio_general->version,"DATA_IO_1.7");
  }
  else
  {
    if (Bio_Read_string(dio_general->ident)) return (1);
  }
  if (Bio_Read_string(dio_general->mgfile)) return (1);
  if (Bio_Read_mdouble(1,&(dio_general->time))) return (1);
  if (Bio_Read_mdouble(1,&(dio_general->dt))) return (1);
  if (Bio_Read_mdouble(1,&(dio_general->ndt))) return (1);
  if (Bio_Read_mint(4,intList)) return (1);
  dio_general->nparfiles          = intList[0];
  dio_general->me                         = intList[1];
  dio_general->magic_cookie       = intList[2];
  dio_general->nVD                        = intList[3];
  for (i=0; i<dio_general->nVD; i++)
  {
    if (Bio_Read_string(dio_general->VDname[i])) return (1);
    if (Bio_Read_mint(1,dio_general->VDncomp+i)) return (1);
    if (Bio_Read_mint(1,dio_general->VDtype+i)) return (1);
    if (Bio_Read_string(dio_general->VDcompNames[i])) return (1);
  }
  if (Bio_Read_mint(1,intList)) return (1);
  dio_general->ndata              = intList[0];

  return (0);
}
예제 #2
0
파일: gen.c 프로젝트: dodwelltim/ug
BNDP *BNDP_LoadBndP_Ext (void)
{
  BP *p;
  INT j;
  int iList[3+MAX_SEGMENTS];
  double dList[DIM];

  if (Bio_Read_mint(3,iList)) return (NULL);
  p  = (BP *)malloc(sizeof(BP)+(iList[2]-1)*sizeof(int));
  p->id = iList[0];
  p->property = iList[1];
  p->n = iList[2];
  if (Bio_Read_mint(p->n,iList)) return (NULL);
  for (j=0; j<p->n; j++)
    p->segment[j] = iList[j];
  if (Bio_Read_mdouble(DIM,dList)) return (NULL);
  for (j=0; j<DIM; j++)
    p->x[j] = dList[j];

  return((BNDP *)p);
}
예제 #3
0
파일: gen.c 프로젝트: dodwelltim/ug
BNDP *BNDP_LoadBndP (BVP *theBVP, HEAP *Heap)
{
  BP *p;
  INT j;
  int iList[3+MAX_SEGMENTS];
  double dList[DIM];

  if (Bio_Read_mint(3,iList)) return (NULL);
  p = (BP *) GetFreelistMemory(Heap,sizeof(BP)+(iList[2]-1)*sizeof(int));
  p->id = iList[0];
  p->property = iList[1];
  p->n = iList[2];
  if (Bio_Read_mint(p->n,iList)) return (NULL);
  for (j=0; j<p->n; j++)
    p->segment[j] = iList[j];
  if (Bio_Read_mdouble(DIM,dList)) return (NULL);
  for (j=0; j<DIM; j++)
    p->x[j] = dList[j];

  return((BNDP *)p);
}