MPI-SCATCI  2.0
An MPI version of SCATCI
options_module Module Reference

Options module. More...

Data Types

type  options
 Calculation setup for a single Hamiltonian diagonalization. More...
 
type  optionsset
 MPI-SCATCI input. More...
 
type  phase
 ? More...
 

Functions/Subroutines

subroutine read_all_namelists (this)
 Read all relevant namelists from the input. More...
 
integer function read_all_input (this, io)
 Read all &INPUT namelists from file unit. More...
 
integer function read_all_cinorn (this, io)
 Read all &CINORN namelists from file unit. More...
 
subroutine read_outer_interface (this, io)
 Read contents of the OUTER interface namelist. More...
 
subroutine read_input (this)
 Read and check input files. More...
 
subroutine check_sanity_congen_header (this)
 
subroutine check_sanity_complete (this)
 Print a subset of options read from the input. More...
 
subroutine read_congen (this)
 Reads all input information. More...
 
subroutine arrange_phase (this, temp_phase)
 
subroutine setup_write_order (this)
 Set up write order flags. More...
 
subroutine compute_variables (this)
 Computes additional variables required by scatci. More...
 
subroutine compute_expansions (this)
 
logical function do_ci_contraction (this)
 
subroutine allocate_integer_array (array, num_elms)
 
subroutine, public ham_pars_io_wrapper (option, write_ham_pars, nelms)
 Read/write information about Hamiltonian. More...
 

Detailed Description

Options module.

Authors
A Al-Refaie, J Benda
Date
2017 - 2019

This module reads input namelists and can be used to pass program run information to other modules. MPI-SCATCI is mostly compatible with SCATCI, except for omission of the following keywords:

  • &INPUT: nctgt, gucont, ncont, nobc, thrhm, lusme
  • &CINORN: nfta, npflg, itgt, nopvec, ntgt, notgt, ncipfg

These keywords are ignored in the input. Additionally, MPI-SCATCI understands the following extra keywords:

  • &CINORN: memp, forse, exrc, vecstore, ecp, targmul, targspace, luprop
Note
30/01/2017 - Ahmed Al-Refaie: Initial version.
16/01/2019 - Jakub Benda: Unifom coding style and expanded documentation.
24/01/2019 - Jakub Benda: Read multiple stacked input configurations.
Todo:
Sort the read namelist inputs by nciset to avoid error in positioning on output!

Function/Subroutine Documentation

◆ allocate_integer_array()

subroutine options_module::allocate_integer_array ( integer, dimension(:), allocatable  array,
integer  num_elms 
)

Definition at line 1033 of file Options_module.f90.

Here is the caller graph for this function:

◆ arrange_phase()

subroutine options_module::arrange_phase ( class(options), intent(inout)  this,
integer, dimension(:), intent(in)  temp_phase 
)

Definition at line 837 of file Options_module.f90.

◆ check_sanity_complete()

subroutine options_module::check_sanity_complete ( class(options), intent(inout)  this)

Print a subset of options read from the input.

Authors
A Al-Refaie
Date
2017

Contrary to its name does not actually check anything.

Definition at line 674 of file Options_module.f90.

◆ check_sanity_congen_header()

subroutine options_module::check_sanity_congen_header ( class(options), intent(inout)  this)

Definition at line 649 of file Options_module.f90.

◆ compute_expansions()

subroutine options_module::compute_expansions ( class(options), intent(inout)  this)

Definition at line 975 of file Options_module.f90.

◆ compute_variables()

subroutine options_module::compute_variables ( class(options), intent(inout)  this)

Computes additional variables required by scatci.

Authors
A Al-Refaie
Date
2017

Definition at line 912 of file Options_module.f90.

◆ do_ci_contraction()

logical function options_module::do_ci_contraction ( class(options), intent(inout)  this)

Definition at line 1025 of file Options_module.f90.

◆ ham_pars_io_wrapper()

subroutine, public options_module::ham_pars_io_wrapper ( class(options), intent(inout)  option,
logical, intent(in)  write_ham_pars,
integer, intent(inout)  nelms 
)

Read/write information about Hamiltonian.

Authors
A Al-Refaie
Date
2017

Wrapper around SCATCI's ham_pars_io subroutine.

Reads or writes the file 'ham_data' containing the parameters needed on the call to dgmain. If write_ham_pars is true, then the file is written interpretting the arguments as input. If write_ham_pars is false, then the file is read in interpretting the argumens as output.

MPI-SCATCI uses only the writing mode, and only when the diagonalization is not undertaken.

Definition at line 1062 of file Options_module.f90.

Here is the caller graph for this function:

◆ read_all_cinorn()

integer function options_module::read_all_cinorn ( class(optionsset), intent(inout)  this,
integer, intent(in)  io 
)

Read all &CINORN namelists from file unit.

Authors
J Benda
Date
2019

Reads all &CINORN namelists in the order present in the source file and stores the data in the internal array (reallocated whenever necessary).

Parameters
[in,out]thisOptionSet object to update.
[in]ioFile unit to process.
Returns
Number of &CINORN namelists read from the file.

Definition at line 462 of file Options_module.f90.

◆ read_all_input()

integer function options_module::read_all_input ( class(optionsset), intent(inout)  this,
integer, intent(in)  io 
)

Read all &INPUT namelists from file unit.

Authors
J Benda
Date
2019

Reads all &INPUT namelists in the order present in the source file and stores the data in the internal array (reallocated whenever necessary).

Parameters
[in,out]thisOptionSet object to update.
[in]ioFile unit to process.
Returns
Number of &INPUT namelists read from the file.

Definition at line 302 of file Options_module.f90.

◆ read_all_namelists()

subroutine options_module::read_all_namelists ( class(optionsset), intent(inout)  this)

Read all relevant namelists from the input.

Authors
A Al-Refaie, J Benda
Date
2017 - 2019

Finds out whether the program received the input file path via the command line; if not, it will be read from the standard input. Then reads all &INPUT namelists, followed by all &CINORN namelists. The data read from the namelists are used to initialize objects of type Options.

Definition at line 233 of file Options_module.f90.

◆ read_congen()

subroutine options_module::read_congen ( class(options), intent(inout)  this)

Reads all input information.

Authors
A Al-Refaie
Date
2017

Reads saved setup from the congen output binary file.

Todo:
Switch from old name list way into newer more robust input reading (use input.f90 like in TROVE?)

Definition at line 754 of file Options_module.f90.

Here is the call graph for this function:

◆ read_input()

subroutine options_module::read_input ( class(options), intent(inout)  this)

Read and check input files.

Authors
A Al-Refaie
Date
2017

Definition at line 634 of file Options_module.f90.

◆ read_outer_interface()

subroutine options_module::read_outer_interface ( class(optionsset), intent(inout)  this,
integer, intent(in)  io 
)

Read contents of the OUTER interface namelist.

Authors
J Benda
Date
2019

Reads setup of the OUTER interface.

Parameters
[in,out]thisOptionSet object to update.
[in]ioFile unit to process.

Definition at line 566 of file Options_module.f90.

◆ setup_write_order()

subroutine options_module::setup_write_order ( class(optionsset), intent(inout)  this)

Set up write order flags.

Authors
J Benda
Date
2019

To prevent mutual overwriting of the common output file, the MPI group masters, who write the eigenvectors to disk, need to communicate, so that the next set written by the next process commences only once the previous write is finished.

Definition at line 869 of file Options_module.f90.