1 subroutine siem_interpolate(frequency,discriminator,emissivity,seaice_type)
3 !$$$ subprogram documentation block
7 ! prgmmr:Banghua Yan org: nesdis date: 2004-03-01
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])
37 ! machine: ibm rs/6000 sp
41 ! use kinds, only: r_kind,i_kind
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/
52 ! Estimate sea ice emissivity at a required frequency
53 seaice_type = -999 ! temporal assumption
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))
66 if(frequency < freq(1)) emissivity = discriminator(1)
68 ! Assume emissivity = constant at frequencies >= 150 GHz
69 if (frequency >= freq(nch)) emissivity = discriminator(nch)
71 end subroutine siem_interpolate