FTN4,L
C 
C 
C 
C 
C 
C 
CC************************************************************
C (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1978.  ALL RIGHTS    *
C RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, RE- *
C PRODUCED, OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITH-  *
C OUT THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.  *
CC************************************************************
C 
C 
C 
C      NAME: GPLC1
C      SOURCE: 92840 - 18157
C      RELOC:  92840 - 16021
C 
C 
C 
CC*********************************************************** 
      SUBROUTINE GPLC1(IGCB,ITEXT,X1,Y1,DELTX,DELTY,LORG) 
     +,92840-16021 REV.2013 790904
C************************************************************** 
C GPLC1 ADJUSTS THE CP AT (X1,Y1) IN ORDER TO IMPLEMENT 
C THE LORG CAPABILITY. BASICALLY, IT MOVES THE CP THE PROPER
C AMOUNT SO THAT THE STRING IS PLACED PROPERLY FOR LEFT OR
C RIGHT JUSTIFICATION, AND ALSO BOTTOM, CENTER, OR TOP
C JUSTIFICATION.
C 
C THE ALGORITHM WORKS LIKE THIS. FIRST OF ALL, THE CHARACTER HEIGHT 
C IS FOUND. THEN WE CALCULATE THE FOLLOWING VALUES: 
C 
C CX   = DISTANCE THE CP MUST BE MOVED IN THE X DIRECTION TO ACCOUNT
C        FOR THE CURRENT CHARACTER HEIGHT (REMEMBERING LORG AND LDIR) 
C CY   = DISTANCE THE CP MUST BE MOVED IN THE Y DIRECTION TO ACCOUNT
C        FOR THE CURRENT CHARACTER HEIGHT (REMEMBERING LORG AND LDIR) 
C 
C DX   = DISTANCE THE CP MUST BE MOVED IN THE X DIRECTION TO ACCOUNT
C        FOR THE CURRENT LINE LENGTH (BASED ON LORG ONLY, THE LDIR
C        WAS ALREADY TAKEN INTO ACCOUNT BEFORE IT WAS PASSED IN). 
C DY   = DISTANCE THE CP MUST BE MOVED IN THE Y DIRECTION TO ACCOUNT
C        FOR THE CURRENT LINE LENGTH (BASED ON LORG ONLY).
C 
C 
C (X1,Y1) = CURRENT POSITION
C DELTX   = AMOUNT THE CURRENT STRING WOULD MOVE THE CP IN THE
C           X-DIRECTION.
C DELTY   = AMOUNT THE CURRENT STRING WOULD MOVE THE CP IN THE
C           Y-DIRECTION.
C LORG    = CURRENT LORG VALUE (1 THROUGH 9). 
C 
C CHIGH   = CHARACTER HEIGHT (IN CURRENT UNITS).
C 
C HOW TO CALCULATE CX,CY,DX, AND DY.
C 
C CX  = CFACT*CHIGH*SIN(THETA)
C CY  = -CFACT*CHIGH*COS(THETA) 
C 
C WHERE:
C 
C CFACT= 0.0 IF LORG=1,4, OR 7
C      = 0.5 IF LORG=2,5, OR 8
C      = 1.0 IF LORG=3,6, OR 9
C CHIGH= CHARACTER HEIGHT 
C THETA= CURRENT LDIR ANGLE.
C 
C 
C DX   = -DFACT*DELTX 
C DY   = -DFACT*DELTY 
C 
C WHERE:
C 
C DFACT= 0.0 IF LORG=1,2, OR 3
C      = 0.5 IF LORG=4,5, OR 6
C      = 1.0 IF LORG=7,8, OR 9
C DELTX= TEXT LENGTH IN X DIRECTION (PASSED IN) 
C DELTY= TEXT LENGTH IN Y DIRECTION (PASSED IN) 
C 
C***************************************************************
      INTEGER IGCB,ITEXT(1),LORG
      REAL X1,Y1,DELTX,DELTY
C 
C**************************************************************** 
C IMPLEMENT A STUB. 
C 
D     LU=LOGLU(IDUMY) 
D     WRITE(LU,1005)
D1005 FORMAT(/"GPLC1: ENTERING A STUB.")
C********************************************************** 
C GET THE LORG AND LDIR VALUES. 
C 
      CALL GCBIM(21,1,LORG,0,1) 
      CALL GCBIM(22,1,THETA,0,1)
C**************************************************************** 
C GET THE SOFTWARE OR HARDWARE CELL SIZE IN CURRENT UNITS.
C 
      CALL GKAR(IGCB,CWIDE,CHIGH) 
C**************************************************************** 
C SET THE CFACT VALUE.
C 
      CFACT=FLOAT(MOD(LORG-1,3))/2.0
      DFACT=FLOAT((LORG-1)/3)/2.0 
C**************************************************************** 
C CALCULATE HOW FAR TO MOVE THE VALUES. 
C 
      CX=CFACT*CHIGH*SIN(THETA) 
      CY=-CFACT*CHIGH*COS(THETA)
C 
      DX=-DFACT*DELTX 
      DY=-DFACT*DELTY 
C*****************************************************************
C MOVE THE CP THE CALCULATED AMOUNTS. 
C 
      CALL MOVE(IGCB,X1+DX+CX,Y1+DY+CY) 
      RETURN
      END 
                                                                                                                                                                                                                                  