File indexing completed on 2025-08-05 08:15:45
0001
0002
0003
0004 SUBROUTINE PYHISPLI(KF,KFLIN,KFLCH,KFLSP)
0005
0006
0007
0008 DIMENSION KFL(3)
0009
0010
0011 KFA=IABS(KF)
0012 KFS=ISIGN(1,KF)
0013 KFL(1)=MOD(KFA/1000,10)
0014 KFL(2)=MOD(KFA/100,10)
0015 KFL(3)=MOD(KFA/10,10)
0016 KFLR=KFLIN*KFS
0017 KFLCH=0
0018
0019
0020 IF(KFL(1).EQ.0) THEN
0021 KFL(2)=KFL(2)*(-1)**KFL(2)
0022 KFL(3)=-KFL(3)*(-1)**IABS(KFL(2))
0023 IF(KFLR.EQ.KFL(2)) THEN
0024 KFLSP=KFL(3)
0025 ELSEIF(KFLR.EQ.KFL(3)) THEN
0026 KFLSP=KFL(2)
0027 ELSEIF(IABS(KFLR).EQ.21.AND.RLU(0).GT.0.5) THEN
0028 KFLSP=KFL(2)
0029 KFLCH=KFL(3)
0030 ELSEIF(IABS(KFLR).EQ.21) THEN
0031 KFLSP=KFL(3)
0032 KFLCH=KFL(2)
0033 ELSEIF(KFLR*KFL(2).GT.0) THEN
0034 CALL LUKFDI(-KFLR,KFL(2),KFDUMP,KFLCH)
0035 KFLSP=KFL(3)
0036 ELSE
0037 CALL LUKFDI(-KFLR,KFL(3),KFDUMP,KFLCH)
0038 KFLSP=KFL(2)
0039 ENDIF
0040
0041
0042 ELSE
0043 NAGR=0
0044 DO 100 J=1,3
0045 100 IF(KFLR.EQ.KFL(J)) NAGR=NAGR+1
0046 IF(NAGR.GE.1) THEN
0047 RAGR=0.00001+(NAGR-0.00002)*RLU(0)
0048 IAGR=0
0049 DO 110 J=1,3
0050 IF(KFLR.EQ.KFL(J)) RAGR=RAGR-1.
0051 110 IF(IAGR.EQ.0.AND.RAGR.LE.0.) IAGR=J
0052 ELSE
0053 IAGR=1.00001+2.99998*RLU(0)
0054 ENDIF
0055 ID1=1
0056 IF(IAGR.EQ.1) ID1=2
0057 IF(IAGR.EQ.1.AND.KFL(3).GT.KFL(2)) ID1=3
0058 ID2=6-IAGR-ID1
0059 KSP=3
0060 IF(MOD(KFA,10).EQ.2.AND.KFL(1).EQ.KFL(2)) THEN
0061 IF(IAGR.NE.3.AND.RLU(0).GT.0.25) KSP=1
0062 ELSEIF(MOD(KFA,10).EQ.2.AND.KFL(2).GE.KFL(3)) THEN
0063 IF(IAGR.NE.1.AND.RLU(0).GT.0.25) KSP=1
0064 ELSEIF(MOD(KFA,10).EQ.2) THEN
0065 IF(IAGR.EQ.1) KSP=1
0066 IF(IAGR.NE.1.AND.RLU(0).GT.0.75) KSP=1
0067 ENDIF
0068 KFLSP=1000*KFL(ID1)+100*KFL(ID2)+KSP
0069 IF(KFLIN.EQ.21) THEN
0070 KFLCH=KFL(IAGR)
0071 ELSEIF(NAGR.EQ.0.AND.KFLR.GT.0) THEN
0072 CALL LUKFDI(-KFLR,KFL(IAGR),KFDUMP,KFLCH)
0073 ELSEIF(NAGR.EQ.0) THEN
0074 CALL LUKFDI(10000+KFLSP,-KFLR,KFDUMP,KFLCH)
0075 KFLSP=KFL(IAGR)
0076 ENDIF
0077 ENDIF
0078
0079
0080 KFLCH=KFLCH*KFS
0081 KFLSP=KFLSP*KFS
0082
0083 RETURN
0084 END