init_spin_measurements Subroutine

public subroutine init_spin_measurements()

Arguments

None

Contents


Source Code

    subroutine init_spin_measurements()
        ! routine to initialize spin measurement vectors
        character(*), parameter :: this_routine = "init_spin_measurements"
        integer :: ierr

        if (allocated(spin_up_occ)) deallocate(spin_up_occ)
        if (allocated(spin_down_occ)) deallocate(spin_down_occ)
        if (allocated(spin_diff)) deallocate(spin_diff)
        if (allocated(double_occ_vec)) deallocate(double_occ_vec)
        if (allocated(inst_spin_diff)) deallocate(inst_spin_diff)
        if (allocated(all_inst_spin_diff)) deallocate(all_inst_spin_diff)
        if (allocated(inst_spatial_doub_occ)) deallocate(inst_spatial_doub_occ)
        if (allocated(all_inst_spatial_doub_occ)) deallocate(all_inst_spatial_doub_occ)
        if (allocated(sum_double_occ_vec)) deallocate(sum_double_occ_vec)
        if (allocated(sum_spin_diff)) deallocate(sum_spin_diff)

        allocate(spin_up_occ(nbasis / 2))
        allocate(spin_down_occ(nBasis / 2))
        allocate(spin_diff(nBasis / 2))
        allocate(double_occ_vec(nBasis / 2))
        allocate(inst_spin_diff(nBasis / 2))
        allocate(all_inst_spin_diff(nBasis / 2))
        allocate(inst_spatial_doub_occ(nBasis / 2))
        allocate(all_inst_spatial_doub_occ(nBasis / 2))
        allocate(sum_double_occ_vec(nBasis / 2))
        allocate(sum_spin_diff(nBasis / 2))

        spin_up_occ = 0.0_dp
        spin_down_occ = 0.0_dp
        spin_diff = 0.0_dp
        double_occ_vec = 0.0_dp
        inst_spin_diff = 0.0_dp
        all_inst_spin_diff = 0.0_dp
        inst_spatial_doub_occ = 0.0_dp
        all_inst_spatial_doub_occ = 0.0_dp
        sum_double_occ_vec = 0.0_dp
        sum_spin_diff = 0.0_dp

    end subroutine init_spin_measurements