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)
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: }