FV3 Bundle
|
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_init (self) |
subroutine, public | ufo_geovals_setup (self, vars, nobs) |
subroutine, public | ufo_geovals_delete (self) |
subroutine, public | ufo_geovals_get_var (self, varname, geoval, status) |
subroutine, public | ufo_geovals_allocone (self) |
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_assign (self, rhs) |
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_copy (self, other) |
Copy one GeoVaLs object into another. 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) |
subroutine, public | ufo_geovals_minmaxavg (self, kobs, 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, vars) |
subroutine, public | ufo_geovals_print (self, iobs) |
Variables | |
integer, parameter | max_string =800 |
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 317 of file ufo_geovals_mod.F90.
subroutine, public ufo_geovals_mod::ufo_geovals_allocone | ( | type(ufo_geovals), intent(inout) | self | ) |
subroutine, public ufo_geovals_mod::ufo_geovals_analytic_init | ( | type(ufo_geovals), intent(inout) | self, |
type(ioda_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 454 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 276 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 396 of file ufo_geovals_mod.F90.
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 356 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 | ||
) |
subroutine, public ufo_geovals_mod::ufo_geovals_get_var | ( | type(ufo_geovals), intent(in), target | self, |
character(maxvarlen), intent(in) | varname, | ||
type(ufo_geoval), intent(inout), pointer | geoval, | ||
integer, intent(out), optional | status | ||
) |
Definition at line 118 of file ufo_geovals_mod.F90.
subroutine, public ufo_geovals_mod::ufo_geovals_init | ( | type(ufo_geovals), intent(inout) | self | ) |
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 667 of file ufo_geovals_mod.F90.
subroutine, public ufo_geovals_mod::ufo_geovals_minmaxavg | ( | type(ufo_geovals), intent(in) | self, |
integer, intent(inout) | kobs, | ||
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 555 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_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, | ||
type(ufo_vars), intent(in) | vars | ||
) |
round-robin distribute the observations to PEs Calculate how many obs. on each PE
get dimensions of variable
get variable type
read 1d vars (only double precision and integer for now)
allocate geoval for this variable
read 2d vars (only double precision and integer for now)
allocate geoval for this variable
only 1d & 2d vars
Definition at line 705 of file ufo_geovals_mod.F90.
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_setup | ( | type(ufo_geovals), intent(inout) | self, |
type(ufo_vars), intent(in) | vars, | ||
integer, intent(in) | nobs | ||
) |
Definition at line 73 of file ufo_geovals_mod.F90.
subroutine, public ufo_geovals_mod::ufo_geovals_zero | ( | type(ufo_geovals), intent(inout) | self | ) |
|
private |
Definition at line 17 of file ufo_geovals_mod.F90.