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 if(tNonInitModShift) then write(initiatorstats_unit,"(A)", advance = 'no') & "15. ModShiftWalks 16. NonModShiftWalks" 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 (tModShiftTarget) then write(fcimcstats_unit, "(A)", advance = 'no') & " 36.ModShift" end if if (tBosonNoSpawn) then write(fcimcstats_unit, "(3A)", advance = 'no') & " 36.ActiveWalks", & " 37.NoSpawnDets", & " 38.NoSpawnDetsEmpty" end if if(t_truncate_spawns) write(fcimcstats_unit, "(A)", advance = 'no') & trunc_caption write(fcimcstats_unit, "()", advance = 'yes') #endif end if END SUBROUTINE WriteFciMCStatsHeader