PROGRAM SPECTRA_SMLT IMPLICIT NONE INTEGER*4 MP, MB PARAMETER ( MP = 128, MB = 7 ) CHARACTER FILIN*128, BUF(MP)*512, COMP*1, BAND*1, DATE_STR*19, BAND_ARR(MP)*1, & & BANDS*(MB) REAL*8 FLUX_A_X, FLUX_A_S, FLUX_B_X, FLUX_B_S, FLUX_B_ERR_X, FLUX_B_ERR_S, & & FLUX_ERR_SCL, SEC, TIM(MP), SPIND_A(MP), SPIND_B(MP) REAL*8 X1(MP), E1(MP), X2(MP), E2(MP), W1(MP), W2(MP) REAL*8 T1(MP), S1(MP) REAL*8 DR_VAL_1, SH_VAL_1, DR_SIG_1, SH_SIG_1, MEAN_FREQ_1, & & DR_VAL_2, SH_VAL_2, DR_SIG_2, SH_SIG_2, MEAN_FREQ_2 INTEGER*4 J1, J2, J3, J4, J5, KP, NP, NB, MJD_0, MJD, K_SX, K_CX, IUER ! !! FILIN = '/astrogeo/4C+35.28/4C+35.28_light_curves.txt' FILIN = '/astrogeo/4C+35.28/4C+35.28_properties.txt' BANDS = 'LSCXUKQ' FLUX_ERR_SCL = 0.05 ! DATE_STR = '1990.01.01_00:00:00' CALL DATE_TO_TIME ( DATE_STR, MJD_0, SEC, IUER ) ! ! 37.28 -+ 0.05 0.857 ==> 7780ps/arcsec ==> 290.0 -+ 0.4 pc ! IUER = -1 CALL RD_TEXT ( FILIN, MP, BUF, NP, IUER ) IF ( IUER .NE. 0 ) CALL EXIT ( 1 ) ! KP = 0 K_SX = 0 K_CX = 0 DO 410 J1=2,NP IF ( BUF(J1)(46:46) == 'X' .AND. BUF(J1-1)(46:46) == 'S' ) THEN K_SX = K_SX + 1 READ ( UNIT=BUF(J1)(81:86), FMT='(F6.4)' ) FLUX_A_X READ ( UNIT=BUF(J1)(116:121), FMT='(F6.4)' ) FLUX_B_X READ ( UNIT=BUF(J1)(126:130), FMT='(F6.4)' ) FLUX_B_ERR_X READ ( UNIT=BUF(J1-1)(81:86), FMT='(F6.4)' ) FLUX_A_S READ ( UNIT=BUF(J1-1)(116:121), FMT='(F6.4)' ) FLUX_B_S READ ( UNIT=BUF(J1-1)(126:130), FMT='(F6.4)' ) FLUX_B_ERR_S SPIND_A(K_SX) = DLOG10(FLUX_A_X/FLUX_A_S)/DLOG10(8.4D0/2.3D0) SPIND_B(K_SX) = DLOG10(FLUX_B_X/FLUX_B_S)/DLOG10(8.4D0/2.3D0) ! DATE_STR = BUF(J1)(11:14)//'.'//BUF(J1)(15:16)//'.'//BUF(J1)(17:18)//'_00:00:00' CALL DATE_TO_TIME ( DATE_STR, MJD, SEC, IUER ) TIM(K_SX) = 1990 + (MJD - MJD_0)/365.25D0 END IF IF ( BUF(J1)(46:46) == 'R' .AND. BUF(J1-1)(46:46) == 'C' ) THEN K_CX = K_CX + 1 READ ( UNIT=BUF(J1)(81:86), FMT='(F6.4)' ) FLUX_A_X READ ( UNIT=BUF(J1)(116:121), FMT='(F6.4)' ) FLUX_B_X READ ( UNIT=BUF(J1)(126:130), FMT='(F6.4)' ) FLUX_B_ERR_X READ ( UNIT=BUF(J1-1)(81:86), FMT='(F6.4)' ) FLUX_A_S READ ( UNIT=BUF(J1-1)(116:121), FMT='(F6.4)' ) FLUX_B_S READ ( UNIT=BUF(J1-1)(126:130), FMT='(F6.4)' ) FLUX_B_ERR_S SPIND_A(K_CX) = DLOG10(FLUX_A_X/FLUX_A_S)/DLOG10(7.6D0/4.4D0) SPIND_B(K_CX) = DLOG10(FLUX_B_X/FLUX_B_S)/DLOG10(7.6D0/4.4D0) ! DATE_STR = BUF(J1)(11:14)//'.'//BUF(J1)(15:16)//'.'//BUF(J1)(17:18)//'_00:00:00' CALL DATE_TO_TIME ( DATE_STR, MJD, SEC, IUER ) TIM(K_CX) = 1990 + (MJD - MJD_0)/365.25D0 END IF 410 CONTINUE ! IF ( K_SX > 0 ) THEN CALL DIAGI_SETDEF ( IUER, 'DIAGI_ILST', 2 ) CALL DIAGI_SETDEF ( IUER, 'DIAGI_IBST', 2 ) CALL DIAGI_SETDEF ( IUER, 'DIAGI_IPST', 5 ) CALL DIAGI_2 ( K_SX, TIM, SPIND_A, K_SX, TIM, SPIND_B, IUER ) END IF IF ( K_CX > 0 ) THEN CALL DIAGI_SETDEF ( IUER, 'DIAGI_ILST', 2 ) CALL DIAGI_SETDEF ( IUER, 'DIAGI_IBST', 2 ) CALL DIAGI_SETDEF ( IUER, 'DIAGI_IPST', 5 ) CALL DIAGI_2 ( K_CX, TIM, SPIND_A, K_CX, TIM, SPIND_B, IUER ) END IF ! END PROGRAM SPECTRA_SMLT !#!