STGTYP void DGLSystem::prsvar(DGLSystem::STATEV *ival,FILE *ofile)
{
   STAK *temps;
   DGLSystem::STATEV *tempv;
   int i,j;

   if (ival == NULL)
   {
      return;
   }
   fprintf(ofile," $%d %s\n",strlen(ival->name),ival->name);
   fprintf(ofile," %d %d %d\n",ival->size,ival->vnxt,ival->type);
   if (ival->type == 1)
   {
      fprintf(ofile," $%d ",ival->size);
      for (i=0 ; i<ival->size ; i++)
      {
         putc(ival->val.c[i],ofile);
      }
      fputs("\n",ofile);
   }
   else if (ival->type == 2 || ival->type == 4)
   {
      for (i=0 ; i<=ival->size ; i++)
      {
	 fprintf(ofile,"%d ",ival->val.i[i]);
      }
   }
   else if (ival->type == 3 || ival->type == 5)
   {
      for (i=0 ; i<ival->size ; i++)
      {
	 fprintf(ofile,"%d ",ival->val.i[i]);
      }
   }
   else if (ival->type == 6)
   {
      for (i=0 ; i<=ival->size ; i++)
      {
	 fprintf(ofile,"%d ",ival->val.x[i].size);
	 for (j=0 ; j<=ival->val.x[i].size ; j++)
	 {
	    fprintf(ofile,"%d ",ival->val.x[i].i[j]);
	 }
	 putc('\n',ofile);
      }
   }
   else if (ival->type == 7)
   {
      for (temps=ival->val.k ; temps ; temps=temps->next)
      {
         fprintf(ofile," $%d ",temps->length);
         for (i=0 ; i<temps->length ; i++)
         {
            putc(temps->val[i],ofile);
         }
         fputs("\n",ofile);
      }
   }
   else if (ival->type == 8)
   {
      DGLSystem::prsvar(ival->val.v,ofile);
   }
   else if (ival->type == 9)
   {
      for (tempv=ival->val.v ; tempv ; tempv=tempv->next)
      {
	 DGLSystem::prsvar(tempv,ofile);
      }
   }
   else if (ival->type == 10)
   {
      fprintf(ofile," %d ",ival->val.ii);
   }
   else if (ival->type == 11)
   {
      DGLSystem::advprint(ival->val.r,ofile);
   }
}
