xref: /petsc/src/sys/logging/ftn-custom/zplogf.c (revision 8cc058d9cd56c1ccb3be12a47760ddfc446aaffc)
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 petsclogprintDetailed_    PETSCLOGPRINTDETAILED
8 #define petsclogallbegin_         PETSCLOGALLBEGIN
9 #define petsclogdestroy_          PETSCLOGDESTROY
10 #define petsclogbegin_            PETSCLOGBEGIN
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 petsclogprintDetailed_    petsclogprintDetailed
25 #define petsclogallbegin_         petsclogallbegin
26 #define petsclogdestroy_          petsclogdestroy
27 #define petsclogbegin_            petsclogbegin
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   PetscViewer v;
59   PetscPatchDefaultViewers_Fortran(viewer,v);
60   *ierr = PetscLogView(v);
61 }
62 
63 PETSC_EXTERN void PETSC_STDCALL petsclogprintDetailed_(MPI_Comm *comm,CHAR filename PETSC_MIXED_LEN(len),PetscErrorCode *ierr PETSC_END_LEN(len))
64 {
65 #if defined(PETSC_USE_LOG)
66   char *t;
67   FIXCHAR(filename,len,t);
68   *ierr = PetscLogPrintDetailed(MPI_Comm_f2c(*(MPI_Fint*)&*comm),t);
69   FREECHAR(filename,t);
70 #endif
71 }
72 
73 
74 PETSC_EXTERN void PETSC_STDCALL petsclogdump_(CHAR name PETSC_MIXED_LEN(len),PetscErrorCode *ierr PETSC_END_LEN(len))
75 {
76 #if defined(PETSC_USE_LOG)
77   char *t1;
78   FIXCHAR(name,len,t1);
79   *ierr = PetscLogDump(t1);
80   FREECHAR(name,t1);
81 #endif
82 }
83 PETSC_EXTERN void PETSC_STDCALL petsclogeventregister_(CHAR string PETSC_MIXED_LEN(len),PetscClassId *classid,PetscLogEvent *e,PetscErrorCode *ierr PETSC_END_LEN(len))
84 {
85 #if defined(PETSC_USE_LOG)
86   char *t1;
87   FIXCHAR(string,len,t1);
88   *ierr = PetscLogEventRegister(t1,*classid,e);
89   FREECHAR(string,t1);
90 #endif
91 }
92 PETSC_EXTERN void PETSC_STDCALL petscclassidregister_(CHAR string PETSC_MIXED_LEN(len),PetscClassId *e,PetscErrorCode *ierr PETSC_END_LEN(len))
93 {
94 #if defined(PETSC_USE_LOG)
95   char *t1;
96   FIXCHAR(string,len,t1);
97 
98   *ierr = PetscClassIdRegister(t1,e);
99   FREECHAR(string,t1);
100 #endif
101 }
102 
103 PETSC_EXTERN void PETSC_STDCALL petsclogallbegin_(PetscErrorCode *ierr)
104 {
105 #if defined(PETSC_USE_LOG)
106   *ierr = PetscLogAllBegin();
107 #endif
108 }
109 
110 PETSC_EXTERN void PETSC_STDCALL petsclogdestroy_(PetscErrorCode *ierr)
111 {
112 #if defined(PETSC_USE_LOG)
113   *ierr = PetscLogDestroy();
114 #endif
115 }
116 
117 PETSC_EXTERN void PETSC_STDCALL petsclogbegin_(PetscErrorCode *ierr)
118 {
119 #if defined(PETSC_USE_LOG)
120   *ierr = PetscLogBegin();
121 #endif
122 }
123 
124 PETSC_EXTERN void PETSC_STDCALL petsclogstagepop_(PetscErrorCode *ierr)
125 {
126 #if defined(PETSC_USE_LOG)
127   *ierr = PetscLogStagePop();
128 #endif
129 }
130 
131 PETSC_EXTERN void PETSC_STDCALL petsclogstageregister_(CHAR sname PETSC_MIXED_LEN(len),PetscLogStage *stage,PetscErrorCode *ierr PETSC_END_LEN(len))
132 {
133 #if defined(PETSC_USE_LOG)
134   char *t;
135   FIXCHAR(sname,len,t);
136   *ierr = PetscLogStageRegister(t,stage);
137   FREECHAR(sname,t);
138 #endif
139 }
140 
141 PETSC_EXTERN void PETSC_STDCALL petsclogstagepush_(PetscLogStage *stage,PetscErrorCode *ierr)
142 {
143 #if defined(PETSC_USE_LOG)
144   *ierr = PetscLogStagePush(*stage);
145 #endif
146 }
147 
148 PETSC_EXTERN void PETSC_STDCALL petscgetflops_(PetscLogDouble *d,PetscErrorCode *ierr)
149 {
150 #if defined(PETSC_USE_LOG)
151   *ierr = PetscGetFlops(d);
152 #else
153   ierr = 0;
154   *d   = 0.0;
155 #endif
156 }
157 
158 PETSC_EXTERN void PETSC_STDCALL petsclogstagegetid_(CHAR sname PETSC_MIXED_LEN(len),PetscLogStage *stage, int *ierr PETSC_END_LEN(len))
159 {
160 #if defined(PETSC_USE_LOG)
161   char *t;
162   FIXCHAR(sname,len,t);
163   *ierr = PetscLogStageGetId(t,stage);
164   FREECHAR(sname,t);
165 #endif
166 }
167