C C .................................................................. C C SAMPLE MAIN PROGRAM FOR MATRIX ADDITION - ADSAM C C PURPOSE C MATRIX ADDITION SAMPLE PROGRAM C C SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED C MADD C MATIN C MXOUT C LOC C C METHOD C TWO INPUT MATRICES ARE READ FROM THE STANDARD INPUT DEVICE. C THEY ARE ADDED AND THE RESULTANT MATRIX IS LISTED ON C THE STANDARD OUTPUT DEVICE. THIS CAN BE REPEATED FOR ANY C NUMBER OF PAIRS OF MATRICES UNTIL A BLANK CARD IS C ENCOUNTERED C C .................................................................. C C MATRICES ARE DIMENSIONED FOR 1000 ELEMENTS. THEREFORE, PRODUCT C OF NUMBER OF ROWS BY NUMBER OF COLUMNS CANNOT EXCEED 1000. C DIMENSION A(1000),B(1000),R(1000) C 10 FORMAT(1H1,15HMATRIX ADDITION) 11 FORMAT(1H0,44HDIMENSIONED AREA TOO SMALL FOR INPUT MATRIX ,I4) 12 FORMAT(1H0,20HEXECUTION TERMINATED) 13 FORMAT(1H0,32HMATRIX DIMENSIONS NOT CONSISTENT) 14 FORMAT(1H0,42HINCORRECT NUMBER OF DATA CARDS FOR MATRIX ,I4) 15 FORMAT(1H0,18HGO ON TO NEXT CASE) 16 FORMAT(1H0,11HEND OF CASE) C OPEN (UNIT=5, DEVICE='CDR', ACCESS='SEQIN') C OPEN (UNIT=6, DEVICE='LPT', ACCESS='SEQOUT') C C .................................................................. C WRITE(6,10) 20 CALL MATIN(ICODA,A,1000,NA,MA,MSA,IER) IF( NA ) 25,95,25 25 IF(IER-1) 40,30,35 30 WRITE(6,11) ICODA GO TO 45 35 WRITE(6,14) ICODA 37 WRITE(6,12) GO TO 95 40 CALL MXOUT(ICODA,A,NA,MA,MSA,60,120,2) 45 CALL MATIN(ICODB,B,1000,NB,MB,MSB,IER) IF(IER-1) 60,50,55 50 WRITE(6,11) ICODB WRITE(6,15) GO TO 20 55 WRITE(6,14) ICODB GO TO 37 60 IF(NA-NB) 75,70,75 70 IF(MA-MB) 75,80,75 75 WRITE(6,13) WRITE(6,15) GO TO 20 80 CALL MXOUT(ICODB,B,NB,MB,MSB,60,120,2) ICODR=ICODA+ICODB CALL MADD(A,B,R,NA,MA,MSA,MSB) MSR=MSA IF(MSA-MSB) 90,90,85 85 MSR=MSB 90 CALL MXOUT(ICODR,R,NA,MA,MSR,60,120,2) WRITE(6,16) GO TO 20 95 CONTINUE END