Extract the backscattering matrix / energy-angular correlation block.
This commit is contained in:
+112
-74
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user