C+ C NAME: C smei_hdr_flag C PURPOSE: C Manipulate binary flags in SMEI header C CATEGORY: C gen/for/lib C CALLING SEQUENCE: subroutine smei_hdr_flag(id,iflag,hdr) C INPUTS: C id integer 0: read all flags from iflag into hdr C 1: write all flags from hdr into iflag C 2: only read UCSD flags C 3: only write UCSD flags C iflag integer C hdr(*) double precision SMEI frm header C OUTPUTS: C hdr(*) double precision updated heaer C INCLUDE: include 'smei_frm_hdr.h' C PROCEDURE: C MODIFICATION HISTORY: C MAR-2005, Paul Hick (UCSD/CASS; pphick@ucsd.edu) C- integer id integer iflag double precision hdr(*) if (mod(id,2) .eq. 0) then ! Read flags from iflag into hdr if (id .eq. 0) then ! Read HAFB flags hdr(SMEI__HDR_TAGMODE ) = min(1,iand(iflag,2**SMEI__HDR_FLAG_TAGMODE )) hdr(SMEI__HDR_FULL_FRAME ) = min(1,iand(iflag,2**SMEI__HDR_FLAG_FULL_FRAME )) hdr(SMEI__HDR_SHUTTER ) = min(1,iand(iflag,2**SMEI__HDR_FLAG_SHUTTER )) hdr(SMEI__HDR_DARK_OFFSET ) = min(1,iand(iflag,2**SMEI__HDR_FLAG_DARK_OFFSET)) hdr(SMEI__HDR_FLATFIELD ) = min(1,iand(iflag,2**SMEI__HDR_FLAG_FLATFIELD )) hdr(SMEI__HDR_COSMIC_RAYS ) = min(1,iand(iflag,2**SMEI__HDR_FLAG_COSMIC_RAYS)) hdr(SMEI__HDR_CALIBRATION ) = min(1,iand(iflag,2**SMEI__HDR_FLAG_CALIBRATION)) hdr(SMEI__HDR_FLAT_ENABLED) = min(1,iand(iflag,2**SMEI__HDR_FLAG_FLAT_ENABLED)) hdr(SMEI__HDR_LED_ENABLED ) = min(1,iand(iflag,2**SMEI__HDR_FLAG_LED_ENABLED)) hdr(SMEI__HDR_BOS_ALERT ) = min(1,iand(iflag,2**SMEI__HDR_FLAG_BOS_ALERT )) end if ! Read UCSD flags hdr(SMEI__HDR_BASE_DONE) = min(1,iand(iflag,2**SMEI__HDR_FLAG_BASE_DONE)) hdr(SMEI__HDR_BASE_OK ) = min(1,iand(iflag,2**SMEI__HDR_FLAG_BASE_OK )) hdr(SMEI__HDR_ECLIPSE ) = min(1,iand(iflag,2**SMEI__HDR_FLAG_ECLIPSE )) hdr(SMEI__HDR_SHADOW ) = min(1,iand(iflag,2**SMEI__HDR_FLAG_SHADOW )) hdr(SMEI__HDR_BAD_QUAT ) = min(1,iand(iflag,2**SMEI__HDR_FLAG_BAD_QUAT )) hdr(SMEI__HDR_JUST_BAD ) = min(1,iand(iflag,2**SMEI__HDR_FLAG_JUST_BAD )) hdr(SMEI__HDR_ANNEAL ) = min(1,iand(iflag,2**SMEI__HDR_FLAG_ANNEAL )) else ! Write flags from hdr into iflag iflag = 0 if (id .eq. 1) then iflag = iflag+nint(hdr(SMEI__HDR_TAGMODE ))*2**SMEI__HDR_FLAG_TAGMODE iflag = iflag+nint(hdr(SMEI__HDR_FULL_FRAME ))*2**SMEI__HDR_FLAG_FULL_FRAME iflag = iflag+nint(hdr(SMEI__HDR_SHUTTER ))*2**SMEI__HDR_FLAG_SHUTTER iflag = iflag+nint(hdr(SMEI__HDR_DARK_OFFSET ))*2**SMEI__HDR_FLAG_DARK_OFFSET iflag = iflag+nint(hdr(SMEI__HDR_FLATFIELD ))*2**SMEI__HDR_FLAG_FLATFIELD iflag = iflag+nint(hdr(SMEI__HDR_COSMIC_RAYS ))*2**SMEI__HDR_FLAG_COSMIC_RAYS iflag = iflag+nint(hdr(SMEI__HDR_CALIBRATION ))*2**SMEI__HDR_FLAG_CALIBRATION iflag = iflag+nint(hdr(SMEI__HDR_FLAT_ENABLED))*2**SMEI__HDR_FLAG_FLAT_ENABLED iflag = iflag+nint(hdr(SMEI__HDR_LED_ENABLED ))*2**SMEI__HDR_FLAG_LED_ENABLED iflag = iflag+nint(hdr(SMEI__HDR_BOS_ALERT ))*2**SMEI__HDR_FLAG_BOS_ALERT end if iflag = iflag+nint(hdr(SMEI__HDR_BASE_DONE))*2**SMEI__HDR_FLAG_BASE_DONE iflag = iflag+nint(hdr(SMEI__HDR_BASE_OK ))*2**SMEI__HDR_FLAG_BASE_OK iflag = iflag+nint(hdr(SMEI__HDR_ECLIPSE ))*2**SMEI__HDR_FLAG_ECLIPSE iflag = iflag+nint(hdr(SMEI__HDR_SHADOW ))*2**SMEI__HDR_FLAG_SHADOW iflag = iflag+nint(hdr(SMEI__HDR_BAD_QUAT ))*2**SMEI__HDR_FLAG_BAD_QUAT iflag = iflag+nint(hdr(SMEI__HDR_JUST_BAD ))*2**SMEI__HDR_FLAG_JUST_BAD iflag = iflag+nint(hdr(SMEI__HDR_ANNEAL ))*2**SMEI__HDR_FLAG_ANNEAL end if return end