diff --git a/etc/local.rc b/etc/local.rc index 83d4b34b..f06aa234 100644 --- a/etc/local.rc +++ b/etc/local.rc @@ -16,6 +16,6 @@ # export OMP_NUM_THREADS=16 # Name of the network interface to be chosen -# export QP_NIC=ib0 + export QP_NIC=lo diff --git a/src/bitmask/bitmasks.irp.f b/src/bitmask/bitmasks.irp.f index 86b478d6..d425dda6 100644 --- a/src/bitmask/bitmasks.irp.f +++ b/src/bitmask/bitmasks.irp.f @@ -466,35 +466,17 @@ END_PROVIDER BEGIN_PROVIDER [integer(bit_kind), reunion_of_core_inact_act_bitmask, (N_int,2)] -&BEGIN_PROVIDER [ integer, n_core_inact_act_orb ] implicit none BEGIN_DOC ! Reunion of the core, inactive and active bitmasks END_DOC integer :: i,j - n_core_inact_act_orb = 0 do i = 1, N_int - reunion_of_core_inact_act_bitmask(i,1) = ior(reunion_of_core_inact_bitmask(i,1),cas_bitmask(i,1,1)) - reunion_of_core_inact_act_bitmask(i,2) = ior(reunion_of_core_inact_bitmask(i,2),cas_bitmask(i,2,1)) - n_core_inact_act_orb +=popcnt(reunion_of_core_inact_act_bitmask(i,1)) + reunion_of_core_inact_act_bitmask(i,1) = ior(reunion_of_core_inact_bitmask(i,1),act_bitmask(i,1)) + reunion_of_core_inact_act_bitmask(i,2) = ior(reunion_of_core_inact_bitmask(i,2),act_bitmask(i,2)) enddo END_PROVIDER - BEGIN_PROVIDER [ integer, list_core_inact_act, (n_core_inact_act_orb)] -&BEGIN_PROVIDER [ integer, list_core_inact_act_reverse, (mo_num)] - implicit none - integer :: occ_inact(N_int*bit_kind_size) - integer :: itest,i - occ_inact = 0 - call bitstring_to_list(reunion_of_core_inact_act_bitmask(1,1), occ_inact(1), itest, N_int) - list_inact_reverse = 0 - do i = 1, n_core_inact_act_orb - list_core_inact_act(i) = occ_inact(i) - list_core_inact_act_reverse(occ_inact(i)) = i - enddo -END_PROVIDER - - BEGIN_PROVIDER [ integer(bit_kind), reunion_of_bitmask, (N_int,2)] @@ -563,8 +545,8 @@ END_PROVIDER END_DOC integer :: i,j do i = 1, N_int - reunion_of_cas_inact_bitmask(i,1) = ior(cas_bitmask(i,1,1),inact_bitmask(i,1)) - reunion_of_cas_inact_bitmask(i,2) = ior(cas_bitmask(i,2,1),inact_bitmask(i,2)) + reunion_of_cas_inact_bitmask(i,1) = ior(act_bitmask(i,1),inact_bitmask(i,1)) + reunion_of_cas_inact_bitmask(i,2) = ior(act_bitmask(i,2),inact_bitmask(i,2)) enddo END_PROVIDER diff --git a/src/bitmask/core_inact_act_virt.irp.f b/src/bitmask/core_inact_act_virt.irp.f index e384de64..1cf133fc 100644 --- a/src/bitmask/core_inact_act_virt.irp.f +++ b/src/bitmask/core_inact_act_virt.irp.f @@ -194,3 +194,53 @@ END_PROVIDER END_PROVIDER +BEGIN_PROVIDER [integer, n_inact_act ] + implicit none + n_inact_act = (n_inact_orb+n_act_orb) + +END_PROVIDER + +BEGIN_PROVIDER [integer, list_inact_act, (n_inact_act)] + integer :: i,itmp + itmp = 0 + do i = 1, n_inact_orb + itmp += 1 + list_inact_act(itmp) = list_inact(i) + enddo + do i = 1, n_act_orb + itmp += 1 + list_inact_act(itmp) = list_act(i) + enddo +END_PROVIDER + +BEGIN_PROVIDER [integer, n_core_inact_act_orb ] + implicit none + n_core_inact_act_orb = (n_core_orb + n_inact_orb + n_act_orb) + +END_PROVIDER + + BEGIN_PROVIDER [integer, list_core_inact_act, (n_core_inact_act_orb)] +&BEGIN_PROVIDER [ integer, list_core_inact_act_reverse, (n_core_inact_act_orb)] + integer :: i,itmp + itmp = 0 + do i = 1, n_core_orb + itmp += 1 + list_core_inact_act(itmp) = list_core(i) + enddo + do i = 1, n_inact_orb + itmp += 1 + list_core_inact_act(itmp) = list_inact(i) + enddo + do i = 1, n_act_orb + itmp += 1 + list_core_inact_act(itmp) = list_act(i) + enddo + + integer :: occ_inact(N_int*bit_kind_size) + occ_inact = 0 + call bitstring_to_list(reunion_of_core_inact_act_bitmask(1,1), occ_inact(1), itest, N_int) + list_inact_reverse = 0 + do i = 1, n_core_inact_act_orb + list_core_inact_act_reverse(occ_inact(i)) = i + enddo +END_PROVIDER diff --git a/src/tools/print_ci_vectors.irp.f b/src/tools/print_ci_vectors.irp.f index 8f8550d7..9ba06d9a 100644 --- a/src/tools/print_ci_vectors.irp.f +++ b/src/tools/print_ci_vectors.irp.f @@ -27,7 +27,7 @@ subroutine routine do i = 1, N_det print *, 'Determinant ', i call debug_det(psi_det(1,1,i),N_int) - print '(4E20.12,X)', dabs(psi_coef(i,k), k=1,N_states) + print '(4E20.12,X)', (psi_coef(i,k), k=1,N_states) print *, '' print *, '' enddo diff --git a/src/tools/rotate_mos.irp.f b/src/tools/rotate_mos.irp.f new file mode 100644 index 00000000..3e79c4f7 --- /dev/null +++ b/src/tools/rotate_mos.irp.f @@ -0,0 +1,18 @@ +program rotate_mos + implicit none + integer :: iorb,jorb + read(5,*)iorb,jorb + double precision, allocatable :: mo_coef_tmp(:,:) + allocate(mo_coef_tmp(ao_num,mo_num)) + mo_coef_tmp = mo_coef + integer :: i,j + double precision :: dsqrt2_inv + dsqrt2_inv = 1.d0/dsqrt(2.d0) + do i = 1, ao_num + mo_coef(i,iorb) = dsqrt2_inv * ( mo_coef_tmp(i,iorb) + mo_coef_tmp(i,jorb) ) + mo_coef(i,jorb) = dsqrt2_inv * ( mo_coef_tmp(i,iorb) - mo_coef_tmp(i,jorb) ) + enddo + touch mo_coef + call save_mos + +end