Skip to content

Commit 85eb494

Browse files
authored
Merge pull request #250 from Ovewh/diagnostics/beernartz_cdnc
Re-introduction of few diagnostics in the microphysics Some diagnostics in the microphysics did not make it through the pumas microphysics update. This PR re-introduces those diagnostics (the Bennartz mg diagnostics CCN_B ACTNL_B and FCTL_B) Contributors: @Ovewh Reviewers: @gold2718 @oyvindseland Changes made to build system: None Changes made to the namelist: None Changes to the defaults for the boundary datasets: None Substantial timing or memory changes: None BFB
2 parents 9681ab4 + b69bba6 commit 85eb494

1 file changed

Lines changed: 58 additions & 1 deletion

File tree

src/physics/cam7/micro_pumas_cam.F90

Lines changed: 58 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ module micro_pumas_cam
3333

3434
use cldfrc2m, only: rhmini=>rhmini_const
3535

36-
use cam_history, only: addfld, add_default, outfld, horiz_only
36+
use cam_history, only: addfld, add_default, outfld, horiz_only, hist_fld_active
3737

3838
use cam_logfile, only: iulog
3939
use cam_abortutils, only: endrun
@@ -1152,6 +1152,11 @@ subroutine micro_pumas_cam_init(pbuf2d)
11521152
call addfld ('FCTL', horiz_only, 'A', 'fraction', 'Fractional occurrence of cloud top liquid', sampled_on_subcycle=.true.)
11531153
call addfld ('FCTI', horiz_only, 'A', 'fraction', 'Fractional occurrence of cloud top ice', sampled_on_subcycle=.true.)
11541154

1155+
! Bennartz cloud top diagnostics for comparing to Bernartz CDNC concentrations
1156+
call addfld ('ACTNL_B', horiz_only, 'A', 'm-3', 'Average Cloud Top droplet number (Bennartz)', sampled_on_subcycle=.true.)
1157+
call addfld ('FCTL_B', horiz_only, 'A', 'fraction','Fractional occurrence of cloud top liquid (Bennartz)', sampled_on_subcycle=.true.)
1158+
call addfld ('CCN_B', horiz_only, 'A', 'm-3', 'Average Cloud Top liquid CCN (Bennartz)', sampled_on_subcycle=.true.)
1159+
11551160
! New frequency arrays for mixed phase and supercooled liquid (only and mixed) for (a) Cloud Top and (b) everywhere..
11561161
call addfld ('FREQM', (/ 'lev' /), 'A', 'fraction', 'Fractional occurrence of mixed phase', sampled_on_subcycle=.true.)
11571162
call addfld ('FREQSL', (/ 'lev' /), 'A', 'fraction', 'Fractional occurrence of only supercooled liquid', sampled_on_subcycle=.true.)
@@ -1287,6 +1292,17 @@ subroutine micro_pumas_cam_init(pbuf2d)
12871292
call add_default ('FREQS ', 1, ' ')
12881293
call add_default ('FREQL ', 1, ' ')
12891294
call add_default ('FREQI ', 1, ' ')
1295+
call add_default ('ACTNL ', 1, ' ')
1296+
call add_default ('ACTREL ', 1, ' ')
1297+
call add_default ('FCTL ', 1, ' ')
1298+
call add_default ('ACTNI ', 1, ' ')
1299+
call add_default ('ACTREI ', 1, ' ')
1300+
call add_default ('FCTI ', 1, ' ')
1301+
!These are for comparing to Bennartz
1302+
call add_default ('FCTL_B ', 1, ' ')
1303+
call add_default ('ACTNL_B ', 1, ' ')
1304+
call add_default ('CCN_B ', 1, ' ')
1305+
12901306
do m = 1, ncnst
12911307
call cnst_get_ind(cnst_names(m), mm)
12921308
call add_default(cnst_name(mm), 1, ' ')
@@ -1813,6 +1829,10 @@ subroutine micro_pumas_cam_tend(state, ptend, dtime, pbuf)
18131829

18141830
real(r8) :: ftem_grid(pcols,pver)
18151831

1832+
real(r8) :: fctl_b(pcols) !frequency of occurrence for Bennartz
1833+
real(r8) :: ctnl_b(pcols) !cdnc [/m3] for Bennartz
1834+
real(r8) :: ccn_b(pcols) !ccm [/m3] defined as for cdnc for Bennartz
1835+
18161836
! Variables for precip efficiency calculation
18171837
real(r8) :: minlwp ! LWP threshold
18181838

@@ -1907,6 +1927,7 @@ subroutine micro_pumas_cam_tend(state, ptend, dtime, pbuf)
19071927
real(r8) :: umsout_grid(pcols,pver)
19081928
real(r8) :: qcsevapout_grid(pcols,pver)
19091929
real(r8) :: qisevapout_grid(pcols,pver)
1930+
real(r8) :: ncal_grid(pcols,pver)
19101931

19111932
real(r8) :: nc_grid(pcols,pver)
19121933
real(r8) :: ni_grid(pcols,pver)
@@ -3492,6 +3513,10 @@ subroutine micro_pumas_cam_tend(state, ptend, dtime, pbuf)
34923513
fctsl_grid = 0._r8
34933514
fctslm_grid= 0._r8
34943515

3516+
fctl_b = 0._r8
3517+
ctnl_b = 0._r8
3518+
ccn_b = 0._r8
3519+
34953520
do i = 1, ngrdcol
34963521
do k = top_lev, pver
34973522
if ( liqcldf_grid(i,k) > 0.01_r8 .and. icwmrst_grid(i,k) > 1.e-7_r8 ) then
@@ -3538,6 +3563,34 @@ subroutine micro_pumas_cam_tend(state, ptend, dtime, pbuf)
35383563
if (qcsevap_idx > 0 ) qcsevapout_grid_ptr = qcsevapout_grid
35393564
if (qisevap_idx > 0 ) qisevapout_grid_ptr = qisevapout_grid
35403565

3566+
!Calculate values for comparing with Bennartz 2017
3567+
if (hist_fld_active('ACTNL_B') .or. hist_fld_active('FCTL_B') .or. &
3568+
hist_fld_active('CCN_B')) then
3569+
if (use_subcol_microp) then
3570+
call subcol_field_avg(ncal, ngrdcol, lchnk, ncal_grid)
3571+
else
3572+
ncal_grid = ncal
3573+
end if
3574+
3575+
do i = 1, ngrdcol
3576+
do k = top_lev, pver
3577+
!Criterions for Bennartz (2017) to use values from a column
3578+
!1) 268 < T < 300 [K]
3579+
!2) liquid cloud fraction > 10 %
3580+
if ( liqcldf_grid(i,k) > 0.1_r8 &
3581+
.and. state_loc%t(i,k) > 268.0_r8 &
3582+
.and. state_loc%t(i,k) < 300.0_r8 ) then
3583+
!Save cloud fraction and in-cloud number conc
3584+
ctnl_b(i) = icwnc_grid(i,k) * liqcldf_grid(i,k)
3585+
fctl_b(i) = liqcldf_grid(i,k)
3586+
ccn_b(i) = ncal_grid(i,k) * liqcldf_grid(i,k)
3587+
exit !==> Go out to i=1,ncol-loop
3588+
end if
3589+
!--IH
3590+
end do
3591+
end do
3592+
end if
3593+
35413594
! --------------------------------------------- !
35423595
! General outfield calls for microphysics !
35433596
! --------------------------------------------- !
@@ -3828,6 +3881,10 @@ subroutine micro_pumas_cam_tend(state, ptend, dtime, pbuf)
38283881
call outfld('FCTSL', fctsl_grid, pcols, lchnk)
38293882
call outfld('FCTSLM', fctslm_grid, pcols, lchnk)
38303883

3884+
call outfld( 'FCTL_B' , fctl_b, pcols, lchnk )
3885+
call outfld( 'ACTNL_B' , ctnl_b, pcols, lchnk )
3886+
call outfld( 'CCN_B' , ccn_b, pcols, lchnk )
3887+
38313888
if (micro_mg_version > 2) then
38323889
call outfld('PRACGO', pracgo_grid, pcols, lchnk)
38333890
call outfld('PSACRO', psacro_grid, pcols, lchnk)

0 commit comments

Comments
 (0)