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

Update develop from NOAA-GSL: RUC ice, MYNN sfclay, stochastic land perturbations #239

Merged
Merged
Show file tree
Hide file tree
Changes from 8 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
18 changes: 12 additions & 6 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,12 +1,18 @@
[submodule "atmos_cubed_sphere"]
path = atmos_cubed_sphere
url = https://github.com/NOAA-EMC/GFDL_atmos_cubed_sphere
branch = dev/emc
#url = https://github.com/NOAA-EMC/GFDL_atmos_cubed_sphere
#branch = dev/emc
url = https://github.com/XiaqiongZhou-NOAA/GFDL_atmos_cubed_sphere
branch = psmbc
[submodule "ccpp/framework"]
path = ccpp/framework
url = https://github.com/NCAR/ccpp-framework
branch = master
#url = https://github.com/NOAA-GSL/ccpp-framework
#branch = gsl/develop
url = https://github.com/climbfuji/ccpp-framework
branch = update_master_from_gsl_develop
[submodule "ccpp/physics"]
path = ccpp/physics
url = https://github.com/NCAR/ccpp-physics
branch = master
#url = https://github.com/NOAA-GSL/ccpp-physics
#branch = gsl/develop
url = https://github.com/climbfuji/ccpp-physics
branch = update_master_from_gsl_develop
2 changes: 1 addition & 1 deletion atmos_cubed_sphere
9 changes: 4 additions & 5 deletions atmos_model.F90
Original file line number Diff line number Diff line change
Expand Up @@ -553,11 +553,6 @@ subroutine atmos_model_init (Atmos, Time_init, Time, Time_step)
GFS_Data%Tbd, GFS_Data%Cldprop, GFS_Data%Radtend, &
GFS_Data%Intdiag, Init_parm)


!--- Initialize stochastic physics pattern generation / cellular automata for first time step
call stochastic_physics_wrapper(GFS_control, GFS_data, Atm_block, ierr)
if (ierr/=0) call mpp_error(FATAL, 'Call to stochastic_physics_wrapper failed')

Atmos%Diag => GFS_Diag

Atm(mygrid)%flagstruct%do_skeb = GFS_control%do_skeb
Expand Down Expand Up @@ -606,6 +601,10 @@ subroutine atmos_model_init (Atmos, Time_init, Time, Time_step)
call CCPP_step (step="physics_init", nblks=Atm_block%nblks, ierr=ierr)
if (ierr/=0) call mpp_error(FATAL, 'Call to CCPP physics_init step failed')

!--- Initialize stochastic physics pattern generation / cellular automata for first time step
call stochastic_physics_wrapper(GFS_control, GFS_data, Atm_block, ierr)
if (ierr/=0) call mpp_error(FATAL, 'Call to stochastic_physics_wrapper failed')

!--- set the initial diagnostic timestamp
diag_time = Time
if (output_1st_tstep_rst) then
Expand Down
2 changes: 0 additions & 2 deletions ccpp/config/ccpp_prebuild_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,6 @@
'ccpp/physics/physics/ozphys_2015.f',
'ccpp/physics/physics/precpd.f',
'ccpp/physics/physics/phys_tend.F90',
'ccpp/physics/physics/tracer_sanitizer.F90',
'ccpp/physics/physics/radlw_main.F90',
'ccpp/physics/physics/radsw_main.F90',
'ccpp/physics/physics/rascnv.F90',
Expand All @@ -173,7 +172,6 @@
'ccpp/physics/physics/sfc_diag.f',
'ccpp/physics/physics/sfc_diag_post.F90',
'ccpp/physics/physics/sfc_drv_ruc.F90',
'ccpp/physics/physics/lsm_ruc_sfc_sice_interstitial.F90',
'ccpp/physics/physics/sfc_cice.f',
'ccpp/physics/physics/sfc_diff.f',
'ccpp/physics/physics/sfc_drv.f',
Expand Down
147 changes: 85 additions & 62 deletions ccpp/data/GFS_typedefs.F90

Large diffs are not rendered by default.

80 changes: 59 additions & 21 deletions ccpp/data/GFS_typedefs.meta
Original file line number Diff line number Diff line change
Expand Up @@ -613,6 +613,14 @@
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
[sncovr_ice]
standard_name = surface_snow_area_fraction_over_ice
long_name = surface snow area fraction over ice
units = frac
dimensions = (horizontal_dimension)
type = real
kind = kind_phys
active = (flag_for_land_surface_scheme == flag_for_ruc_land_surface_scheme)
[snoalb]
standard_name = upper_bound_on_max_albedo_over_deep_snow
long_name = maximum snow albedo
Expand Down Expand Up @@ -1273,27 +1281,35 @@
dimensions = (horizontal_loop_extent,soil_vertical_dimension_for_land_surface_model)
type = real
kind = kind_phys
active = (flag_for_land_surface_scheme == flag_for_ruc_land_surface_scheme)
[clw_surf]
standard_name = cloud_condensed_water_mixing_ratio_at_surface
long_name = moist cloud water mixing ratio at surface
active = (flag_for_land_surface_scheme == flag_for_ruc_land_surface_scheme)
[clw_surf_land]
standard_name = cloud_condensed_water_mixing_ratio_at_surface_over_land
long_name = moist cloud water mixing ratio at surface over land
units = kg kg-1
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
active = (flag_for_land_surface_scheme == flag_for_ruc_land_surface_scheme)
[qwv_surf]
standard_name = water_vapor_mixing_ratio_at_surface
long_name = water vapor mixing ratio at surface
active = (flag_for_land_surface_scheme == flag_for_ruc_land_surface_scheme)
[clw_surf_ice]
standard_name = cloud_condensed_water_mixing_ratio_at_surface_over_ice
long_name = moist cloud water mixing ratio at surface over ice
units = kg kg-1
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
active = (flag_for_land_surface_scheme == flag_for_ruc_land_surface_scheme)
[cndm_surf]
standard_name = surface_condensation_mass
long_name = surface condensation mass
units = kg m-2
[qwv_surf_land]
standard_name = water_vapor_mixing_ratio_at_surface_over_land
long_name = water vapor mixing ratio at surface over land
units = kg kg-1
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
active = (flag_for_land_surface_scheme == flag_for_ruc_land_surface_scheme)
[qwv_surf_ice]
standard_name = water_vapor_mixing_ratio_at_surface_over_ice
long_name = water vapor mixing ratio at surface over ice
units = kg kg-1
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
Expand All @@ -1314,25 +1330,33 @@
type = real
kind = kind_phys
active = (flag_for_land_surface_scheme == flag_for_ruc_land_surface_scheme)
[tsnow]
standard_name = snow_temperature_bottom_first_layer
long_name = snow temperature at the bottom of the first snow layer
[tsnow_land]
standard_name = snow_temperature_bottom_first_layer_over_land
long_name = snow temperature at the bottom of the first snow layer over land
units = K
dimensions = (horizontal_dimension)
type = real
kind = kind_phys
active = (flag_for_land_surface_scheme == flag_for_ruc_land_surface_scheme)
[tsnow_ice]
standard_name = snow_temperature_bottom_first_layer_over_ice
long_name = snow temperature at the bottom of the first snow layer over ice
units = K
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
active = (flag_for_land_surface_scheme == flag_for_ruc_land_surface_scheme)
[snowfallac]
standard_name = total_accumulated_snowfall
[snowfallac_land]
standard_name = total_accumulated_snowfall_over_land
long_name = run-total snow accumulation on the ground
units = kg m-2
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
active = (flag_for_land_surface_scheme == flag_for_ruc_land_surface_scheme)
[acsnow]
standard_name = accumulated_water_equivalent_of_frozen_precip
long_name = snow water equivalent of run-total frozen precip
active = (flag_for_land_surface_scheme == flag_for_ruc_land_surface_scheme)
[snowfallac_ice]
standard_name = total_accumulated_snowfall_over_ice
long_name = run-total snow accumulation on the ice
units = kg m-2
dimensions = (horizontal_loop_extent)
type = real
Expand Down Expand Up @@ -3295,6 +3319,20 @@
type = real
kind = kind_phys
active = (flag_for_land_surface_scheme == flag_for_ruc_land_surface_scheme)
[pores]
standard_name = maximum_soil_moisture_content_for_land_surface_model
long_name = maximum soil moisture for a given soil type for land surface model
units = m
dimensions = (30)
type = real
kind = kind_phys
[resid]
standard_name = minimum_soil_moisture_content_for_land_surface_model
long_name = minimum soil moisture for a given soil type for land surface model
units = m
dimensions = (30)
type = real
kind = kind_phys
[rdlai]
standard_name = flag_for_reading_leaf_area_index_from_input
long_name = flag for reading leaf area index from initial conditions
Expand Down
12 changes: 6 additions & 6 deletions ccpp/driver/GFS_diagnostics.F90
Original file line number Diff line number Diff line change
Expand Up @@ -3023,24 +3023,24 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop
if (Model%lsm == Model%lsm_ruc) then
idx = idx + 1
ExtDiag(idx)%axes = 2
ExtDiag(idx)%name = 'snowfall_acc'
ExtDiag(idx)%desc = 'total accumulated frozen precipitation'
ExtDiag(idx)%name = 'snowfall_acc_land'
ExtDiag(idx)%desc = 'total accumulated frozen precipitation over land'
ExtDiag(idx)%unit = 'kg m-2'
ExtDiag(idx)%mod_name = 'gfs_sfc'
allocate (ExtDiag(idx)%data(nblks))
do nb = 1,nblks
ExtDiag(idx)%data(nb)%var2 => Sfcprop(nb)%snowfallac(:)
ExtDiag(idx)%data(nb)%var2 => Sfcprop(nb)%snowfallac_land(:)
enddo

idx = idx + 1
ExtDiag(idx)%axes = 2
ExtDiag(idx)%name = 'swe_snowfall_acc'
ExtDiag(idx)%desc = 'accumulated water equivalent of frozen precipitation'
ExtDiag(idx)%name = 'snowfall_acc_ice'
ExtDiag(idx)%desc = 'total accumulated frozen precipitation over ice'
ExtDiag(idx)%unit = 'kg m-2'
ExtDiag(idx)%mod_name = 'gfs_sfc'
allocate (ExtDiag(idx)%data(nblks))
do nb = 1,nblks
ExtDiag(idx)%data(nb)%var2 => Sfcprop(nb)%acsnow(:)
ExtDiag(idx)%data(nb)%var2 => Sfcprop(nb)%snowfallac_ice(:)
enddo
endif

Expand Down
3 changes: 0 additions & 3 deletions ccpp/suites/suite_FV3_GSD_SAR.xml
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,6 @@
<scheme>sfc_nst</scheme>
<scheme>sfc_nst_post</scheme>
<scheme>lsm_ruc</scheme>
<scheme>lsm_ruc_sfc_sice_pre</scheme>
<scheme>sfc_sice</scheme>
<scheme>lsm_ruc_sfc_sice_post</scheme>
<scheme>GFS_surface_loop_control_part2</scheme>
</subcycle>
<!-- End of surface iteration loop -->
Expand Down
1 change: 0 additions & 1 deletion ccpp/suites/suite_FV3_GSD_noah.xml
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,6 @@
<scheme>mp_thompson_post</scheme>
<scheme>GFS_MP_generic_post</scheme>
<scheme>cu_gf_driver_post</scheme>
<!-- <scheme>tracer_sanitizer</scheme> -->
<scheme>maximum_hourly_diagnostics</scheme>
</subcycle>
</group>
Expand Down
4 changes: 0 additions & 4 deletions ccpp/suites/suite_FV3_GSD_v0.xml
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,6 @@
<scheme>sfc_nst</scheme>
<scheme>sfc_nst_post</scheme>
<scheme>lsm_ruc</scheme>
<scheme>lsm_ruc_sfc_sice_pre</scheme>
<scheme>sfc_sice</scheme>
<scheme>lsm_ruc_sfc_sice_post</scheme>
<scheme>GFS_surface_loop_control_part2</scheme>
</subcycle>
<!-- End of surface iteration loop -->
Expand Down Expand Up @@ -81,7 +78,6 @@
<scheme>mp_thompson_post</scheme>
<scheme>GFS_MP_generic_post</scheme>
<scheme>cu_gf_driver_post</scheme>
<!-- <scheme>tracer_sanitizer</scheme> -->
<scheme>maximum_hourly_diagnostics</scheme>
</subcycle>
</group>
Expand Down
3 changes: 0 additions & 3 deletions ccpp/suites/suite_FV3_GSD_v0_RRTMGP.xml
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,6 @@
<scheme>sfc_nst</scheme>
<scheme>sfc_nst_post</scheme>
<scheme>lsm_ruc</scheme>
<scheme>lsm_ruc_sfc_sice_pre</scheme>
<scheme>sfc_sice</scheme>
<scheme>lsm_ruc_sfc_sice_post</scheme>
<scheme>GFS_surface_loop_control_part2</scheme>
</subcycle>
<!-- End of surface iteration loop -->
Expand Down
3 changes: 0 additions & 3 deletions ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,6 @@
<scheme>sfc_nst</scheme>
<scheme>sfc_nst_post</scheme>
<scheme>lsm_ruc</scheme>
<scheme>lsm_ruc_sfc_sice_pre</scheme>
<scheme>sfc_sice</scheme>
<scheme>lsm_ruc_sfc_sice_post</scheme>
<scheme>GFS_surface_loop_control_part2</scheme>
</subcycle>
<!-- End of surface iteration loop -->
Expand Down
3 changes: 0 additions & 3 deletions ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,6 @@
<scheme>sfc_nst</scheme>
<scheme>sfc_nst_post</scheme>
<scheme>lsm_ruc</scheme>
<scheme>lsm_ruc_sfc_sice_pre</scheme>
<scheme>sfc_sice</scheme>
<scheme>lsm_ruc_sfc_sice_post</scheme>
<scheme>GFS_surface_loop_control_part2</scheme>
</subcycle>
<!-- End of surface iteration loop -->
Expand Down
3 changes: 0 additions & 3 deletions ccpp/suites/suite_FV3_GSD_v0_unified_ugwp_suite.xml
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,6 @@
<scheme>sfc_nst</scheme>
<scheme>sfc_nst_post</scheme>
<scheme>lsm_ruc</scheme>
<scheme>lsm_ruc_sfc_sice_pre</scheme>
<scheme>sfc_sice</scheme>
<scheme>lsm_ruc_sfc_sice_post</scheme>
<scheme>GFS_surface_loop_control_part2</scheme>
</subcycle>
<!-- End of surface iteration loop -->
Expand Down
3 changes: 0 additions & 3 deletions ccpp/suites/suite_FV3_HRRR.xml
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,6 @@
<scheme>sfc_nst</scheme>
<scheme>sfc_nst_post</scheme>
<scheme>lsm_ruc</scheme>
<scheme>lsm_ruc_sfc_sice_pre</scheme>
<scheme>sfc_sice</scheme>
<scheme>lsm_ruc_sfc_sice_post</scheme>
<scheme>GFS_surface_loop_control_part2</scheme>
</subcycle>
<!-- End of surface iteration loop -->
Expand Down
3 changes: 0 additions & 3 deletions ccpp/suites/suite_FV3_RAP.xml
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,6 @@
<scheme>sfc_nst</scheme>
<scheme>sfc_nst_post</scheme>
<scheme>lsm_ruc</scheme>
<scheme>lsm_ruc_sfc_sice_pre</scheme>
<scheme>sfc_sice</scheme>
<scheme>lsm_ruc_sfc_sice_post</scheme>
<scheme>GFS_surface_loop_control_part2</scheme>
</subcycle>
<!-- End of surface iteration loop -->
Expand Down
Loading