mirror of
https://github.com/LCPQ/quantum_package
synced 2024-08-08 05:20:24 +02:00
Updated bitmasks when the number of MOs is < ao_num
This commit is contained in:
parent
53ba951186
commit
9661db8cf8
@ -52,6 +52,7 @@ FCFLAGS : -xSSE4.2 -O2 -ip -ftz
|
|||||||
[DEBUG]
|
[DEBUG]
|
||||||
FC : -g -traceback
|
FC : -g -traceback
|
||||||
FCFLAGS : -xSSE2 -C -fpe0
|
FCFLAGS : -xSSE2 -C -fpe0
|
||||||
|
IRPF90_FLAGS : --openmp
|
||||||
|
|
||||||
# OpenMP flags
|
# OpenMP flags
|
||||||
#################
|
#################
|
||||||
|
@ -141,6 +141,19 @@ BEGIN_PROVIDER [ integer(bit_kind), generators_bitmask_restart, (N_int,2,6,N_gen
|
|||||||
enddo
|
enddo
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
integer :: i
|
||||||
|
do k=1,N_generators_bitmask
|
||||||
|
do ispin=1,2
|
||||||
|
do i=1,N_int
|
||||||
|
generators_bitmask_restart(i,ispin,s_hole ,k) = iand(full_ijkl_bitmask(i,d_hole1),generators_bitmask_restart(i,ispin,s_hole,k) )
|
||||||
|
generators_bitmask_restart(i,ispin,s_part ,k) = iand(full_ijkl_bitmask(i,d_part1),generators_bitmask_restart(i,ispin,s_part,k) )
|
||||||
|
generators_bitmask_restart(i,ispin,d_hole1,k) = iand(full_ijkl_bitmask(i,d_hole1),generators_bitmask_restart(i,ispin,d_hole1,k) )
|
||||||
|
generators_bitmask_restart(i,ispin,d_part1,k) = iand(full_ijkl_bitmask(i,d_part1),generators_bitmask_restart(i,ispin,d_part1,k) )
|
||||||
|
generators_bitmask_restart(i,ispin,d_hole2,k) = iand(full_ijkl_bitmask(i,d_hole2),generators_bitmask_restart(i,ispin,d_hole2,k) )
|
||||||
|
generators_bitmask_restart(i,ispin,d_part2,k) = iand(full_ijkl_bitmask(i,d_part2),generators_bitmask_restart(i,ispin,d_part2,k) )
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
|
|
||||||
@ -172,7 +185,7 @@ BEGIN_PROVIDER [ integer(bit_kind), generators_bitmask, (N_int,2,6,N_generators_
|
|||||||
if (exists) then
|
if (exists) then
|
||||||
call ezfio_get_bitmasks_generators(generators_bitmask)
|
call ezfio_get_bitmasks_generators(generators_bitmask)
|
||||||
else
|
else
|
||||||
integer :: k, ispin
|
integer :: k, ispin, i
|
||||||
do k=1,N_generators_bitmask
|
do k=1,N_generators_bitmask
|
||||||
do ispin=1,2
|
do ispin=1,2
|
||||||
generators_bitmask(:,ispin,s_hole ,k) = full_ijkl_bitmask(:,d_hole1)
|
generators_bitmask(:,ispin,s_hole ,k) = full_ijkl_bitmask(:,d_hole1)
|
||||||
@ -185,6 +198,18 @@ BEGIN_PROVIDER [ integer(bit_kind), generators_bitmask, (N_int,2,6,N_generators_
|
|||||||
enddo
|
enddo
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
do k=1,N_generators_bitmask
|
||||||
|
do ispin=1,2
|
||||||
|
do i=1,N_int
|
||||||
|
generators_bitmask(i,ispin,s_hole ,k) = iand(full_ijkl_bitmask(i,d_hole1),generators_bitmask(i,ispin,s_hole,k) )
|
||||||
|
generators_bitmask(i,ispin,s_part ,k) = iand(full_ijkl_bitmask(i,d_part1),generators_bitmask(i,ispin,s_part,k) )
|
||||||
|
generators_bitmask(i,ispin,d_hole1,k) = iand(full_ijkl_bitmask(i,d_hole1),generators_bitmask(i,ispin,d_hole1,k) )
|
||||||
|
generators_bitmask(i,ispin,d_part1,k) = iand(full_ijkl_bitmask(i,d_part1),generators_bitmask(i,ispin,d_part1,k) )
|
||||||
|
generators_bitmask(i,ispin,d_hole2,k) = iand(full_ijkl_bitmask(i,d_hole2),generators_bitmask(i,ispin,d_hole2,k) )
|
||||||
|
generators_bitmask(i,ispin,d_part2,k) = iand(full_ijkl_bitmask(i,d_part2),generators_bitmask(i,ispin,d_part2,k) )
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
BEGIN_PROVIDER [ integer, N_cas_bitmask ]
|
BEGIN_PROVIDER [ integer, N_cas_bitmask ]
|
||||||
@ -223,7 +248,7 @@ BEGIN_PROVIDER [ integer(bit_kind), cas_bitmask, (N_int,2,N_cas_bitmask) ]
|
|||||||
! Bitmasks for CAS reference determinants. (N_int, alpha/beta, CAS reference)
|
! Bitmasks for CAS reference determinants. (N_int, alpha/beta, CAS reference)
|
||||||
END_DOC
|
END_DOC
|
||||||
logical :: exists
|
logical :: exists
|
||||||
integer :: i,i_part,i_gen,j
|
integer :: i,i_part,i_gen,j,k
|
||||||
PROVIDE ezfio_filename
|
PROVIDE ezfio_filename
|
||||||
|
|
||||||
call ezfio_has_bitmasks_cas(exists)
|
call ezfio_has_bitmasks_cas(exists)
|
||||||
@ -248,6 +273,13 @@ BEGIN_PROVIDER [ integer(bit_kind), cas_bitmask, (N_int,2,N_cas_bitmask) ]
|
|||||||
enddo
|
enddo
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
do i=1,N_cas_bitmask
|
||||||
|
do j = 1, N_cas_bitmask
|
||||||
|
do k=1,N_int
|
||||||
|
cas_bitmask(k,j,i) = iand(cas_bitmask(k,j,i),full_ijkl_bitmask(k,j))
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ BEGIN_PROVIDER [ double precision, ao_pseudo_integral_local, (ao_num_align,ao_nu
|
|||||||
|
|
||||||
double precision :: cpu_1, cpu_2, wall_1, wall_2, wall_0
|
double precision :: cpu_1, cpu_2, wall_1, wall_2, wall_0
|
||||||
integer :: thread_num
|
integer :: thread_num
|
||||||
!$ integer :: omp_get_thread_num
|
integer :: omp_get_thread_num
|
||||||
|
|
||||||
ao_pseudo_integral_local = 0.d0
|
ao_pseudo_integral_local = 0.d0
|
||||||
|
|
||||||
@ -118,7 +118,7 @@ BEGIN_PROVIDER [ double precision, ao_pseudo_integral_local, (ao_num_align,ao_nu
|
|||||||
integer :: power_A(3),power_B(3)
|
integer :: power_A(3),power_B(3)
|
||||||
integer :: i,j,k,l,n_pt_in,m
|
integer :: i,j,k,l,n_pt_in,m
|
||||||
double precision :: Vloc, Vpseudo
|
double precision :: Vloc, Vpseudo
|
||||||
!$ integer :: omp_get_thread_num
|
integer :: omp_get_thread_num
|
||||||
|
|
||||||
double precision :: cpu_1, cpu_2, wall_1, wall_2, wall_0
|
double precision :: cpu_1, cpu_2, wall_1, wall_2, wall_0
|
||||||
integer :: thread_num
|
integer :: thread_num
|
||||||
|
@ -79,7 +79,7 @@ subroutine ortho_canonical(overlap,LDA,N,C,LDC,m)
|
|||||||
|
|
||||||
m=n
|
m=n
|
||||||
do i=1,n
|
do i=1,n
|
||||||
if ( D(i) >= 1.d-4 ) then
|
if ( D(i) >= 1.d-6 ) then
|
||||||
D(i) = 1.d0/dsqrt(D(i))
|
D(i) = 1.d0/dsqrt(D(i))
|
||||||
else
|
else
|
||||||
m = i-1
|
m = i-1
|
||||||
@ -151,7 +151,7 @@ subroutine ortho_lowdin(overlap,LDA,N,C,LDC,m)
|
|||||||
|
|
||||||
!$OMP DO
|
!$OMP DO
|
||||||
do i=1,n
|
do i=1,n
|
||||||
if ( D(i) < 1.d-5 ) then
|
if ( D(i) < 1.d-6 ) then
|
||||||
D(i) = 0.d0
|
D(i) = 0.d0
|
||||||
else
|
else
|
||||||
D(i) = 1.d0/dsqrt(D(i))
|
D(i) = 1.d0/dsqrt(D(i))
|
||||||
|
Loading…
Reference in New Issue
Block a user