From a8254ef73c76eef3cdf64ce5298c90db2ca6075f Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Mon, 18 Dec 2017 11:05:12 +0100 Subject: [PATCH] Removed ZMQ_PUSH --- config/travis.cfg | 2 +- src/Determinants/EZFIO.cfg | 9 ++++++++- src/Determinants/density_matrix.irp.f | 13 +++++++++++-- src/Determinants/determinants.irp.f | 2 +- src/FourIdx/four_index_slave.irp.f | 2 +- src/ZMQ/utils.irp.f | 2 +- 6 files changed, 23 insertions(+), 7 deletions(-) diff --git a/config/travis.cfg b/config/travis.cfg index 42180e43..b0144119 100644 --- a/config/travis.cfg +++ b/config/travis.cfg @@ -13,7 +13,7 @@ FC : gfortran -ffree-line-length-none -I . -g LAPACK_LIB : -llapack -lrefblas -ltmglib IRPF90 : irpf90 -IRPF90_FLAGS : --ninja --align=32 --assert -DZMQ_PUSH +IRPF90_FLAGS : --ninja --align=32 --assert # Global options ################ diff --git a/src/Determinants/EZFIO.cfg b/src/Determinants/EZFIO.cfg index f4c5d866..dc7dddfb 100644 --- a/src/Determinants/EZFIO.cfg +++ b/src/Determinants/EZFIO.cfg @@ -115,7 +115,14 @@ default: False [n_det_max_stored] type: Det_number_max -doc: Maximum number of determinants for which the full H matrix is stored. Be careful, the memory requested scales as 10*n_det_max_stored**2. For instance, 90000 determinants represent a matrix of size 60 Gb. +doc: Maximum number of determinants for which the full h matrix is stored. be careful, the memory requested scales as 10*n_det_max_stored**2. for instance, 90000 determinants represent a matrix of size 60 Gb. interface: ezfio,provider,ocaml default: 90000 +[state_average_weight] +type: Strictly_positive_float +doc: Weight of the states in state-average calculations. +interface: ezfio,provider,ocaml +default: 1. +size: (determinants.n_states) + diff --git a/src/Determinants/density_matrix.irp.f b/src/Determinants/density_matrix.irp.f index 86c7fcd4..eef347e7 100644 --- a/src/Determinants/density_matrix.irp.f +++ b/src/Determinants/density_matrix.irp.f @@ -121,7 +121,8 @@ END_PROVIDER !$OMP mo_tot_num,psi_bilinear_matrix_rows,psi_bilinear_matrix_columns, & !$OMP psi_bilinear_matrix_transp_rows, psi_bilinear_matrix_transp_columns, & !$OMP psi_bilinear_matrix_order_reverse, psi_det_alpha_unique, psi_det_beta_unique, & - !$OMP psi_bilinear_matrix_values, psi_bilinear_matrix_transp_values) + !$OMP psi_bilinear_matrix_values, psi_bilinear_matrix_transp_values, & + !$OMP N_det_alpha_unique,N_det_beta_unique,irp_here) allocate(tmp_a(mo_tot_num,mo_tot_num,N_states), tmp_b(mo_tot_num,mo_tot_num,N_states) ) tmp_a = 0.d0 !$OMP DO SCHEDULE(dynamic,64) @@ -365,7 +366,15 @@ BEGIN_PROVIDER [ double precision, state_average_weight, (N_states) ] BEGIN_DOC ! Weights in the state-average calculation of the density matrix END_DOC - state_average_weight = 1.d0/dble(N_states) + logical :: exists + + state_average_weight = 0.d0 + call ezfio_has_state_average_weight(exists) + if (exists) then + call ezfio_get_state_average_weight(state_average_weight) + endif + state_average_weight = state_average_weight+1.d-31 + state_average_weight = state_average_weight/(sum(state_average_weight)) END_PROVIDER diff --git a/src/Determinants/determinants.irp.f b/src/Determinants/determinants.irp.f index 3722dff3..876eb124 100644 --- a/src/Determinants/determinants.irp.f +++ b/src/Determinants/determinants.irp.f @@ -177,7 +177,6 @@ BEGIN_PROVIDER [ double precision, psi_coef, (psi_det_size,N_states) ] integer :: i,k, N_int2 logical :: exists - double precision, allocatable :: psi_coef_read(:,:) character*(64) :: label PROVIDE read_wf N_det mo_label ezfio_filename @@ -200,6 +199,7 @@ BEGIN_PROVIDER [ double precision, psi_coef, (psi_det_size,N_states) ] if (exists) then + double precision, allocatable :: psi_coef_read(:,:) allocate (psi_coef_read(N_det,N_states)) call ezfio_get_determinants_psi_coef(psi_coef_read) do k=1,N_states diff --git a/src/FourIdx/four_index_slave.irp.f b/src/FourIdx/four_index_slave.irp.f index 5f82901a..ca07062f 100644 --- a/src/FourIdx/four_index_slave.irp.f +++ b/src/FourIdx/four_index_slave.irp.f @@ -101,7 +101,7 @@ subroutine four_index_transform_slave_work(map_a,matrix_B,LDB, & tmp=value(ik) if (tmp /= 0.d0) then a_array_ik(ii) = ik - a_array_j(ii) = int(iand(j,32767),2) ! Warning: integer*2 + a_array_j(ii) = int(j,2) ! Warning: integer*2 a_array_value(ii) = tmp ii=ii+1_8 endif diff --git a/src/ZMQ/utils.irp.f b/src/ZMQ/utils.irp.f index 86c13432..570cf30f 100644 --- a/src/ZMQ/utils.irp.f +++ b/src/ZMQ/utils.irp.f @@ -701,7 +701,7 @@ integer function disconnect_from_taskserver(zmq_to_qp_run_socket, worker_id) integer, intent(in) :: worker_id integer :: rc, sze - character*(64) :: message, reply, state + character*(512) :: message, reply, state disconnect_from_taskserver = 0