| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=255), | intent(in) | :: | blocklistname | |||
| integer(kind=n_int), | intent(out), | allocatable | :: | blocklist(:,:) | ||
| type(ll_node), | intent(out), | pointer | :: | blocklist_ht(:) |
subroutine init_block_list(blocklistname, blocklist, blocklist_ht) integer(kind=n_int), allocatable, intent(out) :: blocklist(:,:) type(ll_node), pointer, intent(out) :: blocklist_ht(:) character(len=255), intent(in) :: blocklistname integer :: nI_blocked(nel) integer(kind=n_int) :: ilut_blocked(0:niftot) type(TokenIterator_t) :: tokens class(FileReader_t), allocatable :: filereader type(buffer_int64_2D_t) :: buffer call buffer%init(size(ilut_blocked)) filereader = ManagingFileReader_t(blocklistname) do while (filereader%nextline(tokens, skip_empty=.false.)) call parse_definedet(tokens, nI_blocked) call EncodeBitDet(nI_blocked, ilut_blocked) call buffer%push_back(ilut_blocked) #ifdef DEBUG_ write(stdout, *) "Determinant/CSF to be blocked:", nI_blocked #endif end do call filereader%close() call buffer%dump_reset(blocklist) write(stdout, *) 'Read in', size(blocklist, 2), 'determinants/CSFs to be blocked.' call init_blocklist_hashtable(blocklist, blocklist_ht) end subroutine init_block_list