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: GPLC2
C      SOURCE: 92840 - 18158
C      RELOC:  92840 - 16021
C 
C 
C 
CC*********************************************************** 
      SUBROUTINE GPLC2(IGCB,INFO,XMTRX,X1,Y1,DELTX,DELTY,LORG,NOCARR, 
     +IBUFR),92840-16021 REV.2013 791129
C************************************************************** 
C GPLC2 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 
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 NOCARR  = .TRUE. IFF THE CR-LF SHOULD BE SUPPRESSED.
C***************************************************************
      INTEGER IGCB,INFO(1),ITEXT(1),LORG,IBUFR(1) 
      LOGICAL NOCARR,GWC
      REAL XMTRX(2,2),X1,Y1,DELTX,DELTY 
C 
C**************************************************************** 
C IMPLEMENT A STUB. 
C 
D     LU=LOGLU(IDUMY) 
D     WRITE(LU,1005)
D1005 FORMAT(/"GPLC2: ENTERING A STUB.")
C*************************************************************
C BRANCH TO BELOW IF THERE'S NO CR-LF.
C OTHERWISE, BRING THE CP BACK AND SPACE DOWN ONE CHARACTER CELL
C FOR THE CR-LF.
C GET THE LDIR, AND DON'T CONVERT IT IF YOURE DOING WC CHARACTERS.
C 
      IF (NOCARR) GO TO 1000
C 
      CALL GCBIM(35,1,XLDIR,0,1)
      IF (GWC(IGCB)) GO TO 500
      CALL GANG3(IGCB,XLDIR,XLDIRM,IBUFR) 
      CALL GANG4(IGCB,XLDIRM,XLDIR,IBUFR) 
C 
500   CALL GKAR(IGCB,WIDTH,HEIGHT)
      X=X1+HEIGHT*SIN(XLDIR)
      Y=Y1-HEIGHT*COS(XLDIR)
      CALL MOVE(IGCB,X,Y) 
      RETURN
C**************************************************************** 
C NO CR-LF. CALCULATE THE NEW POSITION FOR THE CP, AND MOVE THERE.
C 
C IF LORG=1,2, OR 3, NEW POSITION IS TO RIGHT OF (X1,Y1). FACTR=1.0 
C        =4,5, OR 6, NEW POSITION IS ON TOP OF   (X1,Y1). FACTR=0.0 
C        =7,8, OR 9, NEW POSITION IS TO LEFT OF  (X1,Y1). FACTR=-1.0
C 
1000  CONTINUE
      NUMB=(LORG-1)/3 
      FACTR=FLOAT(1-NUMB) 
      X=X1+FACTR*DELTX
      Y=Y1+FACTR*DELTY
      CALL MOVE(IGCB,X,Y) 
      RETURN
      END 
                                                                                      