Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 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
2 changes: 1 addition & 1 deletion physics/CONV/Grell_Freitas/cu_gf_driver.F90
Original file line number Diff line number Diff line change
Expand Up @@ -427,7 +427,7 @@ subroutine cu_gf_driver_run(ntracer,garea,im,km,dt,flag_init,flag_restart, gf_co
ccn_m(i) = 0.

! set aod and ccn
if ((flag_init .and. .not.flag_restart) .or. gf_coldstart) then
if ((flag_init) .and. (.not.flag_restart .or. gf_coldstart)) then
aod_gf(i)=aodc0
else
if((cactiv(i).eq.0) .and. (cactiv_m(i).eq.0))then
Expand Down
2 changes: 1 addition & 1 deletion physics/CONV/Grell_Freitas/cu_gf_driver_pre.F90
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ subroutine cu_gf_driver_pre_run (flag_init, flag_restart, gf_coldstart, kdt, fho
! For restart runs, can assume that prevst and prevsq
! are read from the restart files beforehand, same
! for conv_act.
if((flag_init .and. .not.flag_restart) .or. gf_coldstart) then
if((flag_init) .and. (.not.flag_restart .or. gf_coldstart)) then
!$acc kernels
forcet(:,:)=0.0
forceq(:,:)=0.0
Expand Down
3 changes: 2 additions & 1 deletion physics/CONV/SAMF/samfdeepcnv.f
Original file line number Diff line number Diff line change
Expand Up @@ -2939,7 +2939,8 @@ subroutine samfdeepcnv_run (im,km,first_time_step,restart, &
flag_shallow = .false.
flag_mid = .false.
call progsigma_calc(im,km,first_time_step,restart,flag_shallow,
& flag_mid,del,tmfq,qmicro,dbyo1,zdqca,omega_u,zeta,hvap,
& flag_mid,sigmab_coldstart,del,tmfq,qmicro,dbyo1,zdqca,
& omega_u,zeta,hvap,
& delt,qadv,kbcon1,ktcon,cnvflg,betascu,betamcu,betadcu,
& sigmind,sigminm,sigmins,sigmain,sigmaout,sigmab)
endif
Expand Down
11 changes: 7 additions & 4 deletions physics/CONV/SAMF/samfshalcnv.f
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,8 @@ subroutine samfshalcnv_run(im,km,itc,ntc,cliq,cp,cvap, &
& rn,kbot,ktop,kcnv,islimsk,garea, &
& dot,ncloud,hpbl,ud_mf,dt_mf,cnvw,cnvc, &
& clam,c0s,c1,evef,pgcon,asolfac,hwrf_samfshal, &
& sigmain,sigmaout,betadcu,betamcu,betascu,errmsg,errflg)
& sigmain,sigmaout,betadcu,betamcu,betascu,sigmab_coldstart, &
& errmsg,errflg)
!
use machine , only : kind_phys
use funcphys , only : fpvs
Expand Down Expand Up @@ -89,7 +90,7 @@ subroutine samfshalcnv_run(im,km,itc,ntc,cliq,cp,cvap, &
real(kind=kind_phys), intent(in) :: clam, c0s, c1, &
& asolfac, evef, pgcon
logical, intent(in) :: hwrf_samfshal,first_time_step, &
& restart,progsigma
& restart,progsigma,sigmab_coldstart
character(len=*), intent(out) :: errmsg
integer, intent(out) :: errflg
!
Expand Down Expand Up @@ -1955,7 +1956,8 @@ subroutine samfshalcnv_run(im,km,itc,ntc,cliq,cp,cvap, &
!> - From Bengtsson et al. (2022) \cite Bengtsson_2022 prognostic closure scheme, equation 8, call progsigma_calc() to compute updraft area fraction based on a moisture budget
if(progsigma)then
! Initial computations, dynamic q-tendency
if(first_time_step .and. .not.restart)then
if(first_time_step .and. (.not.restart
& .or. sigmab_coldstart))then
do k = 1,km
do i = 1,im
qadv(i,k)=0.
Expand All @@ -1978,7 +1980,8 @@ subroutine samfshalcnv_run(im,km,itc,ntc,cliq,cp,cvap, &
flag_shallow = .true.
flag_mid = .false.
call progsigma_calc(im,km,first_time_step,restart,flag_shallow,
& flag_mid,del,tmfq,qmicro,dbyo1,zdqca,omega_u,zeta,hvap,
& flag_mid,sigmab_coldstart,del,tmfq,qmicro,dbyo1,zdqca,
& omega_u,zeta,hvap,
& delt,qadv,kbcon1,ktcon,cnvflg,betascu,betamcu,betadcu,
& sigmind,sigminm,sigmins,sigmain,sigmaout,sigmab)
endif
Expand Down
7 changes: 7 additions & 0 deletions physics/CONV/SAMF/samfshalcnv.meta
Original file line number Diff line number Diff line change
Expand Up @@ -505,6 +505,13 @@
dimensions = ()
type = real
intent = in
[sigmab_coldstart]
standard_name = flag_to_cold_start_for_sigmab_init
long_name = flag to cold start for sigmab initialization
units = flag
dimensions = ()
type = logical
intent = in
[errmsg]
standard_name = ccpp_error_message
long_name = error message for error handling in CCPP
Expand Down
6 changes: 4 additions & 2 deletions physics/CONV/progsigma_calc.f90
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ module progsigma
!! used in the closure computations in the samfshalcnv. scheme
!!\section gen_progsigma progsigma_calc General Algorithm
subroutine progsigma_calc (im,km,flag_init,flag_restart,flag_shallow,&
flag_mid,del,tmf,qmicro,dbyo1,zdqca,omega_u,zeta,hvap, &
flag_mid,sigmab_coldstart,del,tmf,qmicro,dbyo1,zdqca,omega_u,zeta,hvap, &
delt,qadv,kbcon1,ktcon,cnvflg,betascu,betamcu,betadcu, &
sigmind,sigminm,sigmins,sigmain,sigmaout,sigmab)
!
Expand All @@ -38,6 +38,7 @@ subroutine progsigma_calc (im,km,flag_init,flag_restart,flag_shallow,&
qmicro(im,km),tmf(im,km),dbyo1(im,km),zdqca(im,km), &
omega_u(im,km),zeta(im,km)
logical, intent(in) :: flag_init,flag_restart,cnvflg(im),flag_shallow,flag_mid
logical, intent(in) :: sigmab_coldstart
real(kind=kind_phys), intent(in) :: sigmain(im,km)

! intent out
Expand All @@ -63,7 +64,8 @@ subroutine progsigma_calc (im,km,flag_init,flag_restart,flag_shallow,&
km1=km-1
invdelt = 1./delt

if (flag_init) then
if (flag_init .and. (.not. flag_restart &
.or. sigmab_coldstart)) then
sigmind_new=0.0
else
sigmind_new=sigmind
Expand Down
Loading