diff --git a/devel/fci_complete/generate_fci.irp.f b/devel/fci_complete/generate_fci.irp.f index 5ea3fc2..fcbe5d5 100644 --- a/devel/fci_complete/generate_fci.irp.f +++ b/devel/fci_complete/generate_fci.irp.f @@ -36,7 +36,8 @@ subroutine generate_fci_space call configuration_to_dets_size(act_bitmask,n_det_alpha_unique,elec_alpha_num-ncore,N_int) TOUCH n_det_alpha_unique - integer :: k,n,m, t, t1, t2 + integer :: k,n,m + integer(bit_kind) :: t, t1, t2 k=0 n = elec_alpha_num m = norb - n diff --git a/devel/mpn/generate_fci.irp.f b/devel/mpn/generate_fci.irp.f index 5108862..78863ba 100644 --- a/devel/mpn/generate_fci.irp.f +++ b/devel/mpn/generate_fci.irp.f @@ -26,7 +26,8 @@ subroutine generate_fci_space call configuration_to_dets_size(o,n_det_alpha_unique,elec_alpha_num-ncore,N_int) TOUCH n_det_alpha_unique - integer :: k,n,m, t, t1, t2 + integer :: k,n,m + integer(bit_kind) :: t, t1, t2 k=0 n = elec_alpha_num m = mo_num - n diff --git a/devel/trexio/import_trexio_integrals.irp.f b/devel/trexio/import_trexio_integrals.irp.f index 22ac61e..cf610e3 100644 --- a/devel/trexio/import_trexio_integrals.irp.f +++ b/devel/trexio/import_trexio_integrals.irp.f @@ -13,10 +13,10 @@ subroutine run integer(trexio_t) :: f ! TREXIO file handle integer(trexio_exit_code) :: rc - integer ::i,j,k,l,m + integer ::i,j,k,l + integer(8) :: m, n_integrals double precision :: integral - integer :: n_integrals integer(key_kind), allocatable :: buffer_i(:) real(integral_kind), allocatable :: buffer_values(:) diff --git a/devel/trexio/qp_import_trexio.py b/devel/trexio/qp_import_trexio.py index b682022..165fb9d 100755 --- a/devel/trexio/qp_import_trexio.py +++ b/devel/trexio/qp_import_trexio.py @@ -67,15 +67,9 @@ def write_ezfio(trexio_filename, filename): except: trexio_file = trexio.File(trexio_filename,mode='r',back_end=trexio.TREXIO_HDF5) - basis_type = trexio.read_basis_type(trexio_file) -# if basis_type.lower() != "gaussian": -# raise TypeError - ezfio.set_file(filename) ezfio.set_trexio_trexio_file(trexio_filename) - - print("Nuclei\t\t...\t", end=' ') charge = trexio.read_nucleus_charge(trexio_file) @@ -117,66 +111,69 @@ def write_ezfio(trexio_filename, filename): print("Basis\t\t...\t", end=' ') - ezfio.set_basis_basis("Read from TREXIO") + try: + basis_type = trexio.read_basis_type(trexio_file) + + if basis_type.lower() != "gaussian": + raise TypeError - shell_num = trexio.read_basis_shell_num(trexio_file) - prim_num = trexio.read_basis_prim_num(trexio_file) + shell_num = trexio.read_basis_shell_num(trexio_file) + prim_num = trexio.read_basis_prim_num(trexio_file) + ang_mom = trexio.read_basis_shell_ang_mom(trexio_file) + nucl_index = trexio.read_basis_nucleus_index(trexio_file) + exponent = trexio.read_basis_exponent(trexio_file) + coefficient = trexio.read_basis_coefficient(trexio_file) + shell_index = trexio.read_basis_shell_index(trexio_file) + ao_shell = trexio.read_ao_shell(trexio_file) - ezfio.set_basis_shell_num(shell_num) - ezfio.set_basis_prim_num(prim_num) + ezfio.set_basis_basis("Read from TREXIO") + ezfio.set_basis_shell_num(shell_num) + ezfio.set_basis_prim_num(prim_num) + ezfio.set_basis_shell_ang_mom(ang_mom) + ezfio.set_basis_basis_nucleus_index([ x+1 for x in nucl_index ]) + ezfio.set_basis_prim_expo(exponent) + ezfio.set_basis_prim_coef(coefficient) - ang_mom = trexio.read_basis_shell_ang_mom(trexio_file) - nucl_index = trexio.read_basis_nucleus_index(trexio_file) + nucl_shell_num = [] + prev = None + m = 0 + for i in ao_shell: + if i != prev: + m += 1 + if prev is None or nucl_index[i] != nucl_index[prev]: + nucl_shell_num.append(m) + m = 0 + prev = i + assert (len(nucl_shell_num) == nucl_num) - ezfio.set_basis_shell_ang_mom(ang_mom) - ezfio.set_basis_basis_nucleus_index([ x+1 for x in nucl_index ]) + shell_prim_num = [] + prev = shell_index[0] + count = 0 + for i in shell_index: + if i != prev: + shell_prim_num.append(count) + count = 0 + count += 1 + prev = i + shell_prim_num.append(count) - exponent = trexio.read_basis_exponent(trexio_file) - coefficient = trexio.read_basis_coefficient(trexio_file) + assert (len(shell_prim_num) == shell_num) - ezfio.set_basis_prim_expo(exponent) - ezfio.set_basis_prim_coef(coefficient) - - shell_index = trexio.read_basis_shell_index(trexio_file) - ao_shell = trexio.read_ao_shell(trexio_file) - - nucl_shell_num = [] - prev = None - m = 0 - for i in ao_shell: - if i != prev: - m += 1 - if prev is None or nucl_index[i] != nucl_index[prev]: - nucl_shell_num.append(m) - m = 0 - prev = i - assert (len(nucl_shell_num) == nucl_num) - - shell_prim_num = [] - prev = shell_index[0] - count = 0 - for i in shell_index: - if i != prev: - shell_prim_num.append(count) - count = 0 - count += 1 - prev = i - shell_prim_num.append(count) - - assert (len(shell_prim_num) == shell_num) - - ezfio.set_basis_shell_prim_num(shell_prim_num) - ezfio.set_basis_shell_index([x+1 for x in shell_index]) - ezfio.set_basis_nucleus_shell_num(nucl_shell_num) + ezfio.set_basis_shell_prim_num(shell_prim_num) + ezfio.set_basis_shell_index([x+1 for x in shell_index]) + ezfio.set_basis_nucleus_shell_num(nucl_shell_num) - shell_factor = trexio.read_basis_shell_factor(trexio_file) - prim_factor = trexio.read_basis_prim_factor(trexio_file) + shell_factor = trexio.read_basis_shell_factor(trexio_file) + prim_factor = trexio.read_basis_prim_factor(trexio_file) - print("OK") + print("OK") + except: + print("None") print("AOS\t\t...\t", end=' ') + ao_shell = trexio.read_ao_shell(trexio_file) cartesian = trexio.read_ao_cartesian(trexio_file) if not cartesian: raise TypeError('Only cartesian TREXIO files can be converted')