NMD
u13.c
Go to the documentation of this file.
00001 #include <stdlib.h>
00002 #include "memory.h"
00003 #include "nmd.h"
00004 
00005 /*! Object reporting */
00006 int main(int argc,char **argv) {
00007   NMD_metadata nmd; NMDErrorCode ierr; 
00008   int i=5; double r=6.7;
00009   int *ii; double *rr;
00010   PetscFunctionBegin;
00011   PetscInitialize(&argc,&argv,0,0);
00012 
00013   ierr = NMDCreateObject(&nmd); NMD_ERR_RETURN(ierr);
00014 
00015   ierr = NMDSetValue(nmd,"cat1","cmp1",NMDInt,&i); NMD_ERR_RETURN(ierr);
00016   ierr = NMDSetValue(nmd,"cat1","cmp2",NMDReal,&r); NMD_ERR_RETURN(ierr);
00017 
00018 #define ILEN 4
00019   NMD_MALLOC(ii,ILEN,int,"int array");
00020   for (i=0; i<ILEN; i++) ii[i] = 2*i;
00021   ierr = NMDSetArrayValue
00022     (nmd,"cat1","cmp3",NMDIntarray,&ii,ILEN); NMD_ERR_RETURN(ierr);
00023 
00024 #define RLEN 6
00025   NMD_MALLOC(rr,RLEN,NMDRealtype,"real array");
00026   for (i=0; i<RLEN; i++) rr[i] = i*i;
00027   ierr = NMDSetArrayValue
00028     (nmd,"cat1","cmp4",NMDRealarray,&rr,RLEN); NMD_ERR_RETURN(ierr);
00029 
00030   {
00031     const char *s1,*s2,*s3;
00032     ierr = NMDReportObject(nmd,NMDFalse,&s1,&s2,'\n',0,0); NMD_ERR_RETURN(ierr);
00033     printf("keys:\n%s\nvalues:\n%s\n",s1,s2);
00034     ierr = NMDReportObject(nmd,NMDTrue,NULL,&s3,'\n',0,0); NMD_ERR_RETURN(ierr);
00035     printf("values with arrays:\n%s\n",s3);
00036     NMD_FREE(s1);
00037     NMD_FREE(s2);
00038     NMD_FREE(s3);
00039   }
00040 
00041   NMD_FREE(ii);
00042   NMD_FREE(rr);
00043   ierr = NMDDestroyObject(nmd); NMD_ERR_RETURN(ierr);
00044 
00045   PetscFinalize();
00046   PetscFunctionReturn(0);
00047 }