@@ -5095,7 +5095,74 @@ elemental function analytic_sol_del11_whole_atmos_f559_r4(delnA,z0,H10,Hc0,beta)
5095
5095
del11 = trm1* trm2
5096
5096
end function analytic_sol_del11_whole_atmos_f559_r4
5097
5097
5098
+ elemental function analytic_sol_del11_whole_atmos_f559_r8 (delnA ,z0 ,H10 ,Hc0 ,beta ) result(del11)
5099
+ if defined(__INTEL_COMPILER) && ! defined(__GNUC__)
5100
+ ! dir$ optimize:3
5101
+ ! dir$ attributes code_align : 32 :: analytic_sol_del11_whole_atmos_f559_r8
5102
+ ! dir$ attributes forceinline :: analytic_sol_del11_whole_atmos_f559_r8
5103
+ #endif
5104
+ ! $omp declare simd(analytic_sol_del11_whole_atmos_f559_r8)
5105
+ real (kind= dp), intent (in ) :: delnA
5106
+ real (kind= dp), intent (in ) :: z0
5107
+ real (kind= dp), intent (in ) :: H10
5108
+ real (kind= dp), intent (in ) :: Hc0
5109
+ real (kind= dp), intent (in ) :: beta
5110
+ real (kind= dp) :: del11
5111
+ real (kind= dp), automatic :: tgz0, H10Hc0
5112
+ real (kind= dp), automatic :: btH10, exp1
5113
+ real (kind= dp), automatic :: btHc0, rat
5114
+ real (kind= dp), automatic :: trm1, trm2
5115
+ real (kind= dp), automatic :: exp2
5116
+ btH10 = beta* H10
5117
+ H10Hc0 = H10/ Hc0
5118
+ tgz0 = tan (z0)
5119
+ btHc0 = beta* Hc0
5120
+ exp1 = exp (- btH10)
5121
+ exp2 = (1.0_dp - exp1)/ btHc0
5122
+ rat = 1.0_dp * (1.0_dp - H10Hc0)
5123
+ trm1 = delnA* tgz0
5124
+ trm2 = rat* exp1- exp2
5125
+ del11 = trm1* trm2
5126
+ end function analytic_sol_del11_whole_atmos_f559_r8
5098
5127
5099
-
5128
+ ! Formula: 5.60, page: 107
5129
+ elemental function analytic_sol_del12_whole_atmos_f560_r4 (fc ,Nmf ,z0 ,H10 ,Hc0 ,beta ,d ) result(del12)
5130
+ if defined(__INTEL_COMPILER) && ! defined(__GNUC__)
5131
+ ! dir$ optimize:3
5132
+ ! dir$ attributes code_align : 32 :: analytic_sol_del12_whole_atmos_f560_r4
5133
+ ! dir$ attributes forceinline :: analytic_sol_del12_whole_atmos_f560_r4
5134
+ #endif
5135
+ ! $omp declare simd(analytic_sol_del12_whole_atmos_f560_r4)
5136
+ real (kind= sp), intent (in ) :: fc
5137
+ real (kind= sp), intent (in ) :: Nmf
5138
+ real (kind= sp), intent (in ) :: z0
5139
+ real (kind= sp), intent (in ) :: H10
5140
+ real (kind= sp), intent (in ) :: Hc0
5141
+ real (kind= sp), intent (in ) :: beta
5142
+ real (kind= sp), intent (in ) :: d
5143
+ real (kind= sp) :: del12
5144
+ real (kind= sp), automatic :: delnM, HHc0
5145
+ real (kind= sp), automatic :: HH10, tgz0
5146
+ real (kind= sp), automatic :: rat1, rat2
5147
+ real (kind= sp), automatic :: rat3, rat4
5148
+ real (kind= sp), automatic :: t0, t1
5149
+ real (kind= sp), automatic :: trm1, trm2
5150
+ real (kind= sp), automatic :: trm3, trm4
5151
+ HH10 = H10* H10
5152
+ delnM = compute_delnM_f414_r4 (fc,Nmf)
5153
+ tgz0 = tan (z0)
5154
+ rat1 = (Hc0- H10)/ d
5155
+ HHc0 = Hc0* Hc0
5156
+ rat2 = 1.0_sp + (H10/ d)
5157
+ rat3 = 1.0_sp + (H10/ Hc0)
5158
+ t0 = HHc0+ Hc0* H10+ HH10
5159
+ rat4 = 1.0_sp + ((Hc0+ H10)/ d)
5160
+ t1 = 2.0_sp / (3.0_sp * Hc0* d)
5161
+ trm1 = delnM* tgz0* rat1
5162
+ trm2 = 2.0_sp * rat1
5163
+ trm3 = rat3* rat4
5164
+ trm4 = t1* t0
5165
+ del12 = trm1* trm2- trm3+ trm4
5166
+ end function analytic_sol_del12_whole_atmos_f560_r4
5100
5167
5101
5168
end module emw_refraction
0 commit comments