meteo-vm2  2.0.11
parser.f90

Example of a VM2 parser for Fortran90.

1 program parser
2  include "meteo-vm2-fortran.h"
3 
4  character (len=255) :: filename
5  integer :: parserhandle, errorcode
6  logical :: havenext
7  integer :: year, month, day, hour, mins, sec
8  integer :: station, variable
9  real :: value1, value2
10  character (len=30) :: value3, flags
11 
12  call getarg(1, filename)
13  filename = trim(filename)
14 
15  ! Create a VM2 parser
16  call meteovm2_parser_open(parserhandle, filename, errorcode)
17 
18  if (errorcode .ne. 0) then
19  print *, "Error while opening parser for file ", filename
20  stop 1
21  endif
22 
23  do
24  ! Read the next VM2 message.
25  call meteovm2_parser_next(parserhandle, havenext, &
26  year, month, day, hour, mins, sec, &
27  station, variable, &
28  value1, value2, value3, flags, errorcode)
29 
30  if (errorcode .ne. 0) then
31  print *, "Error while reading file"
32  stop 1
33  endif
34 
35  if (.not. havenext) then
36  print *, "end of VM2 file reached"
37  EXIT
38  endif
39 
40  print *, "values: ", value1, ", ", value2, ", ", value3
41 
42  enddo
43 
44  ! Close the parser
45  call meteovm2_parser_close(parserhandle, errorcode)
46 
47  if (errorcode .ne. 0) then
48  print *, "Error while closing parser"
49  stop 1
50  endif
51 
52 end program parser