Skip to content

Commit df3f9e4

Browse files
Merge pull request #22 from climbfuji/combine_joe_mynnpbl_update_and_aux_output_dom
Combine "Update to MYNN-EDMF part II #20" and "Output of auxiliary 2d/3d arrays from CCPP #21"
2 parents 537df51 + c18619c commit df3f9e4

File tree

6 files changed

+348
-28
lines changed

6 files changed

+348
-28
lines changed

ccpp/physics

gfsphysics/GFS_layer/GFS_diagnostics.F90

+150-2
Original file line numberDiff line numberDiff line change
@@ -3596,13 +3596,13 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop
35963596

35973597
!idx = idx + 1
35983598
!ExtDiag(idx)%axes = 2
3599-
!ExtDiag(idx)%name = 'ktop_shallow'
3599+
!ExtDiag(idx)%name = 'ktop_plume'
36003600
!ExtDiag(idx)%desc = 'k-level of plume top'
36013601
!ExtDiag(idx)%unit = 'n/a'
36023602
!ExtDiag(idx)%mod_name = 'gfs_sfc'
36033603
!allocate (ExtDiag(idx)%data(nblks))
36043604
!do nb = 1,nblks
3605-
! ExtDiag(idx)%data(nb)%var2 => real(IntDiag(nb)%ktop_shallow(:),kind=kind_phys)
3605+
! ExtDiag(idx)%data(nb)%var2 => real(IntDiag(nb)%ktop_plume(:),kind=kind_phys)
36063606
!enddo
36073607

36083608
idx = idx + 1
@@ -3707,6 +3707,120 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop
37073707
do nb = 1,nblks
37083708
ExtDiag(idx)%data(nb)%var3 => Tbd(nb)%QKE(:,:)
37093709
enddo
3710+
3711+
if (Model%bl_mynn_output > 0) then
3712+
3713+
idx = idx + 1
3714+
ExtDiag(idx)%axes = 3
3715+
ExtDiag(idx)%name = 'edmf_a'
3716+
ExtDiag(idx)%desc = 'updraft area fraction (from mynn)'
3717+
ExtDiag(idx)%unit = '-'
3718+
ExtDiag(idx)%mod_name = 'gfs_phys'
3719+
allocate (ExtDiag(idx)%data(nblks))
3720+
do nb = 1,nblks
3721+
ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%edmf_a(:,:)
3722+
enddo
3723+
3724+
idx = idx + 1
3725+
ExtDiag(idx)%axes = 3
3726+
ExtDiag(idx)%name = 'edmf_w'
3727+
ExtDiag(idx)%desc = 'mean updraft vertical veloctity (mynn)'
3728+
ExtDiag(idx)%unit = 'm s-1'
3729+
ExtDiag(idx)%mod_name = 'gfs_phys'
3730+
allocate (ExtDiag(idx)%data(nblks))
3731+
do nb = 1,nblks
3732+
ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%edmf_w(:,:)
3733+
enddo
3734+
3735+
idx = idx + 1
3736+
ExtDiag(idx)%axes = 3
3737+
ExtDiag(idx)%name = 'edmf_qt'
3738+
ExtDiag(idx)%desc = 'updraft total water (from mynn)'
3739+
ExtDiag(idx)%unit = 'kg kg-1'
3740+
ExtDiag(idx)%mod_name = 'gfs_phys'
3741+
allocate (ExtDiag(idx)%data(nblks))
3742+
do nb = 1,nblks
3743+
ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%edmf_qt(:,:)
3744+
enddo
3745+
3746+
idx = idx + 1
3747+
ExtDiag(idx)%axes = 3
3748+
ExtDiag(idx)%name = 'edmf_thl'
3749+
ExtDiag(idx)%desc = 'mean liquid potential temperature (mynn)'
3750+
ExtDiag(idx)%unit = 'K'
3751+
ExtDiag(idx)%mod_name = 'gfs_phys'
3752+
allocate (ExtDiag(idx)%data(nblks))
3753+
do nb = 1,nblks
3754+
ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%edmf_thl(:,:)
3755+
enddo
3756+
3757+
idx = idx + 1
3758+
ExtDiag(idx)%axes = 3
3759+
ExtDiag(idx)%name = 'edmf_ent'
3760+
ExtDiag(idx)%desc = 'updraft entrainment rate (from mynn)'
3761+
ExtDiag(idx)%unit = 'm-1'
3762+
ExtDiag(idx)%mod_name = 'gfs_phys'
3763+
allocate (ExtDiag(idx)%data(nblks))
3764+
do nb = 1,nblks
3765+
ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%edmf_ent(:,:)
3766+
enddo
3767+
3768+
idx = idx + 1
3769+
ExtDiag(idx)%axes = 3
3770+
ExtDiag(idx)%name = 'edmf_qc'
3771+
ExtDiag(idx)%desc = 'mean updraft liquid water (mynn)'
3772+
ExtDiag(idx)%unit = 'kg kg-1'
3773+
ExtDiag(idx)%mod_name = 'gfs_phys'
3774+
allocate (ExtDiag(idx)%data(nblks))
3775+
do nb = 1,nblks
3776+
ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%edmf_qc(:,:)
3777+
enddo
3778+
3779+
idx = idx + 1
3780+
ExtDiag(idx)%axes = 3
3781+
ExtDiag(idx)%name = 'sub_thl'
3782+
ExtDiag(idx)%desc = 'subsidence temperature tendency (from mynn)'
3783+
ExtDiag(idx)%unit = 'K s-1'
3784+
ExtDiag(idx)%mod_name = 'gfs_phys'
3785+
allocate (ExtDiag(idx)%data(nblks))
3786+
do nb = 1,nblks
3787+
ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%sub_thl(:,:)
3788+
enddo
3789+
3790+
idx = idx + 1
3791+
ExtDiag(idx)%axes = 3
3792+
ExtDiag(idx)%name = 'sub_sqv'
3793+
ExtDiag(idx)%desc = 'subsidence water vapor tendency (mynn)'
3794+
ExtDiag(idx)%unit = 'kg kg-1 s-1'
3795+
ExtDiag(idx)%mod_name = 'gfs_phys'
3796+
allocate (ExtDiag(idx)%data(nblks))
3797+
do nb = 1,nblks
3798+
ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%sub_sqv(:,:)
3799+
enddo
3800+
3801+
idx = idx + 1
3802+
ExtDiag(idx)%axes = 3
3803+
ExtDiag(idx)%name = 'det_thl'
3804+
ExtDiag(idx)%desc = 'detrainment temperature tendency (from mynn)'
3805+
ExtDiag(idx)%unit = 'K s-1'
3806+
ExtDiag(idx)%mod_name = 'gfs_phys'
3807+
allocate (ExtDiag(idx)%data(nblks))
3808+
do nb = 1,nblks
3809+
ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%det_thl(:,:)
3810+
enddo
3811+
3812+
idx = idx + 1
3813+
ExtDiag(idx)%axes = 3
3814+
ExtDiag(idx)%name = 'det_sqv'
3815+
ExtDiag(idx)%desc = 'detrainment water vapor tendency (mynn)'
3816+
ExtDiag(idx)%unit = 'kg kg-1 s-1'
3817+
ExtDiag(idx)%mod_name = 'gfs_phys'
3818+
allocate (ExtDiag(idx)%data(nblks))
3819+
do nb = 1,nblks
3820+
ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%det_sqv(:,:)
3821+
enddo
3822+
3823+
endif
37103824
endif
37113825
#endif
37123826

@@ -3910,6 +4024,40 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop
39104024
!rab ExtDiag(idx)%unit = 'kg/kg/s'
39114025
!rab ExtDiag(idx)%mod_name = 'gfs_phys'
39124026

4027+
! Auxiliary 2d arrays to output (for debugging)
4028+
do num=1,Model%naux2d
4029+
write (xtra,'(I2.2)') num
4030+
idx = idx + 1
4031+
ExtDiag(idx)%axes = 2
4032+
ExtDiag(idx)%name = 'aux2d_'//trim(xtra)
4033+
ExtDiag(idx)%desc = 'auxiliary 2d array '//trim(xtra)
4034+
ExtDiag(idx)%unit = 'unknown'
4035+
ExtDiag(idx)%mod_name = 'gfs_phys'
4036+
ExtDiag(idx)%intpl_method = 'bilinear'
4037+
ExtDiag(idx)%time_avg = Model%aux2d_time_avg(num)
4038+
allocate (ExtDiag(idx)%data(nblks))
4039+
do nb = 1,nblks
4040+
ExtDiag(idx)%data(nb)%var2 => IntDiag(nb)%aux2d(:,num)
4041+
enddo
4042+
enddo
4043+
4044+
! Auxiliary 3d arrays to output (for debugging)
4045+
do num=1,Model%naux3d
4046+
write (xtra,'(I2.2)') num
4047+
idx = idx + 1
4048+
ExtDiag(idx)%axes = 3
4049+
ExtDiag(idx)%name = 'aux3d_'//trim(xtra)
4050+
ExtDiag(idx)%desc = 'auxiliary 3d array '//trim(xtra)
4051+
ExtDiag(idx)%unit = 'unknown'
4052+
ExtDiag(idx)%mod_name = 'gfs_phys'
4053+
ExtDiag(idx)%intpl_method = 'bilinear'
4054+
ExtDiag(idx)%time_avg = Model%aux3d_time_avg(num)
4055+
allocate (ExtDiag(idx)%data(nblks))
4056+
do nb = 1,nblks
4057+
ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%aux3d(:,:,num)
4058+
enddo
4059+
enddo
4060+
39134061
end subroutine GFS_externaldiag_populate
39144062

39154063
#ifdef CCPP

gfsphysics/GFS_layer/GFS_restart.F90

+6-1
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ subroutine GFS_restart_populate (Restart, Model, Statein, Stateout, Sfcprop, &
127127
endif
128128
! MYNN PBL
129129
if (Model%do_mynnedmf) then
130-
Restart%num3d = Restart%num3d + 8
130+
Restart%num3d = Restart%num3d + 9
131131
endif
132132
#endif
133133

@@ -297,6 +297,11 @@ subroutine GFS_restart_populate (Restart, Model, Statein, Stateout, Sfcprop, &
297297
Restart%data(nb,num)%var3p => Tbd(nb)%qc_bl(:,:)
298298
enddo
299299
num = num + 1
300+
Restart%name3d(num) = 'mynn_3d_qi_bl'
301+
do nb = 1,nblks
302+
Restart%data(nb,num)%var3p => Tbd(nb)%qi_bl(:,:)
303+
enddo
304+
num = num + 1
300305
Restart%name3d(num) = 'mynn_3d_el_pbl'
301306
do nb = 1,nblks
302307
Restart%data(nb,num)%var3p => Tbd(nb)%el_pbl(:,:)

0 commit comments

Comments
 (0)