xref: /petsc/src/sys/logging/ftn-custom/zplogf.c (revision d5b43468fb8780a8feea140ccd6fa3e6a50411cc)
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);if (*ierr) return;
61   FREECHAR(name,t1);
62 #endif
63 }
64 PETSC_EXTERN void petsclogeventregister_(char* string,PetscClassId *classid,PetscLogEvent *e,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len)
65 {
66 #if defined(PETSC_USE_LOG)
67   char *t1;
68   FIXCHAR(string,len,t1);
69   *ierr = PetscLogEventRegister(t1,*classid,e);if (*ierr) return;
70   FREECHAR(string,t1);
71 #endif
72 }
73 PETSC_EXTERN void petscclassidregister_(char* string,PetscClassId *e,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len)
74 {
75 #if defined(PETSC_USE_LOG)
76   char *t1;
77   FIXCHAR(string,len,t1);
78 
79   *ierr = PetscClassIdRegister(t1,e);if (*ierr) return;
80   FREECHAR(string,t1);
81 #endif
82 }
83 
84 PETSC_EXTERN void petsclogallbegin_(PetscErrorCode *ierr)
85 {
86 #if defined(PETSC_USE_LOG)
87   *ierr = PetscLogAllBegin();
88 #endif
89 }
90 
91 PETSC_EXTERN void petsclogdefaultbegin_(PetscErrorCode *ierr)
92 {
93 #if defined(PETSC_USE_LOG)
94   *ierr = PetscLogDefaultBegin();
95 #endif
96 }
97 
98 PETSC_EXTERN void petsclognestedbegin_(PetscErrorCode *ierr)
99 {
100 #if defined(PETSC_USE_LOG)
101   *ierr = PetscLogNestedBegin();
102 #endif
103 }
104 
105 PETSC_EXTERN void petsclogstagepop_(PetscErrorCode *ierr)
106 {
107 #if defined(PETSC_USE_LOG)
108   *ierr = PetscLogStagePop();
109 #endif
110 }
111 
112 PETSC_EXTERN void petsclogstageregister_(char* sname,PetscLogStage *stage,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len)
113 {
114 #if defined(PETSC_USE_LOG)
115   char *t;
116   FIXCHAR(sname,len,t);
117   *ierr = PetscLogStageRegister(t,stage);if (*ierr) return;
118   FREECHAR(sname,t);
119 #endif
120 }
121 
122 PETSC_EXTERN void petsclogstagepush_(PetscLogStage *stage,PetscErrorCode *ierr)
123 {
124 #if defined(PETSC_USE_LOG)
125   *ierr = PetscLogStagePush(*stage);
126 #endif
127 }
128 
129 PETSC_EXTERN void petscgetflops_(PetscLogDouble *d,PetscErrorCode *ierr)
130 {
131 #if defined(PETSC_USE_LOG)
132   *ierr = PetscGetFlops(d);
133 #else
134   ierr = 0;
135   *d   = 0.0;
136 #endif
137 }
138 
139 PETSC_EXTERN void petsclogstagegetid_(char* sname,PetscLogStage *stage, int *ierr,PETSC_FORTRAN_CHARLEN_T len)
140 {
141 #if defined(PETSC_USE_LOG)
142   char *t;
143   FIXCHAR(sname,len,t);
144   *ierr = PetscLogStageGetId(t,stage);if (*ierr) return;
145   FREECHAR(sname,t);
146 #endif
147 }
148