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