setmod Subroutine

public subroutine setmod(mode)

THIS SUBROUTINE ALLOWS THE USER TO SPECIFY THE 'MODE' VALUE, WHICH DETERMINES THE METHOD USED FOR THE COMPUTATION OF SIDEREAL TIME AND THE TERRESTRIAL-TO-CELESTIAL TRANSFORMATION, AND THE ACCURACY OF NUTATION AND RELATED CALCULATIONS.

 MODE   = SELECTION FOR METHOD AND ACCURACY (IN)
          SET MODE=0 FOR CIO-BASED METHOD, FULL ACCURACY
          SET MODE=1 FOR CIO-BASED METHOD, REDUCED ACCURACY
          SET MODE=2 FOR EQUINOX-BASED METHOD, FULL ACCURACY
          SET MODE=3 FOR EQUINOX-BASED METHOD, REDUCED
                         ACCURACY

NOTE: OTHER ENTRY POINTS ARE PROVIDED TO ALLOW THE METHOD AND ACCURACY TO BE SPECIFIED IN A MORE OBVIOUS WAY: MODE=0 CAN BE SET BY CALL CIOTIO AND CALL HIACC MODE=1 CAN BE SET BY CALL CIOTIO AND CALL LOACC MODE=2 CAN BE SET BY CALL EQINOX AND CALL HIACC MODE=3 CAN BE SET BY CALL EQINOX AND CALL LOACC

Arguments

Type IntentOptional Attributes Name
integer :: mode

Calls

proc~~setmod~~CallsGraph proc~setmod novas_module::setmod getmod getmod proc~setmod->getmod

Source Code

subroutine setmod ( mode )

save imode, lmode

data imode, lmode / 2, 2 /

lmode = imode
imode = mode

return


entry ciotio
lmode = imode
if ( imode >= 2 ) imode = imode - 2
return


entry eqinox
lmode = imode
if ( imode <= 1 ) imode = imode + 2
return


entry loacc
lmode = imode
if ( mod ( imode, 2 ) == 0 ) imode = imode + 1
return


entry hiacc
lmode = imode
if ( mod ( imode, 2 ) == 1 ) imode = imode - 1
return


entry resume
imode = lmode
return


entry getmod ( mode )
!
!     THIS SUBROUTINE RETURNS THE 'MODE' VALUE, WHICH
!     DETERMINES THE METHOD USED FOR THE COMPUTATION OF SIDEREAL
!     TIME AND THE TERRESTRIAL-TO-CELESTIAL TRANSFORMATION, AND THE
!     ACCURACY OF NUTATION AND RELATED CALCULATIONS.
!
!          MODE   = SELECTION FOR METHOD AND ACCURACY (OUT)
!                   MODE=0 MEANS CIO-BASED METHOD, FULL ACCURACY
!                   MODE=1 MEANS CIO-BASED METHOD, REDUCED ACCURACY
!                   MODE=2 MEANS EQUINOX-BASED METHOD, FULL ACCURACY
!                   MODE=3 MEANS EQUINOX-BASED METHOD, REDUCED ACCURACY
!
!
mode = imode

return

end subroutine setmod