SUBROUTINE Write1Sec(Lu) c********************************************************************** c Subroutine to write 1 second's data to the output file c Only do if INE_Cnt is 40 c Called from Fast4Lock IMPLICIT none INCLUDE "FastCom.ftni" c Passed Parameters INTEGER Lu ! output file Lu c Local Variables INTEGER Fract,i REAL Rd2Dg PARAMETER (Rd2Dg = 57.2957795) ! convert radians to degrees C Quick check that we have enough samples IF (INE_Sel.EQ.2.AND.INE_Cnt2.LT.40) THEN WRITE(*,'("Skipped Time:"i6" INE_Cnt2:"i3)') & Time_Now,INE_Cnt2 Init = .TRUE. ! init filters next time RETURN ! and give up ELSEIF (INE_Sel.EQ.1.AND.INE_Cnt1.LT.40) THEN ! not enough WRITE(*,'("Skipped Time:"i6" INE_Cnt1:"i3)') & Time_Now,INE_Cnt1 Init = .TRUE. RETURN ENDIF IF (.NOT.RA_OK) THEN WRITE(*,'("Skipped Time:"i6" No RA")') & Time_Now Init = .TRUE. ! init filters next time RETURN ! and give up ENDIF IF (Bad_Sec.NE.' ') THEN WRITE(*,'("Skipped Time:"i6" Bad_Sec:"a6)') & Time_Now,Bad_Sec Init = .TRUE. ! init filters next time RETURN ! and give up ENDIF C Time to print out to file DO i = 1,40 ! do all samples this sec Fract = IFix(Float(i-1)/40. * 10000.) ! fractional part of timetag IF (VAchan.EQ.0) THEN ! want RINU style output IF (RA_Sel.EQ.0) THEN ! use PAlt WRITE(Lu,'(i10.10,".",i4.4,i6,i7,f7.1,2f7.2,3f7.1, & f7.2,f7.3)') Time_Now,Fract,NInt(IASarray(i)), & NInt(PAlt(i)*3.28),Hdg(i)*Rd2Dg,Pitch(i)*Rd2Dg, & Roll(i)*Rd2Dg,NVel(i),EVel(i),VVel(i),Vz(i),Nz(i) ELSE ! use RA WRITE(Lu,'(i10.10,".",i4.4,i6,i7,f7.1,2f7.2,3f7.1, & f7.2,f7.3)') Time_Now,Fract,NInt(IASarray(i)), & NInt(Alt(i)),Hdg(i)*Rd2Dg,Pitch(i)*Rd2Dg, & Roll(i)*Rd2Dg,NVel(i),EVel(i),VVel(i),Vz(i),Nz(i) ENDIF ELSE ! need old analog accel style IF (RA_Sel.EQ.0) THEN WRITE(Lu,'(i10.10,".",i4.4,i6,i7,f7.1,2f7.2,3f7.1, & 3f7.3,f7.2,f7.3)') & Time_Now,Fract,NInt(IASarray(i)),NInt(PAlt(i)*3.28), & Hdg(i)*Rd2Dg,Pitch(i)*Rd2Dg,Roll(i)*Rd2Dg,NVel(i), & EVel(i),VVel(i),NAcc(i),EAcc(i),VAcc(i),Vz(i),Nz(i) ELSE WRITE(Lu,'(i10.10,".",i4.4,i6,i7,f7.1,2f7.2,3f7.1, & 3f7.3,f7.2,f7.3)') & Time_Now,Fract,NInt(IASarray(i)),NInt(Alt(i)), & Hdg(i)*Rd2Dg,Pitch(i)*Rd2Dg,Roll(i)*Rd2Dg,NVel(i), & EVel(i),VVel(i),NAcc(i),EAcc(i),VAcc(i),Vz(i),Nz(i) ENDIF ENDIF c Diag print IF ( (Abs(Nz(i)).GT.0.3.AND.Abs(Nz(i)-Vacc(i)).GT.0.2 .AND. ! no roll & Abs(Roll(i)*Rd2Dg).LT.5.) .OR. & (Abs(Nz(i)).GT.0.7.AND.Abs(Nz(i)-Vacc(i)).GT.0.3 .AND. & Abs(Roll(i)*Rd2Dg).LT.21.) .OR. ! low roll & Abs(Nz(i)).GT.1.0.AND.Abs(Nz(i)-Vacc(i)).GT.0.5 ) ! High roll & WRITE(*,'("High Nz:"f6.3" VAcc:"f6.3" Roll:"f6.1" @"i6"." & i4.4" sec")') Nz(i),VAcc(i),Roll(i)*Rd2Dg, & Time_Now,Fract END DO RETURN END