Skip to content

Commit

Permalink
Merge pull request NOAA-EMC#22 from climbfuji/combine_joe_mynnpbl_upd…
Browse files Browse the repository at this point in the history
…ate_and_aux_output_dom

Combine "Update to MYNN-EDMF part II NOAA-EMC#20" and "Output of auxiliary 2d/3d arrays from CCPP NOAA-EMC#21"
  • Loading branch information
DomHeinzeller authored Apr 29, 2020
2 parents 537df51 + c18619c commit df3f9e4
Show file tree
Hide file tree
Showing 6 changed files with 348 additions and 28 deletions.
2 changes: 1 addition & 1 deletion ccpp/physics
152 changes: 150 additions & 2 deletions gfsphysics/GFS_layer/GFS_diagnostics.F90
Original file line number Diff line number Diff line change
Expand Up @@ -3596,13 +3596,13 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop

!idx = idx + 1
!ExtDiag(idx)%axes = 2
!ExtDiag(idx)%name = 'ktop_shallow'
!ExtDiag(idx)%name = 'ktop_plume'
!ExtDiag(idx)%desc = 'k-level of plume top'
!ExtDiag(idx)%unit = 'n/a'
!ExtDiag(idx)%mod_name = 'gfs_sfc'
!allocate (ExtDiag(idx)%data(nblks))
!do nb = 1,nblks
! ExtDiag(idx)%data(nb)%var2 => real(IntDiag(nb)%ktop_shallow(:),kind=kind_phys)
! ExtDiag(idx)%data(nb)%var2 => real(IntDiag(nb)%ktop_plume(:),kind=kind_phys)
!enddo

idx = idx + 1
Expand Down Expand Up @@ -3707,6 +3707,120 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop
do nb = 1,nblks
ExtDiag(idx)%data(nb)%var3 => Tbd(nb)%QKE(:,:)
enddo

if (Model%bl_mynn_output > 0) then

idx = idx + 1
ExtDiag(idx)%axes = 3
ExtDiag(idx)%name = 'edmf_a'
ExtDiag(idx)%desc = 'updraft area fraction (from mynn)'
ExtDiag(idx)%unit = '-'
ExtDiag(idx)%mod_name = 'gfs_phys'
allocate (ExtDiag(idx)%data(nblks))
do nb = 1,nblks
ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%edmf_a(:,:)
enddo

idx = idx + 1
ExtDiag(idx)%axes = 3
ExtDiag(idx)%name = 'edmf_w'
ExtDiag(idx)%desc = 'mean updraft vertical veloctity (mynn)'
ExtDiag(idx)%unit = 'm s-1'
ExtDiag(idx)%mod_name = 'gfs_phys'
allocate (ExtDiag(idx)%data(nblks))
do nb = 1,nblks
ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%edmf_w(:,:)
enddo

idx = idx + 1
ExtDiag(idx)%axes = 3
ExtDiag(idx)%name = 'edmf_qt'
ExtDiag(idx)%desc = 'updraft total water (from mynn)'
ExtDiag(idx)%unit = 'kg kg-1'
ExtDiag(idx)%mod_name = 'gfs_phys'
allocate (ExtDiag(idx)%data(nblks))
do nb = 1,nblks
ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%edmf_qt(:,:)
enddo

idx = idx + 1
ExtDiag(idx)%axes = 3
ExtDiag(idx)%name = 'edmf_thl'
ExtDiag(idx)%desc = 'mean liquid potential temperature (mynn)'
ExtDiag(idx)%unit = 'K'
ExtDiag(idx)%mod_name = 'gfs_phys'
allocate (ExtDiag(idx)%data(nblks))
do nb = 1,nblks
ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%edmf_thl(:,:)
enddo

idx = idx + 1
ExtDiag(idx)%axes = 3
ExtDiag(idx)%name = 'edmf_ent'
ExtDiag(idx)%desc = 'updraft entrainment rate (from mynn)'
ExtDiag(idx)%unit = 'm-1'
ExtDiag(idx)%mod_name = 'gfs_phys'
allocate (ExtDiag(idx)%data(nblks))
do nb = 1,nblks
ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%edmf_ent(:,:)
enddo

idx = idx + 1
ExtDiag(idx)%axes = 3
ExtDiag(idx)%name = 'edmf_qc'
ExtDiag(idx)%desc = 'mean updraft liquid water (mynn)'
ExtDiag(idx)%unit = 'kg kg-1'
ExtDiag(idx)%mod_name = 'gfs_phys'
allocate (ExtDiag(idx)%data(nblks))
do nb = 1,nblks
ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%edmf_qc(:,:)
enddo

idx = idx + 1
ExtDiag(idx)%axes = 3
ExtDiag(idx)%name = 'sub_thl'
ExtDiag(idx)%desc = 'subsidence temperature tendency (from mynn)'
ExtDiag(idx)%unit = 'K s-1'
ExtDiag(idx)%mod_name = 'gfs_phys'
allocate (ExtDiag(idx)%data(nblks))
do nb = 1,nblks
ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%sub_thl(:,:)
enddo

idx = idx + 1
ExtDiag(idx)%axes = 3
ExtDiag(idx)%name = 'sub_sqv'
ExtDiag(idx)%desc = 'subsidence water vapor tendency (mynn)'
ExtDiag(idx)%unit = 'kg kg-1 s-1'
ExtDiag(idx)%mod_name = 'gfs_phys'
allocate (ExtDiag(idx)%data(nblks))
do nb = 1,nblks
ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%sub_sqv(:,:)
enddo

idx = idx + 1
ExtDiag(idx)%axes = 3
ExtDiag(idx)%name = 'det_thl'
ExtDiag(idx)%desc = 'detrainment temperature tendency (from mynn)'
ExtDiag(idx)%unit = 'K s-1'
ExtDiag(idx)%mod_name = 'gfs_phys'
allocate (ExtDiag(idx)%data(nblks))
do nb = 1,nblks
ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%det_thl(:,:)
enddo

idx = idx + 1
ExtDiag(idx)%axes = 3
ExtDiag(idx)%name = 'det_sqv'
ExtDiag(idx)%desc = 'detrainment water vapor tendency (mynn)'
ExtDiag(idx)%unit = 'kg kg-1 s-1'
ExtDiag(idx)%mod_name = 'gfs_phys'
allocate (ExtDiag(idx)%data(nblks))
do nb = 1,nblks
ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%det_sqv(:,:)
enddo

endif
endif
#endif

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

! Auxiliary 2d arrays to output (for debugging)
do num=1,Model%naux2d
write (xtra,'(I2.2)') num
idx = idx + 1
ExtDiag(idx)%axes = 2
ExtDiag(idx)%name = 'aux2d_'//trim(xtra)
ExtDiag(idx)%desc = 'auxiliary 2d array '//trim(xtra)
ExtDiag(idx)%unit = 'unknown'
ExtDiag(idx)%mod_name = 'gfs_phys'
ExtDiag(idx)%intpl_method = 'bilinear'
ExtDiag(idx)%time_avg = Model%aux2d_time_avg(num)
allocate (ExtDiag(idx)%data(nblks))
do nb = 1,nblks
ExtDiag(idx)%data(nb)%var2 => IntDiag(nb)%aux2d(:,num)
enddo
enddo

! Auxiliary 3d arrays to output (for debugging)
do num=1,Model%naux3d
write (xtra,'(I2.2)') num
idx = idx + 1
ExtDiag(idx)%axes = 3
ExtDiag(idx)%name = 'aux3d_'//trim(xtra)
ExtDiag(idx)%desc = 'auxiliary 3d array '//trim(xtra)
ExtDiag(idx)%unit = 'unknown'
ExtDiag(idx)%mod_name = 'gfs_phys'
ExtDiag(idx)%intpl_method = 'bilinear'
ExtDiag(idx)%time_avg = Model%aux3d_time_avg(num)
allocate (ExtDiag(idx)%data(nblks))
do nb = 1,nblks
ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%aux3d(:,:,num)
enddo
enddo

end subroutine GFS_externaldiag_populate

#ifdef CCPP
Expand Down
7 changes: 6 additions & 1 deletion gfsphysics/GFS_layer/GFS_restart.F90
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ subroutine GFS_restart_populate (Restart, Model, Statein, Stateout, Sfcprop, &
endif
! MYNN PBL
if (Model%do_mynnedmf) then
Restart%num3d = Restart%num3d + 8
Restart%num3d = Restart%num3d + 9
endif
#endif

Expand Down Expand Up @@ -297,6 +297,11 @@ subroutine GFS_restart_populate (Restart, Model, Statein, Stateout, Sfcprop, &
Restart%data(nb,num)%var3p => Tbd(nb)%qc_bl(:,:)
enddo
num = num + 1
Restart%name3d(num) = 'mynn_3d_qi_bl'
do nb = 1,nblks
Restart%data(nb,num)%var3p => Tbd(nb)%qi_bl(:,:)
enddo
num = num + 1
Restart%name3d(num) = 'mynn_3d_el_pbl'
do nb = 1,nblks
Restart%data(nb,num)%var3p => Tbd(nb)%el_pbl(:,:)
Expand Down
Loading

0 comments on commit df3f9e4

Please sign in to comment.