Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
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
48 changes: 24 additions & 24 deletions gfsphysics/GFS_layer/GFS_physics_driver.F90
Original file line number Diff line number Diff line change
Expand Up @@ -4950,30 +4950,30 @@ subroutine GFS_physics_driver &
! enddo

!## CCPP ##* m_micro.F90/m_micro_run
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)
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)
!*## CCPP ##
! do k=1,levs
! write(1000+me,*)' maxwatnca=',maxval(Stateout%gq0(1:im,k,ntlnc)),' k=',k,' kdt=',kdt
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
! 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
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