Actual source code: zviewer.c

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

  5: #ifdef PETSC_HAVE_FORTRAN_CAPS
  6: #define petscviewerdestroy_        PETSCVIEWERDESTROY
  7: #define petscviewerasciiopen_      PETSCVIEWERASCIIOPEN
  8: #define petscviewersetformat_      PETSCVIEWERSETFORMAT
  9: #define petscviewerpushformat_     PETSCVIEWERPUSHFORMAT
 10: #define petscviewerpopformat_      PETSCVIEWERPOPFORMAT
 11: #define petscviewerbinaryopen_     PETSCVIEWERBINARYOPEN
 12: #define petscviewermatlabopen_     PETSCVIEWERMATLABOPEN
 13: #define petscviewersocketopen_     PETSCVIEWERSOCKETOPEN
 14: #define petscviewerstringopen_     PETSCVIEWERSTRINGOPEN
 15: #define petscviewerdrawopen_       PETSCVIEWERDRAWOPEN
 16: #define petscviewersetfiletype_    PETSCVIEWERSETFILETYPE
 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 petscviewermatlabopen_     petscviewermatlabopen
 32: #define petscviewersocketopen_     petscviewersocketopen
 33: #define petscviewerstringopen_     petscviewerstringopen
 34: #define petscviewerdrawopen_       petscviewerdrawopen
 35: #define petscviewersetfiletype_    petscviewersetfiletype
 36: #define petscviewersetfilename_    petscviewersetfilename
 37: #endif


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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