NMD
|
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 }