init_guga_plugin Subroutine

public subroutine init_guga_plugin(fcidump_path, stot_, t_testmode_, nel_, nbasis_, nSpatOrbs_)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: fcidump_path
integer, intent(in), optional :: stot_
logical, intent(in), optional :: t_testmode_
integer, intent(in), optional :: nel_
integer, intent(in), optional :: nbasis_
integer, intent(in), optional :: nSpatOrbs_

Contents

Source Code


Source Code

    subroutine init_guga_plugin(fcidump_path, stot_, t_testmode_, nel_, nbasis_, &
        nSpatOrbs_)
        character(*), intent(in) :: fcidump_path
        integer, intent(in), optional :: stot_
        logical, intent(in), optional :: t_testmode_
        integer, intent(in), optional :: nel_
        integer, intent(in), optional :: nbasis_
        integer, intent(in), optional :: nSpatOrbs_
        logical :: t_testmode
        integer(int64) :: umatsize
        def_default(t_testmode, t_testmode_, .false.)
        def_default(nel, nel_, -1)
        def_default(nbasis, nbasis_, 0)
        def_default(nSpatOrbs, nSpatOrbs_, 0)
        def_default(stot, stot_, 0)

        umatsize = 0
        lms = 0
        tGUGA = .true.

        tRDMonfly = .true.
        tFillingStochRDMOnFly = .true.
        call init_bit_rep()

        tGen_sym_guga_mol = .true.
        tgen_guga_weighted = .true.
        tdeferred_umat2d = .true.
        tumat2d = .false.
        ! set this to false before the init to setup all the ilut variables
        tExplicitAllRDM = .false.

        fcidump_name = fcidump_path
        UMatEps = 1.0e-8
        tStoreSpinOrbs = .false.
        tTransGTID = .false.
        tReadFreeFormat = .true.

        call MPIInit(.false.)

        call dSFMT_init(8)

        call SetCalcDefaults()
        call SetSysDefaults()
        tReadInt = .true.

        if(t_testmode) call generate_uniform_integrals()

        get_umat_el => get_umat_el_normal

        call initfromfcid(nel,nbasismax,nBasis,lms,.false.)

        call GetUMatSize(nBasis, umatsize)

        allocate(TMat2d(nBasis, nBasis))

        call shared_allocate_mpi(umat_win, umat, (/umatsize/))
        UMat = 0.0_dp
        call SysInit()
        call readfciint(UMat,umat_win,nBasis,ecore)
        ! required: set up the spin info

        call DetInit()
        call DetCalcInit()
        ! call SpinOrbSymSetup()

        call DetPreFreezeInit()

        call CalcInit()

        call init_guga()

    end subroutine init_guga_plugin