diff options
Diffstat (limited to 'Utilib/src/PSMOVE.f')
| -rw-r--r-- | Utilib/src/PSMOVE.f | 59 |
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 |
