C DEMOF3.FOR VERSION PROVIDED C THIS PROGRAM PRODUCES A PLOT ON THE TERMINAL C OF AN EXTERNAL FUNCTION, FUN(X,Y) C THE LIMITS OF THE PLOT ARE DETERMINED BY THE DATA STATEMENTS C "STAB" IS FILLED WITH A TABLE OF HEIGHT FLAGS C "STRING" IS USED TO BUILD A LINE OF GRAPH FOR PRINTING C LOGICAL*1 STRING(13,3),STAB(100) DATA XMIN,XMAX,MAXX/ -5.0, 5.0, 45/ DATA YMIN,YMAX,MAXY/ -5.0 ,5.0, 72/ DATA FMIN,FMAX/0.0,1.0/ C SCAL(ZMIN,ZMAX,MAXZ,K)=ZMIN+FLOAT(K-1)*(ZMAX-ZMIN)/FLOAT(MAXZ-1) C CALL SCOPY('- 1 2 3 4 5 6 7 8 9 +',STAB) MAXF=LEN(STAB) DO 20 IX=1,MAXX X=SCAL(XMIN,XMAX,MAXX,IX) CALL REPEAT('*',STRING,MAXY) IF(IX.EQ.1 .OR. IX.EQ.MAXX) GOTO 20 DO 10 IY=2,MAXY-1 Y=SCAL(YMIN,YMAX,MAXY,IY) IFUN = 2 + INT(FLOAT(MAXF-3)*(FUN(X,Y)-FMIN)/(FMAX-FMIN)) 10 STRING(IY)=STAB(MIN0(MAXF,MAX0(1,IFUN))) 30 WRITE (7, 1001) (STRING(I),I=1,MAXY) 1001 FORMAT (' ', 72A1) CALL EXIT END C FUNCTION FUN(X,Y) R=SQRT(X**2+Y**2) FUN=X*Y*R*EXP(-R))**2 RETURN END