diff --git a/physics/PBL/SATMEDMF/satmedmfvdifq.F b/physics/PBL/SATMEDMF/satmedmfvdifq.F index 168ca80d2..5ebb947ac 100644 --- a/physics/PBL/SATMEDMF/satmedmfvdifq.F +++ b/physics/PBL/SATMEDMF/satmedmfvdifq.F @@ -35,7 +35,7 @@ module satmedmfvdifq !! !! Incorporate the TTE-EDMF; if (tte_edmf=.true.), !! TKE-EDMF scheme becomes TTE-EDMF scheme and the variable 'te' -!! is read as TTE; if (tte_edmf=.false.), the variable 'te' is +!! is read as TTE; if (tte_edmf=.false.), the variable 'te' is !! read as TKE, 5/22/2025 !! !! @@ -85,12 +85,12 @@ end subroutine satmedmfvdifq_init !! (mfpbltq.f), is represented using a mass flux approach (Siebesma et al.(2007) \cite Siebesma_2007 ). !! -# A mass-flux approach is also used to represent the stratocumulus-top-induced turbulence !! (mfscuq.f). -!! \section detail_satmedmfvidfq GFS satmedmfvdifq Detailed Algorithm +!! \section detail_satmedmfvidfq GFS satmedmfvdifq Detailed Algorithm subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntrw, & & ntiw,ntke,grav,pi,rd,cp,rv,hvap,hfus,fv,eps,epsm1, & !The following three variables are for SA-3D-TKE & def_1,def_2,def_3,sa3dtke,dku3d_h,dku3d_e, & - & dv,du,tdt,rtg,u1,v1,t1,q1,usfco,vsfco,icplocn2atm, & + & dv,du,tdt,rtg,u1,v1,t1,q1,usfco,vsfco,use_oceanuv, & & swh,hlw,xmu,garea,zvfun,sigmaf, & & psk,rbsoil,zorl,u10m,v10m,fm,fh, & & tsea,heat,evap,stress,spd1,kpbl, & @@ -98,12 +98,12 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntrw, & & dspheat,dusfc,dvsfc,dtsfc,dqsfc,hpbl,dkt,dku,tkeh, & & kinver,xkzm_m,xkzm_h,xkzm_s,dspfac,bl_upfr,bl_dnfr, & & rlmx,elmx,sfc_rlm,tc_pbl,use_lpt, & -!IVAI: canopy inputs from AQM +!IVAI: canopy inputs from AQM & do_canopy, cplaqm, claie, cfch, cfrt, cclu, cpopu, & !IVAI & ntqv,dtend,dtidx,index_of_temperature,index_of_x_wind, & & index_of_y_wind,index_of_process_pbl,gen_tend,ldiag3d, & - & errmsg,errflg) + & errmsg,errflg) !IVAI: aux arrays ! & naux2d,naux3d,aux2d,aux3d) @@ -158,7 +158,7 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntrw, & & dtend integer, intent(in) :: dtidx(:,:), index_of_temperature, & & index_of_x_wind, index_of_y_wind, index_of_process_pbl - integer, intent(in) :: icplocn2atm + logical, intent(in) :: use_oceanuv real(kind=kind_phys), intent(out) :: & & dusfc(:), dvsfc(:), & & dtsfc(:), dqsfc(:), & @@ -192,7 +192,7 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntrw, & integer lcld(im),kcld(im),krad(im),mrad(im) integer kx1(im), kb1(im), kpblx(im) ! - real(kind=kind_phys) te(im,km), tei(im,km-1), tke(im,km), + real(kind=kind_phys) te(im,km), tei(im,km-1), tke(im,km), & tteh(im,km), tesq(im,km-1),e2(im,0:km) ! real(kind=kind_phys) theta(im,km),thvx(im,km), thlvx(im,km), @@ -227,7 +227,7 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntrw, & ! real(kind=kind_phys) elm(im,km), ele(im,km), & ckz(im,km), chz(im,km), - & diss(im,km-1),prod(im,km-1), + & diss(im,km-1),prod(im,km-1), & bf(im,km-1), shr2(im,km-1), wush(im,km), & xlamue(im,km-1), xlamde(im,km-1), & gotvx(im,km), rlam(im,km-1) @@ -317,7 +317,7 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntrw, & real(kind=kind_phys) h1 real(kind=kind_phys) bfac, mffac - + real(kind=kind_phys) qice(im,km),qliq(im,km) !PCC_CANOPY------------------------------------ @@ -438,7 +438,7 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntrw, & km1 = km - 1 kmpbl = km / 2 kmscu = km / 2 -!> - Compute physical height of the layer centers and interfaces from +!> - Compute physical height of the layer centers and interfaces from !! the geopotential height (\p zi and \p zl) do k=1,km do i=1,im @@ -466,7 +466,7 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntrw, & do i=1,im gdx(i) = sqrt(garea(i)) enddo -!> - Initialize tke value at vertical layer centers and interfaces +!> - Initialize tke value at vertical layer centers and interfaces !! from tracer (\p tke and \p tkeh) do k=1,km do i=1,im @@ -583,11 +583,11 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntrw, & kcld(i) = km1 endif enddo -! +! !> - Compute a function for green vegetation fraction and surface roughness. !! Entrainment rate in updraft is a function of vegetation fraction and surface !! roughness length -! +! do i = 1,im tem = (sigmaf(i) - vegflo) / (vegfup - vegflo) tem = min(max(tem, 0.), 1.) @@ -598,7 +598,7 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntrw, & enddo ! !> - Compute \f$\theta\f$(theta), and \f$q_l\f$(qlx), \f$\theta_e\f$(thetae), -!! \f$\theta_v\f$(thvx),\f$\theta_{l,v}\f$ (thlvx) including ice water +!! \f$\theta_v\f$(thvx),\f$\theta_{l,v}\f$ (thlvx) including ice water do k=1,km do i=1,im pix(i,k) = psk(i) / prslk(i,k) @@ -637,7 +637,7 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntrw, & enddo enddo ! -!> - Compute an empirical cloud fraction based on +!> - Compute an empirical cloud fraction based on !! Xu and Randall (1996) \cite xu_and_randall_1996 do k = 1, km do i = 1, im @@ -688,7 +688,7 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntrw, & ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! -!> - Initialize diffusion coefficients to 0 and calculate the total +!> - Initialize diffusion coefficients to 0 and calculate the total !! radiative heating rate (dku, dkt, radx) do k=1,km do i=1,im @@ -705,7 +705,7 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntrw, & enddo !> - Compute stable/unstable PBL flag (pblflg) based on the total !! surface energy flux (\e false if the total surface energy flux -!! is into the surface) +!! is into the surface) do i = 1,im sflux(i) = heat(i) + evap(i)*fv*theta(i,1) if(.not.sfcflg(i) .or. sflux(i) <= 0.) pblflg(i)=.false. @@ -716,12 +716,12 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntrw, & !! - Compute critical bulk Richardson number (\f$Rb_{cr}\f$) (crb) !! - For the unstable PBL, crb is a constant (0.25) !! - For the stable boundary layer (SBL), \f$Rb_{cr}\f$ varies -!! with the surface Rossby number, \f$R_{0}\f$, as given by +!! with the surface Rossby number, \f$R_{0}\f$, as given by !! Vickers and Mahrt (2004) \cite Vickers_2004 !! \f[ !! Rb_{cr}=0.16(10^{-7}R_{0})^{-0.18} !! \f] -!! \f[ +!! \f[ !! R_{0}=\frac{U_{10}}{f_{0}z_{0}} !! \f] !! where \f$U_{10}\f$ is the wind speed at 10m above the ground surface, @@ -753,7 +753,7 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntrw, & ustar(i) = sqrt(stress(i)) enddo ! -!> - Compute buoyancy \f$\frac{\partial \theta_v}{\partial z}\f$ (bf) +!> - Compute buoyancy \f$\frac{\partial \theta_v}{\partial z}\f$ (bf) !! and the wind shear squared (shr2) ! do k = 1, km1 @@ -980,7 +980,7 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntrw, & ! !> - The \f$z/L\f$ (zol) is used as the stability criterion for the PBL.Currently, !! strong unstable (convective) PBL for \f$z/L < -0.02\f$ and weakly and moderately -!! unstable PBL for \f$0>z/L>-0.02\f$ +!! unstable PBL for \f$0>z/L>-0.02\f$ !> - Compute the velocity scale \f$w_s\f$ (wscale) (eqn 22 of Han et al. 2019). It !! is represented by the value scaled at the top of the surface layer: !! \f[ @@ -1172,11 +1172,11 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntrw, & do i = 1, im if(scuflg(i) .and. kcld(i)==km1) scuflg(i)=.false. enddo -!> - Starting at the PBL top and going downward, if the level is less +!> - Starting at the PBL top and going downward, if the level is less !! than the cloud top, find the level of the minimum radiative heating !! rate wihin the cloud. If the level of the minimum is the lowest model !! level or the minimum radiative heating rate is positive, then set -!! scuflg to F. +!! scuflg to F. do i = 1, im flg(i)=scuflg(i) enddo @@ -1202,7 +1202,7 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntrw, & !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !> ## Compute components for mass flux mixing by large thermals !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!> - If the PBL is convective, the updraft properties are initialized +!> - If the PBL is convective, the updraft properties are initialized !! to be the same as the state variables. do k = 1, km do i = 1, im @@ -1236,7 +1236,7 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntrw, & & pcnvflg,zl,zm,q1,t1,u1,v1,plyr,pix,thlx,thvx, & gdx,hpbl,kpbl,vpert,buou,wush,tkemean,vez0fun,xmf, & tcko,qcko,ucko,vcko,xlamue,bl_upfr) -!> - Call mfscuq(), which is a new mass-flux parameterization for +!> - Call mfscuq(), which is a new mass-flux parameterization for !! stratocumulus-top-induced turbulence mixing. For details of the mfscuq subroutine, step into its documentation ::mfscuq call mfscuq(im,im,km,kmscu,ntcw,ntrac1,dt2, & scuflg,zl,zm,q1,t1,u1,v1,plyr,pix, @@ -1389,7 +1389,7 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntrw, & !! l_2=min(l_{up},l_{down}) !!\f] !! and dissipation length scale \f$l_d\f$ is given by: -!!\f[ +!!\f[ !! l_d=(l_{up}l_{down})^{1/2} !!\f] !! where \f$l_{up}\f$ and \f$l_{down}\f$ are the distances that a parcel @@ -1413,7 +1413,7 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntrw, & ! enddo enddo -!> - Compute the surface layer length scale (\f$l_1\f$) following +!> - Compute the surface layer length scale (\f$l_1\f$) following !! Nakanishi (2001) \cite Nakanish_2001 (eqn 9 of Han et al.(2019) \cite Han_2019) do k = 1, km1 do i = 1, im @@ -1581,7 +1581,7 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntrw, & enddo enddo ! -! eddy diffusivities at model interface (zm level) in LES scale +! eddy diffusivities at model interface (zm level) in LES scale ! do k = 1, km1 do i = 1, im @@ -1614,7 +1614,7 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntrw, & do k = 2, kmpbl do i = 1, im if(tke(i,k) > tkemax(i)) then - tkemax(i) = tke(i,k) + tkemax(i) = tke(i,k) ktkemax(i) = k endif enddo @@ -1673,7 +1673,7 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntrw, & enddo enddo ! -! eddy diffusivities at model layer (zl level) in LES scale +! eddy diffusivities at model layer (zl level) in LES scale ! do k = 1, km1 do i = 1, im @@ -1717,7 +1717,7 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntrw, & !PCC_CANOPY------------------------------------ kount=0 !IVAI - if (do_canopy .and. cplaqm) then + if (do_canopy .and. cplaqm) then !IVAI ! print*, 'SATMEDMFVDIFQ_RUN: CLAIE = ', claie(:) @@ -1774,7 +1774,7 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntrw, & ! & .OR. MAX(0.0, 1.0 - XCANOPYFRT) .GT. 0.5 ! & .OR. POPU .GT. 10000.0 ! & .OR. EXP(-0.5*XCANOPYLAI*XCANOPYCLU).GT. 0.45 -! & .AND. FCH .LT. 18.0 ) THEN +! & .AND. FCH .LT. 18.0 ) THEN dkt(i,k)= dkt(i,k) dkq(i,k)= dkq(i,k) @@ -1811,9 +1811,9 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntrw, & IF ( ZCAN/FCH .GT. 1.25 ) THEN !SIGMACAN = Eulerian vertical velocity variance SIGMACAN = 1.25*ustar(i) END IF - IF ( ZCAN/FCH .GE. 0.175 + IF ( ZCAN/FCH .GE. 0.175 & .AND. ZCAN/FCH .LE. 1.25 ) THEN - SIGMACAN = ustar(i) * ( 0.75 + + SIGMACAN = ustar(i) * ( 0.75 + & (0.5 * COS((PI/1.06818) * & (1.25 - (ZCAN/FCH)))) ) END IF @@ -1825,9 +1825,9 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntrw, & IF ( ZCAN/FCH .GT. 1.25 ) THEN SIGMACAN = 1.0*ustar(i) END IF - IF ( ZCAN/FCH .GE. 0.175 + IF ( ZCAN/FCH .GE. 0.175 & .AND. ZCAN/FCH .LE. 1.25 ) THEN - SIGMACAN = ustar(i) * ( 0.625 + + SIGMACAN = ustar(i) * ( 0.625 + & (0.375* COS((PI/1.06818) * & (1.25 - (ZCAN/FCH)))) ) END IF @@ -1839,12 +1839,12 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntrw, & IF ( ZCAN/FCH .GT. 1.25 ) THEN SIGMACAN = 0.25*(4.375 - (3.75*HOL))*ustar(i) END IF - IF ( ZCAN/FCH .GE. 0.175 + IF ( ZCAN/FCH .GE. 0.175 & .AND. ZCAN/FCH .LE. 1.25 ) THEN RRCAN=4.375-(3.75*HOL) AACAN=(0.125*RRCAN) + 0.125 BBCAN=(0.125*RRCAN) - 0.125 - SIGMACAN = ustar(i) * ( AACAN + + SIGMACAN = ustar(i) * ( AACAN + & (BBCAN * COS((PI/1.06818) * & (1.25 - (ZCAN/FCH)))) ) END IF @@ -2051,7 +2051,7 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntrw, & enddo ! !---------------------------------------------------------------------- -!> - First predict te due to te production & dissipation(diss) +!> - First predict te due to te production & dissipation(diss) ! if(sa3dtke) then !The following is for SA-3D-TKE @@ -3051,16 +3051,18 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntrw, & ! dvsfc(i) = dvsfc(i)+conw*del(i,k)*vtend enddo enddo - do i = 1,im - if(icplocn2atm == 0) then - dusfc(i) = -1.*rho_a(i)*stress(i)*u1(i,1)/spd1(i) - dvsfc(i) = -1.*rho_a(i)*stress(i)*v1(i,1)/spd1(i) - else if (icplocn2atm ==1) then + if (use_oceanuv) then + do i = 1,im spd1_m=sqrt( (u1(i,1)-usfco(i))**2+(v1(i,1)-vsfco(i))**2 ) dusfc(i) = -1.*rho_a(i)*stress(i)*(u1(i,1)-usfco(i))/spd1_m dvsfc(i) = -1.*rho_a(i)*stress(i)*(v1(i,1)-vsfco(i))/spd1_m - endif - enddo + enddo + else + do i = 1,im + dusfc(i) = -1.*rho_a(i)*stress(i)*u1(i,1)/spd1(i) + dvsfc(i) = -1.*rho_a(i)*stress(i)*v1(i,1)/spd1(i) + enddo + endif ! if(ldiag3d .and. .not. gen_tend) then idtend = dtidx(index_of_x_wind,index_of_process_pbl) diff --git a/physics/PBL/SATMEDMF/satmedmfvdifq.meta b/physics/PBL/SATMEDMF/satmedmfvdifq.meta index 533682c3e..002389307 100644 --- a/physics/PBL/SATMEDMF/satmedmfvdifq.meta +++ b/physics/PBL/SATMEDMF/satmedmfvdifq.meta @@ -241,12 +241,12 @@ type = real kind = kind_phys intent = in -[icplocn2atm] - standard_name = control_for_air_sea_flux_computation_over_water +[use_oceanuv] + standard_name = do_air_sea_flux_computation_over_water long_name = air-sea flux option - units = 1 + units = flag dimensions = () - type = integer + type = logical intent = in [t1] standard_name = air_temperature diff --git a/physics/SFC_Layer/UFS/sfc_diag.f b/physics/SFC_Layer/UFS/sfc_diag.f index 66ec95c50..4c019f433 100644 --- a/physics/SFC_Layer/UFS/sfc_diag.f +++ b/physics/SFC_Layer/UFS/sfc_diag.f @@ -14,7 +14,7 @@ subroutine sfc_diag_run (im,xlat_d,xlon_d, & & lsm,lsm_ruc,grav,cp,eps,epsm1,con_rocp, & & con_karman, & & shflx,cdq,wind, & - & usfco,vsfco,icplocn2atm, & + & usfco,vsfco,use_oceanuv, & & zf,ps,u1,v1,t1,q1,prslki,evap,fm,fh,fm10,fh2, & & ust,tskin,qsurf,thsfc_loc,diag_flux,diag_log, & & use_lake_model,iopt_lake,iopt_lake_clm, & @@ -29,7 +29,7 @@ subroutine sfc_diag_run (im,xlat_d,xlon_d, & ! integer, intent(in) :: im, lsm, lsm_ruc, iopt_lake, iopt_lake_clm logical, intent(in) :: use_lake2m - integer, intent(in) :: icplocn2atm + logical, intent(in) :: use_oceanuv logical, intent(in) :: thsfc_loc ! Flag for reference pot. temp. logical, intent(in) :: diag_flux ! Flag for flux method in 2-m diagnostics logical, intent(in) :: diag_log ! Flag for 2-m log diagnostics under stable conditions @@ -73,7 +73,7 @@ subroutine sfc_diag_run (im,xlat_d,xlon_d, & errflg = 0 !-- - testptlat = 35.3_kind_phys + testptlat = 35.3_kind_phys testptlon = 273.0_kind_phys !-- debug_print = .false. @@ -89,13 +89,14 @@ subroutine sfc_diag_run (im,xlat_d,xlon_d, & do i = 1, im f10m(i) = fm10(i) / fm(i) - if (icplocn2atm ==0) then - u10m(i) = f10m(i) * u1(i) - v10m(i) = f10m(i) * v1(i) - else if (icplocn2atm ==1) then + if (use_oceanuv) then u10m(i) = usfco(i)+f10m(i) * (u1(i)-usfco(i)) v10m(i) = vsfco(i)+f10m(i) * (v1(i)-vsfco(i)) + else + u10m(i) = f10m(i) * u1(i) + v10m(i) = f10m(i) * v1(i) endif + have_2m = use_lake_model(i)>0 .and. use_lake2m .and. & & iopt_lake==iopt_lake_clm if(have_2m) then @@ -181,9 +182,9 @@ subroutine sfc_diag_run (im,xlat_d,xlon_d, & !no alternatives (yet) for unstable conditions Q2_alt = q2m(i) ENDIF - !-- Note: use of alternative diagnostics will make + !-- Note: use of alternative diagnostics will make ! it cooler and drier with stable stratification - t2m(i) = T2_alt + t2m(i) = T2_alt q2m(i) = Q2_alt endif ! log method for stable regime @@ -216,7 +217,7 @@ subroutine sfc_diag_run (im,xlat_d,xlon_d, & dpt2m(i) = 243.5_kind_dbl_prec/( ( 17.67_kind_dbl_prec / & & log(tem/611.2_kind_dbl_prec) ) - one) + con_t0c dpt2m(i) = min(dpt2m(i),t2m(i)) - + if (debug_print) then !-- diagnostics for a test point with known lat/lon diff --git a/physics/SFC_Layer/UFS/sfc_diag.meta b/physics/SFC_Layer/UFS/sfc_diag.meta index 9ec3213d3..200473b99 100644 --- a/physics/SFC_Layer/UFS/sfc_diag.meta +++ b/physics/SFC_Layer/UFS/sfc_diag.meta @@ -140,12 +140,12 @@ type = real kind = kind_phys intent = in -[icplocn2atm] - standard_name = control_for_air_sea_flux_computation_over_water +[use_oceanuv] + standard_name = do_air_sea_flux_computation_over_water long_name = air-sea flux option - units = 1 + units = flag dimensions = () - type = integer + type = logical intent = in [t1] standard_name = air_temperature_at_surface_adjacent_layer diff --git a/physics/SFC_Layer/UFS/sfc_diff.f b/physics/SFC_Layer/UFS/sfc_diff.f index 3e09651d1..1087fa942 100644 --- a/physics/SFC_Layer/UFS/sfc_diff.f +++ b/physics/SFC_Layer/UFS/sfc_diff.f @@ -62,7 +62,7 @@ subroutine sfc_diff_run (im,rvrdm1,eps,epsm1,grav, & !intent(in) & flag_iter,redrag, & !intent(in) & flag_lakefreeze,lakefrac,fice, & !intent(in) & u10m,v10m,sfc_z0_type, & !hafs,z0 type !intent(in) - & u1,v1,usfco,vsfco,icplocn2atm, & + & u1,v1,usfco,vsfco,use_oceanuv, & & wet,dry,icy, & !intent(in) & thsfc_loc, & !intent(in) & tskin_wat, tskin_lnd, tskin_ice, & !intent(in) @@ -87,13 +87,13 @@ subroutine sfc_diff_run (im,rvrdm1,eps,epsm1,grav, & !intent(in) integer, parameter :: kp = kind_phys integer, intent(in) :: im, ivegsrc integer, intent(in) :: sfc_z0_type ! option for calculating surface roughness length over ocean - integer, intent(in) :: icplocn2atm ! option for including ocean current in the computation of flux + logical, intent(in) :: use_oceanuv ! option for including ocean current in the computation of flux integer, dimension(:), intent(in) :: vegtype logical, intent(in) :: redrag ! reduced drag coeff. flag for high wind over sea (j.han) logical, dimension(:), intent(in) :: flag_iter, dry, icy - logical, dimension(:), intent(in) :: flag_lakefreeze + logical, dimension(:), intent(in) :: flag_lakefreeze logical, dimension(:), intent(inout) :: wet logical, intent(in) :: thsfc_loc ! Flag for reference pressure in theta calculation @@ -298,7 +298,7 @@ subroutine sfc_diff_run (im,rvrdm1,eps,epsm1,grav, & !intent(in) tvs = half * (tsurf_ice(i)+tskin_ice(i)) * virtfac else ! Use potential temperature referenced to 1000 hPa tvs = half * (tsurf_ice(i)+tskin_ice(i))/prsik1(i) - & * virtfac + & * virtfac endif z0max = max(zmin, min(0.01_kp * z0rl_ice(i), z1(i))) @@ -348,7 +348,7 @@ subroutine sfc_diff_run (im,rvrdm1,eps,epsm1,grav, & !intent(in) ! the stuff now put into "stability" if (wet(i)) then ! Some open ocean - + zvfun(i) = zero if(thsfc_loc) then ! Use local potential temperature @@ -358,12 +358,12 @@ subroutine sfc_diff_run (im,rvrdm1,eps,epsm1,grav, & !intent(in) & * virtfac endif - if (icplocn2atm == 0) then + if (use_oceanuv) then + wind10m=sqrt((u10m(i)-usfco(i))**2+(v10m(i)-vsfco(i))**2) + windrel=sqrt((u1(i)-usfco(i))**2+(v1(i)-vsfco(i))**2) + else wind10m=sqrt(u10m(i)*u10m(i)+v10m(i)*v10m(i)) windrel=wind(i) - else if (icplocn2atm ==1) then - wind10m=sqrt((u10m(i)-usfco(i))**2+(v10m(i)-vsfco(i))**2) - windrel=sqrt((u1(i)-usfco(i))**2+(v1(i)-vsfco(i))**2) endif z0 = 0.01_kp * z0rl_wat(i) @@ -499,8 +499,8 @@ subroutine stability & z1i = one / z1 ! -! set background diffusivities with one for gdx >= xkgdx and -! as a function of horizontal grid size for gdx < xkgdx +! set background diffusivities with one for gdx >= xkgdx and +! as a function of horizontal grid size for gdx < xkgdx ! (i.e., gdx/xkgdx for gdx < xkgdx) ! if(gdx >= xkgdx) then @@ -645,7 +645,7 @@ SUBROUTINE znot_m_v6(uref, znotm) ! For high winds, try to fit available observational data ! ! Bin Liu, NOAA/NCEP/EMC 2017 -! +! ! uref(m/s) : wind speed at 10-m height ! znotm(meter): areodynamical roughness scale over water ! @@ -665,10 +665,10 @@ SUBROUTINE znot_m_v6(uref, znotm) & p31 = 1.255457892775006e+00, p30 = -1.663993561652530e+01, & p40 = 4.579369142033410e-04 - + if (uref >= 0.0 .and. uref <= 6.5 ) then - znotm = exp(p10 + uref * (p11 + uref * (p12 + uref*p13))) + znotm = exp(p10 + uref * (p11 + uref * (p12 + uref*p13))) elseif (uref > 6.5 .and. uref <= 15.7) then znotm = p20 + uref * (p21 + uref * (p22 + uref * (p23 & + uref * (p24 + uref * p25)))) @@ -729,16 +729,16 @@ SUBROUTINE znot_t_v6(uref, znott) znott = p10 + uref * (p11 + uref * (p12 + uref * (p13 & + uref * (p14 + uref * p15)))) elseif (uref > 15.4 .and. uref <= 21.6) then - znott = p20 + uref * (p21 + uref * (p22 + uref * (p23 + znott = p20 + uref * (p21 + uref * (p22 + uref * (p23 & + uref * (p24 + uref * p25)))) elseif (uref > 21.6 .and. uref <= 42.2) then - znott = p30 + uref * (p31 + uref * (p32 + uref * (p33 + znott = p30 + uref * (p31 + uref * (p32 + uref * (p33 & + uref * (p34 + uref * p35)))) elseif ( uref > 42.2 .and. uref <= 53.3) then - znott = p40 + uref * (p41 + uref * (p42 + uref * (p43 + znott = p40 + uref * (p41 + uref * (p42 + uref * (p43 & + uref * (p44 + uref * p45)))) elseif ( uref > 53.3 .and. uref <= 80.0) then - znott = p50 + uref * (p51 + uref * (p52 + uref * (p53 + znott = p50 + uref * (p51 + uref * (p52 + uref * (p53 & + uref * (p54 + uref * (p55 + uref * p56))))) elseif ( uref > 80.0) then znott = p60 diff --git a/physics/SFC_Layer/UFS/sfc_diff.meta b/physics/SFC_Layer/UFS/sfc_diff.meta index a44321b92..1dad98049 100644 --- a/physics/SFC_Layer/UFS/sfc_diff.meta +++ b/physics/SFC_Layer/UFS/sfc_diff.meta @@ -273,12 +273,12 @@ dimensions = () type = integer intent = in -[icplocn2atm] - standard_name = control_for_air_sea_flux_computation_over_water +[use_oceanuv] + standard_name = do_air_sea_flux_computation_over_water long_name = air-sea flux option - units = 1 + units = flag dimensions = () - type = integer + type = logical intent = in [wet] standard_name = flag_nonzero_wet_surface_fraction diff --git a/physics/SFC_Layer/UFS/sfc_nst.f90 b/physics/SFC_Layer/UFS/sfc_nst.f90 index 76d3411a8..eb84aa352 100644 --- a/physics/SFC_Layer/UFS/sfc_nst.f90 +++ b/physics/SFC_Layer/UFS/sfc_nst.f90 @@ -26,7 +26,7 @@ module sfc_nst !> \section NSST_general_algorithm GFS Near-Surface Sea Temperature Scheme General Algorithm subroutine sfc_nst_run & ( im, hvap, cp, hfus, jcal, eps, epsm1, rvrdm1, rd, rhw0, & ! --- inputs: - pi, tgice, sbc, ps, u1, v1, usfco, vsfco, icplocn2atm, t1, & + pi, tgice, sbc, ps, u1, v1, usfco, vsfco, use_oceanuv, t1, & q1, tref, cm, ch, lseaspray, fm, fm10, & prsl1, prslki, prsik1, prslk1, wet, use_lake_model, xlon, & sinlat, stress, & @@ -85,8 +85,8 @@ subroutine sfc_nst_run & ! ps - real, surface pressure (pa) im ! ! u1, v1 - real, u/v component of surface layer wind (m/s) im ! ! usfco, vsfco - real, u/v component of surface current (m/s) im ! - ! icplocn2atm - integer, option to include ocean surface 1 ! - ! current in the computation of flux ! + ! use_oceanuv - logical, option to include ocean surface 1 ! + ! current in the computation of flux ! ! t1 - real, surface layer mean temperature ( k ) im ! ! q1 - real, surface layer mean specific humidity im ! ! tref - real, reference/foundation temperature ( k ) im ! @@ -170,8 +170,8 @@ subroutine sfc_nst_run & ! --- inputs: integer, intent(in) :: im, kdt, ipr, nstf_name1, nstf_name4, nstf_name5 - integer, intent(in) :: icplocn2atm - + logical, intent(in) :: use_oceanuv + real (kind=kind_phys), intent(in) :: hvap, cp, hfus, jcal, eps, & epsm1, rvrdm1, rd, rhw0, sbc, pi, tgice real (kind=kind_phys), dimension(:), intent(in) :: ps, u1, v1, & @@ -320,15 +320,15 @@ subroutine sfc_nst_run & ! --- ... rcp = rho cp ch v - if (icplocn2atm ==0) then - rch(i) = rho_a(i) * cp * ch(i) * wind(i) - cmm(i) = cm (i) * wind(i) - chh(i) = rho_a(i) * ch(i) * wind(i) - else if (icplocn2atm ==1) then + if (use_oceanuv) then windrel= sqrt( (u1(i)-usfco(i))**2 + (v1(i)-vsfco(i))**2 ) rch(i) = rho_a(i) * cp * ch(i) * windrel cmm(i) = cm (i) * windrel chh(i) = rho_a(i) * ch(i) * windrel + else + rch(i) = rho_a(i) * cp * ch(i) * wind(i) + cmm(i) = cm (i) * wind(i) + chh(i) = rho_a(i) * ch(i) * wind(i) endif !> - Calculate latent and sensible heat flux over open water with tskin. diff --git a/physics/SFC_Layer/UFS/sfc_nst.meta b/physics/SFC_Layer/UFS/sfc_nst.meta index 80f468803..04c26399f 100644 --- a/physics/SFC_Layer/UFS/sfc_nst.meta +++ b/physics/SFC_Layer/UFS/sfc_nst.meta @@ -150,12 +150,12 @@ type = real kind = kind_phys intent = in -[icplocn2atm] - standard_name = control_for_air_sea_flux_computation_over_water +[use_oceanuv] + standard_name = do_air_sea_flux_computation_over_water long_name = air-sea flux option - units = 1 + units = flag dimensions = () - type = integer + type = logical intent = in [t1] standard_name = air_temperature_at_surface_adjacent_layer diff --git a/physics/SFC_Models/Ocean/UFS/sfc_ocean.F b/physics/SFC_Models/Ocean/UFS/sfc_ocean.F index a0410a51c..1721f248e 100644 --- a/physics/SFC_Models/Ocean/UFS/sfc_ocean.F +++ b/physics/SFC_Models/Ocean/UFS/sfc_ocean.F @@ -25,7 +25,7 @@ subroutine sfc_ocean_run & ! --- inputs: & ( im, hvap, cp, rd, eps, epsm1, rvrdm1, ps, u1, v1, t1, q1, & & tskin, cm, ch, lseaspray, fm, fm10, & - & usfco, vsfco, icplocn2atm, & + & usfco, vsfco, use_oceanuv, & & prsl1, prslki, wet, use_lake_model, wind, &, ! --- inputs & flag_iter, use_med_flux, dqsfc_med, dtsfc_med, & & qsurf, cmm, chh, gflux, evap, hflx, ep, & ! --- outputs @@ -40,7 +40,7 @@ subroutine sfc_ocean_run & ! call sfc_ocean ! ! inputs: ! ! ( im, ps, u1, v1, t1, q1, tskin, cm, ch, lseaspray, fm, fm10, ! -! usfco, vsfco, icplocn2atm, ! +! usfco, vsfco, use_oceanuv, ! ! prsl1, prslki, wet, use_lake_model, wind, flag_iter, ! ! use_med_flux, ! ! outputs: ! @@ -70,7 +70,7 @@ subroutine sfc_ocean_run & ! u1, v1 - real, u/v component of surface layer wind (m/s) im ! ! usfco - real, u component of surface ocean current (m/s) im ! ! vsfco - real, v component of surface ocean current (m/s) im ! -! icplocn2atm - integer, =1 if usfco and vsfco are used in the 1 ! +! use_oceanuv - logical, .t. if usfco and vsfco are used in the 1 ! ! computation of air-sea fluxes ! ! t1 - real, surface layer mean temperature ( k ) im ! ! q1 - real, surface layer mean specific humidity im ! @@ -123,7 +123,7 @@ subroutine sfc_ocean_run & ! logical, dimension(:), intent(in) :: flag_iter, wet integer, dimension(:), intent(in) :: use_lake_model - integer, intent(in) :: icplocn2atm + logical, intent(in) :: use_oceanuv ! logical, intent(in) :: use_med_flux @@ -182,15 +182,16 @@ subroutine sfc_ocean_run & if (use_med_flux) then q0(i) = max( q1(i), qmin ) rho(i) = prsl1(i) / (rd*t1(i)*(one + rvrdm1*q0(i))) - - if (icplocn2atm == 0) then - tem = ch(i) * wind(i) - cmm(i) = cm(i) * wind(i) - else if (icplocn2atm ==1) then + + if (use_oceanuv) then windrel(i)=sqrt( (u1(i)-usfco(i))**2+(v1(i)-vsfco(i))**2 ) tem = ch(i) * windrel(i) cmm(i) = cm(i) * windrel(i) + else + tem = ch(i) * wind(i) + cmm(i) = cm(i) * wind(i) endif + chh(i) = rho(i) * tem hflx(i) = dtsfc_med(i) @@ -207,16 +208,17 @@ subroutine sfc_ocean_run & ! --- ... rcp = rho cp ch v - if (icplocn2atm == 0) then - rch = rho(i) * cp * ch(i) * wind(i) - tem = ch(i) * wind(i) - cmm(i) = cm(i) * wind(i) - else if (icplocn2atm ==1) then + if (use_oceanuv) then windrel(i)=sqrt( (u1(i)-usfco(i))**2+(v1(i)-vsfco(i))**2 ) rch = rho(i) * cp * ch(i) * windrel(i) tem = ch(i) * windrel(i) cmm(i) = cm(i) * windrel(i) + else + rch = rho(i) * cp * ch(i) * wind(i) + tem = ch(i) * wind(i) + cmm(i) = cm(i) * wind(i) endif + chh(i) = rho(i) * tem !> - Calcualte sensible and latent heat flux over open water diff --git a/physics/SFC_Models/Ocean/UFS/sfc_ocean.meta b/physics/SFC_Models/Ocean/UFS/sfc_ocean.meta index c0955d440..69268ee19 100644 --- a/physics/SFC_Models/Ocean/UFS/sfc_ocean.meta +++ b/physics/SFC_Models/Ocean/UFS/sfc_ocean.meta @@ -102,12 +102,12 @@ type = real kind = kind_phys intent = in -[icplocn2atm] - standard_name = control_for_air_sea_flux_computation_over_water +[use_oceanuv] + standard_name = do_air_sea_flux_computation_over_water long_name = air-sea flux option - units = 1 + units = flag dimensions = () - type = integer + type = logical intent = in [t1] standard_name = air_temperature_at_surface_adjacent_layer diff --git a/physics/docs/pdftxt/suite_input.nml.txt b/physics/docs/pdftxt/suite_input.nml.txt index 462137f45..5bb08acd9 100644 --- a/physics/docs/pdftxt/suite_input.nml.txt +++ b/physics/docs/pdftxt/suite_input.nml.txt @@ -4,7 +4,7 @@ The UFS Atmosphere, the atmospheric component of the UFS Weather Model, access runtime configurations from file \c input.nml. This file contains various namelists records that control aspects of the I/O, dynamics, physics etc. Most physics-related options are in -records \b &gfs_physics_nml. Some schemes have their own namelist records as described below. +records \b &gfs_physics_nml. Some schemes have their own namelist records as described below. - Namelist \b &gfs_physics_nml pertains to all of the suites used, but some of the variables are only relevant for specific parameterizations. Its variables are defined in file GFS_typedefs.F90 in the host model. @@ -15,8 +15,8 @@ gfdl_cloud_microphys_mod.F90. - Namelist \b &cires_ugwp_nml specifies options for the use of CIRES Unified Gravity Wave Physics Version 0. Both the SDF and the input.nml contain information about how to specify the physics suite. Some -of this information is redundant, and the user must make sure they are compatible.The safest -practice is to use the SDF and namelist provided for each suite, since those are supported +of this information is redundant, and the user must make sure they are compatible.The safest +practice is to use the SDF and namelist provided for each suite, since those are supported configurations. Changes to the SDF must be accompanied by corresponding changes to the namelist. While there is not a one-to-one correspondence between the namelist and the SDF, the tables below show some variables in the namelist that must match the SDF. @@ -26,14 +26,14 @@ show some variables in the namelist that must match the SDF.
| Option | CCPP scheme or interstitial | Description | Default Value - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| \b General \b options - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| fhzero | gfs_phys_time_vary | hour between clearing of diagnostic buckets | 0.0 - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| h2o_phys | h2ophys | flag for stratosphere h2o scheme | .false. - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ldiag3d | see \a GFS_typedefs.F90 | flag for 3D diagnostic fields | .false. + | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| \b General \b options + | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| fhzero | gfs_phys_time_vary | hour between clearing of diagnostic buckets | 0.0 + | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| h2o_phys | h2ophys | flag for stratosphere h2o scheme | .false. + | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ldiag3d | see \a GFS_typedefs.F90 | flag for 3D diagnostic fields | .false. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| qdiag3d | see \a GFS_typedefs.F90 | flag for 3D tracer diagnostic fields | .false. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| lssav | see \a GFS_typedefs.F90 | flag for storing diagnostics | .false. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| oz_phys_2015 | ozphys_2015 | flag for new (2015) ozone physics | .false. - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| fhcyc | gfs_phys_time_vary | frequency for surface data cycling in hours | 0.0 + | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| fhcyc | gfs_phys_time_vary | frequency for surface data cycling in hours | 0.0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| use_ufo | gfs_phys_time_vary | flag for using unfiltered orography surface option | .false. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| add_fire_heat_flux | lsm_ruc | flag for fire heat flux | .false. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ncld | see \a GFS_typedefs.F90 | number of hydrometeors | 1 @@ -42,10 +42,10 @@ show some variables in the namelist that must match the SDF. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| do_shum | gfs_stochastics | flag for stochastic SHUM option | .false. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| do_skeb | gfs_stochastics | flag for stochastic SKEB option | .false. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| do_sfcperts | gfs_rrtmg_pre | flag for stochastic surface perturbations option | .false. - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| imp_physics | choice of microphysics scheme | choice of microphysics scheme: \n + | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| imp_physics | choice of microphysics scheme | choice of microphysics scheme: \n
| .false. - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ialb | gfs_rrtmg_setup | SW surface albedo control flag: \n + | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ialb | gfs_rrtmg_setup | SW surface albedo control flag: \n
| 0 - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| iems | gfs_rrtmg_setup | LW surface emissivity control flag (ab 2-digit integer) : \n + | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| iems | gfs_rrtmg_setup | LW surface emissivity control flag (ab 2-digit integer) : \n
| 0 - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| iaer | gfs_rrtmg_setup | 4-digit aerosol flag (dabc for aermdl, volcanic, LW, SW): \n + | 0 + | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| iaer | gfs_rrtmg_setup | 4-digit aerosol flag (dabc for aermdl, volcanic, LW, SW): \n
| 1 - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ico2 | gfs_rrtmg_setup | \f$CO_2\f$ data source control flag:\n + | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ico2 | gfs_rrtmg_setup | \f$CO_2\f$ data source control flag:\n
| 0 - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| isubc_sw | rrtmg_sw | subgrid cloud approximation control flag in SW radiation: \n
-
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||