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