GDDM-GKS V1R1 Programming Guide and Reference
Previous topic | Next topic | Contents | Index | Contact z/OS | Library | PDF | BOOK


Appendix E. Example programs

GDDM-GKS V1R1 Programming Guide and Reference
SC33-0334-00



This appendix contains two example programs:


    METOUT
    displays a GDDM-GKS metafile, or saves the picture as a GDF file.
    
    
    METCNV
    converts data in a GDDM-GKS metafile to its character equivalent (or the reverse operation).
    
    

Both programs are written for the VS FORTRAN compiler.


     C********************************************************************** 01200000
     C*                 5666-802                                           * 01800000
     C*                 (C) COPYRIGHT IBM CORP. 1979,1987                  * 02400000
     C*                 LICENSED MATERIALS - PROPERTY OF IBM               * 03000000
     C*                                                                    * 03600000
     C*                         METOUT                                     * 04200000
     C*                                                                    * 04800000
     C*   Program to display a metafile created by GDDM-GKS                * 05400000
     C*   and/or save the picture as a GDF file.                           * 06000000
     C*                                                                    * 06600000
     C*   The program requests the number of the metafile                  * 07200000
     C*   to be input and then whether the picture is to be displayed      * 07800000
     C*   or saved as GDF                                                  * 08400000
     C*   If the picture is to be saved the GDF file number is             * 09000000
     C*   requested                                                        * 09600000
     C*                                                                    * 10200000
     C*   If the file cannot be found, or another error                    * 10800000
     C*   is detected, the error message is displayed.                     * 11400000
     C*                                                                    * 12000000
     C*   The program terminates when the picture has been                 * 12600000
     C*   displayed and the ENTER key has been pressed, or when            * 13200000
     C*   the picture has been saved.                                      * 13800000
     C*                                                                    * 14400000
     C*                                                                    * 15000000
     C********************************************************************** 15600000
     C                                                                       16200000
     C                                                                       16800000
     C   Connection identifier for input metafile                            17400000
           INTEGER METAN                                                     18000000
     C   Returned choice data                                                18600000
           INTEGER STAT,CHNR                                                 19200000
     C   Metafile item data                                                  19800000
     C   - This program assumes that any item data record will fit in to     20400000
     C     a data record of 100 * 80 characters.                             21000000
           INTEGER MITYP,MILEN                                               21600000
           PARAMETER (MAXREC=10)                                             21900000
           PARAMETER (MAXLEN=MAXREC*80)                                      22200000
           CHARACTER*80 DATREC(MAXREC)                                       22500000
     C                                                                       22800000
     C   Response to prompt for Display or Save action                       23400000
           CHARACTER ACTION /'D'/                                            24000000
     C                                                                       24600000
     C   Workstation connection identifier and type                          25200000
           INTEGER CONNID /1/, WKTYPE /1/                                    25800000
     C                                                                       26400000
     C   GKS Operating state                                                 27000000
           INTEGER OPSTAT /0/                                                27600000
     C                                                                       28200000
     C   ERROR HANDLING                                                      28800000
     C                                                                       29400000
           INTEGER*4 ERRIND /0/                                              30000000
     C                                                                       30600000
     C********************************************************************** 31200000
     C**                                                                  ** 31800000
     C**       MAIN PROGRAM                                               ** 32400000
     C**                                                                  ** 33000000
     C********************************************************************** 33600000
     C*  Output header                                                       34200000
     C                                                                       34800000
           WRITE (*,*) ' '                                                   35400000
           WRITE (*,*) 'METOUT sample program  '                             36000000
           WRITE (*,*) ' '                                                   36600000
     C                                                                       37200000
     C Initialize the input metafile number                                  37800000
     C the output workstation connection identifier is 1 by default          38400000
     C                                                                       39000000
           METAN = -1                                                        39600000
     C                                                                       40200000
     C Request the metafile number from the operator                         40800000
     C                                                                       41400000
           WRITE (*,*) 'type the input metafile identifier (0 to 9999)'      42000000
           READ  (*,*,END=50) METAN                                          42600000
     50    CONTINUE                                                          43200000
     C                                                                       43800000
     C Check the returned metafile number                                    44400000
     C                                                                       45000000
           IF ((METAN.LT.0).OR.(METAN.GT.9999)) THEN                         45600000
             WRITE(*,*) 'Metafile identifier is invalid'                     46200000
             GOTO 9999                                                       46800000
           ENDIF                                                             47400000
     C                                                                       48000000
     C Request the action to be performed                                    48600000
     C                                                                       49200000
           WRITE (*,*) 'Type D to display or S to save the picture as GDF'   49800000
           ACTION='D'                                                        50000000
           READ(*,'(A)',END=100) ACTION                                      51000000
     100   CONTINUE                                                          51600000
     C                                                                       52200000
     C Request the GDF file connection id if Save was requested              52800000
     C                                                                       53400000
           IF (ACTION.EQ.'S') THEN                                           54000000
             WRITE (*,*) 'Type output GDF file identifier (0 to 9999)'       54600000
             READ  (*,*,END=150) CONNID                                      55200000
     150     CONTINUE                                                        55800000
     C                                                                       56400000
     C Check the returned GDF file connection id                             57000000
     C                                                                       57600000
             IF ((CONNID.LT.0).OR.(CONNID.GT.9999)) THEN                     58200000
               WRITE(*,*) 'GDF file identifier is invalid'                   58800000
               GOTO 9999                                                     59400000
             ENDIF                                                           60000000
     C And set the rquested workstation type: GDF file output                60600000
           WKTYPE = 5                                                        61200000
           ENDIF                                                             61800000
     C********************************************************************** 62400000
     C**                                                                  ** 63000000
     C**         OPEN GKS AND THE REQUIRED WORKSTATIONS                   ** 63600000
     C********************************************************************** 64200000
     C** This program uses error file ADMJ0000                               64800000
           CALL GOPKS(0,0)                                                   65400000
     C** Open the workstation required for output                            66000000
           CALL GOPWK(1,CONNID,WKTYPE)                                       66600000
     C** and activate it                                                     67200000
           CALL GACWK(1)                                                     67800000
     C** Open the metafile input workstation                                 68500000
           CALL GOPWK(2,METAN,4)                                             69200000
     C                                                                       69900000
     C   Now perform a loop retrieving the item type, item length and the    70600000
     C   data record for each item and then interpreting the item            71300000
     C                                                                       72000000
     5000  CONTINUE                                                          72700000
     C- Get the item type and length                                         73400000
           CALL GGTITM(2,MITYP,MILEN)                                        74100000
     C- If the item is the END item we must leave the loop                   74800000
           IF (MITYP.EQ.0) GOTO 5999                                         75500000
     C- else - skip the item if the data record will not fit in datrec       75700000
     C         or it is a user item                                          76000000
             IF ((MILEN.GT.MAXLEN).OR.(MITYP.GT.100)) THEN                   76200000
               CALL GRDITM(2,0,MAXREC,DATREC)                                76600000
             ELSE                                                            76900000
     C-      - read and the item data record                                 77200000
               CALL GRDITM(2,MILEN,MAXREC,DATREC)                            77500000
     C-        and interpret the item                                        77600000
               CALL GIITM(MITYP,MILEN,MAXREC,DATREC)                         78100000
             ENDIF                                                           78300000
     C-        continue with the next item                                   78700000
             GOTO 5000                                                       79000000
     5999  CONTINUE                                                          79700000
     C-  update the workstation to ensure display is correct                 80400000
           CALL GUWK(1,1)                                                    81100000
     C-  If the output workstation is the console request enter key from     81800000
     C   the operator                                                        82500000
           IF (WKTYPE.EQ.1) CALL GRQCH(1,1,STAT,CHNR)                        83200000
     C-  Deactivate the output workstation                                   83900000
           CALL GDAWK(1)                                                     84600000
     C-  and close it                                                        85300000
           CALL GCLWK(1)                                                     86000000
     C-  close the metafile input workstation                                86700000
           CALL GCLWK(2)                                                     87400000
     C-  close GKS                                                           88100000
           CALL GCLKS                                                        88800000
     9999  CONTINUE                                                          89500000
     C**** Termination                                                       90200000
           STOP                                                              90900000
           END                                                               91600000
     C                                                                       92300000
     C                                                                       93000000
           SUBROUTINE GERHND (ERRNR,FCTID,ERRFIL)                            93700000
     C********************************************************************** 94400000
     C GERHND - This subroutine replaces GKS default error handling        * 95100000
     C********************************************************************** 95800000
           INTEGER ERRNR,FCTID,ERRFIL                                        96500000
     C- Call GERLOG to perform error logging                                 97200000
           CALL GERLOG (ERRNR,FCTID,ERRFIL)                                  97900000
           RETURN                                                            98600000
           END                                                               99300000


     C     ******************************************************************00100000
     C     **  P R O G R A M   M E T C N V                                 **00200000
     C     ******************************************************************00300000
     C     **                                                              **00400000
     C     **           5666-802                                           **00600000
     C     **           (C) COPYRIGHT IBM CORP. 1987                       **00800000
     C     **           LICENSED MATERIALS - PROPERTY OF IBM               **01000000
     C     **                                                              **01200000
     C     **  This program converts data between a GKS metafile and a     **01400000
     C     **  character equivalent of that data.  The conversion can be   **01600000
     C     **  done in either direction (metafile to character or char-    **01800000
     C     **  acter to metafile).                                         **02000000
     C     **                                                              **02200000
     C     **  Three I/O units (datasets) are used:                        **02400000
     C     **  - input options are read from unit "IIN"                    **02600000
     C     **  - output messages are written to unit "IOUT"                **02800000
     C     **  - the character form of the metafile is read from or        **03000000
     C     **    written to unit "ICHR".                                   **03200000
     C     **                                                              **03400000
     C     ******************************************************************03600000
     C                                                                       03800000
           PROGRAM METCNV                                                    04000000
     C                                                                       04200000
     C**** DATA RECORD ARRAY                                                 04400000
           PARAMETER (MAXREC=10)                                             04600000
           PARAMETER (MAXLEN=MAXREC*80)                                      04800000
           CHARACTER*80 DATREC(MAXREC)                                       05000000
     C                                                                       05200000
     C**** CHAR/INTEGER/REAL EQUIVALENTS OF "DATREC"                         05400000
           PARAMETER (MXCDAT=MAXREC*80)                                      05600000
           PARAMETER (MXIDAT=MXCDAT/4)                                       05800000
           PARAMETER (MXRDAT=MXCDAT/4)                                       06000000
           CHARACTER*1  CDAT(MXCDAT)                                         06200000
           DIMENSION    IDAT(MXIDAT)                                         06400000
           DIMENSION    RDAT(MXRDAT)                                         06600000
           EQUIVALENCE (DATREC(1),CDAT(1),IDAT(1),RDAT(1))                   06800000
     C                                                                       07000000
     C**** CONVERSION TYPE                                                   07200000
           PARAMETER (ICNVMC=1)                                              07400000
           PARAMETER (ICNVCM=2)                                              07600000
     C**** MAXIMUM (NON-USER) METAFILE ITEM TYPE                             07800000
           PARAMETER (MAXTYP=100)                                            08000000
     C                                                                       08200000
     C                                                                       08400000
     C     ******************************************************************08600000
     C     **  I N I T I A L I S A T I O N                                 **08800000
     C     ******************************************************************09000000
     C                                                                       09200000
     C**** INITIALISE INPUT/OUTPUT UNIT NUMBERS                              09400000
           IIN=5                                                             09600000
           IOUT=6                                                            09800000
           ICHR=7                                                            10000000
     C**** INITIALISE GKS WORKSTATION IDENTIFIER                             10200000
           IWKID=1                                                           10400000
     C                                                                       10600000
     C**** GET TYPE OF CONVERSION REQUIRED                                   10800000
           WRITE(IOUT,100)ICNVMC,ICNVCM                                      11000000
       100 FORMAT(/1X,'ENTER TYPE OF CONVERSION REQUIRED:'/                  11200000
          &  3X,I1,' = METAFILE TO CHARACTER'/                               11400000
          &  3X,I1,' = CHARACTER TO METAFILE')                               11600000
           READ(IIN,110)ICNV                                                 11800000
       110 FORMAT(I1)                                                        12000000
     C**** CHECK VALUE ENTERED                                               12200000
           IF (ICNV.EQ.ICNVCM.OR.ICNV.EQ.ICNVMC) THEN                        12400000
             WRITE(IOUT,120)ICNV                                             12600000
       120   FORMAT(/1X,'CONVERSION TYPE SPECIFIED = ',I1)                   12800000
           ELSE                                                              13000000
             WRITE(IOUT,130)ICNV                                             13200000
       130   FORMAT(/1X,'CONVERSION TYPE ',I1,' IS NOT VALID.'/              13400000
          &    3X,'EXECUTION IS TERMINATED.')                                13600000
             GOTO 3300                                                       13800000
           ENDIF                                                             14000000
     C                                                                       14200000
     C**** GET NUMBER OF METAFILE TO BE USED                                 14400000
           WRITE(IOUT,150)                                                   14600000
       150 FORMAT(/1X,'ENTER NUMBER OF METAFILE TO BE USED (1-4 DIGITS):')   14800000
           READ(IIN,160)IFILE                                                15000000
       160 FORMAT(BN,I4)                                                     15200000
     C**** CHECK VALUE ENTERED                                               15400000
           IF (IFILE.GE.0) THEN                                              15600000
             WRITE(IOUT,170)IFILE                                            15800000
       170   FORMAT(/1X,'METAFILE NUMBER SPECIFIED = ',I4)                   16000000
           ELSE                                                              16200000
             WRITE(IOUT,180)IFILE                                            16400000
       180   FORMAT(/BN,1X,'METAFILE NUMBER ',I4,' IS NOT VALID.'/           16600000
          &    3X,'EXECUTION IS TERMINATED.')                                16800000
             GOTO 3300                                                       17000000
           ENDIF                                                             17200000
     C                                                                       17400000
     C**** OPEN GKS                                                          17600000
           CALL GOPKS (0,0)                                                  17800000
     C**** OPEN APPROPRIATE METAFILE WORKSTATION (INPUT OR OUTPUT)           18000000
           IF (ICNV.EQ.ICNVCM) THEN                                          18200000
             CALL GOPWK (IWKID,IFILE,3)                                      18400000
             CALL GACWK (IWKID)                                              18600000
           ELSE                                                              18800000
             CALL GOPWK (IWKID,IFILE,4)                                      19000000
           ENDIF                                                             19200000
     C**** INITIALIZE METAFILE ITEM COUNTER                                  19400000
           INUM=0                                                            19600000
     C                                                                       19800000
     C                                                                       20000000
     C     ******************************************************************20200000
     C     **  M E T A F I L E   I T E M   L O O P                         **20400000
     C     ******************************************************************20600000
     C                                                                       20800000
     C**** PROCESS METAFILE ITEMS                                            21000000
       200 INUM=INUM+1                                                       21200000
     C                                                                       21400000
     C**** READ/GET ITEM TYPE AND LENGTH                                     21600000
           IF (ICNV.EQ.ICNVCM) THEN                                          21800000
             READ (ICHR,900)ITYP,ILEN                                        22000000
           ELSE                                                              22200000
             CALL GGTITM (IWKID,ITYP,ILEN)                                   22400000
           ENDIF                                                             22600000
     C                                                                       22800000
     C**** CHECK THAT "DATREC" CAN CONTAIN ALL THE DATA                      23000000
           IF (ILEN.GT.MAXLEN) THEN                                          23200000
             WRITE(IOUT,220)INUM,ITYP,ILEN,MAXLEN                            23400000
       220   FORMAT(/1X,'METAFILE ITEM ',I6,' WITH TYPE = ',I6,              23600000
          &    ' AND LENGTH = ',I6,' IS TOO LONG.'/                          23800000
          &    3X,'EXECUTION IS TERMINATED. (MAX LENGTH SUPPORTED = ',I6,')')24000000
             GOTO 3200                                                       24200000
           ENDIF                                                             24400000
     C                                                                       24600000
     C**** GET ITEM DATA, AND WRITE ITEM TYPE AND LENGTH                     24800000
           IF (ICNV.EQ.ICNVMC) THEN                                          25000000
             CALL GRDITM (IWKID,MAXLEN,MAXREC,DATREC)                        25200000
             WRITE(ICHR,900)ITYP,ILEN                                        25400000
           ENDIF                                                             25600000
     C                                                                       25800000
     C**** READ/WRITE ITEM DATA ACCORDING TO ITEM TYPE                       26000000
           IF (ITYP.EQ. 0) GOTO 1000                                         26200000
           IF (ITYP.EQ. 1) GOTO 1001                                         26400000
           IF (ITYP.EQ. 2) GOTO 1002                                         26600000
           IF (ITYP.EQ. 3) GOTO 1003                                         26800000
           IF (ITYP.EQ. 4) GOTO 1004                                         27000000
           IF (ITYP.EQ. 5) GOTO 1005                                         27200000
           IF (ITYP.EQ.11) GOTO 1011                                         27400000
           IF (ITYP.EQ.12) GOTO 1012                                         27600000
           IF (ITYP.EQ.13) GOTO 1013                                         27800000
           IF (ITYP.EQ.14) GOTO 1014                                         28000000
           IF (ITYP.EQ.15) GOTO 1015                                         28200000
           IF (ITYP.EQ.21) GOTO 1021                                         28400000
           IF (ITYP.EQ.22) GOTO 1022                                         28600000
           IF (ITYP.EQ.23) GOTO 1023                                         28800000
           IF (ITYP.EQ.24) GOTO 1024                                         29000000
           IF (ITYP.EQ.25) GOTO 1025                                         29200000
           IF (ITYP.EQ.26) GOTO 1026                                         29400000
           IF (ITYP.EQ.27) GOTO 1027                                         29600000
           IF (ITYP.EQ.28) GOTO 1028                                         29800000
           IF (ITYP.EQ.29) GOTO 1029                                         30000000
           IF (ITYP.EQ.30) GOTO 1030                                         30200000
           IF (ITYP.EQ.31) GOTO 1031                                         30400000
           IF (ITYP.EQ.32) GOTO 1032                                         30600000
           IF (ITYP.EQ.33) GOTO 1033                                         30800000
           IF (ITYP.EQ.34) GOTO 1034                                         31000000
           IF (ITYP.EQ.35) GOTO 1035                                         31200000
           IF (ITYP.EQ.36) GOTO 1036                                         31400000
           IF (ITYP.EQ.37) GOTO 1037                                         31600000
           IF (ITYP.EQ.38) GOTO 1038                                         31800000
           IF (ITYP.EQ.39) GOTO 1039                                         32000000
           IF (ITYP.EQ.40) GOTO 1040                                         32200000
           IF (ITYP.EQ.41) GOTO 1041                                         32400000
           IF (ITYP.EQ.42) GOTO 1042                                         32600000
           IF (ITYP.EQ.43) GOTO 1043                                         32800000
           IF (ITYP.EQ.44) GOTO 1044                                         33000000
           IF (ITYP.EQ.51) GOTO 1051                                         33200000
           IF (ITYP.EQ.52) GOTO 1052                                         33400000
           IF (ITYP.EQ.53) GOTO 1053                                         33600000
           IF (ITYP.EQ.54) GOTO 1054                                         33800000
           IF (ITYP.EQ.55) GOTO 1055                                         34000000
           IF (ITYP.EQ.56) GOTO 1056                                         34200000
           IF (ITYP.EQ.61) GOTO 1061                                         34400000
           IF (ITYP.EQ.71) GOTO 1071                                         34600000
           IF (ITYP.EQ.72) GOTO 1072                                         34800000
           IF (ITYP.EQ.81) GOTO 1081                                         35000000
           IF (ITYP.EQ.82) GOTO 1082                                         35200000
           IF (ITYP.EQ.83) GOTO 1083                                         35400000
           IF (ITYP.EQ.84) GOTO 1084                                         35600000
           IF (ITYP.EQ.91) GOTO 1091                                         35800000
           IF (ITYP.EQ.92) GOTO 1092                                         36000000
           IF (ITYP.EQ.93) GOTO 1093                                         36200000
           IF (ITYP.EQ.94) GOTO 1094                                         36400000
           IF (ITYP.EQ.95) GOTO 1095                                         36600000
           IF (ITYP.GT.100) GOTO 1100                                        36800000
     C                                                                       37000000
     C**** UNSUPPORTED ITEM TYPE                                             37200000
           WRITE(IOUT,250)INUM,ITYP                                          37400000
       250 FORMAT(/1X,'METAFILE ITEM ',I6,' WITH TYPE = ',I6,                37600000
          &  ' IS NOT SUPPORTED.'/3X,'EXECUTION IS TERMINATED.')             37800000
           GOTO 3200                                                         38000000
     C                                                                       38200000
     C**** METAFILE-ITEM HEADER                                              38400000
       900 FORMAT(2I15)                                                      38600000
     C**** METAFILE-ITEM DATA (CHARACTER)                                    38800000
       901 FORMAT(80A1)                                                      39000000
     C**** METAFILE-ITEM DATA (INTEGER)                                      39200000
       902 FORMAT(5I15)                                                      39400000
     C**** METAFILE-ITEM DATA (REAL)                                         39600000
       903 FORMAT(1P5E15.6)                                                  39800000
     C                                                                       40000000
     C**** END ITEM                                                          40200000
      1000 CONTINUE                                                          40400000
     C**** REDRAW ALL SEGMENTS                                               40600000
      1002 CONTINUE                                                          40800000
     C**** CLOSE SEGMENT                                                     41000000
      1082 CONTINUE                                                          41200000
     C**** READ/WRITE ITEM DATA                                              41400000
           GOTO 2000                                                         41600000
     C                                                                       41800000
     C**** CLEAR WORKSTATION                                                 42000000
      1001 CONTINUE                                                          42200000
     C**** UPDATE WORKSTATION                                                42400000
      1003 CONTINUE                                                          42600000
     C**** POLYLINE INDEX                                                    42800000
      1021 CONTINUE                                                          43000000
     C**** LINETYPE                                                          43200000
      1022 CONTINUE                                                          43400000
     C**** POLYLINE COLOR INDEX                                              43600000
      1024 CONTINUE                                                          43800000
     C**** POLYMARKER INDEX                                                  44000000
      1025 CONTINUE                                                          44200000
     C**** MARKER TYPE                                                       44400000
      1026 CONTINUE                                                          44600000
     C**** POLYMARKER COLOR INDEX                                            44800000
      1028 CONTINUE                                                          45000000
     C**** TEXT INDEX                                                        45200000
      1029 CONTINUE                                                          45400000
     C**** TEXT COLOR INDEX                                                  45600000
      1033 CONTINUE                                                          45800000
     C**** TEXT PATH                                                         46000000
      1035 CONTINUE                                                          46200000
     C**** FILL AREA INDEX                                                   46400000
      1037 CONTINUE                                                          46600000
     C**** FILL AREA INTERIOR STYLE                                          46800000
      1038 CONTINUE                                                          47000000
     C**** FILL AREA STYLE INDEX                                             47200000
      1039 CONTINUE                                                          47400000
     C**** FILL AREA COLOR INDEX                                             47600000
      1040 CONTINUE                                                          47800000
     C**** PICK IDENTIFIER                                                   48000000
      1044 CONTINUE                                                          48200000
     C**** CREATE SEGMENT                                                    48400000
      1081 CONTINUE                                                          48600000
     C**** DELETE SEGMENT                                                    48800000
      1084 CONTINUE                                                          49000000
     C**** READ/WRITE ITEM DATA                                              49200000
           IF (ICNV.EQ.ICNVCM) THEN                                          49400000
             READ (ICHR,902)IDAT(1)                                          49600000
           ELSE                                                              49800000
             WRITE(ICHR,902)IDAT(1)                                          50000000
           ENDIF                                                             50200000
           GOTO 2000                                                         50400000
     C                                                                       50600000
     C**** DEFERRAL STATE                                                    50800000
      1004 CONTINUE                                                          51000000
     C**** TEXT FONT AND PRECISION                                           51200000
      1030 CONTINUE                                                          51400000
     C**** TEXT ALIGNMENT                                                    51600000
      1036 CONTINUE                                                          51800000
     C**** RENAME SEGMENT                                                    52000000
      1083 CONTINUE                                                          52200000
     C**** SET VISIBILITY                                                    52400000
      1092 CONTINUE                                                          52600000
     C**** SET HIGHLIGHTING                                                  52800000
      1093 CONTINUE                                                          53000000
     C**** SET DETECTABILITY                                                 53200000
      1095 CONTINUE                                                          53400000
     C**** READ/WRITE ITEM DATA                                              53600000
           IF (ICNV.EQ.ICNVCM) THEN                                          53800000
             READ (ICHR,902)IDAT(1),IDAT(2)                                  54000000
           ELSE                                                              54200000
             WRITE(ICHR,902)IDAT(1),IDAT(2)                                  54400000
           ENDIF                                                             54600000
           GOTO 2000                                                         54800000
     C                                                                       55000000
     C**** MESSAGE                                                           55200000
      1005 IF (ICNV.EQ.ICNVCM) THEN                                          55400000
             READ (ICHR,902)IDAT(1)                                          55600000
             IMAX=4+IDAT(1)                                                  55800000
             READ (ICHR,901)(CDAT(I),I=5,IMAX)                               56000000
           ELSE                                                              56200000
             WRITE(ICHR,902)IDAT(1)                                          56400000
             IMAX=4+IDAT(1)                                                  56600000
             WRITE(ICHR,901)(CDAT(I),I=5,IMAX)                               56800000
           ENDIF                                                             57000000
           GOTO 2000                                                         57200000
     C                                                                       57400000
     C**** POLYLINE                                                          57600000
      1011 CONTINUE                                                          57800000
     C**** POLYMARKER                                                        58000000
      1012 CONTINUE                                                          58200000
     C**** FILL AREA                                                         58400000
      1014 CONTINUE                                                          58600000
     C**** READ/WRITE ITEM DATA                                              58800000
           IF (ICNV.EQ.ICNVCM) THEN                                          59000000
             READ (ICHR,902)IDAT(1)                                          59200000
             IMAX=1+IDAT(1)*2                                                59400000
             READ (ICHR,903)(RDAT(I),I=2,IMAX)                               59600000
           ELSE                                                              59800000
             WRITE(ICHR,902)IDAT(1)                                          60000000
             IMAX=1+IDAT(1)*2                                                60200000
             WRITE(ICHR,903)(RDAT(I),I=2,IMAX)                               60400000
           ENDIF                                                             60600000
           GOTO 2000                                                         60800000
     C                                                                       61000000
     C**** TEXT                                                              61200000
      1013 IF (ICNV.EQ.ICNVCM) THEN                                          61400000
             READ (ICHR,903)RDAT(1),RDAT(2)                                  61600000
             READ (ICHR,902)IDAT(3)                                          61800000
             IMAX=12+IDAT(3)                                                 62000000
             READ (ICHR,901)(CDAT(I),I=13,IMAX)                              62200000
           ELSE                                                              62400000
             WRITE(ICHR,903)RDAT(1),RDAT(2)                                  62600000
             WRITE(ICHR,902)IDAT(3)                                          62800000
             IMAX=12+IDAT(3)                                                 63000000
             WRITE(ICHR,901)(CDAT(I),I=13,IMAX)                              63200000
           ENDIF                                                             63400000
           GOTO 2000                                                         63600000
     C                                                                       63800000
     C**** CELL ARRAY                                                        64000000
      1015 IF (ICNV.EQ.ICNVCM) THEN                                          64200000
             READ (ICHR,903)(RDAT(I),I=1,6)                                  64400000
             READ (ICHR,902)IDAT(7),IDAT(8)                                  64600000
             IMAX=8+IDAT(7)*IDAT(8)                                          64800000
             READ (ICHR,902)(IDAT(I),I=9,IMAX)                               65000000
           ELSE                                                              65200000
             WRITE(ICHR,903)(RDAT(I),I=1,6)                                  65400000
             WRITE(ICHR,902)IDAT(7),IDAT(8)                                  65600000
             IMAX=8+IDAT(7)*IDAT(8)                                          65800000
             WRITE(ICHR,902)(IDAT(I),I=9,IMAX)                               66000000
           ENDIF                                                             66200000
           GOTO 2000                                                         66400000
     C                                                                       66600000
     C**** LINEWIDTH SCALE FACTOR                                            66800000
      1023 CONTINUE                                                          67000000
     C**** MARKER SIZE SCALE FACTOR                                          67200000
      1027 CONTINUE                                                          67400000
     C**** CHARACTER EXPANSION FACTOR                                        67600000
      1031 CONTINUE                                                          67800000
     C**** CHARACTER SPACING                                                 68000000
      1032 CONTINUE                                                          68200000
     C**** READ/WRITE ITEM DATA                                              68400000
           IF (ICNV.EQ.ICNVCM) THEN                                          68600000
             READ (ICHR,903)RDAT(1)                                          68800000
           ELSE                                                              69000000
             WRITE(ICHR,903)RDAT(1)                                          69200000
           ENDIF                                                             69400000
           GOTO 2000                                                         69600000
     C                                                                       69800000
     C**** CHARACTER VECTORS                                                 70000000
      1034 CONTINUE                                                          70200000
     C**** PATTERN VECTORS                                                   70400000
      1041 CONTINUE                                                          70600000
     C**** CLIPPING RECTANGLE                                                70800000
      1061 CONTINUE                                                          71000000
     C**** WORKSTATION WINDOW                                                71200000
      1071 CONTINUE                                                          71400000
     C**** WORKSTATION VIEWPORT                                              71600000
      1072 CONTINUE                                                          71800000
     C**** READ/WRITE ITEM DATA                                              72000000
           IF (ICNV.EQ.ICNVCM) THEN                                          72200000
             READ (ICHR,903)RDAT(1),RDAT(2),RDAT(3),RDAT(4)                  72400000
           ELSE                                                              72600000
             WRITE(ICHR,903)RDAT(1),RDAT(2),RDAT(3),RDAT(4)                  72800000
           ENDIF                                                             73000000
           GOTO 2000                                                         73200000
     C                                                                       73400000
     C**** PATTERN REFERENCE POINT                                           73600000
      1042 IF (ICNV.EQ.ICNVCM) THEN                                          73800000
             READ (ICHR,903)RDAT(1),RDAT(2)                                  74000000
           ELSE                                                              74200000
             WRITE(ICHR,903)RDAT(1),RDAT(2)                                  74400000
           ENDIF                                                             74600000
           GOTO 2000                                                         74800000
     C                                                                       75000000
     C**** ASPECT SOURCE FLAGS                                               75200000
      1043 IF (ICNV.EQ.ICNVCM) THEN                                          75400000
             READ (ICHR,902)(IDAT(I),I=1,13)                                 75600000
           ELSE                                                              75800000
             WRITE(ICHR,902)(IDAT(I),I=1,13)                                 76000000
           ENDIF                                                             76200000
           GOTO 2000                                                         76400000
     C                                                                       76600000
     C**** POLYLINE REPRESENTATION                                           76800000
      1051 CONTINUE                                                          77000000
     C**** POLYMARKER REPRESENTATION                                         77200000
      1052 CONTINUE                                                          77400000
     C**** READ/WRITE ITEM DATA                                              77600000
           IF (ICNV.EQ.ICNVCM) THEN                                          77800000
             READ (ICHR,902)IDAT(1),IDAT(2)                                  78000000
             READ (ICHR,903)RDAT(3)                                          78200000
             READ (ICHR,902)IDAT(4)                                          78400000
           ELSE                                                              78600000
             WRITE(ICHR,902)IDAT(1),IDAT(2)                                  78800000
             WRITE(ICHR,903)RDAT(3)                                          79000000
             WRITE(ICHR,902)IDAT(4)                                          79200000
           ENDIF                                                             79400000
           GOTO 2000                                                         79600000
     C                                                                       79800000
     C**** TEXT REPRESENTATION                                               80000000
      1053 IF (ICNV.EQ.ICNVCM) THEN                                          80200000
             READ (ICHR,902)IDAT(1),IDAT(2),IDAT(3)                          80400000
             READ (ICHR,903)RDAT(4),RDAT(5)                                  80600000
             READ (ICHR,902)IDAT(6)                                          80800000
           ELSE                                                              81000000
             WRITE(ICHR,902)IDAT(1),IDAT(2),IDAT(3)                          81200000
             WRITE(ICHR,903)RDAT(4),RDAT(5)                                  81400000
             WRITE(ICHR,902)IDAT(6)                                          81600000
           ENDIF                                                             81800000
           GOTO 2000                                                         82000000
     C                                                                       82200000
     C**** FILL AREA REPRESENTATION                                          82400000
      1054 IF (ICNV.EQ.ICNVCM) THEN                                          82600000
             READ (ICHR,902)IDAT(1),IDAT(2),IDAT(3),IDAT(4)                  82800000
           ELSE                                                              83000000
             WRITE(ICHR,902)IDAT(1),IDAT(2),IDAT(3),IDAT(4)                  83200000
           ENDIF                                                             83400000
           GOTO 2000                                                         83600000
     C                                                                       83800000
     C**** FILL AREA REPRESENTATION                                          84000000
      1055 IF (ICNV.EQ.ICNVCM) THEN                                          84200000
             READ (ICHR,902)IDAT(1),IDAT(2),IDAT(3)                          84400000
             IMAX=3+IDAT(2)*IDAT(3)                                          84600000
             READ (ICHR,902)(IDAT(I),I=4,IMAX)                               84800000
           ELSE                                                              85000000
             WRITE(ICHR,902)IDAT(1),IDAT(2),IDAT(3)                          85200000
             IMAX=3+IDAT(2)*IDAT(3)                                          85400000
             WRITE(ICHR,902)(IDAT(I),I=4,IMAX)                               85600000
           ENDIF                                                             85800000
           GOTO 2000                                                         86000000
     C                                                                       86200000
     C**** COLOR REPRESENTATION                                              86400000
      1056 IF (ICNV.EQ.ICNVCM) THEN                                          86600000
             READ (ICHR,902)IDAT(1)                                          86800000
             READ (ICHR,903)RDAT(2),RDAT(3),RDAT(4)                          87000000
           ELSE                                                              87200000
             WRITE(ICHR,902)IDAT(1)                                          87400000
             WRITE(ICHR,903)RDAT(2),RDAT(3),RDAT(4)                          87600000
           ENDIF                                                             87800000
           GOTO 2000                                                         88000000
     C                                                                       88200000
     C**** SEGMENT TRANSFORMATION                                            88400000
      1091 IF (ICNV.EQ.ICNVCM) THEN                                          88600000
             READ (ICHR,902)IDAT(1)                                          88800000
             READ (ICHR,903)(RDAT(I),I=2,7)                                  89000000
           ELSE                                                              89200000
             WRITE(ICHR,902)IDAT(1)                                          89400000
             WRITE(ICHR,903)(RDAT(I),I=2,7)                                  89600000
           ENDIF                                                             89800000
           GOTO 2000                                                         90000000
     C                                                                       90200000
     C**** SET SEGMENT PRIORITY                                              90400000
      1094 IF (ICNV.EQ.ICNVCM) THEN                                          90600000
             READ (ICHR,902)IDAT(1)                                          90800000
             READ (ICHR,903)RDAT(2)                                          91000000
           ELSE                                                              91200000
             WRITE(ICHR,902)IDAT(1)                                          91400000
             WRITE(ICHR,903)RDAT(2)                                          91600000
           ENDIF                                                             91800000
           GOTO 2000                                                         92000000
     C                                                                       92200000
     C**** USER ITEMS                                                        92400000
      1100 IF (ICNV.EQ.ICNVCM) THEN                                          92600000
             READ (ICHR,901)(CDAT(I),I=1,ILEN)                               92800000
           ELSE                                                              93000000
             WRITE(ICHR,901)(CDAT(I),I=1,ILEN)                               93200000
           ENDIF                                                             93400000
           GOTO 2000                                                         93600000
     C                                                                       93800000
     C                                                                       94000000
     C**** WRITE ITEM DATA TO METAFILE (IF APPROPRIATE)                      94200000
      2000 IF (ICNV.EQ.ICNVCM) THEN                                          94400000
             IF (ITYP.LE.MAXTYP) THEN                                        94600000
               CALL GIITM (ITYP,ILEN,MAXREC,DATREC)                          94800000
             ELSE                                                            95000000
               CALL GWITM (IWKID,ITYP,ILEN,MAXREC,DATREC)                    95200000
             ENDIF                                                           95400000
           ENDIF                                                             95600000
     C                                                                       95800000
     C**** CHECK FOR LAST METAFILE ITEM                                      96000000
           IF (ITYP.NE.0) GOTO 200                                           96200000
     C                                                                       96400000
     C                                                                       96600000
     C     ******************************************************************96800000
     C     **  T E R M I N A T I O N                                       **97000000
     C     ******************************************************************97200000
     C                                                                       97400000
     C**** SUCCESSFUL COMPLETION                                             97600000
           WRITE(6,3100)INUM                                                 97800000
      3100 FORMAT(1X,'EXECUTION COMPLETED SUCCESSFULLY, ',I6,                98000000
          &  ' METAFILE ITEMS PROCESSED.')                                   98200000
     C                                                                       98400000
     C**** TERMINATE GKS                                                     98600000
      3200 IF (ICNV.EQ.ICNVCM) CALL GDAWK (IWKID)                            98800000
           CALL GCLWK (IWKID)                                                99000000
           CALL GCLKS                                                        99200000
     C                                                                       99400000
      3300 STOP                                                              99600000
           END                                                               99800000

Go to the previous page Go to the next page



Copyright IBM Corporation 1990, 2012