[Dart-dev] DART/branches Revision: 12750
dart at ucar.edu
dart at ucar.edu
Mon Jul 16 10:44:28 MDT 2018
nancy at ucar.edu
2018-07-16 10:44:28 -0600 (Mon, 16 Jul 2018)
330
ok, these link. haven't been run. but the forward operator
has the code from the example_fwd.f90 file, partitioned between
a setup/init routine and per-obs-forward operator code.
i rebuilt the hdfeos libs myself (as opposed to using the
macports version) to work around trailing underscore problems.
the converter links now.
Modified: DART/branches/radiance/observations/forward_operators/obs_def_rttov_mod.f90
===================================================================
--- DART/branches/radiance/observations/forward_operators/obs_def_rttov_mod.f90 2018-07-13 17:59:49 UTC (rev 12749)
+++ DART/branches/radiance/observations/forward_operators/obs_def_rttov_mod.f90 2018-07-16 16:44:28 UTC (rev 12750)
@@ -74,12 +74,23 @@
use obs_def_utilities_mod, only : track_status
use ensemble_manager_mod, only : ensemble_type
-!FIXME
-use rttov_interface_mod, only : a, b, c
+use rttov_interface_mod, only : dart_rttov_setup, &
+ dart_rttov_do_forward_model, &
+ dart_rttov_takedown ! unused at present?
implicit none
private
+!FIXME: the converters only need the metadata routines.
+! filter needs them all. but with a complicated forward
+! operator, the convert now needs to be built with the
+! entire rttov library even though it will never call it.
+! how can we exclude the get_expected code from the
+! converter? preprocessor options? split this file
+! into two separate ones? forward operator vs obs metadata?
+! then the converters just use the metadata and filter
+! uses both... or something.
+
public :: set_rttov_metadata, &
get_rttov_metadata, &
read_rttov_metadata, &
@@ -108,9 +119,9 @@
type obs_metadata
private
real(r8) :: sat_az ! azimuth of satellite position
- real(r8) :: sat_ze ! azimuth of satellite position
- real(r8) :: sun_az ! zenith of solar position
- real(r8) :: sun_ze ! zenith of solar position
+ real(r8) :: sat_ze ! zenith of satellite position
+ real(r8) :: sun_az ! azimuth of solar position
+ real(r8) :: sun_ze ! zenith of solar position
integer :: platform ! see rttov user guide, table 2
integer :: sat_id ! see rttov user guide, table 2
integer :: sensor ! see rttov user guide, table 3
Modified: DART/branches/radiance/observations/forward_operators/rttov_interface_mod.f90
===================================================================
--- DART/branches/radiance/observations/forward_operators/rttov_interface_mod.f90 2018-07-13 17:59:49 UTC (rev 12749)
+++ DART/branches/radiance/observations/forward_operators/rttov_interface_mod.f90 2018-07-16 16:44:28 UTC (rev 12750)
@@ -49,6 +49,8 @@
! Copyright 2017, EUMETSAT, All Rights Reserved.
!
+ use types_mod, only : r8
+
! rttov_const contains useful RTTOV constants
USE rttov_const, ONLY : &
errorstatus_success, &
@@ -87,6 +89,11 @@
INTEGER(KIND=jpim), PARAMETER :: iup = 20 ! unit for input profile file
INTEGER(KIND=jpim), PARAMETER :: ioout = 0 ! stdout for now
+!FIXME: this is in module global storage for now
+! should be what? passed in and out? allocated in
+! the setup and returned? larger single structure
+! to collect these together in a single (opaque) type?
+
! RTTOV variables/structures
!====================
TYPE(rttov_options) :: opts ! Options structure
@@ -103,7 +110,7 @@
INTEGER(KIND=jpim) :: errorstatus ! Return error status of RTTOV subroutine calls
INTEGER(KIND=jpim) :: alloc_status
- CHARACTER(LEN=11) :: NameOfRoutine = 'example_fwd'
+ CHARACTER(LEN=*), parameter :: NameOfRoutine = 'rttov_interfaces' !FIXME unused
! variables for input
!====================
@@ -140,11 +147,18 @@
! To take advantage of multi-threaded execution you must have compiled
! RTTOV with openmp enabled. See the user guide and the compiler flags.
- errorstatus = 0_jpim
+public :: dart_rttov_setup, &
+ dart_rttov_do_forward_model, &
+ dart_rttov_takedown
+
+contains
+
!=====================================================
!========== Interactive inputs == start ==============
+!--------------------------------------------------------------------------
+!
!FIXME the channels are in the obs metadata, and nlevels are
! model (and model configuration) dependent. it seems most
! efficient to list all expected channels and the number
@@ -152,6 +166,7 @@
! set up once at init time, rather than on demand. this decision
! can be changed once we get this working.
More information about the Dart-dev
mailing list