updated top-level README and version_decl for V4.5 (#1847)
[WRF.git] / var / da / da_radiance / siem_interpolate.inc
bloba6d3891ce9b934a3f6ef4e795b5639cfe5d589a7
1 subroutine  siem_interpolate(frequency,discriminator,emissivity,seaice_type)
3 !$$$  subprogram documentation block
4 !                .      .    .                                       .
5 ! subprogram:
7 !   prgmmr:Banghua Yan                  org: nesdis              date: 2004-03-01
9 ! abstract:
10 !        (1) Find one snow emissivity spectrum to mimic the emission property of the
11 ! realistic snow condition using a set of discrminators
12 !        (2) Interpolate/extrapolate emissivity at a required frequency
14 ! program history log:
16 ! input argument list:
18 !      frequency       - frequency in GHz
19 !      discriminators  - emissivity discriminators at five AMSU-A & B window channels
20 !            discriminator[1]   :  emissivity discriminator at 23.8 GHz
21 !            discriminator[2]   :  emissivity discriminator at 31.4 GHz
22 !            discriminator[3]   :  emissivity discriminator at 50.3 GHz
23 !            discriminator[4]   :  emissivity discriminator at 89   GHz
24 !            discriminator[5]   :  emissivity discriminator at 150  GHz
26 !       Note: discriminator(1) and discriminator(3) are missing value in
27 !            'AMSU-B & Ts','AMUS-B' and 'MODL' options., which are defined to as -999.9,
28 ! output argument list:
30 !   em_vector[1] and [2]  -  emissivity at two polarizations.
31 !       seaice_type             -  snow type (reference [2])
33 ! remarks:
35 ! attributes:
36 !   language: f90
37 !   machine:  ibm rs/6000 sp
39 !$$$
41 !  use kinds, only: r_kind,i_kind
42   implicit none
43   
44   integer(i_kind),parameter:: ncand = 16,nch =5
45   integer(i_kind):: ich,ichmin,ichmax,i,j,k,s,seaice_type
46   real(r_kind)   :: dem,demmin0
47   real(r_kind)   :: em(ncand,nch)
48   real(r_kind)   :: frequency,freq(nch),emissivity,discriminator(*)
49   real(r_kind)   :: cor_factor,adjust_check,kratio, bconst
50   data  freq/23.8_r_kind, 31.4_r_kind, 50.3_r_kind,89.0_r_kind, 150.0_r_kind/
51   
52 ! Estimate sea ice emissivity at a required frequency
53   seaice_type = -999   ! temporal assumption
54   do i = 2, nch
55      if(frequency < freq(1))   exit
56      if(frequency >= freq(nch)) exit
57      if(frequency < freq(i)) then
58         emissivity = discriminator(i-1) + (discriminator(i)-discriminator(i-1))* &
59              (frequency - freq(i-1))/(freq(i) - freq(i-1))
60         exit
61      end if
62      
63   end do
64   
65   
66   if(frequency < freq(1))    emissivity = discriminator(1)
67   
68 ! Assume emissivity = constant at frequencies >= 150 GHz
69   if (frequency >= freq(nch)) emissivity = discriminator(nch)
70   
71 end subroutine siem_interpolate