@@ -4998,6 +4998,39 @@ elemental function analytic_sol_L2_whole_atmosphere_f552_r8(fc,Nmf,beta,R0,delnA
4998
4998
z0,H0,H1,H2,Hc)
4999
4999
L2 = L21+ L22
5000
5000
end function analytic_sol_L2_whole_atmosphere_f552_r8
5001
+
5002
+ ! Formula: 5.43, page: 104
5003
+ elemental function refraction_angle_whole_atmos_vw5cm3m_f543_r4 (na ,nc ,fc ,Nmf ,beta ,R0 ,delnA , &
5004
+ z0 ,H0 ,H1 ,H2 ,Hc ) result(alpha)
5005
+ if defined(__INTEL_COMPILER) && ! defined(__GNUC__)
5006
+ ! dir$ optimize:3
5007
+ ! dir$ attributes code_align : 32 :: analytic_sol_L2_whole_atmosphere_f552_r4
5008
+ ! dir$ attributes forceinline :: analytic_sol_L2_whole_atmosphere_f552_r4
5009
+ #endif
5010
+ real (kind= sp), intent (in ) :: na
5011
+ real (kind= sp), intent (in ) :: nc
5012
+ real (kind= sp), intent (in ) :: fc
5013
+ real (kind= sp), intent (in ) :: Nmf
5014
+ real (kind= sp), intent (in ) :: beta
5015
+ real (kind= sp), intent (in ) :: R0
5016
+ real (kind= sp), intent (in ) :: delnA
5017
+ real (kind= sp), intent (in ) :: z0
5018
+ real (kind= sp), intent (in ) :: H0
5019
+ real (kind= sp), intent (in ) :: H1
5020
+ real (kind= sp), intent (in ) :: H2
5021
+ real (kind= sp), intent (in ) :: Hc
5022
+ real (kind= sp) :: alpha
5023
+ real (kind= sp), automatic :: H10, ctgz0
5024
+ real (kind= sp), automatic :: L1, L2
5025
+ real (kind= sp), automatic :: L
5026
+ H10 = H1- H0
5027
+ ctgz0 = 1.0_sp / tan (z0)
5028
+ L1 = analytic_sol_L1_whole_atmosphere_f548_r4 (beta,R0,delnA,z0,H10)
5029
+ L2 = analytic_sol_L2_whole_atmosphere_f552_r4 (fc,Nmf,beta,R0,delnA, &
5030
+ z0,H0,H1,H2,Hc)
5031
+ L = L1+ L2
5032
+ alpha = - log (na/ nc)* ctgz0+ L
5033
+ end function refraction_angle_whole_atmos_vw5cm3m_f543_r4
5001
5034
5002
5035
5003
5036
0 commit comments