Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

options for IN/CNN and MERRA2 climo of microphysics fv3atm #46

Merged
merged 26 commits into from
Apr 10, 2020
Merged
Show file tree
Hide file tree
Changes from 24 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
34948e5
point sub-module to AnningCheng-NOAA/ccpp-physics MG3_v1
AnningCheng-NOAA Dec 23, 2019
f246318
establish MG3_v1 branch in ufs weather model
AnningCheng-NOAA Dec 23, 2019
611e71b
updated .gitmodules
AnningCheng-NOAA Dec 23, 2019
a240c2d
complete iccn changes in physics and GFS_layer
AnningCheng-NOAA Dec 31, 2019
ea47b60
passed ccpp compilation and testing ipd compilation
AnningCheng-NOAA Jan 2, 2020
63ddb60
regression test for iccn=1 and iccn=2
AnningCheng-NOAA Jan 6, 2020
58dd381
regression test for iccn=1 and iccn=2
AnningCheng-NOAA Jan 6, 2020
ba967ff
MERRA2 consistent radiation pass regression tests
AnningCheng-NOAA Jan 17, 2020
a3b141c
fixed too much high level cloud for iccn==2
AnningCheng-NOAA Jan 27, 2020
dc2aa92
changed ntrcaer in rad_aero to ntrcaerm
AnningCheng-NOAA Feb 13, 2020
5f82a95
commited on MG3_v1 on 03/19/2020
AnningCheng-NOAA Mar 19, 2020
8a8b14e
resolved conflict in order to merge to trunk
AnningCheng-NOAA Mar 21, 2020
c4bc462
changes made in gitmodules
AnningCheng-NOAA Mar 23, 2020
1811200
update fv3 dycore and ccpp/framework to current develop version
AnningCheng-NOAA Mar 24, 2020
f5c9ac3
Update atmos_cubed_sphere and ccpp/framework
AnningCheng-NOAA Mar 24, 2020
0d5a972
update suite_FV3_GFS_v16_csawmg.xml to fix compilation issue such as…
AnningCheng-NOAA Mar 25, 2020
2de35c8
merge with develop 3/28/2020
AnningCheng-NOAA Mar 29, 2020
4a7650c
keep my changes before merge with fv3atm
AnningCheng-NOAA Mar 30, 2020
a1c6149
Merge remote-tracking branch 'upstream/develop' into MG3_v1
AnningCheng-NOAA Mar 30, 2020
00be176
put gctrt in .no.flxform to avoid debug error for csawmgshoc
AnningCheng-NOAA Apr 2, 2020
084b359
changes make changing INPUT/cam5_* to cam5_* in iccninterp
AnningCheng-NOAA Apr 6, 2020
7a4bf2b
Merge remote-tracking branch 'upstream/develop' into MG3_v1
AnningCheng-NOAA Apr 9, 2020
783feb2
attached ccpp/physics submodule
AnningCheng-NOAA Apr 10, 2020
440fdfb
Merge branch 'MG3_v1' of https://github.com/AnningCheng-NOAA/fv3atm i…
AnningCheng-NOAA Apr 10, 2020
e82650d
Revert change to .gitmodules and update submodule pointer for ccpp-ph…
AnningCheng-NOAA Apr 10, 2020
06540be
Merge branch 'MG3_v1' of https://github.com/AnningCheng-NOAA/fv3atm i…
AnningCheng-NOAA Apr 10, 2020
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 .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@
branch = master
[submodule "ccpp/physics"]
path = ccpp/physics
url = https://github.com/NCAR/ccpp-physics
url = https://github.com/AnningCheng-NOAA/ccpp-physics
branch = master
93 changes: 93 additions & 0 deletions ccpp/suites/suite_FV3_GFS_v16_csawmg.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
<?xml version="1.0" encoding="UTF-8"?>

<suite name="FV3_GFS_v16_csawmg" lib="ccppphys" ver="3">
<!-- <init></init> -->
<group name="time_vary">
<subcycle loop="1">
<scheme>GFS_time_vary_pre</scheme>
<scheme>GFS_rrtmg_setup</scheme>
<scheme>GFS_rad_time_vary</scheme>
<scheme>GFS_phys_time_vary</scheme>
</subcycle>
</group>
<group name="radiation">
<subcycle loop="1">
<scheme>GFS_suite_interstitial_rad_reset</scheme>
<scheme>GFS_rrtmg_pre</scheme>
<scheme>rrtmg_sw_pre</scheme>
<scheme>rrtmg_sw</scheme>
<scheme>rrtmg_sw_post</scheme>
<scheme>rrtmg_lw_pre</scheme>
<scheme>rrtmg_lw</scheme>
<scheme>rrtmg_lw_post</scheme>
<scheme>GFS_rrtmg_post</scheme>
</subcycle>
</group>
<group name="physics">
<subcycle loop="1">
<scheme>GFS_suite_interstitial_phys_reset</scheme>
<scheme>GFS_suite_stateout_reset</scheme>
<scheme>get_prs_fv3</scheme>
<scheme>GFS_suite_interstitial_1</scheme>
<scheme>GFS_surface_generic_pre</scheme>
<scheme>GFS_surface_composites_pre</scheme>
<scheme>dcyc2t3</scheme>
<scheme>GFS_surface_composites_inter</scheme>
<scheme>GFS_suite_interstitial_2</scheme>
</subcycle>
<!-- Surface iteration loop -->
<subcycle loop="2">
<scheme>sfc_diff</scheme>
<scheme>GFS_surface_loop_control_part1</scheme>
<scheme>sfc_nst_pre</scheme>
<scheme>sfc_nst</scheme>
<scheme>sfc_nst_post</scheme>
<scheme>lsm_noah</scheme>
<scheme>sfc_sice</scheme>
<scheme>GFS_surface_loop_control_part2</scheme>
</subcycle>
<!-- End of surface iteration loop -->
<subcycle loop="1">
<scheme>GFS_surface_composites_post</scheme>
<scheme>sfc_diag</scheme>
<scheme>sfc_diag_post</scheme>
<scheme>GFS_surface_generic_post</scheme>
<scheme>GFS_PBL_generic_pre</scheme>
<scheme>satmedmfvdif</scheme>
<scheme>GFS_PBL_generic_post</scheme>
<scheme>GFS_GWD_generic_pre</scheme>
<scheme>cires_ugwp</scheme>
<scheme>cires_ugwp_post</scheme>
<scheme>GFS_GWD_generic_post</scheme>
<scheme>rayleigh_damp</scheme>
<scheme>GFS_suite_stateout_update</scheme>
<scheme>ozphys_2015</scheme>
<scheme>h2ophys</scheme>
<scheme>GFS_DCNV_generic_pre</scheme>
<scheme>get_phi_fv3</scheme>
<scheme>GFS_suite_interstitial_3</scheme>
<scheme>cs_conv_pre</scheme>
<scheme>cs_conv</scheme>
<scheme>cs_conv_post</scheme>
<scheme>GFS_DCNV_generic_post</scheme>
<scheme>GFS_SCNV_generic_pre</scheme>
<scheme>samfshalcnv</scheme>
<scheme>GFS_SCNV_generic_post</scheme>
<scheme>GFS_suite_interstitial_4</scheme>
<scheme>cnvc90</scheme>
<scheme>GFS_MP_generic_pre</scheme>
<scheme>m_micro_pre</scheme>
<scheme>m_micro</scheme>
<scheme>m_micro_post</scheme>
<scheme>cs_conv_aw_adj</scheme>
<scheme>GFS_MP_generic_post</scheme>
<scheme>maximum_hourly_diagnostics</scheme>
</subcycle>
</group>
<group name="stochastics">
<subcycle loop="1">
<scheme>GFS_stochastics</scheme>
</subcycle>
</group>
<!-- <finalize></finalize> -->
</suite>
79 changes: 78 additions & 1 deletion gfsphysics/GFS_layer/GFS_diagnostics.F90
Original file line number Diff line number Diff line change
Expand Up @@ -700,8 +700,85 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop
ExtDiag(idx)%data(nb)%var2 => IntDiag(nb)%fluxr(:,16)
ExtDiag(idx)%data(nb)%var21 => IntDiag(nb)%fluxr(:,7)
enddo
! if(mpp_pe()==mpp_root_pe())print *,'in gfdl_diag_register,af TEMP_avelct,idx=',idx
!--- aerosol diagnostics ---
idx = idx + 1
ExtDiag(idx)%axes = 2
ExtDiag(idx)%name = 'AOD_550'
ExtDiag(idx)%desc = 'total aerosol optical depth at 550 nm'
ExtDiag(idx)%unit = 'numerical'
ExtDiag(idx)%mod_name = 'gfs_phys'
ExtDiag(idx)%intpl_method = 'bilinear'
allocate (ExtDiag(idx)%data(nblks))
do nb = 1,nblks
ExtDiag(idx)%data(nb)%var2 => IntDiag(nb)%fluxr(:,34)
enddo

!--- aerosol diagnostics ---
idx = idx + 1
ExtDiag(idx)%axes = 2
ExtDiag(idx)%name = 'DU_AOD_550'
ExtDiag(idx)%desc = 'dust aerosol optical depth at 550 nm'
ExtDiag(idx)%unit = 'numerical'
ExtDiag(idx)%mod_name = 'gfs_phys'
ExtDiag(idx)%intpl_method = 'bilinear'
allocate (ExtDiag(idx)%data(nblks))
do nb = 1,nblks
ExtDiag(idx)%data(nb)%var2 => IntDiag(nb)%fluxr(:,35)
enddo

!--- aerosol diagnostics ---
idx = idx + 1
ExtDiag(idx)%axes = 2
ExtDiag(idx)%name = 'BC_AOD_550'
ExtDiag(idx)%desc = 'soot aerosol optical depth at 550 nm'
ExtDiag(idx)%unit = 'numerical'
ExtDiag(idx)%mod_name = 'gfs_phys'
ExtDiag(idx)%intpl_method = 'bilinear'
allocate (ExtDiag(idx)%data(nblks))
do nb = 1,nblks
ExtDiag(idx)%data(nb)%var2 => IntDiag(nb)%fluxr(:,36)
enddo

!--- aerosol diagnostics ---
idx = idx + 1
ExtDiag(idx)%axes = 2
ExtDiag(idx)%name = 'OC_AOD_550'
ExtDiag(idx)%desc = 'waso aerosol optical depth at 550 nm'
ExtDiag(idx)%unit = 'numerical'
ExtDiag(idx)%mod_name = 'gfs_phys'
ExtDiag(idx)%intpl_method = 'bilinear'
allocate (ExtDiag(idx)%data(nblks))
do nb = 1,nblks
ExtDiag(idx)%data(nb)%var2 => IntDiag(nb)%fluxr(:,37)
enddo

!--- aerosol diagnostics ---
idx = idx + 1
ExtDiag(idx)%axes = 2
ExtDiag(idx)%name = 'SU_AOD_550'
ExtDiag(idx)%desc = 'suso aerosol optical depth at 550 nm'
ExtDiag(idx)%unit = 'numerical'
ExtDiag(idx)%mod_name = 'gfs_phys'
ExtDiag(idx)%intpl_method = 'bilinear'
allocate (ExtDiag(idx)%data(nblks))
do nb = 1,nblks
ExtDiag(idx)%data(nb)%var2 => IntDiag(nb)%fluxr(:,38)
enddo

!--- aerosol diagnostics ---
idx = idx + 1
ExtDiag(idx)%axes = 2
ExtDiag(idx)%name = 'SS_AOD_550'
ExtDiag(idx)%desc = 'salt aerosol optical depth at 550 nm'
ExtDiag(idx)%unit = 'numerical'
ExtDiag(idx)%mod_name = 'gfs_phys'
ExtDiag(idx)%intpl_method = 'bilinear'
allocate (ExtDiag(idx)%data(nblks))
do nb = 1,nblks
ExtDiag(idx)%data(nb)%var2 => IntDiag(nb)%fluxr(:,39)
enddo

!
!
!--- accumulated diagnostics ---
do num = 1,NFXR
Expand Down
12 changes: 6 additions & 6 deletions gfsphysics/GFS_layer/GFS_driver.F90
Original file line number Diff line number Diff line change
Expand Up @@ -210,10 +210,10 @@ subroutine GFS_initialize (Model, Statein, Stateout, Sfcprop, &
#ifndef CCPP
call read_o3data (Model%ntoz, Model%me, Model%master)
call read_h2odata (Model%h2o_phys, Model%me, Model%master)
if (Model%aero_in) then
if (Model%iaerclm) then
call read_aerdata (Model%me,Model%master,Model%iflip,Model%idate)
endif
if (Model%iccn) then
if (Model%iccn == 1) then
call read_cidata ( Model%me, Model%master)
endif
#endif
Expand Down Expand Up @@ -286,7 +286,7 @@ subroutine GFS_initialize (Model, Statein, Stateout, Sfcprop, &
endif

!--- read in and initialize IN and CCN
if (Model%iccn) then
if (Model%iccn == 1) then
do nb = 1, nblks
call setindxci (Init_parm%blksz(nb), Grid(nb)%xlat_d, Grid(nb)%jindx1_ci, &
Grid(nb)%jindx2_ci, Grid(nb)%ddy_ci, Grid(nb)%xlon_d, &
Expand All @@ -295,7 +295,7 @@ subroutine GFS_initialize (Model, Statein, Stateout, Sfcprop, &
endif

!--- read in and initialize aerosols
if (Model%aero_in) then
if (Model%iaerclm) then
do nb = 1, nblks
call setindxaer (Init_parm%blksz(nb),Grid(nb)%xlat_d,Grid(nb)%jindx1_aer, &
Grid(nb)%jindx2_aer, Grid(nb)%ddy_aer, Grid(nb)%xlon_d, &
Expand Down Expand Up @@ -1009,7 +1009,7 @@ subroutine GFS_phys_time_vary (Model, Grid, Tbd, Statein)
endif

!--- ICCN interpolation
if (Model%ICCN ) then
if (Model%ICCN == 1) then
do nb = 1, nblks
call ciinterpol (Model%me, blksz(nb), Model%idate, Model%fhour, &
Grid(nb)%jindx1_ci, Grid(nb)%jindx2_ci, &
Expand All @@ -1021,7 +1021,7 @@ subroutine GFS_phys_time_vary (Model, Grid, Tbd, Statein)
endif

!--- aerosol interpolation
if (Model%aero_in ) then
if (Model%iaerclm ) then
do nb = 1, nblks
call aerinterpol (Model%me, Model%master, blksz(nb), &
Model%idate, Model%fhour, &
Expand Down
50 changes: 24 additions & 26 deletions gfsphysics/GFS_layer/GFS_physics_driver.F90
Original file line number Diff line number Diff line change
Expand Up @@ -4949,32 +4949,30 @@ subroutine GFS_physics_driver &
! write(1000+me,*)' maxwatncb=',maxval(Stateout%gq0(1:im,k,ntlnc)),' k=',k,' kdt',kdt
! enddo

junwang-noaa marked this conversation as resolved.
Show resolved Hide resolved
!## CCPP ##* m_micro.F90/m_micro_run
junwang-noaa marked this conversation as resolved.
Show resolved Hide resolved
call m_micro_driver (im, ix, levs, Model%flipv, dtp, Statein%prsl, &
Statein%prsi, Statein%phil, Statein%phii, &
Statein%vvl, clw(1,1,2), QLCN, clw(1,1,1), QICN, &
Radtend%htrlw, Radtend%htrsw, w_upi, cf_upi, &
FRLAND, Diag%HPBL, CNV_MFD, CNV_DQLDT, &
! FRLAND, Diag%HPBL, CNV_MFD, CNV_PRC3, CNV_DQLDT, &
CLCN, Stateout%gu0, Stateout%gv0, Diag%dusfc, &
Diag%dvsfc, dusfc1, dvsfc1, dusfc1, dvsfc1, &
CNV_FICE, CNV_NDROP, CNV_NICE, Stateout%gq0(1,1,1), &
Stateout%gq0(1,1,ntcw), &
Stateout%gq0(1,1,ntiw), Stateout%gt0, rain1, &
Diag%sr, Stateout%gq0(1,1,ntlnc), &
Stateout%gq0(1,1,ntinc), Model%fprcp, qrn, &
qsnw, qgl, ncpr, ncps, ncgl, &
Tbd%phy_f3d(1,1,1), kbot, &
Tbd%phy_f3d(1,1,2), Tbd%phy_f3d(1,1,3), &
Tbd%phy_f3d(1,1,4), Tbd%phy_f3d(1,1,5), &
Tbd%phy_f3d(1,1,kk), Tbd%aer_nm, &
Model%aero_in, Tbd%in_nm, Tbd%ccn_nm, Model%iccn, &
skip_macro, lprnt, &
! skip_macro, cn_prc, cn_snr, lprnt, &
! ipr, kdt, Grid%xlat, Grid%xlon)
Model%mg_alf, Model%mg_qcmin, Model%pdfflag, &
ipr, kdt, Grid%xlat, Grid%xlon, rhc)
!*## CCPP ##
call m_micro_driver (im, ix, levs, Model%flipv, dtp, Statein%prsl, &
Statein%prsi, Statein%phil, Statein%phii, &
Statein%vvl, clw(1,1,2), QLCN, clw(1,1,1), QICN, &
Radtend%htrlw, Radtend%htrsw, w_upi, cf_upi, &
FRLAND, Diag%HPBL, CNV_MFD, CNV_DQLDT, &
! FRLAND, Diag%HPBL, CNV_MFD, CNV_PRC3, CNV_DQLDT, &
CLCN, Stateout%gu0, Stateout%gv0, Diag%dusfc, &
Diag%dvsfc, dusfc1, dvsfc1, dusfc1, dvsfc1, &
CNV_FICE, CNV_NDROP, CNV_NICE, Stateout%gq0(1,1,1), &
Stateout%gq0(1,1,ntcw), &
Stateout%gq0(1,1,ntiw), Stateout%gt0, rain1, &
Diag%sr, Stateout%gq0(1,1,ntlnc), &
Stateout%gq0(1,1,ntinc), Model%fprcp, qrn, &
qsnw, qgl, ncpr, ncps, ncgl, &
Tbd%phy_f3d(1,1,1), kbot, &
Tbd%phy_f3d(1,1,2), Tbd%phy_f3d(1,1,3), &
Tbd%phy_f3d(1,1,4), Tbd%phy_f3d(1,1,5), &
Tbd%phy_f3d(1,1,kk), Tbd%aer_nm, &
Tbd%in_nm, Tbd%ccn_nm, Model%iccn, &
skip_macro, lprnt, &
! skip_macro, cn_prc, cn_snr, lprnt, &
! ipr, kdt, Grid%xlat, Grid%xlon)
Model%mg_alf, Model%mg_qcmin, Model%pdfflag, &
ipr, kdt, Grid%xlat, Grid%xlon, rhc)
! do k=1,levs
! write(1000+me,*)' maxwatnca=',maxval(Stateout%gq0(1:im,k,ntlnc)),' k=',k,' kdt=',kdt
! enddo
Expand Down
21 changes: 14 additions & 7 deletions gfsphysics/GFS_layer/GFS_radiation_driver.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1566,7 +1566,8 @@ subroutine GFS_radiation_driver &
!check print *,' in grrad : calling setaer '
!## CCPP ##* GFS_rrtmg_pre.F90/GFS_rrtmg_pre_run
call setaer (plvl, plyr, prslk1, tvly, rhly, Sfcprop%slmsk, & ! --- inputs
tracer1, Grid%xlon, Grid%xlat, IM, LMK, LMP, &
tracer1, Tbd%aer_nm, &
Grid%xlon, Grid%xlat, IM, LMK, LMP, &
Model%lsswr,Model%lslwr, &
faersw,faerlw,aerodp) ! --- outputs

Expand Down Expand Up @@ -2058,12 +2059,18 @@ subroutine GFS_radiation_driver &
if (Model%lssav) then
if (Model%lsswr) then
do i=1,im
Diag%fluxr(i,34) = Diag%fluxr(i,34) + Model%fhswr*aerodp(i,1) ! total aod at 550nm
Diag%fluxr(i,35) = Diag%fluxr(i,35) + Model%fhswr*aerodp(i,2) ! DU aod at 550nm
Diag%fluxr(i,36) = Diag%fluxr(i,36) + Model%fhswr*aerodp(i,3) ! BC aod at 550nm
Diag%fluxr(i,37) = Diag%fluxr(i,37) + Model%fhswr*aerodp(i,4) ! OC aod at 550nm
Diag%fluxr(i,38) = Diag%fluxr(i,38) + Model%fhswr*aerodp(i,5) ! SU aod at 550nm
Diag%fluxr(i,39) = Diag%fluxr(i,39) + Model%fhswr*aerodp(i,6) ! SS aod at 550nm
! Diag%fluxr(i,34) = Diag%fluxr(i,34) + Model%fhswr*aerodp(i,1) ! total aod at 550nm
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not seeing this change in lines 2062 to 2073 in CCPP - is this not required?

If it is, what do you want to do with it? Also fix as part of our NCAR dtc/develop to EMC develop PR?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Made this change in NCAR's dtc/develop branch (ccpp-physics). Will come to NCAR master with the next commit from our side.

! Diag%fluxr(i,35) = Diag%fluxr(i,35) + Model%fhswr*aerodp(i,2) ! DU aod at 550nm
! Diag%fluxr(i,36) = Diag%fluxr(i,36) + Model%fhswr*aerodp(i,3) ! BC aod at 550nm
! Diag%fluxr(i,37) = Diag%fluxr(i,37) + Model%fhswr*aerodp(i,4) ! OC aod at 550nm
! Diag%fluxr(i,38) = Diag%fluxr(i,38) + Model%fhswr*aerodp(i,5) ! SU aod at 550nm
! Diag%fluxr(i,39) = Diag%fluxr(i,39) + Model%fhswr*aerodp(i,6) ! SS aod at 550nm
Diag%fluxr(i,34) = aerodp(i,1) ! total aod at 550nm
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These "fluxr" fields are not accumulated anymore. Is this intentional?

Diag%fluxr(i,35) = aerodp(i,2) ! DU aod at 550nm
Diag%fluxr(i,36) = aerodp(i,3) ! BC aod at 550nm
Diag%fluxr(i,37) = aerodp(i,4) ! OC aod at 550nm
Diag%fluxr(i,38) = aerodp(i,5) ! SU aod at 550nm
Diag%fluxr(i,39) = aerodp(i,6) ! SS aod at 550nm
enddo
endif

Expand Down
Loading