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