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