SUBROUTINE WC_GMT ( timzone, irptdt, jrptdt, iret ) C************************************************************************ C* WC_GMT * C* * C* Using timezone, determine the difference (in hours) * C* between UTC and the local time for a given station and * C* THEN convert the report local time to GMT (UTC). * C* * C* WC_GMT ( TIMZONE, IRPTDT, JRPTDT, IRET ) * C* * C* Input parameters: * C* TIMZONE CHAR* Canadian station timezone * C* IRPTDT INTEGER(5) Report local time * C* * C* Output parameters: * C* JRPTDT INTEGER(5) Report UTC time * C* IRET INTEGER Return code: * C* 0 = normal return * C* -1 = error * C** * C* Log: * C* M. Weiss/NCEP 10/20 New for decod_dcwcan * C************************************************************************ INCLUDE 'GEMPRM.PRM' INCLUDE 'BRIDGE.PRM' INCLUDE 'wccmn.cmn' C* INTEGER irptdt (5), jrptdt (5) C* CHARACTER*10 timzone C C* CHAR*10 tmzone(MTBLSZ) --- C* MTBLSZ = 100 C------------------------------------------------------------------------ iret = -1 C SELECT CASE( timzone ) CASE( " UTC-04:00", " AST" ) idiff = 4 CASE( " UTC-05:00", " EST" ) idiff = 5 CASE( " UTC-06:00", " CST" ) idiff = 6 CASE( " UTC-07:00", " MST" ) idiff = 7 CASE( " UTC-08:00", " PST" ) idiff = 8 CASE DEFAULT idiff = -99 END SELECT C C* Convert the local time to UTC. C IF ( idiff .ne. -99 ) THEN CALL TI_ADDM ( irptdt, idiff*60, jrptdt, ieradm ) IF ( ieradm .ne. 0 ) THEN CALL UT_EMSG ( 2, 'TI_ADDM', ieradm ) ELSE iret = ieradm END IF ELSE WRITE ( UNIT = logmsg, FMT='(A,I2)' ) + 'From wcgmt.f: idiff = ', idiff CALL DC_WLOG ( 2, 'UG', 2, logmsg(1:24), ierwlg ) RETURN END IF C RETURN END