1 #include <petsc/private/fortranimpl.h> 2 #include <petscviewer.h> 3 4 #if defined(PETSC_HAVE_FORTRAN_CAPS) 5 #define petsclogview_ PETSCLOGVIEW 6 #define petsclogallbegin_ PETSCLOGALLBEGIN 7 #define petsclogdefaultbegin_ PETSCLOGDEFAULTBEGIN 8 #define petsclognestedbegin_ PETSCLOGNESTEDBEGIN 9 #define petsclogdump_ PETSCLOGDUMP 10 #define petsclogeventregister_ PETSCLOGEVENTREGISTER 11 #define petsclogstagepop_ PETSCLOGSTAGEPOP 12 #define petsclogstageregister_ PETSCLOGSTAGEREGISTER 13 #define petscclassidregister_ PETSCCLASSIDREGISTER 14 #define petsclogstagepush_ PETSCLOGSTAGEPUSH 15 #define petscgetflops_ PETSCGETFLOPS 16 #define petsclogstagegetid_ PETSCLOGSTAGEGETID 17 #define petsclogeventbegin_ PETSCLOGEVENTBEGIN 18 #define petsclogeventend_ PETSCLOGEVENTEND 19 #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) 20 #define petsclogview_ petsclogview 21 #define petsclogallbegin_ petsclogallbegin 22 #define petsclogdefaultbegin_ petsclogdefaultbegin 23 #define petsclognestedbegin_ petsclognestedbegin 24 #define petsclogeventregister_ petsclogeventregister 25 #define petsclogdump_ petsclogdump 26 #define petsclogstagepop_ petsclogstagepop 27 #define petsclogstageregister_ petsclogstageregister 28 #define petscclassidregister_ petscclassidregister 29 #define petsclogstagepush_ petsclogstagepush 30 #define petscgetflops_ petscgetflops 31 #define petsclogstagegetid_ petsclogstagegetid 32 #define petsclogeventbegin_ petsclogeventbegin 33 #define petsclogeventend_ petsclogeventend 34 #endif 35 36 PETSC_EXTERN void petsclogeventbegin_(PetscLogEvent *e,PetscErrorCode *ierr) 37 { 38 *ierr = PetscLogEventBegin(*e,0,0,0,0); 39 } 40 41 PETSC_EXTERN void petsclogeventend_(PetscLogEvent *e,PetscErrorCode *ierr) 42 { 43 *ierr = PetscLogEventEnd(*e,0,0,0,0); 44 } 45 46 PETSC_EXTERN void petsclogview_(PetscViewer *viewer,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len) 47 { 48 #if defined(PETSC_USE_LOG) 49 PetscViewer v; 50 PetscPatchDefaultViewers_Fortran(viewer,v); 51 *ierr = PetscLogView(v); 52 #endif 53 } 54 55 PETSC_EXTERN void petsclogdump_(char* name,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len) 56 { 57 #if defined(PETSC_USE_LOG) 58 char *t1; 59 FIXCHAR(name,len,t1); 60 *ierr = PetscLogDump(t1);if (*ierr) return; 61 FREECHAR(name,t1); 62 #endif 63 } 64 PETSC_EXTERN void petsclogeventregister_(char* string,PetscClassId *classid,PetscLogEvent *e,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len) 65 { 66 #if defined(PETSC_USE_LOG) 67 char *t1; 68 FIXCHAR(string,len,t1); 69 *ierr = PetscLogEventRegister(t1,*classid,e);if (*ierr) return; 70 FREECHAR(string,t1); 71 #endif 72 } 73 PETSC_EXTERN void petscclassidregister_(char* string,PetscClassId *e,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len) 74 { 75 #if defined(PETSC_USE_LOG) 76 char *t1; 77 FIXCHAR(string,len,t1); 78 79 *ierr = PetscClassIdRegister(t1,e);if (*ierr) return; 80 FREECHAR(string,t1); 81 #endif 82 } 83 84 PETSC_EXTERN void petsclogallbegin_(PetscErrorCode *ierr) 85 { 86 #if defined(PETSC_USE_LOG) 87 *ierr = PetscLogAllBegin(); 88 #endif 89 } 90 91 PETSC_EXTERN void petsclogdefaultbegin_(PetscErrorCode *ierr) 92 { 93 #if defined(PETSC_USE_LOG) 94 *ierr = PetscLogDefaultBegin(); 95 #endif 96 } 97 98 PETSC_EXTERN void petsclognestedbegin_(PetscErrorCode *ierr) 99 { 100 #if defined(PETSC_USE_LOG) 101 *ierr = PetscLogNestedBegin(); 102 #endif 103 } 104 105 PETSC_EXTERN void petsclogstagepop_(PetscErrorCode *ierr) 106 { 107 #if defined(PETSC_USE_LOG) 108 *ierr = PetscLogStagePop(); 109 #endif 110 } 111 112 PETSC_EXTERN void petsclogstageregister_(char* sname,PetscLogStage *stage,PetscErrorCode *ierr,PETSC_FORTRAN_CHARLEN_T len) 113 { 114 #if defined(PETSC_USE_LOG) 115 char *t; 116 FIXCHAR(sname,len,t); 117 *ierr = PetscLogStageRegister(t,stage);if (*ierr) return; 118 FREECHAR(sname,t); 119 #endif 120 } 121 122 PETSC_EXTERN void petsclogstagepush_(PetscLogStage *stage,PetscErrorCode *ierr) 123 { 124 #if defined(PETSC_USE_LOG) 125 *ierr = PetscLogStagePush(*stage); 126 #endif 127 } 128 129 PETSC_EXTERN void petscgetflops_(PetscLogDouble *d, PetscErrorCode *ierr) 130 { 131 #if defined(PETSC_USE_LOG) 132 *ierr = PetscGetFlops(d); 133 #else 134 *ierr = PETSC_SUCCESS; 135 *d = 0.0; 136 #endif 137 } 138 139 PETSC_EXTERN void petsclogstagegetid_(char *sname, PetscLogStage *stage, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len) 140 { 141 #if defined(PETSC_USE_LOG) 142 char *t; 143 FIXCHAR(sname, len, t); 144 *ierr = PetscLogStageGetId(t, stage); 145 if (*ierr) return; 146 FREECHAR(sname, t); 147 #endif 148 } 149