
                         ___________________________________________
                        |                                           |
                        |  Instructions to run the HFODD benchtest  |
                        |___________________________________________|


To test HFODD, we provide with each release of the source code a list of input
files, hereafter called 'canonical input files', and the corresponding output
files. This directory contains all the canonical input files used to test HFODD.


1) Compilation
   -----------

   Before compiling the code, edit the file hfodd_sizes_2.f90 and check that
   all the following variables are preset to the default values indicated below,

      - NDMAIN=22
      - NDXHRM=34, NDYHRM=34, NDZHRM=46
      - NDBASE=680
      - NDSTAT=680
      - NDAKNO=1, NDBKNO=1
      - NDPROI=20, NDPROT=10
      - NDBTKN=10

   This will guarantee that the code can run all the stand-alone cases listed in
   section 2) below.

   If this is the case, compile the code by following the instructions given in the
   publication; refer to the README of the main directory for details. As a reminder,
   the code can be compiled in either serial mode by setting USE_MPI=0 in the Makefile,
   or in parallel mode by setting USE_MPI=1; refer to section 4.2.2 of the HFODD paper
   (version 2.73) for instructions about how to run the code in parallel mode.


2) Serial mode
   -----------

   Below is the list of input files that can be run independently of one another with
   HFODD in serial mode

      - c_014.om0.pnm.t090p00.SKM.apc.sig.dat
      - ca40_iso.dat
      - ca48_lip.dat
      - cr50_tem.dat
      - dy152-b.dat
      - dy152-c.dat
      - dy152-d.dat
      - dy152-e.dat
      - dy152-f.dat
      - ge064-a.dat
      - la132-a.dat
      - la132-b.dat
      - pb208_tho.dat
      - Pb212_Lip.dat
      - pu240.dat
      - pu240_qprot.dat
      - sn116-6.dat
      - sn120-a.dat
      - sn120_gogny.dat
      - tb151-a.dat
      - tb151-b.dat
      - tb151-c.dat
      - tb151-d.dat

   Running the input file 'ge064-b.dat' requires results from 'ge064-a.dat', and
   running 'ge064-c.dat' requires results from 'ge064-b.dat', hence the sequence

      ge064-a.dat  -->  ge064-b.dat  -->  ge064-c.dat

   In addition, the preset values for the size of static arrays do not allow running
   these input files. It is therefore recommended to recompile the code first by
   setting the following values,

      - NDAKNO=40, NDBKNO=40
      - NDPROI=40, NDPROT=10
      - NDBTKN=1

   One standard PC with recent Linux distributions, such sizes should not lead to a
   message of

      [...] relocation truncated to fit: R_X86_64_PC32 against symbol [...]

   at compile time.

3) Parallel mode
   -------------

   There are four different types of parallel calculations supported by HFODD in
   its version 273y; see section 3.2.2 of the relevant publication. These are
   selected through the value of 'mpidef' set under keyword CALCULMODE in the
   parallel input file 'hfodd_mpiio.d'. In this benchtest, you can test each
   mode but it requires first that you rename the corresponding files. For
   instance, to test mode 'mpidef=3', start with

      mv hfodd_mpidef3.d hfodd.d
      mv hfodd_mpiio_mpidef3 hfodd_mpiio.d

   to properly define the filenames for the parallel mode. These files must be
   located in the directory where the code is run. If we assume the test
   directory is 'test_mpidef', then its content must be at least

      test_mpidef/
         !--> hfodd.d
         !--> hfodd_mpiio.d
         !--> hf273y

   Modes 'mpidef=1' and 'mpidef=3' can be run independently of one other, as
   they involve calculations from scratch. Note that the latter will make use of
   the file 'hfodd_path.d', which must be in the same directory where the code is
   executed; see section 3.2.2 of the HFODD manuscript for detailed explanations.
   For 'mpidef=3', the test directory therefore contains at least

      test_mpidef/
         !--> hfodd.d
         !--> hfodd_mpiio.d
         !--> hfodd_path.d
         !--> hf273y

   Modes 'mpidef=2' and 'mpidef=4' are based, respectively, on the results of
   the calculations for 'mpidef=1' and 'mpidef=3' since they illustrate the
   parallel restart capabilities of the code.


   a. mpidef=2

      Assume calculations of 'mpidef=1' were executed in the directory
      'test_mpidef/'. In order to run the test case 'mpidef=2', the user must
      first move all the HFODD record files of the previous run to a new
      directory 'restart/'. In parallel mode, all record files have a
      generic name of the type HFODD_XXXXXXXX.REC where XXXXXXXX is a 8-digit
      integer padded with 0. Hence, inside 'test_mpidef/'

              mkdir restart
              mv *.REC restart

      The content of the directory where the code is executed is, therefore,
      the following

         test_mpidef/
            !--> restart/
            !--> hfodd.d
            !--> hfodd_mpiio.d
            !--> hf273y


   b. mpidef=4

      Assume calculations of 'mpidef=3' were executed in the directory
      'test_mpidef/'. In order to run the test case 'mpidef=4', the user must
      first move all the HFODD record files of the previous run to a new
      directory 'restart/'. In parallel mode, all record files have a
      generic name of the type HFODD_XXXXXXXX.REC where XXXXXXXX is a 8-digit
      integer padded with 0. Hence,

              cd test_mpidef
              mkdir restart
              mv *.REC restart

      Then, the files 'hfodd_path.d' (which contains the old deformation path
      used in 'mpidef=3') and 'hfodd_path_new.d' (which contains the new path
      to be used in 'mpidef=4') must be present in 'test_mpidef/'. Therefore,
      the content of the directory where the code is executed is, therefore,
      the following

         test_mpidef/
            !--> restart/
            !--> hfodd_path.d
            !--> hfodd_path_new.d
            !--> hfodd.d
            !--> hfodd_mpiio.d
            !--> hf273y
