[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