1*6dd63270SBarry Smith #include <petsc/private/ftnimpl.h> 25c6c1daeSBarry Smith 3519f805aSKarl Rupp #if defined(PETSC_HAVE_FORTRAN_CAPS) 45c6c1daeSBarry Smith #define petscinfo_ PETSCINFO 58a6b6cadSSatish Balay #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) 65c6c1daeSBarry Smith #define petscinfo_ petscinfo 75c6c1daeSBarry Smith #endif 85c6c1daeSBarry Smith 95c6c1daeSBarry Smith static PetscErrorCode PetscFixSlashN(const char *in, char **out) 105c6c1daeSBarry Smith { 115c6c1daeSBarry Smith PetscInt i; 125c6c1daeSBarry Smith size_t len; 135c6c1daeSBarry Smith 145c6c1daeSBarry Smith PetscFunctionBegin; 159566063dSJacob Faibussowitsch PetscCall(PetscStrallocpy(in, out)); 169566063dSJacob Faibussowitsch PetscCall(PetscStrlen(*out, &len)); 175c6c1daeSBarry Smith for (i = 0; i < (int)len - 1; i++) { 185975b3b6SBarry Smith if ((*out)[i] == '\\' && (*out)[i + 1] == 'n') { 195975b3b6SBarry Smith (*out)[i] = ' '; 205975b3b6SBarry Smith (*out)[i + 1] = '\n'; 215975b3b6SBarry Smith } 225c6c1daeSBarry Smith } 233ba16761SJacob Faibussowitsch PetscFunctionReturn(PETSC_SUCCESS); 245c6c1daeSBarry Smith } 255c6c1daeSBarry Smith 2619caf8f3SSatish Balay PETSC_EXTERN void petscinfo_(char *text, PetscErrorCode *ierr, PETSC_FORTRAN_CHARLEN_T len1) 275c6c1daeSBarry Smith { 285c6c1daeSBarry Smith char *c1, *tmp; 295c6c1daeSBarry Smith 305c6c1daeSBarry Smith FIXCHAR(text, len1, c1); 315975b3b6SBarry Smith *ierr = PetscFixSlashN(c1, &tmp); 325975b3b6SBarry Smith if (*ierr) return; 335c6c1daeSBarry Smith FREECHAR(text, c1); 345975b3b6SBarry Smith *ierr = PetscInfo(NULL, "%s", tmp); 355975b3b6SBarry Smith if (*ierr) return; 368bceffaeSBarry Smith *ierr = PetscFree(tmp); 375c6c1daeSBarry Smith } 38