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