summaryrefslogtreecommitdiff
path: root/Utilib/src/PSMOVE.f
blob: 68b68b40115c9b4b7da33605b8f1ea849065ac2c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
*DECK PSMOVE
      SUBROUTINE PSMOVE(ISPSP,XYPOS,ITMOVE)
C
C---------------------------  PSMOVE  ---------------------------------
C
C  1- PROGRAMME STATISTICS:
C      NAME     : PSMOVE
C      USE      : MOVE PLOT REFERENCE POINT
C                 REPLACES PSPLOT ROUTINE PLOT
C
C  2- ROUTINE PARAMETERS:
C    INPUT/OUTPUT
C      ISPSP    : PSP FILE UNIT                          I
C      YXPOS    : FINAL (X,Y) POSITION TO REACH          R(2)
C      ITMOVE   : TYPE OF DISPLACEMENT
C
C---------------------------   PSMOVE  --------------------------------
C
      IMPLICIT         NONE
      INTEGER          ISPSP,ITMOVE
      REAL             XYPOS(2)
C----
C  LOCAL VARIABLES
C----
      CHARACTER        NAMSBR*6
      REAL             CONVER
      PARAMETER       (NAMSBR='PSMOVE',CONVER=72.0)
      CHARACTER        CMDSTR*132
C----
C  IF ITMOVE=999 TERMINATE PLOT SESSION
C----
      IF(ITMOVE .EQ. 999) THEN
        CMDSTR='stroke showpage'
        CALL PSCPUT(ISPSP,CMDSTR)
        RETURN
      ENDIF
C----
C  MOVE WITH PEN UP (3) OR DOWN (OTHER VALUES) AS REQUESTED
C----
      CMDSTR=' '
      IF(ABS(ITMOVE).EQ.3) THEN
        WRITE(CMDSTR,'(2(F8.2,1X),A2)')
     >    XYPOS(1)*CONVER,XYPOS(2)*CONVER,'SM'
      ELSE
        WRITE(CMDSTR,'(2(F8.2,1X),A3)')
     >    XYPOS(1)*CONVER,XYPOS(2)*CONVER,'LSM'
      ENDIF
      CALL PSCPUT(ISPSP,CMDSTR)
C----
C  RESET ORIGIN IF ITMOVE < 0
C----
      CMDSTR=' '
      IF(ITMOVE.LT.0) THEN
        WRITE(CMDSTR,'(2(F8.2,1X),A9)')
     >    XYPOS(1)*CONVER,XYPOS(2)*CONVER,'translate'
        CALL PSCPUT(ISPSP,CMDSTR)
      ENDIF
      RETURN
      END