16 use oops_variables_mod
20 use ufo_locs_mod_c,
only: ufo_locs_registry
22 use ufo_geovals_mod_c,
only: ufo_geovals_registry
42 #define LISTED_TYPE fv3jedi_lineargetvalues
43 #include "oops/util/linkedList_i.f"
53 #include "oops/util/linkedList_c.f"
58 bind(c,name=
'fv3jedi_lineargetvalues_create_f90')
60 integer(c_int),
intent(inout) :: c_key_self
61 integer(c_int),
intent(in) :: c_key_geom
62 integer(c_int),
intent(in) :: c_key_locs
66 type(ufo_locs),
pointer :: locs
75 call ufo_locs_registry%get(c_key_locs, locs)
78 call self%create(geom, locs)
85 bind(c,name=
'fv3jedi_lineargetvalues_delete_f90')
87 integer(c_int),
intent(inout) :: c_key_self
105 c_t2, c_key_locs, c_key_geovals) &
106 bind(c,name=
'fv3jedi_lineargetvalues_set_trajectory_f90')
108 integer(c_int),
intent(in) :: c_key_self
109 integer(c_int),
intent(in) :: c_key_geom
110 integer(c_int),
intent(in) :: c_key_state
111 type(c_ptr),
intent(in) :: c_t1
112 type(c_ptr),
intent(in) :: c_t2
113 integer(c_int),
intent(in) :: c_key_locs
114 integer(c_int),
intent(in) :: c_key_geovals
121 type(ufo_locs),
pointer :: locs
122 type(ufo_geovals),
pointer :: geovals
128 call c_f_datetime(c_t1, t1)
129 call c_f_datetime(c_t2, t2)
130 call ufo_locs_registry%get(c_key_locs, locs)
131 call ufo_geovals_registry%get(c_key_geovals, geovals)
134 call self%set_trajectory(geom, state%fields, t1, t2, locs, geovals)
142 c_t2, c_key_locs, c_key_geovals) &
143 bind(c,name=
'fv3jedi_lineargetvalues_fill_geovals_tl_f90')
145 integer(c_int),
intent(in) :: c_key_self
146 integer(c_int),
intent(in) :: c_key_geom
147 integer(c_int),
intent(in) :: c_key_inc
148 type(c_ptr),
intent(in) :: c_t1
149 type(c_ptr),
intent(in) :: c_t2
150 integer(c_int),
intent(in) :: c_key_locs
151 integer(c_int),
intent(in) :: c_key_geovals
158 type(ufo_locs),
pointer :: locs
159 type(ufo_geovals),
pointer :: geovals
164 call fv3jedi_increment_registry%get(c_key_inc, inc)
165 call c_f_datetime(c_t1, t1)
166 call c_f_datetime(c_t2, t2)
167 call ufo_locs_registry%get(c_key_locs, locs)
168 call ufo_geovals_registry%get(c_key_geovals, geovals)
171 call self%fill_geovals_tl(geom, inc%fields, t1, t2, locs, geovals)
178 c_t2, c_key_locs, c_key_geovals) &
179 bind(c,name=
'fv3jedi_lineargetvalues_fill_geovals_ad_f90')
181 integer(c_int),
intent(in) :: c_key_self
182 integer(c_int),
intent(in) :: c_key_geom
183 integer(c_int),
intent(in) :: c_key_inc
184 type(c_ptr),
intent(in) :: c_t1
185 type(c_ptr),
intent(in) :: c_t2
186 integer(c_int),
intent(in) :: c_key_locs
187 integer(c_int),
intent(in) :: c_key_geovals
194 type(ufo_locs),
pointer :: locs
195 type(ufo_geovals),
pointer :: geovals
200 call fv3jedi_increment_registry%get(c_key_inc, inc)
201 call c_f_datetime(c_t1, t1)
202 call c_f_datetime(c_t2, t2)
203 call ufo_locs_registry%get(c_key_locs, locs)
204 call ufo_geovals_registry%get(c_key_geovals, geovals)
207 call self%fill_geovals_ad(geom, inc%fields, t1, t2, locs, geovals)