xref: /petsc/src/sys/info/ftn-custom/zverboseinfof.c (revision 2205254efee3a00a594e5e2a3a70f74dcb40bc03)
1 #include <petsc-private/fortranimpl.h>
2 
3 
4 #if defined(PETSC_HAVE_FORTRAN_CAPS)
5 #define petscinfo_ PETSCINFO
6 #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) && !defined(FORTRANDOUBLEUNDERSCORE)
7 #define petscinfo_ petscinfo
8 #endif
9 
10 EXTERN_C_BEGIN
11 
12 #undef __FUNCT__
13 #define __FUNCT__ "PetscFixSlashN"
14 static PetscErrorCode PetscFixSlashN(const char *in, char **out)
15 {
16   PetscErrorCode ierr;
17   PetscInt       i;
18   size_t         len;
19 
20   PetscFunctionBegin;
21   ierr = PetscStrallocpy(in,out);CHKERRQ(ierr);
22   ierr = PetscStrlen(*out,&len);CHKERRQ(ierr);
23   for (i=0; i<(int)len-1; i++) {
24     if ((*out)[i] == '\\' && (*out)[i+1] == 'n') {(*out)[i] = ' '; (*out)[i+1] = '\n';}
25   }
26   PetscFunctionReturn(0);
27 }
28 
29 void PETSC_STDCALL petscinfo_(CHAR text PETSC_MIXED_LEN(len1),PetscErrorCode *ierr PETSC_END_LEN(len1))
30 {
31   char *c1,*tmp;
32 
33   FIXCHAR(text,len1,c1);
34   *ierr = PetscFixSlashN(c1,&tmp);if (*ierr) return;
35   *ierr = PetscInfo(PETSC_NULL,tmp);if (*ierr) return;
36   *ierr = PetscFree(tmp);if (*ierr) return;
37   FREECHAR(text,c1);
38 }
39 
40 EXTERN_C_END
41