File indexing completed on 2025-08-05 08:15:43
0001
0002
0003
0004 FUNCTION LUCOMP(KF)
0005
0006
0007
0008 COMMON/LUDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4)
0009 SAVE /LUDAT2/
0010
0011
0012 LUCOMP=0
0013 KFA=IABS(KF)
0014 KFLA=MOD(KFA/1000,10)
0015 KFLB=MOD(KFA/100,10)
0016 KFLC=MOD(KFA/10,10)
0017 KFLS=MOD(KFA,10)
0018 KFLR=MOD(KFA/10000,10)
0019
0020
0021 IF(KFA.EQ.0.OR.KFA.GE.100000) THEN
0022 ELSEIF(KFA.LE.100) THEN
0023 LUCOMP=KFA
0024 IF(KF.LT.0.AND.KCHG(KFA,3).EQ.0) LUCOMP=0
0025 ELSEIF(KFLS.EQ.0) THEN
0026 IF(KF.EQ.130) LUCOMP=221
0027 IF(KF.EQ.310) LUCOMP=222
0028 IF(KFA.EQ.210) LUCOMP=281
0029 IF(KFA.EQ.2110) LUCOMP=282
0030 IF(KFA.EQ.2210) LUCOMP=283
0031
0032
0033 ELSEIF(KFA-10000*KFLR.LT.1000) THEN
0034 IF(KFLB.EQ.0.OR.KFLB.EQ.9.OR.KFLC.EQ.0.OR.KFLC.EQ.9) THEN
0035 ELSEIF(KFLB.LT.KFLC) THEN
0036 ELSEIF(KF.LT.0.AND.KFLB.EQ.KFLC) THEN
0037 ELSEIF(KFLB.EQ.KFLC) THEN
0038 IF(KFLR.EQ.0.AND.KFLS.EQ.1) THEN
0039 LUCOMP=110+KFLB
0040 ELSEIF(KFLR.EQ.0.AND.KFLS.EQ.3) THEN
0041 LUCOMP=130+KFLB
0042 ELSEIF(KFLR.EQ.1.AND.KFLS.EQ.3) THEN
0043 LUCOMP=150+KFLB
0044 ELSEIF(KFLR.EQ.1.AND.KFLS.EQ.1) THEN
0045 LUCOMP=170+KFLB
0046 ELSEIF(KFLR.EQ.2.AND.KFLS.EQ.3) THEN
0047 LUCOMP=190+KFLB
0048 ELSEIF(KFLR.EQ.0.AND.KFLS.EQ.5) THEN
0049 LUCOMP=210+KFLB
0050 ENDIF
0051 ELSEIF(KFLB.LE.5.AND.KFLC.LE.3) THEN
0052 IF(KFLR.EQ.0.AND.KFLS.EQ.1) THEN
0053 LUCOMP=100+((KFLB-1)*(KFLB-2))/2+KFLC
0054 ELSEIF(KFLR.EQ.0.AND.KFLS.EQ.3) THEN
0055 LUCOMP=120+((KFLB-1)*(KFLB-2))/2+KFLC
0056 ELSEIF(KFLR.EQ.1.AND.KFLS.EQ.3) THEN
0057 LUCOMP=140+((KFLB-1)*(KFLB-2))/2+KFLC
0058 ELSEIF(KFLR.EQ.1.AND.KFLS.EQ.1) THEN
0059 LUCOMP=160+((KFLB-1)*(KFLB-2))/2+KFLC
0060 ELSEIF(KFLR.EQ.2.AND.KFLS.EQ.3) THEN
0061 LUCOMP=180+((KFLB-1)*(KFLB-2))/2+KFLC
0062 ELSEIF(KFLR.EQ.0.AND.KFLS.EQ.5) THEN
0063 LUCOMP=200+((KFLB-1)*(KFLB-2))/2+KFLC
0064 ENDIF
0065 ELSEIF((KFLS.EQ.1.AND.KFLR.LE.1).OR.(KFLS.EQ.3.AND.KFLR.LE.2).
0066 & OR.(KFLS.EQ.5.AND.KFLR.EQ.0)) THEN
0067 LUCOMP=80+KFLB
0068 ENDIF
0069
0070
0071 ELSEIF((KFLR.EQ.0.OR.KFLR.EQ.1).AND.KFLC.EQ.0) THEN
0072 IF(KFLS.NE.1.AND.KFLS.NE.3) THEN
0073 ELSEIF(KFLA.EQ.9.OR.KFLB.EQ.0.OR.KFLB.EQ.9) THEN
0074 ELSEIF(KFLA.LT.KFLB) THEN
0075 ELSEIF(KFLS.EQ.1.AND.KFLA.EQ.KFLB) THEN
0076 ELSE
0077 LUCOMP=90
0078 ENDIF
0079
0080
0081 ELSEIF(KFLR.EQ.0.AND.KFLS.EQ.2) THEN
0082 IF(KFLA.EQ.9.OR.KFLB.EQ.0.OR.KFLB.EQ.9.OR.KFLC.EQ.9) THEN
0083 ELSEIF(KFLA.LE.KFLC.OR.KFLA.LT.KFLB) THEN
0084 ELSEIF(KFLA.GE.6.OR.KFLB.GE.4.OR.KFLC.GE.4) THEN
0085 LUCOMP=80+KFLA
0086 ELSEIF(KFLB.LT.KFLC) THEN
0087 LUCOMP=300+((KFLA+1)*KFLA*(KFLA-1))/6+(KFLC*(KFLC-1))/2+KFLB
0088 ELSE
0089 LUCOMP=330+((KFLA+1)*KFLA*(KFLA-1))/6+(KFLB*(KFLB-1))/2+KFLC
0090 ENDIF
0091
0092
0093 ELSEIF(KFLR.EQ.0.AND.KFLS.EQ.4) THEN
0094 IF(KFLA.EQ.9.OR.KFLB.EQ.0.OR.KFLB.EQ.9.OR.KFLC.EQ.9) THEN
0095 ELSEIF(KFLA.LT.KFLB.OR.KFLB.LT.KFLC) THEN
0096 ELSEIF(KFLA.GE.6.OR.KFLB.GE.4) THEN
0097 LUCOMP=80+KFLA
0098 ELSE
0099 LUCOMP=360+((KFLA+1)*KFLA*(KFLA-1))/6+(KFLB*(KFLB-1))/2+KFLC
0100 ENDIF
0101 ENDIF
0102
0103 RETURN
0104 END