On 8/28/07, Paul T. Bauman <pbauman at ices.utexas.edu> wrote: > Hello, > > Kind of a non-numerical question - sorry. I'm using PetscPrintf from > Fortran using the following calling sequence (for example): > > call PetscPrintf(PETSC_COMM_WORLD, > "=============================================== \n", ierr) > call PetscPrintf(PETSC_COMM_WORLD, " Beginning of > Program \n", ierr) > call PetscPrintf(PETSC_COMM_WORLD, > "=============================================== \n", ierr) > > On my mac laptop (PowerPC) with PETSc 2.3.2-p7 compiled with gcc 4.0.1 > and g95, this prints as expected: > > =============================================== > Beginning of Program > =============================================== > > On a linux workstation (AMD Opteron) with PETSc 2.3.2-p7 compiled with > icc, icxx, ifort 9.1, the "\n" is treated as a character and not treated > as "move to new line" so the output is all on one line: > > =============================================== \n > Beginning of Program \n=============================================== \n
This is much lower level than PETSc. It is in the C standard. There must be something else going on here. We do this EVERYWHERE in the code. For instance, why would the -ksp_monitor output work. This uses \n in exactly the same way. Matt > While not the end of the world, it is a bit annoying. Am I screwing up > the calling sequence and just got lucky with g95? Or a bug (PETSc or > Intel)? > > Thanks, > > Paul > > P.S. The reason why I care is because on any compiler I've used (other > than Intel), write(*,*) prints out at different times and not in > sequence with PETSc so all my output comes out after PETSc is done > outputting. Using PetscPrintf, I can have everything print out in order. > > -- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener
