Move GUI .seq summary output into a new subroutine

This commit is contained in:
2026-06-18 10:24:06 +02:00
parent ad23a2bc30
commit 6f5be23e67
+47 -17
View File
@@ -3561,30 +3561,17 @@ C
1800 CONTINUE
C
C The per-run summary file (*.seq) is created here
C This is the summary file writing procedure
C The per-run summary file (*.seq) is written by writeSequenceSummary.
C
7802 FORMAT(6x,'Energy',4x,'SigmaE',5x,'Alpha',2x,'SigAlpha',4x,'ntot',
& 5x,'imp',2x,'backsc',3x,'trans',3x,'tried',4x,'negE',3x,
& 'range',6x,'straggeling',2x, 'Eback',7x,'sigEback',4x
& ,'Etrans',6x,'SigEtrans',3x, 'red._E',6x ,'PRC',3x,999(A20
& ,1x))
C & I0,3x))
7801 FORMAT(F12.2,3(1x,F9.2),1x,6(I7,1x),6(E12.4),2(E12.4),999(I7
& ,1x))
C The *.seq file is the compact per-run summary consumed by the GUI for
C scan plots (fractions stopped in each layer, backscattering,
C transmission, mean depth, etc.). Each run writes its own summary file.
C=======================================================================
C WRITE SEQUENCE SUMMARY FILE
C=======================================================================
OPEN(UNIT=33,FILE=seqnam,STATUS='replace')
WRITE(33,7802) (chem(k),k=1,NLayers)
WRITE(33,7801)E0keV,EsigkeV,ALPHA,ALPHASIG,NH,IIM,IB,IT,tryE
& ,negE,FIX0,SIGMAX,FIB0,SIGMAB,FIT0,SIGMAT,epsilon,prcoeff
& ,(number_in_layer(k),k=1,NLayers)
CLOSE(33)
call writeSequenceSummary(seqnam,chem,NLayers,E0keV,EsigkeV,
& ALPHA,ALPHASIG,NH,IIM,IB,IT,tryE,negE,FIX0,SIGMAX,FIB0,
& SIGMAB,FIT0,SIGMAT,epsilon,prcoeff,number_in_layer,MAXNL)
C
C End of per-run summary file
@@ -4042,6 +4029,49 @@ C
C=======================================================================
C READ GUI-GENERATED INPUT FILE
C=======================================================================
C=======================================================================
C WRITE GUI SEQUENCE SUMMARY FILE
C=======================================================================
subroutine writeSequenceSummary(seqNam,chem,nLayers,e0KeV,
& esigKeV,alpha,alphaSig,nProjectiles,nImplanted,
& nBackscatter,nTransmitted,tryEnergy,negativeEnergy,
& meanRange,rangeSigma,meanBackEnergy,backEnergySigma,
& meanTransEnergy,transEnergySigma,reducedEnergy,
& reflectionCoeff,numberInLayer,maxNl)
implicit none
integer maxNl,nLayers,nProjectiles,nImplanted,nBackscatter
integer nTransmitted,tryEnergy,negativeEnergy,k
integer numberInLayer(maxNl)
real*8 e0KeV,esigKeV,alpha,alphaSig
real*8 meanRange,rangeSigma,meanBackEnergy,backEnergySigma
real*8 meanTransEnergy,transEnergySigma,reducedEnergy
real*8 reflectionCoeff
character*64 seqNam
character*50 chem(maxNl)
C
C The *.seq file is the compact per-run summary consumed by the GUI.
C Keep this writer separate from the long human-readable output report.
C
open(unit=33,file=seqNam,status='replace')
write(33,7802) (chem(k),k=1,nLayers)
write(33,7801) e0KeV,esigKeV,alpha,alphaSig,nProjectiles,
& nImplanted,nBackscatter,nTransmitted,tryEnergy,
& negativeEnergy,meanRange,rangeSigma,meanBackEnergy,
& backEnergySigma,meanTransEnergy,transEnergySigma,
& reducedEnergy,reflectionCoeff,
& (numberInLayer(k),k=1,nLayers)
close(33)
return
7802 format(6x,'Energy',4x,'SigmaE',5x,'Alpha',2x,'SigAlpha',
& 4x,'ntot',5x,'imp',2x,'backsc',3x,'trans',3x,
& 'tried',4x,'negE',3x,'range',6x,'straggeling',2x,
& 'Eback',7x,'sigEback',4x,'Etrans',6x,'SigEtrans',3x,
& 'red._E',6x,'PRC',3x,999(A20,1x))
7801 format(F12.2,3(1x,F9.2),1x,6(I7,1x),6(E12.4),
& 2(E12.4),999(I7,1x))
end
SUBROUTINE READ_GUI_INPUT(INNAM,ERRNAM,Z1,M1,E0,ESIG,ALPHA,
& ALPHASIG,EF,ESB,SHEATH,ERC,NH,RI,RI2,RI3,X0,RD,CW,CA,KK0,
& KK0R,KDEE1,KDEE2,IPOT,IPOTR,IRL,NLayers,CHEM,DX,RHO,CK,NJ,ZT,