38   '$Id: Fresnel.f90 60152 2015-08-13 19:19:13Z paul.vandelst@noaa.gov $'    39   REAL(fp), 
PARAMETER :: 
zero   = 0.0_fp
    40   REAL(fp), 
PARAMETER :: 
point5 = 0.5_fp
    41   REAL(fp), 
PARAMETER :: 
one    = 1.0_fp
    42   REAL(fp), 
PARAMETER :: 
two    = 2.0_fp
   128     COMPLEX(fp),     
INTENT(IN)     :: permittivity
   129     REAL(fp),        
INTENT(IN)     :: cos_i
   130     REAL(fp),        
INTENT(OUT)    :: rv
   131     REAL(fp),        
INTENT(OUT)    :: rh
   138     ivar%z1 = sqrt(permittivity - 
one + (cos_i*cos_i))
   139     ivar%z2 = permittivity * cos_i
   140     zrh = (cos_i  -ivar%z1) / (cos_i  +ivar%z1)
   141     zrv = (ivar%z2-ivar%z1) / (ivar%z2+ivar%z1)
   144     ivar%rzRv = 
REAL(zrv,
fp)
   145     ivar%izRv = aimag(zrv)
   146     rv = ivar%rzRv**2 + ivar%izRv**2
   149     ivar%rzRh = 
REAL(zrh,
fp)
   150     ivar%izRh = aimag(zrh)
   151     rh = ivar%rzRh**2 + ivar%izRh**2
   223     COMPLEX(fp),     
INTENT(IN)  :: permittivity_tl
   224     REAL(fp),        
INTENT(IN)  :: cos_i
   225     REAL(fp),        
INTENT(OUT) :: rv_tl
   226     REAL(fp),        
INTENT(OUT) :: rh_tl
   229     COMPLEX(fp) :: z1_tl, z2_tl
   230     COMPLEX(fp) :: zrv_tl           
   231     COMPLEX(fp) :: zrh_tl           
   232     REAL(fp)    :: rzrv_tl,izrv_tl  
   233     REAL(fp)    :: rzrh_tl,izrh_tl  
   236     z1_tl = 
point5 * permittivity_tl / ivar%z1
   237     z2_tl = cos_i * permittivity_tl
   238     zrh_tl = -
two * cos_i * z1_tl / (cos_i+ivar%z1)**2
   239     zrv_tl =  
two * (ivar%z1*z2_tl - ivar%z2*z1_tl) / (ivar%z2+ivar%z1)**2
   242     rzrv_tl = 
REAL(zrv_tl,
fp)
   243     izrv_tl = aimag(zrv_tl)
   244     rv_tl = 
two * (ivar%rzRv*rzrv_tl + ivar%izRv*izrv_tl)
   247     rzrh_tl = 
REAL(zrh_tl,
fp)
   248     izrh_tl = aimag(zrh_tl)
   249     rh_tl = 
two * (ivar%rzRh*rzrh_tl + ivar%izRh*izrh_tl)
   322                                       permittivity_AD, &  ! Output
   325     REAL(fp),        
INTENT(IN OUT) :: rv_ad
   326     REAL(fp),        
INTENT(IN OUT) :: rh_ad
   327     REAL(fp),        
INTENT(IN)     :: cos_i
   328     COMPLEX(fp),     
INTENT(IN OUT) :: permittivity_ad
   331     COMPLEX(fp) :: z1_ad, z2_ad
   332     COMPLEX(fp) :: zrv_ad           
   333     COMPLEX(fp) :: zrh_ad           
   334     REAL(fp)    :: rzrv_ad,izrv_ad  
   335     REAL(fp)    :: rzrh_ad,izrh_ad  
   339     izrh_ad = 
two*ivar%izRh*rh_ad
   340     rzrh_ad = 
two*ivar%rzRh*rh_ad
   342     zrh_ad = cmplx(rzrh_ad, -izrh_ad, 
fp)  
   345     izrv_ad = 
two*ivar%izRv*rv_ad 
   346     rzrv_ad = 
two*ivar%rzRv*rv_ad
   348     zrv_ad = cmplx(rzrv_ad, -izrv_ad, 
fp)  
   351     denom = (ivar%z2+ivar%z1)**2
   352     z1_ad = -
two*ivar%z2*zrv_ad / denom
   353     z2_ad =  
two*ivar%z1*zrv_ad / denom
   356     z1_ad = z1_ad - ( 
two*cos_i*zrh_ad / (cos_i+ivar%z1)**2 )
   359     permittivity_ad = permittivity_ad + conjg(cos_i*z2_ad)
   360     permittivity_ad = permittivity_ad + conjg(
point5*z1_ad/ivar%z1)
 
real(fp), parameter, public zero
integer, parameter, public fp
subroutine, public fresnel_reflectivity_ad(Rv_AD, Rh_AD, cos_i, permittivity_AD, iVar)
real(fp), parameter point5
character(*), parameter module_rcs_id
real(fp), parameter, public one
real(fp), parameter, public two
subroutine, public fresnel_reflectivity(permittivity, cos_i, Rv, Rh, iVar)
subroutine, public fresnel_reflectivity_tl(permittivity_TL, cos_i, Rv_TL, Rh_TL, iVar)