[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