9 use fckit_configuration_module,
only: fckit_configuration
20 #define LISTED_TYPE ufo_roobserror
23 #include "oops/util/linkedList_i.f"
32 #include "oops/util/linkedList_c.f"
36 use oops_variables_mod
38 integer(c_int),
intent(inout) :: c_self
39 type(c_ptr),
value,
intent(in) :: c_obspace
40 type(c_ptr),
value,
intent(in) :: c_conf
41 type(c_ptr),
value,
intent(in) :: c_filtervar
43 type(fckit_configuration) :: f_conf
46 f_conf = fckit_configuration(c_conf)
48 self%obsvar = oops_variables(c_filtervar)
49 self%variable = self%obsvar%variable(1)
59 integer(c_int),
intent(inout) :: c_self
72 height_nobs, height_nlevs, geopotential_height) bind(c,name='ufo_roobserror_prior_f90')
76 integer(c_int),
intent(in) :: c_self
77 integer(c_int),
intent(in) :: air_nlevs
78 integer(c_int),
intent(in) :: air_nobs
79 real(c_float),
intent(in) :: air_temperature(1:air_nobs,1:air_nlevs)
81 integer(c_int),
intent(in) :: height_nlevs
82 integer(c_int),
intent(in) :: height_nobs
83 real(c_float),
intent(in) :: geopotential_height(1:height_nobs,1:height_nlevs)
87 character(len=200) :: ErrorMessage
91 if (height_nlevs /= air_nlevs)
then
92 write(errormessage,
'(2A,2I7)')
"air_temperature and geopotential_height must have the same number of levels", &
93 " I received: ", air_nlevs, height_nlevs
94 call abor1_ftn(errormessage)
97 if (height_nobs /= air_nobs)
then
98 write(errormessage,
'(2A,2I7)')
"air_temperature and geopotential_height must have the same number of locations", &
99 " I received: ", air_nobs, height_nobs
100 call abor1_ftn(errormessage)
type(registry_t), public ufo_geovals_registry
Linked list interface - defines registry_t type.
subroutine ufo_roobserror_delete_c(c_self)
type(registry_t) ufo_roobserror_registry
Linked list interface - defines registry_t type.
subroutine ufo_roobserror_prior_c(c_self, air_nobs, air_nlevs, air_temperature, height_nobs, height_nlevs, geopotential_height)
subroutine ufo_roobserror_create_c(c_self, c_obspace, c_conf, c_filtervar)
Linked list implementation.
Fortran module to implement RO observational error.
subroutine, public ufo_roobserror_prior(self, model_nobs, model_nlevs, air_temperature, geopotential_height)
subroutine, public ufo_roobserror_create(self, obspace, f_conf)
subroutine, public ufo_roobserror_delete(self)