1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN DEC 02, 1993 09:42:46 PAGE: 1 0REQUESTED OPTIONS (EXECUTE): OPT(2) XREF SXM 0OPTIONS IN EFFECT: NOLIST NOMAP XREF GOSTMT NODECK SOURCE TERM OBJECT FIXED TRMFLG SRCFLG NOSYM NORENT SDUMP(ISN) SXM NOVECTOR IL(DIM) NOTEST SC(*) NODC NOEC NOEMODE NOICA NODIRECTIVE NODBCS NOSAA NOPARALLEL NOSAVE NOTABS OPT(2) LANGLVL(77) NOFIPS FLAG(I) AUTODBL(NONE) LINECOUNT(60) CHARLEN(500) 0 IF DO ISN *....*...1.........2.........3.........4.........5.........6.........7.*.......8 0 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C C C PROGRAM IMSEGP.DET.AUTO C C VERSION 1.6 17-SEP-82 C C C C C C PROGRAM IMSEGP.DET.AUTO (IMPAC:SEGPDETA) WAS DEVELOPED C C from Program IMSEGP.DET. C C THE "IMSEGP" PROGRAMS ARE FOR SEGMENTING MULTI-CHANNEL C DIGITAL IMAGES. (FOR SINGLE-CHANNEL DATA THE "IMSEG1" PROGRAMS C MAY BE USED.) C IMSEGP.COMMON USES DISTANCE IN THE METRIC OF THE ESTIMATED C COMMON COVARIANCE MATRIX. IMSEG.DET USES DIFFERENT COVARIANCE C MATRICES, WITH ADJUSTMENT BY THE DETERMINANTS, I.E., IT USES THE C C the estimated log likelihood for the Gaussian model with C C different covariance matrices. C C C C AUTOMATIC MODE: TRIES A RANGE OF NUMBERS OF CLASSES, WITH C C AUTOMATIC SETTING OF INITIAL MEANS, EQUALLY SPACED THROUGH THE C C RANGE OF EACH VARIABLE. C C C C C C PROGRAMMED BY: C C DR. STANLEY L. SCLOVE 312/996-2681 C C DEPARTMENT OF QUANTITATIVE METHODS 312/996-2676 C C COLLEGE OF BUSINESS ADMINISTRATION C C UNIVERSITY OF ILLINOIS AT CHICAGO C C BOX 4348, CHICAGO, IL 60680 C C C C RESEARCH SUPPORTED IN PART BY: C C C C ONR CONTRACT N00014-80-C-0408, TASK NR042-443 C C ARO CONTRACT DAAG29-82-K-0155 C C C C RESTRICTIONS (CAN BE MODIFIED): C C NR, NUMBER OF ROWS OF ARRAY, AT MOST 256; C C NC, NUMBER OF COLUMNS OF ARRAY, AT MOST 256; C C IP, NUMBER OF CHANNELS, AT MOST 20; C C K, NUMBER OF CLASSES, AT MOST 29; C C ITER, MAXIMUM NUMBER OF ITERATIONS, 20. C C C C SUBROUTINE(S) CALLED: C C MATEQ, WHICH CALLS MATDT C C C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN DEC 02, 1993 09:42:46 NAME:MAIN# PAGE: 2 0 IF DO ISN *....*...1.........2.........3.........4.........5.........6.........7.*.......8 0 1 DIMENSION X( 56, 56,10),SUM(29, 4) 2 DIMENSION D(29),ICLUS( 56, 56) C 3 DIMENSION IOTA( 56),JOTA(29) C 4 DIMENSION TITLE(18) 5 DIMENSION NG(29),XMEAN(29, 4) 6 DIMENSION FMT(18) 7 DIMENSION SS(29, 4, 4),SSD(29, 4, 4) 8 DIMENSION WGSS( 4, 4) 9 DIMENSION VARHAT( 4, 4),WGMS( 4, 4) 10 DIMENSION ICLSOL( 56, 56) 11 DIMENSION XMIN( 4),XMAX( 4) C CHANGE NO. OF CHANNELS FROM 4 TO 20 C AND NO. OF ROWS AND COLUMNS FROM 56 TO 256 C IN DIMENSION STATEMENTS WHEN ALLOWABLE REGION IS INCREASED. 12 DIMENSION IV(20,20) 13 DIMENSION P(20,20) C 14 DIMENSION A(20,20) C 15 DIMENSION ET(29) 16 DIMENSION PG(29,20,20) C 17 DIMENSION NT(29,29,29),IRSUM(29,29),TP(29,29,29) 18 DIMENSION PROB(29) C C 19 DOUBLE PRECISION SS,SUM 20 DOUBLE PRECISION WGSS,SSD 21 DOUBLE PRECISION VARHAT 22 DOUBLE PRECISION P 23 DOUBLE PRECISION DET 24 DOUBLE PRECISION D 25 DOUBLE PRECISION XMEAN 26 DOUBLE PRECISION TEMPIV,TEMPJV 27 DOUBLE PRECISION F 28 DOUBLE PRECISION CF C 29 DOUBLE PRECISION A C 30 DOUBLE PRECISION ET 31 DOUBLE PRECISION PG 32 DOUBLE PRECISION TP,PROB C C IV IS A WORK ARRAY FOR SUBROUTINE MATEQ. C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C C C CONTROL CARDS: C C C C DATASET TITLE C C NUMBER OF ROWS, NR, IN FORMAT(3X,I3) C 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN DEC 02, 1993 09:42:46 NAME:MAIN# PAGE: 3 0 IF DO ISN *....*...1.........2.........3.........4.........5.........6.........7.*.......8 0 C NUMBER OF COLUMNS, NC, IN FORMAT(3X,I3) C C NUMBER OF CHANNELS, IP, IN FORMAT (3X,I2) C C FMT, IN FORMAT (18A4), E.G., (1X,F4.1) C C "FMT" WILL ALSO BE USED FOR OUTPUT: ALLOW AT LEAST ONE BLANK C C AT THE BEGINNING FOR CARRIAGE CONTROL. C C DATA, ONE NUMBER AT A TIME, IN FORMAT SPECIFIED BY FMT C C DATA IS INDEXED BY CHANNEL, ROW, AND COLUMN. C C COLUMN CHANGES FIRST, THEN ROW, THEN CHANNEL. C C C C K, NUMBER OF CLASSES, IN FORMAT (2X,I2) C C K INITIAL MEANS, IN FORMAT SPECIFIED BY FMT C C INITIAL MEANS ARE INDEXED BY CLASS AND CHANNEL. C C CHANNEL CHANGES FIRST, THEN CLASS. C C C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C 33 READ (5,28000) TITLE C C WRITE PROGRAM INFORMATION. 34 WRITE (6,17000) 35 WRITE (6,53000) 36 WRITE (6,35000) TITLE C C READ NUMBERS OF ROWS AND COLUMNS, NR AND NC. 37 READ (5,16000) NR 38 READ (5,16000) NC 39 WRITE (6,33000) NR 40 WRITE (6,34000) NC C READ NUMBER OF CHANNELS (I.E., VARIABLES), IP. 41 READ (5,29000) IP 42 WRITE (6,14000) IP C C READ DATA FORMAT. 43 READ (5,28000) FMT C C READ DATA. 44 DO 300 ICHAN = 1,IP 1 45 DO 300 I = 1,NR 2 46 DO 300 J = 1,NC 3 47 READ (5,FMT) X(I,J,ICHAN) 3 48 IF (I .EQ. 1 .AND. J .EQ. 1) GO TO 100 3 49 GO TO 200 3 50 100 CONTINUE 3 51 DO 200 IVAR = 1,IP 4 52 XMAX(IVAR) = X(1,1,IVAR) 4 53 XMIN(IVAR) = X(1,1,IVAR) 4 54 200 CONTINUE 3 55 DO 300 IVAR = 1,IP 4 56 IF (X(I,J,IVAR) .LT. XMIN(IVAR)) XMIN(IVAR)= 4 X X(I,J,IVAR) 4 58 IF (X(I,J,IVAR) .GT. XMAX(IVAR)) XMAX(IVAR)= 4 X X(I,J,IVAR) 4 60 300 CONTINUE 61 WRITE (6,54000) 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN DEC 02, 1993 09:42:46 NAME:MAIN# PAGE: 4 0 IF DO ISN *....*...1.........2.........3.........4.........5.........6.........7.*.......8 0 62 WRITE (6,FMT) (XMIN(IVAR),IVAR=1,IP) 63 WRITE (6,55000) 64 WRITE (6,FMT) (XMAX(IVAR),IVAR=1,IP) C C READ KL AND KU, THE MIN AND MAX NUMBER OF CLASSES TO BE TRIED. 65 READ (5,15000) KL 66 READ (5,15000) KU 67 WRITE (6,18000) KL,KU C C SET CONSTANTS. C 68 PI = 3.1415927 C 69 N = NR*NC 70 XN = N 71 DO 400 INTEG=1,NC 1 72 IOTA(INTEG) = INTEG 1 73 400 CONTINUE C 74 DO 6500 K = KL,KU C C C COMPUTE INITIAL MEANS: 1 75 DO 500 IG=1,K 2 76 DO 500 IVAR = 1,IP 3 77 XMEAN(IG,IVAR) = XMIN(IVAR) + IG*(XMAX(IVAR)- 3 X XMIN(IVAR))/(K+1) 3 78 500 CONTINUE C 1 79 WRITE (6,19000) K C WRITE INITIAL MEANS C 1 80 DO 600 IG = 1,K 2 81 WRITE (6,20000) IG,(XMEAN(IG,IVAR),IVAR=1,IP) 2 82 600 CONTINUE C C SET CONSTANTS FOR THIS VALUE OF K. C 1 83 DO 700 J = 1,K 2 84 JOTA(J) = J 2 85 700 CONTINUE C C PARAMETERS FOR MODEL WITH COMMON COVARIANCE MATRIX ARE C K MEAN VECTORS AND ONE COVARIANCE MATRIX. 1 86 NOPARM = K*IP + IP*(IP+1)/2 C PARAMETERS FOR MODEL WITH DIFFERENT COVARIANCE MATRICES ARE C K MEAN VECTORS AND K COVARIANCE MATRICES. 1 87 NPRMDF = K*IP + K*IP*(IP+1)/2 C C NON-DISTRIBUTIONAL PARAMETERS: C K**2-BY-K TRANSITION PROB. MATRIX C GIVES (K**2)(K-1) FREE TRANSITION PROBABILITIES C 1 88 NOPARM = NOPARM + (K**2)*(K-1) 1 89 NPRMDF = NPRMDF + (K**2)*(K-1) C 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN DEC 02, 1993 09:42:46 NAME:MAIN# PAGE: 5 0 IF DO ISN *....*...1.........2.........3.........4.........5.........6.........7.*.......8 0 C C FOR FIRST ITERATION, MARGINAL DISTRIBUTION OF LABELS, PROB, C IS TAKEN TO BE UNIFORM. C 1 90 DO 800 IG=1,K 2 91 800 PROB(IG) = 1.0/K C C 1 92 ITER = 1 C ITERATIONS BEGIN HERE C 1 93 900 CONTINUE 1 94 IF (ITER .EQ. 1) GO TO 1100 1 95 DO 1000 I = 1,NR 2 96 DO 1000 J = 1,NC 3 97 ICLSOL(I,J) = ICLUS(I,J) 3 98 1000 CONTINUE C SAVE PREVIOUS VALUE OF -2 LOG MAX LIKELIHOOD: 1 99 XMN20L = XMN2LL 1 100 1100 CONTINUE C C COMMENCE DISTANCE COMPUTATIONS. C 1 101 DO 2400 I = 1,NR 2 102 DO 2400 J = 1,NC C INITIALIZE DISTANCES (TO BE ACCUMULATED) AT ZERO. 3 103 DO 1200 L = 1,K 4 104 D(L) = 0.0 4 105 1200 CONTINUE C FOR FIRST ITERATION, EUCLIDEAN DISTANCE IS USED BECAUSE C NO COVARIANCE MATRIX IS YET AVAILABLE. AFTER THE FIRST C ITERATION, DISTANCE WILL BE TAKEN IN THE METRIC OF THE C GROUP COVARIANCE MATRIX. C 3 106 IF (ITER .GT. 1) GO TO 1400 3 107 DO 1300 L=1,K 4 108 DO 1300 IVAR=1,IP 5 109 D(L) = D(L) + ( XMEAN(L,IVAR) - X(I,J, 5 X IVAR) )**2 5 110 1300 CONTINUE 3 111 GO TO 1700 3 112 1400 CONTINUE 3 113 DO 1600 L=1,K 4 114 DO 1500 IVAR=1,IP 5 115 TEMPIV = XMEAN(L,IVAR) - X(I,J,IVAR) 5 116 DO 1500 JV=1,IP 6 117 TEMPJV = XMEAN(L,JV) - X(I,J,JV) C 6 118 D(L) = D(L) + TEMPIV*PG(L,IVAR,JV) 6 X *TEMPJV C 6 119 1500 CONTINUE C 4 120 1600 CONTINUE 3 121 1700 CONTINUE C 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN DEC 02, 1993 09:42:46 NAME:MAIN# PAGE: 6 0 IF DO ISN *....*...1.........2.........3.........4.........5.........6.........7.*.......8 0 3 122 DO 2200 L = 1,K C FOR FIRST ITERATION, CLASSIFICATION IS SIMPLY BY C MINIMUM DISTANCE. OTHERWISE, THE TRANSITION C PROBABILITIES AND DETERMINANTS ENTER: 4 123 IF (ITER .EQ. 1) GO TO 2200 C UP TO NOW, D(L) IS (SQUARED) DISTANCE C IT MUST NOW BE MODIFIED TO PROBABILITY, C FOR MULTIPLICATION BY THE TRANSITION PROBABILITIES. C ADD DETERMINANT OF COVARIANCE MATRIX TO DISTANCE: 4 124 D(L) = D(L) + ET(L) 4 125 ARG = -D(L)/2.0 4 126 IF (ARG .LT. -180.2) GO TO 1800 4 127 GO TO 1900 4 128 1800 D(L) = 0.0 4 129 GO TO 2000 4 130 1900 CONTINUE C C MOVE FROM LOG PROB SCALE TO PROB SCALE: 4 131 D(L) = EXP(ARG) C D(L) IS NO LONGER A DISTANCE: C IT IS (PROPORTIONAL TO) THE BELONGING PROBABILITY 4 132 2000 CONTINUE C 4 133 IF (I .EQ. 1 .OR. J .EQ. 1) GO TO 2100 4 134 IG1 = ICLUS(I,J-1) 4 135 IG2 = ICLUS(I-1,J) 4 136 D(L) = -TP(IG1,IG2,L)*D(L) 4 137 GO TO 2200 4 138 2100 CONTINUE C CLASSIFY BOUNDARY OBSERVATIONS 4 139 D(L) = -D(L)*PROB(L) 4 140 2200 CONTINUE C 3 141 F = D(1) 3 142 ICLUS(I,J) = 1 3 143 DO 2400 L = 2,K 4 144 IF ( D(L) - F ) 2300,2400,2400 4 145 2300 F = D(L) 4 146 ICLUS(I,J) = L 4 147 2400 CONTINUE 1 148 WRITE (6,10000) C 1 149 WRITE (6,11000) (IOTA(J), J=1,NC) 1 150 DO 2500 I = 1,NR 2 151 WRITE (6,12000) I, (ICLUS(I,J), J=1,NC) 2 152 2500 CONTINUE 1 153 DO 2600 IG = 1,K 2 154 NG(IG) = 0 2 155 DO 2600 IVAR = 1,IP 3 156 SUM(IG,IVAR) = 0.0 3 157 DO 2600 JV = 1,IP 4 158 SS(IG,IVAR,JV) = 0.0 4 159 SSD(IG,IVAR,JV) = 0.0 4 160 2600 CONTINUE 1 161 DO 2700 I = 1,NR 2 162 DO 2700 J = 1,NC 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN DEC 02, 1993 09:42:46 NAME:MAIN# PAGE: 7 0 IF DO ISN *....*...1.........2.........3.........4.........5.........6.........7.*.......8 0 3 163 IGROUP = ICLUS(I,J) 3 164 NG(IGROUP) = NG(IGROUP) + 1 3 165 DO 2700 IVAR = 1,IP 4 166 SUM(IGROUP,IVAR) = SUM(IGROUP,IVAR) + X(I,J, 4 X IVAR) 4 167 DO 2700 JV = 1,IP 5 168 SS(IGROUP,IVAR,JV) = SS(IGROUP,IVAR,JV) + 5 X X(I,J,IVAR)*X(I,J,JV) 5 169 2700 CONTINUE C 1 170 WRITE (6,27000) (NG(IG),IG=1,K) C 1 171 DO 2800 IVAR = 1,IP 2 172 DO 2800 JV = 1,IP 3 173 WGSS(IVAR,JV) = 0.0 3 174 2800 CONTINUE C C 1 175 DO 3100 IG = 1,K 2 176 IF (NG(IG) .EQ. 0) GO TO 2900 2 177 GO TO 3000 2 178 2900 WRITE (6,60000) IG 2 179 GO TO 6600 2 180 3000 CONTINUE 2 181 DO 3100 IVAR = 1,IP C COMPUTE MEAN VECTORS 3 182 XMEAN(IG,IVAR) = SUM(IG,IVAR)/NG(IG) C COMPUTE SUM-OF-PRODUCTS MATRICES 3 183 DO 3100 JV = 1,IP 4 184 CF = SUM(IG,IVAR)*SUM(IG,JV)/NG(IG) 4 185 SSD(IG,IVAR,JV) = SS(IG,IVAR,JV) - CF 4 186 3100 CONTINUE C C C C POOL: C 1 187 DO 3200 IG = 1,K 2 188 DO 3200 IVAR = 1,IP 3 189 DO 3200 JV = 1,IP 4 190 WGSS(IVAR,JV) = WGSS(IVAR,JV) + SSD(IG,IVAR, 4 X JV) 4 191 3200 CONTINUE C C C COMPUTE VARHAT, MLE OF COMMON COVARIANCE MATRIX: 1 192 DO 3300 IVAR = 1,IP 2 193 DO 3300 JV = 1,IP 3 194 VARHAT(IVAR,JV) = WGSS(IVAR,JV)/N 3 195 3300 CONTINUE C COMPUTE DET(VARHAT) 1 196 IDET = 1 1 197 NRS1 = 0 1 198 DO 3400 IVAR=1,IP 2 199 DO 3400 JV = 1,IP 3 200 A(IVAR,JV) = VARHAT(IVAR,JV) 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN DEC 02, 1993 09:42:46 NAME:MAIN# PAGE: 8 0 IF DO ISN *....*...1.........2.........3.........4.........5.........6.........7.*.......8 0 3 201 3400 CONTINUE 1 202 CALL MATEQ(A,IP,20,JFLG,DET,IDET,IV,NRS1,P,20) C C GENERAL FORM OF CALL IS: C CALL MATEQ(A,M,N,JFLG,DET,IDET,IV,NRS1,P,LL) C SEE SUBROUTINE LISTING FOR FULLER EXPLANATION. C DET(VARHAT) = DET*10.0**IDET C (ACTUAL DET. = DET*10**IDET) C 1 203 IF (JFLG .GT. 0) WRITE (6,43000) JFLG C 1 205 XIDET = IDET 1 206 XLGDET = DLOG(DET) + XIDET*ALOG(10.0) 1 207 XMN2LL = N*(IP*ALOG(2.0*PI) + IP + XLGDET) C C 1 208 IF (ITER .EQ. 1) GO TO 3600 C C COMPARE NEW SEGMENTATION WITH OLD C 1 209 DO 3500 I = 1,NR 2 210 DO 3500 J = 1,NC 3 211 IF (ICLUS(I,J) .EQ. ICLSOL(I,J)) GO TO 3500 3 212 GO TO 3600 3 213 3500 CONTINUE 1 214 GO TO 6000 1 215 3600 CONTINUE C C IF NEW SEGMENTATION DIFFERS FROM OLD, C COMPUTE AND WRITE NEW STATISTICS C 1 216 DO 3700 IG = 1,K 2 217 WRITE (6,26000) IG, (XMEAN(IG,IVAR),IVAR=1,IP) 2 218 3700 CONTINUE C C COMPUTE TRANSITION PROBABILITY MATRIX: C 1 219 DO 3800 I1 = 1,K 2 220 DO 3800 I2 = 1,K 3 221 DO 3800 J = 1,K 4 222 NT(I1,I2,J) = 0 4 223 3800 CONTINUE 1 224 DO 3900 I = 2,NR 2 225 DO 3900 J = 2,NC 3 226 IM1 = I-1 3 227 JM1 = J-1 3 228 INORTH = ICLUS(IM1,J) 3 229 IWEST = ICLUS(I,JM1) 3 230 IY = ICLUS(I,J) 3 231 NT(IWEST,INORTH,IY) = NT(IWEST,INORTH,IY) + 1 3 232 3900 CONTINUE 1 233 DO 4000 I1 = 1,K 2 234 DO 4000 I2 = 1,K 3 235 IRSUM(I1,I2) = 0 3 236 4000 CONTINUE 1 237 DO 4100 I1 = 1,K 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN DEC 02, 1993 09:42:46 NAME:MAIN# PAGE: 9 0 IF DO ISN *....*...1.........2.........3.........4.........5.........6.........7.*.......8 0 2 238 DO 4100 I2 = 1,K 3 239 DO 4100 J = 1,K 4 240 IRSUM(I1,I2) = IRSUM(I1,I2) + NT(I1,I2,J) 4 241 4100 CONTINUE 1 242 DO 4400 I1=1,K 2 243 DO 4400 I2=1,K 3 244 XDENOM=IRSUM(I1,I2) 3 245 IF (XDENOM .EQ. 0.0) GO TO 4200 3 246 GO TO 4300 3 247 4200 XDENOM = K 3 248 4300 CONTINUE C 3 249 DO 4400 J = 1,K 4 250 XNUM = NT(I1,I2,J) C IF THERE ARE NO TRANSITIONS FROM (I1,I2), THEN TP(I1,I2,J) C IS SET EQUAL TO ZERO, FOR ALL J = 1,2,...,K. C 4 251 4400 TP(I1,I2,J) = XNUM/XDENOM 1 252 4500 CONTINUE C C COMPUTE MARGINAL DISTRIBUTION OF LABELS: 1 253 DO 4600 IG = 1,K 2 254 PROB(IG) = NG(IG) 2 255 PROB(IG) = PROB(IG)/N 2 256 4600 CONTINUE C 1 257 TRANS = 0.0 1 258 DO 4700 I1=1,K 2 259 DO 4700 I2=1,K 3 260 DO 4700 J=1,K 4 261 ITEST = NT(I1,I2,J) 4 262 IF (ITEST .EQ. 0) GO TO 4700 4 263 IF (TP(I1,I2,J) .EQ. 0.) GO TO 4700 4 264 TRANS = TRANS + NT(I1,I2,J)*DLOG(TP(I1,I2,J)) 4 265 4700 CONTINUE C 1 266 TRANS = -2.0*TRANS C C WRITE TRANSITION PROBABILITIES: 1 267 WRITE (6,13000) 1 268 WRITE (6,37000) (JOTA(JAY),JAY=1,K) 1 269 DO 4800 I1 = 1,K 2 270 DO 4800 I2 = 1,K 3 271 WRITE (6,38000) I1, I2, (NT(I1,I2,J),J=1,K) 3 272 4800 CONTINUE 1 273 WRITE (6,39000) 1 274 WRITE (6,37000) (JOTA(JAY),JAY=1,K) 1 275 DO 4900 I1=1,K 2 276 DO 4900 I2=1,K 3 277 WRITE (6,40000) I1, I2, (TP(I1,I2,J),J=1,K) 3 278 4900 CONTINUE 1 279 WRITE (6,63000) (PROB(IG),IG=1,K) 1 280 WRITE (6,32000) TRANS 1 281 WRITE (6,50000) 1 282 WRITE (6,22000) XMN2LL C 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN DEC 02, 1993 09:42:46 NAME:MAIN# PAGE: 10 0 IF DO ISN *....*...1.........2.........3.........4.........5.........6.........7.*.......8 0 C ACCOUNT FOR LABELS OF BORDER OBSERVATIONS: 1 283 FIRST = 0.0 1 284 DO 5000 J = 1,NC 2 285 LABEL1 = ICLUS(1,J) 2 286 PROBAB = PROB(LABEL1) 2 287 FIRST = FIRST + ALOG(PROBAB) 2 288 5000 CONTINUE 1 289 DO 5100 I = 2,NR 2 290 LABEL1 = ICLUS(I,1) 2 291 PROBAB = PROB(LABEL1) 2 292 FIRST = FIRST + ALOG(PROBAB) 2 293 5100 CONTINUE 1 294 FIRST = -2.0*FIRST C C C COMPUTE MODEL SELECTION CRITERIA: C COMPUTE VALUES CORRESPONDING TO NEW SEGMENTATION AND OLD C COVARIANCE MATRIX (OMIT ON FOR FIRST ITERATION) 1 295 IF (ITER .EQ. 1) GO TO 5200 C FOR MODEL WITH COMMON COVARIANCE MATRIX C (NOT OPTIMIZED IN THIS PROGRAM; HOWEVER, IT IS CLEAR C THAT ONE SHOULD USE THE COMMON-COVARIANCE-MATRIX MODEL IF C THE VALUES OF THE MODEL SELECTION CRITERIA HERE FOR THAT MODEL C ARE LESS THAN THOSE FOR THE MODEL WITH DIFFERENT COVARIANCE C MATRICES): C 1 296 AICOLD = XMN2OL + TRANS + FIRST + 2.0*NOPARM 1 297 SCHOLD = XMN2OL + TRANS + FIRST + ALOG(XN)*NOPARM 1 298 WRITE (6,59000) NOPARM 1 299 WRITE (6,46000) AICOLD 1 300 WRITE (6,47000) SCHOLD 1 301 5200 CONTINUE 1 302 AIC = XMN2LL + TRANS + FIRST + 2.0*NOPARM 1 303 WRITE (6,48000) AIC 1 304 SCH = XMN2LL + TRANS + FIRST + ALOG(XN)*NOPARM 1 305 WRITE (6,49000) SCH C C C COMPUTE PRECISION MATRICES FOR ALL GROUPS. C 1 306 TERM=0.0 1 307 DO 5700 L=1,K 2 308 IF (NG(L) .GT. IP) GO TO 5300 2 309 WRITE (6,52000) L,NG(L) 2 310 GO TO 5600 2 311 5300 CONTINUE C 2 312 DO 5400 IVAR=1,IP 3 313 DO 5400 JV = 1,IP 4 314 A(IVAR,JV) = SSD(L,IVAR,JV)/NG(L) 4 315 5400 CONTINUE 2 316 IDET = 1 2 317 NRS1 = 0 2 318 CALL MATEQ(A,IP,20,JFLG,DET,IDET,IV,NRS1,P,20) 2 319 DO 5500 IVAR=1,IP 3 320 DO 5500 JV=1,IP 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN DEC 02, 1993 09:42:46 NAME:MAIN# PAGE: 11 0 IF DO ISN *....*...1.........2.........3.........4.........5.........6.........7.*.......8 0 4 321 PG(L,IVAR,JV) = P(IVAR,JV) 4 322 5500 CONTINUE C 2 323 ET(L) = DLOG(DET*10**IDET) C 2 324 5600 CONTINUE C 2 325 TERM = TERM + NG(L)*ET(L) 2 326 5700 CONTINUE C COMPUTE MODEL SELECTION CRITERIA WITH DIFFERENT COVARIANCE C MATRICES: C C PARAMETERS: C K MEAN VECTORS OF DIMENSION P AND K P-BY-P COVARIANCE MATRICES, C WHERE P IS THE NUMBER OF CHANNELS 1 327 XM2LLD = N*IP*ALOG(2*PI) + N*IP + TERM 1 328 XM2LLD = XM2LLD + TRANS + FIRST 1 329 SCHD = XM2LLD + ALOG(XN)*NPRMDF 1 330 AICD = XM2LLD + 2.0*NPRMDF 1 331 WRITE (6,23000) 1 332 WRITE (6,59000) NPRMDF 1 333 WRITE (6,24000) XM2LLD 1 334 WRITE (6,57000) AICD 1 335 WRITE (6,58000) SCHD C C 1 336 WRITE (6,25000) ITER 1 337 DO 5800 IG = 1,K 2 338 WRITE (6,21000) IG, (XMEAN(IG,IVAR),IVAR=1,IP) 2 339 5800 CONTINUE 1 340 ITER = ITER + 1 1 341 IF (ITER .GE. 21) GO TO 5900 C UNLESS 20 ITERATIONS, HAVE ALREADY BEEN PERFORMED, GO BACK C AND DO ANOTHER. 1 342 GO TO 900 1 343 5900 WRITE (6,44000) 1 344 GO TO 6500 C C 1 345 6000 CONTINUE C C OUTPUT TO BE WRITTEN UPON CONVERGENCE: C 1 346 WRITE (6,41000) ITER 1 347 WRITE (6,30000) C COMPUTE AND WRITE COMMON COVARIANCE MATRIX C 1 348 DO 6100 IVAR = 1,IP 2 349 DO 6100 JV = 1,IP 3 350 WGMS(IVAR,JV) = WGSS(IVAR,JV)/(N-K) 3 351 6100 CONTINUE 1 352 DO 6200 IVAR=1,IP 2 353 WRITE (6,31000) (WGMS(IVAR,JV), JV=1,IP) 2 354 6200 CONTINUE C 1 355 WRITE (6,62000) 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN DEC 02, 1993 09:42:46 NAME:MAIN# PAGE: 12 0 IF DO ISN *....*...1.........2.........3.........4.........5.........6.........7.*.......8 0 C COMPUTE AND WRITE CLASS COVARIANCE MATRICES C 1 356 DO 6400 L = 1,K 2 357 DO 6300 IVAR=1,IP 3 358 DO 6300 JV =1,IP 4 359 WGMS(IVAR,JV) = SSD(L,IVAR,JV)/(NG(L)-1) 4 360 6300 CONTINUE 2 361 WRITE (6,61000) L 2 362 DO 6400 IVAR = 1,IP 3 363 WRITE (6,31000) (WGMS(IVAR,JV),JV=1,IP) 3 364 6400 CONTINUE C C C C C C 1 365 WRITE (6,45000) K C 1 366 6500 CONTINUE C 367 WRITE (6,42000) 368 6600 STOP C C 369 10000 FORMAT(//1X,'SEGMENTATION:'/) 370 11000 FORMAT(/,1X,'ROW: COLUMN: '/, 4X, (40I3/) ) 371 12000 FORMAT(1X, I3, (40I3/) ) 372 13000 FORMAT(//1X,'TRANSITIONS') 373 14000 FORMAT(/1X,'NUMBER OF CHANNELS = ',I2/) 374 15000 FORMAT(2X,I2) 375 16000 FORMAT(3X,I3) 376 17000 FORMAT('1','###################################################', X//,1X,'PROGRAM IMSEG.DET.AUTO '/ X,1X,'FOR IMAGE SEGMENTATION '/ X,1X,'USING DISTANCE IN THE METRICS OF THE COVARIANCE MATRICES'/ X,1X,'ADJUSTED BY THE DETERMINANTS '/ X//,1X,'DEVELOPED AND PROGRAMMED BY '// X1X,' DR. STANLEY L. SCLOVE 312/996-2681'/ X1X,' DEPARTMENT OF QUANTITATIVE METHODS 312/996-2676'/ X1X,' UNIVERSITY OF ILLINOIS AT CHICAGO '/ X1X,' BOX 4348, CHICAGO, IL 60680 '// X//,1X,'VERSION 1.6 17-SEP-82 '//) 377 18000 FORMAT('1',//,1X,'MIN AND MAX NUMBER OF CLASSES TO BE TRIED ARE ', XI2,' AND ',I2//) 378 19000 FORMAT(1H1,'K = ',I2,' CLASSES'//) 379 20000 FORMAT(/1X,'INITIAL MEAN VECTOR FOR CLASS ',I2,': ',(4E14.5/)) 380 21000 FORMAT(1X,'MEAN VECTOR FOR CLASS ',I2,': ',(8E13.5/)) 381 22000 FORMAT(/,1X,'MINUS 2 LOG LIKELIHOOD FOR MODEL WITH COMMON', X' COVARIANCE MATRIX= ', E13.5//) 382 23000 FORMAT(//1X,'FOR MODEL WITH DIFFERENT COVARIANCE MATRICES:'//) 383 24000 FORMAT(/,1X,'MINUS 2 LOG LIKELIHOOD FOR MODEL WITH DIFFERENT ', X'COVARIANCE MATRICES = ', E13.5//) 384 25000 FORMAT(///,1X,'ITERATION ', I2,//) 385 26000 FORMAT(1X,'MEAN VECTOR FOR CLASS ',I2,': ',(8E13.5/)) 386 27000 FORMAT(/,1X,'NUMBERS IN CLASSES:'/,(9I12/)/) 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN DEC 02, 1993 09:42:46 NAME:MAIN# PAGE: 13 0 IF DO ISN *....*...1.........2.........3.........4.........5.........6.........7.*.......8 0 387 28000 FORMAT(18A4) 388 29000 FORMAT(3X,I2) 389 30000 FORMAT(///,1X,'COMMON COVARIANCE MATRIX (DIVISOR IS DF):',//) 390 31000 FORMAT(1X,(8E13.5/)) 391 32000 FORMAT(//,' CONTRIBUTION OF TRANS. PROBS. TO LOG LIKELIHOOD =', XE15.5/) 392 33000 FORMAT(1X,'NUMBER OF ROWS = ',I4) 393 34000 FORMAT(1X,'NUMBER OF COLUMNS = ',I3/) 394 35000 FORMAT(1X,18A4) 395 36000 FORMAT(/9X,(9I7/)) 396 37000 FORMAT(/9X,(9I7/)) 397 38000 FORMAT(1X, 2I4, (9I7/)) 398 39000 FORMAT(//1X,'TRANSITION PROBABILITIES') 399 40000 FORMAT(1X,2I4,3X,(9F7.4/)) 400 41000 FORMAT(/1X,'CONVERGENCE: NO CASE CHANGED CLASSES AFTER ', X'ITERATION ',I2,'. SOME ADDITIONAL RESULTS ARE PRINTED BELOW.'//) 401 42000 FORMAT(/1X,'PROGRAM ENDED SUCCESSFULLY.') 402 43000 FORMAT(/,1X,'JFLG = ',I2,'. IF JFLG=0, COMPUTATION OF DET', X' WENT WELL; OTHERWISE, THERE WAS TROUBLE OR MATRIX WAS ', X'ILL-CONDITIONED.'//) 403 44000 FORMAT(1X,'ROUTINE HAS NOT CONVERGED IN 20 ITERATIONS. STOP') 404 45000 FORMAT(/,1X,'PROGRAM ENDED SUCCESSFULLY FOR THE CASE ', X'K = ',I2,'.'/) 405 46000 FORMAT(/1X,'AIC WITH NEW LABELS AND OLD DISTRIBUTIONAL ', X'PARAMETERS: ', E15.5) 406 47000 FORMAT(/1X,'SCHWARZ CRITERION WITH NEW LABELS AND OLD ', X'DISTRIBUTIONAL PARAMETERS: ', E15.5) 407 48000 FORMAT(/1X,'AIC WITH NEW LABELS AND NEW DISTRIBUTIONAL ', X'PARAMETERS: ',E15.5) 408 49000 FORMAT(/1X,'SCHWARZ CRITERION WITH NEW LABELS AND NEW ', X'DISTRIBUTIONAL PARAMETERS: ',E15.5) 409 50000 FORMAT(//1X,'FOR MODEL WITH COMMON COVARIANCE MATRIX ', X'(NOT OPTIMIZED IN THIS PROGRAM): '//) 410 51000 FORMAT(1X,'AIC FOR MODEL WITH COMMON COVARIANCE MATRIX = ',E15.5/) 411 52000 FORMAT(/1X,'CLASS ',I2,' CONTAINS ONLY ',I4,' OBSERVATIONS: ', X'PRECISION MATRIX FROM PREVIOUS ITERATION IS BEING RETAINED'/) 412 53000 FORMAT(/1X,'MODEL WITH COMMON COVARIANCE MATRIX IS NOT'/ X1X,'OPTIMIZED IN THIS PROGRAM; HOWEVER, IT IS CLEAR'/ X1X,'THAT ONE SHOULD USE IT IF HERE THE VALUES OF THE MODEL-'/ X1X,'SELECTION CRITERIA FOR THAT MODEL ARE LESS THAN THOSE '/ X1X,'FOR THE MODEL WITH DIFFERENT COVARIANCE MATRICES,'/ X1X,'WHICH IS OPTIMIZED HERE.'//) 413 54000 FORMAT(/1X,'MINIMUM FOR EACH CHANNEL: ',/) 414 55000 FORMAT(/1X,'MAXIMUM FOR EACH CHANNEL: ',/) 415 56000 FORMAT(1X,'SCHWARZ CRITERION FOR MODEL WITH COMMON COVARIANCE ', X'MATRIX = ',E15.5/) 416 57000 FORMAT(1X,'AIC FOR MODEL WITH DIFFERENT COVARIANCE MATRICES = ', XE15.5/) 417 58000 FORMAT(1X,'SCHWARZ CRITERION FOR MODEL WITH DIFFERENT ', X'COVARIANCE MATRICES = ', E15.5/) 418 59000 FORMAT(/,1X,'NUMBER OF PARAMETERS = ',I4//) 419 60000 FORMAT(1X,'NO OBSERVATIONS IN GROUP ',I3,'. STOP') 420 61000 FORMAT(//1X,'COVARIANCE MATRIX FOR CLASS ',I2/) 421 62000 FORMAT(///1X,'CLASS COVARIANCE MATRICES ', X' (DIVISORS ARE ONE LESS THAN NUMBER IN GROUP):'/) 422 63000 FORMAT(/1X,'MARGINAL PROB.VECTOR:',(9F11.4/)) 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN DEC 02, 1993 09:42:46 NAME:MAIN# PAGE: 14 0 IF DO ISN *....*...1.........2.........3.........4.........5.........6.........7.*.......8 0 423 END 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN DEC 02, 1993 09:42:46 NAME:MAIN# PAGE: 15 0SYMBOL CROSS REFERENCE DICTIONARY 0PROGRAM NAME: MAIN# 0TAGS: A-ARRAY I-INTRINSIC FUNCTION S-ASSIGNED C-COMMON K-NAMED CONSTANT T-EXPLICITLY TYPED D-DUMMY ARGUMENT N-ENTRY V-INITIAL VALUE E-EQUIVALENCED P-PROMOTED X-EXTERNAL SUBPROGRAM F-STATEMENT FUNCTION Q-PADDED Y-DYNAMIC COMMON G-GENERIC NAME R-SUBPROGRAM NAME Z-EXTENDED COMMON 0NAME TYPE TAG DECLARED REFS (F:REFD S:SET B:REFD/MAY BE SET) +______ ____ ______ ________ ________________________________________ 0A R*8 AT 14 29 200S 202B 314S 318B AIC R*4 302S 303F AICD R*4 330S 334F AICOLD R*4 296S 299F ALOG R*4 I 206 207 287 292 297 304 327 329 ARG R*4 125S 126F 131F CF R*8 T 28 184S 185F D R*8 AT 2 24 104S 109F 109S 118F 118S 124F 124S 125F 128S 131S 136F 136S 139F 139S 141F 144F 145F DET R*8 T 23 202B 206F 318B 323F DLOG R*8 I 206 264 323 ET R*8 AT 15 30 124F 323S 325F EXP GI 131 F R*8 T 27 141S 144F 145S FIRST R*4 283S 287F 287S 292F 292S 294F 294S 296F 297F 302F 304F 328F FMT R*4 A 6 43S 47 62F 64F I I*4 45S 47 48F 56F 57F 58F 59B 95S 97F 97B 101S 109F 115F 117F 133F 134F 135F 142F 146B 150S 151F 151B 161S 163F 166F 168F 168B 209S 211F 211B 224S 226F 229F 230B 289S 290B ICHAN I*4 44S 47B ICLSOL I*4 A 10 97S 211F ICLUS I*4 A 2 97F 134F 135F 142S 146S 151F 163F 211F 228F 229F 230F 285F 290F IDET I*4 196S 202B 205F 316S 318B 323F IG I*4 75S 77F 77B 80S 81F 81B 90S 91B 153S 154F 156F 158F 159B 170S 170S 175S 176F 178F 182F 182F 182F 184F 184F 184F 185F 185B 187S 190B 216S 217F 217B 253S 254F 254F 255F 255B 279S 279S 337S 338F 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN DEC 02, 1993 09:42:46 NAME:MAIN# PAGE: 16 0TAGS: A-ARRAY I-INTRINSIC FUNCTION S-ASSIGNED C-COMMON K-NAMED CONSTANT T-EXPLICITLY TYPED D-DUMMY ARGUMENT N-ENTRY V-INITIAL VALUE E-EQUIVALENCED P-PROMOTED X-EXTERNAL SUBPROGRAM F-STATEMENT FUNCTION Q-PADDED Y-DYNAMIC COMMON G-GENERIC NAME R-SUBPROGRAM NAME Z-EXTENDED COMMON 0NAME TYPE TAG DECLARED REFS (F:REFD S:SET B:REFD/MAY BE SET) +______ ____ ______ ________ ________________________________________ 0 338B IGROUP I*4 163S 164F 164F 166F 166F 168F 168F IG1 I*4 134S 136F IG2 I*4 135S 136F IM1 I*4 226S 228F INORTH I*4 228S 231F 231F INTEG I*4 71S 72F 72B IOTA I*4 A 3 72S 149F IP I*4 41S 42F 44F 51F 55F 62F 64F 76F 81F 86F 86F 86F 87F 87F 87F 108F 114F 116F 155F 157F 165F 167F 171F 172F 181F 183F 188F 189F 192F 193F 198F 199F 202B 207F 207F 217F 308F 312F 313F 318B 319F 320F 327F 327F 338F 348F 349F 352F 353F 357F 358F 362F 363F IRSUM I*4 A 17 235S 240F 240S 244F ITER I*4 92S 94F 106F 123F 208F 295F 336F 340F 340S 341F 346F ITEST I*4 261S 262F IV I*4 A 12 202B 318B IVAR I*4 51S 52F 52F 53F 53B 55S 56F 56F 57F 57F 58F 58F 59F 59B 62S 62S 64S 64S 76S 77F 77F 77F 77B 81S 81S 108S 109F 109B 114S 115F 115F 118B 155S 156F 158F 159B 165S 166F 166F 166F 168F 168F 168B 171S 173B 181S 182F 182F 184F 185F 185B 188S 190F 190F 190B 192S 194F 194B 198S 200F 200B 217S 217S 312S 314F 314B 319S 321F 321B 338S 338S 348S 350F 350B 352S 353B 357S 359F 359B 362S 363B IWEST I*4 229S 231F 231F IY I*4 230S 231F 231F I1 I*4 219S 222B 233S 235B 237S 240F 240F 240B 242S 244F 250F 251B 258S 261F 263F 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN DEC 02, 1993 09:42:46 NAME:MAIN# PAGE: 17 0TAGS: A-ARRAY I-INTRINSIC FUNCTION S-ASSIGNED C-COMMON K-NAMED CONSTANT T-EXPLICITLY TYPED D-DUMMY ARGUMENT N-ENTRY V-INITIAL VALUE E-EQUIVALENCED P-PROMOTED X-EXTERNAL SUBPROGRAM F-STATEMENT FUNCTION Q-PADDED Y-DYNAMIC COMMON G-GENERIC NAME R-SUBPROGRAM NAME Z-EXTENDED COMMON 0NAME TYPE TAG DECLARED REFS (F:REFD S:SET B:REFD/MAY BE SET) +______ ____ ______ ________ ________________________________________ 0 264F 264B 269S 271F 271B 275S 277F 277B I2 I*4 220S 222B 234S 235B 238S 240F 240F 240B 243S 244F 250F 251B 259S 261F 263F 264F 264B 270S 271F 271B 276S 277F 277B J I*4 46S 47 48F 56F 57F 58F 59B 83S 84F 84B 96S 97F 97B 102S 109F 115F 117F 133F 134F 135F 142F 146B 149S 149S 151S 151S 162S 163F 166F 168F 168B 210S 211F 211B 221S 222B 225S 227F 228F 230B 239S 240B 249S 250F 251B 260S 261F 263F 264F 264B 271S 271S 277S 277S 284S 285B JAY I*4 268S 268S 274S 274S JFLG I*4 202B 203F 204F 318B JM1 I*4 227S 229F JOTA I*4 A 3 84S 268F 274F JV I*4 116S 117F 117F 118B 157S 158F 159B 167S 168F 168F 168B 172S 173B 183S 184F 185F 185B 189S 190F 190F 190B 193S 194F 194B 199S 200F 200B 313S 314F 314B 320S 321F 321B 349S 350F 350B 353S 353S 358S 359F 359B 363S 363S K I*4 74S 75F 77F 79F 80F 83F 86F 87F 87F 88F 88F 89F 89F 90F 91F 103F 107F 113F 122F 143F 153F 170F 175F 187F 216F 219F 220F 221F 233F 234F 237F 238F 239F 242F 243F 247F 249F 253F 258F 259F 260F 268F 269F 270F 271F 274F 275F 276F 277F 279F 307F 337F 350F 356F 365B KL I*4 65S 67F 74F KU I*4 66S 67F 74F L I*4 103S 104B 107S 109F 109F 109B 113S 115F 117F 118F 118F 118B 122S 124F 124F 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN DEC 02, 1993 09:42:46 NAME:MAIN# PAGE: 18 0TAGS: A-ARRAY I-INTRINSIC FUNCTION S-ASSIGNED C-COMMON K-NAMED CONSTANT T-EXPLICITLY TYPED D-DUMMY ARGUMENT N-ENTRY V-INITIAL VALUE E-EQUIVALENCED P-PROMOTED X-EXTERNAL SUBPROGRAM F-STATEMENT FUNCTION Q-PADDED Y-DYNAMIC COMMON G-GENERIC NAME R-SUBPROGRAM NAME Z-EXTENDED COMMON 0NAME TYPE TAG DECLARED REFS (F:REFD S:SET B:REFD/MAY BE SET) +______ ____ ______ ________ ________________________________________ 0 124F 125F 128F 131F 136F 136F 136F 139F 139F 139B 143S 144F 145F 146B 307S 308F 309F 309F 314F 314F 321F 323F 325F 325B 356S 359F 359F 361B LABEL1 I*4 285S 286F 290S 291F MATEQ X 202F 318F N I*4 69S 70F 194F 207F 255F 327F 327F 350F NC I*4 38S 40F 46F 69F 71F 96F 102F 149F 151F 162F 210F 225F 284F NG I*4 A 5 154S 164F 164S 170F 176F 182F 184F 254F 308F 309F 314F 325F 359F NOPARM I*4 86S 88F 88S 296F 297F 298F 302F 304F NPRMDF I*4 87S 89F 89S 329F 330F 332F NR I*4 37S 39F 45F 69F 95F 101F 150F 161F 209F 224F 289F NRS1 I*4 197S 202B 317S 318B NT I*4 A 17 222S 231F 231S 240F 250F 261F 264F 271F P R*8 AT 13 22 202B 318B 321F PG R*8 AT 16 31 118F 321S PI R*4 68S 207F 327F PROB R*8 AT 18 32 91S 139F 254S 255F 255S 279F 286F 291F PROBAB R*4 286S 287F 291S 292F SCH R*4 304S 305F SCHD R*4 329S 335F SCHOLD R*4 297S 300F SS R*8 AT 7 19 158S 168F 168S 185F SSD R*8 AT 7 20 159S 185S 190F 314F 359F SUM R*8 AT 1 19 156S 166F 166S 182F 184F 184F TEMPIV R*8 T 26 115S 118F TEMPJV R*8 T 26 117S 118F TERM R*4 306S 325F 325S 327F TITLE R*4 A 4 33S 36F TP R*8 AT 17 32 136F 251S 263F 264F 277F TRANS R*4 257S 264F 264S 266F 266S 280F 296F 297F 302F 304F 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN DEC 02, 1993 09:42:46 NAME:MAIN# PAGE: 19 0TAGS: A-ARRAY I-INTRINSIC FUNCTION S-ASSIGNED C-COMMON K-NAMED CONSTANT T-EXPLICITLY TYPED D-DUMMY ARGUMENT N-ENTRY V-INITIAL VALUE E-EQUIVALENCED P-PROMOTED X-EXTERNAL SUBPROGRAM F-STATEMENT FUNCTION Q-PADDED Y-DYNAMIC COMMON G-GENERIC NAME R-SUBPROGRAM NAME Z-EXTENDED COMMON 0NAME TYPE TAG DECLARED REFS (F:REFD S:SET B:REFD/MAY BE SET) +______ ____ ______ ________ ________________________________________ 0 328F VARHAT R*8 AT 9 21 194S 200F WGMS R*4 A 9 350S 353F 359S 363F WGSS R*8 AT 8 20 173S 190F 190S 194F 350F X R*4 A 1 47S 52F 53F 56F 57F 58F 59F 109F 115F 117F 166F 168F 168F XDENOM R*4 244S 245F 247S 251F XIDET R*4 205S 206F XLGDET R*4 206S 207F XMAX R*4 A 11 52S 58F 59S 64F 77F XMEAN R*8 AT 5 25 77S 81F 109F 115F 117F 182S 217F 338F XMIN R*4 A 11 53S 56F 57S 62F 77F 77F XMN2LL R*4 99F 207S 282F 302F 304F XMN2OL R*4 296F 297F XMN20L R*4 99S XM2LLD R*4 327S 328F 328S 329F 330F 333F XN R*4 70S 297F 304F 329F XNUM R*4 250S 251F 0 0VARIABLES REFERENCED BUT NOT SET. (* POSSIBLY SET AS ARGUMENT.) 0DET* IV* JFLG* P* XMN2OL 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN DEC 02, 1993 09:42:46 NAME:MAIN# PAGE: 20 0LABEL CROSS REFERENCE DICTIONARY 0TAGS: A-USED AS ARGUMENT F-FORMAT S-USED IN ASSIGN STATEMENT B-OBJECT OF BRANCH N-NON-EXECUTABLE 0 LABEL TAG DEFINED REFERENCED +____________ ___ _______ ___________________________________________ 0 100 B 50 48 200 B 54 49 51 300 60 44 45 46 55 400 73 71 500 78 75 76 600 82 80 700 85 83 800 91 90 900 B 93 342 1000 98 95 96 1100 B 100 94 1200 105 103 1300 110 107 108 1400 B 112 106 1500 119 114 116 1600 120 113 1700 B 121 111 1800 B 128 126 1900 B 130 127 2000 B 132 129 2100 B 138 133 2200 B 140 122 123 137 2300 B 145 144 2400 B 147 101 102 143 144 144 2500 152 150 2600 160 153 155 157 2700 169 161 162 165 167 2800 174 171 172 2900 B 178 176 3000 B 180 177 3100 186 175 181 183 3200 191 187 188 189 3300 195 192 193 3400 201 198 199 3500 B 213 209 210 211 3600 B 215 208 212 3700 218 216 3800 223 219 220 221 3900 232 224 225 4000 236 233 234 4100 241 237 238 239 4200 B 247 245 4300 B 248 246 4400 251 242 243 249 4500 252 UNREFERENCED 4600 256 253 4700 B 265 258 259 260 262 263 4800 272 269 270 4900 278 275 276 5000 288 284 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN DEC 02, 1993 09:42:46 NAME:MAIN# PAGE: 21 0TAGS: A-USED AS ARGUMENT F-FORMAT S-USED IN ASSIGN STATEMENT B-OBJECT OF BRANCH N-NON-EXECUTABLE 0 LABEL TAG DEFINED REFERENCED +____________ ___ _______ ___________________________________________ 0 5100 293 289 5200 B 301 295 5300 B 311 308 5400 315 312 313 5500 322 319 320 5600 B 324 310 5700 326 307 5800 339 337 5900 B 343 341 6000 B 345 214 6100 351 348 349 6200 354 352 6300 360 357 358 6400 364 356 362 6500 B 366 74 344 6600 B 368 179 10000 NF 369 148 11000 NF 370 149 12000 NF 371 151 13000 NF 372 267 14000 NF 373 42 15000 NF 374 65 66 16000 NF 375 37 38 17000 NF 376 34 18000 NF 377 67 19000 NF 378 79 20000 NF 379 81 21000 NF 380 338 22000 NF 381 282 23000 NF 382 331 24000 NF 383 333 25000 NF 384 336 26000 NF 385 217 27000 NF 386 170 28000 NF 387 33 43 29000 NF 388 41 30000 NF 389 347 31000 NF 390 353 363 32000 NF 391 280 33000 NF 392 39 34000 NF 393 40 35000 NF 394 36 36000 NF 395 UNREFERENCED 37000 NF 396 268 274 38000 NF 397 271 39000 NF 398 273 40000 NF 399 277 41000 NF 400 346 42000 NF 401 367 43000 NF 402 204 44000 NF 403 343 45000 NF 404 365 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN DEC 02, 1993 09:42:46 NAME:MAIN# PAGE: 22 0TAGS: A-USED AS ARGUMENT F-FORMAT S-USED IN ASSIGN STATEMENT B-OBJECT OF BRANCH N-NON-EXECUTABLE 0 LABEL TAG DEFINED REFERENCED +____________ ___ _______ ___________________________________________ 0 46000 NF 405 299 47000 NF 406 300 48000 NF 407 303 49000 NF 408 305 50000 NF 409 281 51000 NF 410 UNREFERENCED 52000 NF 411 309 53000 NF 412 35 54000 NF 413 61 55000 NF 414 63 56000 NF 415 UNREFERENCED 57000 NF 416 334 58000 NF 417 335 59000 NF 418 298 332 60000 NF 419 178 61000 NF 420 361 62000 NF 421 355 63000 NF 422 279 0 NUMBER MODULE LEVEL ISN VS FORTRAN ERROR MESSAGES + ______ ______ _____ ___ __ _______ _____ ________ 0ILX2510I CONN 4(W) A POSSIBLE BRANCH INTO THE RANGE OF A DO LOOP, PARALLEL DO LOOP, OR PARALLEL SECTION AT USER LABEL "200" (AT ISN "54") FROM OUTSIDE THE RANGE OF THE LOOP OR SECTION HAS BEEN DETECTED AT ISN "49". THIS IS NOT VALID IN LANGLVL 77 PROGRAMS AND MAY CAUSE UNPREDICTABLE RESULTS. 0ILX3470I VPCQ 0(I) "IVAR,XMN2LL,XMN2OL" MAY BE UNINITIALIZED WHEN USED 0*STATISTICS* SOURCE STATEMENTS: 420, PROGRAM SIZE: 576260 BYTES, PROGRAM NAME: MAIN#, PAGE: 1 *STATISTICS* 2 DIAGNOSTICS GENERATED. HIGHEST SEVERITY CODE IS 4. **MAIN#** END OF COMPILATION 1 ****** TIME STAMP: 93.33609.42.46 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN DEC 02, 1993 09:42:54 PAGE: 23 0OPTIONS IN EFFECT: NOLIST NOMAP XREF GOSTMT NODECK SOURCE TERM OBJECT FIXED TRMFLG SRCFLG NOSYM NORENT SDUMP(ISN) SXM NOVECTOR IL(DIM) NOTEST SC(*) NODC NOEC NOEMODE NOICA NODIRECTIVE NODBCS NOSAA NOPARALLEL NOSAVE NOTABS OPT(2) LANGLVL(77) NOFIPS FLAG(I) AUTODBL(NONE) LINECOUNT(60) CHARLEN(500) 0 IF DO ISN *....*...1.........2.........3.........4.........5.........6.........7.*.......8 0 1 SUBROUTINE MATEQ(A,M,N,JFLG,DET,IDET,IV,NRS1,P,LL) C SUBROUTINE MATEQ IS DMATEQ FROM THE UICC SUBROUTINE LIBRARY. C C SUBROUTINE DMATEQ C ***************** C THIS ROUTINE WILL SOLVE A REAL*8 SYSTEM OF LINEAR EQUATIONS,COMPUTE C THE DETERMINANT, WITHOUT UNDERFLOW OR OVERFLOW, OF A REAL*8 MATRIX, C AND/OR INVERT A REAL*8 MATRIX. C CALLING SEQUENCE: C CALL DMATEQ(A,N,IA,JFLG,DET,IDET,IV,NRS,P,IP) WHERE; C A (INPUT) - IS THE REAL*8 MATRIX ON WHICH THE ROUTINE IS C TO WORK. IN THE PROCESS OF COMPUTATION THE C CONTENTS OF THIS MATRIX ARE DESTROYED. C N (INPUT) - IS AN INTEGER*4 VARIABLE WHICH SPECIFIES THE C ORDER OF THE A MATRIX. C IA (INPUT) - IS AN INTEGER*4 VARIABLE WHICH SPECIFIES THE C ACTUAL ROW DIMENSION OF A AS DIMENSIONED IN C THE CALLING PROGRAM. IA MUST BE GREATER THAN C OR EQUAL TO N. C JFLG (OUTPUT) - IS AN INTEGER*4 RETURN CODE VARIABLE. UPON C RETURN FROM DMATEQ IF; C JFLG=0, ALL WENT WELL. C JFLG=1, THE A MATRIX WAS SINGULAR OR NEAR C SINGULAR AND THE COMPUTATIONS COULD NOT BE C COMPLETED. THE CONTENTS OF THE VARIABLES C A, DET, IDET AND P ARE MEANINGLESS. C DET (OUTPUT) - IS A REAL*8 VARIABLE WHICH CONTAINS THE C DETERMINANT OF A. (SEE IDET) C IDET (INPUT) - IS AN INTEGER*4 VARIABLE. ON INPUT IF; C IDET=0, NO DETERMINANT IS CALCULATED. C IDET NOT 0, THE DETERMINANT OF A IS COMPUTED. C ON OUTPUT IDET CONTAINS THE POWER OF 10 C THAT DET SHOULD BE MULTIPLIED BY TO GIVE THE C CORRECT VALUE OF THE DETERMINANT. I.E. C DET(A)=DET*10.0D0**IDET. C IF DET(A) CAN BE COMPUTED WITHOUT UNDER OR C OVERFLOW, THEN IDET=0 OTHERWISE IDET IS SET C TO THE PROPER VALUE SO THAT NO UNDER OR OVER- C FLOW WILL OCCUR IN COMPUTING DET. C IV (INPUT) - IS AN INTEGER*4 WORK ARRAY WHICH SHOULD BE C DIMENSIONED AT LEAST IV(N). C C NRS (INPUT) - IS AN INTEGER*4 VARIABLE WITH THE FOLLOWING C INTERPRETATION: C NRS>0, SOLVE A SYSTEM OF LINEAR EQUATIONS C WITH NRS RIGHT HAND SIDES. C NRS=0, INVERT THE A MATRIX. C NRS<0, ONLY COMPUTE THE DETERMINANT OF A. C IN THIS CASE IDET MUST BE DIFFERENT FROM 0. C P (INPUT) - IS A REAL*8 ARRAY WITH THE FOLLOWING INTER- C PRETATION: C IF NRS>0, THEN P CONTAINS THE NRS RIGHT HAND 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN DEC 02, 1993 09:42:54 NAME:MAIN# PAGE: 24 0 IF DO ISN *....*...1.........2.........3.........4.........5.........6.........7.*.......8 0 C SIDES STORED BY COLUMNS. IN THIS CASE P MUST C BE DIMENSIONED AT LEAST P(N,NRS). ON RETURN C THE COLUMNS OF P ARE REPLACED BY THE RESPEC- C TIVE SOLUTIONS. C IF NRS=0, THEN P MUST BE DIMENSIONED AT LEAST C P(N,N). ON RETURN P WILL CONTAIN THE INVERSE C OF A. C IF NRS<0,THEN P NEED ONLY BE A DUMMY VARIABLE C IN THIS CASE P IS NEVER ACCESSED BY DMATEQ. C IP (INPUT) - IS AN INTEGER*4 VARIABLE WHICH CONTAINS THE C ACTUAL ROW DIMENSION OF P AS DIMENSIONED IN C THE CALLING PROGRAM. IP MUST BE GREATER THAN C OR EQUAL TO N. C NOTE: IMMEDIATELY ON RETURN FROM DMATEQ THE CONDITION CODE FLAG, C JFLG, SHOULD BE INTERROGATED. IF JFLG=1, THEN THE ROUTINE C COULD NOT COMPUTE A SOLUTION. C METHOD - THE ALGORITHM USED IS GAUSSIAN ELIMINATION WITH PARTIAL C -1 C PIVOTING. IN ESSENCE THE ROUTINE GENERATES A MATRIX L SUCH C -1 C THAT L *A = U, WHERE U IS AN UPPER TRIANGULAR MATRIX. THEN IT C SOLVES THE SYSTEM A*X = P BY MEANS OF THE EQUIVALENT SYSTEM C -1 -1 C U*X = L *A*X = L *P BY BACK SUBSTITUTION. C -1 C THE L MATRIX CAN BE WRITTEN AS A PRODUCT OF THE FORM C -1 C L = L *P *....*L *P WHERE EACH P IS A PERMUTATION C N-1 N-1 1 1 K C MATRIX OBTAINED BY INTERCHANGING AT MOST TWO ROWS OF THE C IDENTITY MATRIX. ( THIS REPRESENTS THE INTERCHANGING OF TWO C ROWS). THE L MATRICES ARE ELIMINATION MATRICES WHICH ARE C K C CHOSEN TO INTRODUCE ZEROS IN THE LAST N-K ENTRIES OF THE K-TH C COLUMN OF THE MATRIX. C C -1 -1 C THE CALCULATIONS OF L *A AND L *P ARE DONE BY PERFORMING C THE PERMUTATIONS ON A AND P RESPECTIVELY. THE ACTUAL L AND P C K K C ARE NOT COMPUTED. C SUBROUTINES CALLED: DMATDT C REFERENCE: C G. W. STEWART, INTRODUCTION TO MATRIX COMPUTATIONS, C ACADEMIC PRESS, 1973. 2 REAL*8 A(N,1),DET,P(LL,1) 3 REAL*8 DNORM,DEN,DMULT,DSUM,DISIGN 4 DIMENSION IV(1) 5 NRS=NRS1 6 IF (NRS.EQ.0) IDET=1 8 DISIGN=1.0D+00 9 DET=0.0D+00 10 JFLG=0 C C JFLG IS A TROUBLE FLAG.UPON EXIT IF JFLG=0 THEN THE MATRIX WAS PROCESS C WITHOUT TROUBLE.IF JFLG=1 EITHER THE MATRIX IS SINGULAR OR TROUBLE 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN DEC 02, 1993 09:42:54 NAME:MATEQ PAGE: 25 0 IF DO ISN *....*...1.........2.........3.........4.........5.........6.........7.*.......8 0 C OCCURED.ISIGN=-ISIGN EVERY TIME A ROW IS INTERCHANGED.THIS IS USED TO C INSURE THAT THE DETERMINANT HAS THE PROPER SIGN. C 11 M1=M-1 12 DO 100 I=1,M 1 13 100 IV(I)=I 14 IF (NRS) 500,200,500 15 200 DO 300 I=1,M 1 16 DO 300 J=1,M 2 17 300 P(I,J)=0.0D+00 18 DO 400 I=1,M 1 19 400 P(I,I)=1.0D+00 20 NRS=M C C INSTEAD OF ACTUALLY INTERCHANGING ROWS A POINTER ARRAY IS USED TO KEEP C TRACK OF THE ROW POSITIONS. C C BEGIN ELIMINATION LOOP. C 21 500 DO 1200 K=1,M1 1 22 ICOL=K 1 23 IPCOL=K C C SEARCHING FOR LARGEST ELEMENT IN ABSOLUTE VALUE IN COLUMN K. C 1 24 DNORM=A(IV(K),K) 1 25 IFLG=0 1 26 KK=K+1 1 27 DO 600 J=KK,M 2 28 IF (DABS(A(IV(J),K)).LE.DABS(DNORM)) GO TO 600 2 29 IFLG=1 2 30 IPCOL=IV(J) 2 31 DNORM=A(IPCOL,K) 2 32 600 CONTINUE C C IF IFLG=0 NO ROW INTERCHANGE TOOK PLACE.IF IFLG=1 A ROW INTERCHANGE C TOOK PLACE AND THE POINTER ARRAY IV MUST BE UPDATED. C 1 33 IF (IFLG.EQ.0) GO TO 800 1 34 ISAVE=IV(ICOL) 1 35 IV(ICOL)=IPCOL 1 36 ICOL1=ICOL+1 1 37 DO 700 L=ICOL1,M 2 38 IF (IV(L).EQ.IPCOL) IV(L)=ISAVE 2 40 700 CONTINUE 1 41 DISIGN=-DISIGN 1 42 800 IF (DNORM.EQ.0.0D+00) GO TO 1900 C C BEGIN ELIMINATION OF ROW BELOW IV(K).DEN IS THE PIVOT ELEMENT. C 1 43 K1=K+1 1 44 DO 1100 IM=K1,M C C BEFORE ACTUALLY ELIMINTING WE CHECK TO SEE IF A(IV(IM),K) HAS ALREADY C BEEN ANIHALATED. C 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN DEC 02, 1993 09:42:54 NAME:MATEQ PAGE: 26 0 IF DO ISN *....*...1.........2.........3.........4.........5.........6.........7.*.......8 0 2 45 IF (A(IV(IM),K).EQ.0.0D+00) GO TO 1100 C C CACULATE ELIMINATION FACTOR. C 2 46 DMULT=-A(IV(IM),K) C C WE NOW CALCULATE VALUE OF OTHER ELEMENTS IN ROW IV(IM). C 2 47 DO 900 NN=K1,M 3 48 900 A(IV(IM),NN)=(DMULT*A(IV(K),NN))/DNORM+A(IV(IM),NN) 2 49 IF (NRS.LE.0) GO TO 1100 2 50 DO 1000 IN=1,NRS 3 51 1000 P(IV(IM),IN)=(DMULT*P(IV(K),IN))/DNORM+P(IV(IM),IN) 2 52 1100 CONTINUE 1 53 1200 CONTINUE C C CALCULATE VALUE OF DETERMINANT. C 54 IF (A(IV(M),M).EQ.0.0D0) GO TO 1900 55 DET=DISIGN 56 IF (IDET.NE.0) CALL DMATDT(A,N,M,DET,IV,IDET) 58 IF (DET.EQ.0.0D+00) GO TO 1900 59 IF (NRS.LE.0) GO TO 2000 C C WE START SOLVING RIGHT HAND SIDES.THE SOLUTION REPLACES THE RIGHT HAND C VECTOR. C 60 1300 N1=M-1 61 DO 1600 JJ=1,NRS C C BEGIN BACK SUBSTITUTION. C 1 62 P(IV(M),JJ)=P(IV(M),JJ)/A(IV(M),M) 1 63 DO 1500 I=1,N1 2 64 DSUM=0.0D+00 2 65 DO 1400 J=1,I 3 66 1400 DSUM=DSUM-A(IV(M-I),M-J+1)*P(IV(M-J+1),JJ) 2 67 1500 P(IV(M-I),JJ)=(P(IV(M-I),JJ)+DSUM)/A(IV(M-I),M-I) 1 68 1600 CONTINUE 69 DO 1800 JJ=1,NRS 1 70 DO 1700 IND=1,M 2 71 1700 A(IND,1)=P(IV(IND),JJ) 1 72 DO 1800 IND=1,M 2 73 1800 P(IND,JJ)=A(IND,1) 74 RETURN 75 1900 JFLG=1 76 IDET=0 77 2000 RETURN 78 END 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN DEC 02, 1993 09:42:54 NAME:MATEQ PAGE: 27 0SYMBOL CROSS REFERENCE DICTIONARY 0PROGRAM NAME: MATEQ 0TAGS: A-ARRAY I-INTRINSIC FUNCTION S-ASSIGNED C-COMMON K-NAMED CONSTANT T-EXPLICITLY TYPED D-DUMMY ARGUMENT N-ENTRY V-INITIAL VALUE E-EQUIVALENCED P-PROMOTED X-EXTERNAL SUBPROGRAM F-STATEMENT FUNCTION Q-PADDED Y-DYNAMIC COMMON G-GENERIC NAME R-SUBPROGRAM NAME Z-EXTENDED COMMON 0NAME TYPE TAG DECLARED REFS (F:REFD S:SET B:REFD/MAY BE SET) +______ ____ ______ ________ ________________________________________ 0A R*8 ADT 1 2 24F 28F 31F 45F 46F 48F 48F 48S 54F 57B 62F 66F 67F 71S 73F DABS R*8 I 28 28 DEN R*8 T 3 UNREFERENCED DET R*8 DT 1 2 9S 55S 57B 58F DISIGN R*8 T 3 8S 41F 41S 55F DMATDT X 57F DMULT R*8 T 3 46S 48F 51F DNORM R*8 T 3 24S 28F 31S 42F 48F 51F DSUM R*8 T 3 64S 66F 66S 67F I I*4 12S 13F 13B 15S 17B 18S 19F 19B 63S 65F 66F 67F 67F 67F 67B ICOL I*4 22S 34F 35F 36F ICOL1 I*4 36S 37F IDET I*4 D 1 7S 56F 57B 76S IFLG I*4 25S 29S 33F IM I*4 44S 45F 46F 48F 48F 51F 51B IN I*4 50S 51F 51F 51B IND I*4 70S 71F 71B 72S 73F 73B IPCOL I*4 23S 30S 31F 35F 38F ISAVE I*4 34S 39F IV I*4 AD 1 4 13S 24F 28F 30F 34F 35S 38F 39S 45F 46F 48F 48F 48F 51F 51F 51F 54F 57B 62F 62F 62F 66F 66F 67F 67F 67F 71F J I*4 16S 17B 27S 28F 30B 65S 66F 66B JFLG I*4 D 1 10S 75S JJ I*4 61S 62F 62F 66F 67F 67B 69S 71F 73B K I*4 21S 22F 23F 24F 24F 26F 28F 31F 43F 45F 46F 48F 51B KK I*4 26S 27F K1 I*4 43S 44F 47F L I*4 37S 38F 39B 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN DEC 02, 1993 09:42:54 NAME:MATEQ PAGE: 28 0TAGS: A-ARRAY I-INTRINSIC FUNCTION S-ASSIGNED C-COMMON K-NAMED CONSTANT T-EXPLICITLY TYPED D-DUMMY ARGUMENT N-ENTRY V-INITIAL VALUE E-EQUIVALENCED P-PROMOTED X-EXTERNAL SUBPROGRAM F-STATEMENT FUNCTION Q-PADDED Y-DYNAMIC COMMON G-GENERIC NAME R-SUBPROGRAM NAME Z-EXTENDED COMMON 0NAME TYPE TAG DECLARED REFS (F:REFD S:SET B:REFD/MAY BE SET) +______ ____ ______ ________ ________________________________________ 0LL I*4 D 1 2 M I*4 D 1 11F 12F 15F 16F 18F 20F 27F 37F 44F 47F 54F 54F 57B 60F 62F 62F 62F 62F 66F 66F 66F 67F 67F 67F 67F 70F 72F MATEQ R 1 M1 I*4 11S 21F N I*4 D 1 2 57B NN I*4 47S 48F 48F 48B NRS I*4 5S 6F 14F 20S 49F 50F 59F 61F 69F NRS1 I*4 D 1 5F N1 I*4 60S 63F P R*8 ADT 1 2 17S 19S 51F 51F 51S 62F 62S 66F 67F 67S 71F 73S 0LABEL CROSS REFERENCE DICTIONARY 0TAGS: A-USED AS ARGUMENT F-FORMAT S-USED IN ASSIGN STATEMENT B-OBJECT OF BRANCH N-NON-EXECUTABLE 0 LABEL TAG DEFINED REFERENCED +____________ ___ _______ ___________________________________________ 0 100 13 12 200 B 15 14 300 17 15 16 400 19 18 500 B 21 14 14 600 B 32 27 28 700 40 37 800 B 42 33 900 48 47 1000 51 50 1100 B 52 44 45 49 1200 53 21 1300 60 UNREFERENCED 1400 66 65 1500 67 63 1600 68 61 1700 71 70 1800 73 69 72 1900 B 75 42 54 58 2000 B 77 59 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN DEC 02, 1993 09:42:54 NAME:MATEQ PAGE: 29 0*STATISTICS* SOURCE STATEMENTS: 75, PROGRAM SIZE: 3564 BYTES, PROGRAM NAME: MATEQ, PAGE: 23 *STATISTICS* NO DIAGNOSTICS GENERATED. **MATEQ** END OF COMPILATION 2 ****** TIME STAMP: 93.33609.42.54 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN DEC 02, 1993 09:42:54 PAGE: 30 0OPTIONS IN EFFECT: NOLIST NOMAP XREF GOSTMT NODECK SOURCE TERM OBJECT FIXED TRMFLG SRCFLG NOSYM NORENT SDUMP(ISN) SXM NOVECTOR IL(DIM) NOTEST SC(*) NODC NOEC NOEMODE NOICA NODIRECTIVE NODBCS NOSAA NOPARALLEL NOSAVE NOTABS OPT(2) LANGLVL(77) NOFIPS FLAG(I) AUTODBL(NONE) LINECOUNT(60) CHARLEN(500) 0 IF DO ISN *....*...1.........2.........3.........4.........5.........6.........7.*.......8 0 1 SUBROUTINE MATDT(A,IA,N,DET,IV,IDET) C SUBROUTINE MATDT IS DMATDT FROM THE UICC SUBROUTINE LIBRARY. 2 REAL*8 A(IA,1),DET,B,LOG16 3 INTEGER*4 IV(1),K 4 EQUIVALENCE (B,K) 5 NUM=16777216 6 LOG16=.120411998265592457D+01 7 IF (A(IV(N),N).EQ.0.0D+00) GO TO 300 8 L=0 9 DO 100 I=1,N 1 10 B=DABS(A(IV(I),I)) 1 11 K=K/NUM-64 1 12 L=L+K 1 13 100 DET=DET*(A(IV(I),I)/16.0D+00**K) 14 B=DABS(DET) 15 K=K/NUM-64 16 IW=L+K 17 IF ((IW.LT.-64).OR.(IW.GT.63)) GO TO 200 18 DET=DET*16.0D+00**L 19 IDET=0 20 GO TO 400 21 200 DET=DET*16.0D+00**(-K) 22 IDET=L+K 23 B=IDET*LOG16 24 IDET=B 25 B=B-DFLOAT(IDET) 26 DET=DET*1.0D+01**B 27 GO TO 400 28 300 DET=0.0D+00 29 IDET=0 30 400 RETURN 31 END 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN DEC 02, 1993 09:42:54 NAME:MATDT PAGE: 31 0SYMBOL CROSS REFERENCE DICTIONARY 0PROGRAM NAME: MATDT 0TAGS: A-ARRAY I-INTRINSIC FUNCTION S-ASSIGNED C-COMMON K-NAMED CONSTANT T-EXPLICITLY TYPED D-DUMMY ARGUMENT N-ENTRY V-INITIAL VALUE E-EQUIVALENCED P-PROMOTED X-EXTERNAL SUBPROGRAM F-STATEMENT FUNCTION Q-PADDED Y-DYNAMIC COMMON G-GENERIC NAME R-SUBPROGRAM NAME Z-EXTENDED COMMON 0NAME TYPE TAG DECLARED REFS (F:REFD S:SET B:REFD/MAY BE SET) +______ ____ ______ ________ ________________________________________ 0A R*8 ADT 1 2 7F 10F 13F B R*8 ET 2 4 10S 14S 23S 24F 25F 25S 26F DABS R*8 I 10 14 DET R*8 DT 1 2 13F 13S 14F 18F 18S 21F 21S 26F 26S 28S DFLOAT R*8 I 25 I I*4 9S 10F 10F 13F 13B IA I*4 D 1 2 IDET I*4 D 1 19S 22S 23F 24S 25F 29S IV I*4 ADT 1 3 7F 10F 13F IW I*4 16S 17F 17F K I*4 ET 3 4 11F 11S 12F 13F 15F 15S 16F 21F 22F L I*4 8S 12F 12S 16F 18F 22F LOG16 R*8 T 2 6S 23F MATDT R 1 N I*4 D 1 7F 7F 9F NUM I*4 5S 11F 15F 0LABEL CROSS REFERENCE DICTIONARY 0TAGS: A-USED AS ARGUMENT F-FORMAT S-USED IN ASSIGN STATEMENT B-OBJECT OF BRANCH N-NON-EXECUTABLE 0 LABEL TAG DEFINED REFERENCED +____________ ___ _______ ___________________________________________ 0 100 13 9 200 B 21 17 300 B 28 7 400 B 30 20 27 0*STATISTICS* SOURCE STATEMENTS: 31, PROGRAM SIZE: 1552 BYTES, PROGRAM NAME: MATDT, PAGE: 30 *STATISTICS* NO DIAGNOSTICS GENERATED. **MATDT** END OF COMPILATION 3 ****** TIME STAMP: 93.33609.42.54 1LEVEL 2.5.0 (JUNE 1991) VS FORTRAN DEC 02, 1993 09:42:54 PAGE: 32 0SUMMARY OF MESSAGES AND STATISTICS FOR ALL COMPILATIONS 0 NUMBER MODULE LEVEL ISN VS FORTRAN ERROR MESSAGES + ______ ______ _____ ___ __ _______ _____ ________ 0ILX2510I CONN 4(W) A POSSIBLE BRANCH INTO THE RANGE OF A DO LOOP, PARALLEL DO LOOP, OR PARALLEL SECTION AT USER LABEL "200" (AT ISN "54") FROM OUTSIDE THE RANGE OF THE LOOP OR SECTION HAS BEEN DETECTED AT ISN "49". THIS IS NOT VALID IN LANGLVL 77 PROGRAMS AND MAY CAUSE UNPREDICTABLE RESULTS. 0ILX3470I VPCQ 0(I) "IVAR,XMN2LL,XMN2OL" MAY BE UNINITIALIZED WHEN USED 0*STATISTICS* SOURCE STATEMENTS: 420, PROGRAM SIZE: 576260 BYTES, PROGRAM NAME: MAIN#, PAGE: 1 *STATISTICS* 2 DIAGNOSTICS GENERATED. HIGHEST SEVERITY CODE IS 4. **MAIN#** END OF COMPILATION 1 ****** TIME STAMP: 93.33609.42.54 0*STATISTICS* SOURCE STATEMENTS: 75, PROGRAM SIZE: 3564 BYTES, PROGRAM NAME: MATEQ, PAGE: 23 *STATISTICS* NO DIAGNOSTICS GENERATED. **MATEQ** END OF COMPILATION 2 ****** TIME STAMP: 93.33609.42.54 0*STATISTICS* SOURCE STATEMENTS: 31, PROGRAM SIZE: 1552 BYTES, PROGRAM NAME: MATDT, PAGE: 30 *STATISTICS* NO DIAGNOSTICS GENERATED. **MATDT** END OF COMPILATION 3 ****** TIME STAMP: 93.33609.42.54 0******* SUMMARY STATISTICS ******* 2 DIAGNOSTICS GENERATED. HIGHEST SEVERITY CODE IS 4.