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

UFS-dev PR#235 #559

Merged
merged 3 commits into from
Feb 14, 2025
Merged
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
58 changes: 32 additions & 26 deletions scm/src/GFS_typedefs.F90
Original file line number Diff line number Diff line change
Expand Up @@ -516,6 +516,7 @@ module GFS_typedefs
!--- In (physics only)
real (kind=kind_phys), pointer :: sfcdsw(:) => null() !< total sky sfc downward sw flux ( w/m**2 )
!< GFS_radtend_type%sfcfsw%dnfxc
real (kind=kind_phys), pointer :: sfcdswc(:) => null() !< total sky sfc downward sw flux assuming clear sky conditions( w/m**2 )
real (kind=kind_phys), pointer :: sfcnsw(:) => null() !< total sky sfc netsw flx into ground(w/m**2)
!< difference of dnfxc & upfxc from GFS_radtend_type%sfcfsw
real (kind=kind_phys), pointer :: sfcdlw(:) => null() !< total sky sfc downward lw flux ( w/m**2 )
Expand Down Expand Up @@ -800,7 +801,7 @@ module GFS_typedefs
!< (yr, mon, day, t-zone, hr, min, sec, mil-sec)
integer :: idate(4) !< initial date with different size and ordering
!< (hr, mon, day, yr)
logical :: gfs_phys_time_vary_is_init=.false. !< GFS_phys_time_vary interstitial initialization flag
logical :: gfs_phys_time_vary_is_init=.false. !< GFS_phys_time_vary interstitial initialization flag

!--- radiation control parameters
real(kind=kind_phys) :: fhswr !< frequency for shortwave radiation (secs)
Expand Down Expand Up @@ -1218,7 +1219,7 @@ module GFS_typedefs
integer :: ichoice = 0 !< flag for closure of C3/GF deep convection
integer :: ichoicem = 13!< flag for closure of C3/GF mid convection
integer :: ichoice_s = 3 !< flag for closure of C3/GF shallow convection
logical :: gf_coldstart !< flag for cold start GF
logical :: gf_coldstart !< flag for cold start GF
integer :: conv_cf_opt !< option for convection scheme cloud fraction computation
!< 0: Chaboureau-Bechtold
!< 1: Xu-Randall
Expand Down Expand Up @@ -1626,9 +1627,9 @@ module GFS_typedefs
real(kind=kind_phys), pointer :: si(:) !< vertical sigma coordinate for model initialization
real(kind=kind_phys) :: sec !< seconds since model initialization

!--- Increment grid
!--- Increment grid
logical :: increment_file_on_native_grid ! increment on native grid else Gaussian grid

!--- IAU
integer :: iau_offset
real(kind=kind_phys) :: iau_delthrs ! iau time interval (to scale increments) in hours
Expand Down Expand Up @@ -1659,15 +1660,15 @@ module GFS_typedefs

! !--- Land IAU
! !> land iau setting read from namelist
! logical :: do_land_iau
! real(kind=kind_phys) :: land_iau_delthrs
! character(len=240) :: land_iau_inc_files(7)
! real(kind=kind_phys) :: land_iau_fhrs(7)
! logical :: land_iau_filter_increments
! integer :: lsoil_incr
! logical :: do_land_iau
! real(kind=kind_phys) :: land_iau_delthrs
! character(len=240) :: land_iau_inc_files(7)
! real(kind=kind_phys) :: land_iau_fhrs(7)
! logical :: land_iau_filter_increments
! integer :: lsoil_incr
! logical :: land_iau_upd_stc
! logical :: land_iau_upd_slc
! logical :: land_iau_do_stcsmc_adjustment
! logical :: land_iau_upd_slc
! logical :: land_iau_do_stcsmc_adjustment
! real(kind=kind_phys) :: land_iau_min_T_increment

!--- CCPP suite simulator
Expand Down Expand Up @@ -2040,6 +2041,7 @@ module GFS_typedefs
real (kind=kind_phys), pointer :: dlwsfci(:) => null() !< instantaneous sfc dnwd lw flux ( w/m**2 )
real (kind=kind_phys), pointer :: ulwsfci(:) => null() !< instantaneous sfc upwd lw flux ( w/m**2 )
real (kind=kind_phys), pointer :: dswsfci(:) => null() !< instantaneous sfc dnwd sw flux ( w/m**2 )
real (kind=kind_phys), pointer :: dswsfcci(:) => null() !< instantaneous sfc dnwd sw flux ( w/m**2 ) (clear-sky)
real (kind=kind_phys), pointer :: nswsfci(:) => null() !< instantaneous sfc net dnwd sw flux ( w/m**2 )
real (kind=kind_phys), pointer :: uswsfci(:) => null() !< instantaneous sfc upwd sw flux ( w/m**2 )
real (kind=kind_phys), pointer :: dusfci (:) => null() !< instantaneous u component of surface stress
Expand Down Expand Up @@ -2919,7 +2921,7 @@ subroutine sfcprop_create (Sfcprop, Model)
stop
endif
endif

end subroutine sfcprop_create


Expand Down Expand Up @@ -2956,11 +2958,13 @@ subroutine coupling_create (Coupling, Model)
Coupling%visbmui = clear_val
Coupling%visdfui = clear_val

allocate (Coupling%sfcdswc (IM))
allocate (Coupling%sfcdsw (IM))
allocate (Coupling%sfcnsw (IM))
allocate (Coupling%sfcdlw (IM))
allocate (Coupling%sfculw (IM))

Coupling%sfcdswc = clear_val
Coupling%sfcdsw = clear_val
Coupling%sfcnsw = clear_val
Coupling%sfcdlw = clear_val
Expand Down Expand Up @@ -3951,7 +3955,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &

!--- Increment grid
logical :: increment_file_on_native_grid = .false. ! increment on native grid else Gaussian grid

!--- IAU options
real(kind=kind_phys) :: iau_delthrs = 0 !< iau time interval (to scale increments)
character(len=240) :: iau_inc_files(7) = '' !< list of increment files
Expand Down Expand Up @@ -3998,7 +4002,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
integer :: ichoice = 0 !< flag for closure of C3/GF deep convection
integer :: ichoicem = 13!< flag for closure of C3/GF mid convection
integer :: ichoice_s = 3 !< flag for closure of C3/GF shallow convection
logical :: gf_coldstart = .false. !< flag for cold start GF
logical :: gf_coldstart = .false. !< flag for cold start GF

!-- chem nml variables for RRFS-SD
real(kind=kind_phys) :: dust_drylimit_factor = 1.0
Expand Down Expand Up @@ -4066,10 +4070,10 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &

! !> land iau setting read from namelist
! logical :: do_land_iau = .false.
! real(kind=kind_phys) :: land_iau_delthrs = 0
! character(len=240) :: land_iau_inc_files(7) = ''
! real(kind=kind_phys) :: land_iau_fhrs(7) = -1
! logical :: land_iau_filter_increments = .false.
! real(kind=kind_phys) :: land_iau_delthrs = 0
! character(len=240) :: land_iau_inc_files(7) = ''
! real(kind=kind_phys) :: land_iau_fhrs(7) = -1
! logical :: land_iau_filter_increments = .false.
! integer :: lsoil_incr = 4
! logical :: land_iau_upd_stc = .false.
! logical :: land_iau_upd_slc = .false.
Expand All @@ -4086,7 +4090,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
!--- coupling parameters
cplflx, cplice, cplocn2atm, cplwav, cplwav2atm, cplaqm, &
cplchm, cpllnd, cpllnd2atm, cpl_imp_mrg, cpl_imp_dbg, &
cpl_fire, rrfs_sd, use_cice_alb, &
cpl_fire, rrfs_sd, use_cice_alb, &
#ifdef IDEA_PHYS
lsidea, weimer_model, f107_kp_size, f107_kp_interval, &
f107_kp_skip_size, f107_kp_data_size, f107_kp_read_in_start, &
Expand Down Expand Up @@ -4237,11 +4241,11 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
!--- CCPP suite simulator
do_ccpp_suite_sim
! !--- land_iau_nml
! do_land_iau, land_iau_delthrs, land_iau_inc_files, &
! do_land_iau, land_iau_delthrs, land_iau_inc_files, &
! land_iau_fhrs, land_iau_filter_increments, lsoil_incr, &
! land_iau_upd_stc, land_iau_upd_slc, &
! land_iau_do_stcsmc_adjustment, land_iau_min_T_increment
! land_iau_do_stcsmc_adjustment, land_iau_min_T_increment


!--- other parameters
integer :: nctp = 0 !< number of cloud types in CS scheme
Expand Down Expand Up @@ -5777,7 +5781,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
Model%levh2o = 1
Model%h2o_coeff = 1
end if

!--- quantities to be used to derive phy_f*d totals
Model%nshoc_2d = nshoc_2d
Model%nshoc_3d = nshoc_3d
Expand Down Expand Up @@ -5808,7 +5812,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
if (Model%me == Model%master) then
print *,'in atm phys init, phour=',Model%phour,'fhour=',Model%fhour,'zhour=',Model%zhour,'kdt=',Model%kdt
endif


if(Model%hydrostatic .and. Model%lightning_threat) then
write(0,*) 'Turning off lightning threat index for hydrostatic run.'
Expand Down Expand Up @@ -6413,7 +6417,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
! Model%do_land_iau = do_land_iau
! Model%iau_delthrs = land_iau_delthrs
! Model%iau_inc_files = land_iau_inc_files
! Model%iaufhrs = land_iau_fhrs
! Model%iaufhrs = land_iau_fhrs
! Model%iau_filter_increments = land_iau_filter_increments
! Model%lsoil_incr = lsoil_incr
! Model%upd_stc = land_iau_upd_stc
Expand Down Expand Up @@ -7902,6 +7906,7 @@ subroutine diag_create (Diag, Model)
allocate (Diag%dlwsfci (IM))
allocate (Diag%ulwsfci (IM))
allocate (Diag%dswsfci (IM))
allocate (Diag%dswsfcci(IM))
allocate (Diag%nswsfci (IM))
allocate (Diag%uswsfci (IM))
allocate (Diag%dusfci (IM))
Expand Down Expand Up @@ -8216,6 +8221,7 @@ subroutine diag_phys_zero (Diag, Model, linit, iauwindow_center)
Diag%dlwsfci = zero
Diag%ulwsfci = zero
Diag%dswsfci = zero
Diag%dswsfcci = zero
Diag%nswsfci = zero
Diag%uswsfci = zero
Diag%dusfci = zero
Expand Down
16 changes: 15 additions & 1 deletion scm/src/GFS_typedefs.meta
Original file line number Diff line number Diff line change
Expand Up @@ -2494,6 +2494,13 @@
dimensions = (horizontal_dimension)
type = real
kind = kind_phys
[sfcdswc]
standard_name = surface_downwelling_shortwave_flux_on_radiation_timestep_assuming_clear_sky
long_name = total sky sfc downward sw flux assuming clear sky conditions
units = W m-2
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
[sfcnsw]
standard_name = surface_net_downwelling_shortwave_flux_on_radiation_timestep
long_name = total sky sfc netsw flx into ground
Expand Down Expand Up @@ -2925,7 +2932,7 @@
active = ((flag_for_surface_flux_coupling .or. do_fire_coupling) .and. do_mediator_atmosphere_ocean_fluxes)
[sncovr1_lnd]
standard_name = surface_snow_area_fraction_over_land_from_land
long_name = surface snow area fraction over land for coupling
long_name = surface snow area fraction over land for coupling
units = frac
dimensions = (horizontal_dimension)
type = real
Expand Down Expand Up @@ -9278,6 +9285,13 @@
dimensions = (horizontal_dimension)
type = real
kind = kind_phys
[dswsfcci]
standard_name = surface_downwelling_shortwave_flux_assuming_clear_sky
long_name = surface downwelling shortwave flux at current time assuming clear sky
units = W m-2
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
[nswsfci]
standard_name = surface_net_downwelling_shortwave_flux
long_name = surface net downwelling shortwave flux at current time
Expand Down
Loading