Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

move some parameters in mynn surface layer to namelist options #137

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 24 additions & 1 deletion ccpp/data/GFS_typedefs.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1044,6 +1044,10 @@ module GFS_typedefs
integer :: bl_mynn_output !< flag to initialize and write out extra 3D arrays
integer :: icloud_bl !< flag for coupling sgs clouds to radiation
real(kind=kind_phys) :: bl_mynn_closure !< flag to determine closure level of MYNN
logical :: sfclay_compute_flux!< flag for thermal roughness lengths over water in mynnsfclay
logical :: sfclay_compute_diag!< flag for computing surface diagnostics in mynnsfclay
integer :: isftcflx !< flag for thermal roughness lengths over water in mynnsfclay
integer :: iz0tlnd !< flag for thermal roughness lengths over land in mynnsfclay
real(kind=kind_phys) :: var_ric
real(kind=kind_phys) :: coef_ric_l
real(kind=kind_phys) :: coef_ric_s
Expand Down Expand Up @@ -3419,6 +3423,10 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
real(kind=kind_phys) :: bl_mynn_closure = 2.6 !< <= 2.5 only prognose tke
!< 2.5 < and < 3.0, prognose tke and q'2
!< >= 3.0, prognose tke, q'2, T'2, and T'q'
logical :: sfclay_compute_diag = .false.
logical :: sfclay_compute_flux = .false.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This differs from the original defaults. I'm testing sfclay_compute_flux=.true. right now to see if it fixes the problem.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've run a bunch of rrfs and rap regression tests with sfclay_compute_flux=.true. and they're passing. It seems this is the problem.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So, is the solution to:

  1. add sfclay_compute_flux=.true. to the HRRR/RRFS namelists
  2. keep the non-HRRR/RRFS namelist as is (default to .false.). Also Keep RAP namelists as is.
  3. run new baselines for the HRRR/RRFS namelists
  4. then complete the regression testing
  5. merge
    ?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For (2), we also need to configure nsst to turn off.

Copy link
Collaborator

@SamuelTrahanNOAA SamuelTrahanNOAA Mar 29, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand step 2. Are you talking about the workflow?

Edit: I don't understand step 2.

Copy link
Collaborator Author

@joeolson42 joeolson42 Mar 29, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think so, assuming it's the workflow that determines which namelists are used for each test/suite. My thinking is that we should probably create a regresion test that actually mimics the way RRFS is run (with sfclay_compute_flux=.true.). This would require a new baseline. Most of the rest of the regression tests can stay with the default setting (sfclay_compute_flux=.false.) but the tests that use the mynn surface layer scheme and also use nsst will require new baselines since the original regression tests (with sfclay_compute_flux hard-coded as .false.) were overwritten with the baselines generated from Mike's PR.

integer :: isftcflx = 0
integer :: iz0tlnd = 0
real(kind=kind_phys) :: var_ric = 1.0
real(kind=kind_phys) :: coef_ric_l = 0.16
real(kind=kind_phys) :: coef_ric_s = 0.25
Expand Down Expand Up @@ -3675,6 +3683,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
bl_mynn_edmf_tke, bl_mynn_mixlength, bl_mynn_cloudmix, &
bl_mynn_mixqt, bl_mynn_output, icloud_bl, bl_mynn_tkeadvect, &
bl_mynn_closure, bl_mynn_tkebudget, &
isftcflx, iz0tlnd, sfclay_compute_flux, sfclay_compute_diag, &
! *DH
gwd_opt, do_ugwp_v0, do_ugwp_v0_orog_only, &
do_ugwp_v0_nst_only, &
Expand Down Expand Up @@ -4370,6 +4379,10 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
Model%bl_mynn_closure = bl_mynn_closure
Model%bl_mynn_tkebudget = bl_mynn_tkebudget
Model%icloud_bl = icloud_bl
Model%isftcflx = isftcflx
Model%iz0tlnd = iz0tlnd
Model%sfclay_compute_flux = sfclay_compute_flux
Model%sfclay_compute_diag = sfclay_compute_diag
Model%var_ric = var_ric
Model%coef_ric_l = coef_ric_l
Model%coef_ric_s = coef_ric_s
Expand Down Expand Up @@ -4953,9 +4966,19 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
' bl_mynn_cloudpdf=',Model%bl_mynn_cloudpdf, &
' bl_mynn_mixlength=',Model%bl_mynn_mixlength, &
' bl_mynn_edmf=',Model%bl_mynn_edmf, &
' bl_mynn_output=',Model%bl_mynn_output
' bl_mynn_output=',Model%bl_mynn_output, &
' bl_mynn_closure=',Model%bl_mynn_closure
endif

!--- mynn surface layer scheme
if (Model%do_mynnsfclay) then
if (Model%me == Model%master) print *,' MYNN surface layer scheme is used:', &
' isftcflx=',Model%isftcflx, &
' iz0tlnd=',Model%iz0tlnd, &
' sfclay_compute_diag=',Model%sfclay_compute_diag, &
' sfclay_compute_flux=',Model%sfclay_compute_flux
end if

!--- set number of cloud types
if (Model%cscnv) then
Model%nctp = nint(Model%cs_parm(5))
Expand Down
24 changes: 24 additions & 0 deletions ccpp/data/GFS_typedefs.meta
Original file line number Diff line number Diff line change
Expand Up @@ -5526,6 +5526,30 @@
units = flag
dimensions = ()
type = integer
[isftcflx]
standard_name = flag_for_thermal_roughness_lengths_over_water_in_mynnsfclay
long_name = flag for thermal roughness lengths over water in mynnsfclay
units = flag
dimensions = ()
type = integer
[iz0tlnd]
standard_name = flag_for_thermal_roughness_lengths_over_land_in_mynnsfclay
long_name = flag for thermal roughness lengths over land in mynnsfclay
units = flag
dimensions = ()
type = integer
[sfclay_compute_flux]
standard_name = flag_for_computing_surface_scalar_fluxes_in_mynnsfclay
long_name = flag for computing surface scalar fluxes in mynnsfclay
units = flag
dimensions = ()
type = logical
[sfclay_compute_diag]
standard_name = flag_for_computing_surface_diagnostics_in_mynnsfclay
long_name = flag for computing surface diagnostics in mynnsfclay
units = flag
dimensions = ()
type = logical
[var_ric]
standard_name = control_for_variable_bulk_richardson_number
long_name = flag for calculating variable bulk richardson number for hurricane PBL
Expand Down