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