summaryrefslogtreecommitdiff
path: root/Utilib/src/PSMOVE.f
diff options
context:
space:
mode:
Diffstat (limited to 'Utilib/src/PSMOVE.f')
-rw-r--r--Utilib/src/PSMOVE.f59
1 files changed, 59 insertions, 0 deletions
diff --git a/Utilib/src/PSMOVE.f b/Utilib/src/PSMOVE.f
new file mode 100644
index 0000000..68b68b4
--- /dev/null
+++ b/Utilib/src/PSMOVE.f
@@ -0,0 +1,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