13 use fckit_configuration_module,
only: fckit_configuration
17 #define LISTED_TYPE ufo_example
20 #include "oops/util/linkedList_i.f"
23 type(registry_t) :: ufo_example_registry
29 #include "oops/util/linkedList_c.f"
34 use oops_variables_mod
36 integer(c_int),
intent(inout) :: c_self
37 type(c_ptr),
value,
intent(in) :: c_conf
38 type(c_ptr),
intent(in),
value :: c_varlist
41 type(fckit_configuration) :: f_conf
42 type(oops_variables) :: oops_vars
44 call ufo_example_registry%setup(c_self, self)
46 f_conf = fckit_configuration(c_conf)
50 oops_vars = oops_variables(c_varlist)
51 if (
allocated(self%geovars))
then
52 call oops_vars%push_back(self%geovars)
61 integer(c_int),
intent(inout) :: c_self
65 call ufo_example_registry%get(c_self, self)
67 call ufo_example_registry%delete(c_self, self)
75 integer(c_int),
intent(in) :: c_self
76 type(c_ptr),
value,
intent(in) :: c_obspace
77 integer(c_int),
intent(in) :: c_geovals
82 call ufo_example_registry%get(c_self, self)
91 subroutine ufo_example_post_c(c_self, c_obspace, c_nvars, c_nlocs, c_hofx, c_hofxbias, c_key_hofxdiags) bind(c,name='ufo_example_post_f90')
93 integer(c_int),
intent(in) :: c_self
94 type(c_ptr),
value,
intent(in) :: c_obspace
95 integer(c_int),
intent(in) :: c_nvars, c_nlocs
96 real(c_double),
intent(in) :: c_hofx(c_nvars, c_nlocs)
97 real(c_double),
intent(in) :: c_hofxbias(c_nvars, c_nlocs)
98 integer(c_int),
intent(in) :: c_key_hofxdiags
103 call ufo_example_registry%get(c_self, self)
106 call ufo_example_post(self, c_obspace, c_nvars, c_nlocs, c_hofx, c_hofxbias, hofxdiags)
Fortran example module for functions on the interface between C++ and Fortran.
subroutine ufo_example_post_c(c_self, c_obspace, c_nvars, c_nlocs, c_hofx, c_hofxbias, c_key_hofxdiags)
subroutine ufo_example_create_c(c_self, c_conf, c_varlist)
Linked list implementation.
subroutine ufo_example_delete_c(c_key_self)
subroutine ufo_example_prior_c(c_self, c_obspace, c_geovals)
Fortran module for example observation operator.
subroutine, public ufo_example_delete(self)
subroutine, public ufo_example_prior(self, obspace, geovals)
subroutine, public ufo_example_create(self, f_conf)
subroutine, public ufo_example_post(self, obspace, nvars, nlocs, hofx, hofxbias, hofxdiags)
type(registry_t), public ufo_geovals_registry
Linked list interface - defines registry_t type.
Fortran derived type for the observation type.
type to hold interpolated fields required by the obs operators