[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