22 real(kind_real),
allocatable :: wf(:)
23 integer,
allocatable :: wi(:)
34 class(ufo_conventional_profile),
intent(in) :: self
35 type(ufo_geovals),
intent(in) :: geovals
36 real(c_double),
intent(inout) :: hofx(:)
37 type(c_ptr),
value,
intent(in) :: obss
39 character(len=*),
parameter :: myname_=
"ufo_conventional_profile_simobs" 40 character(max_string) :: err_msg
44 integer :: wi, ierr, nobs
45 real(kind_real),
allocatable :: pressure(:)
46 type(ufo_geoval),
pointer :: prsl, tv
49 if (geovals%nobs /=
size(hofx))
then 50 write(err_msg,*) myname_,
' error: nobs inconsistent!' 51 call abor1_ftn(err_msg)
57 write(err_msg,*) myname_, trim(
var_prsl),
' doesnt exist' 58 call abor1_ftn(err_msg)
64 write(err_msg,*) myname_, trim(
var_tv),
' doesnt exist' 65 call abor1_ftn(err_msg)
70 allocate(pressure(nobs))
74 do iobs = 1, geovals%nobs
subroutine, public ufo_geovals_get_var(self, varname, geoval, status)
subroutine vert_interp_apply(nlev, fvec, f, wi, wf)
integer, parameter max_string
integer function, public obsspace_get_nobs(c_dom)
Return the number of observations.
Fortran module to perform linear interpolation.
character(len=maxvarlen), public var_prsl
subroutine conventional_profile_simobs_(self, geovals, hofx, obss)
type(registry_t), public ufo_geovals_registry
Linked list interface - defines registry_t type.
Fortran interface to ObsSpace.
character(len=maxvarlen), public var_tv
subroutine vert_interp_weights(nlev, obl, vec, wi, wf)