SUBROUTINE DB_DS4R ( dburpt, ipt, iret ) C************************************************************************ C* DB_DS4R * C* * C* This subroutine decodes the drifting buoy section 4 group * C* 2Q(N)Q(L)Q(a)Q(z), which contains the quality of the buoy satellite * C* transmission, location, location quality class, and whether or not * C* depths are corrected using hydrostatic pressure. * C* * C* DB_DS4R ( DBURPT, IPT, IRET ) * C* * C* Input parameters: * C* DBURPT CHAR* Report array * C* * C* Input and Output parameters: * C* IPT INTEGER On input, points to first Q in * C* group; on output, points to * C* second Q * C* * C* Output parameters passed via common: * C* RIVALS(IRQBST) REAL Quality of buoy satellite * C* transmission * C* RIVALS(IRQCIL) REAL Quality of location * C* RIVALS(IRQ4CL) REAL Location quality class * C* RIVALS(IRQDEP) REAL Indicator of whether depths * C* are corrected using hydrostatic * C* pressure. * C* * C* Output parameters: * C* IRET INTEGER Return code * C* 0 = normal return * C* 1 = problems * C** * C* Log: * C* R. Hollern/NCEP 12/99 * C* C. Caruso Magee/NCEP 03/2000 Fixed docblock comments. * C* C. Caruso Magee/NCEP 07/2001 Added code to decode rivals(irqdep). * C************************************************************************ INCLUDE 'GEMPRM.PRM' INCLUDE 'dbcmn.cmn' C* CHARACTER*(*) dburpt C* CHARACTER fld1*1 C------------------------------------------------------------------------ iret = 0 C C* Get the quality of the buoy satellite transmission. C* WMO Code Table 3313. C IF ( dburpt (ipt:ipt) .ne. '/' ) THEN fld1 = dburpt (ipt:ipt) CALL ST_INTG ( fld1, ival, ier ) IF ( ier .eq. 0 ) rivals ( irqbst ) = FLOAT ( ival ) END IF C ipt = ipt + 1 C C* Get the quality of the location -- WMO Code Table 3311. C IF ( dburpt (ipt:ipt) .ne. '/' ) THEN fld1 = dburpt (ipt:ipt) CALL ST_INTG ( fld1, ival, ier ) IF ( ier .eq. 0 ) rivals ( irqcil ) = FLOAT ( ival ) END IF C ipt = ipt + 1 C C* Get the Location quality class -- WMO Code Table 3302. C IF ( dburpt (ipt:ipt) .ne. '/' ) THEN fld1 = dburpt (ipt:ipt) CALL ST_INTG ( fld1, ival, ier ) IF ( ier .eq. 0 ) rivals ( irq4cl ) = FLOAT ( ival ) END IF C ipt = ipt + 1 C C* Get the indicator for whether depths are corrected using C* hydrostatic pressure. 0 = depths not corrected. 1 = depths C* are corrected. / = missing. C IF ( dburpt (ipt:ipt) .ne. '/' ) THEN fld1 = dburpt (ipt:ipt) CALL ST_INTG ( fld1, ival, ier ) IF ( ier .eq. 0 ) rivals ( irqdep ) = FLOAT ( ival ) END IF C RETURN END