16 use kinds, only: r_kind, r_single, rmissing
37 real(r_single) :: time
40 real(r_kind),
allocatable :: obs(:)
42 integer,
allocatable :: quality(:)
63 write(*,
'(a,3f10.3)')
'LIGHTNING OB: longitude, latitude, time =', &
64 this%lon, this%lat, this%time
71 write(*,
'(a4,10F12.2)')
'obs=', (this%obs(i),i=1,numvar)
73 write(*,
'(a4,10I12)')
'qul=', (this%quality(i),i=1,numvar)
75 write(*,*)
'No obs for this location'
93 integer,
intent(in) :: numvar
95 logical,
intent(in),
optional :: ifquality
100 if(
allocated(this%obs))
deallocate(this%obs)
101 allocate(this%obs(numvar))
103 this%ifquality=.false.
104 if(present(ifquality)) this%ifquality = ifquality
105 if(this%ifquality)
allocate(this%quality(numvar))
108 write(*,*)
'alloc_obsbase Error: dimension must be larger than 0:', numvar
126 if(
allocated(this%obs))
deallocate(this%obs)
128 this%ifquality=.false.
129 if(
allocated(this%quality))
deallocate(this%quality)
procedure destroy=> destroy_obsbase
Release memory.
Module to hold specification kinds for variable declaration.
This module defines nwp observation data structure and the method to read and write observations from...
subroutine destroy_obsbase(this)
This subroutine releases memory associated with nwp observations.
procedure list=> list_obsbase
List contents of obs.
subroutine list_obsbase(this)
This subroutine lists the contents of a base nwp observation.
subroutine alloc_obsbase(this, numvar, ifquality)
This subroutine allocates memory for base nwp observation variables.
procedure alloc=> alloc_obsbase
Allocate memory for observations.