1 2 #include <petsc-private/fortranimpl.h> 3 4 #if defined(PETSC_HAVE_FORTRAN_CAPS) 5 #define petsclogview_ PETSCLOGVIEW 6 #define petsclogprintDetailed_ PETSCLOGPRINTDETAILED 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 petsclogprintDetailed_ petsclogprintDetailed 24 #define petsclogallbegin_ petsclogallbegin 25 #define petsclogdestroy_ petsclogdestroy 26 #define petsclogbegin_ petsclogbegin 27 #define petsclogeventregister_ petsclogeventregister 28 #define petsclogdump_ petsclogdump 29 #define petsclogstagepop_ petsclogstagepop 30 #define petsclogstageregister_ petsclogstageregister 31 #define petscclassidregister_ petscclassidregister 32 #define petsclogstagepush_ petsclogstagepush 33 #define petscgetflops_ petscgetflops 34 #define petsclogstagegetid_ petsclogstagegetid 35 #define petsclogeventbegin_ petsclogeventbegin 36 #define petsclogeventend_ petsclogeventend 37 #define petsclogflops_ petsclogflops 38 #endif 39 40 EXTERN_C_BEGIN 41 42 void PETSC_STDCALL petsclogeventbegin_(PetscLogEvent *e,PetscErrorCode *ierr) 43 { 44 *ierr = PetscLogEventBegin(*e,0,0,0,0); 45 } 46 47 void PETSC_STDCALL petsclogeventend_(PetscLogEvent *e,PetscErrorCode *ierr) 48 { 49 *ierr = PetscLogEventEnd(*e,0,0,0,0); 50 } 51 52 void PETSC_STDCALL petsclogflops_(PetscLogDouble *f,PetscErrorCode *ierr) 53 { 54 *ierr = PetscLogFlops(*f); 55 } 56 57 void PETSC_STDCALL petsclogview_(PetscViewer *viewer,PetscErrorCode *ierr PETSC_END_LEN(len)) 58 { 59 PetscViewer v; 60 PetscPatchDefaultViewers_Fortran(viewer,v); 61 *ierr = PetscLogView(v); 62 } 63 64 void PETSC_STDCALL petsclogprintDetailed_(MPI_Comm *comm,CHAR filename PETSC_MIXED_LEN(len),PetscErrorCode *ierr PETSC_END_LEN(len)) 65 { 66 #if defined(PETSC_USE_LOG) 67 char *t; 68 FIXCHAR(filename,len,t); 69 *ierr = PetscLogPrintDetailed(MPI_Comm_f2c(*(MPI_Fint*)&*comm),t); 70 FREECHAR(filename,t); 71 #endif 72 } 73 74 75 void PETSC_STDCALL petsclogdump_(CHAR name PETSC_MIXED_LEN(len),PetscErrorCode *ierr PETSC_END_LEN(len)) 76 { 77 #if defined(PETSC_USE_LOG) 78 char *t1; 79 FIXCHAR(name,len,t1); 80 *ierr = PetscLogDump(t1); 81 FREECHAR(name,t1); 82 #endif 83 } 84 void PETSC_STDCALL petsclogeventregister_(CHAR string PETSC_MIXED_LEN(len),PetscClassId *classid,PetscLogEvent *e,PetscErrorCode *ierr PETSC_END_LEN(len)) 85 { 86 #if defined(PETSC_USE_LOG) 87 char *t1; 88 FIXCHAR(string,len,t1); 89 *ierr = PetscLogEventRegister(t1,*classid,e); 90 FREECHAR(string,t1); 91 #endif 92 } 93 void PETSC_STDCALL petscclassidregister_(CHAR string PETSC_MIXED_LEN(len),PetscClassId *e,PetscErrorCode *ierr PETSC_END_LEN(len)) 94 { 95 #if defined(PETSC_USE_LOG) 96 char *t1; 97 FIXCHAR(string,len,t1); 98 99 *ierr = PetscClassIdRegister(t1,e); 100 FREECHAR(string,t1); 101 #endif 102 } 103 104 void PETSC_STDCALL petsclogallbegin_(PetscErrorCode *ierr) 105 { 106 #if defined(PETSC_USE_LOG) 107 *ierr = PetscLogAllBegin(); 108 #endif 109 } 110 111 void PETSC_STDCALL petsclogdestroy_(PetscErrorCode *ierr) 112 { 113 #if defined(PETSC_USE_LOG) 114 *ierr = PetscLogDestroy(); 115 #endif 116 } 117 118 void PETSC_STDCALL petsclogbegin_(PetscErrorCode *ierr) 119 { 120 #if defined(PETSC_USE_LOG) 121 *ierr = PetscLogBegin(); 122 #endif 123 } 124 125 void PETSC_STDCALL petsclogstagepop_(PetscErrorCode *ierr) 126 { 127 #if defined(PETSC_USE_LOG) 128 *ierr = PetscLogStagePop(); 129 #endif 130 } 131 132 void PETSC_STDCALL petsclogstageregister_(CHAR sname PETSC_MIXED_LEN(len),PetscLogStage *stage,PetscErrorCode *ierr PETSC_END_LEN(len)) 133 { 134 #if defined(PETSC_USE_LOG) 135 char *t; 136 FIXCHAR(sname,len,t); 137 *ierr = PetscLogStageRegister(t,stage); 138 FREECHAR(sname,t); 139 #endif 140 } 141 142 void PETSC_STDCALL petsclogstagepush_(PetscLogStage *stage,PetscErrorCode *ierr) 143 { 144 #if defined(PETSC_USE_LOG) 145 *ierr = PetscLogStagePush(*stage); 146 #endif 147 } 148 149 void PETSC_STDCALL petscgetflops_(PetscLogDouble *d,PetscErrorCode *ierr) 150 { 151 #if defined(PETSC_USE_LOG) 152 *ierr = PetscGetFlops(d); 153 #else 154 ierr = 0; 155 *d = 0.0; 156 #endif 157 } 158 159 void PETSC_STDCALL petsclogstagegetid_(CHAR sname PETSC_MIXED_LEN(len),PetscLogStage *stage, int *ierr PETSC_END_LEN(len)) 160 { 161 #if defined(PETSC_USE_LOG) 162 char *t; 163 FIXCHAR(sname,len,t); 164 *ierr = PetscLogStageGetId(t,stage); 165 FREECHAR(sname,t); 166 #endif 167 } 168 169 EXTERN_C_END 170