| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | n_excits(cc_order) |
subroutine communicate_cc_amps(n_excits) integer, intent(in) :: n_excits(cc_order) integer :: i, j ! only deal with systems with no single excitations, so we just ! have to communicate the doubles! allocate(all_cc_ops(2)) do i = 1, 2 all_cc_ops(i)%order = i allocate(all_cc_ops(i)%amplitudes(n_excits(i))) allocate(all_cc_ops(i)%operators(n_excits(i), 2, i)) allocate(all_cc_ops(i)%set_flag(n_excits(i))) all_cc_ops(i)%operators = 0 all_cc_ops(i)%amplitudes = 0.0_dp all_cc_ops(i)%set_flag = 0 all_cc_ops(i)%n_ops = n_excits(i) call MPIReduce(cc_ops(i)%amplitudes, MPI_SUM, all_cc_ops(i)%amplitudes) do j = 1, i call MPIReduce(cc_ops(i)%operators(:, :, j), MPI_SUM, all_cc_ops(i)%operators(:, :, j)) end do call MPIReduce(cc_ops(i)%set_flag, MPI_SUM, all_cc_ops(i)%set_flag) end do ! i just want to store up to triples or? but for these special ! case only consider systems with no single excitations.. end subroutine communicate_cc_amps