Abstract base class for lMat_t objects (6-index integrals)
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| procedure(lMatInd_t), | public, | nopass, pointer | :: | indexFunc | => | lMatIndSym |
Get an element of a lMat. This replaces the old lMatAccess function pointer
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(lMat_t), | intent(in) | :: | this | |||
| integer(kind=int64), | intent(in) | :: | index |
Set an element of a lMat
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(lMat_t), | intent(inout) | :: | this | |||
| integer(kind=int64), | intent(in) | :: | index | |||
| real(kind=dp), | intent(in) | :: | element |
Read in the 6-index integrals from disk and histogram the integrals. The file itself only has to store the nonzero integrals, either in ASCII or in HDF5 format. For conventions in the HDF5 format, please refer to the developer’s guide.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(lMat_t), | intent(inout) | :: | this | |||
| character(len=*), | intent(in) | :: | filename |
name of the integrals file |
Read operation on a single block of data read from an hdf5 file
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(lMat_t), | intent(inout) | :: | this | |||
| integer(kind=int64), | intent(inout), | allocatable | :: | indices(:,:) | ||
| integer(kind=int64), | intent(inout), | allocatable | :: | entries(:,:) |
Generate a histogram of the 6-index integrals and write it to stdout
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(lMat_t), | intent(in) | :: | this |
type, abstract :: lMat_t private ! Generic indexing routine procedure(lMatInd_t), nopass, pointer, public :: indexFunc => lMatIndSym contains ! Element getters/setters procedure(get_elem_t), deferred :: get_elem procedure(set_elem_t), deferred, private :: set_elem ! Allocation routines procedure(alloc_t), deferred :: alloc procedure(dealloc_t), deferred :: safe_dealloc ! I/O routines ! Interfaced read routine: Delegates to the read_kernel procedure :: read ! Routine to read in any format (ascii/hdf5) to this object procedure(read_t), deferred, private :: read_kernel ! When reading hdf5, the read is done by a lMat_hdf5_read object. This object ! calls a read_op_t from the respective lMat to load the data to memory ! This has to be threadsafe procedure(read_op_t), deferred, private :: read_op_hdf5 procedure :: lMat_size procedure :: histogram_lMat end type lMat_t