Go to the documentation of this file. 1 subroutine suncnst(gaclac,navqc,sunrng,sun)
41 #include "tlm_str.fin"
42 #include "navqc_s.fin"
43 type(sun_struct) :: sun(3)
46 integer*4 gaclac, sunrng(2,3)
50 integer*4 i1, i2, j1, j2, nper, nrng, isens, maxgap
51 logical found, end, gottwo
61 if( gaclac .eq. 1 )
then
69 if( sunrng(1,isens) .ne. -1 )
then
77 nrng = sunrng(2,isens)
82 call fndflg(sun(isens)%flag, nrng, sunrng(1,isens), i1 )
88 100
format(
' SUNCNST: no unflagged sun angle values found',
89 1 /,
' for sensor:',i7)
97 call fndflg(sun(isens)%flag, nrng, (i1 + 1), i2 )
104 diff(1) = sun(isens)%ang(1,i2) - sun(isens)%ang(1,i1)
105 diff(2) = sun(isens)%ang(2,i2) - sun(isens)%ang(2,i1)
106 toldif(1) = navqc%sun_del_1 * ( i2 - i1 ) *
108 toldif(2) = navqc%sun_del_2 * ( i2 - i1 ) *
111 if( (
abs(
diff(1)) .gt. toldif(1) ) .or.
112 1 (
abs(
diff(2)) .gt. toldif(2) ) .or.
113 2 ( (i2-i1) .gt. maxgap ) )
then
114 if ( .not. gottwo) sun(isens)%flag(i1) = 1
133 if( .not. found )
then
134 write( 6, 500 ) isens
135 500
format(
' SUNCNST: no consistent pairs of sun sensor',/,
136 1
' angles were found for sensor:',i7)
142 if (j1 .gt. sunrng(1,isens)) sunrng(1,isens) = j1
143 if (j2 .lt. sunrng(2,isens)) sunrng(2,isens) = j2
subroutine fndflg(flag, nflag, istndx, next)
subroutine suncnst(gaclac, navqc, sunrng, sun)
subroutine diff(x, conec, n, dconecno, dn, dconecmk, units, u, inno, i, outno, o, input, deriv)