[Dart-dev] DART/branches Revision: 12983

dart at ucar.edu dart at ucar.edu
Tue Feb 12 11:44:53 MST 2019


hendric at ucar.edu
2019-02-12 11:44:53 -0700 (Tue, 12 Feb 2019)
119

setting 2 meter air variables from the model.  in order to
do this i have also included the u and v wind components.




Modified: DART/branches/radiance/observations/forward_operators/obs_def_rttov_mod.f90
===================================================================
--- DART/branches/radiance/observations/forward_operators/obs_def_rttov_mod.f90	2019-02-12 16:50:11 UTC (rev 12982)
+++ DART/branches/radiance/observations/forward_operators/obs_def_rttov_mod.f90	2019-02-12 18:44:53 UTC (rev 12983)
@@ -69,7 +69,9 @@
 use     location_mod, only : location_type, set_location, get_location, VERTISUNDEF, &
                              VERTISHEIGHT, VERTISLEVEL, set_location_missing
 use     obs_kind_mod, only : QTY_GEOPOTENTIAL_HEIGHT, QTY_PRESSURE, QTY_TEMPERATURE, &
-                             QTY_SPECIFIC_HUMIDITY, QTY_VAPOR_MIXING_RATIO
+                             QTY_SPECIFIC_HUMIDITY, QTY_VAPOR_MIXING_RATIO, &
+                             QTY_U_WIND_COMPONENT, QTY_V_WIND_COMPONENT
+
 use  assim_model_mod, only : interpolate
 
 use obs_def_utilities_mod, only : track_status
@@ -176,8 +178,6 @@
 integer :: istatus
 integer :: ios
 
-print*, 'initialize_module'
-
 call register_module(source, revision, revdate)
 
 module_initialized = .true.
@@ -216,7 +216,6 @@
 print*, 'nthreads      - ', nthreads
 print*, '                '
 
-print*, 'initialize_module::dart_rttov_setup'
 call dart_rttov_setup(coef_file=coef_filename, &
                       prof_file=prof_filename, &
                       nprofs=nprof, &
@@ -337,7 +336,6 @@
 
 ! The oldkey is thrown away.
 
-print*, 'set_rttov_metadata', key, sat_az, sat_ze, sun_az, sun_ze, platform, sat_id, sensor, channel
 ! Store the metadata in module storage. The new key is returned.
 call set_rttov_metadata(key, sat_az, sat_ze, sun_az, sun_ze, platform, sat_id, sensor, channel)
 
@@ -514,7 +512,9 @@
 integer  :: platform, sat_id, sensor, channel
 
 real(r8), allocatable :: temperature(:,:), pressure(:,:), &
-                         moisture(:,:), water_vapor_mr(:,:)
+                         moisture(:,:), water_vapor_mr(:,:), &
+                         u_wind(:,:), v_wind(:,:)
+
 integer :: this_istatus(ens_size)
 
 integer  :: i, zi
@@ -572,7 +572,9 @@
 allocate(temperature(ens_size, numlevels), &
             pressure(ens_size, numlevels), &
             moisture(ens_size, numlevels), &
-      water_vapor_mr(ens_size, numlevels))
+      water_vapor_mr(ens_size, numlevels), &
+              u_wind(ens_size, numlevels), &
+              v_wind(ens_size, numlevels))
 
 ! Set all of the istatuses back to zero for track_status
 istatus = 0
@@ -596,13 +598,22 @@
    call track_status(ens_size, this_istatus, val, istatus, return_now)
    if (return_now) return
 
+   call interpolate(state_handle, ens_size, loc, QTY_U_WIND_COMPONENT, u_wind(:, i), this_istatus)
+   call track_status(ens_size, this_istatus, val, istatus, return_now)
+   if (return_now) return
+
+   call interpolate(state_handle, ens_size, loc, QTY_V_WIND_COMPONENT, v_wind(:, i), this_istatus)
+   call track_status(ens_size, this_istatus, val, istatus, return_now)
+   if (return_now) return
+
    ! FIXME: what else?
 
 enddo GETLEVELDATA
-print*, 'interpolate pressure    = ', pressure(1,:)
-print*, 'interpolate temperature = ', temperature(1,:)
-print*, 'interpolate moisture    = ', moisture(1,:)
-print*, 'get_expected_radiance::dart_rttov_do_forward_model'
+
+print*, 'interpolate pressure    = ', pressure(1,1),    '...', pressure(1,numlevels)
+print*, 'interpolate temperature = ', temperature(1,1), '...', temperature(1,numlevels)
+print*, 'interpolate moisture    = ', moisture(1,1),    '...', moisture(1,numlevels)
+
 !FIXME: these interp results are unused. make it a cheap quantity to ask for.
 call dart_rttov_do_forward_model(ens_size=ens_size, &
                                  nlevels=numlevels, &
@@ -610,20 +621,15 @@
                                  t=temperature, &
                                  p=pressure, &
                                  q=moisture, &
+                                 u=u_wind, &
+                                 v=v_wind, &
                                  wvmr=water_vapor_mr, &
                                  radiances=radiance, &
                                  error_status=this_istatus) 
 
-!FIXME initialize the profile info here and make the call to rttov()
-! to compute radiances, once for each ensemble member


More information about the Dart-dev mailing list