[Dart-dev] DART/branches Revision: 11482
dart at ucar.edu
dart at ucar.edu
Thu Apr 13 16:08:18 MDT 2017
nancy at ucar.edu
2017-04-13 16:08:14 -0600 (Thu, 13 Apr 2017)
338
update the gpsro_bufr defaults, add mkmf and path names files.
add the converter that reads netcdf files for ionosphere obs.
the gps forward operator module just defines an electron density
type; no new code. the gpsro_bufr build requires that you
build the ncep bufr library first. this should go in the
.html file when we make one.
Modified: DART/branches/rma_trunk/observations/forward_operators/obs_def_gps_mod.f90
===================================================================
--- DART/branches/rma_trunk/observations/forward_operators/obs_def_gps_mod.f90 2017-04-13 21:46:02 UTC (rev 11481)
+++ DART/branches/rma_trunk/observations/forward_operators/obs_def_gps_mod.f90 2017-04-13 22:08:14 UTC (rev 11482)
@@ -12,10 +12,11 @@
! files (e.g. for the obs_diag program) might be a larger number than 100K.
! BEGIN DART PREPROCESS KIND LIST
-! TEMPERATURE, QTY_TEMPERATURE, COMMON_CODE
-! SPECIFIC_HUMIDITY, QTY_SPECIFIC_HUMIDITY, COMMON_CODE
-! PRESSURE, QTY_PRESSURE, COMMON_CODE
-! GPSRO_REFRACTIVITY, QTY_GPSRO
+! TEMPERATURE, QTY_TEMPERATURE, COMMON_CODE
+! SPECIFIC_HUMIDITY, QTY_SPECIFIC_HUMIDITY, COMMON_CODE
+! PRESSURE, QTY_PRESSURE, COMMON_CODE
+! GPSRO_REFRACTIVITY, QTY_GPSRO
+! COSMIC_ELECTRON_DENSITY, QTY_ELECTRON_DENSITY, COMMON_CODE
! END DART PREPROCESS KIND LIST
@@ -372,7 +373,7 @@
subroutine get_expected_gpsro_ref(state_handle, ens_size, location, gpskey, ro_ref, istatus)
!------------------------------------------------------------------------------
!
-! Purpose: Calculate GPS RO local refractivity or non_local (integrated)
+! Purpose: Calculate GPS RO local refractivity or non_local (integrated)
! refractivity (excess phase, Sergey Sokolovskiy et al., 2005)
!------------------------------------------------------------------------------
!
@@ -380,12 +381,12 @@
! state_vector: DART state vector
!
! output parameters:
-! ro_ref: modeled local refractivity (N-1)*1.0e6 or non_local
+! ro_ref: modeled local refractivity (N-1)*1.0e6 or non_local
! refractivity (excess phase, m)
! (according to the input data parameter subset)
! istatus: =0 normal; =1 outside of domain.
!------------------------------------------------------------------------------
-! Author: Hui Liu
+! Author: Hui Liu
! Version 1.1: June 15, 2004: Initial version CAM
!
! Version 1.2: July 29, 2005: revised for new obs_def and WRF
@@ -425,6 +426,7 @@
obsloc = get_location(location)
+
lon = obsloc(1) ! degree: 0 to 360
lat = obsloc(2) ! degree: -90 to 90
height = obsloc(3) ! (m)
@@ -450,7 +452,7 @@
! otherwise, use non_local refractivity(excess phase delay)
! Initialization
- phase = 0.0_r8
+ phase = 0.0_r8
dist_to_perigee = 0.0_r8 ! distance to perigee from a point of the ray
nx = gps_data(gpskey)%ray_direction(1)
@@ -458,12 +460,13 @@
nz = gps_data(gpskey)%ray_direction(3)
! convert location of the perigee from geodetic to Cartesian coordinate
- call geo2carte(height, lat, lon, xo, yo, zo, gps_data(gpskey)%rfict )
+ call geo2carte (height, lat, lon, xo, yo, zo, gps_data(gpskey)%rfict )
+
! currently, use a straight line passing the perigee point as ray model.
! later, more sophisticated ray models can be used.
!
- ! Start the horizontal integrate of the model refractivity along a
+ ! Start the horizontal integrate of the model refractivity along a
! straight line path in cartesian coordinate
!
! (x-xo)/a = (y-yo)/b = (z-zo)/c, (a,b,c) is the line direction
@@ -476,48 +479,48 @@
iter = iter + 1
dist_to_perigee = dist_to_perigee + gps_data(gpskey)%step_size
-
+
! integrate to one direction of the ray for one step
! HK These are now different for each ensemble member
xx = xo + dist_to_perigee * nx
yy = yo + dist_to_perigee * ny
zz = zo + dist_to_perigee * nz
-
- ! convert the location of the point to geodetic coordinates
+
+ ! convert the location of the point to geodetic coordinates
! height(m), lat, lon(deg)
-
- call carte2geo( xx, yy, zz, height1, lat1, lon1, gps_data(gpskey)%rfict )
+
+ call carte2geo(xx, yy, zz, height1, lat1, lon1, gps_data(gpskey)%rfict )
if (height1 >= gps_data(gpskey)%ray_top) exit INTEGRATE
-
+
! get the refractivity at this ray point(ref00)
More information about the Dart-dev
mailing list