xref: /petsc/src/sys/logging/ftn-custom/zplogf.c (revision 6f3c3dcf8ef4015f292691ee124e8c4bddb46dfd)
1 
2 #include <petsc-private/fortranimpl.h>
3 #include <petscviewer.h>
4 
5 #if defined(PETSC_HAVE_FORTRAN_CAPS)
6 #define petsclogview_             PETSCLOGVIEW
7 #define petsclogprintDetailed_    PETSCLOGPRINTDETAILED
8 #define petsclogallbegin_         PETSCLOGALLBEGIN
9 #define petsclogdestroy_          PETSCLOGDESTROY
10 #define petsclogbegin_            PETSCLOGBEGIN
11 #define petsclogdump_             PETSCLOGDUMP
12 #define petsclogeventregister_    PETSCLOGEVENTREGISTER
13 #define petsclogstagepop_         PETSCLOGSTAGEPOP
14 #define petsclogstageregister_    PETSCLOGSTAGEREGISTER
15 #define petscclassidregister_     PETSCCLASSIDREGISTER
16 #define petsclogstagepush_        PETSCLOGSTAGEPUSH
17 #define petscgetflops_            PETSCGETFLOPS
18 #define petsclogstagegetid_       PETSCLOGSTAGEGETID
19 #define petsclogeventbegin_       PETSCLOGEVENTBEGIN
20 #define petsclogeventend_         PETSCLOGEVENTEND
21 #define petsclogflops_            PETSCLOGFLOPS
22 #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
23 #define petsclogview_             petsclogview
24 #define petsclogprintDetailed_    petsclogprintDetailed
25 #define petsclogallbegin_         petsclogallbegin
26 #define petsclogdestroy_          petsclogdestroy
27 #define petsclogbegin_            petsclogbegin
28 #define petsclogeventregister_    petsclogeventregister
29 #define petsclogdump_             petsclogdump
30 #define petsclogstagepop_         petsclogstagepop
31 #define petsclogstageregister_    petsclogstageregister
32 #define petscclassidregister_     petscclassidregister
33 #define petsclogstagepush_        petsclogstagepush
34 #define petscgetflops_            petscgetflops
35 #define petsclogstagegetid_       petsclogstagegetid
36 #define petsclogeventbegin_       petsclogeventbegin
37 #define petsclogeventend_         petsclogeventend
38 #define petsclogflops_            petsclogflops
39 #endif
40 
41 EXTERN_C_BEGIN
42 
43 void PETSC_STDCALL petsclogeventbegin_(PetscLogEvent *e,PetscErrorCode *ierr)
44 {
45   *ierr = PetscLogEventBegin(*e,0,0,0,0);
46 }
47 
48 void PETSC_STDCALL petsclogeventend_(PetscLogEvent *e,PetscErrorCode *ierr)
49 {
50   *ierr = PetscLogEventEnd(*e,0,0,0,0);
51 }
52 
53 void PETSC_STDCALL petsclogflops_(PetscLogDouble *f,PetscErrorCode *ierr)
54 {
55   *ierr = PetscLogFlops(*f);
56 }
57 
58 void PETSC_STDCALL petsclogview_(PetscViewer *viewer,PetscErrorCode *ierr PETSC_END_LEN(len))
59 {
60   PetscViewer v;
61   PetscPatchDefaultViewers_Fortran(viewer,v);
62   *ierr = PetscLogView(v);
63 }
64 
65 void PETSC_STDCALL petsclogprintDetailed_(MPI_Comm *comm,CHAR filename PETSC_MIXED_LEN(len),PetscErrorCode *ierr PETSC_END_LEN(len))
66 {
67 #if defined(PETSC_USE_LOG)
68   char *t;
69   FIXCHAR(filename,len,t);
70   *ierr = PetscLogPrintDetailed(MPI_Comm_f2c(*(MPI_Fint*)&*comm),t);
71   FREECHAR(filename,t);
72 #endif
73 }
74 
75 
76 void PETSC_STDCALL petsclogdump_(CHAR name PETSC_MIXED_LEN(len),PetscErrorCode *ierr PETSC_END_LEN(len))
77 {
78 #if defined(PETSC_USE_LOG)
79   char *t1;
80   FIXCHAR(name,len,t1);
81   *ierr = PetscLogDump(t1);
82   FREECHAR(name,t1);
83 #endif
84 }
85 void PETSC_STDCALL petsclogeventregister_(CHAR string PETSC_MIXED_LEN(len),PetscClassId *classid,PetscLogEvent *e,PetscErrorCode *ierr PETSC_END_LEN(len))
86 {
87 #if defined(PETSC_USE_LOG)
88   char *t1;
89   FIXCHAR(string,len,t1);
90   *ierr = PetscLogEventRegister(t1,*classid,e);
91   FREECHAR(string,t1);
92 #endif
93 }
94 void PETSC_STDCALL petscclassidregister_(CHAR string PETSC_MIXED_LEN(len),PetscClassId *e,PetscErrorCode *ierr PETSC_END_LEN(len))
95 {
96 #if defined(PETSC_USE_LOG)
97   char *t1;
98   FIXCHAR(string,len,t1);
99 
100   *ierr = PetscClassIdRegister(t1,e);
101   FREECHAR(string,t1);
102 #endif
103 }
104 
105 void PETSC_STDCALL petsclogallbegin_(PetscErrorCode *ierr)
106 {
107 #if defined(PETSC_USE_LOG)
108   *ierr = PetscLogAllBegin();
109 #endif
110 }
111 
112 void PETSC_STDCALL petsclogdestroy_(PetscErrorCode *ierr)
113 {
114 #if defined(PETSC_USE_LOG)
115   *ierr = PetscLogDestroy();
116 #endif
117 }
118 
119 void PETSC_STDCALL petsclogbegin_(PetscErrorCode *ierr)
120 {
121 #if defined(PETSC_USE_LOG)
122   *ierr = PetscLogBegin();
123 #endif
124 }
125 
126 void PETSC_STDCALL petsclogstagepop_(PetscErrorCode *ierr)
127 {
128 #if defined(PETSC_USE_LOG)
129   *ierr = PetscLogStagePop();
130 #endif
131 }
132 
133 void PETSC_STDCALL petsclogstageregister_(CHAR sname PETSC_MIXED_LEN(len),PetscLogStage *stage,PetscErrorCode *ierr PETSC_END_LEN(len))
134 {
135 #if defined(PETSC_USE_LOG)
136   char *t;
137   FIXCHAR(sname,len,t);
138   *ierr = PetscLogStageRegister(t,stage);
139   FREECHAR(sname,t);
140 #endif
141 }
142 
143 void PETSC_STDCALL petsclogstagepush_(PetscLogStage *stage,PetscErrorCode *ierr)
144 {
145 #if defined(PETSC_USE_LOG)
146   *ierr = PetscLogStagePush(*stage);
147 #endif
148 }
149 
150 void PETSC_STDCALL petscgetflops_(PetscLogDouble *d,PetscErrorCode *ierr)
151 {
152 #if defined(PETSC_USE_LOG)
153   *ierr = PetscGetFlops(d);
154 #else
155   ierr = 0;
156   *d   = 0.0;
157 #endif
158 }
159 
160 void PETSC_STDCALL   petsclogstagegetid_(CHAR sname PETSC_MIXED_LEN(len),PetscLogStage *stage, int *ierr PETSC_END_LEN(len))
161 {
162 #if defined(PETSC_USE_LOG)
163   char *t;
164   FIXCHAR(sname,len,t);
165   *ierr = PetscLogStageGetId(t,stage);
166   FREECHAR(sname,t);
167 #endif
168 }
169 
170 EXTERN_C_END
171