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 petscviewermatlabopen_     PETSCVIEWERMATLABOPEN
 14: #define petscviewersocketopen_     PETSCVIEWERSOCKETOPEN
 15: #define petscviewerstringopen_     PETSCVIEWERSTRINGOPEN
 16: #define petscviewerdrawopen_       PETSCVIEWERDRAWOPEN
 17: #define petscviewersetfiletype_    PETSCVIEWERSETFILETYPE
 18: #define petscviewersetfilename_    PETSCVIEWERSETFILENAME
 19: #define petscviewersocketputscalar_ PETSCVIEWERSOCKETPUTSCALAR
 20: #define petscviewersocketputint_    PETSCVIEWERSOCKETPUTINT
 21: #define petscviewersocketputreal_   PETSCVIEWERSOCKETPUTREAL
 22: #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
 23: #define petscviewersocketputscalar_ petscviewersocketputscalar
 24: #define petscviewersocketputint_    petscviewersocketputint
 25: #define petscviewersocketputreal_   petscviewersocketputreal
 26: #define petscviewerdestroy_        petscviewerdestroy
 27: #define petscviewerasciiopen_      petscviewerasciiopen
 28: #define petscviewersetformat_      petscviewersetformat
 29: #define petscviewerpushformat_     petscviewerpushformat
 30: #define petscviewerpopformat_      petscviewerpopformat
 31: #define petscviewerbinaryopen_     petscviewerbinaryopen
 32: #define petscviewermatlabopen_     petscviewermatlabopen
 33: #define petscviewersocketopen_     petscviewersocketopen
 34: #define petscviewerstringopen_     petscviewerstringopen
 35: #define petscviewerdrawopen_       petscviewerdrawopen
 36: #define petscviewersetfiletype_    petscviewersetfiletype
 37: #define petscviewersetfilename_    petscviewersetfilename
 38: #endif

 40: EXTERN_C_BEGIN

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

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

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

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

 74: void PETSC_STDCALL  petscviewersetfiletype_(PetscViewer *viewer,PetscViewerFileType *type,int *ierr)
 75: {
 76:   PetscViewer v;
 77:   PetscPatchDefaultViewers_Fortran(viewer,v);
 78:   *PetscViewerSetFileType(v,*type);
 79: }

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

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

 98: #if defined(PETSC_HAVE_MATLAB) && !defined(PETSC_USE_COMPLEX)
 99: void PETSC_STDCALL petscviewermatlabopen_(MPI_Comm *comm,CHAR name PETSC_MIXED_LEN(len),PetscViewerFileType *type,
100:                            PetscViewer *binv,int *ierr PETSC_END_LEN(len))
101: {
102:   char   *c1;
103:   FIXCHAR(name,len,c1);
104:   *PetscViewerMatlabOpen((MPI_Comm)PetscToPointerComm(*comm),c1,*type,binv);
105:   FREECHAR(name,c1);
106: }
107: #endif

109: void PETSC_STDCALL petscviewerasciiopen_(MPI_Comm *comm,CHAR name PETSC_MIXED_LEN(len),PetscViewer *lab,
110:                                     int *ierr PETSC_END_LEN(len))
111: {
112:   char   *c1;
113:   FIXCHAR(name,len,c1);
114:   *PetscViewerASCIIOpen((MPI_Comm)PetscToPointerComm(*comm),c1,lab);
115:   FREECHAR(name,c1);
116: }

118: void PETSC_STDCALL petscviewersetformat_(PetscViewer *vin,PetscViewerFormat *format,int *ierr)
119: {
120:   PetscViewer v;
121:   PetscPatchDefaultViewers_Fortran(vin,v);
122:   *PetscViewerSetFormat(v,*format);
123: }

125: void PETSC_STDCALL petscviewerpushformat_(PetscViewer *vin,PetscViewerFormat *format,int *ierr)
126: {
127:   PetscViewer v;
128:   PetscPatchDefaultViewers_Fortran(vin,v);
129:   *PetscViewerPushFormat(v,*format);
130: }

132: void PETSC_STDCALL petscviewerpopformat_(PetscViewer *vin,int *ierr)
133: {
134:   PetscViewer v;
135:   PetscPatchDefaultViewers_Fortran(vin,v);
136:   *PetscViewerPopFormat(v);
137: }

139: void PETSC_STDCALL petscviewerdestroy_(PetscViewer *v,int *ierr)
140: {
141:   *PetscViewerDestroy(*v);
142: }

144: void PETSC_STDCALL petscviewerstringopen_(MPI_Comm *comm,CHAR name PETSC_MIXED_LEN(len1),int *len,PetscViewer *str,
145:                                      int *ierr PETSC_END_LEN(len1))
146: {
147: #if defined(PETSC_USES_CPTOFCD)
148:   *PetscViewerStringOpen((MPI_Comm)PetscToPointerComm(*comm),_fcdtocp(name),*len,str);
149: #else
150:   *PetscViewerStringOpen((MPI_Comm)PetscToPointerComm(*comm),name,*len,str);
151: #endif
152: }
153: 
154: void PETSC_STDCALL petscviewerdrawopen_(MPI_Comm *comm,CHAR display PETSC_MIXED_LEN(len1),
155:                    CHAR title PETSC_MIXED_LEN(len2),int *x,int*y,int*w,int*h,PetscViewer *v,
156:                    int *ierr PETSC_END_LEN(len1) PETSC_END_LEN(len2))
157: {
158:   char   *c1,*c2;

160:   FIXCHAR(display,len1,c1);
161:   FIXCHAR(title,len2,c2);
162:   *PetscViewerDrawOpen((MPI_Comm)PetscToPointerComm(*comm),c1,c2,*x,*y,*w,*h,v);
163:   FREECHAR(display,c1);
164:   FREECHAR(title,c2);
165: }

167: EXTERN_C_END