60 SUBROUTINE datebf(LUNIT,MEAR,MMON,MDAY,MOUR,IDATE)
73 #ifdef DYNAMIC_ALLOCATION
74 IF ( .NOT.
ALLOCATED(mgwa) )
THEN
75 CALL
openbf(lunit,
'FIRST',lunit)
86 CALL
status(lunit,lun,jl,jm)
88 CALL
openbf(lunit,
'INX',lunit)
93 1 CALL
rdmsgw(lunit,mgwa,ier)
95 IF(
idxmsg(mgwa).EQ.1) goto 1
97 idate =
igetdate(mgwa,mear,mmon,mday,mour)
99 100
IF(iprt.GE.1 .AND. idate.EQ.-1)
THEN
100 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
101 errstr =
'BUFRLIB: DATEBF - SECTION 1 DATE COULD NOT BE '//
102 .
'LOCATED - RETURN WITH IDATE = -1'
104 CALL
errwrt(
'+++++++++++++++++++++WARNING+++++++++++++++++++++++')
114 . (
'BUFRLIB: DATEBF - INPUT BUFR FILE IS OPEN, IT MUST BE CLOSED')
function igetdate(MBAY, IYR, IMO, IDY, IHR)
This function returns the date-time from within Section 1 of a BUFR message.
subroutine closbf(LUNIT)
This subroutine closes the connection between logical unit LUNIT and the BUFRLIB software.
subroutine openbf(LUNIT, IO, LUNDX)
This subroutine connects a new file to the BUFRLIB software for input or output operations.
subroutine rdmsgw(LUNIT, MESG, IRET)
THIS SUBROUTINE READS THE NEXT BUFR MESSAGE FROM LOGICAL UNIT LUNIT AS AN ARRAY OF INTEGER WORDS...
function idxmsg(MESG)
THIS FUNCTION DETERMINES WHETHER THE GIVEN BUFR MESSAGE IS A DX DICTIONARY MESSAGE THAT WAS CREATED B...
subroutine status(LUNIT, LUN, IL, IM)
This subroutine checks whether a specified Fortran logical unit number is currently connected to the ...
subroutine wrdlen
This subroutine figures out some important information about the local machine on which the BUFRLIB s...
subroutine errwrt(STR)
This subroutine allows the user to specify a custom location for the logging of error and diagnostic ...
subroutine bort(STR)
This subroutine calls subroutine errwrt() to log an error message, then calls subroutine bort_exit() ...
subroutine datebf(LUNIT, MEAR, MMON, MDAY, MOUR, IDATE)
This subroutine reads and returns the Section 1 date-time from the first data message of a BUFR file...