Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
531a3b7
Merge branch 'entr_f0f1' into ufs-dev-PR327
hertneky Nov 24, 2025
9fe0af3
Merge pull request #1179 from hertneky/ufs-dev-PR327
grantfirl Dec 2, 2025
0039828
CCPP metadata: relative_path --> dependencies_path (#329)
climbfuji Dec 17, 2025
02e756a
physics/SFC_Models/Land/Noahmp/lnd_iau_mod.F90: close namelist file w…
climbfuji Dec 31, 2025
c7818cc
physics/GWD/cires_ugwp_module.F90: if opening the namelist file fails…
climbfuji Dec 31, 2025
35e9980
Merge pull request #1181 from hertneky/ufs-dev-329
grantfirl Jan 5, 2026
673f127
Merge branch 'feature/gcycle_non6' into ufs-dev-PR336
hertneky Jan 6, 2026
c6b6e99
Prevent division by zero when applying free convection adjustment in…
Jan 16, 2026
18699e2
Remove unused variable (latr) from GWD schemes
matusmartini Jan 21, 2026
c6dd1ee
Remove white space, empty or duplicate lines
matusmartini Jan 21, 2026
a5709b3
Remove additional unused local variables from GWD schemes and remove
matusmartini Jan 21, 2026
4e408e7
Merge pull request #1186 from hertneky/ufs-dev-PR336
grantfirl Jan 23, 2026
6d3b661
Merge branch 'feature/inline_sync' into ufs-dev-PR298
grantfirl Jan 23, 2026
ff19404
Merge branch 'bugfixes/lnd_iau_and_cires_ugwp_namelist_reads' of http…
climbfuji Jan 25, 2026
d8566f5
Merge branch 'bugfix-nsstm-fpe' of https://github.com/matusmartini/cc…
climbfuji Jan 25, 2026
713ddac
Merge branch 'gwd_latr' of https://github.com/matusmartini/ccpp-physi…
climbfuji Jan 25, 2026
52a9db3
Merge pull request #1191 from climbfuji/feature/wrapper_1183_1188_118…
grantfirl Jan 28, 2026
3984842
Merge branch 'main' into ufs-dev-PR298
grantfirl Jan 28, 2026
89d98c7
Merge branch 'dev_alt_dfac' into ufs-devpr-349-343
scrasmussen Feb 13, 2026
f7be6c0
Merge branch 'fix/cleanup_sfcsub' into ufs-devpr-349-343
scrasmussen Feb 13, 2026
26b473d
Merge branch 'feature/hafsv2_sync' into ufs-dev-332
scrasmussen Feb 13, 2026
e84beb7
Merge pull request #1190 from grantfirl/ufs-dev-PR298
grantfirl Feb 24, 2026
469da7c
Merge branch 'main' into ufs-devpr-349-343
grantfirl Feb 24, 2026
f4c82f6
Merge pull request #1194 from scrasmussen/ufs-devpr-349-343
grantfirl Feb 24, 2026
3bf5d62
Merge branch 'main' into ufs-dev-332
grantfirl Feb 24, 2026
941cfd2
add Dom to CODEOWNERS file for automatic code review requests as repr…
grantfirl Feb 24, 2026
a2aa6cc
Merge pull request #1195 from scrasmussen/ufs-dev-332
grantfirl Feb 26, 2026
82e0d17
Update radlw_main.F90: remove comments at end of file for LLVM 22
climbfuji Feb 26, 2026
b6a5792
Apply suggestion from @climbfuji
climbfuji Feb 26, 2026
1318f22
Merge branch 'feature/mynn_sfc_submodule' into ufs-dev-PR345
hertneky Feb 27, 2026
ce4e0c9
Remove unused variables and improve comments in cnvc90.f
matusmartini Feb 28, 2026
2dfd4e4
Rename GWD/ugwp_driver_v0.F to GWD/ugwp_driver_v0.F90 and change
matusmartini Mar 3, 2026
3128ac8
Update line continuation in GWD/ugwp_driver_v0.F90
matusmartini Mar 3, 2026
f40264e
Add errflg, errmsg and remove unused constants in GWD/ugwp_driver_v0.F90
matusmartini Mar 3, 2026
20c79f5
Cleanup in GWD/ugwp_driver_v0.F90
matusmartini Mar 3, 2026
b983723
More cleanup in GWD/ugwp_driver_v0.F90
matusmartini Mar 3, 2026
35494d4
More cleanup in GWD/ugwp_driver_v0.F90
matusmartini Mar 3, 2026
bc8d0cc
Update CODEOWNERS with F90 change
matusmartini Mar 4, 2026
fff5748
Merge pull request #1200 from hertneky/ufs-dev-PR345
grantfirl Mar 11, 2026
2da943b
Merge branch 'bugfix/radlwmain_llvm22' into NRL_combo_20260316
grantfirl Mar 16, 2026
f863015
Merge branch 'cnvc90' into NRL_combo_20260316
grantfirl Mar 16, 2026
08726c8
Merge branch 'cleanup-ugwp_driver_v0' into NRL_combo_20260316
grantfirl Mar 16, 2026
3f4ad81
Merge pull request #1203 from grantfirl/NRL_combo_20260316
grantfirl Mar 17, 2026
85f3134
Read and broadcast data from MPI root rank during init and timestep i…
climbfuji Mar 23, 2026
a2fa199
Add ability to build with ip if it is found. sp is being replaced by …
scrasmussen Feb 25, 2026
1ab4de8
Merge pull request #1197 from scrasmussen/enhancement/build-with-ip
scrasmussen Mar 24, 2026
37cfc87
update several files to work with CCPP SCM after PR 1187
grantfirl Mar 26, 2026
05c3d48
Merge branch 'main' into NCAR-main-sync-20260401
grantfirl Apr 1, 2026
3170455
Merge branch 'main-PR1187-followup' into NCAR-main-sync-20260401
grantfirl Apr 1, 2026
750e7cc
update CODEOWNERS"
grantfirl Apr 1, 2026
60380e4
remove ccpp_bcast from aerinterp.F90/read_netfaer that causes hanging…
grantfirl Apr 8, 2026
6ea8384
remove ccpp_bcast in aerinterp.F90/read_netfaer_dl due to UFS hanging
grantfirl Apr 8, 2026
d0b7f92
Merge branch 'ufs/dev' into NCAR-main-sync-20260401
grantfirl Apr 10, 2026
d41d8c6
fix new compiler warning in mpiutil.F90
grantfirl Apr 13, 2026
e2a1222
Merge branch 'ufs/dev' into NCAR-main-sync-20260401
grantfirl Apr 29, 2026
06c8cae
Remove local mpiroot
dustinswales Jan 14, 2026
9f1ae08
Add initialization flags.
dustinswales Jan 14, 2026
24730c9
update MYNN-SFC submodule pointer
grantfirl May 1, 2026
37ad157
clean up truncated comment lines in radiation_gases.f
grantfirl May 6, 2026
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
6 changes: 2 additions & 4 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,5 @@
branch = main
[submodule "physics/SFC_Layer/MYNN/MYNN"]
path = physics/SFC_Layer/MYNN/MYNN
#url = https://github.com/NCAR/MYNN-SFC
#branch = main
url = https://github.com/grantfirl/MYNN-SFC
branch = feature/tendency_cleanup
url = https://github.com/NCAR/MYNN-SFC
branch = ccpp/dev
6 changes: 5 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -207,9 +207,13 @@ target_include_directories(ccpp_physics PUBLIC

target_link_libraries(ccpp_physics PRIVATE MPI::MPI_Fortran)
target_link_libraries(ccpp_physics PUBLIC w3emc::w3emc_d
sp::sp_d
NetCDF::NetCDF_Fortran
)
if(ip_FOUND)
target_link_libraries(ccpp_physics PUBLIC ip::ip_d)
else()
target_link_libraries(ccpp_physics PUBLIC sp::sp_d)
endif()
#add FMS for FV3 only
if(FV3 OR MPAS)
target_link_libraries(ccpp_physics PUBLIC fms)
Expand Down
4 changes: 2 additions & 2 deletions CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ physics/GWD/drag_suite.* @md
physics/GWD/gwdc.* @Songyou184 @grantfirl @rhaesung @Qingfu-Liu @dustinswales
physics/GWD/gwdps.* @Songyou184 @grantfirl @rhaesung @Qingfu-Liu @dustinswales
physics/GWD/rayleigh_damp.* @yangfanglin @grantfirl @rhaesung @Qingfu-Liu @dustinswales
physics/GWD/ugwp_driver_v0.F @mdtoyNOAA @grantfirl @rhaesung @Qingfu-Liu @dustinswales
physics/GWD/ugwp_driver_v0.F90 @mdtoyNOAA @grantfirl @rhaesung @Qingfu-Liu @dustinswales
physics/GWD/ugwpv1_gsldrag.* @mdtoyNOAA @BoYang-NOAA @grantfirl @rhaesung @Qingfu-Liu @dustinswales
physics/GWD/ugwpv1_gsldrag_post.* @mdtoyNOAA @BoYang-NOAA @grantfirl @rhaesung @Qingfu-Liu @dustinswales
physics/GWD/unified_ugwp* @mdtoyNOAA @grantfirl @rhaesung @Qingfu-Liu @dustinswales
Expand Down Expand Up @@ -149,7 +149,7 @@ physics/Interstitials/UFS_SCM_NEPTUNE/GFS_PBL_generic_pre.*
physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.fv3.* @grantfirl @rhaesung @Qingfu-Liu @dustinswales
physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.* @grantfirl @rhaesung @Qingfu-Liu @dustinswales
physics/Interstitials/UFS_SCM_NEPTUNE/GFS_physics_post.* @grantfirl @rhaesung @Qingfu-Liu @dustinswales
physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.* @grantfirl @rhaesung @Qingfu-Liu @dustinswales
physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.* @grantfirl @rhaesung @Qingfu-Liu @dustinswales
physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.fv3.* @grantfirl @rhaesung @Qingfu-Liu @dustinswales
physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.scm.* @grantfirl @rhaesung @Qingfu-Liu @dustinswales
physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.* @dustinswales @Qingfu-Liu @grantfirl @rhaesung @Qingfu-Liu @dustinswales
Expand Down
68 changes: 39 additions & 29 deletions physics/GWD/cires_tauamf_data.F90
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
module cires_tauamf_data

use machine, only: kind_phys
use mpi_f08
!...........................................................................................
! tabulated GW-sources: GRACILE/Ern et al., 2018 and/or Resolved GWs from C384-Annual run
!...........................................................................................
Expand All @@ -20,27 +21,28 @@ module cires_tauamf_data
contains

!>
subroutine read_tau_amf(me, master, errmsg, errflg)
subroutine read_tau_amf(mpicomm, mpirank, mpiroot, errmsg, errflg)

use netcdf
integer, intent(in) :: me, master
use netcdf
use mpiutil, only: ccpp_bcast
type(MPI_Comm), intent(in) :: mpicomm
integer, intent(in) :: mpirank, mpiroot
integer :: ncid, iernc, vid, dimid, status
integer :: k

character(len=*), intent(out) :: errmsg
integer, intent(out) :: errflg
!
iernc=NF90_OPEN(trim(ugwp_taufile), nf90_nowrite, ncid)
read_and_broadcast_1: if (mpirank==mpiroot) then
iernc=NF90_OPEN(trim(ugwp_taufile), nf90_nowrite, ncid)

if(iernc.ne.0) then
write(errmsg,'(*(a))') "read_tau_amf: cannot open file_limb_tab data-file ", &
trim(ugwp_taufile)
print *, 'cannot open ugwp-v1 tau-file=',trim(ugwp_taufile)
errflg = 1
return
else

endif

status = nf90_inq_dimid(ncid, "lat", DimID)
! if (status /= nf90_noerr) call handle_err(status)
Expand All @@ -50,28 +52,36 @@ subroutine read_tau_amf(me, master, errmsg, errflg)
status = nf90_inq_dimid(ncid, "days", DimID)
status = nf90_inquire_dimension(ncid, DimID, len =ntau_d2t )

if (me == master) print *, ntau_d1y, ntau_d2t, ' dimd of tau_ngw ugwp-v1 '
if (ntau_d2t .le. 0 .or. ntau_d1y .le. 0) then
print *, 'ugwp-v1 tau-file=', trim(ugwp_taufile)
print *, ' ugwp-v1: ', 'ntau_d2t=',ntau_d2t, 'ntau_d2t=',ntau_d1y
stop
endif

if (.not.allocated(ugwp_taulat)) allocate (ugwp_taulat(ntau_d1y ))
if (.not.allocated(days_limb)) allocate (days_limb(ntau_d2t))
if (.not.allocated(tau_limb)) allocate (tau_limb(ntau_d1y, ntau_d2t ))

iernc=nf90_inq_varid( ncid, 'DAYS', vid )
iernc= nf90_get_var( ncid, vid, days_limb)
iernc=nf90_inq_varid( ncid, 'LATS', vid )
iernc= nf90_get_var( ncid, vid, ugwp_taulat)
iernc=nf90_inq_varid( ncid, 'ABSMF', vid )
iernc= nf90_get_var( ncid, vid, tau_limb)

iernc=nf90_close(ncid)

endif

print *, ntau_d1y, ntau_d2t, ' dimd of tau_ngw ugwp-v1 '
if (ntau_d2t .le. 0 .or. ntau_d1y .le. 0) then
print *, 'ugwp-v1 tau-file=', trim(ugwp_taufile)
print *, ' ugwp-v1: ', 'ntau_d2t=',ntau_d2t, 'ntau_d2t=',ntau_d1y
errflg = 1
return
endif
endif read_and_broadcast_1

call ccpp_bcast(ntau_d1y, mpiroot, mpicomm, errflg)
call ccpp_bcast(ntau_d2t, mpiroot, mpicomm, errflg)

if (.not.allocated(ugwp_taulat)) allocate (ugwp_taulat(ntau_d1y ))
if (.not.allocated(days_limb)) allocate (days_limb(ntau_d2t))
if (.not.allocated(tau_limb)) allocate (tau_limb(ntau_d1y, ntau_d2t ))

read_and_broadcast_2: if (mpirank==mpiroot) then
iernc=nf90_inq_varid( ncid, 'DAYS', vid )
iernc= nf90_get_var( ncid, vid, days_limb)
iernc=nf90_inq_varid( ncid, 'LATS', vid )
iernc= nf90_get_var( ncid, vid, ugwp_taulat)
iernc=nf90_inq_varid( ncid, 'ABSMF', vid )
iernc= nf90_get_var( ncid, vid, tau_limb)
iernc=nf90_close(ncid)
endif read_and_broadcast_2

call ccpp_bcast(days_limb, mpiroot, mpicomm, errflg)
call ccpp_bcast(tau_limb, mpiroot, mpicomm, errflg)
call ccpp_bcast(ugwp_taulat, mpiroot, mpicomm, errflg)

end subroutine read_tau_amf

!>
Expand Down
101 changes: 47 additions & 54 deletions physics/GWD/cires_ugwp.F90
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ module cires_ugwp
!! \htmlinclude cires_ugwp_init.html
!!
subroutine cires_ugwp_init (me, master, nlunit, input_nml_file, logunit, &
fn_nml2, lonr, latr, levs, ak, bk, dtp, cdmbgwd, cgwf, &
fn_nml2, lonr, levs, ak, bk, dtp, cdmbgwd, cgwf, &
pa_rf_in, tau_rf_in, con_p0, gwd_opt,do_ugwp, errmsg, errflg)

!---- initialization of cires_ugwp
Expand All @@ -52,7 +52,6 @@ subroutine cires_ugwp_init (me, master, nlunit, input_nml_file, logunit, &
integer, intent (in) :: logunit
integer, intent (in) :: lonr
integer, intent (in) :: levs
integer, intent (in) :: latr
real(kind=kind_phys), intent (in) :: ak(:), bk(:)
real(kind=kind_phys), intent (in) :: dtp
real(kind=kind_phys), intent (in) :: cdmbgwd(:), cgwf(:) ! "scaling" controls for "old" GFS-GW schemes
Expand All @@ -64,11 +63,6 @@ subroutine cires_ugwp_init (me, master, nlunit, input_nml_file, logunit, &
character(len=*), intent (in) :: fn_nml2
!character(len=*), parameter :: fn_nml='input.nml'

integer :: ios
logical :: exists
real :: dxsg
integer :: k

character(len=*), intent(out) :: errmsg
integer, intent(out) :: errflg

Expand All @@ -77,19 +71,21 @@ subroutine cires_ugwp_init (me, master, nlunit, input_nml_file, logunit, &
errflg = 0

if (is_initialized) return

! Consistency checks
if (gwd_opt/=1) then
write(errmsg,'(*(a))') "Logic error: namelist choice of gravity wave &
& drag is different from cires_ugwp scheme"
errflg = 1
return
end if
end if

if (do_ugwp .or. cdmbgwd(3) > 0.0) then
call cires_ugwpv0_mod_init (me, master, nlunit, input_nml_file, logunit, &
fn_nml2, lonr, latr, levs, ak, bk, con_p0, dtp, &
cdmbgwd(1:2), cgwf, pa_rf_in, tau_rf_in)
fn_nml2, lonr, levs, ak, bk, con_p0, dtp, &
cdmbgwd(1:2), cgwf, pa_rf_in, tau_rf_in, &
errmsg, errflg)
if (errflg/=0) return
else
write(errmsg,'(*(a))') "Logic error: cires_ugwp_init called but do_ugwp is false and cdmbgwd(3) <= 0"
errflg = 1
Expand All @@ -106,7 +102,6 @@ subroutine cires_ugwp_init (me, master, nlunit, input_nml_file, logunit, &

end subroutine cires_ugwp_init


! -----------------------------------------------------------------------
! finalize of cires_ugwp (_finalize)
! -----------------------------------------------------------------------
Expand Down Expand Up @@ -136,7 +131,6 @@ subroutine cires_ugwp_finalize(errmsg, errflg)

end subroutine cires_ugwp_finalize


! -----------------------------------------------------------------------
! originally from ugwp_driver_v0.f
! driver of cires_ugwp (_driver)
Expand All @@ -147,45 +141,45 @@ end subroutine cires_ugwp_finalize
! -----------------------------------------------------------------------
!>@brief These subroutines and modules execute the CIRES UGWP Version 0.
!> \section gen_cires_ugwp CIRES UGWP V0 Scheme General Algorithm
!! The physics of Non-Orographic Gravity Waves (NGWs) in the UGWP framework
!!(Yudin et al. 2018 \cite yudin_et_al_2018) is represented by four GW-solvers, introduced in
!!Lindzen (1981) \cite lindzen_1981, Hines (1997) \cite hines_1997, Alexander
!!and Dunkerton (1999) \cite alexander_and_dunkerton_1999, and Scinocca (2003) \cite scinocca_2003.
!!A major modification of these GW solvers was introduced with the addition of the
!!background dissipation of temperature and winds to the saturation criteria for wave breaking.
!!This feature is important in the mesosphere and thermosphere for WAM applications and it
!!considers appropriate scale-dependent dissipation of waves near the model top lid providing
!!the momentum and energy conservation in the vertical column physics (Shaw and
!!Shepherd (2009) \cite shaw_and_shepherd_2009). In the UGWP-v0 scheme, a modification of the
!!Scinocca (2003) \cite scinocca_2003 algorithm for NGWs with non-hydrostatic and rotational
!!effects for GW propagations and background dissipation is contained in the subroutine
!!fv3_ugwp_solv2_v0. Future development plans for the UGWP scheme include additional GW-solvers
!!to be implemented along with physics-based triggering of waves and stochastic approaches
!!for selection of GW modes characterized by horizontal phase velocities, azimuthal
!! The physics of Non-Orographic Gravity Waves (NGWs) in the UGWP framework
!!(Yudin et al. 2018 \cite yudin_et_al_2018) is represented by four GW-solvers, introduced in
!!Lindzen (1981) \cite lindzen_1981, Hines (1997) \cite hines_1997, Alexander
!!and Dunkerton (1999) \cite alexander_and_dunkerton_1999, and Scinocca (2003) \cite scinocca_2003.
!!A major modification of these GW solvers was introduced with the addition of the
!!background dissipation of temperature and winds to the saturation criteria for wave breaking.
!!This feature is important in the mesosphere and thermosphere for WAM applications and it
!!considers appropriate scale-dependent dissipation of waves near the model top lid providing
!!the momentum and energy conservation in the vertical column physics (Shaw and
!!Shepherd (2009) \cite shaw_and_shepherd_2009). In the UGWP-v0 scheme, a modification of the
!!Scinocca (2003) \cite scinocca_2003 algorithm for NGWs with non-hydrostatic and rotational
!!effects for GW propagations and background dissipation is contained in the subroutine
!!fv3_ugwp_solv2_v0. Future development plans for the UGWP scheme include additional GW-solvers
!!to be implemented along with physics-based triggering of waves and stochastic approaches
!!for selection of GW modes characterized by horizontal phase velocities, azimuthal
!!directions and magnitude of the vertical momentum flux (VMF).
!!
!! In UGWP-v0, the specification for the VMF function is adopted from the
!! GEOS-5 global atmosphere model of GMAO NASA/GSFC, as described in
!! Molod et al. (2015) \cite molod_et_al_2015 and employed in the MERRRA-2
!! reanalysis (Gelaro et al., 2017 \cite gelaro_et_al_2017). The Fortran
!! subroutine slat_geos5_tamp_v0() describes the latitudinal shape of
!! VMF-function as displayed in Figure 3 of Molod et al. (2015)
!! \cite molod_et_al_2015. It shows that the enhanced values of
!! VMF in the equatorial region gives opportunity to simulate the
!! QBO-like oscillations in the equatorial zonal winds and lead to more
!! realistic simulations of the equatorial dynamics in GEOS-5 operational
!! and MERRA-2 reanalysis products. For the first vertically extended
!! version of FV3GFS in the stratosphere and mesosphere, this simplified
!! function of VMF allows us to tune the model climate and to evaluate
!! multi-year simulations of FV3GFS with the MERRA-2 and ERA-5 reanalysis
!! products, along with temperature, ozone, and water vapor observations
!! of current satellite missions. After delivery of the UGWP-code, the
!! EMC group developed and tested approach to modulate the zonal mean
!! NGW forcing by 3D-distributions of the total precipitation as a proxy
!! for the excitation of NGWs by convection and the vertically-integrated
!! (surface - tropopause) Turbulent Kinetic Energy (TKE). The verification
!! scores with updated NGW forcing, as reported elsewhere by EMC researchers,
!! display noticeable improvements in the forecast scores produced by
!! In UGWP-v0, the specification for the VMF function is adopted from the
!! GEOS-5 global atmosphere model of GMAO NASA/GSFC, as described in
!! Molod et al. (2015) \cite molod_et_al_2015 and employed in the MERRRA-2
!! reanalysis (Gelaro et al., 2017 \cite gelaro_et_al_2017). The Fortran
!! subroutine slat_geos5_tamp_v0() describes the latitudinal shape of
!! VMF-function as displayed in Figure 3 of Molod et al. (2015)
!! \cite molod_et_al_2015. It shows that the enhanced values of
!! VMF in the equatorial region gives opportunity to simulate the
!! QBO-like oscillations in the equatorial zonal winds and lead to more
!! realistic simulations of the equatorial dynamics in GEOS-5 operational
!! and MERRA-2 reanalysis products. For the first vertically extended
!! version of FV3GFS in the stratosphere and mesosphere, this simplified
!! function of VMF allows us to tune the model climate and to evaluate
!! multi-year simulations of FV3GFS with the MERRA-2 and ERA-5 reanalysis
!! products, along with temperature, ozone, and water vapor observations
!! of current satellite missions. After delivery of the UGWP-code, the
!! EMC group developed and tested approach to modulate the zonal mean
!! NGW forcing by 3D-distributions of the total precipitation as a proxy
!! for the excitation of NGWs by convection and the vertically-integrated
!! (surface - tropopause) Turbulent Kinetic Energy (TKE). The verification
!! scores with updated NGW forcing, as reported elsewhere by EMC researchers,
!! display noticeable improvements in the forecast scores produced by
!! FV3GFS configuration extended into the mesosphere.
!!
!> \section arg_table_cires_ugwp_run Argument Table
Expand Down Expand Up @@ -302,8 +296,9 @@ subroutine cires_ugwp_run(do_ugwp, me, master, im, levs, ntrac, dtp, kdt, lonr
ugrs, vgrs, tgrs, qgrs(:,:,1), kpbl, prsi,del,prsl, prslk, phii, phil, &
dtp, kdt, sgh30, hprime, oc, oa4, clx, theta, sigma, gamma, elvmax, &
dusfcg, dvsfcg, xlat_d, sinlat, coslat, area, cdmbgwd(1:2), &
me, master, rdxzb, con_g, con_omega, zmtb, zogw, tau_mtb, tau_ogw, &
tau_tofd, dudt_mtb, dudt_ogw, dudt_tms)
me, master, rdxzb, zmtb, zogw, tau_mtb, tau_ogw, &
tau_tofd, dudt_mtb, dudt_ogw, dudt_tms, &
errmsg, errflg)

else ! calling old GFS gravity wave drag as is

Expand Down Expand Up @@ -337,7 +332,6 @@ subroutine cires_ugwp_run(do_ugwp, me, master, im, levs, ntrac, dtp, kdt, lonr

endif ! do_ugwp


if(ldiag3d .and. lssav .and. .not. flag_for_gwd_generic_tend) then
idtend = dtidx(index_of_x_wind,index_of_process_orographic_gwd)
if(idtend>=1) then
Expand All @@ -352,7 +346,6 @@ subroutine cires_ugwp_run(do_ugwp, me, master, im, levs, ntrac, dtp, kdt, lonr
dtend(:,:,idtend) = dtend(:,:,idtend) + Pdtdt*dtp
endif
endif


if (cdmbgwd(3) > 0.0) then

Expand Down
11 changes: 2 additions & 9 deletions physics/GWD/cires_ugwp.meta
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
type = scheme
# DH* 20200804 - this is a result of the nasty hack to call gwdps from within ugwp-v0!
dependencies=cires_ugwp_triggers.F90,cires_ugwp_initialize.F90
dependencies=cires_orowam2017.f,cires_ugwp_module.F90,gwdps.f,../hooks/machine.F,ugwp_driver_v0.F
dependencies=cires_orowam2017.f,cires_ugwp_module.F90,gwdps.f,../hooks/machine.F,ugwp_driver_v0.F90

########################################################################
[ccpp-arg-table]
Expand Down Expand Up @@ -60,13 +60,6 @@
dimensions = ()
type = integer
intent = in
[latr]
standard_name = number_of_latitude_points
long_name = number of global points in y-dir (j) along the meridian
units = count
dimensions = ()
type = integer
intent = in
[levs]
standard_name = vertical_layer_dimension
long_name = number of vertical levels
Expand Down Expand Up @@ -798,7 +791,7 @@
type = real
kind = kind_phys
intent = in
[dqdt_tke]
[dqdt_tke]
standard_name = process_split_cumulative_tendency_of_turbulent_kinetic_energy
long_name = turbulent kinetic energy tendency due to model physics
units = J kg-1 s-1
Expand Down
Loading
Loading