diff -urN WRF-3.x.orig/phys/module_cu_tiedtke.F WRF-3.x/phys/module_cu_tiedtke.F --- WRF-3.x.orig/phys/module_cu_tiedtke.F 2017-08-17 01:21:45.000000000 +0000 +++ WRF-3.x/phys/module_cu_tiedtke.F 2022-09-20 06:22:36.873839888 +0000 @@ -2935,7 +2935,8 @@ zzmzk = -(pgeoh(jl,ikh)-pgeoh(jl,kk))*zrg ztmzk = -(pgeoh(jl,ikh)-pgeoh(jl,ikt))*zrg arg = 3.1415*(zzmzk/ztmzk)*0.5 - zorgde = tan(arg)*3.1415*0.5/ztmzk + ! zorgde = tan(arg)*3.1415*0.5/ztmzk + zorgde = real(tan(dble(arg))*3.1415*0.5/dble(ztmzk)) zdprho = (paph(jl,kk+1)-paph(jl,kk))*(zrg*zrrho) zodetr(jl,kk) = min(zorgde,1.e-3)*pmfu(jl,kk+1)*zdprho end if diff -urN WRF-3.x.orig/phys/module_sf_myjsfc.F WRF-3.x/phys/module_sf_myjsfc.F --- WRF-3.x.orig/phys/module_sf_myjsfc.F 2017-08-17 01:21:45.000000000 +0000 +++ WRF-3.x/phys/module_sf_myjsfc.F 2022-09-20 07:20:30.226770341 +0000 @@ -1085,6 +1085,7 @@ ! INTEGER :: MPI_INTEGER,MPI_MAX ! REAL :: SM,X,ZETA1,ZETA2,ZRNG1,ZRNG2 + DOUBLE PRECISION:: X2 ! REAL :: PIHF=3.1415926/2.,EPS=1.E-6 !---------------------------------------------------------------------- @@ -1206,7 +1207,9 @@ !---------------------------------------------------------------------- X=SQRT(SQRT(1.-16.*ZETA1)) ! - PSIM1(K)=-2.*LOG((X+1.)/2.)-LOG((X*X+1.)/2.)+2.*ATAN(X)-PIHF + ! PSIM1(K)=-2.*LOG((X+1.)/2.)-LOG((X*X+1.)/2.)+2.*ATAN(X)-PIHF + X2 = dble(X) + PSIM1(K)=real(-2.d0 * log((X2+1.d0)/2.d0)-log((X2*X2+1.d0)/2.d0)+2.d0*atan(X2)-dble(PIHF)) PSIH1(K)=-2.*LOG((X*X+1.)/2.) ! !---------------------------------------------------------------------- @@ -1243,7 +1246,9 @@ ! X=SQRT(SQRT(1.-16.*ZETA2)) ! - PSIM2(K)=-2.*LOG((X+1.)/2.)-LOG((X*X+1.)/2.)+2.*ATAN(X)-PIHF + ! PSIM2(K)=-2.*LOG((X+1.)/2.)-LOG((X*X+1.)/2.)+2.*ATAN(X)-PIHF + X2 = dble(X) + PSIM2(K)=real(-2.d0*LOG((X2+1.d0)/2.d0)-LOG((X2*X2+1.d0)/2.d0)+2.*ATAN(X2)-dble(PIHF)) PSIH2(K)=-2.*LOG((X*X+1.)/2.) !---------------------------------------------------------------------- !*** STABLE RANGE