C ASEA.FTN - CUSTOMER SUPPLIED FLOATING PT BENCHMARK C DIMENSION TO(250),POW(250),MINJ(24),MAXJ(24),NTO(500) EQUIVALENCE (NTO,TO) C DIMENSION POW(14400),TO(14400),MINJ(24),MAXJ(24) COMMON/INTSOR/ SUMT,RECT,KMAX C C COMMON WHICH REFERENCES LOGICAL UNIT ASSIGNMENTS C COMMON /LUNS/ ICRD,ILPT,IKBD,ITTY C DATA MINJ(1), 1 MINJ(2),MINJ(3),MINJ(4),MINJ(5),MINJ(6),MINJ(7),MINJ(8), 2 MINJ(9),MINJ(10),MINJ(11),MINJ(12),MINJ(13),MINJ(14), 3 MINJ(15),MINJ(16),MINJ(17),MINJ(18),MINJ(19),MINJ(20),MINJ(21), 4 MINJ(22),MINJ(23),MINJ(24)/9,9,5,5,3,3,3,3,1,1,1,1,1,1,1,1,3,3, 5 3,3,5,5,9,9/ DATA MAXJ(1), 1 MAXJ(2),MAXJ(3),MAXJ(4),MAXJ(5),MAXJ(6),MAXJ(7),MAXJ(8), 2 MAXJ(9),MAXJ(10),MAXJ(11),MAXJ(12),MAXJ(13),MAXJ(14), 3 MAXJ(15),MAXJ(16),MAXJ(17),MAXJ(18),MAXJ(19),MAXJ(20),MAXJ(21), 4 MAXJ(22),MAXJ(23),MAXJ(24)/16,16,20,20,22,22,22,22,24,24,24,24, 5 24,24,24,24,22,22,22,22,20,20,16,16/ C LFNK(I,J)=KMAX*(JMAX*(I-1)+J-1) C write(itty,*) 'BENCHMARK - ASEA' C C ***** BEGINNING OF TIMED INTERVAL ***** CALL TIMRB C ***** ***** C NPNTS=11200 NSMAX=20 GAM=0.85 NEND=14400 NOLL=1 P12F=0.1571 IMAX=24 JMAX=24 KMAX=25 JMXKMX=0 C JMXKMX=JMAX*KMAX KMAXT=0 RFCT=1. NS=1 DO 57 LP=1,NEND L=MOD(LP,500) IF(L)58,58,57 58 L=1 57 NTO(L)=0 DO 60 I=1,IMAX MINJI=MINJ(I) MAXJI=MAXJ(I) LP=KMAX*(JMAX*(I-1)+MINJI-1) DO 60 J=MINJI,MAXJI LP=MOD(LP,225) DO 60 K=1,KMAX LP=LP+1 60 TO (LP)=1. 100 SUMT=0 DO 200 I=1,IMAX MINJI=MINJ(I) MAXJI=MAXJ(I) L =KMAX*(JMAX*(I-1)+MINJI-1) DO 200 J=MINJI,MAXJI L=MOD(L,225) LP=L LS=LP-KMAXT C LS=LP-KMAX LN=LP+KMAX LW=LP-JMXKMX LE=LP+JMXKMX LU=LP+1 LD=LP-1 IF(I.EQ.IMAX) LE=NOLL IF(J.EQ.MINJI) LS=NOLL IF(J.EQ.MAXJI) LN=NOLL IF(I.EQ.1) LW=NOLL K=0 120 K=K+1 IF (K-KMAX) 140,130,180 130 KU=NOLL GO TO 150 140 KU=LU+K 150 KD=LD+K IF(K.EQ.1) KD=NOLL LW=LW+1 LE=LE+1 LN=LN+1 LS=LS+1 LP=LP+1 POW(LP)=0.2*(TO(LE)+TO(LW)+TO(LN)+TO(LS) + RECT*(TO(KD)+TO(KU))) SUMT=SUMT+POW(LP) GO TO 120 180 L=L+KMAX 200 CONTINUE TN=NPNTS TNORM=TN/SUMT FNS=NS FNSMAX=NSMAX IF (MOD(NS,2)) 12,12,10 10 FNS=(FNS+1.)/2. GO TO 14 12 FNS=FNSMAX+1.-FNS/2. 14 OM=1.-GAM*(1.+COS(P12F*(2.*FNS-1.))) CCC1=TN/(SUMT+OM*IN) CCC2=CCC1*OM DO 300 I=1,IMAX MINJI=MINJ(I) MAXJI=MAXJ(I) L =KMAX*(JMAX*(I-1)+MINJI-1) C L=LFNK(I,MINJI) L =MOD(L ,225) DO 300 J=MINJI,MAXJI LPSTA=L+1+KMAXT*(J-MINJI) C LPSTA=L+1+KMAX*(J-MINJI) LPEN=LPSTA+KMAX-1 DO 220 LP=LPSTA,LPEN TO(LP)=CCC1*POW(LP)+CCC2*TO(LP) 220 CONTINUE 300 CONTINUE NS=NS+1 IF(NS.LE.NSMAX) GO TO 100 C C ***** END OF TIMED INTERVAL ***** CALL TIMRE C ***** ***** C STOP END