C--------1---------2---------3---------4---------5---------6---------7---------8
C     SUBROUTINE AYPSTR(LF)
C      STARTER OF AYPLOT
C      LF: FILE NUMBER
C        2001/01/31   BY A.YANASE
C--------1---------2---------3---------4---------5---------6---------7---------8
      SUBROUTINE AYPSTR(LF)
      COMMON/PSP/ILLF,IUDM,XAM,YAM,X0,Y0,JSTART
        ILLF=LF
        CALL HEAD(1,ILLF)
        IUDM=2
        XAM=9999.9
        YAM=9999.9
        X0=0.0
        Y0=0.0
        JSTART=0       
      RETURN
      END
C--------1---------2---------3---------4---------5---------6---------7---------8
C     SUBROUTINE AYPEND
C      CLOSER OF AYPLOT
C        2001/01/31   BY A.YANASE
C--------1---------2---------3---------4---------5---------6---------7---------8
      SUBROUTINE AYPEND
      COMMON/PSP/ILLF,IUDM,XAM,YAM,X0,Y0,JSTART
        CALL HEAD(2,ILLF)
      RETURN
      END 
C--------1---------2---------3---------4---------5---------6---------7---------8
C     SUBROUTINE AYORIG(X,Y)
C      SHIFT OF ORIGIN
C      X,Y SHIFT DISTANCE IN MILIMETER
C        2001/01/31   BY A.YANASE
C--------1---------2---------3---------4---------5---------6---------7---------8
      SUBROUTINE AYORIG(X,Y)
      COMMON/PSP/ILLF,IUDM,XAM,YAM,X0,Y0,JSTART
      XA=X*(7200.0/2539.9)+X0
      YA=Y*(7200.0/2539.9)+Y0
      IF(XA.LT.0.0.OR.XA.GT.9999.9) THEN
        WRITE(6,*) ' STOP in AYORIG(XA)',XA
        STOP
      END IF
      IF(YA.LT.0.0.OR.YA.GT.9999.9) THEN
        WRITE(6,*) ' STOP in AYORIG(YA)',YA
        STOP
      END IF
      X0=XA
      Y0=YA
      RETURN
      END 
C--------1---------2---------3---------4---------5---------6---------7---------8
      SUBROUTINE MOVETO(X,Y)
      COMMON/PSP/ILLF,IUDM,XAM,YAM,X0,Y0,JSTART
      XA=X*(7200.0/2539.9)+X0
      YA=Y*(7200.0/2539.9)+Y0
      IUDM=2
      XAM=XA
      YAM=YA
      RETURN
      END
C--------1---------2---------3---------4---------5---------6---------7---------8
      SUBROUTINE LINETO(X,Y)
      COMMON/PSP/ILLF,IUDM,XAM,YAM,X0,Y0,JSTART
      XA=X*(7200.0/2539.9)+X0
      YA=Y*(7200.0/2539.9)+Y0
      IF(XA.LT.0.0.OR.XA.GT.9999.9) THEN
        WRITE(6,*) ' STOP in LINETO(XA)',XA
        STOP
      END IF
      IF(YA.LT.0.0.OR.YA.GT.9999.9) THEN
        WRITE(6,*) ' STOP in LINETO(YA)',YA
        STOP
      END IF
      IF(IUDM.EQ.2) THEN
          IF(JSTART.EQ.1) THEN   
             WRITE(ILLF,*) 'S'
          ELSE IF(JSTART.EQ.0) THEN
             JSTART=1
          END IF
          IF(XAM.LT.0.0.OR.XAM.GT.9999.9) THEN
             WRITE(6,*) ' STOP in MOVETO(XA)',XA
             STOP
          END IF
          IF(YAM.LT.0.0.OR.YAM.GT.9999.9) THEN
             WRITE(6,*) ' STOP in MOVETO(YA)',YA
             STOP
          END IF
             WRITE(ILLF,201) XAM,YAM
 201         FORMAT(2F7.2,' m')
             WRITE(ILLF,202) XA,YA
 202         FORMAT(2F7.2,' l')
             IUDM=1
      ELSE
             WRITE(ILLF,202) XA,YA
             IUDM=1
      END IF
      RETURN
      END
C--------1---------2---------3---------4---------5---------6---------7---------8
C     SUBROUTINE AWRITE(IPOINT,AA,NA,X,Y,IANG)
C      PLOT CHARACTER LINE
C      IPOINT: POINT OF CHARATER
C       AA   : CHARCTER LINE
C       NA   : NUMBER OD CHARACTER
C       X,Y  : START POSITION
C      IANG  : ANGLE IN ANTI-CLOCK-WISE
C        2001/01/31   BY A.YANASE
C--------1---------2---------3---------4---------5---------6---------7---------8
      SUBROUTINE AWRITE(IPOINT,AA,NA,X,Y,IANG)
      COMMON/PSP/ILLF,IUDM,XAM,YAM,X0,Y0,JSTART
      CHARACTER*80 AA,AB
      CHARACTER*1 CC
      CHARACTER*4 IAN
      XA=X*(7200.0/2539.9)+X0
      YA=Y*(7200.0/2539.9)+Y0
      IF(XA.LT.0.0.OR.XA.GT.9999.9) THEN
        WRITE(6,*) ' STOP in AWRITE(XA)',XA
        STOP
      END IF
      IF(YA.LT.0.0.OR.YA.GT.9999.9) THEN
        WRITE(6,*) ' STOP in AWRITE(YA)',YA
        STOP
      END IF
      WRITE(ILLF,*) 'S'
      WRITE(ILLF,210) XA,YA
 210  FORMAT(2F7.2,' m')
      IF(IANG.NE.0) THEN
        WRITE(IAN,'(I4)') IANG
        WRITE(ILLF,*) IAN,' rotate'
      ENDIF
      NB=0
      DO 1 I=1,NA
         NB=NB+1
         CC=AA(I:I)
         IF(CC.EQ.'(') THEN
           AB(NB:NB+1)='\\('
           NB=NB+1
         ELSE IF(CC.EQ.')') THEN
           AB(NB:NB+1)='\\)'
           NB=NB+1
         ELSE 
           AB(NB:NB)=CC
         END IF
 1    CONTINUE 
C      write(6,*) NB,AB(1:NB)  
      WRITE(ILLF,*) '/Times-Roman findfont'
      WRITE(ILLF,*) IPOINT,'scalefont'
      WRITE(ILLF,*) 'setfont'
      WRITE(ILLF,*) '(',AB(1:NB),') show'
      IF(IANG.NE.0) THEN
        WRITE(IAN,'(I4)') -IANG
        WRITE(ILLF,*) IAN,' rotate'
      ENDIF
      JSTART=0
      RETURN
      END      
C--------1---------2---------3---------4---------5---------6---------7---------8
C     SUBROUTINE IWRITE(IPOINT,IA,NA,X,Y,IANG)
C      PLOT INTEGER
C      IPOINT: POINT OF CHARATER
C       IA   : INTEGER
C       NA   : NUMBER OF FIGUURES
C       X,Y  : START POSITION
C      IANG  : ANGLE IN ANTI-CLOCK-WISE
C        2001/01/31   BY A.YANASE
C--------1---------2---------3---------4---------5---------6---------7---------8
      SUBROUTINE IWRITE(IPOINT,IA,NA,X,Y,IANG)
      COMMON/PSP/ILLF,IUDM,XAM,YAM,X0,Y0,JSTART
      CHARACTER*5 FMT
      CHARACTER*4 IAN
      CHARACTER*50 D
      XA=X*(7200.0/2539.9)+X0
      YA=Y*(7200.0/2539.9)+Y0
      IF(XA.LT.0.0.OR.XA.GT.9999.9) THEN
        WRITE(6,*) ' STOP in IWRITE(XA)',XA
        STOP
      END IF
      IF(YA.LT.0.0.OR.YA.GT.9999.9) THEN
        WRITE(6,*) ' STOP in IWRITE(YA)',YA
        STOP
      END IF
      WRITE(ILLF,*) 'S'
      WRITE(ILLF,210) XA,YA
 210  FORMAT(2F7.2,' m')
      IF(IANG.NE.0) THEN
        WRITE(IAN,'(I4)') IANG
        WRITE(ILLF,*) IAN,' rotate'
      ENDIF
      WRITE(ILLF,*) '/Times-Roman findfont'
      WRITE(ILLF,*) IPOINT,'scalefont'
      WRITE(ILLF,*) 'setfont'
      FMT='(I  )'
      WRITE(FMT(3:4),'(I2)') NA
      WRITE(D(1:NA),FMT) IA
      WRITE(ILLF,*) '(',D(1:NA),') show'
      IF(IANG.NE.0) THEN
        WRITE(IAN,'(I4)') -IANG
        WRITE(ILLF,*) IAN,' rotate'
      ENDIF
      JSTART=0
      RETURN
      END      
C--------1---------2---------3---------4---------5---------6---------7---------8
C     SUBROUTINE FWRITE(IPOINT,FF,NF,ND,X,Y,IANG)
C      PLOT INTEGER
C      IPOINT: POINT OF CHARATER
C       FF   : REAL MUBER
C      NF,ND : FORMAT IS fNF.ND
C       X,Y  : START POSITION
C      IANG  : ANGLE IN ANTI-CLOCK-WISE
C        2001/01/31   BY A.YANASE
C--------1---------2---------3---------4---------5---------6---------7---------8
      SUBROUTINE FWRITE(IPOINT,FF,NF,ND,X,Y,IANG)
      COMMON/PSP/ILLF,IUDM,XAM,YAM,X0,Y0,JSTART
      CHARACTER*8 FMT
      CHARACTER*4 IAN
      CHARACTER*50 D
      XA=X*(7200.0/2539.9)+X0
      YA=Y*(7200.0/2539.9)+Y0
      IF(XA.LT.0.0.OR.XA.GT.9999.9) THEN
        WRITE(6,*) ' STOP in FWRITE(XA)',XA
        STOP
      END IF
      IF(YA.LT.0.0.OR.YA.GT.9999.9) THEN
        WRITE(6,*) ' STOP in FWRITE(YA)',YA
        STOP
      END IF
      WRITE(ILLF,*) 'S'
      WRITE(ILLF,210) XA,YA
 210  FORMAT(2F7.2,' m')
      IF(IANG.NE.0) THEN
        WRITE(IAN,'(I4)') IANG
        WRITE(ILLF,*) IAN,' rotate'
      ENDIF
      WRITE(ILLF,*) '/Times-Roman findfont'
      WRITE(ILLF,*) IPOINT,'scalefont'
      WRITE(ILLF,*) 'setfont'
      FMT='(F  .  )'
      WRITE(FMT(3:4),'(I2)') NF
      WRITE(FMT(6:7),'(I2)') ND
      WRITE(D(1:NF),FMT) FF
      WRITE(ILLF,*) '(',D(1:NF),') show'
      IF(IANG.NE.0) THEN
        WRITE(IAN,'(I4)') -IANG
        WRITE(ILLF,*) IAN,' rotate'
      ENDIF
      JSTART=0
      RETURN
      END      
C--------1---------2---------3---------4---------5---------6---------7---------8
      SUBROUTINE CWRITE(IPOINT,A,X,Y)
      COMMON/PSP/ILLF,IUDM,XAM,YAM,X0,Y0,JSTART
      CHARACTER*1 A
C     write(6,*) A
      XA=X*(7200.0/2539.9)+X0
      YA=Y*(7200.0/2539.9)+Y0
      IF(XA.LT.0.0.OR.XA.GT.9999.9) THEN
        WRITE(6,*) ' STOP in MWRITE(XA)',XA
        STOP
      END IF
      IF(YA.LT.0.0.OR.YA.GT.9999.9) THEN
        WRITE(6,*) ' STOP in MWRITE(YA)',YA
        STOP
      END IF
      WRITE(ILLF,*) 'S'
      WRITE(ILLF,210) XA,YA
 210  FORMAT(2F7.2,' m')
      WRITE(ILLF,*) '/Times-Roman findfont'
      WRITE(ILLF,*) IPOINT,'scalefont'
      WRITE(ILLF,*) 'setfont'
      WRITE(ILLF,*) '(',A,') show'
      JSTART=0
      RETURN
      END      
C--------1---------2---------3---------4---------5---------6---------7---------8
      SUBROUTINE ZDFONT(IPOINT,A,X,Y)
      COMMON/PSP/ILLF,IUDM,XAM,YAM,X0,Y0,JSTART
      CHARACTER*3 A
      XA=X*(7200.0/2539.9)+X0
      YA=Y*(7200.0/2539.9)+Y0
      IF(XA.LT.0.0.OR.XA.GT.9999.9) THEN
        WRITE(6,*) ' STOP in ZDFONT(XA)',XA
        STOP
      END IF
      IF(YA.LT.0.0.OR.YA.GT.9999.9) THEN
        WRITE(6,*) ' STOP in ZDFONT(YA)',YA
        STOP
      END IF
      IF(JSTART.EQ.1) WRITE(ILLF,*) 'S'
      WRITE(ILLF,210) XA,YA
 210  FORMAT(2F7.2,' m')
      WRITE(ILLF,*) '/ZapfDingbats findfont'
      WRITE(ILLF,*) IPOINT,'scalefont'
      WRITE(ILLF,*) 'setfont'
      WRITE(ILLF,*) '(','\\',A,') show'
      JSTART=0
      RETURN
      END      
C--------1---------2---------3---------4---------5---------6---------7---------8
      SUBROUTINE ZDMARK(IPOINT,A,X,Y)
      COMMON/PSP/ILLF,IUDM,XAM,YAM,X0,Y0,JSTART
      CHARACTER*3 A
      XA=X*(7200.0/2539.9)+X0
      YA=Y*(7200.0/2539.9)+Y0
      IF(XA.LT.0.0.OR.XA.GT.9999.9) THEN
        WRITE(6,*) ' STOP in ZDMARK(XA)',XA
        STOP
      END IF
      IF(YA.LT.0.0.OR.YA.GT.9999.9) THEN
        WRITE(6,*) ' STOP in ZDMARK(YA)',YA
        STOP
      END IF
      WRITE(ILLF,*) 'S'
      XA=XA-0.4*IPOINT
      YA=YA-0.37*IPOINT
      WRITE(ILLF,210) XA,YA
 210  FORMAT(2F7.2,' m')
      WRITE(ILLF,*) '/ZapfDingbats findfont'
      WRITE(ILLF,*) IPOINT,'scalefont'
      WRITE(ILLF,*) 'setfont'
      WRITE(ILLF,*) '(','\\',A,') show'
      JSTART=0
      RETURN
      END      
C--------1---------2---------3---------4---------5---------6---------7---------8
      SUBROUTINE CNFONT(IPOINT,I,X,Y)
      COMMON/PSP/ILLF,IUDM,XAM,YAM,X0,Y0,JSTART
      CHARACTER*4 CIRCLN(20)/'8540','8541','8542','8543',
     &  '8544','8545','8546','8547','8548','8549','854a',
     &  '854b','854c','854d','854e','854f','8550','8551','8552','8553'/
      XA=X*(7200.0/2539.9)+X0
      YA=Y*(7200.0/2539.9)+Y0
      IF(XA.LT.0.0.OR.XA.GT.9999.9) THEN
        WRITE(6,*) ' STOP in CNFONT(XA)',XA
        STOP
      END IF
      IF(YA.LT.0.0.OR.YA.GT.9999.9) THEN
        WRITE(6,*) ' STOP in CNFONT(YA)',YA
        STOP
      END IF
      WRITE(ILLF,*) 'S'
      WRITE(ILLF,210) XA,YA
 210  FORMAT(2F7.2,' m')
      WRITE(ILLF,*) '/Osaka findfont'
      WRITE(ILLF,*) IPOINT,'scalefont'
      WRITE(ILLF,*) 'setfont'
      WRITE(ILLF,*) '<',CIRCLN(I),'> show'
      JSTART=0
      RETURN
      END      
C--------1---------2---------3---------4---------5---------6---------7---------8
      SUBROUTINE CNMARK(IPOINT,I,X,Y)
      COMMON/PSP/ILLF,IUDM,XAM,YAM,X0,Y0,JSTART
      CHARACTER*4 CIRCLN(20)/'8540','8541','8542','8543',
     &  '8544','8545','8546','8547','8548','8549','854a',
     &  '854b','854c','854d','854e','854f','8550','8551','8552','8553'/
      XA=X*(7200.0/2539.9)+X0
      YA=Y*(7200.0/2539.9)+Y0
      IF(XA.LT.0.0.OR.XA.GT.9999.9) THEN
        WRITE(6,*) ' STOP in CNMARK(XA)',XA
        STOP
      END IF
      IF(YA.LT.0.0.OR.YA.GT.9999.9) THEN
        WRITE(6,*) ' STOP in CNMARK(YA)',YA
        STOP
      END IF
      WRITE(ILLF,*) 'S'
      XA=XA-0.48*IPOINT
      YA=YA-0.38*IPOINT
      WRITE(ILLF,210) XA,YA
 210  FORMAT(2F7.2,' m')
      WRITE(ILLF,*) '/Osaka findfont'
      WRITE(ILLF,*) IPOINT,'scalefont'
      WRITE(ILLF,*) 'setfont'
      WRITE(ILLF,*) '<',CIRCLN(I),'> show'
      JSTART=0
      RETURN
      END      
C--------1---------2---------3---------4---------5---------6---------7---------8
      SUBROUTINE NRMARK(IPOINT,A,X,Y)
      COMMON/PSP/ILLF,IUDM,XAM,YAM,X0,Y0,JSTART
      CHARACTER*1 A
      XA=X*(7200.0/2539.9)+X0
      YA=Y*(7200.0/2539.9)+Y0
      IF(XA.LT.0.0.OR.XA.GT.9999.9) THEN
        WRITE(6,*) ' STOP in NRMARK(XA)',XA
        STOP
      END IF
      IF(YA.LT.0.0.OR.YA.GT.9999.9) THEN
        WRITE(6,*) ' STOP in NRMARK(YA)',YA
        STOP
      END IF
      WRITE(ILLF,*) 'S'
      XA=XA-0.30*IPOINT
      YA=YA-0.27*IPOINT
      IF(A.EQ.'*') YA=YA-0.2*IPOINT
      WRITE(ILLF,210) XA,YA
 210  FORMAT(2F7.2,' m')
      WRITE(ILLF,*) '/Times-Roman findfont'
      WRITE(ILLF,*) IPOINT,'scalefont'
      WRITE(ILLF,*) 'setfont'
      WRITE(ILLF,*) '(',A,') show'
      JSTART=0
      RETURN
      END      
C--------1---------2---------3---------4---------5---------6---------7---------8
      SUBROUTINE GWRITE(IPOINT,A,X,Y)
      COMMON/PSP/ILLF,IUDM,XAM,YAM,X0,Y0,JSTART
      CHARACTER*1 A
      XA=X*(7200.0/2539.9)+X0
      YA=Y*(7200.0/2539.9)+Y0
      IF(XA.LT.0.0.OR.XA.GT.9999.9) THEN
        WRITE(6,*) ' STOP in GWRITE(XA)',XA
        STOP
      END IF
      IF(YA.LT.0.0.OR.YA.GT.9999.9) THEN
        WRITE(6,*) ' STOP in GRITE(YA)',YA
        STOP
      END IF
      WRITE(ILLF,*) 'S'
      WRITE(ILLF,210) XA,YA
 210  FORMAT(2F7.2,' m')
      WRITE(ILLF,*) '/Symbol findfont'
      WRITE(ILLF,*) IPOINT,'scalefont'
      WRITE(ILLF,*) 'setfont'
      WRITE(ILLF,*) '(',A,') show'
      JSTART=0
      RETURN
      END      
C--------1---------2---------3---------4---------5---------6---------7---------8
      SUBROUTINE LINEWD(WIDTH)
      COMMON/PSP/ILLF,IUDM,XAM,YAM,X0,Y0,JSTART
        IF(JSTART.EQ.1) WRITE(ILLF,*) 'S'
        WRITE(ILLF,203) WIDTH
 203    FORMAT(F6.2,' w')
        JSTART=0
      RETURN
      END
C--------1---------2---------3---------4---------5---------6---------7---------8
      SUBROUTINE SETDAS(IS1,IS2,IS3)
      COMMON/PSP/ILLF,IUDM,XAM,YAM,X0,Y0,JSTART
      IF(JSTART.EQ.1)  WRITE(ILLF,*) 'S'
C      write(6,*) JSTART,IST,ISP
      IF(IS1.EQ.0) THEN
          WRITE(ILLF,*) '[] 0 setdash'
      ELSE IF(IS1.GT.0) THEN
        IF(IS3.GT.0) THEN
           IF(IS2.GT.0) THEN
             WRITE(ILLF,204) IS1,IS2,IS3,IS2
 204         FORMAT('[',I3,I3,I3,I3,'] 0 setdash')
           ELSE
             WRITE(6,*) ' STOP IN SETDAS, IS1,IS2,IS3=',IS1,IS2,IS3
             STOP
           END IF
        ELSE IF(IS3.EQ.0) THEN
           IF(IS2.GT.0) THEN
               WRITE(ILLF,205) IS1,IS2
 205           FORMAT('[',I3,I3,'] 0 setdash')
           ELSE IF(IS2.EQ.0) THEN
               WRITE(ILLF,206) IS1
 206           FORMAT('[',I3,'] 0 setdash')
           ELSE
               WRITE(6,*) ' STOP IN SETDAS, IS1,IS2,IS3=',IS1,IS2,IS3
               STOP
           END IF
        END IF
      ELSE
               WRITE(6,*) ' STOP IN SETDAS, IS1,IS2,IS3=',IS1,IS2,IS3
               STOP
      END IF
      JSTART=0
      RETURN
      END
C--------1---------2---------3---------4---------5---------6---------7---------8
C     SUBROUTINE HEAD(IND,ILLF)
C     IND=1 HEADER
C     IND=2 CLOSER
C     ILLF: FILE NUMBER
C        MODIFIED FROM PIG2PS BY A.Yanase
C        2001/01/31
C
C--------1---------2---------3---------4---------5---------6---------7---------8
       SUBROUTINE HEAD(IND,ILLF)
C
      IF(IND.EQ.1) THEN
          WRITE(6,*) ' ----- WELCOME TO AYPLOT V1.0 2001/01/31 -----'
          WRITE(ILLF,700)
          WRITE(ILLF,710)
          WRITE(ILLF,720)
          WRITE(ILLF,730) 1.0,1.0
  700     FORMAT('%!PS-Adobe-2.0',/,'%%Creator AYPLOT',/,
     &      '%%CreationDate:2001:01:31   by A.Yanase  ',/,
     &      '%%EndComments')
  710     FORMAT('/m {moveto} def',/,'/l {lineto} def',/,
     &      '/S {stroke} def',/,'/w {setlinewidth} def')
  720     FORMAT('newpath',/,'1 setlinecap',/,'1 setlinejoin')
  730     FORMAT(2F8.2,' scale')
          WRITE(ILLF,*) ' 1.00 w'
       ELSEIF(IND.EQ.2) THEN
C
          WRITE(ILLF,*) 'S'
          WRITE(ILLF,780)
  780     FORMAT('showpage',/,'%%EOF')
       ELSE
          WRITE(6,910)
  910     FORMAT(1H ,' IN HEAD, IND.NE.1 OR 2')
          STOP
       ENDIF
      RETURN
      END