Actual source code: zviewer.c

  1: /*$Id: zviewer.c,v 1.33 2001/08/06 21:19:11 bsmith Exp $*/

 3:  #include src/fortran/custom/zpetsc.h
 4:  #include petsc.h

  6: #ifdef PETSC_HAVE_FORTRAN_CAPS
  7: #define petscviewerdestroy_        PETSCVIEWERDESTROY
  8: #define petscviewerasciiopen_      PETSCVIEWERASCIIOPEN
  9: #define petscviewersetformat_      PETSCVIEWERSETFORMAT
 10: #define petscviewerpushformat_     PETSCVIEWERPUSHFORMAT
 11: #define petscviewerpopformat_      PETSCVIEWERPOPFORMAT
 12: #define petscviewerbinaryopen_     PETSCVIEWERBINARYOPEN
 13: #define petscviewersocketopen_     PETSCVIEWERSOCKETOPEN
 14: #define petscviewerstringopen_     PETSCVIEWERSTRINGOPEN
 15: #define petscviewerdrawopen_       PETSCVIEWERDRAWOPEN
 16: #define petscviewerbinarysettype_  PETSCVIEWERBINARYSETTYPE
 17: #define petscviewersetfilename_    PETSCVIEWERSETFILENAME
 18: #define petscviewersocketputscalar_ PETSCVIEWERSOCKETPUTSCALAR
 19: #define petscviewersocketputint_    PETSCVIEWERSOCKETPUTINT
 20: #define petscviewersocketputreal_   PETSCVIEWERSOCKETPUTREAL
 21: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
 22: #define petscviewersocketputscalar_ petscviewersocketputscalar
 23: #define petscviewersocketputint_    petscviewersocketputint
 24: #define petscviewersocketputreal_   petscviewersocketputreal
 25: #define petscviewerdestroy_        petscviewerdestroy
 26: #define petscviewerasciiopen_      petscviewerasciiopen
 27: #define petscviewersetformat_      petscviewersetformat
 28: #define petscviewerpushformat_     petscviewerpushformat
 29: #define petscviewerpopformat_      petscviewerpopformat
 30: #define petscviewerbinaryopen_     petscviewerbinaryopen
 31: #define petscviewersocketopen_     petscviewersocketopen
 32: #define petscviewerstringopen_     petscviewerstringopen
 33: #define petscviewerdrawopen_       petscviewerdrawopen
 34: #define petscviewerbinarysettype_  petscviewerbinarysettype
 35: #define petscviewersetfilename_    petscviewersetfilename
 36: #endif

 38: EXTERN_C_BEGIN

 40: void PETSC_STDCALL petscviewersocketputscalar(PetscViewer *viewer,int *m,int *n,PetscScalar *s,int *ierr)
 41: {
 42:   PetscViewer v;
 43:   PetscPatchDefaultViewers_Fortran(viewer,v);
 44:   *PetscViewerSocketPutScalar(v,*m,*n,s);
 45: }

 47: void PETSC_STDCALL petscviewersocketputreal(PetscViewer *viewer,int *m,int *n,PetscReal *s,int *ierr)
 48: {
 49:   PetscViewer v;
 50:   PetscPatchDefaultViewers_Fortran(viewer,v);
 51:   *PetscViewerSocketPutReal(v,*m,*n,s);
 52: }

 54: void PETSC_STDCALL petscviewersocketputint(PetscViewer *viewer,int *m,int *s,int *ierr)
 55: {
 56:   PetscViewer v;
 57:   PetscPatchDefaultViewers_Fortran(viewer,v);
 58:   *PetscViewerSocketPutInt(v,*m,s);
 59: }

 61: void PETSC_STDCALL petscviewersetfilename_(PetscViewer *viewer,CHAR name PETSC_MIXED_LEN(len),
 62:                                       int *ierr PETSC_END_LEN(len))
 63: {
 64:   char   *c1;
 65:   PetscViewer v;
 66:   PetscPatchDefaultViewers_Fortran(viewer,v);
 67:   FIXCHAR(name,len,c1);
 68:   *PetscViewerSetFilename(v,c1);
 69:   FREECHAR(name,c1);
 70: }

 72: void PETSC_STDCALL  petscviewerbinarysettype_(PetscViewer *viewer,PetscViewerBinaryType *type,int *ierr)
 73: {
 74:   PetscViewer v;
 75:   PetscPatchDefaultViewers_Fortran(viewer,v);
 76:   *PetscViewerBinarySetType(v,*type);
 77: }

 79: void PETSC_STDCALL petscviewersocketopen_(MPI_Comm *comm,CHAR name PETSC_MIXED_LEN(len),int *port,PetscViewer *lab,int *ierr PETSC_END_LEN(len))
 80: {
 81:   char   *c1;
 82:   FIXCHAR(name,len,c1);
 83:   *PetscViewerSocketOpen((MPI_Comm)PetscToPointerComm(*comm),c1,*port,lab);
 84:   FREECHAR(name,c1);
 85: }

 87: void PETSC_STDCALL petscviewerbinaryopen_(MPI_Comm *comm,CHAR name PETSC_MIXED_LEN(len),PetscViewerBinaryType *type,
 88:                            PetscViewer *binv,int *ierr PETSC_END_LEN(len))
 89: {
 90:   char   *c1;
 91:   FIXCHAR(name,len,c1);
 92:   *PetscViewerBinaryOpen((MPI_Comm)PetscToPointerComm(*comm),c1,*type,binv);
 93:   FREECHAR(name,c1);
 94: }

 96: void PETSC_STDCALL petscviewerasciiopen_(MPI_Comm *comm,CHAR name PETSC_MIXED_LEN(len),PetscViewer *lab,
 97:                                     int *ierr PETSC_END_LEN(len))
 98: {
 99:   char   *c1;
100:   FIXCHAR(name,len,c1);
101:   *PetscViewerASCIIOpen((MPI_Comm)PetscToPointerComm(*comm),c1,lab);
102:   FREECHAR(name,c1);
103: }

105: void PETSC_STDCALL petscviewersetformat_(PetscViewer *vin,PetscViewerFormat *format,int *ierr)
106: {
107:   PetscViewer v;
108:   PetscPatchDefaultViewers_Fortran(vin,v);
109:   *PetscViewerSetFormat(v,*format);
110: }

112: void PETSC_STDCALL petscviewerpushformat_(PetscViewer *vin,PetscViewerFormat *format,int *ierr)
113: {
114:   PetscViewer v;
115:   PetscPatchDefaultViewers_Fortran(vin,v);
116:   *PetscViewerPushFormat(v,*format);
117: }

119: void PETSC_STDCALL petscviewerpopformat_(PetscViewer *vin,int *ierr)
120: {
121:   PetscViewer v;
122:   PetscPatchDefaultViewers_Fortran(vin,v);
123:   *PetscViewerPopFormat(v);
124: }

126: void PETSC_STDCALL petscviewerdestroy_(PetscViewer *v,int *ierr)
127: {
128:   *PetscViewerDestroy(*v);
129: }

131: void PETSC_STDCALL petscviewerstringopen_(MPI_Comm *comm,CHAR name PETSC_MIXED_LEN(len1),int *len,PetscViewer *str,
132:                                      int *ierr PETSC_END_LEN(len1))
133: {
134: #if defined(PETSC_USES_CPTOFCD)
135:   *PetscViewerStringOpen((MPI_Comm)PetscToPointerComm(*comm),_fcdtocp(name),*len,str);
136: #else
137:   *PetscViewerStringOpen((MPI_Comm)PetscToPointerComm(*comm),name,*len,str);
138: #endif
139: }
140: 
141: void PETSC_STDCALL petscviewerdrawopen_(MPI_Comm *comm,CHAR display PETSC_MIXED_LEN(len1),
142:                    CHAR title PETSC_MIXED_LEN(len2),int *x,int*y,int*w,int*h,PetscViewer *v,
143:                    int *ierr PETSC_END_LEN(len1) PETSC_END_LEN(len2))
144: {
145:   char   *c1,*c2;

147:   FIXCHAR(display,len1,c1);
148:   FIXCHAR(title,len2,c2);
149:   *PetscViewerDrawOpen((MPI_Comm)PetscToPointerComm(*comm),c1,c2,*x,*y,*w,*h,v);
150:   FREECHAR(display,c1);
151:   FREECHAR(title,c2);
152: }

154: EXTERN_C_END