PROGRAM GEN_CARTOON_4C35 IMPLICIT NONE INCLUDE 'astro_constants.i' INCLUDE 'diagi.i' TYPE ( DIAGI_STRU ) :: DIAGI_S INTEGER*4 MP PARAMETER ( MP = 256 ) CHARACTER FILS(3)*128, FIN*128, CH*4, BUF(MP)*128 REAL*4 PAP_SIZE, ASP, XMIN, XMAX, YMIN, YMAX, XC, YC REAL*4 XA, YA, XB, YB, XG, YG, XP, YP, ANG, XARR(MP), YARR(MP) REAL*4 CX(MP,3), CY(MP,3) REAL*4 XLB, XTU, YLB, YTU INTEGER*4 IDEV, J1, J2, J3, J4, LP, ICLR, ICL1, ICL2, ICL3, & & IGREY, NP(3), IUER INTEGER*4, EXTERNAL :: PGBEG, ILEN, I_LEN, LTM_DIF ! FILS(1) = '/astrogeo/4C+35.28/ridge_line_c.txt' FILS(2) = '/astrogeo/4C+35.28/ridge_line_x.txt' FILS(3) = '/astrogeo/4C+35.28/ridge_line_u.txt' ! IDEV = 3 FIN = '/tmp/foo' ! ! --- Openning plotting device ! FIN = '/tmp/foo' IF ( IDEV .EQ. 1 ) THEN IF ( PGBEG ( 0, '/XW', 1, 1 ) .NE. 1 ) STOP ELSE IF ( IDEV .EQ. 2 ) THEN FIN = FIN(1:I_LEN(FIN))//GIF_DIAGI//'/GIF' IF ( PGBEG ( 0, FIN, 1, 1 ) .NE. 1 ) STOP ELSE IF ( IDEV .EQ. 3 ) THEN FIN = FIN(1:I_LEN(FIN))//PS_DIAGI//'/VCPS' IF ( PGBEG ( 0, FIN, 1, 1 ) .NE. 1 ) STOP END IF ! ! --- Setting plotting parameters ! DIAGI_S%IDEV = IDEV DIAGI_S%NCLR = 10 CALL DIAGI_SET ( IDEV, DIAGI_S ) CALL DIAGI_CLS ( DIAGI_S, IUER ) DIAGI_S%NCLR = 10 CALL PGCOL_RGB ( ITAB_CLR(1,1), 67, 180, 38 ) ! ASP = 1.0 IF ( IDEV .EQ. 1 ) THEN PAP_SIZE = 250.0 ELSE IF ( IDEV .EQ. 2 ) THEN PAP_SIZE = 120.0 ELSE IF ( IDEV .EQ. 3 ) THEN PAP_SIZE = 160.0 END IF XMIN = 30.0 XMAX = -30.0 YMIN = -30.0 YMAX = 30.0 ! CALL PGPAP ( PAP_SIZE/25.4, ASP ) ! ! --- Setting new world coordinates ! CALL PGSVP ( 0.15, 0.85, 0.15, 0.85 ) CALL PGSWIN ( 0.0, 1.0, 0.0, 1.0 ) ! ! --- Setting white or whitish background ! CALL PGCOL_RGB ( BCG_CLRI, 256, 256, 256 ) ! ! --- Setting black background ! CALL PGCOL_RGB ( FRG_CLRI, FRG_CLR(1), FRG_CLR(2), FRG_CLR(3) ) ! CALL PGERAS() ! Erase the screen CALL PGSCI ( 1 ) ! ! --- Setting default font type ! CALL PGSCF ( 2 ) CALL PGSLW ( 2 ) ICLR = 16 CALL PGCOL_RGB ( ICLR, 220, 230, 240 ) CALL PGSWIN ( XMIN, XMAX, YMIN, YMAX ) CALL PGSCF ( 2 ) CALL PGSCH ( 1.33 ) CALL PGSLW ( 3 ) CALL PGBOX ( 'BCSN1V', 10.0, 1, 'BCSN1V', 10.0, 1 ) CALL PGPTXT ( 0.0, -37.0, 0.0, 0.5, 'Right ascension (mas)' ) CALL PGPTXT ( 39.0, 0.0, 90.0, 0.5, 'Declination (mas)' ) CALL PGSLW ( 1 ) CALL PGSCH ( 1.2 ) ! IGREY = 17 XA = 15.0 YA = 15.0 XB = -30.25 + 15.0 YB = -21.82 + 15.0 ANG = ATAN ( (YB-YA)/(XB-XA) ) XC = XB + 50*COS(ANG) YC = YB + 50*SIN(ANG) XG = XB + 4.5*COS(ANG + 3.0*DEG__TO__RAD) YG = YB + 4.5*SIN(ANG + 3.0*DEG__TO__RAD) XARR(1) = XB XARR(2) = XC YARR(1) = YB YARR(2) = YC ! CALL PGCOL_RGB ( IGREY, 160, 160, 160 ) CALL PGSCI ( IGREY ) CALL PGSLS ( 2 ) CALL PGSAH ( 1, 25.0, 0.3 ) CALL PGARRO ( XB, YB, XC, YC ) CALL PGCOL_RGB ( IGREY, 64, 64, 64 ) CALL PGSCI ( IGREY ) CALL PGCIRC_PET ( 72, XA, YA, 1.0, 1.0 ) CALL PGCIRC_PET ( 72, XB, YB, 0.4, 0.4 ) CALL PGSCI ( 1 ) ! CALL PGSLS ( 2 ) CALL PGSLS ( 1 ) CALL PGSCI ( ITAB_CLR(2,1) ) CALL PGSCH ( 2.0 ) CALL PGSLW ( 5 ) CALL PGPTXT ( XA - 3.0, YA - 1.0, 0.0, 0.5, 'A' ) CALL PGPTXT ( XB - 3.0, YB - 1.0, 0.0, 0.5, 'B' ) ! CALL PGSCI ( ITAB_CLR(1,1) ) CALL PGCIRC_PET ( 72, XG, YG, 0.35, 0.35 ) XARR(1) = XG - 0.6 XARR(2) = XG + 0.6 YARR(1) = YG YARR(2) = YG CALL PGSLW ( 2 ) CALL PGLINE ( 2, XARR, YARR ) XARR(1) = XG XARR(2) = XG YARR(1) = YG - 0.6 YARR(2) = YG + 0.6 CALL PGLINE ( 2, XARR, YARR ) CALL PGSCI ( 1 ) XP = XA + 12*COS(ANG - 38.0*DEG__TO__RAD) YP = YA + 12*SIN(ANG - 38.0*DEG__TO__RAD) CALL PGSAH ( 1, 30.0, 0.4 ) CALL PGSLW ( 4 ) CALL PGSCH ( 1.2 ) CALL PGARRO ( XA, YA, XP, YP ) CALL PGSCI ( ITAB_CLR(5,1) ) XP = XA + 8*COS(ANG - 16.0*DEG__TO__RAD) YP = YA + 8*SIN(ANG - 16.0*DEG__TO__RAD) CALL PGSAH ( 1, 30.0, 0.3 ) CALL PGSLW ( 4 ) CALL PGSCH ( 1.2 ) CALL PGARRO ( XA, YA, XP, YP ) ! DO 410 J1=1,3 CALL RD_TEXT ( FILS(J1), MP, BUF, NP(J1), IUER ) DO 420 J2=1,NP(J1) READ ( UNIT=BUF(J2)(1:7), FMT='(F7.3)' ) CX(J2,J1) READ ( UNIT=BUF(J2)(9:15), FMT='(F7.3)' ) CY(J2,J1) CX(J2,J1) = -CX(J2,J1) + 15 CY(J2,J1) = CY(J2,J1) + 15 420 CONTINUE CALL PGSLW ( 3 ) CALL PGSCI ( ITAB_CLR(J1,1) ) CALL PGLINE ( NP(J1), CX(1,J1), CY(1,J1) ) 410 CONTINUE ! XC = 0.95 YC = 0.0 IF ( IDEV .EQ. 1 ) THEN CALL PGBAND ( 0, 1, XC, YC, XC, YC, CH ) END IF CALL PGCLOQ() ! END PROGRAM GEN_CARTOON_4C35 !#!