1 subroutine da_mspps_ts(tb, nchan, satzen, ts)
3 ! http://www.star.nesdis.noaa.gov/corp/scsb/mspps/algorithms.html
4 ! land algorithm for surface temperature
6 use gsi_constants, only: deg2rad
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
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)
33 end subroutine da_mspps_ts