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