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: #if defined(PETSC_USE_SOCKET_VIEWER)
42: void PETSC_STDCALL petscviewersocketputscalar(PetscViewer *viewer,PetscInt *m,PetscInt *n,PetscScalar *s,PetscErrorCode *ierr)
43: {
44: PetscViewer v;
45: PetscPatchDefaultViewers_Fortran(viewer,v);
46: *PetscViewerSocketPutScalar(v,*m,*n,s);
47: }
49: void PETSC_STDCALL petscviewersocketputreal(PetscViewer *viewer,PetscInt *m,PetscInt *n,PetscReal *s,PetscErrorCode *ierr)
50: {
51: PetscViewer v;
52: PetscPatchDefaultViewers_Fortran(viewer,v);
53: *PetscViewerSocketPutReal(v,*m,*n,s);
54: }
56: void PETSC_STDCALL petscviewersocketputint(PetscViewer *viewer,PetscInt *m,PetscInt *s,PetscErrorCode *ierr)
57: {
58: PetscViewer v;
59: PetscPatchDefaultViewers_Fortran(viewer,v);
60: *PetscViewerSocketPutInt(v,*m,s);
61: }
62: #endif
64: void PETSC_STDCALL petscviewersetfilename_(PetscViewer *viewer,CHAR name PETSC_MIXED_LEN(len),
65: PetscErrorCode *ierr PETSC_END_LEN(len))
66: {
67: char *c1;
68: PetscViewer v;
69: PetscPatchDefaultViewers_Fortran(viewer,v);
70: FIXCHAR(name,len,c1);
71: *PetscViewerSetFilename(v,c1);
72: FREECHAR(name,c1);
73: }
75: void PETSC_STDCALL petscviewersetfiletype_(PetscViewer *viewer,PetscViewerFileType *type,PetscErrorCode *ierr)
76: {
77: PetscViewer v;
78: PetscPatchDefaultViewers_Fortran(viewer,v);
79: *PetscViewerSetFileType(v,*type);
80: }
82: #if defined(PETSC_USE_SOCKET_VIEWER)
83: void PETSC_STDCALL petscviewersocketopen_(MPI_Comm *comm,CHAR name PETSC_MIXED_LEN(len),int *port,PetscViewer *lab,PetscErrorCode *ierr PETSC_END_LEN(len))
84: {
85: char *c1;
86: FIXCHAR(name,len,c1);
87: *PetscViewerSocketOpen((MPI_Comm)PetscToPointerComm(*comm),c1,*port,lab);
88: FREECHAR(name,c1);
89: }
90: #endif
92: void PETSC_STDCALL petscviewerbinaryopen_(MPI_Comm *comm,CHAR name PETSC_MIXED_LEN(len),PetscViewerFileType *type,
93: PetscViewer *binv,PetscErrorCode *ierr PETSC_END_LEN(len))
94: {
95: char *c1;
96: FIXCHAR(name,len,c1);
97: *PetscViewerBinaryOpen((MPI_Comm)PetscToPointerComm(*comm),c1,*type,binv);
98: FREECHAR(name,c1);
99: }
101: #if defined(PETSC_HAVE_MATLAB)
102: void PETSC_STDCALL petscviewermatlabopen_(MPI_Comm *comm,CHAR name PETSC_MIXED_LEN(len),PetscViewerFileType *type,
103: PetscViewer *binv,PetscErrorCode *ierr PETSC_END_LEN(len))
104: {
105: char *c1;
106: FIXCHAR(name,len,c1);
107: *PetscViewerMatlabOpen((MPI_Comm)PetscToPointerComm(*comm),c1,*type,binv);
108: FREECHAR(name,c1);
109: }
110: #endif
112: void PETSC_STDCALL petscviewerasciiopen_(MPI_Comm *comm,CHAR name PETSC_MIXED_LEN(len),PetscViewer *lab,
113: PetscErrorCode *ierr PETSC_END_LEN(len))
114: {
115: char *c1;
116: FIXCHAR(name,len,c1);
117: *PetscViewerASCIIOpen((MPI_Comm)PetscToPointerComm(*comm),c1,lab);
118: FREECHAR(name,c1);
119: }
121: void PETSC_STDCALL petscviewersetformat_(PetscViewer *vin,PetscViewerFormat *format,PetscErrorCode *ierr)
122: {
123: PetscViewer v;
124: PetscPatchDefaultViewers_Fortran(vin,v);
125: *PetscViewerSetFormat(v,*format);
126: }
128: void PETSC_STDCALL petscviewerpushformat_(PetscViewer *vin,PetscViewerFormat *format,PetscErrorCode *ierr)
129: {
130: PetscViewer v;
131: PetscPatchDefaultViewers_Fortran(vin,v);
132: *PetscViewerPushFormat(v,*format);
133: }
135: void PETSC_STDCALL petscviewerpopformat_(PetscViewer *vin,PetscErrorCode *ierr)
136: {
137: PetscViewer v;
138: PetscPatchDefaultViewers_Fortran(vin,v);
139: *PetscViewerPopFormat(v);
140: }
142: void PETSC_STDCALL petscviewerdestroy_(PetscViewer *v,PetscErrorCode *ierr)
143: {
144: *PetscViewerDestroy(*v);
145: }
147: void PETSC_STDCALL petscviewerstringopen_(MPI_Comm *comm,CHAR name PETSC_MIXED_LEN(len1),PetscInt *len,PetscViewer *str,
148: PetscErrorCode *ierr PETSC_END_LEN(len1))
149: {
150: #if defined(PETSC_USES_CPTOFCD)
151: *PetscViewerStringOpen((MPI_Comm)PetscToPointerComm(*comm),_fcdtocp(name),*len,str);
152: #else
153: *PetscViewerStringOpen((MPI_Comm)PetscToPointerComm(*comm),name,*len,str);
154: #endif
155: }
156:
157: void PETSC_STDCALL petscviewerdrawopen_(MPI_Comm *comm,CHAR display PETSC_MIXED_LEN(len1),
158: CHAR title PETSC_MIXED_LEN(len2),int *x,int*y,int*w,int*h,PetscViewer *v,
159: PetscErrorCode *ierr PETSC_END_LEN(len1) PETSC_END_LEN(len2))
160: {
161: char *c1,*c2;
163: FIXCHAR(display,len1,c1);
164: FIXCHAR(title,len2,c2);
165: *PetscViewerDrawOpen((MPI_Comm)PetscToPointerComm(*comm),c1,c2,*x,*y,*w,*h,v);
166: FREECHAR(display,c1);
167: FREECHAR(title,c2);
168: }