C ============================================================================= C POINT-TO-SUN LINE-OF-SIGHT PROPAGATION: C FOR DIRECT NONISOTHERMAL SOLAR SOURCE FUNCTION EVALUATIONS C . . . OSUN(1): OPTICAL DEPTH AT LINE CENTER FOR SCATTERING C . . . OSUN(2): OPTICAL DEPTH FOR ABSORPTION C . . . OSUN(3): NONISOTHERMAL TRANSMISSION FUNCTION C NOTE THAT IN THIS APPLICATION, THETA IS IDENTICALLY EQUAL TO CHI AND C PHI IS IDENTICALLY ZERO, SO (IN THE NOTATION OF ZONE) THET2=X2; C HENCE THETA & THET2 ARE ELIMINATED IN FAVOR OF X1 & X2. C ----------------------------------------------------------------------------- C [January 2002]: C This is the version of ZSUN for more precise evaluations of total resonance C line transmission function (CFR approximation) using "fine grid" atmospheric C profiles, for use in final line-of-sight radiances. C C As noted in ZSUN_CELL, rather than collapse to the 2-D geometry used in the C earlier ZSUN, the full 3-D ZONE geometry is retained with PHI set to a small C nonzero C value. The idea here is to make it easier to add in a second C source of incident flux from another direction. C ----------------------------------------------------------------------------- SUBROUTINE ZSUN_LOS(ITHERM,THERMO,IKNT,JKNT,BRAD,BCHI, & I1,J1,R1,X1,THETA,PHI, & LPROF,SPDPT,WSPD,OSUN) IMPLICIT REAL*8 (A-H,O-Z) LOGICAL PASS, INSIDE DIMENSION THERMO(5,ITHERM+1) DIMENSION BRAD(IKNT+1),BCHI(JKNT+1) DIMENSION SPDPT(LPROF),WSPD(LPROF) DIMENSION OSUN(3), TAU_LP(0 : 16), TLPLOC(0 : 16) DIMENSION PARAM_SOLAR(13) C COMMON / LOSREF_PARM / C & CX1, SX1, CU1, SU1, CP1, SP1, C & RSMU, DSMU, XSKIM, XTOT, OSKIM, OTOT, IPHASE, PASS COMMON /EXOS/ GM,CONL,PLANETR,RBASE,RC,RUPR,RP,TEXO,DEXO,VELT, & RADPF,CENTER,ABSCSX,FTSAT,FDSAT,IGEO COMMON /NMBR/ PI,RTPI,PID2,OFFSET C ----------------------------------------------------------------------------- C INITIALIZE STORAGE ARRAYS (MOST ENTRIES REMAIN ZERO/FALSE) C ----------------------------------------------------------------------------- DO ISUN = 1,3 OSUN(ISUN) = 0.0D0 END DO TAU_O2 = 0.0D0 TAULOC = 0.0D0 DO LP = 0,LPROF TAU_LP(LP) = 0.0D0 END DO C ----------------------------------------------------------------------------- C LINE OF SIGHT REFERENCE QUANTITIES C ----------------------------------------------------------------------------- CALL LOS_PARAM(I1,J1,R1,X1,THETA,PHI,PARAM_SOLAR,PASS,IPHASE) CALL DLOCAL(ITHERM,THERMO,R1,X1,HREF,O2REF,TREF) C ----------------------------------------------------------------------------- C LOS-SEGMENT FROM INITIAL POINT (NOMINAL CELL CENTER) TO CELL POINT-OF-EXIT C AND CORRESPONDING INCREMENT TO SPECTRAL OPACITY C ----------------------------------------------------------------------------- ITRIP = 0 DELTA_A = 0.0D0 I_A = I1 J_A = J1 R_A = R1 X_A = X1 T_A = THETA CALL FAR_SIDE(IKNT, JKNT, BRAD, BCHI, PARAM_SOLAR, INSIDE, & I_A, J_A, T_A, R_A, X_A, PASS, IPHASE, & I_B, J_B, T_B, R_B, X_B, OMEGA) DELTA_B = SQRT(R_B**2 + R1**2 - 2.0D0*R_B*R1*COS(OMEGA)) C OPTICAL DEPTH ARRAYS (NOTE: PASS & IPHASE NOT NEEDED) IF ( INSIDE ) THEN CALL STEP_TAU(ITHERM, THERMO, R1, X1, PARAM_SOLAR, & DELTA_B, DELTA_A, LPROF, SPDPT, TO2LOC, TLPLOC) TAU_O2 = TAU_O2 + TO2LOC DO LP = 0,LPROF TAU_LP(LP) = TAU_LP(LP) + TLPLOC(LP) END DO IF ((I_B.LT.1).OR.(I_B.GT.IKNT)) GO TO 222 END IF C ----------------------------------------------------------------------------- C SUBSEQUENT STEPS THROUGH CELLS ALONG LINE OF SIGHT C ----------------------------------------------------------------------------- 111 CONTINUE ITRIP = ITRIP + 1 DELTA_A = DELTA_B I_A = I_B J_A = J_B R_A = R_B X_A = X_B T_A = T_B CALL FAR_SIDE(IKNT, JKNT, BRAD, BCHI, PARAM_SOLAR, INSIDE, & I_A, J_A, T_A, R_A, X_A, PASS, IPHASE, & I_B, J_B, T_B, R_B, X_B, OMEGA) DELTA_B = SQRT(R_B**2 + R1**2 - 2.0D0*R_B*R1*COS(OMEGA)) C OPTICAL DEPTH ARRAYS (NOTE: PASS & IPHASE NOT NEEDED) IF ( INSIDE ) THEN CALL STEP_TAU(ITHERM, THERMO, R1, X1, PARAM_SOLAR, & DELTA_B, DELTA_A, LPROF, SPDPT, TO2LOC, TLPLOC) TAU_O2 = TAU_O2 + TO2LOC DO LP = 0,LPROF TAU_LP(LP) = TAU_LP(LP) + TLPLOC(LP) END DO IF ((I_B.LT.1).OR.(I_B.GT.IKNT)) GO TO 222 END IF GO TO 111 C ----------------------------------------------------------------------------- C FINAL TRANMISSION FUNCTION C ----------------------------------------------------------------------------- 222 CONTINUE OSUN(1) = TAU_LP(0) OSUN(2) = TAU_O2 OSUN(3) = 0.0D0 FCTREF = TEXO/TREF DO LP = 1,LPROF XPNT = (FCTREF - 1.0D0) * (SPDPT(LP)**2) OSUN(3) = OSUN(3) + WSPD(LP) * EXP(-TAU_LP(LP)) * EXP(-XPNT) END DO OSUN(3) = OSUN(3) * SQRT(FCTREF) * 2.0D0 / RTPI C ----------------------------------------------------------------------------- RETURN END C =============================================================================