23 real(kind_real),
allocatable,
dimension(:) :: lat
24 real(kind_real),
allocatable,
dimension(:) :: lon
25 real(kind_real),
allocatable,
dimension(:) :: time
26 integer,
allocatable,
dimension(:) :: indx
36 integer,
intent(in) :: nlocs
37 real(kind_real),
intent(in) :: lats(nlocs)
38 real(kind_real),
intent(in) :: lons(nlocs)
39 integer,
intent(in) :: rdist
42 integer,
allocatable :: dist_indx(:)
43 real(kind_real),
allocatable,
dimension(:) :: latsr, lonsr, timer
47 allocate(self%lat(nlocs), self%lon(nlocs), self%time(nlocs))
48 allocate(self%indx(nlocs))
57 dist_indx = ran_dist%indx
62 self%nlocs = ran_dist%nobs_pe()
63 allocate(latsr(self%nlocs), lonsr(self%nlocs), timer(self%nlocs))
65 latsr(n) = self%lat(dist_indx(n))
66 lonsr(n) = self%lon(dist_indx(n))
67 timer(n) = self%time(dist_indx(n))
69 deallocate(self%lat, self%lon, self%time, self%indx)
71 allocate(self%lat(self%nlocs), self%lon(self%nlocs), self%time(self%nlocs), self%indx(self%nlocs))
72 self%lat(:) = latsr(:)
73 self%lon(:) = lonsr(:)
80 deallocate(latsr, lonsr, timer)
91 integer,
intent(in) :: nlocs
96 allocate(self%lat(nlocs), self%lon(nlocs), self%time(nlocs), self%indx(nlocs))
111 if (
allocated(self%lat))
deallocate(self%lat)
112 if (
allocated(self%lon))
deallocate(self%lon)
113 if (
allocated(self%time))
deallocate(self%time)
114 if (
allocated(self%indx))
deallocate(self%indx)
Fortran derived type to hold observation locations.
subroutine, public ioda_locs_create(self, nlocs, lats, lons, rdist)
subroutine, public ioda_locs_delete(self)
Fortran module handling observation locations.
subroutine, public ioda_locs_setup(self, nlocs)