MODULE obs_def_gps_mod
¶
Overview¶
DART GPS Radio Occultation observation module, including the observation operators for both local and non-local refractivity computations.
Author and Contact information:
GPS Science: Hui Liu, hliu at ncar.edu
DART Code: Nancy Collins, nancy at ucar.edu
Namelist¶
This namelist is now enabled by default. The maximum number of GPS observations is settable at runtime by changing the
value in the namelist. If you get an error about a missing namelist add &obs_def_gps_nml
using the example below to
your input.nml
namelist file and rerun. No recompiling is needed.
This namelist is read from the file input.nml
. Namelists start with an ampersand ‘&’ and terminate with a slash ‘/’.
Character strings that contain a ‘/’ must be enclosed in quotes to prevent them from prematurely terminating the
namelist.
&obs_def_gps_nml
max_gpsro_obs = 100000,
/
Item |
Type |
Description |
---|---|---|
max_gpsro_obs |
integer |
The maximum number of GPS refractivity observations supported for a single execution. Generally the default will be sufficient for a single run of filter, but not enough for a long diagnostics run to produce a time series. |
Other modules used¶
types_mod
utilities_mod
location_mod (threed_sphere)
assim_model_mod
obs_kind_mod
Public interfaces¶
use obs_def_gps_mod, only : |
read_gpsro_ref |
write_gpsro_ref |
|
get_expected_gpsro_ref |
|
interactive_gpsro_ref |
|
set_gpsro_ref |
|
get_gpsro_ref |
A note about documentation style. Optional arguments are enclosed in brackets [like this].
call read_gpsro_ref(gpskey, ifile, [, fform])
integer, intent(out) :: gpskey
integer, intent(in) :: ifile
character(len=*), intent(in), optional :: fform
Refractivity observations have several items of auxiliary data to read or write. This routine reads in the data for the next observation and returns the private GPS key index number that identifies the auxiliary data for this observation.
|
GPS key number returned to the caller. |
|
Open file unit number to read from. |
fform |
If specified, indicate whether the file was opened formatted or unformatted. Default is ‘formatted’. |
call write_gpsro_ref(gpskey, ifile, [, fform])
integer, intent(in) :: gpskey
integer, intent(in) :: ifile
character(len=*), intent(in), optional :: fform
Refractivity observations have several items of auxiliary data to read or write. This routine writes out the auxiliary data for the specified observation to the file unit given.
|
GPS key number identifying which observation to write aux data for. |
|
Open file unit number to write to. |
fform |
If specified, indicate whether the file was opened formatted or unformatted. Default is ‘formatted’. |
call get_expected_gpsro_ref(state_vector, location, gpskey, ro_ref, istatus)
real(r8), intent(in) :: state_vector(:)
type(location_type), intent(in) :: location
integer, intent(in) :: gpskey
real(r8), intent(out) :: ro_ref
integer, intent(out) :: istatus
|
A one dimensional representation of the model state vector |
|
Location of this observation |
|
Integer key identifying which GPS observation this is, so the correct corresponding auxiliary information can be accessed. |
|
The returned GPS refractivity value |
|
Returned integer status code describing problems with applying forward operator. 0 is a good value; any positive value indicates an error; negative values are reserved for internal DART use only. |
call interactive_gpsro_ref(gpskey)
integer, intent(out) :: gpskey
Prompts the user for the auxiliary information needed for a GPS refractivity observation, and returns the new key associated with this data.
|
Unique identifier associated with this GPS refractivity observation. In this code it is an integer index into module local arrays which hold the additional data. This routine returns the incremented value associated with this data. |
call set_gpsro_ref(gpskey, nx, ny, nz, rfict0, ds, htop, subset0)
integer, intent(out) :: gpskey
real(r8), intent(in) :: nx
real(r8), intent(in) :: ny
real(r8), intent(in) :: nz
real(r8), intent(in) :: rfict0
real(r8), intent(in) :: ds
real(r8), intent(in) :: htop
character(len=6), intent(in) :: subset0
Sets the auxiliary information associated with a GPS refractivity observation. This routine increments and returns the new key associated with these values.
|
Unique identifier associated with this GPS refractivity observation. In this code it is an integer index into module local arrays which hold the additional data. This routine returns the incremented value associated with this data. |
|
X component of direction of ray between the LEO (detector) satellite and the GPS transmitter satellite at the tangent point. |
|
Y component of tangent ray. |
|
Z component of tangent ray. |
|
Local curvature radius (meters). |
|
Delta S, increment to move along the ray in each direction when integrating the non-local operator (meters). |
|
Elevation (in meters) where integration stops along the ray. |
|
The string ‘GPSREF’ for the local operator (refractivity computed only at the tangent point), or ‘GPSEXC’ for the non-local operator which computes excess phase along the ray. |
call get_gpsro_ref(gpskey, nx, ny, nz, rfict0, ds, htop, subset0)
integer, intent(in) :: gpskey
real(r8), intent(out) :: nx
real(r8), intent(out) :: ny
real(r8), intent(out) :: nz
real(r8), intent(out) :: rfict0
real(r8), intent(out) :: ds
real(r8), intent(out) :: htop
character(len=6), intent(out) :: subset0
Gets the auxiliary information associated with a GPS refractivity observation, based on the GPS key number specified.
|
Unique identifier associated with this GPS refractivity observation. In this code it is an integer index into module local arrays which hold the additional data. The value specified selects which observation to return data for. |
|
X component of direction of ray between the LEO (detector) satellite and the GPS transmitter satellite at the tangent point. |
|
Y component of tangent ray. |
|
Z component of tangent ray. |
|
Local curvature radius (meters). |
|
Delta S, increment to move along the ray in each direction when integrating the non-local operator (meters). |
|
Elevation (in meters) where integration stops along the ray. |
|
The string ‘GPSREF’ for the local operator (refractivity computed only at the tangent point), or ‘GPSEXC’ for the non-local operator which computes excess phase along the ray. |
Files¶
A DART observation sequence file containing GPS obs.
References¶
Assimilation of GPS Radio Occultation Data for Numerical Weather Prediction, Kuo,Y.H., Sokolovskiy,S.V., Anthes,R.A., Vendenberghe,F., Terrestrial Atm and Ocn Sciences, Vol 11, pp157-186, 2000.