[Dart-dev] DART/branches Revision: 12986

dart at ucar.edu dart at ucar.edu
Thu Feb 14 09:45:49 MST 2019


hendric at ucar.edu
2019-02-14 09:45:49 -0700 (Thu, 14 Feb 2019)
137

adding solar and satellite metadata from the observation to the profile,
in addition to using bottom level data to the skin variables.




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-14 16:43:43 UTC (rev 12985)
+++ DART/branches/radiance/observations/forward_operators/obs_def_rttov_mod.f90	2019-02-14 16:45:49 UTC (rev 12986)
@@ -124,14 +124,14 @@
 !FIXME - add additional fields here as needed
 type obs_metadata
    private
-   real(r8)            :: sat_az     ! azimuth of satellite 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
-   integer             :: channel    ! each channel is a different obs
+   real(r8) :: sat_az     ! azimuth of satellite 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
+   integer  :: channel    ! each channel is a different obs
    ! more here as we need it
 end type obs_metadata
 
@@ -624,6 +624,10 @@
                                  u=u_wind, &
                                  v=v_wind, &
                                  wvmr=water_vapor_mr, &
+                                 sat_az=sat_az, &
+                                 sat_ze=sat_ze, &
+                                 sun_az=sun_az, &
+                                 sun_ze=sun_ze, &
                                  radiances=radiance, &
                                  error_status=this_istatus) 
 

Modified: DART/branches/radiance/observations/forward_operators/rttov_interface_mod.f90
===================================================================
--- DART/branches/radiance/observations/forward_operators/rttov_interface_mod.f90	2019-02-14 16:43:43 UTC (rev 12985)
+++ DART/branches/radiance/observations/forward_operators/rttov_interface_mod.f90	2019-02-14 16:45:49 UTC (rev 12986)
@@ -85,7 +85,7 @@
   USE parkind1, ONLY : jpim, jprb, jplm
   ! are these I4, R8, ?  what's a logical kind?
   !
-  ! (JPH) INTEGER, PARAMETER :: JPIM = SELECTED_INT_KIND(9) !< Standard integer type
+  ! (JPH) INTEGER, PARAMETER :: JPIM = SELECTED_INT_KIND(9)       !< Standard integer type
   ! (JPH) INTEGER, PARAMETER :: JPRB = SELECTED_REAL_KIND(13,300) !< Standard real type
   ! (JPH) INTEGER, PARAMETER :: JPLM = KIND(.TRUE.)               !< Standard logical type
   IMPLICIT NONE
@@ -108,61 +108,60 @@
 ! 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
-  TYPE(rttov_coefs)                :: coefs                    ! Coefficients structure
-  TYPE(rttov_chanprof),    POINTER :: chanprof(:)    => NULL() ! Input channel/profile list
-  LOGICAL(KIND=jplm),      POINTER :: calcemis(:)    => NULL() ! Flag to indicate calculation of emissivity within RTTOV
-  TYPE(rttov_emissivity),  POINTER :: emissivity(:)  => NULL() ! Input/output surface emissivity
-  LOGICAL(KIND=jplm),      POINTER :: calcrefl(:)    => NULL() ! Flag to indicate calculation of BRDF within RTTOV
-  TYPE(rttov_reflectance), POINTER :: reflectance(:) => NULL() ! Input/output surface BRDF
-  TYPE(rttov_profile),     POINTER :: profiles(:)    => NULL() ! Input profiles
-  TYPE(rttov_transmission)         :: transmission             ! Output transmittances
-  TYPE(rttov_radiance)             :: radiance                 ! Output radiances
+! RTTOV variables/structures
+!====================
+TYPE(rttov_options)              :: opts                     ! Options structure
+TYPE(rttov_coefs)                :: coefs                    ! Coefficients structure
+TYPE(rttov_chanprof),    POINTER :: chanprof(:)    => NULL() ! Input channel/profile list
+LOGICAL(KIND=jplm),      POINTER :: calcemis(:)    => NULL() ! Flag to indicate calculation of emissivity within RTTOV
+TYPE(rttov_emissivity),  POINTER :: emissivity(:)  => NULL() ! Input/output surface emissivity
+LOGICAL(KIND=jplm),      POINTER :: calcrefl(:)    => NULL() ! Flag to indicate calculation of BRDF within RTTOV
+TYPE(rttov_reflectance), POINTER :: reflectance(:) => NULL() ! Input/output surface BRDF
+TYPE(rttov_profile),     POINTER :: profiles(:)    => NULL() ! Input profiles
+TYPE(rttov_transmission)         :: transmission             ! Output transmittances
+TYPE(rttov_radiance)             :: radiance                 ! Output radiances
 
-  INTEGER(KIND=jpim)               :: errorstatus              ! Return error status of RTTOV subroutine calls
+INTEGER(KIND=jpim)               :: errorstatus              ! Return error status of RTTOV subroutine calls
 
-  INTEGER(KIND=jpim) :: alloc_status
-  CHARACTER(LEN=*), parameter  :: NameOfRoutine = 'rttov_interfaces'   !FIXME unused
+INTEGER(KIND=jpim) :: alloc_status
+CHARACTER(LEN=*), parameter  :: NameOfRoutine = 'rttov_interfaces'   !FIXME unused
 
-  ! variables for input
-  !====================
-  CHARACTER(LEN=256) :: coef_filename
-  CHARACTER(LEN=256) :: prof_filename
-  INTEGER(KIND=jpim) :: nthreads = 1
-  INTEGER(KIND=jpim) :: dosolar = 0
-  INTEGER(KIND=jpim) :: nlevels
-  INTEGER(KIND=jpim) :: nprof
-  INTEGER(KIND=jpim) :: nchannels
-  INTEGER(KIND=jpim) :: nchanprof
+! variables for input
+!====================


More information about the Dart-dev mailing list