1 subroutine adm_ehv2pem( zlsat0,polar0,pems0, ehorz0,evert0)
2 !$$$ module documentation block
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,
13 ! program history log:
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
31 ! use kinds, only: r_kind,i_kind
32 ! use constants, only: one,zero
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
43 term1 = (one-polar0)*pems0
46 evert0 = term2*psl2 + term1*pcl2
47 ehorz0 = term2*pcl2 + term1*psl2
50 end subroutine adm_ehv2pem