SUBROUTINE UA_XMLD ( report, lenr, irptr, iret ) C************************************************************************ C* UA_XMLD * C* * C* This subroutine decodes 10190 extrapolated mandatory level data. * C* * C* UA_XMLD ( REPORT, LENR, IRPTR, IRET ) * C* * C* Input parameters: * C* REPORT CHAR* Report * C* LENR INTEGER Length of REPORT * C* * C* Input and output parameters: * C* IRPTR INTEGER Pointer within REPORT * C* * C* Output parameters: * C* RIVALS (IRXPRS) REAL Extrapolated mandatory level * C* pressure in millibars * C* RIVALS (IRHGTM) REAL Extrapolated mandatory level * C* height in meters * C* IRET INTEGER Return code: * C* 0 = normal return * C* -1 = critical error in REPORT * C* or reached end of REPORT * C** * C* Log: * C* J. Ator/NCEP 03/96 * C* J. Ator/NCEP 10/96 ERRGRP -> UA_EGRP, removed ERRRPT * C* J. Ator/NCEP 12/97 New interface format, style changes * C* J. Ator/NCEP 10/99 Clean up function declarations * C************************************************************************ INCLUDE 'GEMPRM.PRM' INCLUDE 'uacmn.cmn' C* CHARACTER*(*) report C* CHARACTER field*(MXLENF) C* LOGICAL UA_EGRP C------------------------------------------------------------------------ C C* Initialize variables. C iret = 0 C C* Get and decode the pressure/height group. C CALL UA_GFLD ( report, lenr, irptr, field, lenf, ier ) IF ( ier .ne. 0 ) THEN iret = -1 RETURN ELSE IF ( .not. UA_EGRP ( field, lenf ) ) THEN CALL UA_PRHT ( field, xprs, xhtm, ier ) rivals ( irxprs ) = xprs rivals ( irxhtm ) = xhtm END IF C* RETURN END