I did some code compacting to make it more suitable for more than 7 layers.
This commit is contained in:
parent
1cdc02a760
commit
0dd05ea28f
@ -246,7 +246,7 @@ C These parameters are related to the maximum number of layers
|
||||
& ,MAXNLm15),MEAGS(102,12,22,MAXNLm15) ,MEASL(75,21,MAXNLm15)
|
||||
INTEGER*4 MEAST(102,22,MAXNLm15),MAGST(62,22,MAXNLm15),MEASTL(75
|
||||
& ,21,MAXNLm15)
|
||||
INTEGER*4 NJ(MAXNL),JT(MAXNL),ILD(MAXNL)
|
||||
INTEGER*4 NJ(MAXNL),JT(MAXNL),ILD(MAXNL),NJJ
|
||||
INTEGER*4 LLL(64),JJJ(64),IK(64)
|
||||
INTEGER*4 me(5000),nli(MAXNL),irpl(MAXNL)
|
||||
INTEGER*4 IT,NPROJ
|
||||
@ -514,7 +514,7 @@ C CHARACTER Variables
|
||||
DATA Epar/0.D0/
|
||||
C part. refl. coeff. from Thomas et al.
|
||||
DATA PRC/0.825D0,21.41D0,8.606D0,0.6425D0,1.907D0,1.927D0/
|
||||
DATA number_in_layer /MAXNL*0/
|
||||
DATA number_in_layer/MAXNL*0/
|
||||
|
||||
innam=filein//inext
|
||||
outnam=fileout//outext
|
||||
@ -694,14 +694,6 @@ C I am guessing NJ(I) is the number of elements in layer I
|
||||
LJ=LJ+NJ(I)
|
||||
enddo
|
||||
|
||||
|
||||
C JT(3) = JT(2)+NJ(2)
|
||||
C JT(4) = JT(3)+NJ(3)
|
||||
C JT(5) = JT(4)+NJ(4)
|
||||
C JT(6) = JT(5)+NJ(5)
|
||||
C JT(7) = JT(6)+NJ(6)
|
||||
C LJ = NJ(1)+NJ(2)+NJ(3)+NJ(4)+NJ(5)+NJ(6)+NJ(7)
|
||||
|
||||
XX(1)=DX(1)
|
||||
DO I=2,L
|
||||
XX(I)=XX(I-1)+DX(I)
|
||||
@ -722,48 +714,20 @@ C LJ = NJ(1)+NJ(2)+NJ(3)+NJ(4)+NJ(5)+NJ(6)+NJ(7)
|
||||
FM(LL) = AM(LL)*M2(LL)/(Z1*Z2(LL)*E2*(M1+M2(LL)))
|
||||
EPS0(LL) = FM(LL)*E0
|
||||
ENDDO
|
||||
DO J = 1,NJ(1)
|
||||
ZZ(J) = ZT(1,J)
|
||||
TM(J) = MT(1,J)
|
||||
DI(J) = ED(1,J)
|
||||
EP(J) = BE(1,J)
|
||||
ENDDO
|
||||
DO J = 1,NJ(2)
|
||||
ZZ(NJ(1)+J) = ZT(2,J)
|
||||
TM(NJ(1)+J) = MT(2,J)
|
||||
DI(NJ(1)+J) = ED(2,J)
|
||||
EP(NJ(1)+J) = BE(2,J)
|
||||
ENDDO
|
||||
DO J = 1,NJ(3)
|
||||
ZZ(NJ(1)+NJ(2)+J) = ZT(3,J)
|
||||
TM(NJ(1)+NJ(2)+J) = MT(3,J)
|
||||
DI(NJ(1)+NJ(2)+J) = ED(3,J)
|
||||
EP(NJ(1)+NJ(2)+J) = BE(3,J)
|
||||
ENDDO
|
||||
DO J = 1,NJ(4)
|
||||
ZZ(NJ(1)+NJ(2)+NJ(3)+J) = ZT(4,J)
|
||||
TM(NJ(1)+NJ(2)+NJ(3)+J) = MT(4,J)
|
||||
DI(NJ(1)+NJ(2)+NJ(3)+J) = ED(4,J)
|
||||
EP(NJ(1)+NJ(2)+NJ(3)+J) = BE(4,J)
|
||||
ENDDO
|
||||
DO J = 1,NJ(5)
|
||||
ZZ(NJ(1)+NJ(2)+NJ(3)+NJ(4)+J) = ZT(5,J)
|
||||
TM(NJ(1)+NJ(2)+NJ(3)+NJ(4)+J) = MT(5,J)
|
||||
DI(NJ(1)+NJ(2)+NJ(3)+NJ(4)+J) = ED(5,J)
|
||||
EP(NJ(1)+NJ(2)+NJ(3)+NJ(4)+J) = BE(5,J)
|
||||
ENDDO
|
||||
DO J = 1,NJ(6)
|
||||
ZZ(NJ(1)+NJ(2)+NJ(3)+NJ(4)+NJ(5)+J) = ZT(6,J)
|
||||
TM(NJ(1)+NJ(2)+NJ(3)+NJ(4)+NJ(5)+J) = MT(6,J)
|
||||
DI(NJ(1)+NJ(2)+NJ(3)+NJ(4)+NJ(5)+J) = ED(6,J)
|
||||
EP(NJ(1)+NJ(2)+NJ(3)+NJ(4)+NJ(5)+J) = BE(6,J)
|
||||
ENDDO
|
||||
DO J = 1,NJ(7)
|
||||
ZZ(NJ(1)+NJ(2)+NJ(3)+NJ(4)+NJ(5)+NJ(6)+J) = ZT(7,J)
|
||||
TM(NJ(1)+NJ(2)+NJ(3)+NJ(4)+NJ(5)+NJ(6)+J) = MT(7,J)
|
||||
DI(NJ(1)+NJ(2)+NJ(3)+NJ(4)+NJ(5)+NJ(6)+J) = ED(7,J)
|
||||
EP(NJ(1)+NJ(2)+NJ(3)+NJ(4)+NJ(5)+NJ(6)+J) = BE(7,J)
|
||||
ENDDO
|
||||
|
||||
C Loop over all defined layers
|
||||
NJJ=0
|
||||
do I=1,L
|
||||
C For each layer calculate the following
|
||||
do J=1,NJ(I)
|
||||
ZZ(NJJ+J) = ZT(I,J)
|
||||
TM(NJJ+J) = MT(I,J)
|
||||
DI(NJJ+J) = ED(I,J)
|
||||
EP(NJJ+J) = BE(I,J)
|
||||
enddo
|
||||
NJJ=NJJ+NJ(I)
|
||||
enddo
|
||||
|
||||
DO I=1,L
|
||||
COM(1,I) = CO(I,1)
|
||||
DO J=1,NJ(I)-1
|
||||
@ -3595,30 +3559,7 @@ c
|
||||
DO i=2,COLCOUNT
|
||||
WRITE(33,'(A246)')COLUMN(i)
|
||||
ENDDO
|
||||
IF(l.EQ.1) THEN
|
||||
number_in_layer(1)=IIM
|
||||
DO k=2,7
|
||||
number_in_layer(k)=0
|
||||
ENDDO
|
||||
ELSEIF(l.EQ.2) THEN
|
||||
DO k=3,7
|
||||
number_in_layer(k)=0
|
||||
ENDDO
|
||||
ELSEIF(l.EQ.3) THEN
|
||||
DO k=4,7
|
||||
number_in_layer(k)=0
|
||||
ENDDO
|
||||
ELSEIF(l.EQ.4) THEN
|
||||
DO k=5,7
|
||||
number_in_layer(k)=0
|
||||
ENDDO
|
||||
ELSEIF(l.EQ.5) THEN
|
||||
DO k=6,7
|
||||
number_in_layer(k)=0
|
||||
ENDDO
|
||||
ELSEIF(l.EQ.6) THEN
|
||||
number_in_layer(7)=0
|
||||
ENDIF
|
||||
|
||||
WRITE(33,7801)E0keV,EsigkeV,ALPHA,ALPHASIG,NH,IIM,IB,IT,tryE,negE
|
||||
& ,(number_in_layer(k),k=1,7),FIX0,SIGMAX,FIB0,SIGMAB,FIT0
|
||||
& ,SIGMAT,epsilon,prcoeff
|
||||
|
Loading…
x
Reference in New Issue
Block a user