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 PetscViewer v; 57 PetscPatchDefaultViewers_Fortran(viewer,v); 58 *ierr = PetscLogView(v); 59 } 60 61 PETSC_EXTERN void PETSC_STDCALL petsclogdump_(CHAR name PETSC_MIXED_LEN(len),PetscErrorCode *ierr PETSC_END_LEN(len)) 62 { 63 #if defined(PETSC_USE_LOG) 64 char *t1; 65 FIXCHAR(name,len,t1); 66 *ierr = PetscLogDump(t1); 67 FREECHAR(name,t1); 68 #endif 69 } 70 PETSC_EXTERN void PETSC_STDCALL petsclogeventregister_(CHAR string PETSC_MIXED_LEN(len),PetscClassId *classid,PetscLogEvent *e,PetscErrorCode *ierr PETSC_END_LEN(len)) 71 { 72 #if defined(PETSC_USE_LOG) 73 char *t1; 74 FIXCHAR(string,len,t1); 75 *ierr = PetscLogEventRegister(t1,*classid,e); 76 FREECHAR(string,t1); 77 #endif 78 } 79 PETSC_EXTERN void PETSC_STDCALL petscclassidregister_(CHAR string PETSC_MIXED_LEN(len),PetscClassId *e,PetscErrorCode *ierr PETSC_END_LEN(len)) 80 { 81 #if defined(PETSC_USE_LOG) 82 char *t1; 83 FIXCHAR(string,len,t1); 84 85 *ierr = PetscClassIdRegister(t1,e); 86 FREECHAR(string,t1); 87 #endif 88 } 89 90 PETSC_EXTERN void PETSC_STDCALL petsclogallbegin_(PetscErrorCode *ierr) 91 { 92 #if defined(PETSC_USE_LOG) 93 *ierr = PetscLogAllBegin(); 94 #endif 95 } 96 97 PETSC_EXTERN void PETSC_STDCALL petsclogdestroy_(PetscErrorCode *ierr) 98 { 99 #if defined(PETSC_USE_LOG) 100 *ierr = PetscLogDestroy(); 101 #endif 102 } 103 104 PETSC_EXTERN void PETSC_STDCALL petsclogbegin_(PetscErrorCode *ierr) 105 { 106 #if defined(PETSC_USE_LOG) 107 *ierr = PetscLogBegin(); 108 #endif 109 } 110 111 PETSC_EXTERN void PETSC_STDCALL petsclogstagepop_(PetscErrorCode *ierr) 112 { 113 #if defined(PETSC_USE_LOG) 114 *ierr = PetscLogStagePop(); 115 #endif 116 } 117 118 PETSC_EXTERN void PETSC_STDCALL petsclogstageregister_(CHAR sname PETSC_MIXED_LEN(len),PetscLogStage *stage,PetscErrorCode *ierr PETSC_END_LEN(len)) 119 { 120 #if defined(PETSC_USE_LOG) 121 char *t; 122 FIXCHAR(sname,len,t); 123 *ierr = PetscLogStageRegister(t,stage); 124 FREECHAR(sname,t); 125 #endif 126 } 127 128 PETSC_EXTERN void PETSC_STDCALL petsclogstagepush_(PetscLogStage *stage,PetscErrorCode *ierr) 129 { 130 #if defined(PETSC_USE_LOG) 131 *ierr = PetscLogStagePush(*stage); 132 #endif 133 } 134 135 PETSC_EXTERN void PETSC_STDCALL petscgetflops_(PetscLogDouble *d,PetscErrorCode *ierr) 136 { 137 #if defined(PETSC_USE_LOG) 138 *ierr = PetscGetFlops(d); 139 #else 140 ierr = 0; 141 *d = 0.0; 142 #endif 143 } 144 145 PETSC_EXTERN void PETSC_STDCALL petsclogstagegetid_(CHAR sname PETSC_MIXED_LEN(len),PetscLogStage *stage, int *ierr PETSC_END_LEN(len)) 146 { 147 #if defined(PETSC_USE_LOG) 148 char *t; 149 FIXCHAR(sname,len,t); 150 *ierr = PetscLogStageGetId(t,stage); 151 FREECHAR(sname,t); 152 #endif 153 } 154