The standard way of doing non-advancing I/O is to use advance="no".
See examples here: http://mrccs.man.ac.uk/hpctec/courses/Fortran90/
Fortran90_56.html
FX
--
François-Xavier Coudert
http://www.homepages.ucl.ac.uk/~uccafco/
There's no standard way to do it in a print statement. There is a
rather widespread nonstandard way of doing it, though, using $ as an
format edit descriptor:
print "(a,$)", "My message"
> For a newcomer who is browsing the code casually, the following line
> is more intuitive
>
> print "(a,\)" "My message"
Well, I don't see why it's more intuitive than:
write(*,"(a)",advance=no) "My message"
If a newcomer wants to understand the form you use, they have to look
up for the meaning of the backslash, they won't find it in the
standard or textbooks, so they need to find the manual of the
compilers that use it.
Anyway, there is one more thing that is nonstandard about your code:
there needs to be a comma between the format and the first element of
the I/O list in the PRINT statement.