[Octopus-devel] cvs commit: marques/octopus/src messages.F90
syslabels.F90
cvsusers at tddft.org
cvsusers at tddft.org
Sun Jun 5 10:24:13 WEST 2005
appel 2005/06/05 10:24:13 WEST
Added files:
octopus/src messages.F90 syslabels.F90
Log:
I've broken the global module in several parts. Since global was used in many
places, the changes affect most of the files. Here a changelog:
o The io module now contains a "use global", i.e. the module _knows_ about MPI
and the node numbers (_very_ important to clean up IO in parallel runs).
o There is a new module called messages which contains now the write_{info,
warning,fatal} functions and corresponding variables like message(:), stars,
hyphens. I was not sure about the push_sub, pop_sub functions, so I put them
also in the messages module. Perhaps they belong in a own debug module ...
o I modified the write_* functions in order to _really_ flush output in e.g.
MPI runs. For that purpose I've introduced a new variable "FlushMessages".
If set to "yes" (default is no), octopus opens the files messages.{stdout,stderr}
and appends messages for every call of write_*. At the end of the write_* calls
the files are closed so that the output is written to disk. Even if the operating
system or a queuing system buffers the ordinary stdout and stderr you will get
with a tail -f messages.* immediate feedback what octopus does. Of course in MPI
runs only node 0 writes.
On a SMP machine with two octopus MPI processes it is in this context instructive
to monitor the output pattern by running
strace -e open -p <pid of first process>
strace -e open -p <pid of second process>
o The new module syslabels contains all the stuff that is required to run
multiple subsystems. Apart from this module and a few init calls the system
label support reduces now to a single line in io.F90:
before:
write(wpath, '(3a)') trim(work_dir), "/", trim(path)
now:
write(wpath, '(4a)') trim(work_dir), "/", trim(current_label), trim(path)
All the old current_label stuff has been removed.
o A "use global" is now in many cases accompanied by a "use messages" and a
"use syslabels" (the price we have to pay to clean up global).
o Added some more $Id:$ tags that I forgot in the first round.
o The utility programs compile but I didn't check if they produce proper output.
Perhaps we should add checks to the testsuite for them as well?
More information about the Octopus-devel
mailing list