FMI.
This is For My Information. You need not read this. 
That is, only the developers ( != installer) may read this.

1) How to make Makefile.
     At the top directory of cosmos, issue

	makeMakefile
 
    This produces Makefiles in all subdirectories in which there are *.f files
  necessary for creating the archive library "libcosmos.a".  (which *.f is needed
  for the library is, of course, not determined by the computer. So you must give
  a needed directroy list in makeMakefile script. see details below)

  Makefile at the top directroy should be created by removing existing Makefile
  and issuing 'cosmkmf -l'. 


  Note that in some directory, say, Util, there is a Makefile which is not for making
  the library.  Such a Makefile may be hand made with the help of cosmkmf command
  (modify the resultant Makefile after cosmkmf). The Makefile scheme such as in Util is
  completely different  from the Makefiles for creating the library. 
  The one in Particle/Event/Test may be  useful as a template.

2) How to make libcosmos.a

   Issue at  the top directory,
 
          make   

   On HP-9000, the file name in the library is kept only upto 14 characters. 
  ( Otherwise 'make' always recompiles files with a name more than 14 characters.
    There is no way for avoiding this at present with HP9000 ar.  )

   A script, 'cppFC' must be visible for make.  site.config must be ready
   in the top directory.  Especially "ARCH" must be fixed depending on the machine.
   

3) If a new directory is created, and Makefile is needed, issue,
   (if all program files in that directory are ready)

	cosmkmf -l

   'make' may be issued in this directory to add files in the libcosmos.a.

4)  Automatic maintenance of NameList.
    Issue ( at Scrpt directory, if NLM is seen only there )

      NLM
        
   This updates  Znamelist1.h  and Znamelist2.h in cosmos,  make ParamUsage1 and 
   ParamUsage2 in Doc and  ParamDefault in Doc.

   The ingredients of this command can be executed independently.
    
     makeNL 1            for  Znamelist1.h
     makeNL 2            for  Znamelist2.h
     mkNLD               for  getting ParamUsage1, 2
     pretty              for  getting Namelist default values.

   If some change is made in Z*p.h, use the above commands.  However,
   the change of the file in $(COSMOSINC)/BlockData should be done manually.


5) HP fortran compiler has a big bug:  It cannot detect the following error.
-------------------------------
      implicit none
      structure /abc/
      union
          map
             real*8 x
          end map
          map
            real*8 y
          endmap
      end union
      end structure
      record /abc/ ppp
      ppp.w.x = 10.         !  this  should be error.
      write(*, *) ppp.y
      end
-------------------------------
   Strangely enough, ppp.y has correct value.

6) Degugging.
  If error is complicated, give a positive integer to  DEBUG  in Zcondc.h. 
  Depending of the value,  some prrogram component (e.g.in ctracking.f) can
  issue a debugging iformation.  If this has to be used, the error should be so
  complicated that you may has to modify the checkstat routine there.


----------------------------- details ---------------------------------------------
About Makefiles.

  
  TemplateLib.mk is a necessary stuff for making Makefiles for creating the library,
  "libcosmos.a".
 
  Also, csh scripts,  "cosmkmf" and "makeMakefile" are needed and must be visible
  in all directories.

  In the variable, dir, in makeMakefile should be listed all directories in which and
  in all their subdirectories the Makefile should not be created.

  Template.mk is used when cosmkmf is used without -l option.  This create a Makefile
  which may be used in a Test directroy. (Rather a lot of  modification is needed).

  cosmkmf:  uses mkmf command (only HP's mkmf has been verified to work).  This create a
            Makefile.  -l option is for creating Makefile for creating the library.
  cppFC:    B-shell script to compile fortran code with cpp #directives.
            If a sigle or a few files may be comiled, use cppf77 (for making a.out)
            or cppfc (for comile only).
  site.config  ARCH must be given depending on the cpu you use. Also ARCHVOPT.


