Extract the matrix table axis setup block

This commit is contained in:
2026-06-18 11:51:19 +02:00
parent 82e656e1cd
commit 97dc213bbf
+111 -72
View File
@@ -2658,78 +2658,10 @@ C End of per-run summary file
C
C TOP AND FRONT LINES FOR MATRICES
C
JE=DE
JA=DA
JG=DG
DO J=2,NG1
MAGB(J,1) = (J-1)*JG
MAGT(J,1) = (J-1)*JG
EMA(J,1)=DBLE(J-1)*DG
EMAT(J,1)=DBLE(J-1)*DG
ENDDO
DO J=2,21
MEAB(1,J) = J-1
MEAT(1,J) = J-1
MAGB(1,J) = J-1
MAGT(1,J) = J-1
EMA(1,J) = J-1
EMAT(1,J) = J-1
ENDDO
DO J=2,MAXD1
MEAB(J,1) = J-1
MEAT(J,1) = J-1
MEPB(J,1) = J-1
MEPB(1,J) = J-1
MEPT(J,1) = J-1
MEPT(1,J) = J-1
ENDDO
DO K=1,JT(3)
DO J=2,NG1
MAGS(J,1,K) = (J-1)*JG
MAGST(J,1,K) = (J-1)*JG
MAGSA(J,1,K) = (J-1)*JG
ENDDO
DO J=2,NA1
MAGSA(1,J,K) = (J-1)*JA
ENDDO
DO J=2,21
MEAS(1,J,K) = J-1
MEAST(1,J,K) = J-1
MAGS(1,J,K) = J-1
MAGST(1,J,K) = J-1
ENDDO
DO J=2,MAXD1
MEAS(J,1,K) = J-1
MEAST(J,1,K) = J-1
ENDDO
DO J=1,20
MEASL(1,J,K)=J
MEASTL(1,J,K)=J
ENDDO
DO IG2=1,NGIK,1
DO J=2,21
MEAGS(1,IG2,J,K) = J-1
ENDDO
DO J=2,MAXD1
MEAGS(J,IG2,1,K) = J-1
ENDDO
ENDDO
ENDDO
DO IG2=1,NGIK,1
DO J=2,21
MEAGB(1,IG2,J) = J-1
MEAGT(1,IG2,J) = J-1
ENDDO
DO J=2,MAXD1
MEAGB(J,IG2,1) = J-1
MEAGT(J,IG2,1) = J-1
ENDDO
ENDDO
DO I=2,74
ELOG(I)=10.D0**(I/12.D0)*10.D0**(-7.D0/6.D0)
ENDDO
TEMP=(10.D0**(1.D0/12.D0)-1.D0)*10.D0**(-7.D0/6.D0)
TEMPNH=TEMP*DBLE(NH)
call setupMatrixTableAxes(DE,DA,DG,NH,NG1,NA1,NGIK,MAXD1,
& JT,MEAB,MAGB,EMA,MEAT,MAGT,EMAT,MEPB,MEPT,MAGS,
& MAGST,MAGSA,MEAS,MEAST,MEASL,MEASTL,MEAGS,MEAGB,
& MEAGT,ELOG,TEMPNH,MAXNL,MAXD2,MAXNLm15)
C
C BACKWARD SPUTTERING : MATRICES , ENERGY - ANGLE CORRELATIONS
C
@@ -4557,6 +4489,113 @@ C
return
end
C=======================================================================
C SET UP MATRIX TABLE AXES
C=======================================================================
subroutine setupMatrixTableAxes(energyBinWidth,angleBinWidth,
& polarBinWidth,nProjectiles,nPolarBinsMinusOne,
& nAngleBinsMinusOne,nAzimuthBins,maxDepthBin,jt,meab,magb,
& ema,meat,magt,emat,mepb,mept,mags,magst,magsa,meas,
& meast,measl,meastl,meags,meagb,meagt,energyLog,
& tempNh,maxNl,maxD2,maxSpeciesMinusFirstLayer)
implicit none
integer nProjectiles,nPolarBinsMinusOne,nAngleBinsMinusOne
integer nAzimuthBins,maxDepthBin,maxNl,maxD2
integer maxSpeciesMinusFirstLayer
integer j,k,azimuthBin
integer jt(maxNl)
integer meab(maxD2,22),magb(62,22),meagb(maxD2,36,22)
integer meat(maxD2,22),magt(62,22),meagt(maxD2,36,22)
integer mepb(maxD2,maxD2),mept(maxD2,maxD2)
integer meas(maxD2,22,maxSpeciesMinusFirstLayer)
integer meast(maxD2,22,maxSpeciesMinusFirstLayer)
integer mags(62,22,maxSpeciesMinusFirstLayer)
integer magst(62,22,maxSpeciesMinusFirstLayer)
integer magsa(62,32,maxSpeciesMinusFirstLayer)
integer measl(75,21,maxSpeciesMinusFirstLayer)
integer meastl(75,21,maxSpeciesMinusFirstLayer)
integer meags(maxD2,12,22,maxSpeciesMinusFirstLayer)
real*8 energyBinWidth,angleBinWidth,polarBinWidth
real*8 ema(62,22),emat(62,22),energyLog(75),tempNh
real*8 logBinWidth
C
C Fill the first row/column labels used by the matrix-style output
C tables. The simulation accumulates matrix entries during transport;
C this routine only sets the printable axes before those tables are
C written.
C
do j=2,nPolarBinsMinusOne
magb(j,1) = (j-1)*polarBinWidth
magt(j,1) = (j-1)*polarBinWidth
ema(j,1)=DBLE(j-1)*polarBinWidth
emat(j,1)=DBLE(j-1)*polarBinWidth
enddo
do j=2,21
meab(1,j) = j-1
meat(1,j) = j-1
magb(1,j) = j-1
magt(1,j) = j-1
ema(1,j) = j-1
emat(1,j) = j-1
enddo
do j=2,maxDepthBin
meab(j,1) = j-1
meat(j,1) = j-1
mepb(j,1) = j-1
mepb(1,j) = j-1
mept(j,1) = j-1
mept(1,j) = j-1
enddo
do k=1,jt(3)
do j=2,nPolarBinsMinusOne
mags(j,1,k) = (j-1)*polarBinWidth
magst(j,1,k) = (j-1)*polarBinWidth
magsa(j,1,k) = (j-1)*polarBinWidth
enddo
do j=2,nAngleBinsMinusOne
magsa(1,j,k) = (j-1)*angleBinWidth
enddo
do j=2,21
meas(1,j,k) = j-1
meast(1,j,k) = j-1
mags(1,j,k) = j-1
magst(1,j,k) = j-1
enddo
do j=2,maxDepthBin
meas(j,1,k) = j-1
meast(j,1,k) = j-1
enddo
do j=1,20
measl(1,j,k)=j
meastl(1,j,k)=j
enddo
do azimuthBin=1,nAzimuthBins,1
do j=2,21
meags(1,azimuthBin,j,k) = j-1
enddo
do j=2,maxDepthBin
meags(j,azimuthBin,1,k) = j-1
enddo
enddo
enddo
do azimuthBin=1,nAzimuthBins,1
do j=2,21
meagb(1,azimuthBin,j) = j-1
meagt(1,azimuthBin,j) = j-1
enddo
do j=2,maxDepthBin
meagb(j,azimuthBin,1) = j-1
meagt(j,azimuthBin,1) = j-1
enddo
enddo
do j=2,74
energyLog(j)=10.D0**(j/12.D0)*10.D0**(-7.D0/6.D0)
enddo
logBinWidth=(10.D0**(1.D0/12.D0)-1.D0)*10.D0**(-7.D0/6.D0)
tempNh=logBinWidth*DBLE(nProjectiles)
return
end
C=======================================================================
C WRITE GUI SEQUENCE SUMMARY FILE
C=======================================================================