39 real(c_double),
intent(inout) :: hofx(:)
41 character(len=*),
parameter :: myname_=
"ufo_seaicethick_simobs" 42 character(max_string) :: err_msg
44 integer :: iobs, icat, ncat
48 character(len=120) :: filename
49 character(len=MAXVARLEN) :: dim_name
53 if (geovals%nobs /=
size(hofx,1))
then 54 write(err_msg,*) myname_,
' error: nobs inconsistent!' 55 call abor1_ftn(err_msg)
64 filename=
'sit-test.nc' 65 call sit_out%init(
size(hofx,1),filename)
70 do iobs = 1,
size(hofx,1)
72 hofx(iobs) = hofx(iobs) + icefrac%vals(icat,iobs) * icethick%vals(icat,iobs) / 905.0
77 call sit_out%write_geoval(
var_seaicefrac,icefrac,arg_dim_name=dim_name)
78 call sit_out%write_geoval(
var_seaicethick,icethick,arg_dim_name=dim_name)
79 call sit_out%finalize()
Fortran module to handle ice concentration observations.
Fortran module to handle temperature profile observations.
character(len=maxvarlen), public var_seaicethick
subroutine, public ufo_geovals_get_var(self, varname, geoval, status)
integer, parameter max_string
subroutine, public ufo_seaicethick_simobs(self, geovals, hofx)
type to hold interpolated fields required by the obs operators
Fortran derived type for sea ice fraction observation operator.
character(len=maxvarlen), public var_seaicefrac
type to hold interpolated field for one variable, one observation