C ============================================================================= C SIMPLE-MINDED WAY TO LOCATE SHADOW INTERSECTION POINTS. C THE FIRST GUESS IS GUARANTEED TO BE ON THE "FAR SIDE" OF THE SHADOW C BOUNDARY, TREATED AS A RIGHT CYLINDER ORIENTED ALONG THE ANTI-SOLAR C AXIS WITH RADIUS GIVEN BY THE BASE OF THE THERMOSPHERE. C FOR OBSERVATION LOCATIONS IN THE SHADOW (INTERIOR TO THE CYLINDER), C THE FIRST GUESS FOR OMEGA CORRESPONDS TO EXITING FROM THE MEDIUM C (IN SUNLIGHT). C SPECIALIZED VERSION FOR HALPHA_LOS (07 JAN '97) SUBROUTINE CROSS(RBASE,RSMU,R1,THETA,CX1,SX1,CP1,OS1,DSHAD) IMPLICIT REAL*8 (A-H,O-Z) COMMON / NMBR/ PI,RTPI,PID2,OFFSET DSHAD = 0.0D0 C FIRST GUESS GUARANTEED TO BE ON THE "FAR SIDE" OF SHADOW BOUNDARY OMAX = OS1 OMIN = 0.0D0 123 CONTINUE OS2 = (OMAX + OMIN) / 2.0D0 RS = RSMU / SIN(THETA-OS2) COSX = CX1*COS(OS2) + SX1*SIN(OS2)*CP1 XS = ACOS(COSX) TEST = (RS * SIN(XS) - RBASE) / RBASE IF (ABS(TEST).LT.OFFSET) GO TO 234 IF (TEST.GT.0.0D0) THEN C . . . ON THE "FAR SIDE" OMAX = OS2 ELSE C . . . ON THE "NEAR SIDE" OMIN = OS2 END IF GO TO 123 234 CONTINUE DSHAD = SQRT(R1**2 + RS**2 - 2.0D0*R1*RS*COS(OS2)) C . . . NOW TO OFFSET DSHAD FROM "TRUE" VALUE (ROUND-OFF PROTECTION) DSHAD = DSHAD + 500.0D2 RETURN END C =============================================================================