[Dart-dev] DART/branches Revision: 12742
dart at ucar.edu
dart at ucar.edu
Thu Jul 12 12:00:00 MDT 2018
nancy at ucar.edu
2018-07-12 12:00:00 -0600 (Thu, 12 Jul 2018)
258
closer to what we want. added initial guess at proper
metadata, fixed read/write/interactive routines.
calling interpolate, but not calling any rttov routines yet.
need allocate, read coefficients, and the call to the
actual radiance computation routine.
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-12 17:34:30 UTC (rev 12741)
+++ DART/branches/radiance/observations/forward_operators/obs_def_rttov_mod.f90 2018-07-12 18:00:00 UTC (rev 12742)
@@ -91,32 +91,38 @@
character(len=32 ), parameter :: revision = "$Revision$"
character(len=128), parameter :: revdate = "$Date$"
-character(len=256) :: string1, string2
+character(len=512) :: string1, string2
logical, save :: module_initialized = .false.
! Metadata for rttov observations.
-! There are soil parameters for each site that must be added to each
-! observation in the sequence. Also COSMIC parameters ...
+! AIRS is sensor 11 w/ 1-2378 channels (visible/near infrared/infrared)
+! AMSU-A is sensor 3 with 1-15 channels (infrared/microwave)
+
!FIXME
-type site_metadata
+type obs_metadata
private
- real(r8) :: bd ! Dry Soil Bulk Density [ g / cm^3]
- real(r8) :: lattwat ! Lattice Water Content [M^3 / M^3]
- real(r8) :: N ! High Energy Neutron Intensity
- real(r8) :: alpha ! Ratio of Fast Neutron Creation Factor
- real(r8) :: L1 ! High Energy Soil Attenuation Length
- real(r8) :: L2 ! High Energy Water Attenuation Length
- real(r8) :: L3 ! Fast Neutron Soil Attenuation Length
- real(r8) :: L4 ! Fast Neutron Water Attenuation Length
-end type site_metadata
+! sat az/el
+! sun az/el
+! platform
+! instrument
+! channel
+ 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
+ integer :: platform ! see rttov user guide
+ integer :: sensor ! see rttov user guide
+ integer :: channel ! each channel is a different obs
+ ! more here as we need it
+end type obs_metadata
-type(site_metadata), allocatable, dimension(:) :: observation_metadata
-type(site_metadata) :: missing_metadata
-character(len=6), parameter :: RTTOVSTRING = 'rttov'
+type(obs_metadata), allocatable, dimension(:) :: observation_metadata
+type(obs_metadata) :: missing_metadata
+character(len=5), parameter :: RTTOVSTRING = 'rttov'
logical :: debug = .FALSE.
-integer :: MAXrttovkey = 24*366 !FIXME
+integer :: MAXrttovkey = 100000 !FIXME - some initial number of obs
integer :: rttovkey = 0 ! useful length of metadata arrays
contains
@@ -130,31 +136,29 @@
module_initialized = .true.
-missing_metadata%bd = MISSING_R8
-missing_metadata%lattwat = MISSING_R8
-missing_metadata%N = MISSING_R8
-missing_metadata%alpha = MISSING_R8
-missing_metadata%L1 = MISSING_R8
-missing_metadata%L2 = MISSING_R8
-missing_metadata%L3 = MISSING_R8
-missing_metadata%L4 = MISSING_R8
+missing_metadata%sat_az = MISSING_R8
+missing_metadata%sat_ze = MISSING_R8
+missing_metadata%sun_az = MISSING_R8
+missing_metadata%sun_ze = MISSING_R8
+missing_metadata%platform = MISSING_I
+missing_metadata%sensor = MISSING_I
+missing_metadata%channel = MISSING_I
allocate(observation_metadata(MAXrttovkey))
observation_metadata(:) = missing_metadata
+!FIXME call an init routine for rttov here
+
end subroutine initialize_module
-
-
- subroutine set_rttov_metadata(key, bd, lattwat, N, alpha, L1, L2, L3, L4)
!----------------------------------------------------------------------
-!subroutine set_rttov_metadata(key, bd, lattwat, N, alpha, L1, L2, L3, L4)
-!
! Fill the module storage metadata for a particular observation.
+subroutine set_rttov_metadata(key, sat_az, sat_ze, sun_az, sun_ze, platform, sensor, channel)
integer, intent(out) :: key
-real(r8), intent(in) :: bd, lattwat, N, alpha, L1, L2, L3, L4
+real(r8), intent(in) :: sat_az, sat_ze, sun_az, sun_ze
+integer, intent(in) :: platform, sensor, channel
More information about the Dart-dev
mailing list