SUBROUTINE DB_SC2D ( dburpt, iret ) C************************************************************************ C* DB_SC2D * C* * C* This subroutine calls the routines which decode the groups in * C* section 2 of the drifting buoy report. This section contains surface* C* marine data. * C* * C* DB_SC2D ( DBURPT, IRET ) * C* * C* Input parameters: * C* DBURPT CHAR* Report array * C* * C* Input parameters passed via common: * C* LSEC2 INTEGER Length of section 2 * C* ISEC2 INTEGER Pointer to start of section 2 * C* * C* Output parameters passed via common: * C* RIVALS(IRQDS2) REAL Quality control indicator for * C* section 2. WMO Code table 3334. * C* RIVALS(IRQXS2) REAL Indicator of position of group * 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************************************************************************ INCLUDE 'GEMPRM.PRM' INCLUDE 'dbcmn.cmn' C* CHARACTER*(*) dburpt C* CHARACTER fld1*1 C------------------------------------------------------------------------ iret = 0 ip = isec2 jflg = 0 ipt = ip C C* Get the quality control indicator for section 2. C fld1 = dburpt (ipt:ipt) CALL ST_INTG ( fld1, ival, ier ) IF ( ier .eq. 0 ) rivals ( irqds2 ) = FLOAT ( ival ) C C* Get the indicator of position of group C ipt = ipt + 1 fld1 = dburpt (ipt:ipt) CALL ST_INTG ( fld1, ival, ier ) IF ( ier .eq. 0 ) rivals ( irqxs2 ) = FLOAT ( ival ) C iend = isec2 + lsec2 - 1 C DO WHILE ( ipt .lt. iend ) C ipt = ipt + 1 C IF ( dburpt (ipt:ipt+1) .eq. ' 0' .and. + jflg .eq. 0 ) THEN C C* Decode the 0STTT sea surface temperature group. C ipt = ipt + 2 iparam = 3 CALL DB_TEMP ( dburpt, iparam, ipt, jret ) ipt = ipt + 1 END IF C IF ( dburpt (ipt:ipt+1) .eq. ' 1' .and. + jflg .eq. 0 ) THEN C C* Decode the wave period and height data groups. C ipt = ipt + 2 CALL DB_DWPH ( dburpt, ipt, jret ) jflg = 1 END IF END DO C* RETURN END