39     real(c_double)           ,
intent(inout) :: hofx(:)
    41     character(len=*), 
parameter :: myname_=
"ufo_seasurfacetemp_simobs"    42     character(max_string) :: err_msg
    48     character(len=120) :: filename=
"sst_obs-2018-04-15_geovals.nc"    49     integer(kind=4) :: incid
    50     integer(kind=4) :: idimstation_id, idimlev_id
    51     integer(kind=4) :: ivarlev_id, ivargom_id
    57     if (geovals%nobs /= 
size(hofx,1)) 
then    58        write(err_msg,*) myname_, 
' error: nobs inconsistent!'    59        call abor1_ftn(err_msg)
    66     filename=
'sst-test.nc'        67     call sst_out%init(
size(hofx,1),filename)
    70     do iobs = 1, 
size(hofx,1)
    71        hofx(iobs) = geoval_sst%vals(1,iobs)
    74        sst_out%diag(iobs)%Station_ID         = 9999
    75        sst_out%diag(iobs)%Observation_Type   = 999.9
    76        sst_out%diag(iobs)%Latitude           = 999.9
    77        sst_out%diag(iobs)%Longitude          = 999.9
    78        sst_out%diag(iobs)%Depth              = 999.9
    79        sst_out%diag(iobs)%Time               = 999.9
    80        sst_out%diag(iobs)%Observation        = 999.9
    81        sst_out%diag(iobs)%Obs_Minus_Forecast = 999.9
    84     call sst_out%write_diag()
    86     call sst_out%finalize()
 character(len=maxvarlen), public var_ocn_sst
Fortran module to handle temperature profile observations. 
Fortran module to handle ice concentration observations. 
subroutine, public ufo_geovals_get_var(self, varname, geoval, status)
integer, parameter max_string
type to hold interpolated fields required by the obs operators 
subroutine, public ufo_seasurfacetemp_simobs(self, geovals, hofx)
Fortran derived type for sea surface temperature observation operator. 
type to hold interpolated field for one variable, one observation