[Dart-dev] [4197] DART/trunk/models/wrf/WRF_DART_utilities/wrf_dart_obs_preprocess.f90 : Lastest updates from Ryan to optionally include GPS RO obs.

nancy at ucar.edu nancy at ucar.edu
Thu Dec 10 10:51:55 MST 2009


Revision: 4197
Author:   nancy
Date:     2009-12-10 10:51:55 -0700 (Thu, 10 Dec 2009)
Log Message:
-----------
Lastest updates from Ryan to optionally include GPS RO obs.

Modified Paths:
--------------
    DART/trunk/models/wrf/WRF_DART_utilities/wrf_dart_obs_preprocess.f90

-------------- next part --------------
Modified: DART/trunk/models/wrf/WRF_DART_utilities/wrf_dart_obs_preprocess.f90
===================================================================
--- DART/trunk/models/wrf/WRF_DART_utilities/wrf_dart_obs_preprocess.f90	2009-12-10 17:42:20 UTC (rev 4196)
+++ DART/trunk/models/wrf/WRF_DART_utilities/wrf_dart_obs_preprocess.f90	2009-12-10 17:51:55 UTC (rev 4197)
@@ -28,7 +28,7 @@
 use    utilities_mod, only : find_namelist_in_file, check_namelist_read, nc_check
 use     obs_kind_mod, only : RADIOSONDE_U_WIND_COMPONENT, ACARS_U_WIND_COMPONENT, &
                              MARINE_SFC_U_WIND_COMPONENT, LAND_SFC_U_WIND_COMPONENT, &
-                             SAT_U_WIND_COMPONENT, VORTEX_LAT
+                             GPSRO_REFRACTIVITY, SAT_U_WIND_COMPONENT, VORTEX_LAT
 use        model_mod, only : static_init_model
 use           netcdf
 
@@ -46,6 +46,7 @@
                       land_sfc_extra     = 'obs_seq.land_sfc',   &
                       marine_sfc_extra   = 'obs_seq.marine_sfc', &
                       sat_wind_extra     = 'obs_seq.satwnd',     &
+                      gpsro_extra        = 'obs_seq.gpsro',      &
                       trop_cyclone_extra = 'obs_seq.tc'
 integer            :: max_num_obs              = 100000   ! Largest number of obs in one sequence
 
@@ -85,7 +86,7 @@
          aircraft_pres_int, sat_wind_pres_int, sfc_elevation_tol,   & 
          obs_pressure_top, obs_height_top, obs_boundary, sonde_extra,   &
          acars_extra, land_sfc_extra, marine_sfc_extra, sat_wind_extra, &
-         trop_cyclone_extra, tc_sonde_radii, increase_bdy_error,      &
+         trop_cyclone_extra, gpsro_extra, tc_sonde_radii, increase_bdy_error,      &
          maxobsfac, obsdistbdy, sat_wind_horiz_int, aircraft_horiz_int
 
 ! ----------------------------------------------------------------------
@@ -101,7 +102,7 @@
 logical                 :: file_exist, pre_I_format
 
 type(obs_sequence_type) :: seq_all, seq_rawin, seq_sfc, seq_acars, seq_satwnd, &
-                           seq_tc, seq_other
+                           seq_tc, seq_gpsro, seq_other
 
 call static_init_obs_sequence()
 call static_init_model()
@@ -142,6 +143,7 @@
 call create_new_obs_seq(num_copies, num_qc, max_num_obs, seq_sfc)
 call create_new_obs_seq(num_copies, num_qc, max_num_obs, seq_acars)
 call create_new_obs_seq(num_copies, num_qc, max_num_obs, seq_satwnd)
+call create_new_obs_seq(num_copies, num_qc, max_num_obs, seq_gpsro)
 call create_new_obs_seq(num_copies, num_qc, 100,         seq_tc)
 call create_new_obs_seq(num_copies, num_qc, max_num_obs, seq_other)
 
@@ -149,37 +151,42 @@
 call read_and_parse_input_seq(file_name_input, dble(nx), dble(ny), obs_boundary, &
 include_sig_data, obs_pressure_top, obs_height_top, sfc_elevation_check, &
 sfc_elevation_tol, overwrite_ncep_sfc_qc, overwrite_ncep_satwnd_qc, seq_rawin, &
-seq_sfc, seq_acars, seq_satwnd, seq_tc, seq_other)
+seq_sfc, seq_acars, seq_satwnd, seq_tc, seq_gpsro, seq_other)
 
 !  add supplimental rawinsonde observations from file
 call add_supplimental_obs(sonde_extra, seq_rawin, max_obs_seq, &
 RADIOSONDE_U_WIND_COMPONENT, nx, ny, obs_boundary, include_sig_data, &
-obs_pressure_top, sfc_elevation_check, sfc_elevation_tol)
+obs_pressure_top, obs_height_top, sfc_elevation_check, sfc_elevation_tol)
 
 !  add supplimental ACARS observations from file
 call add_supplimental_obs(acars_extra, seq_acars, max_obs_seq, &
 ACARS_U_WIND_COMPONENT, nx, ny, obs_boundary, include_sig_data, &
-obs_pressure_top, sfc_elevation_check, sfc_elevation_tol)
+obs_pressure_top, obs_height_top, sfc_elevation_check, sfc_elevation_tol)
 
 !  add supplimental marine observations from file
 call add_supplimental_obs(marine_sfc_extra, seq_sfc, max_obs_seq, &
 MARINE_SFC_U_WIND_COMPONENT, nx, ny, obs_boundary, include_sig_data, &
-obs_pressure_top, sfc_elevation_check, sfc_elevation_tol)
+obs_pressure_top, obs_height_top, sfc_elevation_check, sfc_elevation_tol)
 
 !  add supplimental land surface observations from file
 call add_supplimental_obs(land_sfc_extra, seq_sfc, max_obs_seq, &
 LAND_SFC_U_WIND_COMPONENT, nx, ny, obs_boundary, include_sig_data, &
-obs_pressure_top, sfc_elevation_check, sfc_elevation_tol)
+obs_pressure_top, obs_height_top, sfc_elevation_check, sfc_elevation_tol)
 
 !  add supplimental satellite wind observations from file
 call add_supplimental_obs(sat_wind_extra, seq_satwnd, max_obs_seq, &
 SAT_U_WIND_COMPONENT, nx, ny, obs_boundary, include_sig_data, &
-obs_pressure_top, sfc_elevation_check, sfc_elevation_tol)
+obs_pressure_top, obs_height_top, sfc_elevation_check, sfc_elevation_tol)
 
+!  add supplimental GPSRO observations from file
+call add_supplimental_obs(gpsro_extra, seq_gpsro, max_obs_seq, &
+GPSRO_REFRACTIVITY, nx, ny, obs_boundary, include_sig_data, &
+obs_pressure_top, obs_height_top, sfc_elevation_check, sfc_elevation_tol)
+
 !  add supplimental tropical cyclone vortex observations from file
 call add_supplimental_obs(trop_cyclone_extra, seq_tc, max_obs_seq, &
 VORTEX_LAT, nx, ny, obs_boundary, include_sig_data, &
-obs_pressure_top, sfc_elevation_check, sfc_elevation_tol)
+obs_pressure_top, obs_height_top, sfc_elevation_check, sfc_elevation_tol)
 
 !  remove all sonde observations within radius of TC if desired
 if ( tc_sonde_radii > 0.0_r8 ) call remove_sondes_near_tc(seq_tc, & 
@@ -195,7 +202,8 @@
 
 max_obs_seq = get_num_obs(seq_tc)     + get_num_obs(seq_rawin) + &
               get_num_obs(seq_sfc)    + get_num_obs(seq_acars) + &
-              get_num_obs(seq_satwnd) + get_num_obs(seq_other)
+              get_num_obs(seq_satwnd) + get_num_obs(seq_gpsro) + &
+              get_num_obs(seq_other)
 
 call create_new_obs_seq(num_copies, num_qc, max_obs_seq, seq_all)
 
@@ -211,6 +219,9 @@
 call build_master_sequence(seq_acars, seq_all)
 call destroy_obs_sequence(seq_acars)
 
+call build_master_sequence(seq_gpsro, seq_all)
+call destroy_obs_sequence(seq_gpsro)
+
 call build_master_sequence(seq_satwnd, seq_all)
 call destroy_obs_sequence(seq_satwnd)
 
@@ -286,7 +297,7 @@
                               get_obs_def_location
 use      obs_kind_mod, only : RADIOSONDE_U_WIND_COMPONENT, ACARS_U_WIND_COMPONENT, &
                               LAND_SFC_U_WIND_COMPONENT, MARINE_SFC_U_WIND_COMPONENT, &
-                              SAT_U_WIND_COMPONENT, VORTEX_LAT
+                              GPSRO_REFRACTIVITY, SAT_U_WIND_COMPONENT, VORTEX_LAT
 use         model_mod, only : get_domain_info 
 
 implicit none
@@ -325,6 +336,8 @@
     write(6,*) 'Adding Supplimental Satellite Wind Data'
   case (VORTEX_LAT)
     write(6,*) 'Adding Supplimental Tropical Cyclone Data'
+  case (GPSRO_REFRACTIVITY)
+    write(6,*) 'Adding Supplimental GPS RO Data'
 
 end select
 
@@ -839,7 +852,8 @@
 subroutine read_and_parse_input_seq(filename, nx, ny, obs_bdy, siglevel, ptop, &
                                     htop, sfcelev, elev_max, new_sfc_qc, &
                                     new_satwnd_qc, rawin_seq, sfc_seq, &
-                                    acars_seq, satwnd_seq, tc_seq, other_seq)
+                                    acars_seq, satwnd_seq, tc_seq, gpsro_seq, &
+                                    other_seq)
 
 use         types_mod, only : r8
 use     utilities_mod, only : nc_check
@@ -853,7 +867,7 @@
 use       obs_def_mod, only : obs_def_type, get_obs_kind, get_obs_def_location
 use      obs_kind_mod, only : RADIOSONDE_U_WIND_COMPONENT, RADIOSONDE_V_WIND_COMPONENT, &
                               RADIOSONDE_SURFACE_ALTIMETER, RADIOSONDE_TEMPERATURE, &
-                              RADIOSONDE_SPECIFIC_HUMIDITY, &
+                              RADIOSONDE_SPECIFIC_HUMIDITY, GPSRO_REFRACTIVITY, &
                               AIRCRAFT_U_WIND_COMPONENT, AIRCRAFT_V_WIND_COMPONENT, &
                               AIRCRAFT_TEMPERATURE, AIRCRAFT_SPECIFIC_HUMIDITY, &
                               ACARS_U_WIND_COMPONENT, ACARS_V_WIND_COMPONENT, &
@@ -879,7 +893,7 @@
 logical,                 intent(in)    :: siglevel, sfcelev, new_sfc_qc, &
                                           new_satwnd_qc
 type(obs_sequence_type), intent(inout) :: rawin_seq, sfc_seq, acars_seq, &
-                                          satwnd_seq, tc_seq, other_seq
+                                          satwnd_seq, tc_seq, gpsro_seq, other_seq
 
 character(len=129)    :: qcmeta
 integer               :: fid, var_id, okind, dom_id, i, j
@@ -1024,6 +1038,11 @@
       call copy_obs(obs, obs_in)
       call append_obs_to_seq(tc_seq, obs)
 
+    case ( GPSRO_REFRACTIVITY )
+
+      call copy_obs(obs, obs_in)
+      call append_obs_to_seq(gpsro_seq, obs)
+
     case default
 
       call copy_obs(obs, obs_in)


More information about the Dart-dev mailing list