Skip to content

Commit

Permalink
Add SW clear-sky downward flux at surface to available diagnostics
Browse files Browse the repository at this point in the history
  • Loading branch information
dustinswales authored and grantfirl committed Dec 2, 2024
1 parent 6e0467a commit 6abc4fe
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 7 deletions.
1 change: 1 addition & 0 deletions physics/Interstitials/UFS_SCM_NEPTUNE/GFS_debug.F90
Original file line number Diff line number Diff line change
Expand Up @@ -694,6 +694,7 @@ subroutine GFS_diagtoscreen_run (Model, Statein, Stateout, Sfcprop, Coupling,
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Diag%dlwsfci ', Diag%dlwsfci)
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Diag%ulwsfci ', Diag%ulwsfci)
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Diag%dswsfci ', Diag%dswsfci)
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Diag%dswsfcci ', Diag%dswsfcci)
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Diag%nswsfci ', Diag%nswsfci)
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Diag%uswsfci ', Diag%uswsfci)
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Diag%dusfci ', Diag%dusfci)
Expand Down
13 changes: 8 additions & 5 deletions physics/Interstitials/UFS_SCM_NEPTUNE/dcyc2t3.f
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ module dcyc2t3
! ( solhr,slag,sdec,cdec,sinlat,coslat, !
! xlon,coszen,tsfc_lnd,tsfc_ice,tsfc_wat, !
! tf,tsflw,sfcemis_lnd,sfcemis_ice,sfcemis_wat, !
! sfcdsw,sfcnsw,sfcdlw,sfculw,swh,swhc,hlw,hlwc, !
! sfcdsw,sfcdswc,sfcnsw,sfcdlw,sfculw,swh,swhc,hlw,hlwc, !
! sfcnirbmu,sfcnirdfu,sfcvisbmu,sfcvisdfu, !
! sfcnirbmd,sfcnirdfd,sfcvisbmd,sfcvisdfd, !
! im, levs, deltim, fhswr, !
Expand Down Expand Up @@ -68,6 +68,7 @@ module dcyc2t3
! sfcemis_wat(im) - real, surface emissivity (fraction) o. ocean (k)!
! tsflw (im) - real, sfc air (layer 1) temp in k saved in lw call !
! sfcdsw (im) - real, total sky sfc downward sw flux ( w/m**2 ) !
! sfcdswc (im) - real, clear sky sfc downward sw flux ( w/m**2 ) !
! sfcnsw (im) - real, total sky sfc net sw into ground (w/m**2) !
! sfcdlw (im) - real, total sky sfc downward lw flux ( w/m**2 ) !
! sfculw (im) - real, total sky sfc upward lw flux ( w/m**2 ) !
Expand Down Expand Up @@ -98,6 +99,7 @@ module dcyc2t3
! !
! outputs: !
! adjsfcdsw(im)- real, time step adjusted sfc dn sw flux (w/m**2) !
! adjsfcdswc(im)- real, time step adjusted sfc dn sw flux (w/m**2) !
! adjsfcnsw(im)- real, time step adj sfc net sw into ground (w/m**2)!
! adjsfcdlw(im)- real, time step adjusted sfc dn lw flux (w/m**2) !
! adjsfculw_lnd(im)- real, sfc upw. lw flux at current time (w/m**2)!
Expand Down Expand Up @@ -169,7 +171,7 @@ subroutine dcyc2t3_run &
& con_g, con_cp, con_pi, con_sbc, &
& xlon,coszen,tsfc_lnd,tsfc_ice,tsfc_wat,tf,tsflw,tsfc, &
& sfcemis_lnd, sfcemis_ice, sfcemis_wat, &
& sfcdsw,sfcnsw,sfcdlw,swh,swhc,hlw,hlwc, &
& sfcdsw,sfcdswc,sfcnsw,sfcdlw,swh,swhc,hlw,hlwc, &
& sfcnirbmu,sfcnirdfu,sfcvisbmu,sfcvisdfu, &
& sfcnirbmd,sfcnirdfd,sfcvisbmd,sfcvisdfd, &
& im, levs, deltim, fhswr, &
Expand All @@ -181,7 +183,7 @@ subroutine dcyc2t3_run &
! --- input/output:
& dtdt,dtdtnp,htrlw, &
! --- outputs:
& adjsfcdsw,adjsfcnsw,adjsfcdlw, &
& adjsfcdsw,adjsfcdswc,adjsfcnsw,adjsfcdlw, &
& adjsfculw_lnd,adjsfculw_ice,adjsfculw_wat,xmu,xcosz, &
& adjnirbmu,adjnirdfu,adjvisbmu,adjvisdfu, &
& adjnirbmd,adjnirdfd,adjvisbmd,adjvisdfd, &
Expand Down Expand Up @@ -214,7 +216,7 @@ subroutine dcyc2t3_run &

real(kind=kind_phys), dimension(:), intent(in) :: &
& sinlat, coslat, xlon, coszen, tf, tsflw, sfcdlw, &
& sfcdsw, sfcnsw, sfculw, tsfc
& sfcdsw, sfcdswc, sfcnsw, sfculw, tsfc
real(kind=kind_phys), dimension(:), intent(in), optional :: &
& sfculw_med, tsfc_radtime
real(kind=kind_phys), dimension(:), intent(in) :: &
Expand Down Expand Up @@ -247,7 +249,7 @@ subroutine dcyc2t3_run &
real(kind=kind_phys), dimension(:), intent(out) :: &
& adjsfcdsw, adjsfcnsw, adjsfcdlw, xmu, xcosz, &
& adjnirbmu, adjnirdfu, adjvisbmu, adjvisdfu, &
& adjnirbmd, adjnirdfd, adjvisbmd, adjvisdfd
& adjnirbmd, adjnirdfd, adjvisbmd, adjvisdfd, adjsfcdswc

real(kind=kind_phys), dimension(:), intent(out) :: &
& adjsfculw_lnd, adjsfculw_ice, adjsfculw_wat
Expand Down Expand Up @@ -370,6 +372,7 @@ subroutine dcyc2t3_run &

adjsfcnsw(i) = sfcnsw(i) * xmu(i)
adjsfcdsw(i) = sfcdsw(i) * xmu(i)
adjsfcdswc(i)= sfcdswc(i) * xmu(i)

adjnirbmu(i) = sfcnirbmu(i) * xmu(i)
adjnirdfu(i) = sfcnirdfu(i) * xmu(i)
Expand Down
16 changes: 16 additions & 0 deletions physics/Interstitials/UFS_SCM_NEPTUNE/dcyc2t3.meta
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,14 @@
type = real
kind = kind_phys
intent = in
[sfcdswc]
standard_name = surface_downwelling_shortwave_flux_on_radiation_timestep_assuming_clear_sky
long_name = clear sky surface downwelling shortwave flux on radiation time step
units = W m-2
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
intent = in
[sfcdlw]
standard_name = surface_downwelling_longwave_flux_on_radiation_timestep
long_name = total sky surface downwelling longwave flux on radiation time step
Expand Down Expand Up @@ -515,6 +523,14 @@
type = real
kind = kind_phys
intent = out
[adjsfcdswc]
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
intent = out
[adjsfcnsw]
standard_name = surface_net_downwelling_shortwave_flux
long_name = surface net downwelling shortwave flux at current time
Expand Down
6 changes: 4 additions & 2 deletions physics/Radiation/RRTMG/rrtmg_sw_post.F90
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ subroutine rrtmg_sw_post_run (im, levr, levs, ltp, nday, lm, kd, lsswr, &
swhtr, sfcalb1, sfcalb2, sfcalb3, sfcalb4, htswc, htsw0, &
nirbmdi, nirdfdi, visbmdi, visdfdi, nirbmui, nirdfui, visbmui,&
visdfui, sfcdsw, sfcnsw, htrsw, swhc, scmpsw, sfcfsw, topfsw, &
errmsg, errflg)
sfcdswc, errmsg, errflg)

use machine, only: kind_phys
use module_radsw_parameters, only: topfsw_type, sfcfsw_type, &
Expand All @@ -33,7 +33,8 @@ subroutine rrtmg_sw_post_run (im, levr, levs, ltp, nday, lm, kd, lsswr, &
visbmdi, visdfdi, &
nirbmui, nirdfui, &
visbmui, visdfui, &
sfcdsw, sfcnsw
sfcdsw, sfcnsw, &
sfcdswc
real(kind=kind_phys), dimension(:,:), intent(inout) :: htrsw, swhc

type(cmpfsw_type), dimension(:), intent(inout) :: scmpsw
Expand Down Expand Up @@ -122,6 +123,7 @@ subroutine rrtmg_sw_post_run (im, levr, levs, ltp, nday, lm, kd, lsswr, &
do i=1,im
sfcnsw(i) = sfcfsw(i)%dnfxc - sfcfsw(i)%upfxc
sfcdsw(i) = sfcfsw(i)%dnfxc
sfcdswc(i)= sfcfsw(i)%dnfx0
enddo

endif ! end_if_lsswr
Expand Down
8 changes: 8 additions & 0 deletions physics/Radiation/RRTMG/rrtmg_sw_post.meta
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,14 @@
type = real
kind = kind_phys
intent = inout
[sfcdswc]
standard_name = surface_downwelling_shortwave_flux_on_radiation_timestep_assuming_clear_sky
long_name = clear sky sfc downward sw flux
units = W m-2
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
intent = inout
[htrsw]
standard_name = tendency_of_air_temperature_due_to_shortwave_heating_on_radiation_timestep
long_name = total sky sw heating rate
Expand Down

0 comments on commit 6abc4fe

Please sign in to comment.