Extract the backscattering matrix / energy-angular correlation block.

This commit is contained in:
2026-06-18 13:29:17 +02:00
parent 8eb8d07a46
commit e90cab41d5
+112 -74
View File
@@ -2683,81 +2683,14 @@ C
C
C BACKSCATTERING : MATRICES , ENERGY - ANGULAR CORRELATIONS
C
IF(IB.LT.10000) GO TO 2100
DO J=1,20
MEABL(1,J)=J
ENDDO
EABL(2)=DBLE(MEABL(2,21))/(DBLE(NH)*0.1D0)
DO IERLOG=3,74
EABL(IERLOG)=DBLE(MEABL(IERLOG,21))/(TEMPNH*10.D0**((IERLOG-1)
& /12.D0))
ENDDO
WRITE(21,2006)
2006 FORMAT(//,' LOG ENERGY - COS OF EMISSION ANGLE (0.05 STEPS) ',
& '(BACKSCATTERED PROJECTILES)'/)
do ima = 74,1,-1
if(meabl(ima,21).ne.0) goto 2005
enddo
ima = 1
2005 ima = min(ima+2,74)
do ies = 1, ima
WRITE(21,1858)elog(ies),(meabl(ies,iag),iag=1,21),eabl(ies)
end do
WRITE(21,1858)elog(75),(meabl(75,iag),iag=1,21),eabl(75)
IF(ALPHA.LT.1.) GO TO 2010
DO IG2=1,NGIK,1
EEE = IG2*DGI
WRITE(21,2014) EEE
2014 FORMAT(//,' ENERGY(E/E0 IN %) - POLAR ANGLE IN COS-INTERVALS ',
& '(0.05) AT AZIMUTHAL ANGLE =',F5.1,
& ' (BACKSCATTERED PROJECTILES)'/)
do ima = MAXD1,1,-1
if(meagb(ima,ig2,22).ne.0) goto 2015
enddo
ima = 1
2015 ima = min(ima+2,MAXD1)
write (6, 1886) ((meagb(ie,ig2,iagb),iagb=1,22),ie=1,ima)
write (6, 1886) (meagb(102,ig2,iagb),iagb=1,22)
ENDDO
2010 CONTINUE
IF(E0.LT.0.) GO TO 2052
WRITE(21,2016)
2016 FORMAT(//,' ENERGY(E/E0 IN %) - POLAR ANGLE IN COS-INTERVALS ',
& '(0.05) (BACKSCATTERED PROJECTILES)'/)
GO TO 2054
2052 WRITE(21,2056)
2056 FORMAT(//,' ENERGY(E IN 0.1*TI) - POLAR ANGLE IN COS-INTERVALS ',
& '(0.05) (BACKSCATTERED PROJECTILES)'/)
do ima = MAXD1,1,-1
if(meab(ima,22).ne.0) goto 2017
enddo
ima = 1
2017 ima = min(ima+2,MAXD1)
write (6, 1886) ((meab(ie,iagb),iagb=1,22),ie=1,ima)
write (6, 1886) (meab(102,iagb),iagb=1,22)
2054 continue
WRITE(21,2018)
2018 FORMAT(//,' AZIMUTHAL ANGLE - POLAR ANGLE IN COS-INTERVALS ',
& '(0.05) (BACKSCATTERED PROJECTILES)'/)
WRITE(21,1886) ((MAGB(IG,IAGB),IAGB=1,22),IG=1,62)
WRITE(21,2022)
2022 FORMAT(//,' AZIMUTH.ANGLE - POLAR ANGLE IN COS-INTERVALS ',
& '(0.05) (BACKSCATTERED ENERGY)'/)
WRITE(21,2027) (EMA(01,IAGB),IAGB=1,11)
WRITE(21,2025) ((EMA(IG,IAGB),IAGB=1,11),IG=2,NG)
WRITE(21,2028)
WRITE(21,2031) EMA(1,1),(EMA(1,IAGB),IAGB=12,22)
DO IG=2,NG
WRITE(21,2026) EMA(IG,1),(EMA(IG,IAGB),IAGB=12,22)
ENDDO
2025 FORMAT(1X,1F5.0,10E11.4)
2026 FORMAT(1X,1F5.0,11E11.4)
2027 FORMAT(1X,1F5.0,10F11.0)
call writeBackscatterMatrixSummary(IB,NH,MEABL,EABL,TEMPNH,
& ELOG,ALPHA,NGIK,DGI,MAXD1,MEAGB,MEAB,E0,MAGB,EMA,NG,
& MAXD2)
C
C Shared blank-line format used by the remaining inline matrix
C output section. A copy is kept inside the extracted subroutine.
C
2028 FORMAT(/)
2031 FORMAT(1H1,1X,1F5.0,11F11.0)
2036 FORMAT(1X,26I4)
2038 FORMAT(1X,26I4,I6)
2100 CONTINUE
C
C TRANSMISSION : MATRICES , ENERGY - ANGULAR CORRELATIONS
C
@@ -2841,6 +2774,111 @@ C=======================================================================
C OUTPUT WRITER SUBROUTINES
C=======================================================================
C
C Write backscattering matrix and energy-angle correlation tables.
C
subroutine writeBackscatterMatrixSummary(nBackscatter,nPrimary,
& backLogMatrix,backLogEnergy,tempNh,energyLog,alpha,
& nAzimuthBins,azimuthBinWidth,maxDepthBins,backEnergyAngle,
& backEnergyPolar,initialEnergy,backAngleMatrix,backEnergy,
& nPolarBins,maxDepthBins2)
implicit none
integer*4 nBackscatter,nPrimary,nAzimuthBins,maxDepthBins
integer*4 nPolarBins,maxDepthBins2
integer*4 J,IERLOG,IMA,IES,IAG,IG2,IE,IAGB,IG
integer*4 backLogMatrix(75,21)
integer*4 backEnergyAngle(maxDepthBins2,36,22)
integer*4 backEnergyPolar(maxDepthBins2,22)
integer*4 backAngleMatrix(62,22)
real*8 backLogEnergy(75),tempNh,energyLog(75),alpha
real*8 azimuthBinWidth,EEE,initialEnergy,backEnergy(62,22)
IF(nBackscatter.LT.10000) GO TO 2100
DO J=1,20
backLogMatrix(1,J)=J
ENDDO
backLogEnergy(2)=DBLE(backLogMatrix(2,21))/(DBLE(nPrimary)
& *0.1D0)
DO IERLOG=3,74
backLogEnergy(IERLOG)=DBLE(backLogMatrix(IERLOG,21))/(tempNh
& *10.D0**((IERLOG-1)/12.D0))
ENDDO
WRITE(21,2006)
2006 FORMAT(//,' LOG ENERGY - COS OF EMISSION ANGLE (0.05 STEPS) ',
& '(BACKSCATTERED PROJECTILES)'/)
do ima = 74,1,-1
if(backLogMatrix(ima,21).ne.0) goto 2005
enddo
ima = 1
2005 ima = min(ima+2,74)
do ies = 1, ima
WRITE(21,1858)energyLog(ies),(backLogMatrix(ies,iag),
& iag=1,21),backLogEnergy(ies)
end do
WRITE(21,1858)energyLog(75),(backLogMatrix(75,iag),iag=1,21),
& backLogEnergy(75)
IF(alpha.LT.1.) GO TO 2010
DO IG2=1,nAzimuthBins,1
EEE = IG2*azimuthBinWidth
WRITE(21,2014) EEE
2014 FORMAT(//,' ENERGY(E/E0 IN %) - POLAR ANGLE IN COS-INTERVALS ',
& '(0.05) AT AZIMUTHAL ANGLE =',F5.1,
& ' (BACKSCATTERED PROJECTILES)'/)
do ima = maxDepthBins,1,-1
if(backEnergyAngle(ima,ig2,22).ne.0) goto 2015
enddo
ima = 1
2015 ima = min(ima+2,maxDepthBins)
write (6, 1886) ((backEnergyAngle(ie,ig2,iagb),iagb=1,22),
& ie=1,ima)
write (6, 1886) (backEnergyAngle(102,ig2,iagb),iagb=1,22)
ENDDO
2010 CONTINUE
IF(initialEnergy.LT.0.) GO TO 2052
WRITE(21,2016)
2016 FORMAT(//,' ENERGY(E/E0 IN %) - POLAR ANGLE IN COS-INTERVALS ',
& '(0.05) (BACKSCATTERED PROJECTILES)'/)
GO TO 2054
2052 WRITE(21,2056)
2056 FORMAT(//,' ENERGY(E IN 0.1*TI) - POLAR ANGLE IN COS-INTERVALS ',
& '(0.05) (BACKSCATTERED PROJECTILES)'/)
do ima = maxDepthBins,1,-1
if(backEnergyPolar(ima,22).ne.0) goto 2017
enddo
ima = 1
2017 ima = min(ima+2,maxDepthBins)
write (6, 1886) ((backEnergyPolar(ie,iagb),iagb=1,22),
& ie=1,ima)
write (6, 1886) (backEnergyPolar(102,iagb),iagb=1,22)
2054 continue
WRITE(21,2018)
2018 FORMAT(//,' AZIMUTHAL ANGLE - POLAR ANGLE IN COS-INTERVALS ',
& '(0.05) (BACKSCATTERED PROJECTILES)'/)
WRITE(21,1886) ((backAngleMatrix(IG,IAGB),IAGB=1,22),IG=1,62)
WRITE(21,2022)
2022 FORMAT(//,' AZIMUTH.ANGLE - POLAR ANGLE IN COS-INTERVALS ',
& '(0.05) (BACKSCATTERED ENERGY)'/)
WRITE(21,2027) (backEnergy(01,IAGB),IAGB=1,11)
WRITE(21,2025) ((backEnergy(IG,IAGB),IAGB=1,11),
& IG=2,nPolarBins)
WRITE(21,2028)
WRITE(21,2031) backEnergy(1,1),(backEnergy(1,IAGB),
& IAGB=12,22)
DO IG=2,nPolarBins
WRITE(21,2026) backEnergy(IG,1),(backEnergy(IG,IAGB),
& IAGB=12,22)
ENDDO
1858 FORMAT(1X,1E12.4,20I5,I6,1E12.4)
1886 FORMAT(1X,I3,20I6,I8)
2025 FORMAT(1X,1F5.0,10E11.4)
2026 FORMAT(1X,1F5.0,11E11.4)
2027 FORMAT(1X,1F5.0,10F11.0)
2028 FORMAT(/)
2031 FORMAT(1H1,1X,1F5.0,11F11.0)
2100 CONTINUE
return
end
C
C Write forward sputtering matrix and energy-angle correlation tables.
C