Added files common to SE and CE.
5 files are common to Series Expansion and Correlation Expansion algortithms. They are now in the dedicated phd_ce_noso_nosp_nosym folder.
This commit is contained in:
parent
ca1fd04163
commit
1dba5cbe47
|
@ -0,0 +1,85 @@
|
||||||
|
C
|
||||||
|
C=======================================================================
|
||||||
|
C
|
||||||
|
SUBROUTINE DWSPH(JTYP,JE,X,TLT,ISPEED)
|
||||||
|
C
|
||||||
|
C This routine recomputes the T-matrix elements taking into account the
|
||||||
|
C mean square displacements.
|
||||||
|
C
|
||||||
|
C When the argument X is tiny, no vibrations are taken into account
|
||||||
|
C
|
||||||
|
C Last modified : 25 Apr 2013
|
||||||
|
C
|
||||||
|
USE DIM_MOD
|
||||||
|
C
|
||||||
|
USE TRANS_MOD
|
||||||
|
C
|
||||||
|
DIMENSION GNT(0:N_GAUNT)
|
||||||
|
C
|
||||||
|
COMPLEX TLT(0:NT_M,4,NATM,NE_M),SL1,ZEROC
|
||||||
|
C
|
||||||
|
COMPLEX*16 FFL(0:2*NL_M)
|
||||||
|
C
|
||||||
|
DATA PI4,EPS /12.566371,1.0E-10/
|
||||||
|
C
|
||||||
|
ZEROC=(0.,0.)
|
||||||
|
C
|
||||||
|
IF(X.GT.EPS) THEN
|
||||||
|
C
|
||||||
|
C Standard case: vibrations
|
||||||
|
C
|
||||||
|
IF(ISPEED.LT.0) THEN
|
||||||
|
NSUM_LB=ABS(ISPEED)
|
||||||
|
ENDIF
|
||||||
|
C
|
||||||
|
COEF=PI4*EXP(-X)
|
||||||
|
NL2=2*LMAX(JTYP,JE)+2
|
||||||
|
IBESP=5
|
||||||
|
MG1=0
|
||||||
|
MG2=0
|
||||||
|
C
|
||||||
|
CALL BESPHE(NL2,IBESP,X,FFL)
|
||||||
|
C
|
||||||
|
DO L=0,LMAX(JTYP,JE)
|
||||||
|
XL=FLOAT(L+L+1)
|
||||||
|
SL1=ZEROC
|
||||||
|
C
|
||||||
|
DO L1=0,LMAX(JTYP,JE)
|
||||||
|
XL1=FLOAT(L1+L1+1)
|
||||||
|
CALL GAUNT(L,MG1,L1,MG2,GNT)
|
||||||
|
L2MIN=ABS(L1-L)
|
||||||
|
IF(ISPEED.GE.0) THEN
|
||||||
|
L2MAX=L1+L
|
||||||
|
ELSEIF(ISPEED.LT.0) THEN
|
||||||
|
L2MAX=L2MIN+2*(NSUM_LB-1)
|
||||||
|
ENDIF
|
||||||
|
SL2=0.
|
||||||
|
C
|
||||||
|
DO L2=L2MIN,L2MAX,2
|
||||||
|
XL2=FLOAT(L2+L2+1)
|
||||||
|
C=SQRT(XL1*XL2/(PI4*XL))
|
||||||
|
SL2=SL2+C*GNT(L2)*REAL(DREAL(FFL(L2)))
|
||||||
|
ENDDO
|
||||||
|
C
|
||||||
|
SL1=SL1+SL2*TL(L1,1,JTYP,JE)
|
||||||
|
ENDDO
|
||||||
|
C
|
||||||
|
TLT(L,1,JTYP,JE)=COEF*SL1
|
||||||
|
C
|
||||||
|
ENDDO
|
||||||
|
C
|
||||||
|
ELSE
|
||||||
|
C
|
||||||
|
C Argument X tiny: no vibrations
|
||||||
|
C
|
||||||
|
DO L=0,LMAX(JTYP,JE)
|
||||||
|
C
|
||||||
|
TLT(L,1,JTYP,JE)=TL(L,1,JTYP,JE)
|
||||||
|
C
|
||||||
|
ENDDO
|
||||||
|
C
|
||||||
|
ENDIF
|
||||||
|
C
|
||||||
|
RETURN
|
||||||
|
C
|
||||||
|
END
|
|
@ -0,0 +1,26 @@
|
||||||
|
C
|
||||||
|
C=======================================================================
|
||||||
|
C
|
||||||
|
SUBROUTINE FACDIF(COSTH,JAT,JE,FTHETA)
|
||||||
|
C
|
||||||
|
C This routine computes the plane wave scattering factor
|
||||||
|
C
|
||||||
|
USE DIM_MOD
|
||||||
|
C
|
||||||
|
USE TRANS_MOD
|
||||||
|
C
|
||||||
|
DIMENSION PL(0:100)
|
||||||
|
C
|
||||||
|
COMPLEX FTHETA
|
||||||
|
C
|
||||||
|
FTHETA=(0.,0.)
|
||||||
|
NL=LMAX(JAT,JE)+1
|
||||||
|
CALL POLLEG(NL,COSTH,PL)
|
||||||
|
DO 20 L=0,NL-1
|
||||||
|
FTHETA=FTHETA+(2*L+1)*TL(L,1,JAT,JE)*PL(L)
|
||||||
|
20 CONTINUE
|
||||||
|
FTHETA=FTHETA/VK(JE)
|
||||||
|
C
|
||||||
|
RETURN
|
||||||
|
C
|
||||||
|
END
|
|
@ -0,0 +1,113 @@
|
||||||
|
C
|
||||||
|
C=======================================================================
|
||||||
|
C
|
||||||
|
SUBROUTINE FACDIF1(VKE,RJ,RJK,THRJ,PHIRJ,BETA,GAMMA,L,M,FSPH,JAT,J
|
||||||
|
&E,*)
|
||||||
|
C
|
||||||
|
C This routine computes a spherical wave scattering factor
|
||||||
|
C
|
||||||
|
C Last modified : 03/04/2006
|
||||||
|
C
|
||||||
|
USE DIM_MOD
|
||||||
|
USE APPROX_MOD
|
||||||
|
USE EXPFAC_MOD
|
||||||
|
USE TRANS_MOD
|
||||||
|
USE TYPCAL_MOD , I2 => IPHI, I3 => IE, I4 => ITHETA, I5 => IMOD, I
|
||||||
|
&6 => IPOL, I7 => I_CP, I8 => I_EXT, I9 => I_TEST
|
||||||
|
C
|
||||||
|
DIMENSION PLMM(0:100,0:100)
|
||||||
|
DIMENSION D(1-NL_M:NL_M-1,1-NL_M:NL_M-1,0:NL_M-1)
|
||||||
|
C
|
||||||
|
COMPLEX HLM(0:NO_ST_M,0:NL_M-1),HLN(0:NO_ST_M,0:NL_M-1),FSPH,RHOJ
|
||||||
|
COMPLEX HLM1,HLM2,HLM3,HLM4,ALMU,BLMU,SLP,SNU,SMU,VKE
|
||||||
|
COMPLEX RHOJK
|
||||||
|
C
|
||||||
|
C
|
||||||
|
DATA PI/3.141593/
|
||||||
|
C
|
||||||
|
A=1.
|
||||||
|
INTER=0
|
||||||
|
IF(ITL.EQ.1) VKE=VK(JE)
|
||||||
|
RHOJ=VKE*RJ
|
||||||
|
RHOJK=VKE*RJK
|
||||||
|
HLM1=(1.,0.)
|
||||||
|
HLM2=(1.,0.)
|
||||||
|
HLM3=(1.,0.)
|
||||||
|
HLM4=(1.,0.)
|
||||||
|
IEM=1
|
||||||
|
CSTH=COS(BETA)
|
||||||
|
IF((IFTHET.EQ.0).OR.(THRJ.LT.0.0001)) THEN
|
||||||
|
INTER=1
|
||||||
|
BLMU=SQRT(4.*PI/FLOAT(2*L+1))*CEXP((0.,-1.)*M*(PHIRJ-PI))
|
||||||
|
ENDIF
|
||||||
|
CALL PLM(CSTH,PLMM,LMAX(JAT,JE))
|
||||||
|
IF(ISPHER.EQ.0) NO1=0
|
||||||
|
IF(ISPHER.EQ.1) THEN
|
||||||
|
IF(NO.EQ.8) THEN
|
||||||
|
NO1=LMAX(JAT,JE)+1
|
||||||
|
ELSE
|
||||||
|
NO1=NO
|
||||||
|
ENDIF
|
||||||
|
CALL POLHAN(ISPHER,NO1,LMAX(JAT,JE),RHOJ,HLM)
|
||||||
|
IF(IEM.EQ.0) THEN
|
||||||
|
HLM4=HLM(0,L)
|
||||||
|
ENDIF
|
||||||
|
IF(RJK.GT.0.0001) THEN
|
||||||
|
NDUM=0
|
||||||
|
CALL POLHAN(ISPHER,NDUM,LMAX(JAT,JE),RHOJK,HLN)
|
||||||
|
ENDIF
|
||||||
|
CALL DJMN(THRJ,D,L)
|
||||||
|
A1=ABS(D(0,M,L))
|
||||||
|
IF(((A1.LT.0.0001).AND.(IFTHET.EQ.1)).AND.(INTER.EQ.0)) RETURN 1
|
||||||
|
&
|
||||||
|
ENDIF
|
||||||
|
MUMAX=MIN0(L,NO1)
|
||||||
|
SMU=(0.,0.)
|
||||||
|
DO 10 MU=0,MUMAX
|
||||||
|
IF(MOD(MU,2).EQ.0) THEN
|
||||||
|
B=1.
|
||||||
|
ELSE
|
||||||
|
B=-1.
|
||||||
|
IF(SIN(BETA).LT.0.) THEN
|
||||||
|
A=-1.
|
||||||
|
ENDIF
|
||||||
|
ENDIF
|
||||||
|
IF(ISPHER.LE.1) THEN
|
||||||
|
ALMU=(1.,0.)
|
||||||
|
C=1.
|
||||||
|
ENDIF
|
||||||
|
IF(ISPHER.EQ.0) GOTO 40
|
||||||
|
IF(INTER.EQ.0) BLMU=CMPLX(D(M,0,L))
|
||||||
|
IF(MU.GT.0) THEN
|
||||||
|
C=B*FLOAT(L+L+1)/EXPF(MU,L)
|
||||||
|
ALMU=(D(M,MU,L)*CEXP((0.,-1.)*MU*GAMMA)+B*
|
||||||
|
* CEXP((0.,1.)*MU*GAMMA)*D(M,-MU,L))/BLMU
|
||||||
|
ELSE
|
||||||
|
C=1.
|
||||||
|
ALMU=CMPLX(D(M,0,L))/BLMU
|
||||||
|
ENDIF
|
||||||
|
40 SNU=(0.,0.)
|
||||||
|
NU1=INT(0.5*(NO1-MU)+0.0001)
|
||||||
|
NUMAX=MIN0(NU1,L-MU)
|
||||||
|
DO 20 NU=0,NUMAX
|
||||||
|
SLP=(0.,0.)
|
||||||
|
LPMIN=MAX0(MU,NU)
|
||||||
|
DO 30 LP=LPMIN,LMAX(JAT,JE)
|
||||||
|
IF(ISPHER.EQ.1) THEN
|
||||||
|
HLM1=HLM(NU,LP)
|
||||||
|
IF(RJK.GT.0.0001) HLM3=HLN(0,LP)
|
||||||
|
ENDIF
|
||||||
|
SLP=SLP+FLOAT(2*LP+1)*TL(LP,1,JAT,JE)*HLM1*PLMM(LP,MU)*HLM3
|
||||||
|
30 CONTINUE
|
||||||
|
IF(ISPHER.EQ.1) THEN
|
||||||
|
HLM2=HLM(MU+NU,L)
|
||||||
|
ENDIF
|
||||||
|
SNU=SNU+SLP*HLM2
|
||||||
|
20 CONTINUE
|
||||||
|
SMU=SMU+SNU*C*ALMU*A*B
|
||||||
|
10 CONTINUE
|
||||||
|
FSPH=SMU/(VKE*HLM4)
|
||||||
|
C
|
||||||
|
RETURN
|
||||||
|
C
|
||||||
|
END
|
|
@ -0,0 +1,106 @@
|
||||||
|
C
|
||||||
|
C=======================================================================
|
||||||
|
C
|
||||||
|
SUBROUTINE PLOTFD(A,LMX,ITL,NL,NAT,NE)
|
||||||
|
C
|
||||||
|
C This routine prepares the output for a plot of the scattering factor
|
||||||
|
C
|
||||||
|
USE DIM_MOD
|
||||||
|
C
|
||||||
|
USE APPROX_MOD
|
||||||
|
USE FDIF_MOD
|
||||||
|
USE INIT_L_MOD , L => LI, I2 => INITL, I3 => NNL, I4 => LF1, I5 =>
|
||||||
|
& LF2, I10 => ISTEP_LF
|
||||||
|
USE INIT_J_MOD
|
||||||
|
USE OUTFILES_MOD
|
||||||
|
USE OUTUNITS_MOD
|
||||||
|
USE PARCAL_MOD , N3 => NPHI, N4 => NE, N5 => NTHETA, N6 => NEPS
|
||||||
|
USE TYPCAL_MOD , I7 => IFTHET, I8 => IMOD, I9 => IPOL, I12 => I_CP
|
||||||
|
&, I13 => I_EXT, I14 => I_TEST
|
||||||
|
USE VALIN_MOD , U1 => THLUM, U2 => PHILUM, U3 => ELUM, N7 => NONVO
|
||||||
|
&L
|
||||||
|
USE VALFIN_MOD
|
||||||
|
C
|
||||||
|
C
|
||||||
|
C
|
||||||
|
DIMENSION LMX(NATM,NE_M)
|
||||||
|
C
|
||||||
|
COMPLEX FSPH,VKE
|
||||||
|
C
|
||||||
|
C
|
||||||
|
C
|
||||||
|
DATA PI,CONV/3.141593,0.512314/
|
||||||
|
C
|
||||||
|
OPEN(UNIT=IUO3, FILE=OUTFILE3, STATUS='UNKNOWN')
|
||||||
|
IF(ISPHER.EQ.0) THEN
|
||||||
|
L=0
|
||||||
|
LMAX=0
|
||||||
|
ELSE
|
||||||
|
LMAX=L
|
||||||
|
ENDIF
|
||||||
|
PHITOT=360.
|
||||||
|
THTOT=360.*ITHETA*(1-IPHI)+180.*ITHETA*IPHI
|
||||||
|
NPHI=(NFTHET+1)*IPHI+(1-IPHI)
|
||||||
|
NTHT=(NFTHET+1)*ITHETA*(1-IPHI)+(NFTHET/2+1)*ITHETA*IPHI+
|
||||||
|
* (1-ITHETA)
|
||||||
|
NE=NFTHET*IE + (1-IE)
|
||||||
|
WRITE(IUO3,1) ISPHER,NL,NAT,L,NTHT,NPHI,NE,E0,EFIN
|
||||||
|
DO 10 JT=1,NTHT
|
||||||
|
DTHETA=THETA1+FLOAT(JT-1)*THTOT/FLOAT(MAX0(NTHT-1,1))
|
||||||
|
RTHETA=DTHETA*PI/180.
|
||||||
|
TEST=SIN(RTHETA)
|
||||||
|
IF(TEST.GE.0.) THEN
|
||||||
|
POZ=PI
|
||||||
|
EPS=1.
|
||||||
|
ELSE
|
||||||
|
POZ=0.
|
||||||
|
EPS=-1.
|
||||||
|
ENDIF
|
||||||
|
BETA=RTHETA*EPS
|
||||||
|
IF(ABS(TEST).LT.0.0001) THEN
|
||||||
|
NPHIM=1
|
||||||
|
ELSE
|
||||||
|
NPHIM=NPHI
|
||||||
|
ENDIF
|
||||||
|
DO 20 JP=1,NPHIM
|
||||||
|
DPHI=PHI1+FLOAT(JP-1)*PHITOT/FLOAT(MAX0(NPHI-1,1))
|
||||||
|
RPHI=DPHI*PI/180.
|
||||||
|
GAMMA=POZ-RPHI
|
||||||
|
DO 30 JE=1,NE
|
||||||
|
IF(NE.EQ.1) THEN
|
||||||
|
ECIN=E0
|
||||||
|
ELSE
|
||||||
|
ECIN=E0+FLOAT(JE-1)*(EFIN-E0)/FLOAT(NE-1)
|
||||||
|
ENDIF
|
||||||
|
IF(ITL.EQ.0) VKE=SQRT(ECIN-ABS(VINT))*CONV*A*(1.,0.)
|
||||||
|
DO 40 JAT=1,NAT
|
||||||
|
IF(L.GT.LMX(JAT,JE)) GOTO 90
|
||||||
|
DO 50 M=-LMAX,LMAX
|
||||||
|
CALL FACDIF1(VKE,R1,R2,THETA0,PHI0,BETA,GAMMA,L,M,FSPH,J
|
||||||
|
&AT,JE,*60)
|
||||||
|
GOTO 70
|
||||||
|
60 WRITE(IUO1,80)
|
||||||
|
STOP
|
||||||
|
70 REFTH=REAL(FSPH)
|
||||||
|
XIMFTH=AIMAG(FSPH)
|
||||||
|
WRITE(IUO3,5) JE,JAT,L,M,REFTH,XIMFTH,DTHETA,DPHI,ECIN
|
||||||
|
50 CONTINUE
|
||||||
|
GOTO 40
|
||||||
|
90 WRITE(IUO1,100) JAT
|
||||||
|
STOP
|
||||||
|
40 CONTINUE
|
||||||
|
30 CONTINUE
|
||||||
|
20 CONTINUE
|
||||||
|
10 CONTINUE
|
||||||
|
CLOSE(IUO3)
|
||||||
|
1 FORMAT(5X,I1,2X,I2,2X,I4,2X,I2,2X,I3,2X,I3,2X,I3,2X,F8.2,2X,F8.2)
|
||||||
|
5 FORMAT(1X,I3,1X,I4,1X,I2,1X,I3,1X,F6.3,1X,F6.3,1X,F6.2,1X,F6.2,1X,
|
||||||
|
&F8.2)
|
||||||
|
80 FORMAT(15X,'<<<<< WRONG VALUE OF THETA0 : THE DENOMINATOR ','IS Z
|
||||||
|
&ERO >>>>>')
|
||||||
|
100 FORMAT(15X,'<<<<< THE VALUE OF L EST IS TOO LARGE FOR ATOM',' : '
|
||||||
|
&,I2,' >>>>>')
|
||||||
|
C
|
||||||
|
RETURN
|
||||||
|
C
|
||||||
|
END
|
|
@ -0,0 +1,335 @@
|
||||||
|
C
|
||||||
|
C=======================================================================
|
||||||
|
C
|
||||||
|
SUBROUTINE WEIGHT_SUM(ISOM,I_EXT,I_EXT_A,JEL)
|
||||||
|
C
|
||||||
|
C This subroutine performs a weighted sum of the results
|
||||||
|
C corresponding to different directions of the detector.
|
||||||
|
C The directions and weights are read from an external input file
|
||||||
|
C
|
||||||
|
C JEL is the electron undetected (i.e. for which the outgoing
|
||||||
|
C directions are integrated over the unit sphere). It is always
|
||||||
|
C 1 for one electron spectroscopies (PHD). For APECS, It can be
|
||||||
|
C 1 (photoelectron) or 2 (Auger electron) or even 0 (no electron
|
||||||
|
C detected)
|
||||||
|
C
|
||||||
|
C Last modified : 31 Jan 2007
|
||||||
|
C
|
||||||
|
USE DIM_MOD
|
||||||
|
USE INFILES_MOD
|
||||||
|
USE INUNITS_MOD
|
||||||
|
USE OUTUNITS_MOD
|
||||||
|
C
|
||||||
|
C
|
||||||
|
PARAMETER(N_MAX=5810,NPM=20)
|
||||||
|
C
|
||||||
|
REAL*4 W(N_MAX),W_A(N_MAX),ECIN(NE_M)
|
||||||
|
REAL*4 DTHETA(N_MAX),DPHI(N_MAX),DTHETAA(N_MAX),DPHIA(N_MAX)
|
||||||
|
REAL*4 SR_1,SF_1,SR_2,SF_2
|
||||||
|
REAL*4 SUMR_1(NPM,NE_M,N_MAX),SUMR_2(NPM,NE_M,N_MAX)
|
||||||
|
REAL*4 SUMF_1(NPM,NE_M,N_MAX),SUMF_2(NPM,NE_M,N_MAX)
|
||||||
|
C
|
||||||
|
CHARACTER*3 SPECTRO,SPECTRO2
|
||||||
|
CHARACTER*5 LIKE
|
||||||
|
CHARACTER*13 OUTDATA
|
||||||
|
C
|
||||||
|
C
|
||||||
|
C
|
||||||
|
C
|
||||||
|
DATA JVOL,JTOT/0,-1/
|
||||||
|
DATA LIKE /'-like'/
|
||||||
|
C
|
||||||
|
REWIND IUO2
|
||||||
|
C
|
||||||
|
READ(IUO2,15) SPECTRO,OUTDATA
|
||||||
|
IF(SPECTRO.NE.'APC') THEN
|
||||||
|
READ(IUO2,9) ISPIN,IDICHR,I_SO,ISFLIP,ICHKDIR,IPHI,ITHETA,IE
|
||||||
|
READ(IUO2,8) NPHI,NTHETA,NE,NPLAN,ISOM
|
||||||
|
SPECTRO2='XAS'
|
||||||
|
ELSE
|
||||||
|
READ(IUO2,9) ISPIN,IDICHR,I_SO,ISFLIP,ICHKDIR,IPHI,ITHETA,IE
|
||||||
|
READ(IUO2,9) ISPIN_A,IDICHR_A,I_SO_A,ISFLIP_A,ICHKDIR_A,IPHI_A,I
|
||||||
|
&THETA_A,IE_A
|
||||||
|
READ(IUO2,8) NPHI,NTHETA,NE,NPLAN,ISOM
|
||||||
|
READ(IUO2,8) NPHI_A,NTHETA_A
|
||||||
|
IF(JEL.EQ.1) THEN
|
||||||
|
SPECTRO2='AED'
|
||||||
|
ELSEIF(JEL.EQ.2) THEN
|
||||||
|
SPECTRO2='PHD'
|
||||||
|
ELSEIF(JEL.EQ.0) THEN
|
||||||
|
SPECTRO2='XAS'
|
||||||
|
ENDIF
|
||||||
|
ENDIF
|
||||||
|
C
|
||||||
|
IF(NPLAN.GT.NPM) THEN
|
||||||
|
WRITE(IUO1,4) NPLAN+2
|
||||||
|
STOP
|
||||||
|
ENDIF
|
||||||
|
C
|
||||||
|
C Reading the number of angular points
|
||||||
|
C
|
||||||
|
IF(SPECTRO.NE.'APC') THEN
|
||||||
|
OPEN(UNIT=IUI6, FILE=INFILE6, STATUS='OLD')
|
||||||
|
READ(IUI6,1) N_POINTS
|
||||||
|
READ(IUI6,5) I_DIM,N_DUM1,N_DUM2
|
||||||
|
N_POINTS_A=1
|
||||||
|
ELSE
|
||||||
|
IF(JEL.EQ.1) THEN
|
||||||
|
OPEN(UNIT=IUI6, FILE=INFILE6, STATUS='OLD')
|
||||||
|
READ(IUI6,1) N_POINTS
|
||||||
|
READ(IUI6,5) I_DIM,N_DUM1,N_DUM2
|
||||||
|
IF(I_EXT_A.EQ.0) THEN
|
||||||
|
N_POINTS_A=NTHETA_A*NPHI_A
|
||||||
|
ELSE
|
||||||
|
OPEN(UNIT=IUI9, FILE=INFILE9, STATUS='OLD')
|
||||||
|
READ(IUI9,1) N_POINTS_A
|
||||||
|
READ(IUI9,5) I_DIM,N_DUM1,N_DUM2
|
||||||
|
ENDIF
|
||||||
|
NTHETA0=NTHETA_A
|
||||||
|
NPHI0=NPHI_A
|
||||||
|
ELSEIF(JEL.EQ.2) THEN
|
||||||
|
OPEN(UNIT=IUI9, FILE=INFILE9, STATUS='OLD')
|
||||||
|
READ(IUI9,1) N_POINTS_A
|
||||||
|
READ(IUI9,5) I_DIM,N_DUM1,N_DUM2
|
||||||
|
IF(I_EXT.EQ.0) THEN
|
||||||
|
N_POINTS=NTHETA*NPHI
|
||||||
|
ELSE
|
||||||
|
OPEN(UNIT=IUI6, FILE=INFILE6, STATUS='OLD')
|
||||||
|
READ(IUI6,1) N_POINTS
|
||||||
|
READ(IUI6,5) I_DIM,N_DUM1,N_DUM2
|
||||||
|
ENDIF
|
||||||
|
NTHETA0=NTHETA
|
||||||
|
NPHI0=NPHI
|
||||||
|
ELSEIF(JEL.EQ.0) THEN
|
||||||
|
OPEN(UNIT=IUI6, FILE=INFILE6, STATUS='OLD')
|
||||||
|
OPEN(UNIT=IUI9, FILE=INFILE9, STATUS='OLD')
|
||||||
|
READ(IUI6,1) N_POINTS
|
||||||
|
READ(IUI9,1) N_POINTS_A
|
||||||
|
READ(IUI6,5) I_DIM,N_DUM1,N_DUM2
|
||||||
|
READ(IUI9,5) I_DIM,N_DUM1,N_DUM2
|
||||||
|
ENDIF
|
||||||
|
ENDIF
|
||||||
|
C
|
||||||
|
IF(SPECTRO.NE.'APC') THEN
|
||||||
|
NANGLE=1
|
||||||
|
ELSE
|
||||||
|
IF(JEL.EQ.1) THEN
|
||||||
|
NANGLE=N_POINTS_A
|
||||||
|
ELSEIF(JEL.EQ.2) THEN
|
||||||
|
NANGLE=N_POINTS
|
||||||
|
ELSEIF(JEL.EQ.0) THEN
|
||||||
|
NANGLE=1
|
||||||
|
ENDIF
|
||||||
|
ENDIF
|
||||||
|
C
|
||||||
|
C Initialization of the arrays
|
||||||
|
C
|
||||||
|
DO JE=1,NE
|
||||||
|
DO JANGLE=1,NANGLE
|
||||||
|
DO JPLAN=1,NPLAN+2
|
||||||
|
SUMR_1(JPLAN,JE,JANGLE)=0.
|
||||||
|
SUMF_1(JPLAN,JE,JANGLE)=0.
|
||||||
|
IF(IDICHR.GT.0) THEN
|
||||||
|
SUMR_2(JPLAN,JE,JANGLE)=0.
|
||||||
|
SUMF_2(JPLAN,JE,JANGLE)=0.
|
||||||
|
ENDIF
|
||||||
|
ENDDO
|
||||||
|
ENDDO
|
||||||
|
ENDDO
|
||||||
|
C
|
||||||
|
C Reading of the data to be angle integrated
|
||||||
|
C
|
||||||
|
DO JE=1,NE
|
||||||
|
C
|
||||||
|
DO JANGLE=1,N_POINTS
|
||||||
|
IF(I_EXT.NE.0) READ(IUI6,2) TH,PH,W(JANGLE)
|
||||||
|
DO JANGLE_A=1,N_POINTS_A
|
||||||
|
IF((I_EXT_A.NE.0).AND.(JANGLE.EQ.1)) THEN
|
||||||
|
READ(IUI9,2) THA,PHA,W_A(JANGLE_A)
|
||||||
|
ENDIF
|
||||||
|
C
|
||||||
|
DO JPLAN=1,NPLAN+2
|
||||||
|
C
|
||||||
|
IF(IDICHR.EQ.0) THEN
|
||||||
|
IF(SPECTRO.NE.'APC') THEN
|
||||||
|
READ(IUO2,3) JDUM,DTHETA(JANGLE),DPHI(JANGLE),ECIN(JE)
|
||||||
|
&,SR_1,SF_1
|
||||||
|
ELSE
|
||||||
|
READ(IUO2,13) JDUM,DTHETA(JANGLE),DPHI(JANGLE),ECIN(JE
|
||||||
|
&),DTHETAA(JANGLE_A),DPHIA(JANGLE_A),SR_1,SF_1
|
||||||
|
ENDIF
|
||||||
|
ELSE
|
||||||
|
IF(SPECTRO.NE.'APC') THEN
|
||||||
|
READ(IUO2,23) JDUM,DTHETA(JANGLE),DPHI(JANGLE),ECIN(JE
|
||||||
|
&),SR_1,SF_1,SR_2,SF_2
|
||||||
|
ELSE
|
||||||
|
READ(IUO2,24) JDUM,DTHETA(JANGLE),DPHI(JANGLE),ECIN(JE
|
||||||
|
&),DTHETAA(JANGLE_A),DPHIA(JANGLE_A),SR_1,SF_1,SR_2,SF_2
|
||||||
|
ENDIF
|
||||||
|
ENDIF
|
||||||
|
C
|
||||||
|
IF(JEL.EQ.1) THEN
|
||||||
|
SUMR_1(JPLAN,JE,JANGLE_A)=SUMR_1(JPLAN,JE,JANGLE_A)+SR_1
|
||||||
|
&*W(JANGLE)
|
||||||
|
SUMF_1(JPLAN,JE,JANGLE_A)=SUMF_1(JPLAN,JE,JANGLE_A)+SF_1
|
||||||
|
&*W(JANGLE)
|
||||||
|
ELSEIF(JEL.EQ.2) THEN
|
||||||
|
SUMR_1(JPLAN,JE,JANGLE)=SUMR_1(JPLAN,JE,JANGLE)+SR_1*W_A
|
||||||
|
&(JANGLE_A)
|
||||||
|
SUMF_1(JPLAN,JE,JANGLE)=SUMF_1(JPLAN,JE,JANGLE)+SF_1*W_A
|
||||||
|
&(JANGLE_A)
|
||||||
|
ELSEIF(JEL.EQ.0) THEN
|
||||||
|
SUMR_1(JPLAN,JE,1)=SUMR_1(JPLAN,JE,1)+SR_1*W(JANGLE)*W_A
|
||||||
|
&(JANGLE_A)
|
||||||
|
SUMF_1(JPLAN,JE,1)=SUMF_1(JPLAN,JE,1)+SF_1*W(JANGLE)*W_A
|
||||||
|
&(JANGLE_A)
|
||||||
|
ENDIF
|
||||||
|
IF(IDICHR.GT.0) THEN
|
||||||
|
IF(JEL.EQ.1) THEN
|
||||||
|
SUMR_2(JPLAN,JE,JANGLE_A)=SUMR_2(JPLAN,JE,JANGLE_A)+SR
|
||||||
|
&_2*W(JANGLE)
|
||||||
|
SUMF_2(JPLAN,JE,JANGLE_A)=SUMF_2(JPLAN,JE,JANGLE_A)+SF
|
||||||
|
&_2*W(JANGLE)
|
||||||
|
ELSEIF(JEL.EQ.2) THEN
|
||||||
|
SUMR_2(JPLAN,JE,JANGLE)=SUMR_2(JPLAN,JE,JANGLE)+SR_2*W
|
||||||
|
&_A(JANGLE_A)
|
||||||
|
SUMF_2(JPLAN,JE,JANGLE)=SUMF_2(JPLAN,JE,JANGLE)+SF_2*W
|
||||||
|
&_A(JANGLE_A)
|
||||||
|
ELSEIF(JEL.EQ.0) THEN
|
||||||
|
SUMR_2(JPLAN,JE,1)=SUMR_2(JPLAN,JE,1)+SR_2*W(JANGLE)*W
|
||||||
|
&_A(JANGLE_A)
|
||||||
|
SUMF_2(JPLAN,JE,1)=SUMF_2(JPLAN,JE,1)+SF_2*W(JANGLE)*W
|
||||||
|
&_A(JANGLE_A)
|
||||||
|
ENDIF
|
||||||
|
ENDIF
|
||||||
|
C
|
||||||
|
ENDDO
|
||||||
|
C
|
||||||
|
ENDDO
|
||||||
|
IF(I_EXT_A.NE.0) THEN
|
||||||
|
REWIND IUI9
|
||||||
|
READ(IUI9,1) NDUM
|
||||||
|
READ(IUI9,1) NDUM
|
||||||
|
ENDIF
|
||||||
|
ENDDO
|
||||||
|
C
|
||||||
|
IF(I_EXT.NE.0) THEN
|
||||||
|
REWIND IUI6
|
||||||
|
READ(IUI6,1) NDUM
|
||||||
|
READ(IUI6,1) NDUM
|
||||||
|
ENDIF
|
||||||
|
ENDDO
|
||||||
|
C
|
||||||
|
CLOSE(IUI6)
|
||||||
|
CLOSE(IUI9)
|
||||||
|
REWIND IUO2
|
||||||
|
C
|
||||||
|
WRITE(IUO2,16) SPECTRO2,LIKE,SPECTRO,OUTDATA
|
||||||
|
IF((SPECTRO.NE.'APC').OR.(JEL.EQ.0)) THEN
|
||||||
|
WRITE(IUO2,19) ISPIN,IDICHR,I_SO,ISFLIP
|
||||||
|
WRITE(IUO2,18) NE,NPLAN,ISOM
|
||||||
|
ELSEIF(JEL.EQ.1) THEN
|
||||||
|
WRITE(IUO2,20) ISPIN_A,IDICHR_A,I_SO_A,ISFLIP_A,ICHKDIR_A,IPHI_A
|
||||||
|
&,ITHETA_A,IE_A
|
||||||
|
WRITE(IUO2,21) NPHI0,NTHETA0,NE,NPLAN,ISOM
|
||||||
|
ELSEIF(JEL.EQ.2) THEN
|
||||||
|
WRITE(IUO2,20) ISPIN,IDICHR,I_SO,ISFLIP,ICHKDIR,IPHI,ITHETA,IE
|
||||||
|
WRITE(IUO2,21) NPHI0,NTHETA0,NE,NPLAN,ISOM
|
||||||
|
ENDIF
|
||||||
|
C
|
||||||
|
DO JE=1,NE
|
||||||
|
DO JANGLE=1,NANGLE
|
||||||
|
IF(SPECTRO.EQ.'APC') THEN
|
||||||
|
IF(JEL.EQ.1) THEN
|
||||||
|
THETA=DTHETAA(JANGLE)
|
||||||
|
PHI=DPHIA(JANGLE)
|
||||||
|
ELSEIF(JEL.EQ.2) THEN
|
||||||
|
THETA=DTHETA(JANGLE)
|
||||||
|
PHI=DPHI(JANGLE)
|
||||||
|
ENDIF
|
||||||
|
ENDIF
|
||||||
|
C
|
||||||
|
DO JPLAN=1,NPLAN
|
||||||
|
IF(IDICHR.EQ.0) THEN
|
||||||
|
IF((SPECTRO.NE.'APC').OR.(JEL.EQ.0)) THEN
|
||||||
|
WRITE(IUO2,33) JPLAN,ECIN(JE),SUMR_1(JPLAN,JE,JANGLE),SU
|
||||||
|
&MF_1(JPLAN,JE,JANGLE)
|
||||||
|
ELSE
|
||||||
|
WRITE(IUO2,34) JPLAN,THETA,PHI,ECIN(JE),SUMR_1(JPLAN,JE,
|
||||||
|
&JANGLE),SUMF_1(JPLAN,JE,JANGLE)
|
||||||
|
ENDIF
|
||||||
|
ELSE
|
||||||
|
IF((SPECTRO.NE.'APC').OR.(JEL.EQ.0)) THEN
|
||||||
|
WRITE(IUO2,43) JPLAN,ECIN(JE),SUMR_1(JPLAN,JE,JANGLE),SU
|
||||||
|
&MF_1(JPLAN,JE,JANGLE),SUMR_2(JPLAN,JE,JANGLE),SUMF_2(JPLAN,JE,JANG
|
||||||
|
&LE)
|
||||||
|
ELSE
|
||||||
|
WRITE(IUO2,44) JPLAN,THETA,PHI,ECIN(JE),SUMR_1(JPLAN,JE,
|
||||||
|
&JANGLE),SUMF_1(JPLAN,JE,JANGLE),SUMR_2(JPLAN,JE,JANGLE),SUMF_2(JPL
|
||||||
|
&AN,JE,JANGLE)
|
||||||
|
ENDIF
|
||||||
|
ENDIF
|
||||||
|
ENDDO
|
||||||
|
C
|
||||||
|
IF(IDICHR.EQ.0) THEN
|
||||||
|
IF((SPECTRO.NE.'APC').OR.(JEL.EQ.0)) THEN
|
||||||
|
WRITE(IUO2,33) JVOL,ECIN(JE),SUMR_1(NPLAN+1,JE,JANGLE),SUM
|
||||||
|
&F_1(NPLAN+1,JE,JANGLE)
|
||||||
|
WRITE(IUO2,33) JTOT,ECIN(JE),SUMR_1(NPLAN+2,JE,JANGLE),SUM
|
||||||
|
&F_1(NPLAN+2,JE,JANGLE)
|
||||||
|
ELSE
|
||||||
|
WRITE(IUO2,34) JVOL,THETA,PHI,ECIN(JE),SUMR_1(NPLAN+1,JE,J
|
||||||
|
&ANGLE),SUMF_1(NPLAN+1,JE,JANGLE)
|
||||||
|
WRITE(IUO2,34) JTOT,THETA,PHI,ECIN(JE),SUMR_1(NPLAN+2,JE,J
|
||||||
|
&ANGLE),SUMF_1(NPLAN+2,JE,JANGLE)
|
||||||
|
ENDIF
|
||||||
|
ELSE
|
||||||
|
IF((SPECTRO.NE.'APC').OR.(JEL.EQ.0)) THEN
|
||||||
|
WRITE(IUO2,43) JVOL,ECIN(JE),SUMR_1(NPLAN+1,JE,JANGLE),SUM
|
||||||
|
&F_1(NPLAN+1,JE,JANGLE),SUMR_2(NPLAN+1,JE,JANGLE),SUMF_2(NPLAN+1,JE
|
||||||
|
&,JANGLE)
|
||||||
|
WRITE(IUO2,43) JTOT,ECIN(JE),SUMR_1(NPLAN+2,JE,JANGLE),SUM
|
||||||
|
&F_1(NPLAN+2,JE,JANGLE),SUMR_2(NPLAN+2,JE,JANGLE),SUMF_2(NPLAN+2,JE
|
||||||
|
&,JANGLE)
|
||||||
|
ELSE
|
||||||
|
WRITE(IUO2,44) JVOL,THETA,PHI,ECIN(JE),SUMR_1(NPLAN+1,JE,J
|
||||||
|
&ANGLE),SUMF_1(NPLAN+1,JE,JANGLE),SUMR_2(NPLAN+1,JE,JANGLE),SUMF_2(
|
||||||
|
&NPLAN+1,JE,JANGLE)
|
||||||
|
WRITE(IUO2,44) JTOT,THETA,PHI,ECIN(JE),SUMR_1(NPLAN+2,JE,J
|
||||||
|
&ANGLE),SUMF_1(NPLAN+2,JE,JANGLE),SUMR_2(NPLAN+2,JE,JANGLE),SUMF_2(
|
||||||
|
&NPLAN+2,JE,JANGLE)
|
||||||
|
ENDIF
|
||||||
|
ENDIF
|
||||||
|
C
|
||||||
|
ENDDO
|
||||||
|
ENDDO
|
||||||
|
C
|
||||||
|
1 FORMAT(13X,I4)
|
||||||
|
2 FORMAT(15X,F8.3,3X,F8.3,3X,E12.6)
|
||||||
|
3 FORMAT(2X,I3,2X,F6.2,2X,F6.2,2X,F8.2,2X,E12.6,2X,E12.6)
|
||||||
|
4 FORMAT(//,8X,'<<<<<<<<<< DIMENSION OF THE ARRAYS TOO SMALL ','IN
|
||||||
|
&THE WEIGHT_SUM SUBROUTINE - INCREASE NPM TO ',I3,'>>>>>>>>>>')
|
||||||
|
5 FORMAT(6X,I1,1X,I3,3X,I3)
|
||||||
|
8 FORMAT(I4,2X,I4,2X,I4,2X,I3,2X,I1)
|
||||||
|
9 FORMAT(9(2X,I1),2X,I2)
|
||||||
|
13 FORMAT(2X,I3,2X,F6.2,2X,F6.2,2X,F8.2,2X,F6.2,2X,F6.2,2X,E12.6,2X,E
|
||||||
|
&12.6)
|
||||||
|
15 FORMAT(2X,A3,11X,A13)
|
||||||
|
16 FORMAT(2X,A3,A5,1X,A3,2X,A13)
|
||||||
|
18 FORMAT(I4,2X,I3,2X,I1)
|
||||||
|
19 FORMAT(4(2X,I1))
|
||||||
|
20 FORMAT(8(2X,I1))
|
||||||
|
21 FORMAT(I4,2X,I4,2X,I4,2X,I3,2X,I1)
|
||||||
|
23 FORMAT(2X,I3,2X,F6.2,2X,F6.2,2X,F8.2,2X,E12.6,2X,E12.6,2X,E12.6,2X
|
||||||
|
&,E12.6)
|
||||||
|
24 FORMAT(2X,I3,2X,F6.2,2X,F6.2,2X,F8.2,2X,F6.2,2X,F6.2,2X,E12.6,2X,E
|
||||||
|
&12.6,2X,E12.6,2X,E12.6)
|
||||||
|
33 FORMAT(2X,I3,2X,F8.2,2X,E12.6,2X,E12.6)
|
||||||
|
34 FORMAT(2X,I3,2X,F6.2,2X,F6.2,2X,F8.2,2X,E12.6,2X,E12.6)
|
||||||
|
43 FORMAT(2X,I3,2X,F8.2,2X,E12.6,2X,E12.6,2X,E12.6,2X,E12.6)
|
||||||
|
44 FORMAT(2X,I3,2X,F6.2,2X,F6.2,2X,F8.2,2X,E12.6,2X,E12.6,2X,E12.6,2X
|
||||||
|
&,E12.6)
|
||||||
|
C
|
||||||
|
RETURN
|
||||||
|
C
|
||||||
|
END
|
Loading…
Reference in New Issue