updated top-level README and version_decl for V4.5 (#1847)
[WRF.git] / var / da / da_radiance / adm_ehv2pem.inc
blob23ad73a77c7f2db4dae03ad8bd019f6196c0765a
1 subroutine adm_ehv2pem( zlsat0,polar0,pems0, ehorz0,evert0)
2 !$$$   module documentation block
3 !                .      .    .                                       .
4 ! module: adm_ehv2pem  calculate Adjoint of combining V and H.pol emissivity
5 !   prgmmr: okamoto          org: np23                date: 2004-08-06
7 ! abstract:  calculate Adjoint of combine vertical and horizontal
8 !            polarized emissivity adjoint.
9 !            effective for cross-track scan type sensor such as AMSU
10 !            In contrast, for ssm/i, pems(V)=evert0, pems(H)=ehorz0,
11 !            as they are
13 ! program history log:
14 !   2004-08-06  okamoto
16 !   input argument list:
17 !     zlsat0 - satellite look angle in radians
18 !     polar  - channel polarization (0=vertical, 1=horizontal, or
19 !                                      0 to 1=mix of V and H)
20 !     pems0  - surface emissivity adjoint at obs location
22 !   output argument list:
23 !     ehorz0 - partial derivative of combined emissivity with respect to emissivity at horizontal polarization
24 !     evert0 - partial derivative of combined emissivity with respect to emissivity at vertical polarization
26 ! attributes:
27 !   language: cft77
28 !   machine:  IBM sp
30 !$$$
31 !  use kinds, only: r_kind,i_kind
32 !  use constants, only: one,zero
33   implicit none
35    real(r_kind),intent(in) :: zlsat0,polar0, pems0
36    real(r_kind),intent(out):: ehorz0,evert0
38    real(r_kind):: pcl2,psl2,term1,term2
40     pcl2=cos(zlsat0)**2
41     psl2=sin(zlsat0)**2
43     term1 = (one-polar0)*pems0
44     term2 = polar0*pems0
46     evert0 = term2*psl2 + term1*pcl2
47     ehorz0 = term2*pcl2 + term1*psl2
49    return
50  end subroutine adm_ehv2pem