SUBROUTINE CG_GTWD ( string, parm, iret ) C************************************************************************ C* CG_GTWD * C* * C* This subroutine decodes the wind or swell direction in a report. * C* * C* CG_GTWD ( STRING, PARM, IRET ) * C* * C* Input parameters: * C* STRING CHAR* String containing sky cover data* C* PARM CHAR* If 'WIND', store decoded dir. * C* into irdrct. If 'SWELL', store * C* into ir, store into irdosw. * C* * C* Output parameters passed via common: * C* RIVALS(IRDRCT) REAL wind direction * C* RIVALS(IRDOSW) REAL swell direction * C* * C* Output parameters: * C* IRET INTEGER Return code * C* 0 = Normal return * C* -1 = invalid direction * C** * C* Log: * C* C. Caruso Magee/NCEP 04/00 Original Author * C* C. Caruso Magee/NCEP 06/00 Remove multi-lev NSWV. * C* C. Caruso Magee/NCEP 09/00 Add code to handle vrb wind dir. * C************************************************************************ INCLUDE 'GEMPRM.PRM' INCLUDE 'cgcmn.cmn' character*(*) string, parm integer iret real rtmp iret = 0 rtmp = RMISSD IF ( string .eq. 'N' ) THEN rtmp = 0.00 ELSEIF ( string .eq. 'NNE' ) THEN rtmp = 22.50 ELSEIF ( string .eq. 'NE' ) THEN rtmp = 45.00 ELSEIF ( string .eq. 'ENE' ) THEN rtmp = 67.50 ELSEIF ( string .eq. 'E' ) THEN rtmp = 90.00 ELSEIF ( string .eq. 'ESE' ) THEN rtmp = 112.50 ELSEIF ( string .eq. 'SE' ) THEN rtmp = 135.00 ELSEIF ( string .eq. 'SSE' ) THEN rtmp = 157.50 ELSEIF ( string .eq. 'S' ) THEN rtmp = 180.00 ELSEIF ( string .eq. 'SSW' ) THEN rtmp = 202.50 ELSEIF ( string .eq. 'SW' ) THEN rtmp = 225.00 ELSEIF ( string .eq. 'WSW' ) THEN rtmp = 247.50 ELSEIF ( string .eq. 'W' ) THEN rtmp = 270.00 ELSEIF ( string .eq. 'WNW' ) THEN rtmp = 292.50 ELSEIF ( string .eq. 'NW' ) THEN rtmp = 315.00 ELSEIF ( string .eq. 'NNW' ) THEN rtmp = 337.50 ELSEIF ( string .eq. 'VRB' .and. parm .eq. 'WIND') THEN rtmp = -99.0 ELSE WRITE ( UNIT = logmsg, FMT = '( A )' ) * ' Invalid wind or swell direction!' CALL DC_WLOG ( 2, 'CG', 1, logmsg, ierwlg ) iret = -1 RETURN END IF IF ( parm .eq. 'WIND') THEN rivals(irdrct) = rtmp ELSEIF ( parm .eq. 'SWELL') THEN rivals(irdosw) = rtmp END IF RETURN END