Skip to content

Commit e1b6a92

Browse files
committed
Merge branch 'sigmab_fix' into rrfsv1-to-ufs/dev10
2 parents 50a7846 + b2d5032 commit e1b6a92

File tree

7 files changed

+49
-16
lines changed

7 files changed

+49
-16
lines changed

physics/CONV/SAMF/samfdeepcnv.f

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ subroutine samfdeepcnv_run (im,km,first_time_step,restart, &
8484
& clam,c0s,c1,betal,betas,evef,pgcon,asolfac, &
8585
& do_ca, ca_closure, ca_entr, ca_trigger, nthresh,ca_deep, &
8686
& rainevap,sigmain,sigmaout,betadcu,betamcu,betascu, &
87-
& maxMF, do_mynnedmf,errmsg,errflg)
87+
& maxMF, do_mynnedmf,sigmab_coldstart,errmsg,errflg)
8888
!
8989
use machine , only : kind_phys
9090
use funcphys , only : fpvs
@@ -100,7 +100,7 @@ subroutine samfdeepcnv_run (im,km,first_time_step,restart, &
100100
& prslp(:,:), garea(:), hpbl(:), dot(:,:), phil(:,:)
101101
real(kind=kind_phys), dimension(:), intent(in) :: fscav
102102
logical, intent(in) :: first_time_step,restart,hwrf_samfdeep, &
103-
& progsigma,do_mynnedmf
103+
& progsigma,do_mynnedmf,sigmab_coldstart
104104
real(kind=kind_phys), intent(in) :: nthresh,betadcu,betamcu, &
105105
& betascu
106106
real(kind=kind_phys), intent(in), optional :: ca_deep(:)
@@ -2917,7 +2917,8 @@ subroutine samfdeepcnv_run (im,km,first_time_step,restart, &
29172917
if(progsigma)then
29182918

29192919
!Initial computations, dynamic q-tendency
2920-
if(first_time_step .and. .not.restart)then
2920+
if(first_time_step .and. (.not.restart
2921+
& .or. sigmab_coldstart))then
29212922
do k = 1,km
29222923
do i = 1,im
29232924
qadv(i,k)=0.

physics/CONV/SAMF/samfdeepcnv.meta

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -494,6 +494,13 @@
494494
dimensions = ()
495495
type = logical
496496
intent = in
497+
[sigmab_coldstart]
498+
standard_name = flag_to_cold_start_for_sigmab_init
499+
long_name = flag to cold start for sigmab initialization
500+
units = flag
501+
dimensions = ()
502+
type = logical
503+
intent = in
497504
[qlcn]
498505
standard_name = mass_fraction_of_convective_cloud_liquid_water
499506
long_name = mass fraction of convective cloud liquid water

physics/CONV/progsigma_calc.f90

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ subroutine progsigma_calc (im,km,flag_init,flag_restart,flag_shallow,&
5454

5555
real(kind=kind_phys) :: gcvalmx,epsilon,ZZ,cvg,mcon,buy2, &
5656
fdqb,dtdyn,dxlim,rmulacvg,tem, &
57-
DEN,dp1,invdelt
57+
DEN,dp1,invdelt,sigmind_new
5858

5959
!Parameters
6060
gcvalmx = 0.1
@@ -63,6 +63,12 @@ subroutine progsigma_calc (im,km,flag_init,flag_restart,flag_shallow,&
6363
km1=km-1
6464
invdelt = 1./delt
6565

66+
if (flag_init) then
67+
sigmind_new=0.0
68+
else
69+
sigmind_new=sigmind
70+
end if
71+
6672
!Initialization 2D
6773
do k = 1,km
6874
do i = 1,im
@@ -168,13 +174,6 @@ subroutine progsigma_calc (im,km,flag_init,flag_restart,flag_shallow,&
168174
enddo
169175

170176
!sigmab
171-
if(flag_init .and. .not. flag_restart)then
172-
do i = 1,im
173-
if(cnvflg(i))then
174-
sigmab(i)=0.03
175-
endif
176-
enddo
177-
else
178177
do i = 1,im
179178
if(cnvflg(i))then
180179
DEN=MIN(termC(i)+termB(i),1.E8)
@@ -186,11 +185,10 @@ subroutine progsigma_calc (im,km,flag_init,flag_restart,flag_shallow,&
186185
sigmab(i)=(ZZ*(termA(i)+cvg))/(DEN+(1.0-ZZ))
187186
if(sigmab(i)>0.)then
188187
sigmab(i)=MIN(sigmab(i),0.95)
189-
sigmab(i)=MAX(sigmab(i),0.01)
188+
sigmab(i)=MAX(sigmab(i),sigmind_new)
190189
endif
191190
endif!cnvflg
192191
enddo
193-
endif
194192

195193
do k=1,km
196194
do i=1,im
@@ -219,7 +217,7 @@ subroutine progsigma_calc (im,km,flag_init,flag_restart,flag_shallow,&
219217
do i= 1, im
220218
if(cnvflg(i)) then
221219
sigmab(i)=sigmab(i)/betadcu
222-
sigmab(i)=MAX(sigmind,sigmab(i))
220+
sigmab(i)=MAX(sigmind_new,sigmab(i))
223221
endif
224222
enddo
225223
endif

physics/Interstitials/UFS_SCM_NEPTUNE/GFS_debug.F90

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -694,6 +694,7 @@ subroutine GFS_diagtoscreen_run (Model, Statein, Stateout, Sfcprop, Coupling,
694694
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Diag%dlwsfci ', Diag%dlwsfci)
695695
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Diag%ulwsfci ', Diag%ulwsfci)
696696
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Diag%dswsfci ', Diag%dswsfci)
697+
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Diag%dswsfcci ', Diag%dswsfcci)
697698
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Diag%nswsfci ', Diag%nswsfci)
698699
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Diag%uswsfci ', Diag%uswsfci)
699700
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Diag%dusfci ', Diag%dusfci)

physics/Interstitials/UFS_SCM_NEPTUNE/dcyc2t3.meta

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,14 @@
191191
type = real
192192
kind = kind_phys
193193
intent = in
194+
[sfcdswc]
195+
standard_name = surface_downwelling_shortwave_flux_on_radiation_timestep_assuming_clear_sky
196+
long_name = clear sky surface downwelling shortwave flux on radiation time step
197+
units = W m-2
198+
dimensions = (horizontal_loop_extent)
199+
type = real
200+
kind = kind_phys
201+
intent = in
194202
[sfcdlw]
195203
standard_name = surface_downwelling_longwave_flux_on_radiation_timestep
196204
long_name = total sky surface downwelling longwave flux on radiation time step
@@ -515,6 +523,14 @@
515523
type = real
516524
kind = kind_phys
517525
intent = out
526+
[adjsfcdswc]
527+
standard_name = surface_downwelling_shortwave_flux_assuming_clear_sky
528+
long_name = surface downwelling shortwave flux at current time assuming clear sky
529+
units = W m-2
530+
dimensions = (horizontal_loop_extent)
531+
type = real
532+
kind = kind_phys
533+
intent = out
518534
[adjsfcnsw]
519535
standard_name = surface_net_downwelling_shortwave_flux
520536
long_name = surface net downwelling shortwave flux at current time

physics/Radiation/RRTMG/rrtmg_sw_post.F90

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ subroutine rrtmg_sw_post_run (im, levr, levs, ltp, nday, lm, kd, lsswr, &
1414
swhtr, sfcalb1, sfcalb2, sfcalb3, sfcalb4, htswc, htsw0, &
1515
nirbmdi, nirdfdi, visbmdi, visdfdi, nirbmui, nirdfui, visbmui,&
1616
visdfui, sfcdsw, sfcnsw, htrsw, swhc, scmpsw, sfcfsw, topfsw, &
17-
errmsg, errflg)
17+
sfcdswc, errmsg, errflg)
1818

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

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

127129
endif ! end_if_lsswr

physics/Radiation/RRTMG/rrtmg_sw_post.meta

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,14 @@
198198
type = real
199199
kind = kind_phys
200200
intent = inout
201+
[sfcdswc]
202+
standard_name = surface_downwelling_shortwave_flux_on_radiation_timestep_assuming_clear_sky
203+
long_name = clear sky sfc downward sw flux
204+
units = W m-2
205+
dimensions = (horizontal_loop_extent)
206+
type = real
207+
kind = kind_phys
208+
intent = inout
201209
[htrsw]
202210
standard_name = tendency_of_air_temperature_due_to_shortwave_heating_on_radiation_timestep
203211
long_name = total sky sw heating rate

0 commit comments

Comments
 (0)