| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | ValidSpawned | |||
| real(kind=dp), | intent(out) | :: | proj_energy(lenof_sign) |
subroutine get_ests_from_spawns(ValidSpawned, proj_energy) use CalcData, only: tPreCond, tReplicaEstimates, tTruncInitiator use CalcData, only: tSetInitFlagsBeforeDeath use fcimc_helper, only: set_init_flag_spawns_to_occ integer, intent(in) :: ValidSpawned real(dp), intent(out) :: proj_energy(lenof_sign) if (tPreCond .or. tReplicaEstimates) then ! The preconditioned energy is used in perturbative estimates ! (and also when performing preconditioned FCIQMC). call set_timer(proj_e_time, 30) call get_proj_e_for_preconditioner(ValidSpawned, proj_energy) call halt_timer(proj_e_time) end if if (tReplicaEstimates) then call set_timer(precond_e_time, 30) call calc_ests_and_set_init_flags(ValidSpawned, proj_energy) call halt_timer(precond_e_time) end if ! With preconditiong and a time step of 1, death will kill all ! walkers entirely, so the initiator criterion will not be applied ! unless we set flags now. Do this now, unless done already in ! calc_ests_and_set_init_flags (for efficiency improvement). if (tSetInitFlagsBeforeDeath .and. (.not. tReplicaEstimates)) then if (tTruncInitiator) then call set_timer(init_flag_time, 30) call set_init_flag_spawns_to_occ(ValidSpawned) call halt_timer(init_flag_time) end if end if end subroutine get_ests_from_spawns