xref: /petsc/src/sys/logging/ftn-custom/zplogf.c (revision 19caf8f3c08b1f0ca9f5469bde385c134aa76c82)
15c6c1daeSBarry Smith 
2af0996ceSBarry Smith #include <petsc/private/fortranimpl.h>
3665c2dedSJed Brown #include <petscviewer.h>
45c6c1daeSBarry Smith 
5519f805aSKarl Rupp #if defined(PETSC_HAVE_FORTRAN_CAPS)
65c6c1daeSBarry Smith #define petsclogview_             PETSCLOGVIEW
75c6c1daeSBarry Smith #define petsclogallbegin_         PETSCLOGALLBEGIN
8bb1d7374SBarry Smith #define petsclogdefaultbegin_     PETSCLOGDEFAULTBEGIN
9bb1d7374SBarry Smith #define petsclognestedbegin_      PETSCLOGNESTEDBEGIN
105c6c1daeSBarry Smith #define petsclogdump_             PETSCLOGDUMP
115c6c1daeSBarry Smith #define petsclogeventregister_    PETSCLOGEVENTREGISTER
125c6c1daeSBarry Smith #define petsclogstagepop_         PETSCLOGSTAGEPOP
135c6c1daeSBarry Smith #define petsclogstageregister_    PETSCLOGSTAGEREGISTER
145c6c1daeSBarry Smith #define petscclassidregister_     PETSCCLASSIDREGISTER
155c6c1daeSBarry Smith #define petsclogstagepush_        PETSCLOGSTAGEPUSH
165c6c1daeSBarry Smith #define petscgetflops_            PETSCGETFLOPS
175c6c1daeSBarry Smith #define petsclogstagegetid_       PETSCLOGSTAGEGETID
185c6c1daeSBarry Smith #define petsclogeventbegin_       PETSCLOGEVENTBEGIN
195c6c1daeSBarry Smith #define petsclogeventend_         PETSCLOGEVENTEND
205c6c1daeSBarry Smith #define petsclogflops_            PETSCLOGFLOPS
215c6c1daeSBarry Smith #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
225c6c1daeSBarry Smith #define petsclogview_             petsclogview
235c6c1daeSBarry Smith #define petsclogallbegin_         petsclogallbegin
24bb1d7374SBarry Smith #define petsclogdefaultbegin_     petsclogdefaultbegin
25bb1d7374SBarry Smith #define petsclognestedbegin_      petsclognestedbegin
265c6c1daeSBarry Smith #define petsclogeventregister_    petsclogeventregister
275c6c1daeSBarry Smith #define petsclogdump_             petsclogdump
285c6c1daeSBarry Smith #define petsclogstagepop_         petsclogstagepop
295c6c1daeSBarry Smith #define petsclogstageregister_    petsclogstageregister
305c6c1daeSBarry Smith #define petscclassidregister_     petscclassidregister
315c6c1daeSBarry Smith #define petsclogstagepush_        petsclogstagepush
325c6c1daeSBarry Smith #define petscgetflops_            petscgetflops
335c6c1daeSBarry Smith #define petsclogstagegetid_       petsclogstagegetid
345c6c1daeSBarry Smith #define petsclogeventbegin_       petsclogeventbegin
355c6c1daeSBarry Smith #define petsclogeventend_         petsclogeventend
365c6c1daeSBarry Smith #define petsclogflops_            petsclogflops
375c6c1daeSBarry Smith #endif
385c6c1daeSBarry Smith 
39*19caf8f3SSatish Balay PETSC_EXTERN void petsclogeventbegin_(PetscLogEvent *e,PetscErrorCode *ierr)
40f5f7c1b9SKarl Rupp {
415c6c1daeSBarry Smith   *ierr = PetscLogEventBegin(*e,0,0,0,0);
425c6c1daeSBarry Smith }
435c6c1daeSBarry Smith 
44*19caf8f3SSatish Balay PETSC_EXTERN void petsclogeventend_(PetscLogEvent *e,PetscErrorCode *ierr)
45f5f7c1b9SKarl Rupp {
465c6c1daeSBarry Smith   *ierr = PetscLogEventEnd(*e,0,0,0,0);
475c6c1daeSBarry Smith }
485c6c1daeSBarry Smith 
49*19caf8f3SSatish Balay PETSC_EXTERN void petsclogflops_(PetscLogDouble *f,PetscErrorCode *ierr)
50f5f7c1b9SKarl Rupp {
515c6c1daeSBarry Smith   *ierr = PetscLogFlops(*f);
525c6c1daeSBarry Smith }
535c6c1daeSBarry Smith 
54*19caf8f3SSatish Balay PETSC_EXTERN void petsclogview_(PetscViewer *viewer,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len)
555c6c1daeSBarry Smith {
563bc0b13bSBarry Smith #if defined(PETSC_USE_LOG)
575c6c1daeSBarry Smith   PetscViewer v;
585c6c1daeSBarry Smith   PetscPatchDefaultViewers_Fortran(viewer,v);
595c6c1daeSBarry Smith   *ierr = PetscLogView(v);
603bc0b13bSBarry Smith #endif
615c6c1daeSBarry Smith }
625c6c1daeSBarry Smith 
63*19caf8f3SSatish Balay PETSC_EXTERN void petsclogdump_(char* name,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len)
645c6c1daeSBarry Smith {
655c6c1daeSBarry Smith #if defined(PETSC_USE_LOG)
665c6c1daeSBarry Smith   char *t1;
675c6c1daeSBarry Smith   FIXCHAR(name,len,t1);
68d49bb8f9SBarry Smith   *ierr = PetscLogDump(t1);if (*ierr) return;
695c6c1daeSBarry Smith   FREECHAR(name,t1);
705c6c1daeSBarry Smith #endif
715c6c1daeSBarry Smith }
72*19caf8f3SSatish Balay PETSC_EXTERN void petsclogeventregister_(char* string,PetscClassId *classid,PetscLogEvent *e,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len)
735c6c1daeSBarry Smith {
745c6c1daeSBarry Smith #if defined(PETSC_USE_LOG)
755c6c1daeSBarry Smith   char *t1;
765c6c1daeSBarry Smith   FIXCHAR(string,len,t1);
77d49bb8f9SBarry Smith   *ierr = PetscLogEventRegister(t1,*classid,e);if (*ierr) return;
785c6c1daeSBarry Smith   FREECHAR(string,t1);
795c6c1daeSBarry Smith #endif
805c6c1daeSBarry Smith }
81*19caf8f3SSatish Balay PETSC_EXTERN void petscclassidregister_(char* string,PetscClassId *e,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len)
825c6c1daeSBarry Smith {
835c6c1daeSBarry Smith #if defined(PETSC_USE_LOG)
845c6c1daeSBarry Smith   char *t1;
855c6c1daeSBarry Smith   FIXCHAR(string,len,t1);
865c6c1daeSBarry Smith 
87d49bb8f9SBarry Smith   *ierr = PetscClassIdRegister(t1,e);if (*ierr) return;
885c6c1daeSBarry Smith   FREECHAR(string,t1);
895c6c1daeSBarry Smith #endif
905c6c1daeSBarry Smith }
915c6c1daeSBarry Smith 
92*19caf8f3SSatish Balay PETSC_EXTERN void petsclogallbegin_(PetscErrorCode *ierr)
93f5f7c1b9SKarl Rupp {
945c6c1daeSBarry Smith #if defined(PETSC_USE_LOG)
955c6c1daeSBarry Smith   *ierr = PetscLogAllBegin();
965c6c1daeSBarry Smith #endif
975c6c1daeSBarry Smith }
985c6c1daeSBarry Smith 
99*19caf8f3SSatish Balay PETSC_EXTERN void petsclogdefaultbegin_(PetscErrorCode *ierr)
100f5f7c1b9SKarl Rupp {
1015c6c1daeSBarry Smith #if defined(PETSC_USE_LOG)
102bb1d7374SBarry Smith   *ierr = PetscLogDefaultBegin();
103bb1d7374SBarry Smith #endif
104bb1d7374SBarry Smith }
105bb1d7374SBarry Smith 
106*19caf8f3SSatish Balay PETSC_EXTERN void petsclognestedbegin_(PetscErrorCode *ierr)
107bb1d7374SBarry Smith {
108bb1d7374SBarry Smith #if defined(PETSC_USE_LOG)
109bb1d7374SBarry Smith   *ierr = PetscLogNestedBegin();
1105c6c1daeSBarry Smith #endif
1115c6c1daeSBarry Smith }
1125c6c1daeSBarry Smith 
113*19caf8f3SSatish Balay PETSC_EXTERN void petsclogstagepop_(PetscErrorCode *ierr)
1145c6c1daeSBarry Smith {
1155c6c1daeSBarry Smith #if defined(PETSC_USE_LOG)
1165c6c1daeSBarry Smith   *ierr = PetscLogStagePop();
1175c6c1daeSBarry Smith #endif
1185c6c1daeSBarry Smith }
1195c6c1daeSBarry Smith 
120*19caf8f3SSatish Balay PETSC_EXTERN void petsclogstageregister_(char* sname,PetscLogStage *stage,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len)
1215c6c1daeSBarry Smith {
1225c6c1daeSBarry Smith #if defined(PETSC_USE_LOG)
1235c6c1daeSBarry Smith   char *t;
1245c6c1daeSBarry Smith   FIXCHAR(sname,len,t);
125d49bb8f9SBarry Smith   *ierr = PetscLogStageRegister(t,stage);if (*ierr) return;
1265c6c1daeSBarry Smith   FREECHAR(sname,t);
1275c6c1daeSBarry Smith #endif
1285c6c1daeSBarry Smith }
1295c6c1daeSBarry Smith 
130*19caf8f3SSatish Balay PETSC_EXTERN void petsclogstagepush_(PetscLogStage *stage,PetscErrorCode *ierr)
131f5f7c1b9SKarl Rupp {
1325c6c1daeSBarry Smith #if defined(PETSC_USE_LOG)
1335c6c1daeSBarry Smith   *ierr = PetscLogStagePush(*stage);
1345c6c1daeSBarry Smith #endif
1355c6c1daeSBarry Smith }
1365c6c1daeSBarry Smith 
137*19caf8f3SSatish Balay PETSC_EXTERN void petscgetflops_(PetscLogDouble *d,PetscErrorCode *ierr)
1385c6c1daeSBarry Smith {
1395c6c1daeSBarry Smith #if defined(PETSC_USE_LOG)
1405c6c1daeSBarry Smith   *ierr = PetscGetFlops(d);
1415c6c1daeSBarry Smith #else
1425c6c1daeSBarry Smith   ierr = 0;
1435c6c1daeSBarry Smith   *d   = 0.0;
1445c6c1daeSBarry Smith #endif
1455c6c1daeSBarry Smith }
1465c6c1daeSBarry Smith 
147*19caf8f3SSatish Balay PETSC_EXTERN void petsclogstagegetid_(char* sname,PetscLogStage *stage, int *ierr,PETSC_FORTRAN_CHARLEN_T len)
1485c6c1daeSBarry Smith {
1495c6c1daeSBarry Smith #if defined(PETSC_USE_LOG)
1505c6c1daeSBarry Smith   char *t;
1515c6c1daeSBarry Smith   FIXCHAR(sname,len,t);
152d49bb8f9SBarry Smith   *ierr = PetscLogStageGetId(t,stage);if (*ierr) return;
1535c6c1daeSBarry Smith   FREECHAR(sname,t);
1545c6c1daeSBarry Smith #endif
1555c6c1daeSBarry Smith }
156