UFO
|
Data Types | |
type | ufo_geoval |
type to hold interpolated field for one variable, one observation More... | |
type | ufo_geovals |
type to hold interpolated fields required by the obs operators More... | |
Functions/Subroutines | |
subroutine, public | ufo_geovals_default_constr (self) |
subroutine, public | ufo_geovals_setup (self, vars, nlocs) |
subroutine, public | ufo_geovals_delete (self) |
subroutine, public | ufo_geovals_get_var (self, varname, geoval) |
subroutine, public | ufo_geovals_put_var (self, varname, geoval, k) |
subroutine, public | ufo_geovals_zero (self) |
subroutine, public | ufo_geovals_abs (self) |
subroutine, public | ufo_geovals_rms (self, vrms) |
subroutine, public | ufo_geovals_random (self) |
subroutine, public | ufo_geovals_scalmult (self, zz) |
subroutine, public | ufo_geovals_profmult (self, nlocs, values) |
subroutine, public | ufo_geovals_assign (self, rhs) |
subroutine, public | ufo_geovals_reorderzdir (self, varname, zdir) |
subroutine, public | ufo_geovals_add (self, other) |
Sum of two GeoVaLs objects. More... | |
subroutine, public | ufo_geovals_diff (self, other) |
Difference between two GeoVaLs objects. More... | |
subroutine, public | ufo_geovals_schurmult (self, other) |
Schur product of two GeoVaLs objects. More... | |
subroutine, public | ufo_geovals_copy (self, other) |
Copy one GeoVaLs object into another. More... | |
subroutine, public | ufo_geovals_copy_one (self, other, loc_index) |
Copy one location from GeoVaLs into a new object. More... | |
subroutine, public | ufo_geovals_analytic_init (self, locs, ic) |
Initialize a GeoVaLs object based on an analytic state. More... | |
subroutine, public | ufo_geovals_normalize (self, other) |
Normalization of one GeoVaLs object by another. More... | |
subroutine, public | ufo_geovals_dotprod (self, other, gprod, f_comm) |
subroutine, private | ufo_geovals_reset_sec_arg (self, other, nlocs) |
subroutine, public | ufo_geovals_split (self, other1, other2) |
subroutine, public | ufo_geovals_merge (self, other1, other2) |
subroutine, public | ufo_geovals_minmaxavg (self, kobs, kvar, pmin, pmax, prms) |
subroutine, public | ufo_geovals_maxloc (self, mxval, iobs, ivar) |
Location where the summed geovals value is maximum. More... | |
subroutine, public | ufo_geovals_read_netcdf (self, filename, loc_multiplier, c_obspace, vars) |
subroutine, public | ufo_geovals_write_netcdf (self, filename) |
subroutine | check (action, status) |
subroutine, public | ufo_geovals_print (self, iobs) |
Variables | |
integer, parameter | max_string =800 |
subroutine ufo_geovals_mod::check | ( | character (len=*), intent(in) | action, |
integer, intent(in) | status | ||
) |
subroutine, public ufo_geovals_mod::ufo_geovals_abs | ( | type(ufo_geovals), intent(inout) | self | ) |
subroutine, public ufo_geovals_mod::ufo_geovals_add | ( | type(ufo_geovals), intent(inout) | self, |
type(ufo_geovals), intent(in) | other | ||
) |
Sum of two GeoVaLs objects.
Definition at line 387 of file ufo_geovals_mod.F90.
subroutine, public ufo_geovals_mod::ufo_geovals_analytic_init | ( | type(ufo_geovals), intent(inout) | self, |
type(ufo_locs), intent(in) | locs, | ||
character(*), intent(in) | ic | ||
) |
Initialize a GeoVaLs object based on an analytic state.
ufo_geovals_analytic_init_c() takes an existing ufo::GeoVaLs object and fills in values based on one of several analytic solutions. This initialization is intended to be used with the TestStateInterpolation() test; see there for further information.
Currently implemented options for analytic_init include:
Definition at line 598 of file ufo_geovals_mod.F90.
subroutine, public ufo_geovals_mod::ufo_geovals_assign | ( | type(ufo_geovals), intent(inout) | self, |
type(ufo_geovals), intent(in) | rhs | ||
) |
Definition at line 294 of file ufo_geovals_mod.F90.
subroutine, public ufo_geovals_mod::ufo_geovals_copy | ( | type(ufo_geovals), intent(in) | self, |
type(ufo_geovals), intent(inout) | other | ||
) |
Copy one GeoVaLs object into another.
Definition at line 505 of file ufo_geovals_mod.F90.
subroutine, public ufo_geovals_mod::ufo_geovals_copy_one | ( | type(ufo_geovals), intent(inout) | self, |
type(ufo_geovals), intent(in) | other, | ||
integer, intent(in) | loc_index | ||
) |
Copy one location from GeoVaLs into a new object.
Definition at line 539 of file ufo_geovals_mod.F90.
subroutine, public ufo_geovals_mod::ufo_geovals_default_constr | ( | type(ufo_geovals), intent(inout) | self | ) |
subroutine, public ufo_geovals_mod::ufo_geovals_delete | ( | type(ufo_geovals), intent(inout) | self | ) |
subroutine, public ufo_geovals_mod::ufo_geovals_diff | ( | type(ufo_geovals), intent(inout) | self, |
type(ufo_geovals), intent(in) | other | ||
) |
Difference between two GeoVaLs objects.
Definition at line 426 of file ufo_geovals_mod.F90.
subroutine, public ufo_geovals_mod::ufo_geovals_dotprod | ( | type(ufo_geovals), intent(in) | self, |
type(ufo_geovals), intent(in) | other, | ||
real(kind_real), intent(inout) | gprod, | ||
type(fckit_mpi_comm), intent(in) | f_comm | ||
) |
subroutine, public ufo_geovals_mod::ufo_geovals_get_var | ( | type(ufo_geovals), intent(in), target | self, |
character(len=*), intent(in) | varname, | ||
type(ufo_geoval), intent(inout), pointer | geoval | ||
) |
Definition at line 127 of file ufo_geovals_mod.F90.
subroutine, public ufo_geovals_mod::ufo_geovals_maxloc | ( | type(ufo_geovals), intent(in) | self, |
real(kind_real), intent(inout) | mxval, | ||
integer, intent(inout) | iobs, | ||
integer, intent(inout) | ivar | ||
) |
Location where the summed geovals value is maximum.
This routine computes the rms value over the vertical profile for each location and observation then returns the location number and the variable number where this rms value is maximum. Intended for use with the State interpotation test in which the input GeoVaLs object is a nondimensional, positive-definite error measurement.
Definition at line 912 of file ufo_geovals_mod.F90.
subroutine, public ufo_geovals_mod::ufo_geovals_merge | ( | type(ufo_geovals), intent(inout) | self, |
type(ufo_geovals), intent(in) | other1, | ||
type(ufo_geovals), intent(in) | other2 | ||
) |
Definition at line 848 of file ufo_geovals_mod.F90.
subroutine, public ufo_geovals_mod::ufo_geovals_minmaxavg | ( | type(ufo_geovals), intent(in) | self, |
integer, intent(inout) | kobs, | ||
integer, intent(in) | kvar, | ||
real(kind_real), intent(inout) | pmin, | ||
real(kind_real), intent(inout) | pmax, | ||
real(kind_real), intent(inout) | prms | ||
) |
subroutine, public ufo_geovals_mod::ufo_geovals_normalize | ( | type(ufo_geovals), intent(inout) | self, |
type(ufo_geovals), intent(in) | other | ||
) |
Normalization of one GeoVaLs object by another.
This is a normalization operator that first computes the normalization factor for each variable based on the rms amplitude of that variable across all locations in the reference GeoVaLs object (other). Then each element of the input GeoVals object (self) is divided by these normalization factors. The operation is done in place. So, after execution, the input GeoVaLs object will be nondimensional.
Compute normalization factors for the errors based on the rms amplitude of each variable across all of the selected locations. Use the "other" GeoVaLs object as a reference, since this may be the exact analytic answer
Definition at line 699 of file ufo_geovals_mod.F90.
subroutine, public ufo_geovals_mod::ufo_geovals_print | ( | type(ufo_geovals), intent(in) | self, |
integer, intent(in) | iobs | ||
) |
subroutine, public ufo_geovals_mod::ufo_geovals_profmult | ( | type(ufo_geovals), intent(inout) | self, |
integer(c_int), intent(in) | nlocs, | ||
real(c_float), dimension(nlocs), intent(in) | values | ||
) |
subroutine, public ufo_geovals_mod::ufo_geovals_put_var | ( | type(ufo_geovals), intent(inout) | self, |
character(len=*), intent(in) | varname, | ||
type(ufo_geoval), intent(in) | geoval, | ||
integer, intent(in) | k | ||
) |
Definition at line 160 of file ufo_geovals_mod.F90.
subroutine, public ufo_geovals_mod::ufo_geovals_random | ( | type(ufo_geovals), intent(inout) | self | ) |
subroutine, public ufo_geovals_mod::ufo_geovals_read_netcdf | ( | type(ufo_geovals), intent(inout) | self, |
character(max_string), intent(in) | filename, | ||
integer, intent(in) | loc_multiplier, | ||
type(c_ptr), intent(in) | c_obspace, | ||
type(oops_variables), intent(in) | vars | ||
) |
round-robin distribute the observations to PEs Calculate how many obs. on each PE
read 1d variable
allocate geoval for this variable
read 2d variable
allocate geoval for this variable
only 1d & 2d vars
Definition at line 954 of file ufo_geovals_mod.F90.
subroutine, public ufo_geovals_mod::ufo_geovals_reorderzdir | ( | type(ufo_geovals), intent(inout) | self, |
character(len=*), intent(in) | varname, | ||
character(len=*), intent(in) | zdir | ||
) |
Definition at line 333 of file ufo_geovals_mod.F90.
|
private |
subroutine, public ufo_geovals_mod::ufo_geovals_rms | ( | type(ufo_geovals), intent(in) | self, |
real(kind_real), intent(inout) | vrms | ||
) |
subroutine, public ufo_geovals_mod::ufo_geovals_scalmult | ( | type(ufo_geovals), intent(inout) | self, |
real(kind_real), intent(in) | zz | ||
) |
subroutine, public ufo_geovals_mod::ufo_geovals_schurmult | ( | type(ufo_geovals), intent(inout) | self, |
type(ufo_geovals), intent(in) | other | ||
) |
Schur product of two GeoVaLs objects.
Definition at line 465 of file ufo_geovals_mod.F90.
subroutine, public ufo_geovals_mod::ufo_geovals_setup | ( | type(ufo_geovals), intent(inout) | self, |
type(oops_variables), intent(in) | vars, | ||
integer, intent(in) | nlocs | ||
) |
Definition at line 79 of file ufo_geovals_mod.F90.
subroutine, public ufo_geovals_mod::ufo_geovals_split | ( | type(ufo_geovals), intent(in) | self, |
type(ufo_geovals), intent(inout) | other1, | ||
type(ufo_geovals), intent(inout) | other2 | ||
) |
Definition at line 815 of file ufo_geovals_mod.F90.
subroutine, public ufo_geovals_mod::ufo_geovals_write_netcdf | ( | type(ufo_geovals), intent(inout) | self, |
character(max_string), intent(in) | filename | ||
) |
Definition at line 1109 of file ufo_geovals_mod.F90.
subroutine, public ufo_geovals_mod::ufo_geovals_zero | ( | type(ufo_geovals), intent(inout) | self | ) |
|
private |
Definition at line 20 of file ufo_geovals_mod.F90.