11 use,
intrinsic :: iso_c_binding
23 #include "obsspace_interface.f" 49 type(c_ptr),
intent(in) :: c_dom
60 type(c_ptr),
intent(in) :: c_dom
71 type(c_ptr),
value,
intent(in) :: obss
72 character(len=*),
intent(in) :: group
73 character(len=*),
intent(in) :: vname
74 integer(c_int32_t),
intent(inout) :: vect(:)
76 character(kind=c_char,len=1),
allocatable :: c_group(:), c_vname(:)
77 integer(c_size_t) :: length
80 call f_c_string(group, c_group)
81 call f_c_string(vname, c_vname)
86 deallocate(c_group, c_vname)
97 type(c_ptr),
value,
intent(in) :: obss
98 character(len=*),
intent(in) :: group
99 character(len=*),
intent(in) :: vname
100 integer(c_int64_t),
intent(inout) :: vect(:)
102 character(kind=c_char,len=1),
allocatable :: c_group(:), c_vname(:)
103 integer(c_size_t) :: length
106 call f_c_string(group, c_group)
107 call f_c_string(vname, c_vname)
112 deallocate(c_group, c_vname)
122 type(c_ptr),
value,
intent(in) :: obss
123 character(len=*),
intent(in) :: group
124 character(len=*),
intent(in) :: vname
125 real(c_float),
intent(inout) :: vect(:)
127 character(kind=c_char,len=1),
allocatable :: c_group(:), c_vname(:)
128 integer(c_size_t) :: length
131 call f_c_string(group, c_group)
132 call f_c_string(vname, c_vname)
137 deallocate(c_group, c_vname)
147 type(c_ptr),
value,
intent(in) :: obss
148 character(len=*),
intent(in) :: group
149 character(len=*),
intent(in) :: vname
150 real(c_double),
intent(inout) :: vect(:)
152 character(kind=c_char,len=1),
allocatable :: c_group(:), c_vname(:)
153 integer(c_size_t) :: length
156 call f_c_string(group, c_group)
157 call f_c_string(vname, c_vname)
162 deallocate(c_group, c_vname)
172 type(c_ptr),
intent(inout) :: obss
173 character(len=*),
intent(in) :: group
174 character(len=*),
intent(in) :: vname
175 integer(c_int32_t),
intent(in) :: vect(:)
177 character(kind=c_char,len=1),
allocatable :: c_group(:), c_vname(:)
178 integer(c_size_t) :: length
181 call f_c_string(group, c_group)
182 call f_c_string(vname, c_vname)
187 deallocate(c_group, c_vname)
197 type(c_ptr),
intent(inout) :: obss
198 character(len=*),
intent(in) :: group
199 character(len=*),
intent(in) :: vname
200 integer(c_int64_t),
intent(in) :: vect(:)
202 character(kind=c_char,len=1),
allocatable :: c_group(:), c_vname(:)
203 integer(c_size_t) :: length
206 call f_c_string(group, c_group)
207 call f_c_string(vname, c_vname)
212 deallocate(c_group, c_vname)
222 type(c_ptr),
intent(inout) :: obss
223 character(len=*),
intent(in) :: group
224 character(len=*),
intent(in) :: vname
225 real(c_float),
intent(in) :: vect(:)
227 character(kind=c_char,len=1),
allocatable :: c_group(:), c_vname(:)
228 integer(c_size_t) :: length
231 call f_c_string(group, c_group)
232 call f_c_string(vname, c_vname)
237 deallocate(c_group, c_vname)
247 type(c_ptr),
intent(inout) :: obss
248 character(len=*),
intent(in) :: group
249 character(len=*),
intent(in) :: vname
250 real(c_double),
intent(in) :: vect(:)
252 character(kind=c_char,len=1),
allocatable :: c_group(:), c_vname(:)
253 integer(c_size_t) :: length
256 call f_c_string(group, c_group)
257 call f_c_string(vname, c_vname)
262 deallocate(c_group, c_vname)
subroutine obsspace_put_db_int32(obss, group, vname, vect)
Store a vector in ObsSpace database.
subroutine obsspace_get_db_int32(obss, group, vname, vect)
Get a variable from the ObsSapce database.
subroutine obsspace_put_db_int64(obss, group, vname, vect)
Store a vector in ObsSpace database.
integer function, public obsspace_get_nobs(c_dom)
Return the number of observations.
subroutine obsspace_get_db_real32(obss, group, vname, vect)
Get a variable from the ObsSapce database.
Define interface for C++ ObsSpace code called from Fortran.
subroutine obsspace_put_db_real64(obss, group, vname, vect)
Store a vector in ObsSpace database.
subroutine obsspace_get_db_int64(obss, group, vname, vect)
Get a variable from the ObsSapce database.
subroutine obsspace_put_db_real32(obss, group, vname, vect)
Store a vector in ObsSpace database.
subroutine obsspace_get_db_real64(obss, group, vname, vect)
Get a variable from the ObsSapce database.
Fortran interface to ObsSpace.
integer function, public obsspace_get_nlocs(c_dom)
Return the number of observational locations.