generate_ref_space Subroutine

private subroutine generate_ref_space()

Arguments

None

Contents

Source Code


Source Code

    subroutine generate_ref_space()
        use LoggingData, only: ref_filename, tWriteRefs
        implicit none
        integer :: refs_found, all_refs_found
        integer(n_int) :: ref_buf(0:NIfTot, maxNRefs), si_buf(0:NIfTot, maxNRefs)

        if (NoTypeN > InitiatorWalkNo) then
            call get_threshold_based_SIs(ref_buf, refs_found)

            ! communicate the SIs
            call communicate_threshold_based_SIs(si_buf, ref_buf, refs_found, all_refs_found)

            ! And write the so-merged references to ilutRef
            ! we need to be sure ilutRefAdi has the right size
            nRefs = all_refs_found
            call reallocate_ilutRefAdi(nRefs)
            ilutRefAdi(0:NIfTot, 1:nRefs) = si_buf(0:NIfTot, 1:nRefs)
        else
            call fixed_number_SI_generation()
        end if

        if (iProcIndex == root) &
            write(stdout, *) "Getting superinitiators for all-doubs-initiators: ", nRefs, " SIs found"

        if (tWriteRefs) call output_reference_space(ref_filename)
    end subroutine generate_ref_space