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

merge gsl institutional fork #911

Merged
merged 55 commits into from
May 17, 2022

Conversation

SamuelTrahanNOAA
Copy link
Collaborator

@SamuelTrahanNOAA SamuelTrahanNOAA commented Apr 26, 2022

This includes surface layer, PBL, gravity wave drag, smoke, and other improvements from GSL RRFS and global model development.

  • RRFS Smoke
  • A "universalization process" to generalize module_bl_mynn.F90 [...] for all dycores
  • Removes consistency check in GF, allows GF to run with different or no shallow scheme
  • Add additional RAP based SDF
  • removed sections of code in RRTMG pre modules that added cloud fractions in precipitation.
  • Updates CCPP physics modules for the gravity wave drag (GWD), LSM and MYNN surface layer parameterization
  • drag_suite.F90: Removed limits on standard deviation of small-scale topography used by the small-scale GWD and turbulent orographic form drag (TOFD) schemes of the GSL drag suite
  • Removed the height limitation of the TOFD scheme
  • GFS_surface_composites
    • Added lat/lon to the parameter list for debugging purposes.
    • Flag_restart is replaced with lsm_cold_start - no impact on the result.
    • Removed snow initialization with the use of RUC LSM. In case of a cold
      start, snow on land or on ice is initialized in io/FV3GFS_io.F90. In case of
      a warm start, these variables are carried along.
    • Corresponding changes in GFS_surface_composites.meta.
  • module_sf_ruclsm.F90 - In computation of soil resistance to evaporation use soil moisture field capacity with factor 1. instead of 0.7. This change will reduce direct evaporation from the bare soil.
  • Replaced "sfc_nst" scheme with "flake_driver" scheme in the FV3_HRRR suite.
  • MYNN changes:
    • removed the first-order for of Chaboureau-Bechtold (CB) - now only uses q'2 version of CB
    • changed CB to use abs temperature instead of liquid temperature
    • Added 3d variable "sm3d" - stability function for momentum
    • revert to Tian-Kuang lateral entrainment - reduces high RH bias found in some HRRR cases
    • reduced entrainment rate for momentum
    • MYNN bug fixes and clean-up
    • New cloud fraction
    • separate frozen subgrid clouds for snow and ice
    • move ud_mf from interstitial to tbd.
    • removed the first-order for of Chaboureau-Bechtold (CB) - now only uses q'2 version of CB
    • Bug fix for COARE3.5 - this option is not used by default so it will not cause a change in results.
    • Moved 4 internal parameters to namelist options: isftcflx (default = 0), iz0tlnd (default = 0), sfclay_compute_flux (default = .false. which will change results of regression tests), sfclay_compute_diag (default = .false.)

climbfuji and others added 30 commits December 15, 2021 10:47
…in_20211215

Update gsl/develop from main 2021/12/15
Updates to MYNN-EDMF, part I - goes with other PR for fv3atm

Overview of changes:

    This commit should be considered step one of the "universalization" process to generalize module_bl_mynn.F90 both for all dycores. Much of this is strictly reformatting or repositioning the driver to the top of the module - a request from collaborators, but some of it involve removing ifdefs, and the handling of the model constants. More commits to complete this work will follow. Despite the huge number of lines changed from this work alone, there is no change in behavior/performance.
    fixed some old crash cases (improved numerical stability)
    conservation work - removes all negative qv printouts
    A bug fix for the interpolation of the mass-flux clouds from interface levels to mid-levels which cause excessive LWP in shallow-cumulus fields
    Removes a few unused variables/arrays
    Fixes for the smoke/chemical mixing (works but still not in final state - another commit will follow)
    Some tuning work to improve the excessive cloud bias in polar regions.
    Some tuning of the mass-flux component to improve the tropics.
    General clean up of code and updates to many comments.
… into snow and ice

This modification adds:

1.    A new cloud fraction (Chaboureau and Bechtold 2005) for the GF convection scheme
2.    The capability to separate frozen subgrid clouds into both snow and ice (no longer just ice).
Remove GF Consistency Check & Add SDFs - V2
Remove Dom, add new code manager Christina and various developers.
…rom_RRFS_dev

GWD, LSM and MYNN physics updates from RRFS_dev branch
! XNO=10.0E06 median volume diameter raindrop (K table 4)
! VC = 38.3/(XNO**.125) mean volume fallspeed eqn. (K)
!
parameter (vc = 5.107387)
Copy link
Collaborator

Choose a reason for hiding this comment

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

Many of these should be coming from the host for consistency.

!use module_zero_plumegen_coms
implicit none
type(plumegen_coms), pointer :: coms
real(kind=kind_phys), parameter :: g = 9.80796, r = 287.04, cp = 1004.6, eps = 0.622,tmelt = 273.3
Copy link
Collaborator

Choose a reason for hiding this comment

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

More locally-defined constants that should come from the host.

!use module_zero_plumegen_coms
implicit none
type(plumegen_coms), pointer :: coms
real(kind=kind_phys), parameter :: g = 9.81, cp=1004.
Copy link
Collaborator

Choose a reason for hiding this comment

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

more locally-defined physical constants

REAL(kind=kind_phys) , INTENT(INOUT) :: rad_T(nkp)
REAL(kind=kind_phys) , INTENT(IN) :: rad_p(nkp)

real(kind=kind_phys), parameter :: g = 9.81, cp=1004., pi=3.1416
Copy link
Collaborator

Choose a reason for hiding this comment

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

more locally-defined physical constants

! for ice, see (OT18), use F0=0.75 per argument there. coms%rho*q
! values are in g/m**3, velocities in m/s

real(kind=kind_phys), PARAMETER :: VCONST = 5.107387, EPS = 0.622, F0 = 0.75
Copy link
Collaborator

Choose a reason for hiding this comment

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

more locally-defined physical constants

! XNO=10.0E06
! HERC = 1.93*1.E-6*XN035 !evaporation constant
!
real(kind=kind_phys), PARAMETER :: HERC = 5.44E-4, CP = 1.004, HEATCOND = 2.5E3
Copy link
Collaborator

Choose a reason for hiding this comment

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

more locally-defined physical constants

! ********************* VAPOR TO ICE (USE EQUATION OT22)***************
!use module_zero_plumegen_coms
!
real(kind=kind_phys), PARAMETER :: EPS = 0.622, HEATFUS = 334., HEATSUBL = 2834., CP = 1.004
Copy link
Collaborator

Choose a reason for hiding this comment

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

more locally-defined physical constants

!
implicit none
type(plumegen_coms), pointer :: coms
real(kind=kind_phys), PARAMETER :: HEATFUS = 334., CP = 1.004, EPS = 0.622, HEATSUBL = 2834.
Copy link
Collaborator

Choose a reason for hiding this comment

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

more locally-defined physical constants

implicit none
type(plumegen_coms), pointer :: coms

real(kind=kind_phys), PARAMETER :: FRC = 332.27, TMELT = 273., F0 = 0.75 !ice velocity factor
Copy link
Collaborator

Choose a reason for hiding this comment

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

more locally-defined physical constants

@grantfirl
Copy link
Collaborator

@SamuelTrahanNOAA @haiqinli @joeolson42 I'm finished reviewing the physics changes. Now, my eyeballs hurt. Regardless, this is a phenomenal amount of work and it is to be commended! I'll leave it up to you guys what you want to address now vs what can be done in a followup since 1) there is a commit date and 2) your fork/branch is on hold until this gets in. Pretty much all comments are suggestions only and are not meant to be "change this or else". The CCPP has its rules, and I'm trying to point out where they are violated, but as has been pointed out by many people many times, these rules are violated all over the repo in various places. Nevertheless, we should try our best to fix the "big" ones that could affect interoperability. I'll stop by and review again (and approve) when you're done with any edits from my comments, just let me know. I'll need to look at the fv3atm PR now for standard name suggestions...

@SamuelTrahanNOAA
Copy link
Collaborator Author

I'm fixing all of the stops and gotos, and Haiqin is working on the constants.

@SamuelTrahanNOAA
Copy link
Collaborator Author

I've removed all stops and gotos from the smoke code. The stops are replaced with errmsg and errflag assignments, so the error will propagate up the model framework and abort the model cleanly.

Copy link
Collaborator

@grantfirl grantfirl left a comment

Choose a reason for hiding this comment

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

Approved; awaiting final update to ccpp-physics main. #922 will need to be addressed in a followup PR.

@BrianCurtis-NOAA
Copy link
Contributor

We are ready for commit.

@grantfirl grantfirl merged commit 01e3d6b into NCAR:main May 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.