-
Notifications
You must be signed in to change notification settings - Fork 179
This is EMC flake model #141
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
Changes from 4 commits
dcc23e8
0486ff9
3b50368
8470224
a615fd5
ea18189
eb2b6c5
8a396fe
cdbe98a
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| +11 −2 | physics/GFS_surface_composites.F90 | |
| +9 −0 | physics/GFS_surface_composites.meta | |
| +3 −2 | physics/GFS_time_vary_pre.fv3.F90 | |
| +3,281 −0 | physics/flake.F90 | |
| +394 −0 | physics/flake_driver.F90 | |
| +346 −0 | physics/flake_driver.meta | |
| +4 −2 | physics/sfc_ocean.F | |
| +8 −0 | physics/sfc_ocean.meta |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,94 @@ | ||
| <?xml version="1.0" encoding="UTF-8"?> | ||
|
|
||
| <suite name="FV3_GFS_v16beta_flake" lib="ccppphys" ver="3"> | ||
| <!-- <init></init> --> | ||
| <group name="fast_physics"> | ||
| <subcycle loop="1"> | ||
| <scheme>fv_sat_adj</scheme> | ||
| </subcycle> | ||
| </group> | ||
| <group name="time_vary"> | ||
| <subcycle loop="1"> | ||
| <scheme>GFS_time_vary_pre</scheme> | ||
| <scheme>GFS_rrtmg_setup</scheme> | ||
| <scheme>GFS_rad_time_vary</scheme> | ||
| <scheme>GFS_phys_time_vary</scheme> | ||
| </subcycle> | ||
| </group> | ||
| <group name="radiation"> | ||
| <subcycle loop="1"> | ||
| <scheme>GFS_suite_interstitial_rad_reset</scheme> | ||
| <scheme>GFS_rrtmg_pre</scheme> | ||
| <scheme>rrtmg_sw_pre</scheme> | ||
| <scheme>rrtmg_sw</scheme> | ||
| <scheme>rrtmg_sw_post</scheme> | ||
| <scheme>rrtmg_lw_pre</scheme> | ||
| <scheme>rrtmg_lw</scheme> | ||
| <scheme>rrtmg_lw_post</scheme> | ||
| <scheme>GFS_rrtmg_post</scheme> | ||
| </subcycle> | ||
| </group> | ||
| <group name="physics"> | ||
| <subcycle loop="1"> | ||
| <scheme>GFS_suite_interstitial_phys_reset</scheme> | ||
| <scheme>GFS_suite_stateout_reset</scheme> | ||
| <scheme>get_prs_fv3</scheme> | ||
| <scheme>GFS_suite_interstitial_1</scheme> | ||
| <scheme>GFS_surface_generic_pre</scheme> | ||
| <scheme>GFS_surface_composites_pre</scheme> | ||
| <scheme>dcyc2t3</scheme> | ||
| <scheme>GFS_surface_composites_inter</scheme> | ||
| <scheme>GFS_suite_interstitial_2</scheme> | ||
| </subcycle> | ||
| <!-- Surface iteration loop --> | ||
| <subcycle loop="2"> | ||
| <scheme>sfc_diff</scheme> | ||
| <scheme>GFS_surface_loop_control_part1</scheme> | ||
| <scheme>sfc_nst_pre</scheme> | ||
| <scheme>sfc_nst</scheme> | ||
| <scheme>sfc_nst_post</scheme> | ||
| <scheme>lsm_noah</scheme> | ||
| <scheme>flake_driver</scheme> | ||
| <scheme>sfc_sice</scheme> | ||
| <scheme>GFS_surface_loop_control_part2</scheme> | ||
| </subcycle> | ||
| <!-- End of surface iteration loop --> | ||
| <subcycle loop="1"> | ||
| <scheme>GFS_surface_composites_post</scheme> | ||
| <scheme>sfc_diag</scheme> | ||
| <scheme>sfc_diag_post</scheme> | ||
| <scheme>GFS_surface_generic_post</scheme> | ||
| <scheme>GFS_PBL_generic_pre</scheme> | ||
| <scheme>satmedmfvdifq</scheme> | ||
| <scheme>GFS_PBL_generic_post</scheme> | ||
| <scheme>GFS_GWD_generic_pre</scheme> | ||
| <scheme>cires_ugwp</scheme> | ||
| <scheme>cires_ugwp_post</scheme> | ||
| <scheme>GFS_GWD_generic_post</scheme> | ||
| <scheme>rayleigh_damp</scheme> | ||
| <scheme>GFS_suite_stateout_update</scheme> | ||
| <scheme>ozphys_2015</scheme> | ||
| <scheme>h2ophys</scheme> | ||
| <scheme>GFS_DCNV_generic_pre</scheme> | ||
| <scheme>get_phi_fv3</scheme> | ||
| <scheme>GFS_suite_interstitial_3</scheme> | ||
| <scheme>samfdeepcnv</scheme> | ||
| <scheme>GFS_DCNV_generic_post</scheme> | ||
| <scheme>GFS_SCNV_generic_pre</scheme> | ||
| <scheme>samfshalcnv</scheme> | ||
| <scheme>GFS_SCNV_generic_post</scheme> | ||
| <scheme>GFS_suite_interstitial_4</scheme> | ||
| <scheme>cnvc90</scheme> | ||
| <scheme>GFS_MP_generic_pre</scheme> | ||
| <scheme>gfdl_cloud_microphys</scheme> | ||
| <scheme>GFS_MP_generic_post</scheme> | ||
| <scheme>maximum_hourly_diagnostics</scheme> | ||
| </subcycle> | ||
| </group> | ||
| <group name="stochastics"> | ||
| <subcycle loop="1"> | ||
| <scheme>GFS_stochastics</scheme> | ||
| </subcycle> | ||
| </group> | ||
| <!-- <finalize></finalize> --> | ||
| </suite> | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -235,6 +235,7 @@ module GFS_typedefs | |
| real (kind=kind_phys), pointer :: oceanfrac(:) => null() !< ocean fraction [0:1] | ||
| real (kind=kind_phys), pointer :: landfrac(:) => null() !< land fraction [0:1] | ||
| real (kind=kind_phys), pointer :: lakefrac(:) => null() !< lake fraction [0:1] | ||
| real (kind=kind_phys), pointer :: lakedepth(:) => null() !< lake depth [ m ] | ||
| real (kind=kind_phys), pointer :: tsfc (:) => null() !< surface air temperature in K | ||
| !< [tsea in gbphys.f] | ||
| real (kind=kind_phys), pointer :: tsfco (:) => null() !< sst in K | ||
|
|
@@ -803,6 +804,9 @@ module GFS_typedefs | |
|
|
||
| logical :: use_ufo !< flag for gcycle surface option | ||
|
|
||
| !--- flake model parameters | ||
| integer :: lkm !< flag for flake model | ||
|
|
||
| !--- tuning parameters for physical parameterizations | ||
| logical :: ras !< flag for ras convection scheme | ||
| logical :: flipv !< flag for vertical direction flip (ras) | ||
|
|
@@ -2208,6 +2212,7 @@ subroutine sfcprop_create (Sfcprop, IM, Model) | |
| allocate (Sfcprop%oceanfrac(IM)) | ||
| allocate (Sfcprop%landfrac (IM)) | ||
| allocate (Sfcprop%lakefrac (IM)) | ||
| allocate (Sfcprop%lakedepth(IM)) | ||
| allocate (Sfcprop%tsfc (IM)) | ||
| allocate (Sfcprop%tsfco (IM)) | ||
| allocate (Sfcprop%tsfcl (IM)) | ||
|
|
@@ -2225,6 +2230,7 @@ subroutine sfcprop_create (Sfcprop, IM, Model) | |
| Sfcprop%oceanfrac = clear_val | ||
| Sfcprop%landfrac = clear_val | ||
| Sfcprop%lakefrac = clear_val | ||
| Sfcprop%lakedepth = clear_val | ||
| Sfcprop%tsfc = clear_val | ||
| Sfcprop%tsfco = clear_val | ||
| Sfcprop%tsfcl = clear_val | ||
|
|
@@ -3059,6 +3065,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & | |
|
|
||
| logical :: use_ufo = .false. !< flag for gcycle surface option | ||
|
|
||
| !--- flake model parameters | ||
| integer :: lkm = 1 !< flag for flake model | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why is this flag declared as integer? What possible values can it take?
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If this is changed to a logical (which makes sense if it can be either .false. = 0 or .true. = 1, but not if you anticipate having other options in the future (0,1,2,...) ), then we need changes in ccpp-physics as well. |
||
|
|
||
| !--- tuning parameters for physical parameterizations | ||
| logical :: ras = .false. !< flag for ras convection scheme | ||
| logical :: flipv = .true. !< flag for vertical direction flip (ras) | ||
|
|
@@ -3352,6 +3361,10 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & | |
| ! Noah MP options | ||
| iopt_dveg,iopt_crs,iopt_btr,iopt_run,iopt_sfc, iopt_frz, & | ||
| iopt_inf, iopt_rad,iopt_alb,iopt_snf,iopt_tbot,iopt_stc, & | ||
|
|
||
| !--- lake model control | ||
| lkm, & | ||
|
|
||
| !--- physical parameterizations | ||
| ras, trans_trac, old_monin, cnvgwd, mstrat, moist_adj, & | ||
| cscnv, cal_pre, do_aw, do_shoc, shocaftcnv, shoc_cld, & | ||
|
|
@@ -3796,6 +3809,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & | |
| Model%isot = isot | ||
| Model%use_ufo = use_ufo | ||
|
|
||
| !--- flake model parameters | ||
| Model%lkm = lkm | ||
|
|
||
| ! Noah MP options from namelist | ||
| ! | ||
| Model%iopt_dveg = iopt_dveg | ||
|
|
@@ -4336,6 +4352,10 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & | |
| ' ignore_lake=',ignore_lake | ||
| print *,' min_lakeice=',Model%min_lakeice,' min_seaice=',Model%min_seaice, & | ||
| 'min_lake_height=',Model%min_lake_height | ||
|
|
||
| print *, 'flake model parameters' | ||
| print *, 'lkm : ', Model%lkm | ||
|
|
||
| if (Model%nstf_name(1) > 0 ) then | ||
| print *,' NSSTM is active ' | ||
| print *,' nstf_name(1)=',Model%nstf_name(1) | ||
|
|
@@ -4920,6 +4940,9 @@ subroutine control_print(Model) | |
|
|
||
| print *, ' use_ufo : ', Model%use_ufo | ||
| print *, ' ' | ||
| print *, 'flake model parameters' | ||
| print *, 'lkm : ', Model%lkm | ||
| print *, ' ' | ||
| print *, 'tuning parameters for physical parameterizations' | ||
| print *, ' ras : ', Model%ras | ||
| if (Model%ras) then | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please swap the order here to match the (recently changed) order of calls in the other suites (doesn't change the answer).