subroutine WriteAllProperties(step) use simulation use scattering use particles implicit none integer :: i, j, step, notrough, TempNodeInx !, tempcount real ( kind = 8 ) :: TempEnergy, TempTrackY, TempAddEneY, TempPoiPot 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' ) open ( unit = 21, file = 'LastTimeBinNumHist.txt', status = 'replace', action = 'write' ) open ( unit = 22, file = 'LastTimeBinDenHist.txt', status = 'replace', action = 'write' ) open ( unit = 42, file = 'LastTimeSimulation.xyz', status = 'replace', action = 'write' ) ! 0714 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 ' if (PrintoutPartProp.eq.1) then ! 0709 write(6,'(a,a,a,a,a,a)'), '# ','valley ','kx ky kz ','tau ','energy ','vx vy vz x y z ' endif write(9,'(a,a,a,a,a,a)'), '# ','valley ','kx ky kz ','tau ','energy ','vx vy vz 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 ' ! Fixed potential... write(17,'(a,a,a)'), 'Step ','Time ', 'EneBoundL, EneBoundR, EneBound, AccumEneBoundL, AccumEneBoundR, AccumEneBound SysCurrent AccumSysCurrent' write(18,'(a,a,a)'), 'Step ','Time ', 'CarrierNum ParInBoundL ParInBoundR ParOutBoundL, ParOutBoundR, ParNumPlus, AccumParInL, AccumParInR, AccumParOutL, AccumParOutR, AccumParPlus ' if (PrintoutHist.eq.1) then ! 0709 19-20 write(19,'(a,a)'), 'Energy', 'TA_binhist_ParNumDen(1:num_Bins)' write(20,'(a,a)'), 'Energy', 'TA_binhist_ParNumber(1:num_Bins)' endif write(21,'(a,a)'), 'Energy', 'TA_binhist_ParNumDen(1:num_Bins)' ! last Step write(22,'(a,a)'), 'Energy', 'TA_binhist_ParNumber(1:num_Bins)' ! last Step... write(23,'(a,a,a)'), 'Step ','Time ', 'TA_bin_ParNumber(1:num_Bins)' write(24,'(a,a,a)'), 'Step ','Time ', 'TA_bin_ParNumDen(1:num_Bins)' write(25,'(a,a,a)'), 'Step ','Time ', 'TA_bin_ParAveEne(1:num_Bins)' write(26,'(a,a,a)'), 'Step ','Time ', 'TA_bin_ParValG(1:num_Bins)' write(27,'(a,a,a)'), 'Step ','Time ', 'TA_bin_ParValL(1:num_Bins)' write(28,'(a,a,a)'), 'Step ','Time ', 'TA_bin_ParValX(1:num_Bins)' write(34,'(a,a,a)'), 'Step ','Time ', 'TA_bin_ParDrftVel(1:num_Bins)' if (PrintoutPhonon.eq.1) then ! 36-39 write(36,'(a,a,a)'), 'Step ','Time ', 'TA_bin_PhononEne(1:num_Bins)' write(37,'(a,a,a)'), 'Step ','Time ', 'TA_bin_PhononNum(1:num_Bins)' write(40,'(a,a,a)'), 'Step ','Time ', 'TA_bin_PhononEneWm(1:num_Bins)' write(38,'(a,a,a)'), 'Step ','Time ', 'TotalPWm TotalP polar_G polar_L polar_X IntVal_G_L IntVal_G_X IntVal_L_G IntVal_L_L IntVal_L_X IntVal_X_G IntVal_X_L IntVal_X_X' write(39,'(a,a,a)'), 'Step ','Time ', 'TotalP polar_G TotalScat TotalopScat polar_Gab polar_Gem polar_L polar_X IntVal_G_L IntVal_G_X IntVal_L_G IntVal_L_L IntVal_L_X IntVal_X_G IntVal_X_L IntVal_X_X' endif if (PrintoutXYZ.eq.1) then ! 35 write(35,'(i8)'), num_Carriers write(35,'(a, a, i7)'), '#', 'step num = ', step endif if (PoissonSetting.eq.1) then ! Poisson write(12,'(a,a,a)'), 'Step ','Time ', 'TA_Node_Potential(1:num_Nodes)' write(13,'(a,a,a)'), 'Step ','Time ', 'TA_Node_PoiPot(1:num_Nodes)' write(14,'(a,a,a)'), 'Step ','Time ', 'TA_Node_Charge(1:num_Nodes)' write(30,'(a,a,a)'), 'Step ','Time ', 'TA_Node_EField(1:num_Nodes)' endif if (PhononSim.ne.0) then ! Phonon simulation 11/2012 write(46,'(a,a,a)'), 'Step ','Time ', 'TABin_TemperAP(1:num_Bins)' write(47,'(a,a,a)'), 'Step ','Time ', 'TABin_TemperOP(1:num_Bins)' write(48,'(a,a,a)'), 'Step ','Time ', 'TABin_QsupA(1:num_Bins)' write(49,'(a,a,a)'), 'Step ','Time ', 'TABin_QsupO(1:num_Bins)' write(50,'(a,a,a)'), 'Step ','Time ', 'TABin_QsupTotal(1:num_Bins)' write(51,'(a,a,a)'), 'Step ','Time ', 'TA_EP_InterEneWm2(1:num_Bins)' write(52,'(a,a,a)'), 'Step ','Time ', 'TA_PP_InterEneWm2(1:num_Bins)' endif write(2,991), step,time,TotParEne,TotEneValley(1:num_Valley),AveParEne,AveEneValley(1:num_Valley),FreqValley(1:num_Valley), RelFreqValley(1:num_Valley) 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 if (PrintoutPartProp.eq.1) then ! 0709 write(6,'(i7, e12.5)'), step, time ! for particle endif 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_maxCarriers if (Par_use(i).eq.1) then ! '# ','valley ','kx ky kz', 'energy', 'tau', 'x y z' if (PrintoutPartProp.eq.1) then ! 0709 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) endif 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) TempAddEneY = 0.0d0 if (num_BarTros.ge.1) then do j = 1, num_BarTros if (Par_pos(i,1).ge.loc_Bar(j)) then TempAddEneY = TempAddEneY + Bar_Height(j) endif enddo endif if (num_FieldSec.ge.1) then if (Par_pos(i,1).lt.loc_Start_Field(1)) then TempAddEneY = TempAddEneY + (Par_pos(i,1)-box_coor(1,1))*EFieldBg(1) else TempAddEneY = TempAddEneY + (loc_Start_Field(1)-box_coor(1,1))*EFieldBg(1) do j = 1, num_FieldSec if (Par_pos(i,1).ge.loc_Start_Field(j)) then if (Par_pos(i,1).ge.loc_End_Field(j)) then TempAddEneY = TempAddEneY + (loc_End_Field(j)-loc_Start_Field(j))*Field_Sec(j) else TempAddEneY = TempAddEneY + (Par_pos(i,1)-loc_Start_Field(j))*Field_Sec(j) endif endif enddo if (Par_pos(i,1).gt.loc_End_Field(num_FieldSec)) then TempAddEneY = TempAddEneY + (Par_pos(i,1)-loc_End_Field(num_FieldSec))*EFieldBg(1) endif endif else TempAddEneY = TempAddEneY + (Par_pos(i,1)-box_coor(1,1))*EFieldBg(1) endif if (Par_valley(i) == 1) then ! FieldAppRegion EFieldBg TempTrackY = Par_ene(i) + TempAddEneY elseif (Par_valley(i) == 2) then TempTrackY = Par_ene(i) + Al_split_L_G(Par_Al(i)) + TempAddEneY else TempTrackY = Par_ene(i) + Al_split_X_G(Par_Al(i)) + TempAddEneY endif if (PrintoutXYZ.eq.1) then write(35,'(1x, a, 3f14.6)'), 'El', Par_pos(i,1)*1.0d9, TempTrackY*500.0, 0.0d0 endif endif enddo open ( unit = 29, file = 'InitTimeBinNumHist.txt', status = 'replace', action = 'write' ) write(29,'(a,a)'), 'Energy', 'binhist_ParNumber(1:num_Bins)' ! last Step... do i = 1, num_EnergyLevel TempEnergy = StepE_eV*real(i,kind = 8) write(29,975), TempEnergy, binhist_ParNumber(1:num_Bins,i) enddo write(29,'(a,a)'), 'Energy', 'binhist_ParNumDen(1:num_Bins)' ! last Step... do i = 1, num_EnergyLevel TempEnergy = StepE_eV*real(i,kind = 8) write(29,972), TempEnergy, binhist_ParNumDen(1:num_Bins,i) enddo write(29,'(a,a,a)'), 'Bin ','Loc ', 'bin_ParNum bin_ParDen bin_AveEne ValG ValL ValX' do i = 1, num_Bins initbin_ParAveEne(i) = bin_ParAveEne(i) ! save initial average energy write(29,976), i,loc_bin(i),bin_ParNumber(i), bin_ParNumDen(i), bin_ParAveEne(i), bin_ParVal(1:num_Valley,i) enddo close(29) elseif (step.gt.1) then if (time.gt.time_fave) then ! Summary Results 0720 ! add phonon results open ( unit = 45, file = 'SummaryResults.txt', status = 'replace', action = 'write' ) ! 0720 write(45,'(a,a,a,a)'), 'Electric Parmeter Set: ', ' PGain EFieldBg(1) ', ' vel_InitBias Initial_je', ' num_FieldSec num_BarTros ' write(45,'(1x,4e20.9,2i11)'),PotentialGain,EFieldBg(1),vel_InitBias,Initial_je,num_FieldSec,num_BarTros if (num_BarTros.ge.1) then write(45,'(a,a,a,a)'), 'Barrier Inform: ', ' num_BarTros ', ' Locations ', ' Bar_Height ' write(45,'(1x,i11,10e20.9)'),num_BarTros,loc_Bar(1:num_BarTros),Bar_Height(1:num_BarTros) endif if (num_FieldSec.ge.1) then write(45,'(a,a,a,a)'), 'Field Inform: ', 'num_FieldSec ', ' Field_Sec ', ' loc_Start_Field loc_End_Field ' write(45,'(1x,i11,10e20.9)'),num_FieldSec,Field_Sec(1:num_FieldSec),loc_Start_Field(1:num_FieldSec),loc_End_Field(1:num_FieldSec) endif write(45,'(a,a,a,a)'), 'Dimension Parmeter Set: ', 'num_Carriers BinSize ', ' box_len(1) ', ' CellV' write(45,'(1x,i11,6e20.9)'), num_Carriers,BinSize,box_len(1),DerivedCellV write(45,'(a,a,a,a)'), 'Physical Parmeter Set: ', 'Te Tp Tsys ', ' n_d(m-3) ', 'num_InjLB num_InjRB num_InitBin num_InitNode ' write(45,'(1x,6e20.9,2i10)'),Te,Tp,Tsys,n_d,num_InjLB,num_InjRB,num_InitBin,num_InitNode write(45,'(a,a,a,a)'), 'Setting options:', ' CLM BCoption Use_prerun PRParNum ', 'PoissonSetting ' ,' PropertyNode' write(45,'(1x,10i11)'), BarrierCLM, BCoption,Use_prerun,PRParNum,PoissonSetting,PropertyNode if (PhononSim.eq.1) then ! additional Phonon simulation write(45,'(a,a,a,a)'), 'T-SimulationSetting', ' PhononSim LOmode ', ' qsupply qsupplyA qsupplyO ', ' TpA_Hot TpO_Hot k_pA k_pO MatElement RepresentEpLO ConstForEneOp' write(45,'(5x,2i11,11e20.9)'), PhononSim, LOmodeOccPhonSim, qsupply, qsupplyA, qsupplyO, TpA_Hot, TpO_Hot, k_pA, k_pO, MatElement, RepresentEpLO, ConstForEneOp elseif (PhononSim.eq.2) then ! additional Phonon simulation write(45,'(a,a,a,a)'), 'T-SimulationSetting', ' PhononSim LOmode ', ' qsupply qsupplyA qsupplyO ', ' TpA_Cold TpO_Cold k_pA k_pO MatElement RepresentEpLO ConstForEneOp' write(45,'(5x,2i11,11e20.9)'), PhononSim, LOmodeOccPhonSim, qsupply, qsupplyA, qsupplyO, TpA_Cold, TpO_Cold, k_pA, k_pO, MatElement, RepresentEpLO, ConstForEneOp endif write(45,'(a,a)'), 'Simulation Results for ', 'time_fave ~ time ' write(45,'(1x,10e20.9)'),time_fave, time write(45,'(a,a)'), 'fave_PhonEWm fave_eNum ', ' fave_vel fave_je fave_jeA' write(45,'(1x,11e20.9)'), fave_PhonEWm, fave_eNum, fave_vel, fave_je, fave_jeA write(45,'(a,a)'), 'fave_PhonEWm_eb fave_eNum_eb ', ' fave_vel_eb fave_je_eb fave_je_eb' write(45,'(1x,11e20.9)'),fave_PhonEWm_eb, fave_eNum_eb, fave_vel_eb, fave_je_eb, fave_jeA_eb write(45,'(a,a)'), 'fave_TotEne fave_InOut_B fave_InOut_LB ' , ' fave_InOut_RB, fave_G_ratio' write(45,'(1x,10e20.9)'), fave_TotEne,fave_InOut_B, fave_InOut_LB, fave_InOut_RB, fave_G_ratio if (PoissonSetting.eq.1) then write(45,'(a,a)'), ' Pos ', ' eNum vel PhonEWm PoiPot AllPot Eneev CumEneFreq' do i = 1, num_Bins write(45,'(1x, 10e20.9)'), loc_bin(i),fave_bin_eNum(i),fave_bin_vel(i),fave_bin_PhonEWm(i),fave_bin_PoiPot(i),fave_bin_AllPot(i),fave_bin_Eneev(i) !,RelCumFreqDist(i) enddo else write(45,'(a,a)'), ' Pos ', ' eNum vel PhonEWm Eneev' do i = 1, num_Bins write(45,'(1x, 10e20.9)'), loc_bin(i),fave_bin_eNum(i),fave_bin_vel(i),fave_bin_PhonEWm(i),fave_bin_Eneev(i) enddo endif if (PhononSim.ne.0) then ! Phonon simulation 11/2012 write(45,'(a)'), '------------------------------------------------------------------------------------------------------------------------' write(45,'(a,a)'), 'Pos ', ' TpA TpO qA qO qTotal pp ep atTpA atTpO atqA atqO atqTotal' write(45,'(a)'), '------------------------------------------------------------------------------------------------------------------------' do i = 1, num_Bins write(45,'(1x, e20.9, 2f15.8, 5e20.9, 2f15.8, 3e20.9)'), loc_bin(i),fave_bin_TpA(i),fave_bin_TpO(i),fave_bin_qsupA(i),fave_bin_qsupO(i),fave_bin_qsupT(i),fave_bin_epWm2(i),fave_bin_ppWm2(i), Bin_TemperAP(i), Bin_TemperOP(i), BinQsupA(i), BinQsupO(i), BinQsupTotal(i) enddo endif close(45) ! 0720 endif 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(17,970), step,time,EneBoundL,EneBoundR,EneBound,AccumEneBoundL,AccumEneBoundR,AccumEneBound,SysCurrent,AccumSysCurrent write(18,971), step,time,num_Carriers,ParInNumBoundL,ParInNumBoundR,ParOutNumBoundL,ParOutNumBoundR,ParNumBoundPlus,AccumParInNumBoundL,AccumParInNumBoundR,AccumParOutNumBoundL,AccumParOutNumBoundR,AccumParNumBoundPlus write(23,973), step,time,TA_bin_ParNumber(1:num_Bins) write(24,973), step,time,TA_bin_ParNumDen(1:num_Bins) write(25,974), step,time,TA_bin_ParAveEne(1:num_Bins) write(26,973), step,time,TA_bin_ParVal(1,1:num_Bins) write(27,973), step,time,TA_bin_ParVal(2,1:num_Bins) write(28,973), step,time,TA_bin_ParVal(3,1:num_Bins) write(34,974), step,time,TA_bin_ParDrftVel(1:num_Bins) if (PrintoutPhonon.eq.1) then ! 0709 36-39 write(36,974), step,time,TA_bin_PhononEne(1:num_Bins) write(37,977), step,time,TA_bin_PhononNum(1:num_Bins) write(40,974), step,time,TA_bin_PhononEneWm(1:num_Bins) write(39,977), step,time,TotalP_Num,polar_G_Num,TotalScatCount,TotalopScatCount,AllScatCount(2,1),AllScatCount(3,1),polar_L_Num,polar_X_Num,IntVal_G_L_Num,IntVal_G_X_Num,IntVal_L_G_Num,IntVal_L_L_Num,IntVal_L_X_Num,IntVal_X_G_Num,IntVal_X_L_Num,IntVal_X_X_Num write(38,974), step,time,TotalP_EneWm,TotalP_Ene,polar_G_Ene,polar_L_Ene,polar_X_Ene,IntVal_G_L_Ene,IntVal_G_X_Ene,IntVal_L_G_Ene,IntVal_L_L_Ene,IntVal_L_X_Ene,IntVal_X_G_Ene,IntVal_X_L_Ene,IntVal_X_X_Ene endif ! Poisson if ((PoissonSetting.eq.1).and.(time.ge.time_Poisson)) then write(12,974), step, time, TA_Node_Potential(1:num_Nodes) write(13,974), step, time, TA_Node_PoiPot(1:num_Nodes) write(14,974), step, time, TA_Node_Charge(1:num_Nodes) write(30,974), step, time, TA_Node_EField(1:num_Nodes) endif if (PhononSim.ne.0) then ! Phonon simulation 11/2012 write(46,973), step, time, TABin_TemperAP(1:num_Bins) write(47,973), step, time, TABin_TemperOP(1:num_Bins) write(48,974), step, time, TABinQsupA(1:num_Bins) write(49,974), step, time, TABinQsupO(1:num_Bins) write(50,974), step, time, TABinQsupTotal(1:num_Bins) write(51,974), step, time, TAepInterEneWm2(1:num_Bins) write(52,974), step, time, TAppInterEneWm2(1:num_Bins) endif write(7,'(i7, e12.5)'), step, time write(8,'(i7, e12.5)'), step, time if (PrintoutPartProp.eq.1) then ! 0709 6 write(6,'(i7, e12.5)'), step, time ! for particle endif write(9,'(i7, e12.5)'), step, time write(15,'(i7, e12.5)'), step, time write(16,'(i7, e12.5)'), step, time if (PrintoutHist.eq.1) then ! 19-20 0709 write(19,'(i7, e12.5)'), step, time write(20,'(i7, e12.5)'), step, time endif write(21,'(i7, e12.5)'), step, time ! last Step write(22,'(i7, e12.5)'), step, time ! last Step... 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) if (PrintoutHist.eq.1) then ! 0709 19-20 write(19,972), TempEnergy,TA_binhist_ParNumDen(1:num_Bins,i) write(20,972), TempEnergy,TA_binhist_ParNumber(1:num_Bins,i) endif write(21,972), TempEnergy,TA_binhist_ParNumDen(1:num_Bins,i) ! last Step write(22,972), TempEnergy,TA_binhist_ParNumber(1:num_Bins,i) ! last Step... enddo ! if (time.ge.time_early) then FieldAppRegion if (PrintoutXYZ.eq.1) then ! 35 write(35,'(1x,i8)'), num_Carriers write(35,'(a, a, i7)'), '#', 'step num = ', step endif write(42,'(1x,i8)'), num_Carriers write(42,'(a, a, i8)'), '#', 'step num = ', step do i = 1, num_maxCarriers if (Par_use(i).eq.1) then ! '# ','valley ','kx ky kz', 'energy', 'tau', 'x y z' if (PrintoutPartProp.eq.1) then ! 0709 6 write(6,996), i, Par_valley(i), Par_wvk(i,1:DIM), Par_tau(i), Par_ene(i), Par_vel(i,1), Par_pos(i,1) !:DIM) endif 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) TempAddEneY = 0.0d0 if (num_BarTros.ge.1) then do j = 1, num_BarTros if (Par_pos(i,1).ge.loc_Bar(j)) then TempAddEneY = TempAddEneY + Bar_Height(j) endif enddo endif if (num_FieldSec.ge.1) then if (Par_pos(i,1).lt.loc_Start_Field(1)) then TempAddEneY = TempAddEneY + (Par_pos(i,1)-box_coor(1,1))*EFieldBg(1) else TempAddEneY = TempAddEneY + (loc_Start_Field(1)-box_coor(1,1))*EFieldBg(1) do j = 1, num_FieldSec if (Par_pos(i,1).ge.loc_Start_Field(j)) then if (Par_pos(i,1).ge.loc_End_Field(j)) then TempAddEneY = TempAddEneY + (loc_End_Field(j)-loc_Start_Field(j))*Field_Sec(j) else TempAddEneY = TempAddEneY + (Par_pos(i,1)-loc_Start_Field(j))*Field_Sec(j) endif endif enddo if (Par_pos(i,1).gt.loc_End_Field(num_FieldSec)) then TempAddEneY = TempAddEneY + (Par_pos(i,1)-loc_End_Field(num_FieldSec))*EFieldBg(1) endif endif else TempAddEneY = TempAddEneY + (Par_pos(i,1)-box_coor(1,1))*EFieldBg(1) endif if (Par_valley(i) == 1) then ! FieldAppRegion EFieldBg TempTrackY = Par_ene(i) + TempAddEneY elseif (Par_valley(i) == 2) then TempTrackY = Par_ene(i) + Al_split_L_G(Par_Al(i)) + TempAddEneY else TempTrackY = Par_ene(i) + Al_split_X_G(Par_Al(i)) + TempAddEneY endif if (PrintoutXYZ.eq.1) then ! 0709 write(35,'(1x, a, 3f14.6)'), 'El', Par_pos(i,1)*1.0d9, TempTrackY*1000.0, 0.0d0 endif write(42,'(1x, a, 3f14.6)'), 'El', Par_pos(i,1)*1.0d9, TempTrackY*1000.0, 0.0d0 endif enddo if ((PoissonSetting.eq.1).and.(time.ge.time_Poisson)) then write(42,'(1x,i8)'), num_Carriers write(42,'(a, a, i8)'), '#', 'step num = ', step+1 do i = 1, num_maxCarriers if (Par_use(i).eq.1) then ! notrough TempAddEneY = 0.0d0 if (num_BarTros.ge.1) then do j = 1, num_BarTros if (Par_pos(i,1).ge.loc_Bar(j)) then TempAddEneY = TempAddEneY + Bar_Height(j) endif enddo endif if (num_FieldSec.ge.1) then if (Par_pos(i,1).lt.loc_Start_Field(1)) then TempAddEneY = TempAddEneY + (Par_pos(i,1)-box_coor(1,1))*EFieldBg(1) else TempAddEneY = TempAddEneY + (loc_Start_Field(1)-box_coor(1,1))*EFieldBg(1) do j = 1, num_FieldSec if (Par_pos(i,1).ge.loc_Start_Field(j)) then if (Par_pos(i,1).ge.loc_End_Field(j)) then TempAddEneY = TempAddEneY + (loc_End_Field(j)-loc_Start_Field(j))*Field_Sec(j) else TempAddEneY = TempAddEneY + (Par_pos(i,1)-loc_Start_Field(j))*Field_Sec(j) endif endif enddo if (Par_pos(i,1).gt.loc_End_Field(num_FieldSec)) then TempAddEneY = TempAddEneY + (Par_pos(i,1)-loc_End_Field(num_FieldSec))*EFieldBg(1) endif endif else TempAddEneY = TempAddEneY + (Par_pos(i,1)-box_coor(1,1))*EFieldBg(1) endif if (Par_valley(i) == 1) then ! FieldAppRegion EFieldBg TempTrackY = Par_ene(i) + TempAddEneY elseif (Par_valley(i) == 2) then TempTrackY = Par_ene(i) + Al_split_L_G(Par_Al(i)) + TempAddEneY else TempTrackY = Par_ene(i) + Al_split_X_G(Par_Al(i)) + TempAddEneY endif TempNodeInx = 1 do j = 1, (num_Nodes-1) ! Node if ((Par_pos(i,1).gt.loc_Node(j)).and.(Par_pos(i,1).le.loc_Node(j+1))) then TempNodeInx = j endif enddo TempPoiPot = (TA_Node_PoiPot(TempNodeInx+1)*(Par_pos(i,1)-loc_Node(TempNodeInx))+TA_Node_PoiPot(TempNodeInx)*(loc_Node(TempNodeInx+1)-Par_pos(i,1)))/NodeSize TempTrackY = TempTrackY + TempPoiPot write(42,'(1x, a, 3f14.6)'), 'El', Par_pos(i,1)*1.0d9, TempTrackY*1000.0, 0.0d0 endif enddo endif endif close(8) ! files for last time - close close(9) close(16) close(21) close(22) close(42) ! 0714 970 format (1x, i8, e12.5, 8e17.6) 971 format (1x, i8, e12.5, 12i12) 972 format (1x, f10.4, 210f12.6) 973 format (1x, i8, e12.5, 210f13.6) 974 format (1x, i8, e12.5, 210e15.6) 975 format (1x, f10.4, 210i9) 976 format (1x, i8, f10.4, i8, f10.4, e14.6, 3f10.4) 977 format (1x, i8, e12.5, 210i9) 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, 4e17.6) return end