C ============================================================================= C ROUTINE TO CALL MSIS AND SET UP REFERENCE BACKGROUND ATMOSPHERE ON A C "FINE" ALTITUDE GRID SUITABLE FOR USE IN lyao_rt-RELATED RADIATIVE C TRANSPORT CALCULATIONS. C ----------------------------------------------------------------------------- C NOTES: C - version for generating hab_rt "fine grid" thermosphere C - IYEAR value not really relevant in MSIS, so 2-digit depiction is kept C (i.e., "00" for "2000"). C ----------------------------------------------------------------------------- SUBROUTINE GET_MSIS(LINE_LABEL) IMPLICIT REAL*4 (A-H,O-Z) DIMENSION AP(7) REAL*8 THERMO_MSIS(7,61) COMMON/PARA_MSIS/ GLAT,GLONG,IDAY,IYEAR,UT,STL,IAPH,AP,F107,F107A COMMON/FINE_GRID/ THERMO_MSIS,BASE,TOP,ITHERM DIMENSION TMSIS(2),DMSIS(8),SV(25) COMMON/CSW/ SW(25),ISW,SWC(25) DATA SV / 25 * 1.0 / DATA ISW / 1 / DATA PLANETR / 6371.0E5 / ITHERM = 60 C ----------------------------------------------------------------------------- C "FINE GRID" THERMOSPHERE MODEL & RELATED QUANTITIES C ----------------------------------------------------------------------------- C ALTITUDE GRID SETTINGS [see get_msis_lyao.f] IF (LINE_LABEL.EQ.2) THEN BASE = 102.0 ! Lyman beta ELSE IF (LINE_LABEL.EQ.3) THEN BASE = 160.0 ! Lyman gamma END IF QFCTR = 0.075128 QPIVOT = BASE TOP = BASE + 392.0 ! exobase C CONSTRUCTING THERMOSPHERE REFERENCE TABLE C _____ PREPARING TO CALL MSIS MASS48 = 48 IYEAR = MOD(IYEAR,100) ! 2-digit "year" value IYD = IDAY + 1000*IYEAR SEC = 3600.0 * UT IF (IAPH.EQ.1) THEN CALL TSELEC(SV) SW(9) = -1.0 END IF C _____ THE BIG CALL ALT = BASE DO IBIN = 1,ITHERM+1 IF (IBIN.EQ.1) THEN QUAD = 0.0 ELSE QUAD = QFCTR * ABS(ALT-QPIVOT) IF (QUAD.LT.1.0) QUAD = 1.0 END IF ALT = ALT + QUAD IF (IBIN.EQ.ITHERM+1) ALT = TOP CALL GTD6(IYD,SEC,ALT,GLAT,GLONG,STL,F107A,F107,AP,MASS48, & DMSIS,TMSIS) THERMO_MSIS(1,IBIN) = DBLE(ALT) ! ALTITUDE THERMO_MSIS(2,IBIN) = DBLE(PLANETR + ALT*1.0E5) ! RADIUS THERMO_MSIS(3,IBIN) = DBLE(TMSIS(2)) ! TEMPERATURE THERMO_MSIS(4,IBIN) = DBLE(DMSIS(7)) ! ATOMIC HYDROGEN THERMO_MSIS(5,IBIN) = DBLE(DMSIS(4)) ! MOLECULAR OXYGEN THERMO_MSIS(6,IBIN) = DBLE(DMSIS(3)) ! MOLECULAR NITROGEN THERMO_MSIS(7,IBIN) = DBLE(DMSIS(2)) ! ATOMIC OXYGEN END DO C ----------------------------------------------------------------------------- RETURN END C =============================================================================