@@ -5227,4 +5227,68 @@ elemental function analytic_sol_del1_whole_atmos_f555_r4(fc,Nmf,delnA,z0,H10,Hc0
5227
5227
del1 = del11+ del12
5228
5228
end function analytic_sol_del1_whole_atmos_f555_r4
5229
5229
5230
+ elemental function analytic_sol_del1_whole_atmos_f555_r8 (fc ,Nmf ,delnA ,z0 ,H10 ,Hc0 ,beta ,d ) result(del1)
5231
+ if defined(__INTEL_COMPILER) && ! defined(__GNUC__)
5232
+ ! dir$ optimize:3
5233
+ ! dir$ attributes code_align : 32 :: analytic_sol_del1_whole_atmos_f555_r8
5234
+ ! dir$ attributes forceinline :: analytic_sol_del1_whole_atmos_f555_r8
5235
+ #endif
5236
+
5237
+ real (kind= dp), intent (in ) :: fc
5238
+ real (kind= dp), intent (in ) :: Nmf
5239
+ real (kind= dp), intent (in ) :: delnA
5240
+ real (kind= dp), intent (in ) :: z0
5241
+ real (kind= dp), intent (in ) :: H10
5242
+ real (kind= dp), intent (in ) :: Hc0
5243
+ real (kind= dp), intent (in ) :: beta
5244
+ real (kind= dp), intent (in ) :: d
5245
+ real (kind= dp) :: del1
5246
+ real (kind= dp), automatic :: del11, del12
5247
+ del11 = analytic_sol_del11_whole_atmos_f559_r8 (delnA,z0,H10,Hc0,beta)
5248
+ del12 = analytic_sol_del12_whole_atmos_f560_r8 (fc,Nmf,z0,H10,Hc0,beta,d)
5249
+ del1 = del11+ del12
5250
+ end function analytic_sol_del1_whole_atmos_f555_r8
5251
+
5252
+ ! Formula: 5.69, page: 108
5253
+ elemental function analytic_sol_del221_whole_atmos_f569_r4 (fc ,Nmf ,z0 ,H10 ,Hc0 ,beta ,d ) result(del221)
5254
+ if defined(__INTEL_COMPILER) && ! defined(__GNUC__)
5255
+ ! dir$ optimize:3
5256
+ ! dir$ attributes code_align : 32 :: analytic_sol_del221_whole_atmos_f569_r4
5257
+ ! dir$ attributes forceinline :: analytic_sol_del221_whole_atmos_f569_r4
5258
+ #endif
5259
+ ! $omp declare simd(analytic_sol_del221_whole_atmos_f569_r4)
5260
+ real (kind= sp), intent (in ) :: fc
5261
+ real (kind= sp), intent (in ) :: Nmf
5262
+ real (kind= sp), intent (in ) :: z0
5263
+ real (kind= sp), intent (in ) :: H10
5264
+ real (kind= sp), intent (in ) :: Hc0
5265
+ real (kind= sp), intent (in ) :: beta
5266
+ real (kind= sp), intent (in ) :: d
5267
+ real (kind= sp) :: del12
5268
+ real (kind= sp), automatic :: delnM, HHc0
5269
+ real (kind= sp), automatic :: HH10, ctgz0, scosz0
5270
+ real (kind= sp), automatic :: rat1, rat2
5271
+ real (kind= sp), automatic :: rat3, rat4
5272
+ real (kind= sp), automatic :: t0, t1
5273
+ real (kind= sp), automatic :: trm1, trm2
5274
+ real (kind= sp), automatic :: trm3, trm4
5275
+ HH10 = H10* H10
5276
+ delnM = compute_delnM_f414_r4 (fc,Nmf)
5277
+ ctgz0 = 1.0_sp / tan (z0)
5278
+ t0 = cos (z0)
5279
+ scosz0= t0* t0
5280
+ rat1 = (Hc0- H10)/ d
5281
+ HHc0 = Hc0* Hc0
5282
+ rat2 = 1.0_sp + (H10/ d)
5283
+ rat3 = 1.0_sp + (H10/ Hc0)
5284
+ t0 = HHc0+ Hc0* H10+ HH10
5285
+ rat4 = 1.0_sp + ((Hc0+ H10)/ d)
5286
+ t1 = 2.0_sp / (3.0_sp * Hc0* d)
5287
+ trm1 = - delnM* (ctgz0/ scosz0)* rat1
5288
+ trm2 = 2.0_sp * rat1
5289
+ trm3 = rat3* rat4
5290
+ trm4 = t1* t0
5291
+ del12 = trm1* trm2- trm3+ trm4
5292
+ end function analytic_sol_del221_whole_atmos_f569_r4
5293
+
5230
5294
end module emw_refraction
0 commit comments