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, nvars, nvals) |
Initializes and allocates self GeoVaLs with nlocs number of locations for vars variables. nvals array contains number of values to allocate for each of the variables. More... | |
subroutine, public | ufo_geovals_partial_setup (self, vars, nlocs) |
Deprecated, use ufo_geovals_setup instead. Partially initializes self GeoVaLs with nlocs number of locations vars variables. Does not allocate geovals(i)vals. More... | |
subroutine, public | ufo_geovals_allocate (self, vars, nlevels) |
Deprecated. Rely on ufo_geovals_setup to allocate GeoVaLs instead. Allocates GeoVaLs for vars variables with nlevels number of levels. If the GeoVaLs for this variable were allocated before with different size, aborts. More... | |
subroutine, public | ufo_geovals_delete (self) |
subroutine, public | ufo_geovals_get_var (self, varname, geoval) |
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, 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 448 of file ufo_geovals_mod.F90.
subroutine, public ufo_geovals_mod::ufo_geovals_allocate | ( | type(ufo_geovals), intent(inout) | self, |
type(oops_variables), intent(in) | vars, | ||
integer, intent(in) | nlevels | ||
) |
Deprecated. Rely on ufo_geovals_setup to allocate GeoVaLs instead. Allocates GeoVaLs for vars
variables with nlevels
number of levels. If the GeoVaLs for this variable were allocated before with different size, aborts.
Definition at line 143 of file ufo_geovals_mod.F90.
subroutine, public ufo_geovals_mod::ufo_geovals_analytic_init | ( | type(ufo_geovals), intent(inout) | self, |
type(ufo_locations), 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 659 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 357 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 566 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 600 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 487 of file ufo_geovals_mod.F90.
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 | ||
) |
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 949 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 885 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 774 of file ufo_geovals_mod.F90.
subroutine, public ufo_geovals_mod::ufo_geovals_partial_setup | ( | type(ufo_geovals), intent(inout) | self, |
type(oops_variables), intent(in) | vars, | ||
integer, intent(in) | nlocs | ||
) |
Deprecated, use ufo_geovals_setup instead. Partially initializes self
GeoVaLs with nlocs
number of locations vars
variables. Does not allocate geovals(i)vals.
Definition at line 114 of file ufo_geovals_mod.F90.
subroutine, public ufo_geovals_mod::ufo_geovals_print | ( | type(ufo_geovals), intent(in) | self, |
integer, intent(in) | iobs | ||
) |
Definition at line 1199 of file ufo_geovals_mod.F90.
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_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 991 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 396 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 526 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, | ||
integer, intent(in) | nvars, | ||
integer(c_size_t), dimension(nvars), intent(in) | nvals | ||
) |
Initializes and allocates self
GeoVaLs with nlocs
number of locations for vars
variables. nvals
array contains number of values to allocate for each of the variables.
Definition at line 82 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 852 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 1146 of file ufo_geovals_mod.F90.
subroutine, public ufo_geovals_mod::ufo_geovals_zero | ( | type(ufo_geovals), intent(inout) | self | ) |
|
private |
Definition at line 19 of file ufo_geovals_mod.F90.