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