C This FORTRAN code was developed to process the Mars Pathfinder ASI/MET C surface meteorology data. This program reads data from the EDR (Engineering C Data Record) files, which are in the form of numerical counts, and , C employing calibartion information for each instrument obtained during C pre-launch and cruise activities, produces pressure values in millibars, C and temperature values, both thermocouple and wind sensor segment, in C Kelvin. This code produces files identical in form to the SRFRDR ".tab" C files, but operated on files having different structure than the SRFEDR C files which will accompany this source code on the ASIMET CD. C Inquiries concerning the development and application of this code should be C directed to: C Dr Jim Murphy C Dept. of Astronomy C MSC 4500 C New Mexico State University C Box 30001 C Las Cruces NM 88011 C email: murphy@nmsu.edu C phone: (505_ 646-5333 C C C JRM 10/08/98 c program convert c character fnmsci*11,fnmhk*11,c2*2,c3*3,c4*4 real SCI(12), HK(12), SCISD(12), HKSD(12), GAIN(6), 1 OFF(6), A(6),B(6),C(6),D(6), segt(6), rfdg(6) 1 ,HKOLD(12),PRT4TMP(500,2475),PRT5TMP(500,2475),binavg(12) real*8 timesc,vfptc(4,4),pfvtc(4,4),coeff(4) integer data(12),sd(12),mscirec(1430),mhkprec(1430) c character*2 POW integer POW c real*8 convfac,time,SCLKX,time0,HTIME1,HTIME2 data SCLKX / 1240000000.000 / c data vfptc / -3.89633536,5.26482984E-02,-2.28714911E-04, c 1 3.21734518E-07,4.78094488E-01,-3.68448731E-04, c 2 3.55659580E-07,7.15208837E-10,-9.32868291E-03, c 3 1.13915550E-04,-3.90968154E-07,4.17508833E-10, c 3 6.64441148E-04,-8.46487910E-06,3.12074100E-08, c 4 -3.67690149E-11 / c c data pfvtc /9.38929081,-1.26658216E-01,5.49595396E-04, c 1 -7.72481201E-07,1.93688595,3.66907474E-03, c 2 -8.98521012E-06,5.86734394E-09,1.51190102E-01, c 3 -1.85472821E-03,6.61191234E-06,-7.49290585E-09, c 3 -2.06737220E-02,2.58260203E-04,-9.35214416E-07, c 4 1.08286091E-09 / data HTIME1 / 0.375 / data HTIME2 / 0.4 / data CRNTLP / 0.02061 / data CRNTHP / 0.05147 / data convfac / 8192.0 / C ** THE FOLLOWING WIND SENSOR SEGMENT GAIN AND OFFSET VALUES ARE FOR THE C FLIGHT BOARD *** data OFF / -0.942481, -0.944840, -0.944524, -0.943349, 1 -0.944803, -0.942232 / data GAIN / 0.189187, 0.189114, 0.189213, 0.188587, 1 0.189279, 0.189093 / C *** The following 'fudge' factors massage the sensor segment resistances C *** to produce near-isothermal segment values for the Nov. 29, 1996 ATLO C *** just prio to launch; Tim Schofield provided these fudge factors C *** 05/12/97 data rfdg / 1.0014, 1.0038, 0.9835, 0.9820, 1.0089, 0.9982 / C ************************************************************************* C C ** THE FOLLOWING GAIN AND OFFSET VALUES ARE FOR THE ENGINEERING (EM) BOARD** c DATA OFF / -0.9421703, -0.9446291, -0.9438588, -0.9444959, c 1 -0.9438408, -0.9423091 / c DATA GAIN / 0.1889859, 0.1889145, 0.1889002, 0.1890466, c 1 0.1889609, 0.1889644 / C **************************************************************************** C C *** THE FOLLOWING COEFFICIENTS ARE FOR THE FLIGHT WIND SENSOR ONBOARD MPF ** data A / 1.740929E+3, 1.758434E+3, 1.886694E+3, 1.923385E+3, 1 1.822422E+3, 1.707498E+3 / data B / -1.102165E+3, -1.126584E+3, -1.236407E+3, -1.268219E+3, 1 -1.178777E+3, -1.074276E+3 / data C / 2.970082E+2, 3.071528E+2, 3.419487E+2, 3.519534E+2, 1 3.230208E+2, 2.881566E+2 / data D / -3.637978E+1, -3.774094E+1, -4.154433E+1, -4.260472E+1, 1 -3.939730E+1, -3.540823E+1 / C **************************************************************************** C C ****THE FOLLOWING COEFFICIENTS ARE FOR THE ENGINEERING WIND SENSOR (I THINK) c data A / 1.949812E+3, 1.781920E+3, 1.669168E+3, 1.800931E+3, c 1 1.716168E+3, 1.743294E+3 / c data B / -1.330652E+3, -1.145689E+3, -1.009652E+3, -1.113667E+3, c 1 -1.053887E+3, -1.074478E+3 / c data C / 3.783745E+2, 3.092010E+2, 2.560623E+2, 2.884234E+2, c 1 2.721349E+2, 2.779457E+2 / c data D / -4.581188E+1, -3.717149E+1, -3.034239E+1, -3.403193E+1, c 1 -3.246599E+1, -3.303318E+1 / C **************************************************************************** C C ** THE FOLLOWING COEFFICIENTS ARE FOR WIND SENSOR #3; WHICH IS THIS? *** c data A / 1.578464E+3, 1.727275E+3, 1.627394E+3, 1.604117E+3, c 1 1.556250E+3, 1.605674E+3 / c data B / -9.256196E+2, -1.048552E+3, -9.581908E+2, -9.463073E+2, c 1 -8.785523E+2, -9.426100E+2 / c data C / 2.310550E+2, 2.697140E+2, 2.393617E+2, 2.373144E+2, c 1 2.086740E+2, 2.348948E+2 / c data D / -2.810111E+1, -3.233266E+1, -2.882223E+1, -2.876231E+1, c 1 -2.485429E+1, -2.837727E+1 / C **************************************************************************** c c open(unit=11,file='/u/scr1/murphy/OPS.97_flt_hlth_chks_May5', c open(unit=11,file='ATLO.96.326_334_pkts_txt', c open(unit=11,file='/u/scr1/murphy/ORT5.final_met_pkts_txt', c open(unit=11,file='/u/scr1/murphy/BML.May_02', c open(unit=11,file='/mz2/murphy/MPF_MET/sfc.sol.001-010.met.txt', open(unit=11,file='/mz2/murphy/m1252607212.txt_01414', 1 status='OLD', form='FORMATTED') c vfptc(1,1) = -3.89633536 vfptc(1,2) = 5.26482984E-02 vfptc(1,3) = -2.28714911E-04 vfptc(1,4) = 3.21734518E-07 vfptc(2,1) = 4.78094488E-01 vfptc(2,2) = -3.68448731E-04 vfptc(2,3) = 3.55659580E-07 vfptc(2,4) = 7.15208837E-10 vfptc(3,1) = -9.32868291E-03 vfptc(3,2) = 1.13915550E-04 vfptc(3,3) = -3.90968154E-07 vfptc(3,4) = 4.17508833E-10 vfptc(4,1) = 6.64441148E-04 vfptc(4,2) = -8.46487910E-06 vfptc(4,3) = 3.12074100E-08 vfptc(4,4) = -3.67690149E-11 c pfvtc(1,1) = 9.38929081 pfvtc(1,2) = -1.26658216E-01 pfvtc(1,3) = 5.49595396E-04 pfvtc(1,4) = -7.72481201E-07 pfvtc(2,1) = 1.93688595 pfvtc(2,2) = 3.66907474E-03 pfvtc(2,3) = -8.98521012E-06 pfvtc(2,4) = 5.86734394E-09 pfvtc(3,1) = 1.51190102E-01 pfvtc(3,2) = -1.85472821E-03 pfvtc(3,3) = 6.61191234E-06 pfvtc(3,4) = -7.49290585E-09 pfvtc(4,1) = -2.06737220E-02 pfvtc(4,2) = 2.58260203E-04 pfvtc(4,3) = -9.35214416E-07 pfvtc(4,4) = 1.08286091E-09 TIME0 = 1246748791.0 c print *, 'ENTER THE NUMBER OF SESSIONS (SEQUENCES) TO PROCESS' c read(5,*) nsess c for sols 1-10, 406 sessions c for sols 11-21, 369 sessions c for sols 22-30, 495 sessions c for sols 31-83, 108 sessions nsess = 1 print *, nsess c do 500 mumses=1,nsess do 9000 KBN = 1,2475 PRT4TMP(MUMSES,KBN) = 0.0 PRT5TMP(MUMSES,KBN) = 0.0 9000 CONTINUE c do 600 n=1,12 c600 binavg(n) = 0.0 c bintime = 0.0 C KT = 0 read(11,*) lpkts,npkts,numseq,nrecs,time0,sesdur,delay,sc, 1 hkp,sampint,ncycle,durHP,durLP c if(numseq).le.99) write(c2,900) numseq c if(numseq.ge.100.and.numseq.le.999) write(c3,901) numseq c if(numseq.ge.1000) write(c4,902) numseq 900 format(i2) 901 format(i3) 902 format(i4) c if(numseq.le.99) then cc fnmsci = 'met_data_session.00'//c2 c fnmhk = 'met_hkp_session.00'//c2 c endif c if(numseq.ge.100.and.numseq.le.999) then c fnmsci = 'met_data_session.0'//c3 c fnmhk = 'met_hk_session.0'//c3 c endif c if(numseq.ge.1000) then c fnmsci = 'met_data_session.'//c4 c fnmhk = '/met_hk_session.'//c4 c endif c print *, 'LPKTS,NPKTS,NUMSEQ,TIME=',lpkts,npkts,numseq,time if(ncycle.eq.0.and.durlp.ne.sesdur) then durlp = sesdur durhp = 0 endif print *, 'numseq,nrecs=',numseq,nrecs if(nrecs.gt.85) then print *, 'nrec gt 85, numseq,npkts,numseq,time=', 1 numseq,npkts,numseq,time stop endif llrec = 0 do 509 mumpkts=1,npkts print *, 'mumpkts,npkts=',mumpkts,npkts if(mumpkts.gt.1) then read(11,*) lpkts,npkts,numseq,nrecs,time,sesdur,delay,sc, 1 hkp,sampint,ncycle c print *, 'LPKTS,NPKTS,NUMSEQ,TIME=',lpkts,npkts,numseq,time if(ncycle.eq.0.and.durlp.ne.sesdur) then durlp = sesdur durhp = 0 endif endif if(nrecs.gt.85) then print *, 'nrec gt 85, mumses,npkts,numseq,time=', 1 mumses,npkts,numseq,time stop endif c do 510 mum=1,nrecs c print *, 'mum (before read) =', mum,nrecs read(11,*) nx,nbad,time,(data(n),n=1,12),(sd(l),l=1,12) c print *, 'DATA TIME=',time,nx,mum c if(lpkts.eq.28) print *, nx,time,(data(nn),nn=1,12),(sd(ll), c 1 ll=1,12) if(nx.eq.0) llrec = llrec + 1 if(nx.eq.1) then mhkprec(numseq) = mhkprec(numseq) + 1 HKPRT4 = 3.0 * ((data(6)/convfac) - 1.0) HKPRT5 = 3.0 * ((data(11)/convfac) - 1.0) c KT = KT + 1 KT = INT((TIME - TIME0)/HKP) + 1 c print *, 'KT=',KT c HTIME(MUMSES,KT) = TIME HKPRT4 = (0.210889+0.032413*HKPRT4)/4.99E-4 HKPRT5 = (0.243000+0.022025*HKPRT5)/4.958E-04 PRT4TMP(MUMSES,KT) = 273.15-221.581+0.307818*HKPRT4 + 1 4.60188E-4*HKPRT4**2 - 5.00112E-7*HKPRT4**3 + 2 2.21663E-10*HKPRT4**4 PRT5TMP(MUMSES,KT) = 273.15-221.456+0.309646*HKPRT5 + 1 4.68740E-04*HKPRT5**2 - 5.12036E-07*HKPRT5**3 + 2 2.27992E-10*HKPRT5**4 write(20,*) mumses,kt,time,HKPRT4,PRT4TMP(MUMSES,KT), 1 HKPRT5,PRT5TMP(MUMSES,KT) else mscirec(numseq) = mscirec(numseq) + 1 endif 510 continue 509 continue c write(22,*) bintime,(binavg(ll),ll=1,12) 500 continue rewind(11) print *, 'file 11 rewound' kl = 0 C do 5 numses=1,nsess do 600 nn=1,12 600 binavg(nn) = 0.0 bintime = 0.0 print *, numses c read(11,*) lpkts,npkts,numseq,nrecs,time0,sesdur,delay,sc,hkp, 1 sampint,ncycle,durHP,durLP c if(numseq).le.99) write(c2,900) numseq c if(numseq.ge.100.and.numseq.le.999) write(c3,901) numseq c if(numseq.ge.1000) write(c4,902) numseq if(numseq.le.99) then write(c2,900) numseq c fnmsci = 'met_data_session.00'//c2 FNMSCI = 'sr00'//c2//'s.tab' C fnmhk = 'met_hkp_session.00'//c2 FNMHK = 'sr00'//c2//'h.tab' endif if(numseq.ge.100.and.numseq.le.999) then write(c3,901) numseq C fnmsci = 'met_data_session.0'//c3 FNMSCI = 'sr0'//c3//'s.tab' C fnmhk = 'met_hk_session.0'//c3 FNMHK = 'sr0'//c3//'h.tab' endif if(numseq.ge.1000) then write(c4,902) numseq c fnmsci = 'met_data_session.'//c4 FNMSCI = 'sr'//c4//'s.tab' c fnmhk = 'met_hk_session.'//c4 FNMHK = 'sr'//c4//'h.tab' endif open(unit=16,file=fnmsci,form='FORMATTED') open(unit=17,file=fnmhk, form='FORMATTED') if(ncycle.eq.0.and.durlp.ne.sesdur) then durlp = sesdur durhp = 0 endif print *,'numses,nrecs=',numseq,nrecs if(nrecs.gt.85) then print *, 'nrec gt 85, numses, npkts, numseq, time =', 1 numses,lpkts,numpkts,numseq,time stop endif print *, lpkts,npkts,numseq,nrecs,time0,sesdur,delay,sc,hkp, 1 sampint,ncycle,durhp,durlp c 1 sampint,ncycle write(12,*) lpkts,npkts,numseq,nrecs,time0,sesdur,delay,sc,hkp, 1 sampint,ncycle,durHP,durLP c write(13,*) lpkts,npkts,numseq,nrecs,time,sesdur,delay,sc,hkp, c 1 sampint,ncycle,durHP,durLP write(14,*) lpkts,npkts,numseq,nrecs,time0,sesdur,delay,sc,hkp, 1 sampint,ncycle,durHP,durLP c write(16,501) numseq,int(sesdur/sc),sesdur,sc,hkp,sampint,ncycle, write(16,501) numseq,mscirec(numseq),sesdur,sc,hkp,sampint,ncycle, 1 durlp,durhp,time0 write(26,501) numseq,int(sesdur/sc),sesdur,sc,hkp,sampint,ncycle, 1 durlp,durhp,time0 c write(17,501) numseq,int(sesdur/hkp),sesdur,sc,hkp,sampint, write(17,501) numseq,mhkprec(numseq),sesdur,sc,hkp,sampint, 1 ncycle,durlp,durhp,time0 501 format(2(3x,i5),4(3x,f7.1),3x,i5,2(3x,f7.1),3x,f14.3) c timesc = 0.375 + (time-time0) / 88775.0 C lnum = 0 DO 9 NUMPKTS =1,npkts if(numpkts.gt.1) then read(11,*) lpkts,npkts,numseq,nrecs,time,sesdur,delay,sc,hkp, c 1 sampint,ncycle,durHP,durLP 1 sampint,ncycle if(nrecs.gt.85) then print *, 'nrec gt 85, numses,lpkts,npkts,numseq,time=', 1 numses,lpkts,numpkts,numseq,time stop endif print *, lpkts,npkts,numseq,nrecs,time0,sesdur,delay,sc,hkp, 1 sampint,ncycle,durhp,durlp write(12,*) lpkts,npkts,numseq,nrecs,time0,sesdur,delay,sc,hkp, 1 sampint,ncycle,durHP,durLP c write(13,*) lpkts,npkts,numseq,nrecs,time,sesdur,delay,sc,hkp, c 1 sampint,ncycle,durHP,durLP c write(14,*) lpkts,npkts,numseq,nrecs,time,sesdur,delay,sc,hkp, c 1 sampint,ncycle,durHP,durLP endif DO 10 NUM=1,nrecs c print *, numses,numpkts,num read(11,*) nx,nbad,time,(data(n),n=1,12),(sd(l),l=1,12) if(NUM.eq.1) then if(time.eq.SCLKX) then write(33,*) 'TIME PROBLEM, Session ',numseq,' , first record of 1packet ',NUMPKTS timedel = sampint else timedel = 0.0 endif endif time = time + timedel timesc = 0.375 + (time-time0) / 88775.0 c if(nx.eq.1) then c HTIME1 = HTIME2 c HTIME2 = 0.375 + (time-time0) / 88775.0 c endif if(nx.eq.0) then lnum = lnum + 1 C KNUM = MIN(INT(SESDUR/HKP),((LNUM-1)*SAMPINT/HKP)+1) KNUM = INT((TIME - TIME0) / HKP) + 1 c KNUM=INT((LNUM-1)*SAMPINT/HKP) + 1 c HTIME1 = HTIME(NUMSES,KNUM) c HTIME2 = HTIME(NUMSES,KNUM+1) c PRT41 = PRT4TMP(NUMSES,KNUM) c PRT42 = PRT4TMP(NUMSES,KNUM+1) DO 15 N2=1,12 SCISD(N2) = SD(N2) C *** CONVERT COUNTS TO VOLTS OUT *********** 15 SCI(N2) = 3.0 * ((data(N2)/convfac)-1.0) c write(21,*) knum,prt41,htime2,time,prt42,htime1,htime2-htime1 c write(21,*) knum1,dt1,dt2,dt3 C *** TPRT4 IS THE COLD JUNCTION TEMPERATURE USED FOR C DETERMINING THERMOCOUPLE TEMPERATURES IF(PRT4TMP(NUMSES,KNUM).EQ.0.0.AND.PRT4TMP(NUMSES,KNUM-1).NE. 1 0.0) 1 THEN PRT4TMP(NUMSES,KNUM) = PRT4TMP(NUMSES,KNUM-1) PRT5TMP(NUMSES,KNUM) = PRT5TMP(NUMSES,KNUM-1) ENDIF IF(PRT4TMP(NUMSES,KNUM).EQ.0.0.AND.PRT4TMP(NUMSES,KNUM+1).NE. 1 0.0) THEN PRT4TMP(NUMSES,KNUM) = PRT4TMP(NUMSES,KNUM+1) PRT5TMP(NUMSES,KNUM) = PRT5TMP(NUMSES,KNUM+1) ENDIF IF(PRT4TMP(NUMSES,KNUM).EQ.0.0.AND.PRT4TMP(NUMSES,KNUM-1).EQ. 1 0.0.AND.PRT4TMP(NUMSES,KNUM+1).EQ.0.0) THEN PRINT *, 'PRT4TMP=0.0, NUMSES=',NUMSES,' KNUM=',KNUM STOP ENDIF tprt4 = prt4tmp(numses,knum) vprt4=-1.06482E+1+2.1109E-02*tprt4+1.14319E-05*tprt4**2+ 1 4.51738E-07*tprt4**3-1.22001E-09*tprt4**4+1.0614E-12*tprt4**5 c print *, 'tprt4,vprt4=',tprt4,vprt4 C *** DETERMINE TOP, MIDDLE, AND BOTTOM MAST THERMOCOUPLE, C AND DESCENT THERMOCOUPLE TEMPERATURES SCI(1) = 0.004816-2.197012*SCI(1)+vprt4 SCI(2) = 0.006176-2.159250*SCI(2)+vprt4 SCI(3) = 0.009193-2.146410*SCI(3)+vprt4 SCI(4) = 0.007179-2.207124*SCI(4)+vprt4 do 91 l=1,4 SCI(l) = 273.155+17.0634*SCI(l)-0.256265*SCI(l)**2+ 1 0.0180272*SCI(L)**3-1.29807E-03*SCI(L)**4- 1 6.69391E-05*SCI(L)**5-3.95734E-06*SCI(L)**6 + 1 2.19876E-06*SCI(L)**7 91 continue C ** END THERMOCOUPLE TEMPERATURE DETERMINATION ****** C ** PRESSURE CALIBRATION, WITH TEMPERATURE EFFECT FROM JTS, 06/97 C c HNEWOFF = 2.1131 - 0.007917*PRT5TMP(NUMSES,KNUM) HNEWOFF = 1.4955 - 0.005625 * PRT5TMP(NUMSES,KNUM) c print *, PRT5TMP(numses,knum),HNEWOFF DO 650 J=1,4 coeff(j) = vfptc(j,1)+vfptc(j,2)*PRT5TMP(numses,knum) + 1 vfptc(j,3)*PRT5TMP(numses,knum)**2 + 2 vfptc(j,4)*PRT5TMP(numses,knum)**3 c print *, coeff(j),vfptc(j,1),vfptc(j,2),vfptc(j,3), c 1 vfptc(j,4) 650 CONTINUE oldoff = coeff(1) c print *, oldoff DO 651 J=1,4 coeff(j) = pfvtc(j,1)+pfvtc(j,2)*PRT5TMP(numses,knum) + 1 pfvtc(j,3)*PRT5TMP(numses,knum)**2 + 2 pfvtc(j,4)*PRT5TMP(numses,knum)**3 c print *, coeff(j),pfvtc(j,1),pfvtc(j,2),pfvtc(j,3), c 1 pfvtc(j,4) 651 CONTINUE c SCI(5) = 12.0*(3.3441-0.28793*SCI(5))/5.0 c SCI(6) = 12.0*(2.30319-0.84706*SCI(6))/5.0 SCI(5) = 3.3441 - 0.28793*SCI(5) SCI(6) = 2.30319 - 0.84706 * SCI(6) c print *, SCI(5),SCI(6) C SCI(5) = SCI(5) + oldoff-hnewoff SCI(6) = SCI(6) + oldoff - hnewoff c print *, SCI(5),SCI(6) SCI(5) = coeff(1) +coeff(2)*SCI(5) + 1 coeff(3)*SCI(5)**2 + coeff(4)*SCI(5)**3 SCI(6) = coeff(1) + coeff(2)*SCI(6) 1 + coeff(3)*SCI(6)**2 + coeff(4)*SCI(6)**3 c print *, SCI(5),SCI(6) C ******* END PRESSURE DATA REDUCTION *** C C ******* WIND SENSOR DATA REDUCTION ********* c if(n2.ge.7.and.data(N2).GT.8192) then do 92 n2=7,12 if(data(n2).gt.8192) then nn = n2 - 6 vin = off(nn) + sci(n2) * gain(nn) rin = - vin / crntlp rin = rin * rfdg(nn) vout = -(rin + off(nn)/crntlp) * crntlp / gain(nn) c vin = vout c vout = SCI(N2) segt(nn) = A(nn) + B(nn)*vout + C(nn)*vout**2 + D(nn)*vout**3 SCI(N2) = SEGT(nn) c SCISD(N2) = SD(N2) else if(n2.ge.7.and.data(N2).lt.8192) then nn = n2 - 6 VIN = OFF(nn) + SCI(N2) * GAIN(NN) RIN = - VIN / CRNTHP c RIN = -(OFF(nn)+SCI(N2)*GAIN(nn)) / CRNTHP RIN = RIN * rfdg(nn) VPOUT = -(RIN + OFF(NN)/CRNTLP) * CRNTLP / GAIN(nn) c write(13,*) n2,data(n2),sci(n2),nn,vin,rin,vpout segt(nn) = A(nn) + B(nn) *VPOUT + C(nn)*VPOUT**2 + D(nn)*VPOUT**3 SCI(N2) = SEGT(NN) c SCISD(N2) = SD(N2) endif 92 continue c endif c SCISD(N2) = sd(N2) c15 CONTINUE bintime = bintime + timesc / (SESDUR / SC) if(SESDUR.EQ.184.0.AND.NCYCLE.GE.0) THEN do 602 nn=1,12 602 binavg(nn) = binavg(nn) + sci(nn) / INT(SESDUR / SC) ENDIF write(12,*) nx,nbad,time,(sci(n),n=1,12),(sd(l),l=1,12), 1 timesc call sclk2ltst(time,msol,mhr,mmin,sec) c write(16,*) msol,mhr,mmin,sec,(sci(n),n=1,12) if(data(7).gt.8192) THEN c POW = 'LP' POW = 0 else c POW='HP' POW = 1 endif write(16,444) msol,mhr,mmin,sec,(sci(n),n=1,12), 1 time,POW 444 format(i2,' ',i2,' ',i2,' ',f6.3,4(2x,f7.2),2(2x,f8.4),6(2x,f7.2), 1 2x,f14.3,2x,I1) write(26,445) msol,mhr,mmin,sec,(sci(n),n=1,6),time 445 format(i2,':',i2,':',i2,':',f6.3,4(2x,f7.2),2(2x,f8.4), 1 2x,f14.3) c if(data(7).gt.8192) write(13,*) 'LP',nx,nbad,timesc, c 1 (segt(n),n=1,6) if(data(7).gt.8192) write(14,*) 0,nx,nbad,timesc, 1 (SCI(N),N=1,12),time if(data(7).gt.8192) kl = kl +1 c 1 (segt(n),n=1,6) c if(data(7).lt.8192) write(13,*) 'HP',nx,nbad,timesc, c 1 (segt(n),n=1,6) if(data(7).lt.8192) write(14,*) 1,nx,nbad,timesc, 1 (SCI(N),N=1,12),time if(data(7).lt.8192) kl = kl + 1 c 1 (segt(n),n=1,6) else C HERE WE GO ON TO DETERMINING HOUSEKEEPING VALUES DO 16 N2=1,12 HKOLD(N2) = HK(N2) HK(N2) = 3.0 * ((data(N2)/convfac)-1.0) HKSD(N2) = sd(N2) 16 CONTINUE HK(1) = 2.0 * HK(1) HK(3) = 2.0 * HK(3) HK(4) = 2.0 * HK(4) HK(5) = HK(5) / 10.4455 HK(6) = (0.210889+0.032413*HK(6))/4.99E-4 HK(6) = 273.15-221.581+0.307818*HK(6)+4.60188E-04*HK(6)**2 - 1 5.00112E-07*HK(6)**3 + 2.21663E-10*HK(6)**4 HK(9) = 0.006062-2.198228*HK(9) VPRT4=-1.06482E+1+2.1109E-02*HK(6)+1.14319E-05*HK(6)**2 + 1 4.51738E-07*HK(6)**3-1.22001E-09*HK(6)**4 + 1 1.06146E-12*HK(6)**5 HK(9) = HK(9) + vprt4 HK(9) = 273.155+17.0634*HK(9)-0.256265*HK(9)**2 + 1 0.0180272*HK(9)**3-1.29807E-03*HK(9)**4 - 1 6.69391E-05*HK(9)**5-3.95734E-06*HK(9)**6 + 1 2.19876E-6*HK(9)**7 write(22,*) time,hk(9) HK(10) = 1000.0*HK(10) / 22.10 HK(11) = (0.243000+0.022025*HK(11))/4.958E-04 HK(11) = -221.456+0.309646*HK(11)+4.68740E-04*HK(11)**2 - 1 5.12036E-07*HK(11)**3+2.27992E-10*HK(11)**4 + 273.15 HK(12) = 273.15 + 100.0*HK(12) write(12,*) nx,nbad,time,(hk(n),n=1,12),(sd(l),l=1,12), 1 timesc c write(13,*) 'HK', nx,nbad,time,(hk(n),n=1,12) call sclk2ltst(time,msol,mhr,mmin,sec) c write(17,*) msol,mhr,mmin,sec,(hk(l),l=1,12) write(17,444) msol,mhr,mmin,sec,(hk(l),l=1,12),time endif if(nx.eq.0) SCLKX = time 10 CONTINUE print *, 'KL=',KL 9 CONTINUE if(SESDUR.EQ.184.0.AND.NCYCLE.EQ.2) THEN write(22,*) bintime,(BINAVG(kk),KK=1,12) ENDIF close(16) close(17) 5 continue C END subroutine sclk2ltst(sclk,sol,hr,min,sec) c program sclk2ltst c integer sol,hr real*8 sclk,sclk0(300),daylngth,time,dectime c c sclk = 1259000001.000 open(unit=30,file='MPFsclk_midnite.CHRONOS',form='FORMATTED') c do 10 num=1,85 read(30,100) sclk0(num) 10 continue 100 format(2x,f14.3) c do 20 num=1,299 if(sclk.gt.sclk0(num).and.sclk.lt.sclk0(num+1)) then daylngth = sclk0(num+1) - sclk0(num) time = sclk - sclk0(num) dectime = time/daylngth hour = daylngth / 24.0 hr = int(24.0 * dectime) rmin = 60.0 * mod(24.0 * dectime,1.0) min = int(60.0 * mod(24.0 * dectime,1.0)) sec = 60.0 * mod(rmin,1.0) sol = num c print *, sol,hr,min,sec,sclk goto 999 endif 20 continue c 999 continue c close(30) return end