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