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