Open Watcom FORTRAN 77/32 Optimizing Compiler Version 1.9 2024/02/23 19:37:53 Portions Copyright (c) 1984-2002 Sybase, Inc. All Rights Reserved. Source code is available under the Sybase Open Watcom Public License. See http://www.openwatcom.org/ for details. Options: list,disk,errorfile,extensions,reference,warnings,hd,fpi,fp3,mf,6,terminal,dependency,gsfloats,libinfo,dt=256,descriptor, align 1 C ****************************************************************** 2 C ** ** 3 C ** Calculation of PAI ** 4 C ** for IBM FORTRAN77 Subset Compiler V1.00 ** 5 C ** ** 6 C ** K,Sudou.(C)1985-2002 ** 7 C ** ** 8 C ****************************************************************** 9 C 10 C ****************************************************** 11 C 12 C MAIN-PROGRAMM : MAIN ( FORT77PI ) 13 C 14 PROGRAM MAIN 15 C 16 INTEGER*4 A(252),B(252),C(10),CS,EF,I,ID,II,IP2,IS,ISS,J,K,KETA 17 & L,LD,M,MM,N,PAI(252),TE *EXT* CC-04 FORTRAN 77の標準セットにはない文字があります。 $ *EXT* TY-03 INTEGER文の長さ指定はFORTRAN 77の標準ではありません。 18 COMMON PAI,A,B,L,M,ISS 19 C 20 ****** 21 C OPEN(6,FILE=' ',STATUS='NEW') 22 WRITE(*,'(A\)') ' KETA(I5)=' 23 ****** $ *EXT* FM-01 FORMATの編集記述子を区分するものがありません。コンマを区分するために挿入しました。 *EXT* FM-08 $やのフォーマットコードはFORTRAN 77の標準ではありません。 24 LD=1 25 TE=10 26 EF=239 27 READ(*,200) KETA 28 200 FORMAT(I5) 29 IS=KETA/4+1 30 ISS=IS+1 31 CALL CLEAR(PAI,ISS) 32 CALL CLEAR(A,ISS) 33 CALL CLEAR(B,ISS) 34 L=10000 35 M=1 36 A(1)=16*5 37 ID=5*5 38 C 39 DO 10 I=1,10000,4 40 CALL DIVID(ID,A) 41 II=I 42 CALL DIVID(II,B) 43 CALL ADD 44 IP2=I+2 45 CALL DIVID(ID,A) 46 CALL DIVID(IP2,B) 47 CALL SUBTR 48 1 IF(A(M)) 10,2,10 49 2 M=M+1 50 IF(M-ISS) 1,1,11 51 10 CONTINUE 52 C 53 11 CALL CLEAR(A,ISS) 54 CALL CLEAR(B,ISS) 55 M=1 56 A(1)=4*239 57 ID=EF*EF 58 C 59 DO 20 I=1,10000,4 60 CALL DIVID(ID,A) 61 II=I 62 CALL DIVID(II,B) 63 CALL SUBTR 64 IP2=I+2 65 CALL DIVID(ID,A) 66 CALL DIVID(IP2,B) 67 CALL ADD 68 12 IF(A(M)) 20,13,20 69 13 M=M+1 70 IF(M-ISS) 12,12,21 71 20 CONTINUE 72 C 73 21 DO 99 MM=1,10 74 C(MM)=0 75 99 CONTINUE 76 C 77 DO 40 I=2,IS 78 N=PAI(I) 79 DO 30 J=1,4 80 K=N-N/TE*TE+LD 81 C(K)=C(K)+LD 82 N=N/TE 83 30 CONTINUE 84 40 CONTINUE 85 C 86 WRITE(6,110) KETA,PAI(1) 87 110 FORMAT(1H0,40X,30H***** CALCULATION OF PAI *****/1H0, 88 & 10X,I5,15H DECIMAL PLACES//I2,1H./) 89 CALL PRINT(IS) 90 WRITE(6,130) 91 130 FORMAT(1H0,3X,5HSUUJI,7X,5HDOSUU) 92 DO 50 I=1,10 93 J=I-1 94 WRITE(6,140) J,C(I) 95 140 FORMAT(1H ,6X,I2,7X,I5) 96 50 CONTINUE 97 C 98 STOP 99 END 100 101 C 102 C SUB-PROGRAMM : CLEAR 103 C *WRN* VA-05 KETALは定義されましたが使われていません。 *WRN* VA-05 CSは定義されましたが使われていません。 104 SUBROUTINE CLEAR(U,V) 105 C 106 INTEGER*4 I,U(252),V 107 C $ *EXT* TY-03 INTEGER文の長さ指定はFORTRAN 77の標準ではありません。 108 DO 10 I=1,V 109 U(I)=0 110 10 CONTINUE 111 C 112 RETURN 113 END 114 115 C 116 C SUB-PROGRAMM : DIVIDE 117 C 118 SUBROUTINE DIVID(NN,AB) 119 C 120 INTEGER*4 A(252),AB(252),B(252),I,ISS,L,M,NN,O,PAI(252),R $ *EXT* TY-03 INTEGER文の長さ指定はFORTRAN 77の標準ではありません。 121 COMMON PAI,A,B,L,M,ISS 122 C 123 R=0 124 DO 10 I=M,ISS 125 O=A(I)+R*L 126 AB(I)=O/NN 127 R=O-NN*AB(I) 128 10 CONTINUE 129 C 130 RETURN 131 END 132 133 C 134 C SUB-PROGRAMM : ADD 135 C 136 SUBROUTINE ADD 137 C 138 INTEGER*4 A(252),B(252),I,IC,ISS,J,L,M,PAI(252) $ *EXT* TY-03 INTEGER文の長さ指定はFORTRAN 77の標準ではありません。 139 COMMON PAI,A,B,L,M,ISS 140 C 141 IC=0 142 DO 10 I=M,ISS 143 J=M+ISS-I 144 PAI(J)=PAI(J)+B(J)+IC 145 IC=0 146 IF(PAI(J)-L) 10,1,1 147 1 PAI(J)=PAI(J)-L 148 IC=1 149 10 CONTINUE 150 C 151 RETURN 152 END 153 154 C 155 C SUB-PROGRAMM : SUBTRACT 156 C 157 SUBROUTINE SUBTR 158 C 159 INTEGER*4 A(252),B(252),I,IB,ISS,J,L,M,PAI(252) $ *EXT* TY-03 INTEGER文の長さ指定はFORTRAN 77の標準ではありません。 160 COMMON PAI,A,B,L,M,ISS 161 C 162 IB=0 163 DO 10 I=M,ISS 164 J=M+ISS-I 165 PAI(J)=PAI(J)-B(J)-IB 166 IB=0 167 IF(PAI(J)) 1,10,10 168 1 PAI(J)=PAI(J)+L 169 IB=1 170 10 CONTINUE 171 C 172 RETURN 173 END 174 175 C 176 C SUB-PROGRAMM : PRINT 177 C 178 SUBROUTINE PRINT(IS) 179 C 180 INTEGER*4 I,IS,J,K2,K3,K4,KO(100),L,PAI(252) $ *EXT* TY-03 INTEGER文の長さ指定はFORTRAN 77の標準ではありません。 181 COMMON PAI 182 C 183 I=2 184 20 DO 10 J=1,100,4 185 K2=PAI(I) 186 KO(J)=K2/1000 187 K3=MOD(K2,1000) 188 KO(J+1)=K3/100 189 K4=MOD(K3,100) 190 KO(J+2)=K4/10 191 KO(J+3)=MOD(K4,10) 192 I=I+1 193 10 CONTINUE 194 C 195 WRITE(6,120) (KO(L),L=1,100) 196 120 FORMAT(1H ,10(1X,10I1)) 197 IF(I.LE.IS) GO TO 20 198 C 199 RETURN 200 END *WRN* CM-06 名前のないCOMMONブロックが異なる大きさで定義されていました。 コードサイズ (バイト): 1420 エラー数: 0 コンパイル時間 (秒): 0 警告エラー数: 3 コンパイルされた文の数: 137 拡張仕様の使用数: 9