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