FV3 Bundle
qg_locs_mod Module Reference

Fortran module handling observation locations. More...

Data Types

type  qg_locs
 Fortran derived type to hold observation locations. More...
 

Functions/Subroutines

subroutine c_qg_loc_create (c_key_locs)
 Linked list implementation. More...
 
subroutine c_qg_loc_test (c_key_locs, config, klocs, klats, klons, kz)
 Generate locations for interpolation test. More...
 
subroutine, public qg_loc_setup (self, lvec, kobs)
 
subroutine c_qg_loc_delete (key)
 
subroutine c_qg_loc_nobs (key, kobs)
 
subroutine c_qg_loc_element (key, iloc, xyz)
 

Variables

type(registry_t), public qg_locs_registry
 Linked list interface - defines registry_t type. More...
 

Detailed Description

Fortran module handling observation locations.

Function/Subroutine Documentation

◆ c_qg_loc_create()

subroutine qg_locs_mod::c_qg_loc_create ( integer(c_int), intent(inout)  c_key_locs)
private

Linked list implementation.

Definition at line 48 of file qg_locs_mod.F90.

◆ c_qg_loc_delete()

subroutine qg_locs_mod::c_qg_loc_delete ( integer(c_int), intent(inout)  key)
private

Definition at line 223 of file qg_locs_mod.F90.

◆ c_qg_loc_element()

subroutine qg_locs_mod::c_qg_loc_element ( integer(c_int), intent(in)  key,
integer(c_int), intent(in)  iloc,
real(c_double), dimension(3), intent(inout)  xyz 
)
private

Definition at line 250 of file qg_locs_mod.F90.

◆ c_qg_loc_nobs()

subroutine qg_locs_mod::c_qg_loc_nobs ( integer(c_int), intent(in)  key,
integer(c_int), intent(inout)  kobs 
)
private

Definition at line 237 of file qg_locs_mod.F90.

◆ c_qg_loc_test()

subroutine qg_locs_mod::c_qg_loc_test ( integer(c_int), intent(in)  c_key_locs,
type(c_ptr), intent(in)  config,
integer(c_int), intent(in)  klocs,
real(c_double), dimension(klocs), intent(in)  klats,
real(c_double), dimension(klocs), intent(in)  klons,
real(c_double), dimension(klocs), intent(in)  kz 
)
private

Generate locations for interpolation test.

c_qg_loc_test() generates a list of user-specified and/or randomly-generated locations. It was originally intended to be used with the test::testStateInterpolation() routine but it may also be adapted for other applications. The user can specify a list of specific locations to be tested (optional) by setting the "lats" and "lons" items in the "StateTest" section of the config file. Alternatively or in addition to these specific locations, the user may request that Nrandom random locations be generated. If neither lats/lons nor Nrandom is specified in the config file, then two random locations are generated.

Date
April 2, 2018: Created (M. Miesch, JCSDA)
Warning
the lats and lons arrays in the input file are assumed to be degrees (for uniformity relative to other models). These are converted to normalized x and y coordinates when they are stored in the LocationsQG object as defined here. The height specified in the input file is assumed to be normalized already, so it will take on a value between 0 and 1.
Since the interpolate() member function of State objects does not interpolate in height (z). the z coordinate as recorded in the LocationsQG object refers to an integer level of 1 or 2. If the user does not explicitly specify the (normalized) height for each latitude and longitude in the config file, then the level is set to a default value of 1.
See also
qg::LocationsQG
Parameters
[in]c_key_locskey to F90 Locations object
[in]configConfiguration (typically State.StateGenerate)
[in]klocsNumber of user-specified locations
[in]klatsuser-specified latitudes (degrees)
[in]klonsuser-specified longitudes (degrees)
[in]kzuser-specified heights (normalized between 0-1)
Warning
qg_loc_test() latitudes and longitudes are assumed to be in normalized coordinates between 0 and 1

Definition at line 87 of file qg_locs_mod.F90.

Here is the call graph for this function:

◆ qg_loc_setup()

subroutine, public qg_locs_mod::qg_loc_setup ( type(qg_locs), intent(inout)  self,
type(obs_vect), intent(in)  lvec,
integer, dimension(:), intent(in)  kobs 
)

Definition at line 202 of file qg_locs_mod.F90.

Here is the caller graph for this function:

Variable Documentation

◆ qg_locs_registry

type(registry_t), public qg_locs_mod::qg_locs_registry

Linked list interface - defines registry_t type.

Global registry

Definition at line 37 of file qg_locs_mod.F90.