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 petsclogbegin_ PETSCLOGBEGIN 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 petsclogdestroy_ petsclogdestroy 25 #define petsclogbegin_ petsclogbegin 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 PETSC_STDCALL petsclogeventbegin_(PetscLogEvent *e,PetscErrorCode *ierr) 40 { 41 *ierr = PetscLogEventBegin(*e,0,0,0,0); 42 } 43 44 PETSC_EXTERN void PETSC_STDCALL petsclogeventend_(PetscLogEvent *e,PetscErrorCode *ierr) 45 { 46 *ierr = PetscLogEventEnd(*e,0,0,0,0); 47 } 48 49 PETSC_EXTERN void PETSC_STDCALL petsclogflops_(PetscLogDouble *f,PetscErrorCode *ierr) 50 { 51 *ierr = PetscLogFlops(*f); 52 } 53 54 PETSC_EXTERN void PETSC_STDCALL petsclogview_(PetscViewer *viewer,PetscErrorCode *ierr PETSC_END_LEN(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 PETSC_STDCALL petsclogdump_(CHAR name PETSC_MIXED_LEN(len),PetscErrorCode *ierr PETSC_END_LEN(len)) 64 { 65 #if defined(PETSC_USE_LOG) 66 char *t1; 67 FIXCHAR(name,len,t1); 68 *ierr = PetscLogDump(t1); 69 FREECHAR(name,t1); 70 #endif 71 } 72 PETSC_EXTERN void PETSC_STDCALL petsclogeventregister_(CHAR string PETSC_MIXED_LEN(len),PetscClassId *classid,PetscLogEvent *e,PetscErrorCode *ierr PETSC_END_LEN(len)) 73 { 74 #if defined(PETSC_USE_LOG) 75 char *t1; 76 FIXCHAR(string,len,t1); 77 *ierr = PetscLogEventRegister(t1,*classid,e); 78 FREECHAR(string,t1); 79 #endif 80 } 81 PETSC_EXTERN void PETSC_STDCALL petscclassidregister_(CHAR string PETSC_MIXED_LEN(len),PetscClassId *e,PetscErrorCode *ierr PETSC_END_LEN(len)) 82 { 83 #if defined(PETSC_USE_LOG) 84 char *t1; 85 FIXCHAR(string,len,t1); 86 87 *ierr = PetscClassIdRegister(t1,e); 88 FREECHAR(string,t1); 89 #endif 90 } 91 92 PETSC_EXTERN void PETSC_STDCALL petsclogallbegin_(PetscErrorCode *ierr) 93 { 94 #if defined(PETSC_USE_LOG) 95 *ierr = PetscLogAllBegin(); 96 #endif 97 } 98 99 PETSC_EXTERN void PETSC_STDCALL petsclogdestroy_(PetscErrorCode *ierr) 100 { 101 #if defined(PETSC_USE_LOG) 102 *ierr = PetscLogDestroy(); 103 #endif 104 } 105 106 PETSC_EXTERN void PETSC_STDCALL petsclogbegin_(PetscErrorCode *ierr) 107 { 108 #if defined(PETSC_USE_LOG) 109 *ierr = PetscLogBegin(); 110 #endif 111 } 112 113 PETSC_EXTERN void PETSC_STDCALL petsclogstagepop_(PetscErrorCode *ierr) 114 { 115 #if defined(PETSC_USE_LOG) 116 *ierr = PetscLogStagePop(); 117 #endif 118 } 119 120 PETSC_EXTERN void PETSC_STDCALL petsclogstageregister_(CHAR sname PETSC_MIXED_LEN(len),PetscLogStage *stage,PetscErrorCode *ierr PETSC_END_LEN(len)) 121 { 122 #if defined(PETSC_USE_LOG) 123 char *t; 124 FIXCHAR(sname,len,t); 125 *ierr = PetscLogStageRegister(t,stage); 126 FREECHAR(sname,t); 127 #endif 128 } 129 130 PETSC_EXTERN void PETSC_STDCALL petsclogstagepush_(PetscLogStage *stage,PetscErrorCode *ierr) 131 { 132 #if defined(PETSC_USE_LOG) 133 *ierr = PetscLogStagePush(*stage); 134 #endif 135 } 136 137 PETSC_EXTERN void PETSC_STDCALL 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 PETSC_STDCALL petsclogstagegetid_(CHAR sname PETSC_MIXED_LEN(len),PetscLogStage *stage, int *ierr PETSC_END_LEN(len)) 148 { 149 #if defined(PETSC_USE_LOG) 150 char *t; 151 FIXCHAR(sname,len,t); 152 *ierr = PetscLogStageGetId(t,stage); 153 FREECHAR(sname,t); 154 #endif 155 } 156