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 petscviewersocketopen_ PETSCVIEWERSOCKETOPEN
14: #define petscviewerstringopen_ PETSCVIEWERSTRINGOPEN
15: #define petscviewerdrawopen_ PETSCVIEWERDRAWOPEN
16: #define petscviewerbinarysettype_ PETSCVIEWERBINARYSETTYPE
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 petscviewersocketopen_ petscviewersocketopen
32: #define petscviewerstringopen_ petscviewerstringopen
33: #define petscviewerdrawopen_ petscviewerdrawopen
34: #define petscviewerbinarysettype_ petscviewerbinarysettype
35: #define petscviewersetfilename_ petscviewersetfilename
36: #endif
38: EXTERN_C_BEGIN
40: void PETSC_STDCALL petscviewersocketputscalar(PetscViewer *viewer,int *m,int *n,PetscScalar *s,int *ierr)
41: {
42: PetscViewer v;
43: PetscPatchDefaultViewers_Fortran(viewer,v);
44: *PetscViewerSocketPutScalar(v,*m,*n,s);
45: }
47: void PETSC_STDCALL petscviewersocketputreal(PetscViewer *viewer,int *m,int *n,PetscReal *s,int *ierr)
48: {
49: PetscViewer v;
50: PetscPatchDefaultViewers_Fortran(viewer,v);
51: *PetscViewerSocketPutReal(v,*m,*n,s);
52: }
54: void PETSC_STDCALL petscviewersocketputint(PetscViewer *viewer,int *m,int *s,int *ierr)
55: {
56: PetscViewer v;
57: PetscPatchDefaultViewers_Fortran(viewer,v);
58: *PetscViewerSocketPutInt(v,*m,s);
59: }
61: void PETSC_STDCALL petscviewersetfilename_(PetscViewer *viewer,CHAR name PETSC_MIXED_LEN(len),
62: int *ierr PETSC_END_LEN(len))
63: {
64: char *c1;
65: PetscViewer v;
66: PetscPatchDefaultViewers_Fortran(viewer,v);
67: FIXCHAR(name,len,c1);
68: *PetscViewerSetFilename(v,c1);
69: FREECHAR(name,c1);
70: }
72: void PETSC_STDCALL petscviewerbinarysettype_(PetscViewer *viewer,PetscViewerBinaryType *type,int *ierr)
73: {
74: PetscViewer v;
75: PetscPatchDefaultViewers_Fortran(viewer,v);
76: *PetscViewerBinarySetType(v,*type);
77: }
79: void PETSC_STDCALL petscviewersocketopen_(MPI_Comm *comm,CHAR name PETSC_MIXED_LEN(len),int *port,PetscViewer *lab,int *ierr PETSC_END_LEN(len))
80: {
81: char *c1;
82: FIXCHAR(name,len,c1);
83: *PetscViewerSocketOpen((MPI_Comm)PetscToPointerComm(*comm),c1,*port,lab);
84: FREECHAR(name,c1);
85: }
87: void PETSC_STDCALL petscviewerbinaryopen_(MPI_Comm *comm,CHAR name PETSC_MIXED_LEN(len),PetscViewerBinaryType *type,
88: PetscViewer *binv,int *ierr PETSC_END_LEN(len))
89: {
90: char *c1;
91: FIXCHAR(name,len,c1);
92: *PetscViewerBinaryOpen((MPI_Comm)PetscToPointerComm(*comm),c1,*type,binv);
93: FREECHAR(name,c1);
94: }
96: void PETSC_STDCALL petscviewerasciiopen_(MPI_Comm *comm,CHAR name PETSC_MIXED_LEN(len),PetscViewer *lab,
97: int *ierr PETSC_END_LEN(len))
98: {
99: char *c1;
100: FIXCHAR(name,len,c1);
101: *PetscViewerASCIIOpen((MPI_Comm)PetscToPointerComm(*comm),c1,lab);
102: FREECHAR(name,c1);
103: }
105: void PETSC_STDCALL petscviewersetformat_(PetscViewer *vin,PetscViewerFormat *format,int *ierr)
106: {
107: PetscViewer v;
108: PetscPatchDefaultViewers_Fortran(vin,v);
109: *PetscViewerSetFormat(v,*format);
110: }
112: void PETSC_STDCALL petscviewerpushformat_(PetscViewer *vin,PetscViewerFormat *format,int *ierr)
113: {
114: PetscViewer v;
115: PetscPatchDefaultViewers_Fortran(vin,v);
116: *PetscViewerPushFormat(v,*format);
117: }
119: void PETSC_STDCALL petscviewerpopformat_(PetscViewer *vin,int *ierr)
120: {
121: PetscViewer v;
122: PetscPatchDefaultViewers_Fortran(vin,v);
123: *PetscViewerPopFormat(v);
124: }
126: void PETSC_STDCALL petscviewerdestroy_(PetscViewer *v,int *ierr)
127: {
128: *PetscViewerDestroy(*v);
129: }
131: void PETSC_STDCALL petscviewerstringopen_(MPI_Comm *comm,CHAR name PETSC_MIXED_LEN(len1),int *len,PetscViewer *str,
132: int *ierr PETSC_END_LEN(len1))
133: {
134: #if defined(PETSC_USES_CPTOFCD)
135: *PetscViewerStringOpen((MPI_Comm)PetscToPointerComm(*comm),_fcdtocp(name),*len,str);
136: #else
137: *PetscViewerStringOpen((MPI_Comm)PetscToPointerComm(*comm),name,*len,str);
138: #endif
139: }
140:
141: void PETSC_STDCALL petscviewerdrawopen_(MPI_Comm *comm,CHAR display PETSC_MIXED_LEN(len1),
142: CHAR title PETSC_MIXED_LEN(len2),int *x,int*y,int*w,int*h,PetscViewer *v,
143: int *ierr PETSC_END_LEN(len1) PETSC_END_LEN(len2))
144: {
145: char *c1,*c2;
147: FIXCHAR(display,len1,c1);
148: FIXCHAR(title,len2,c2);
149: *PetscViewerDrawOpen((MPI_Comm)PetscToPointerComm(*comm),c1,c2,*x,*y,*w,*h,v);
150: FREECHAR(display,c1);
151: FREECHAR(title,c2);
152: }
154: EXTERN_C_END