Merge remote-tracking branch 'origin/release-v4.6.1'
[WRF.git] / var / da / da_radiance / da_mspps_ts.inc
blob2926933ee6afaf23cd426e736dd2c9a781b4f550
1 subroutine da_mspps_ts(tb, nchan, satzen, ts)
2  
3 ! http://www.star.nesdis.noaa.gov/corp/scsb/mspps/algorithms.html
4 ! land algorithm for surface temperature
5  
6    use gsi_constants, only: deg2rad
8    implicit none
10    integer,                intent(in)  :: nchan
11    real, dimension(nchan), intent(in)  :: tb
12    real,                   intent(in)  :: satzen
13    real,                   intent(out) :: ts
15    real, parameter :: rmiss = -999.0
16    real, parameter :: tbmin = 50.0
17    real, parameter :: tbmax = 550.0
19    real :: cza
21    ts = rmiss  ! initialize
23    if ( tb(1) > tbmin .and. tb(1) < tbmax .and.   &
24         tb(2) > tbmin .and. tb(2) < tbmax .and.   &
25         tb(3) > tbmin .and. tb(3) < tbmax .and.   &
26         satzen >= 0.0 .and. satzen <= 90.0 ) then
27       cza = COS(satzen*deg2rad)
28       ts = 2.9079E2-(8.5059E-1-1.9821E-3*tb(1))*tb(1)+         &
29            (6.1433E-1-2.3579E-3*tb(2))*tb(2)-                  &
30            (1.1493-5.4709E-3*tb(3))*tb(3)-1.50E1*(cza-5.40E-1)
31    end if
33 end subroutine da_mspps_ts