PROGRAM TPLINVU IMPLICIT NONE C C Test the routine PLINVU, using C parameters provided by LPL. C C Jeff Bytof 17-JAN-1999 C INCLUDE 'pltmax.inc' CHARACTER*(30) SCLK CHARACTER*(30) UTC DOUBLE PRECISION ET DOUBLE PRECISION LITAMT ( MAXPLT ) DOUBLE PRECISION SCLKDP DOUBLE PRECISION VISAMT ( MAXPLT ) DOUBLE PRECISION VDOT DOUBLE PRECISION SUN ( 3 ) DOUBLE PRECISION NORML ( 3 ) DOUBLE PRECISION NRMSUN INTEGER BODIES ( MAXBOD ) INTEGER BOUNDS ( 2, MAXBOD ) INTEGER FUNIT INTEGER HAND(10) INTEGER I INTEGER INFOV INTEGER INSTID INTEGER NBODS INTEGER PLIDS ( MAXPLT ) INTEGER SCID DATA SUN/ -249055030.583025,-23413086.454861,62978131.118991/ CALL VHAT( SUN, SUN ) C C Leapsecond kernel. C CALL LDPOOL ( '/kernels/gen/lsk/naif0007.tls' ) C C Spacecraft clock kernel. C CALL LDPOOL ( '/kernels/near/sclk/SCLK.008' ) C C Instrument kernel. C CALL LDPOOL ( 'xrs12.ti' ) C C Eros orientation kernel. C CALL LDPOOL ( '/kernels/near/pck/eros_1999008.tpc' ) C C Load binary SP kernels. C CALL SPKLEF ( '/kernels/gen/spk/de403s.bsp', HAND(1) ) CALL SPKLEF ( '/kernels/near/spk/sceph_4-7-99n.bsp', HAND(2) ) CALL SPKLEF ( '/kernels/near/spk/eros9845.bsp', HAND(3) ) C C Load binary C kernels. C CALL CKLPF ('/kernels/near/ck/TEST/143.NS04c.frames.bc', HAND(4)) CALL CKLPF ('/kernels/near/ck/TEST/143.hole04.frames.bc',HAND(5)) CALL CKLPF ('/kernels/near/ck/TEST/143.hole10.frames.bc',HAND(6)) CALL CKLPF ('/kernels/near/ck/TEST/144.NS04b.frames.bc', HAND(7)) CALL CKLPF ('/kernels/near/ck/TEST/145.NS04b.frames.bc', HAND(8)) CALL CKLPF ('/kernels/near/ck/TEST/147.NS04a.frames.bc', HAND(9)) C C Load plate kernel. C CALL RDPLAT ( '/P1/kernels/erosXRS.occ' ) C C Spacecraft and instrument IDs. C SCID = -93 INSTID = -93003 C C Set pointing time. C SCLK = '6/0134480219000' C C Convert to spacecraft double precison MET, ET and UTC. C CALL SCENCD ( SCID, SCLK, SCLKDP ) CALL SCT2E ( SCID, SCLKDP, ET ) CALL ET2UTC ( ET, 'C', 3, UTC ) WRITE(*,*) 'Encoded spacecraft clock time = ', SCLKDP WRITE(*,*) 'Ephemeris time = ', ET WRITE(*,*) 'UTC = ', UTC C C Which plates are in the field of view? C CALL PLINVU ( INSTID, ET, MAXPLT, MAXBOD, . NBODS, BODIES, BOUNDS, INFOV, . PLIDS, VISAMT, LITAMT ) WRITE(*,*) 'number of plates in FOV = ', INFOV CALL TXTOPN ( 'fovplates.pov', FUNIT ) DO I = 1, INFOV CALL NTHPUN ( PLIDS(I), NORML ) NRMSUN = VDOT( SUN, NORML ) WRITE(*,*) PLIDS(I), VISAMT(I), LITAMT(I) IF ( LITAMT(I) .EQ. 0.D0 ) THEN CALL POVTRI(FUNIT, PLIDS(I), 'RED' ) WRITE(*,*) 'red', PLIDS(I), NRMSUN ELSE IF ( LITAMT(I) .LT. 1.D0 ) THEN CALL POVTRI(FUNIT, PLIDS(I), 'GREEN' ) WRITE(*,*) 'green', PLIDS(I), NRMSUN ELSE CALL POVTRI(FUNIT, PLIDS(I), 'BLUE' ) WRITE(*,*) 'blue', PLIDS(I), NRMSUN END IF END DO END