xref: /petsc/src/sys/logging/ftn-custom/zplogf.c (revision 519f805a543c2a7f195bcba21173bb2cdfadb956)
15c6c1daeSBarry Smith 
25c6c1daeSBarry Smith #include <petsc-private/fortranimpl.h>
35c6c1daeSBarry Smith 
4*519f805aSKarl Rupp #if defined(PETSC_HAVE_FORTRAN_CAPS)
55c6c1daeSBarry Smith #define petsclogview_             PETSCLOGVIEW
65c6c1daeSBarry Smith #define petsclogprintDetailed_    PETSCLOGPRINTDETAILED
75c6c1daeSBarry Smith #define petsclogallbegin_         PETSCLOGALLBEGIN
85c6c1daeSBarry Smith #define petsclogdestroy_          PETSCLOGDESTROY
95c6c1daeSBarry Smith #define petsclogbegin_            PETSCLOGBEGIN
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 petsclogprintDetailed_    petsclogprintDetailed
245c6c1daeSBarry Smith #define petsclogallbegin_         petsclogallbegin
255c6c1daeSBarry Smith #define petsclogdestroy_          petsclogdestroy
265c6c1daeSBarry Smith #define petsclogbegin_            petsclogbegin
275c6c1daeSBarry Smith #define petsclogeventregister_    petsclogeventregister
285c6c1daeSBarry Smith #define petsclogdump_             petsclogdump
295c6c1daeSBarry Smith #define petsclogstagepop_         petsclogstagepop
305c6c1daeSBarry Smith #define petsclogstageregister_    petsclogstageregister
315c6c1daeSBarry Smith #define petscclassidregister_     petscclassidregister
325c6c1daeSBarry Smith #define petsclogstagepush_        petsclogstagepush
335c6c1daeSBarry Smith #define petscgetflops_            petscgetflops
345c6c1daeSBarry Smith #define petsclogstagegetid_       petsclogstagegetid
355c6c1daeSBarry Smith #define petsclogeventbegin_       petsclogeventbegin
365c6c1daeSBarry Smith #define petsclogeventend_         petsclogeventend
375c6c1daeSBarry Smith #define petsclogflops_            petsclogflops
385c6c1daeSBarry Smith #endif
395c6c1daeSBarry Smith 
405c6c1daeSBarry Smith EXTERN_C_BEGIN
415c6c1daeSBarry Smith 
42f5f7c1b9SKarl Rupp void PETSC_STDCALL petsclogeventbegin_(PetscLogEvent *e,PetscErrorCode *ierr)
43f5f7c1b9SKarl Rupp {
445c6c1daeSBarry Smith   *ierr = PetscLogEventBegin(*e,0,0,0,0);
455c6c1daeSBarry Smith }
465c6c1daeSBarry Smith 
47f5f7c1b9SKarl Rupp void PETSC_STDCALL petsclogeventend_(PetscLogEvent *e,PetscErrorCode *ierr)
48f5f7c1b9SKarl Rupp {
495c6c1daeSBarry Smith   *ierr = PetscLogEventEnd(*e,0,0,0,0);
505c6c1daeSBarry Smith }
515c6c1daeSBarry Smith 
52f5f7c1b9SKarl Rupp void PETSC_STDCALL petsclogflops_(PetscLogDouble *f,PetscErrorCode *ierr)
53f5f7c1b9SKarl Rupp {
545c6c1daeSBarry Smith   *ierr = PetscLogFlops(*f);
555c6c1daeSBarry Smith }
565c6c1daeSBarry Smith 
575c6c1daeSBarry Smith void PETSC_STDCALL petsclogview_(PetscViewer *viewer,PetscErrorCode *ierr PETSC_END_LEN(len))
585c6c1daeSBarry Smith {
595c6c1daeSBarry Smith   PetscViewer v;
605c6c1daeSBarry Smith   PetscPatchDefaultViewers_Fortran(viewer,v);
615c6c1daeSBarry Smith   *ierr = PetscLogView(v);
625c6c1daeSBarry Smith }
635c6c1daeSBarry Smith 
645c6c1daeSBarry Smith void PETSC_STDCALL petsclogprintDetailed_(MPI_Comm *comm,CHAR filename PETSC_MIXED_LEN(len),PetscErrorCode *ierr PETSC_END_LEN(len))
655c6c1daeSBarry Smith {
665c6c1daeSBarry Smith #if defined(PETSC_USE_LOG)
675c6c1daeSBarry Smith   char *t;
685c6c1daeSBarry Smith   FIXCHAR(filename,len,t);
695c6c1daeSBarry Smith   *ierr = PetscLogPrintDetailed(MPI_Comm_f2c(*(MPI_Fint *)&*comm),t);
705c6c1daeSBarry Smith   FREECHAR(filename,t);
715c6c1daeSBarry Smith #endif
725c6c1daeSBarry Smith }
735c6c1daeSBarry Smith 
745c6c1daeSBarry Smith 
755c6c1daeSBarry Smith void PETSC_STDCALL petsclogdump_(CHAR name PETSC_MIXED_LEN(len),PetscErrorCode *ierr PETSC_END_LEN(len))
765c6c1daeSBarry Smith {
775c6c1daeSBarry Smith #if defined(PETSC_USE_LOG)
785c6c1daeSBarry Smith   char *t1;
795c6c1daeSBarry Smith   FIXCHAR(name,len,t1);
805c6c1daeSBarry Smith   *ierr = PetscLogDump(t1);
815c6c1daeSBarry Smith   FREECHAR(name,t1);
825c6c1daeSBarry Smith #endif
835c6c1daeSBarry Smith }
845c6c1daeSBarry Smith void PETSC_STDCALL petsclogeventregister_(CHAR string PETSC_MIXED_LEN(len),PetscClassId *classid,PetscLogEvent *e,PetscErrorCode *ierr PETSC_END_LEN(len))
855c6c1daeSBarry Smith {
865c6c1daeSBarry Smith #if defined(PETSC_USE_LOG)
875c6c1daeSBarry Smith   char *t1;
885c6c1daeSBarry Smith   FIXCHAR(string,len,t1);
895c6c1daeSBarry Smith   *ierr = PetscLogEventRegister(t1,*classid,e);
905c6c1daeSBarry Smith   FREECHAR(string,t1);
915c6c1daeSBarry Smith #endif
925c6c1daeSBarry Smith }
935c6c1daeSBarry Smith void PETSC_STDCALL petscclassidregister_(CHAR string PETSC_MIXED_LEN(len),PetscClassId *e,PetscErrorCode *ierr PETSC_END_LEN(len))
945c6c1daeSBarry Smith {
955c6c1daeSBarry Smith #if defined(PETSC_USE_LOG)
965c6c1daeSBarry Smith   char *t1;
975c6c1daeSBarry Smith   FIXCHAR(string,len,t1);
985c6c1daeSBarry Smith 
995c6c1daeSBarry Smith   *ierr = PetscClassIdRegister(t1,e);
1005c6c1daeSBarry Smith   FREECHAR(string,t1);
1015c6c1daeSBarry Smith #endif
1025c6c1daeSBarry Smith }
1035c6c1daeSBarry Smith 
104f5f7c1b9SKarl Rupp void PETSC_STDCALL petsclogallbegin_(PetscErrorCode *ierr)
105f5f7c1b9SKarl Rupp {
1065c6c1daeSBarry Smith #if defined(PETSC_USE_LOG)
1075c6c1daeSBarry Smith   *ierr = PetscLogAllBegin();
1085c6c1daeSBarry Smith #endif
1095c6c1daeSBarry Smith }
1105c6c1daeSBarry Smith 
111f5f7c1b9SKarl Rupp void PETSC_STDCALL petsclogdestroy_(PetscErrorCode *ierr)
112f5f7c1b9SKarl Rupp {
1135c6c1daeSBarry Smith #if defined(PETSC_USE_LOG)
1145c6c1daeSBarry Smith   *ierr = PetscLogDestroy();
1155c6c1daeSBarry Smith #endif
1165c6c1daeSBarry Smith }
1175c6c1daeSBarry Smith 
118f5f7c1b9SKarl Rupp void PETSC_STDCALL petsclogbegin_(PetscErrorCode *ierr)
119f5f7c1b9SKarl Rupp {
1205c6c1daeSBarry Smith #if defined(PETSC_USE_LOG)
1215c6c1daeSBarry Smith   *ierr = PetscLogBegin();
1225c6c1daeSBarry Smith #endif
1235c6c1daeSBarry Smith }
1245c6c1daeSBarry Smith 
1255c6c1daeSBarry Smith void PETSC_STDCALL petsclogstagepop_(PetscErrorCode *ierr)
1265c6c1daeSBarry Smith {
1275c6c1daeSBarry Smith #if defined(PETSC_USE_LOG)
1285c6c1daeSBarry Smith   *ierr = PetscLogStagePop();
1295c6c1daeSBarry Smith #endif
1305c6c1daeSBarry Smith }
1315c6c1daeSBarry Smith 
1325c6c1daeSBarry Smith void PETSC_STDCALL petsclogstageregister_(CHAR sname PETSC_MIXED_LEN(len),PetscLogStage *stage,PetscErrorCode *ierr PETSC_END_LEN(len))
1335c6c1daeSBarry Smith {
1345c6c1daeSBarry Smith #if defined(PETSC_USE_LOG)
1355c6c1daeSBarry Smith   char *t;
1365c6c1daeSBarry Smith   FIXCHAR(sname,len,t);
1375c6c1daeSBarry Smith   *ierr = PetscLogStageRegister(t,stage);
1385c6c1daeSBarry Smith   FREECHAR(sname,t);
1395c6c1daeSBarry Smith #endif
1405c6c1daeSBarry Smith }
1415c6c1daeSBarry Smith 
142f5f7c1b9SKarl Rupp void PETSC_STDCALL petsclogstagepush_(PetscLogStage *stage,PetscErrorCode *ierr)
143f5f7c1b9SKarl Rupp {
1445c6c1daeSBarry Smith #if defined(PETSC_USE_LOG)
1455c6c1daeSBarry Smith   *ierr = PetscLogStagePush(*stage);
1465c6c1daeSBarry Smith #endif
1475c6c1daeSBarry Smith }
1485c6c1daeSBarry Smith 
1495c6c1daeSBarry Smith void PETSC_STDCALL petscgetflops_(PetscLogDouble *d,PetscErrorCode *ierr)
1505c6c1daeSBarry Smith {
1515c6c1daeSBarry Smith #if defined(PETSC_USE_LOG)
1525c6c1daeSBarry Smith   *ierr = PetscGetFlops(d);
1535c6c1daeSBarry Smith #else
1545c6c1daeSBarry Smith   ierr = 0;
1555c6c1daeSBarry Smith   *d     = 0.0;
1565c6c1daeSBarry Smith #endif
1575c6c1daeSBarry Smith }
1585c6c1daeSBarry Smith 
1595c6c1daeSBarry Smith void PETSC_STDCALL   petsclogstagegetid_(CHAR sname PETSC_MIXED_LEN(len),PetscLogStage *stage, int *ierr PETSC_END_LEN(len))
1605c6c1daeSBarry Smith {
1615c6c1daeSBarry Smith #if defined(PETSC_USE_LOG)
1625c6c1daeSBarry Smith   char *t;
1635c6c1daeSBarry Smith   FIXCHAR(sname,len,t);
1645c6c1daeSBarry Smith   *ierr = PetscLogStageGetId(t,stage);
1655c6c1daeSBarry Smith   FREECHAR(sname,t);
1665c6c1daeSBarry Smith #endif
1675c6c1daeSBarry Smith }
1685c6c1daeSBarry Smith 
1695c6c1daeSBarry Smith EXTERN_C_END
170