1 2 #include <petsc-private/fortranimpl.h> 3 4 #ifdef 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 *ierr = PetscLogEventBegin(*e,0,0,0,0); 44 } 45 46 void PETSC_STDCALL petsclogeventend_(PetscLogEvent *e,PetscErrorCode *ierr){ 47 *ierr = PetscLogEventEnd(*e,0,0,0,0); 48 } 49 50 void PETSC_STDCALL petsclogflops_(PetscLogDouble *f,PetscErrorCode *ierr) { 51 *ierr = PetscLogFlops(*f); 52 } 53 54 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 void PETSC_STDCALL petsclogprintDetailed_(MPI_Comm *comm,CHAR filename PETSC_MIXED_LEN(len),PetscErrorCode *ierr PETSC_END_LEN(len)) 62 { 63 #if defined(PETSC_USE_LOG) 64 char *t; 65 FIXCHAR(filename,len,t); 66 *ierr = PetscLogPrintDetailed(MPI_Comm_f2c(*(MPI_Fint *)&*comm),t); 67 FREECHAR(filename,t); 68 #endif 69 } 70 71 72 void PETSC_STDCALL petsclogdump_(CHAR name PETSC_MIXED_LEN(len),PetscErrorCode *ierr PETSC_END_LEN(len)) 73 { 74 #if defined(PETSC_USE_LOG) 75 char *t1; 76 FIXCHAR(name,len,t1); 77 *ierr = PetscLogDump(t1); 78 FREECHAR(name,t1); 79 #endif 80 } 81 void PETSC_STDCALL petsclogeventregister_(CHAR string PETSC_MIXED_LEN(len),PetscClassId *classid,PetscLogEvent *e,PetscErrorCode *ierr PETSC_END_LEN(len)) 82 { 83 #if defined(PETSC_USE_LOG) 84 char *t1; 85 FIXCHAR(string,len,t1); 86 *ierr = PetscLogEventRegister(t1,*classid,e); 87 FREECHAR(string,t1); 88 #endif 89 } 90 void PETSC_STDCALL petscclassidregister_(CHAR string PETSC_MIXED_LEN(len),PetscClassId *e,PetscErrorCode *ierr PETSC_END_LEN(len)) 91 { 92 #if defined(PETSC_USE_LOG) 93 char *t1; 94 FIXCHAR(string,len,t1); 95 96 *ierr = PetscClassIdRegister(t1,e); 97 FREECHAR(string,t1); 98 #endif 99 } 100 101 void PETSC_STDCALL petsclogallbegin_(PetscErrorCode *ierr){ 102 #if defined(PETSC_USE_LOG) 103 *ierr = PetscLogAllBegin(); 104 #endif 105 } 106 107 void PETSC_STDCALL petsclogdestroy_(PetscErrorCode *ierr){ 108 #if defined(PETSC_USE_LOG) 109 *ierr = PetscLogDestroy(); 110 #endif 111 } 112 113 void PETSC_STDCALL petsclogbegin_(PetscErrorCode *ierr){ 114 #if defined(PETSC_USE_LOG) 115 *ierr = PetscLogBegin(); 116 #endif 117 } 118 119 void PETSC_STDCALL petsclogstagepop_(PetscErrorCode *ierr) 120 { 121 #if defined(PETSC_USE_LOG) 122 *ierr = PetscLogStagePop(); 123 #endif 124 } 125 126 void PETSC_STDCALL petsclogstageregister_(CHAR sname PETSC_MIXED_LEN(len),PetscLogStage *stage,PetscErrorCode *ierr PETSC_END_LEN(len)) 127 { 128 #if defined(PETSC_USE_LOG) 129 char *t; 130 FIXCHAR(sname,len,t); 131 *ierr = PetscLogStageRegister(t,stage); 132 FREECHAR(sname,t); 133 #endif 134 } 135 136 void PETSC_STDCALL petsclogstagepush_(PetscLogStage *stage,PetscErrorCode *ierr){ 137 #if defined(PETSC_USE_LOG) 138 *ierr = PetscLogStagePush(*stage); 139 #endif 140 } 141 142 void PETSC_STDCALL petscgetflops_(PetscLogDouble *d,PetscErrorCode *ierr) 143 { 144 #if defined(PETSC_USE_LOG) 145 *ierr = PetscGetFlops(d); 146 #else 147 ierr = 0; 148 *d = 0.0; 149 #endif 150 } 151 152 void PETSC_STDCALL petsclogstagegetid_(CHAR sname PETSC_MIXED_LEN(len),PetscLogStage *stage, int *ierr PETSC_END_LEN(len)) 153 { 154 #if defined(PETSC_USE_LOG) 155 char *t; 156 FIXCHAR(sname,len,t); 157 *ierr = PetscLogStageGetId(t,stage); 158 FREECHAR(sname,t); 159 #endif 160 } 161 162 EXTERN_C_END 163