PROGRAM CONVERT IMPLICIT REAL*8 (A-H,O-Z) C THIS PROGRAM READS LINE IN THE JKaKc FORMAT AND WRITES THE C QUANTUM NUMBERS TO BE USED IN BELGI PROGRAM, based on the description given in Hougen et al, JMS, 163, 559 (1994) c this code converts JKaKc from specificialy a XIAM A SPECIES OUTPUT format into BELGI, but can be also adapted to read c any JKaKc file, by only changing the read instruction c in XIAM, the observed frequencies are given in GHz, in BELGI in MHZ, so ETRANS is multiplied by 1000 INTEGER OUT CHARACTER*1 PROBS(2,900),SYM(900) CHARACTER*4 SPOBS(2,900) CHARACTER*6 REF(900) DIMENSION IV(900),IVOBS(2,900),ETRANS(900), 1NOBS(2,900),KOBS(2,900),IBLK(2,900),IW(900),W(900), 2WEIGTH(900),KUBUN(900),IAST(900),KC(2,900) OPEN(55,FILE='XIAM-data-A-sept08.txt') OPEN(58,FILE='out-BELGI-A-sept08.txt') IN=55 OUT=56 I=1 c for converting the A species and E species of JB95 (Plusquellic) c10 READ(55,850,END=20) NOBS(2,I),KOBS(2,I),KC(2,I),NOBS(1,I), c AKOBS(1,I),KC(1,I),ETRANS(I) c850 FORMAT(4x,i2,2x,i2,2x,i2,4x,i2,2x,i2,2x,i2,6x,f10.4) c for converting the A species of XIAM (Jelisavac et al JMS 2009) 10 READ(55,850,END=20) NOBS(2,I),KOBS(2,I),KC(2,I),NOBS(1,I), 1 KOBS(1,I),KC(1,I),IV(I),SYM(I),ETRANS(I) c write(6,850) NOBS(2,I),KOBS(2,I),KC(2,I),NOBS(1,I), c 1 KOBS(1,I),KC(1,I),IV(I),SYM(I),ETRANS(I) 850 FORMAT(6x,i2,1x,i2,1x,i2,1x,i2,1x,i2,1x,i2,3x,i1,4X,A1,24x,f10.7) IF(ETRANS(I).EQ.-900.) THEN I=I+1 GO TO 10 ENDIF IF(SYM(I).EQ.'A') then ISIG=0 elseif(SYM(I).EQ.'E') then isig=1 else I=I+1 go to 10 endif ETRANS(I)=ETRANS(I)*1000. IBLK(1,I)=NOBS(1,I)+1 IBLK(2,I)=NOBS(2,I)+1 MOD1=MOD(KOBS(1,I),2) MOD2=MOD(KOBS(2,I),2) NMK1=NOBS(1,I)-KOBS(1,I) NMK2=NOBS(2,I)-KOBS(2,I) NMKPLU1=NOBS(1,I)-KOBS(1,I)+1 NMKPLU2=NOBS(2,I)-KOBS(2,I)+1 c please not IBLK is not used anymore in BELGI but needs to be put in the data file IVOBS(1,I)=0 IVOBS(2,I)=0 c IAST is 1 if the line is included in the fit, 0 if not included in the fit IAST(I)=1 c IW is the weight: only certain weights are allowed in BELGI !!! c IW(I)=1005 5 kHz c IW(I)=1010 10 kHz c IW(I)=1020 20 kHz c IW(I)=1050 50 kHz c IW(I)=1070 70 kHz c IW(I)=1080 80 kHz c IW(I)=1100 100 kHz c IW(I)=1200 200 kHz IW(I)=1005 c For the A species /E / IF(ISIG.EQ.0) THEN IF(MOD(KOBS(1,I),2).EQ.0) THEN IF(KC(1,I).EQ.NMK1) THEN PROBS(1,I)='+' ELSEIF(KC(1,I).EQ.NMKPLU1) then PROBS(1,I)='-' ENDIF ELSEIF(MOD(KOBS(1,I),2).NE.0) THEN IF(KC(1,I).EQ.NMK1) THEN PROBS(1,I)='-' ELSEIF(KC(1,I).EQ.NMKPLU1) then PROBS(1,I)='+' ENDIF ENDIF c Upper state IF(MOD(KOBS(2,I),2).EQ.0) THEN IF(KC(2,I).EQ.NMK2) THEN PROBS(2,I)='+' ELSEIF(KC(2,I).EQ.NMKPLU2) then PROBS(2,I)='-' ENDIF ELSEIF(MOD(KOBS(2,I),2).NE.0) THEN IF(KC(2,I).EQ.NMK2) THEN PROBS(2,I)='-' ELSEIF(KC(2,I).EQ.NMKPLU2) then PROBS(2,I)='+' ENDIF ENDIF c write(58,*) 'probs(1,I)=',probs(1,I),'probs(2,I)=',PROBS(2,I) ELSE c E species c KT1K=KOBS(1,K)*(-1)**IVOBS(1,K) PROBS(1,I)=' ' PROBS(2,I)=' ' c for molecules with very small rho values, the period of cosine in Eq (6) of Hougen et al JMS 163, 559 (1994) c JMS 1996 is very long, therefore usually one reaches very high values of K before the +K and -K are to c be inverted. However it is better to check this cosine period length! go to 16 c for acetaldehyde rho=1/3, vt=0, the E species +K, -K ordering is given by Eq (6) IF(IABS(KOBS(1,I)).LE.4) THEN IF(KC(1,I).EQ.NMKPLU1) KOBS(1,I)=-KOBS(1,I) ELSEIF(KOBS(1,I).GE.5.AND.KOBS(1,I).LE.9) THEN IF(KC(1,I).EQ.NMKPLU1) KOBS(1,I)=-KOBS(1,I) ELSEIF(KOBS(1,I).GE.10.AND.KOBS(1,I).LE.14)THEN IF(KC(1,I).EQ.NMKPLU1) KOBS(1,I)=-KOBS(1,I) ENDIF IF(IABS(KOBS(2,I)).LE.4) THEN IF(KC(2,I).EQ.NMKPLU2) KOBS(2,I)=-KOBS(2,I) ELSEIF(KOBS(1,I).GE.5.AND.KOBS(1,I).LE.9) THEN IF(KC(2,I).EQ.NMKPLU2) KOBS(2,I)=-KOBS(2,I) ELSEIF(KOBS(1,I).GE.10.AND.KOBS(1,I).LE.14)THEN IF(KC(2,I).EQ.NMKPLU2) KOBS(2,I)=-KOBS(2,I) ENDIF ENDIF c add here the source of data 16 REF(I)=' ' WRITE(58,23) ETRANS(I),IVOBS(2,I),NOBS(2,I), 1 KOBS(2,I),PROBS(2,I),IBLK(2,I),IVOBS(1,I),NOBS(1,I), 2 KOBS(1,I),PROBS(1,I),IBLK(1,I),IAST(I),IW(I),REF(I) 23 FORMAT (F12.5,I2,2X,I2,2X,I3,2X,A1,1X,I2,2X,I1,2X,I2,2X, & I3,2X,A1,1X,I2,2X,I1,3X,I4,3X,A6) I=I+1 GO TO 10 20 END