subroutine WriteAllProperties(step) use simulation use scattering use particles implicit none integer :: i, j, step !, tempcount real ( kind = 8 ) :: TempEnergy open ( unit = 8, file = 'LastPointHist.txt', status = 'replace', action = 'write' ) open ( unit = 9, file = 'LastParticlesProp.txt', status = 'replace', action = 'write' ) open ( unit = 16, file = 'LastTimeAveHist.txt', status = 'replace', action = 'write' ) if (step == 0) then ! initial output write(2,'(a,a,a,a,a,a)'), 'Step ', 'atTime ', 'TotEe TotEeG TotEeL TotEeX ','AveEeAll AveEeG AveEeL AveEeX ','Freq_G Freq_L Freq_X ','rFreq_G rFreq_L rFreq_X ' write(3,'(a,a,a,a,a)'), 'Step ', 'Time ', 'tAveEeAll tAveEeG tAveEeL tAveEeX ','tFreq_G tFreq_L tFreq_X ','trFreq_G trFreq_L trFreq_X ' write(4,'(a,a,a,a,a,a)'), 'Step ','atTime ', 'AveVelx AveVely AveVelz','G_AveVelx G_AveVely G_AveVelz ','L_AveVelx L_AveVely L_AveVelz ','X_AveVelx X_AveVely X_AveVelz ' write(5,'(a,a,a,a,a,a)'), 'Step ','Time ','tAveVelx tAveVely tAveVelz','tG_AveVelx tG_AveVely tG_AveVelz ','tL_AveVelx tL_AveVely tL_AveVelz ','tX_AveVelx tX_AveVely tX_AveVelz ' write(6,'(a,a,a,a,a,a)'), '# ','valley ','kx ky kz', 'tau', 'energy', 'vx vy vz x y z' write(9,'(a,a,a,a,a,a)'), '# ','valley ','kx ky kz', 'energy', 'tau', 'x y z' write(7,'(a,a)'), 'Energy', 'Total G L X rTotal rG rL rX' write(8,'(a,a)'), 'Energy', 'Total G L X rTotal rG rL rX' write(15,'(a,a)'), 'Energy', 'trTotal trG trL trX ' write(16,'(a,a)'), 'Energy', 'trTotal trG trL trX ' write(2,991), step,time,TotParEne,TotEneValley(1:3),AveParEne,AveEneValley(1:3),FreqValley(1:3), RelFreqValley(1:3) write(4,993), step,time,AveParVel(1:DIM),AveParValleyVel(1,1:DIM),AveParValleyVel(2,1:DIM),AveParValleyVel(3,1:DIM) write(7,"(i7, e12.5)"), step, time write(8,"(i7, e12.5)"), step, time write(6,'(i7, e12.5)'), step, time ! for particle write(9,'(i7, e12.5)'), step, time do i = 1, num_EnergyLevel j = i TempEnergy = StepE_eV*real(j,kind = 8) ! 'Energy', 'Total G L X rTotal rG rL rX' write(7,995), TempEnergy, EneLevelHist(i), EneLevelValleyHist(1:num_Valley,i), RelEneLevelHist(i), RelEneLevelValleyHist(1:num_Valley,i) write(8,995), TempEnergy, EneLevelHist(i), EneLevelValleyHist(1:num_Valley,i), RelEneLevelHist(i), RelEneLevelValleyHist(1:num_Valley,i) enddo do i = 1, num_Carriers ! '# ','valley ','kx ky kz', 'energy', 'tau', 'x y z' write(6,996), i, Par_valley(i), Par_wvk(i,1:DIM), Par_tau(i), Par_ene(i), Par_vel(i,1:DIM), Par_pos(i,1:DIM) write(9,996), i, Par_valley(i), Par_wvk(i,1:DIM), Par_tau(i), Par_ene(i), Par_vel(i,1:DIM), Par_pos(i,1:DIM) enddo elseif (step.gt.1) then write(2,991), step,time,TotParEne,TotEneValley(1:3),AveParEne,AveEneValley(1:3),FreqValley(1:3), RelFreqValley(1:3) write(3,992), step,time,TimeAveParEne,TimeAveEneValley(1:3),TimeFreqValley(1:3),TimeRelFreqValley(1:3) write(4,993), step,time,AveParVel(1:DIM),AveParValleyVel(1,1:DIM),AveParValleyVel(2,1:DIM),AveParValleyVel(3,1:DIM) write(5,994), step,time,TimeAveParVel(1:DIM),TimeAveParValleyVel(1,1:DIM),TimeAveParValleyVel(2,1:DIM),TimeAveParValleyVel(3,1:DIM) write(7,'(i7, e12.5)'), step, time write(8,'(i7, e12.5)'), step, time write(6,'(i7, e12.5)'), step, time ! for particle write(9,'(i7, e12.5)'), step, time write(15,'(i7, e12.5)'), step, time write(16,'(i7, e12.5)'), step, time do i = 1, num_EnergyLevel TempEnergy = StepE_eV*real(i,kind = 8) ! 'Energy', 'Total G L X rTotal rG rL rX' write(7,995), TempEnergy, EneLevelHist(i), EneLevelValleyHist(1:num_Valley,i), RelEneLevelHist(i), RelEneLevelValleyHist(1:num_Valley,i) write(8,995), TempEnergy, EneLevelHist(i), EneLevelValleyHist(1:num_Valley,i), RelEneLevelHist(i), RelEneLevelValleyHist(1:num_Valley,i) write(15,997), TempEnergy, TimeRelEneLevelHist(i), TimeRelEneLevelValleyHist(1:num_Valley,i) write(16,997), TempEnergy, TimeRelEneLevelHist(i), TimeRelEneLevelValleyHist(1:num_Valley,i) enddo do i = 1, num_Carriers ! '# ','valley ','kx ky kz', 'energy', 'tau', 'x y z' write(6,996), i, Par_valley(i), Par_wvk(i,1:DIM), Par_tau(i), Par_ene(i), Par_vel(i,1:DIM), Par_pos(i,1:DIM) write(9,996), i, Par_valley(i), Par_wvk(i,1:DIM), Par_tau(i), Par_ene(i), Par_vel(i,1:DIM), Par_pos(i,1:DIM) enddo endif close(8) ! files for last time - close close(9) close(16) 991 format (1x, i8, e12.5, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6) 992 format (1x, i8, e12.5, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6) 993 format (1x, i8, e12.5, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6) 994 format (1x, i8, e12.5, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6) 995 format (1x, f10.4, i8, i8, i8, i8, e17.6, e17.6, e17.6, e17.6) 996 format (1x, i8, i8, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6, e17.6) 997 format (1x, f10.4, f14.6, f14.6, f14.6, f14.6) return end