xref: /petsc/src/sys/logging/ftn-custom/zplogf.c (revision d724dfffc20f5834ebb4b97bb1e8ef89c8c2f0ed)
1 
2 #include <petsc-private/fortranimpl.h>
3 
4 #ifdef 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   *ierr = PetscLogEventBegin(*e,0,0,0,0);
44 }
45 
46 void PETSC_STDCALL petsclogeventend_(PetscLogEvent *e,PetscErrorCode *ierr){
47   *ierr = PetscLogEventEnd(*e,0,0,0,0);
48 }
49 
50 void PETSC_STDCALL petsclogflops_(PetscLogDouble *f,PetscErrorCode *ierr) {
51   *ierr = PetscLogFlops(*f);
52 }
53 
54 void PETSC_STDCALL petsclogview_(PetscViewer *viewer,PetscErrorCode *ierr PETSC_END_LEN(len))
55 {
56   PetscViewer v;
57   PetscPatchDefaultViewers_Fortran(viewer,v);
58   *ierr = PetscLogView(v);
59 }
60 
61 void PETSC_STDCALL petsclogprintDetailed_(MPI_Comm *comm,CHAR filename PETSC_MIXED_LEN(len),PetscErrorCode *ierr PETSC_END_LEN(len))
62 {
63 #if defined(PETSC_USE_LOG)
64   char *t;
65   FIXCHAR(filename,len,t);
66   *ierr = PetscLogPrintDetailed(MPI_Comm_f2c(*(MPI_Fint *)&*comm),t);
67   FREECHAR(filename,t);
68 #endif
69 }
70 
71 
72 void PETSC_STDCALL petsclogdump_(CHAR name PETSC_MIXED_LEN(len),PetscErrorCode *ierr PETSC_END_LEN(len))
73 {
74 #if defined(PETSC_USE_LOG)
75   char *t1;
76   FIXCHAR(name,len,t1);
77   *ierr = PetscLogDump(t1);
78   FREECHAR(name,t1);
79 #endif
80 }
81 void PETSC_STDCALL petsclogeventregister_(CHAR string PETSC_MIXED_LEN(len),PetscClassId *classid,PetscLogEvent *e,PetscErrorCode *ierr PETSC_END_LEN(len))
82 {
83 #if defined(PETSC_USE_LOG)
84   char *t1;
85   FIXCHAR(string,len,t1);
86   *ierr = PetscLogEventRegister(t1,*classid,e);
87   FREECHAR(string,t1);
88 #endif
89 }
90 void PETSC_STDCALL petscclassidregister_(CHAR string PETSC_MIXED_LEN(len),PetscClassId *e,PetscErrorCode *ierr PETSC_END_LEN(len))
91 {
92 #if defined(PETSC_USE_LOG)
93   char *t1;
94   FIXCHAR(string,len,t1);
95 
96   *ierr = PetscClassIdRegister(t1,e);
97   FREECHAR(string,t1);
98 #endif
99 }
100 
101 void PETSC_STDCALL petsclogallbegin_(PetscErrorCode *ierr){
102 #if defined(PETSC_USE_LOG)
103   *ierr = PetscLogAllBegin();
104 #endif
105 }
106 
107 void PETSC_STDCALL petsclogdestroy_(PetscErrorCode *ierr){
108 #if defined(PETSC_USE_LOG)
109   *ierr = PetscLogDestroy();
110 #endif
111 }
112 
113 void PETSC_STDCALL petsclogbegin_(PetscErrorCode *ierr){
114 #if defined(PETSC_USE_LOG)
115   *ierr = PetscLogBegin();
116 #endif
117 }
118 
119 void PETSC_STDCALL petsclogstagepop_(PetscErrorCode *ierr)
120 {
121 #if defined(PETSC_USE_LOG)
122   *ierr = PetscLogStagePop();
123 #endif
124 }
125 
126 void PETSC_STDCALL petsclogstageregister_(CHAR sname PETSC_MIXED_LEN(len),PetscLogStage *stage,PetscErrorCode *ierr PETSC_END_LEN(len))
127 {
128 #if defined(PETSC_USE_LOG)
129   char *t;
130   FIXCHAR(sname,len,t);
131   *ierr = PetscLogStageRegister(t,stage);
132   FREECHAR(sname,t);
133 #endif
134 }
135 
136 void PETSC_STDCALL petsclogstagepush_(PetscLogStage *stage,PetscErrorCode *ierr){
137 #if defined(PETSC_USE_LOG)
138   *ierr = PetscLogStagePush(*stage);
139 #endif
140 }
141 
142 void PETSC_STDCALL petscgetflops_(PetscLogDouble *d,PetscErrorCode *ierr)
143 {
144 #if defined(PETSC_USE_LOG)
145   *ierr = PetscGetFlops(d);
146 #else
147   ierr = 0;
148   *d     = 0.0;
149 #endif
150 }
151 
152 void PETSC_STDCALL   petsclogstagegetid_(CHAR sname PETSC_MIXED_LEN(len),PetscLogStage *stage, int *ierr PETSC_END_LEN(len))
153 {
154 #if defined(PETSC_USE_LOG)
155   char *t;
156   FIXCHAR(sname,len,t);
157   *ierr = PetscLogStageGetId(t,stage);
158   FREECHAR(sname,t);
159 #endif
160 }
161 
162 EXTERN_C_END
163