11 use fckit_configuration_module,
only: fckit_configuration
20 #define LISTED_TYPE ufo_atmvertinterp
23 #include "oops/util/linkedList_i.f"
33 #include "oops/util/linkedList_c.f"
38 c_geovars) bind(c,name='ufo_atmvertinterp_setup_f90')
39 use oops_variables_mod
41 integer(c_int),
intent(inout) :: c_key_self
42 type(c_ptr),
intent(in),
value :: c_conf
43 type(c_ptr),
intent(in),
value :: c_obsvars
44 integer(c_int),
intent(in),
value :: c_nobsvars
45 integer(c_int),
intent(in) :: c_obsvarindices(c_nobsvars)
46 type(c_ptr),
intent(in),
value :: c_geovars
49 type(fckit_configuration) :: f_conf
52 f_conf = fckit_configuration(c_conf)
54 self%obsvars = oops_variables(c_obsvars)
55 allocate(self%obsvarindices(self%obsvars%nvars()))
56 self%obsvarindices(:) = c_obsvarindices(:) + 1
57 self%geovars = oops_variables(c_geovars)
59 call self%setup(f_conf)
67 integer(c_int),
intent(inout) :: c_key_self
78 c_hofx) bind(c,name='ufo_atmvertinterp_simobs_f90')
80 integer(c_int),
intent(in) :: c_key_self
81 integer(c_int),
intent(in) :: c_key_geovals
82 type(c_ptr),
value,
intent(in) :: c_obsspace
83 integer(c_int),
intent(in) :: c_nvars, c_nlocs
84 real(c_double),
intent(inout) :: c_hofx(c_nvars, c_nlocs)
88 character(len=*),
parameter :: myname_=
"ufo_atmvertinterp_simobs_c"
93 call self%simobs(geovals, c_obsspace, c_nvars, c_nlocs, c_hofx)
Fortran module to handle atmvertinterp observations.
subroutine ufo_atmvertinterp_setup_c(c_key_self, c_conf, c_obsvars, c_obsvarindices, c_nobsvars, c_geovars)
Linked list implementation.
type(registry_t) ufo_atmvertinterp_registry
Linked list interface - defines registry_t type.
subroutine ufo_atmvertinterp_simobs_c(c_key_self, c_key_geovals, c_obsspace, c_nvars, c_nlocs, c_hofx)
subroutine ufo_atmvertinterp_delete_c(c_key_self)
type(registry_t), public ufo_geovals_registry
Linked list interface - defines registry_t type.
type to hold interpolated fields required by the obs operators