SUBROUTINE TDASHC (IERROR) C C LATEST REVISION MAY 1984 C C PURPOSE TO PROVIDE A DEMONSTRATION OF DASHCHAR C AND TO TEST DASHCHAR ON A SIMPLE PROBLEM C C USAGE CALL TDASHC (IERROR) C C ARGUMENTS C C ON OUTPUT IERROR C AN INTEGER VARIABLE C = 0, IF THE TEST IS SUCCESSFUL, C = 1, OTHERWISE C C I/O IF THE TEST IS SUCCESSFUL, THE MESSAGE C C DASHCHAR TEST SUCCESSFUL . . . SEE PLOT C TO VERIFY PERFORMANCE C C IS PRINTED ON UNIT 6. C C IN ADDITION, ONE FRAME CONTAINING THE C DASHED LINE PLOT IS PRODUCED ON THE C MACHINE GRAPHICS DEVICE. TO DETERMINE C IF THE TEST IS SUCCESSFUL, IT IS NECESSARY C TO EXAMINE THIS PLOT. C C PRECISION SINGLE C C REQUIRED LIBRARY DASHCHAR C FILES C C LANGUAGE FORTRAN C C ALGORITHM TDASHC UTILIZES THE SOFTWARE DASHCHAR C SUBROUTINES DASHDB, DASHDC, FRSTD, VECTD, C LINED AND CURVED TO DRAW FIVE CURVES ON ONE C PICTURE USING FIVE DIFFERENT DASHCHAR C PATTERNS. EACH CURVE IS CENTERED ABOUT C SOLID AXIS LINES AND LABELLED WITH THE C CHARACTER REPRESENTATION OF THE DASHCHAR C PATTERN USED. C C PORTABILITY FORTRAN 77 C C X CONTAINS ABSCISSAE VALUES OF THE CURVE TO BE PLOTTED, Y CONTAINS C ORDINATE VALUES OF THE CURVE TO BE PLOTTED. C DIMENSION X(31) ,Y(31) C C SELECT NORMALIZATION TRANSFORMATION 0 C CALL GSELNT(0) C C SET SOLID DASH PATTERN, 1111111111111111 (BINARY). C BOOLEAN OPERATIONS (EMPLOYING LOCALLY-IMPLEMENTED SUPPORT C ROUTINES) ARE USED FOR PORTABILITY TO HOSTS WITH 16 BIT C INTEGERS. C ISOLID = IOR (ISHIFT (32767,1), 1) C DO 130 K=1,5 CALL DASHDB (ISOLID) ORG =1.07-0.195*K C C DRAW CENTRAL AXIS FOR EACH CURVE C CALL FRSTD (.50,ORG-0.03) CALL VECTD (.50,ORG+0.03) CALL LINED (.109,ORG,.891,ORG) C C CALL SUBROUTINE DASHDC WITH A DIFFERENT DASHED LINE AND CHARACTER C COMBINATION FOR EACH OF FIVE CURVES C GO TO ( 10, 20, 30, 40, 50),K 10 CALL DASHDC ('$''$''$''$''$''$''$''$K = 1',10,12) GO TO 60 20 CALL DASHDC ('$$$$$$''$''$$$$$$K = 2',10,12) GO TO 60 30 CALL DASHDC ('$$$$''$$$$''$$$$''K = 3',10,12) GO TO 60 40 CALL DASHDC ('$$$$$''''''''''$$$$$K = 4',10,12) GO TO 60 50 CALL DASHDC ('$$$''$$$''$$$''$$$K = 5',10,12) 60 CONTINUE C C COMPUTE VALUES FOR AND DRAW THE KTH CURVE C DO 70 I=1,31 THETA = FLOAT(I-1)*3.1415926535897932/15. X(I) = 0.5+.4*COS(THETA) Y(I) = ORG+.075*SIN(FLOAT(K)*THETA) 70 CONTINUE CALL CURVED (X,Y,31) C C LABEL EACH CURVE WITH THE APPROPRIATE CHARACTER REPRESENTATION C OF THE DASHCHAR PATTERN. IN THE PATTERN LABELS, A AND D C SHOULD BE INTERPRETED AS APOSTROPHE AND DOLLAR SIGN. C C SET TEXT ALIGNMENT TO CENTER THE STRING AT THE LEFT OF THE C STRING AND IN THE VERTICAL CENTER C CALL GSTXAL(1,3) C C SET CHARACTER HEIGHT C CALL GSCHH(.012) C ORY = ORG+.089 GO TO ( 80, 90,100,110,120),K 80 CALL GTX(.1,ORY,'IPAT=DADADADADADADADK=1') GO TO 130 90 CALL GTX(.1,ORY,'IPAT=DDDDDDADADDDDDDK=2') GO TO 130 100 CALL GTX(.1,ORY,'IPAT=DDDDADDDDADDDDAK=3') GO TO 130 110 CALL GTX(.1,ORY,'IPAT=DDDDDAAAAADDDDDK=4') GO TO 130 120 CALL GTX(.1,ORY,'IPAT=DDDADDDADDDADDDK=5') C 130 CONTINUE C CALL GSTXAL(2,3) CALL GTX (.5,.991,'DEMONSTRATION PLOT FOR DASHCHAR') CALL GTX (.5,.015,'IN IPAT STRINGS, A AND D SHOULD BE INTERPRETED 1AS APOSTROPHE AND DOLLAR SIGN') C C ADVANCE FRAME C c + noao: no need for clearing terminal c CALL NEWFM c - noao C IERROR = 0 C WRITE (6,1001) C RETURN C C C1001 FORMAT (' DASHCHAR TEST SUCCESSFUL',24X, C 1 'SEE PLOT TO VERIFY PERFORMANCE') C END