SUBROUTINE WriteFciMCStatsHeader()
integer :: j, k, run, offset
integer(int64) :: i
character(256) label
character(32) tchar_r, tchar_i, tchar_j, tchar_k
character(17) trunc_caption
character(38) validExCaption
call getProjEOffset()
IF(iProcIndex == root) THEN
!Print out initial starting configurations
write(stdout,*) ""
IF(tTruncInitiator) THEN
write(initiatorstats_unit,"(A2,A17,16A23)", advance = 'no') &
"# ","1.Step","2.TotWalk","3.Annihil","4.Died", &
& "5.Born","6.TotUniqDets",&
& "7.InitDets","8.NonInitDets","9.InitWalks","10.NonInitWalks","11.AbortedWalks", &
"12. Removed Dets", "13. Initiator Proj.E", "14. CoreNonInits"
offset = 14
if(tTrialWavefunction .or. tStartTrialLater) then
write(initiatorstats_unit,"(A)", advance = 'no') &
"15. TrialNumerators (inits) 16. TrialDenom (inits)"
offset = 16
end if
do k = 1, maxInitExLvlWrite
write(tchar_k,*) k+offset
write(tchar_r,*) k
tchar_r = trim(adjustl(tchar_k))//'. Inits on ex. lvl '//trim(adjustl(tchar_r))
write(initiatorstats_unit,'(1x,a)', advance = 'no') &
trim(adjustl(tchar_r))
end do
write(initiatorstats_unit,'()', advance = 'yes')
end if
IF(tLogComplexPops) THEN
write(complexstats_unit,"(A)") '# 1.Step 2.Shift 3.RealShift 4.ImShift 5.TotParts " &
& //"6.RealTotParts 7.ImTotParts'
end if
if (tLogEXLEVELStats) then
write(EXLEVELStats_unit, '(a)', advance='no') '# 1.Step'
k = 1
do run = 1, inum_runs
tchar_r = ''
if (inum_runs>1) then
write(tchar_r,*)run
tchar_r = '(run='//trim(adjustl(tchar_r))//')'
end if
do i = 0, 2
write(tchar_i,*)i
do j = 0, NEl
k = k + 1
write(tchar_j,*)j
write(tchar_k,*)k
write(EXLEVELStats_unit, '(1x,a)', &
advance='no') trim(adjustl(tchar_k))// &
&'.W'//trim(adjustl(tchar_j))//'^'// &
trim(adjustl(tchar_i))// &
trim(adjustl(tchar_r))
end do ! j
end do ! i
end do ! run
write(EXLEVELStats_unit, '()', advance='yes')
end if ! tLogEXLEVELStats
#ifdef CMPLX_
if(tMCOutput) then
write(stdout, '(a)') " Step Shift WalkerCng(Re) &
&WalkerCng(Im) TotWalkers(Re) TotWalkers(Im) &
&Proj.E(Re) ProjE(Im) Proj.E.ThisCyc(Re) &
&Proj.E.ThisCyc(Im) NoatHF(Re) NoatHF(Im) &
&NoatDoubs AccRat UniqueDets NumDetsSpawned IterTime"
end if
write(fcimcstats_unit, "(a,i4,a,l1,a,l1,a,l1)") &
"# FCIMCStats VERSION 2 - COMPLEX : NEl=", nel, &
" HPHF=", tHPHF, ' Lz=', tFixLz, &
' Initiator=', tTruncInitiator
write(fcimcstats_unit, "(a)", advance = 'no') &
"# 1.Step 2.Shift 3.WalkerCng(Re) &
&4.WalkerCng(Im) 5.TotWalkers(Re) 6.TotWalkers(Im) &
&7.Proj.E(Re) 8.Proj.E(Im) 9.Proj.E.ThisCyc(Re) &
&10.Proj.E.ThisCyc(Im) 11.Tot-Proj.E.ThisCyc(Re) 12.NoatHF(Re) &
&13.NoatHF(Im) 14.NoatDoubs 15.AccRat 16.UniqueDets 17.IterTime &
&18.FracSpawnFromSing 19.WalkersDiffProc 20.TotImagTime &
& 21.HFInstShift 22.TotInstShift &
&23.HFContribtoE(Both) &
&24.NumContribtoE(Re) &
&25.NumContribtoE(Im) 26.HF weight 27.|Psi| &
&28.Inst S^2 29.PartsDiffProc 30.MaxCycSpawn"
! Dongxia comment 28-30 off because they are not printed out
! 28.SpawnedParts 29.MergedParts 30.Zero elems 31.PartsDiffProc 32.MaxCycSpawn"
if (tTrialWavefunction .or. tStartTrialLater) then
write(fcimcstats_unit, "(A)", advance = 'no') &
" 31.TrialNumerator(Re) 32.TrialNumerator(Im) 33.TrialDenom(Re) &
& 34.TrialDenom(Im) 35.TrialOverlap 36.TrialProjE(Re) 37.TrialProjE(Im)"
end if
write(fcimcstats_unit, "()", advance = 'yes')
#elif defined(DOUBLERUN_)
write(fcimcstats_unit2, "(a,i4,a,l1,a,l1,a,l1)") &
"# FCIMCStats VERSION 2 - REAL : NEl=", nel, &
" HPHF=", tHPHF, ' Lz=', tFixLz, &
' Initiator=', tTruncInitiator
write(fcimcstats_unit2, "(A)", advance = 'no') &
"# 1.Step 2.Shift 3.WalkerCng 4.GrowRate &
&5.TotWalkers 6.Annihil 7.NoDied 8.NoBorn &
&9.Proj.E 10.Av.Shift 11.Proj.E.ThisCyc 12.NoatHF &
&13.NoatDoubs 14.AccRat 15.UniqueDets 16.IterTime &
&17.FracSpawnFromSing 18.WalkersDiffProc 19.TotImagTime &
&20.ProjE.ThisIter 21.HFInstShift 22.TotInstShift &
&23.Tot-Proj.E.ThisCyc 24.HFContribtoE 25.NumContribtoE &
&26.HF weight 27.|Psi| 28.Inst S^2 29.Inst S^2 30.AbsProjE &
&31.PartsDiffProc 32.|Semistoch|/|Psi| 33.MaxCycSpawn"
if (tTrialWavefunction .or. tStartTrialLater) then
write(fcimcstats_unit2, "(A)", advance = 'no') &
" 34.TrialNumerator 35.TrialDenom 36.TrialOverlap"
trunc_caption = " 37. TruncWeight"
else
trunc_caption = " 34. TruncWeight"
end if
if(t_truncate_spawns) write(fcimcstats_unit2, "(A)", advance = 'no') &
trunc_caption
write(fcimcstats_unit2, "()", advance = 'yes')
#endif
#ifndef CMPLX_
if(tMCOutput) then
write(stdout, "(A)", advance = 'no') " Step Shift &
&WalkerCng GrowRate TotWalkers Annihil &
&NoDied NoBorn Proj.E Av.Shift &
&Proj.E.Cyc"
if (tTrialWavefunction .or. tStartTrialLater) write(stdout, "(A)", advance = 'no') &
" Trial.E.Cyc "
write(stdout, "(A)", advance = 'yes') " NoatHF NoatDoubs &
&AccRat UniqueDets NumDetsSpawned IterTime"
end if
write(fcimcstats_unit, "(a,i4,a,l1,a,l1,a,l1)") &
"# FCIMCStats VERSION 2 - REAL : NEl=", nel, &
" HPHF=", tHPHF, ' Lz=', tFixLz, &
' Initiator=', tTruncInitiator
write(fcimcstats_unit, "(A)", advance = 'no') &
"# 1.Step 2.Shift 3.WalkerCng 4.GrowRate &
&5.TotWalkers 6.Annihil 7.NoDied 8.NoBorn &
&9.Proj.E 10.Av.Shift 11.Proj.E.ThisCyc 12.NoatHF &
&13.NoatDoubs 14.AccRat 15.UniqueDets 16.IterTime &
&17.FracSpawnFromSing 18.WalkersDiffProc 19.TotImagTime &
&20.ProjE.ThisIter 21.HFInstShift 22.TotInstShift &
&23.Tot-Proj.E.ThisCyc 24.HFContribtoE 25.NumContribtoE &
&26.HF weight 27.|Psi| 28.Inst S^2 &
&29.Inst S^2 30.AbsProjE 31.PartsDiffProc &
&32.|Semistoch|/|Psi| 33.MaxCycSpawn "
if (tTrialWavefunction .or. tStartTrialLater) then
write(fcimcstats_unit, "(A)", advance = 'no') &
" 34.TrialNumerator 35.TrialDenom 36.TrialOverlap"
validExCaption = " 37.InvalidExcits 38. ValidExcits "
trunc_caption = " 39. TruncWeight"
else
trunc_caption = " 36. TruncWeight"
validExCaption = " 34.InvalidExcits 35. ValidExcits "
end if
write(fcimcstats_unit, "(A)", advance = 'no') validExCaption
if(t_truncate_spawns) write(fcimcstats_unit, "(A)", advance = 'no') &
trunc_caption
write(fcimcstats_unit, "()", advance = 'yes')
#endif
end if
END SUBROUTINE WriteFciMCStatsHeader