41 type(
ufo_adt),
intent(in) :: self
43 type(c_ptr),
value,
intent(in) :: obss
44 real(c_double),
intent(inout) :: hofx(:)
46 character(len=*),
parameter :: myname_=
"ufo_adt_simobs" 47 character(max_string) :: err_msg
50 real(kind_real) :: offset_obs, offset_hofx
53 real(kind_real),
allocatable :: obs_adt(:)
58 if (geovals%nobs /=
size(hofx,1))
then 59 write(err_msg,*) myname_,
' error: nobs inconsistent!' 60 call abor1_ftn(err_msg)
71 offset_hofx=sum(geoval_adt%vals(1,:))/nobs
77 hofx(iobs) = geoval_adt%vals(1,iobs)+(offset_obs-offset_hofx)
Fortran module to handle temperature profile observations.
subroutine, public ufo_geovals_get_var(self, varname, geoval, status)
integer, parameter, public i_kind
integer, parameter max_string
Fortran module to handle adt observations.
Fortran derived type for adt observation operator.
subroutine, public ufo_adt_simobs(self, geovals, hofx, obss)
type to hold interpolated fields required by the obs operators
character(len=maxvarlen), public var_abs_topo
integer, parameter, public r_double
Fortran module handling observation locations.
integer, parameter, public r_single
Fortran interface to ObsSpace.
integer, parameter, public r_kind
type to hold interpolated field for one variable, one observation