xref: /petsc/src/sys/logging/ftn-custom/zplogf.c (revision bb1d7374b64f295b2ed5ff23b89435d65e905a54)
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
85c6c1daeSBarry Smith #define petsclogdestroy_          PETSCLOGDESTROY
9*bb1d7374SBarry Smith #define petsclogdefaultbegin_     PETSCLOGDEFAULTBEGIN
10*bb1d7374SBarry Smith #define petsclognestedbegin_      PETSCLOGNESTEDBEGIN
115c6c1daeSBarry Smith #define petsclogdump_             PETSCLOGDUMP
125c6c1daeSBarry Smith #define petsclogeventregister_    PETSCLOGEVENTREGISTER
135c6c1daeSBarry Smith #define petsclogstagepop_         PETSCLOGSTAGEPOP
145c6c1daeSBarry Smith #define petsclogstageregister_    PETSCLOGSTAGEREGISTER
155c6c1daeSBarry Smith #define petscclassidregister_     PETSCCLASSIDREGISTER
165c6c1daeSBarry Smith #define petsclogstagepush_        PETSCLOGSTAGEPUSH
175c6c1daeSBarry Smith #define petscgetflops_            PETSCGETFLOPS
185c6c1daeSBarry Smith #define petsclogstagegetid_       PETSCLOGSTAGEGETID
195c6c1daeSBarry Smith #define petsclogeventbegin_       PETSCLOGEVENTBEGIN
205c6c1daeSBarry Smith #define petsclogeventend_         PETSCLOGEVENTEND
215c6c1daeSBarry Smith #define petsclogflops_            PETSCLOGFLOPS
225c6c1daeSBarry Smith #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
235c6c1daeSBarry Smith #define petsclogview_             petsclogview
245c6c1daeSBarry Smith #define petsclogallbegin_         petsclogallbegin
255c6c1daeSBarry Smith #define petsclogdestroy_          petsclogdestroy
26*bb1d7374SBarry Smith #define petsclogdefaultbegin_     petsclogdefaultbegin
27*bb1d7374SBarry Smith #define petsclognestedbegin_      petsclognestedbegin
285c6c1daeSBarry Smith #define petsclogeventregister_    petsclogeventregister
295c6c1daeSBarry Smith #define petsclogdump_             petsclogdump
305c6c1daeSBarry Smith #define petsclogstagepop_         petsclogstagepop
315c6c1daeSBarry Smith #define petsclogstageregister_    petsclogstageregister
325c6c1daeSBarry Smith #define petscclassidregister_     petscclassidregister
335c6c1daeSBarry Smith #define petsclogstagepush_        petsclogstagepush
345c6c1daeSBarry Smith #define petscgetflops_            petscgetflops
355c6c1daeSBarry Smith #define petsclogstagegetid_       petsclogstagegetid
365c6c1daeSBarry Smith #define petsclogeventbegin_       petsclogeventbegin
375c6c1daeSBarry Smith #define petsclogeventend_         petsclogeventend
385c6c1daeSBarry Smith #define petsclogflops_            petsclogflops
395c6c1daeSBarry Smith #endif
405c6c1daeSBarry Smith 
418cc058d9SJed Brown PETSC_EXTERN void PETSC_STDCALL petsclogeventbegin_(PetscLogEvent *e,PetscErrorCode *ierr)
42f5f7c1b9SKarl Rupp {
435c6c1daeSBarry Smith   *ierr = PetscLogEventBegin(*e,0,0,0,0);
445c6c1daeSBarry Smith }
455c6c1daeSBarry Smith 
468cc058d9SJed Brown PETSC_EXTERN void PETSC_STDCALL petsclogeventend_(PetscLogEvent *e,PetscErrorCode *ierr)
47f5f7c1b9SKarl Rupp {
485c6c1daeSBarry Smith   *ierr = PetscLogEventEnd(*e,0,0,0,0);
495c6c1daeSBarry Smith }
505c6c1daeSBarry Smith 
518cc058d9SJed Brown PETSC_EXTERN void PETSC_STDCALL petsclogflops_(PetscLogDouble *f,PetscErrorCode *ierr)
52f5f7c1b9SKarl Rupp {
535c6c1daeSBarry Smith   *ierr = PetscLogFlops(*f);
545c6c1daeSBarry Smith }
555c6c1daeSBarry Smith 
568cc058d9SJed Brown PETSC_EXTERN void PETSC_STDCALL petsclogview_(PetscViewer *viewer,PetscErrorCode *ierr PETSC_END_LEN(len))
575c6c1daeSBarry Smith {
583bc0b13bSBarry Smith #if defined(PETSC_USE_LOG)
595c6c1daeSBarry Smith   PetscViewer v;
605c6c1daeSBarry Smith   PetscPatchDefaultViewers_Fortran(viewer,v);
615c6c1daeSBarry Smith   *ierr = PetscLogView(v);
623bc0b13bSBarry Smith #endif
635c6c1daeSBarry Smith }
645c6c1daeSBarry Smith 
658cc058d9SJed Brown PETSC_EXTERN void PETSC_STDCALL petsclogdump_(CHAR name PETSC_MIXED_LEN(len),PetscErrorCode *ierr PETSC_END_LEN(len))
665c6c1daeSBarry Smith {
675c6c1daeSBarry Smith #if defined(PETSC_USE_LOG)
685c6c1daeSBarry Smith   char *t1;
695c6c1daeSBarry Smith   FIXCHAR(name,len,t1);
705c6c1daeSBarry Smith   *ierr = PetscLogDump(t1);
715c6c1daeSBarry Smith   FREECHAR(name,t1);
725c6c1daeSBarry Smith #endif
735c6c1daeSBarry Smith }
748cc058d9SJed Brown PETSC_EXTERN void PETSC_STDCALL petsclogeventregister_(CHAR string PETSC_MIXED_LEN(len),PetscClassId *classid,PetscLogEvent *e,PetscErrorCode *ierr PETSC_END_LEN(len))
755c6c1daeSBarry Smith {
765c6c1daeSBarry Smith #if defined(PETSC_USE_LOG)
775c6c1daeSBarry Smith   char *t1;
785c6c1daeSBarry Smith   FIXCHAR(string,len,t1);
795c6c1daeSBarry Smith   *ierr = PetscLogEventRegister(t1,*classid,e);
805c6c1daeSBarry Smith   FREECHAR(string,t1);
815c6c1daeSBarry Smith #endif
825c6c1daeSBarry Smith }
838cc058d9SJed Brown PETSC_EXTERN void PETSC_STDCALL petscclassidregister_(CHAR string PETSC_MIXED_LEN(len),PetscClassId *e,PetscErrorCode *ierr PETSC_END_LEN(len))
845c6c1daeSBarry Smith {
855c6c1daeSBarry Smith #if defined(PETSC_USE_LOG)
865c6c1daeSBarry Smith   char *t1;
875c6c1daeSBarry Smith   FIXCHAR(string,len,t1);
885c6c1daeSBarry Smith 
895c6c1daeSBarry Smith   *ierr = PetscClassIdRegister(t1,e);
905c6c1daeSBarry Smith   FREECHAR(string,t1);
915c6c1daeSBarry Smith #endif
925c6c1daeSBarry Smith }
935c6c1daeSBarry Smith 
948cc058d9SJed Brown PETSC_EXTERN void PETSC_STDCALL petsclogallbegin_(PetscErrorCode *ierr)
95f5f7c1b9SKarl Rupp {
965c6c1daeSBarry Smith #if defined(PETSC_USE_LOG)
975c6c1daeSBarry Smith   *ierr = PetscLogAllBegin();
985c6c1daeSBarry Smith #endif
995c6c1daeSBarry Smith }
1005c6c1daeSBarry Smith 
1018cc058d9SJed Brown PETSC_EXTERN void PETSC_STDCALL petsclogdestroy_(PetscErrorCode *ierr)
102f5f7c1b9SKarl Rupp {
1035c6c1daeSBarry Smith #if defined(PETSC_USE_LOG)
1045c6c1daeSBarry Smith   *ierr = PetscLogDestroy();
1055c6c1daeSBarry Smith #endif
1065c6c1daeSBarry Smith }
1075c6c1daeSBarry Smith 
108*bb1d7374SBarry Smith PETSC_EXTERN void PETSC_STDCALL petsclogdefaultbegin_(PetscErrorCode *ierr)
109f5f7c1b9SKarl Rupp {
1105c6c1daeSBarry Smith #if defined(PETSC_USE_LOG)
111*bb1d7374SBarry Smith   *ierr = PetscLogDefaultBegin();
112*bb1d7374SBarry Smith #endif
113*bb1d7374SBarry Smith }
114*bb1d7374SBarry Smith 
115*bb1d7374SBarry Smith PETSC_EXTERN void PETSC_STDCALL petsclognestedbegin_(PetscErrorCode *ierr)
116*bb1d7374SBarry Smith {
117*bb1d7374SBarry Smith #if defined(PETSC_USE_LOG)
118*bb1d7374SBarry Smith   *ierr = PetscLogNestedBegin();
1195c6c1daeSBarry Smith #endif
1205c6c1daeSBarry Smith }
1215c6c1daeSBarry Smith 
1228cc058d9SJed Brown PETSC_EXTERN void PETSC_STDCALL petsclogstagepop_(PetscErrorCode *ierr)
1235c6c1daeSBarry Smith {
1245c6c1daeSBarry Smith #if defined(PETSC_USE_LOG)
1255c6c1daeSBarry Smith   *ierr = PetscLogStagePop();
1265c6c1daeSBarry Smith #endif
1275c6c1daeSBarry Smith }
1285c6c1daeSBarry Smith 
1298cc058d9SJed Brown PETSC_EXTERN void PETSC_STDCALL petsclogstageregister_(CHAR sname PETSC_MIXED_LEN(len),PetscLogStage *stage,PetscErrorCode *ierr PETSC_END_LEN(len))
1305c6c1daeSBarry Smith {
1315c6c1daeSBarry Smith #if defined(PETSC_USE_LOG)
1325c6c1daeSBarry Smith   char *t;
1335c6c1daeSBarry Smith   FIXCHAR(sname,len,t);
1345c6c1daeSBarry Smith   *ierr = PetscLogStageRegister(t,stage);
1355c6c1daeSBarry Smith   FREECHAR(sname,t);
1365c6c1daeSBarry Smith #endif
1375c6c1daeSBarry Smith }
1385c6c1daeSBarry Smith 
1398cc058d9SJed Brown PETSC_EXTERN void PETSC_STDCALL petsclogstagepush_(PetscLogStage *stage,PetscErrorCode *ierr)
140f5f7c1b9SKarl Rupp {
1415c6c1daeSBarry Smith #if defined(PETSC_USE_LOG)
1425c6c1daeSBarry Smith   *ierr = PetscLogStagePush(*stage);
1435c6c1daeSBarry Smith #endif
1445c6c1daeSBarry Smith }
1455c6c1daeSBarry Smith 
1468cc058d9SJed Brown PETSC_EXTERN void PETSC_STDCALL petscgetflops_(PetscLogDouble *d,PetscErrorCode *ierr)
1475c6c1daeSBarry Smith {
1485c6c1daeSBarry Smith #if defined(PETSC_USE_LOG)
1495c6c1daeSBarry Smith   *ierr = PetscGetFlops(d);
1505c6c1daeSBarry Smith #else
1515c6c1daeSBarry Smith   ierr = 0;
1525c6c1daeSBarry Smith   *d   = 0.0;
1535c6c1daeSBarry Smith #endif
1545c6c1daeSBarry Smith }
1555c6c1daeSBarry Smith 
1568cc058d9SJed Brown PETSC_EXTERN void PETSC_STDCALL petsclogstagegetid_(CHAR sname PETSC_MIXED_LEN(len),PetscLogStage *stage, int *ierr PETSC_END_LEN(len))
1575c6c1daeSBarry Smith {
1585c6c1daeSBarry Smith #if defined(PETSC_USE_LOG)
1595c6c1daeSBarry Smith   char *t;
1605c6c1daeSBarry Smith   FIXCHAR(sname,len,t);
1615c6c1daeSBarry Smith   *ierr = PetscLogStageGetId(t,stage);
1625c6c1daeSBarry Smith   FREECHAR(sname,t);
1635c6c1daeSBarry Smith #endif
1645c6c1daeSBarry Smith }
165