diff --git a/.gitmodules b/.gitmodules index d253f6966..789f67889 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,5 +8,5 @@ branch = master [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/NCAR/ccpp-physics - branch = master + url = https://github.com/NCAR/ccpp-physics.git + branch = master diff --git a/ccpp/physics b/ccpp/physics index 09c4ee333..8617587ed 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 09c4ee3335d7e1e1c5433f390db38658aac3525d +Subproject commit 8617587edb95aa097b7bbc2735990393bc6d9b90 diff --git a/gfsphysics/GFS_layer/GFS_diagnostics.F90 b/gfsphysics/GFS_layer/GFS_diagnostics.F90 index ed2e5d51a..1b6fabe96 100644 --- a/gfsphysics/GFS_layer/GFS_diagnostics.F90 +++ b/gfsphysics/GFS_layer/GFS_diagnostics.F90 @@ -1937,6 +1937,17 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%refl_10cm(:,:) enddo + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'cldfra' + ExtDiag(idx)%desc = 'Instantaneous 3D Cloud Fraction' + ExtDiag(idx)%unit = 'frac' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%cldfra(:,:) + enddo + idx = idx + 1 ExtDiag(idx)%axes = 3 ExtDiag(idx)%name = 'cnvw' diff --git a/gfsphysics/GFS_layer/GFS_restart.F90 b/gfsphysics/GFS_layer/GFS_restart.F90 index 52b3d7b83..eada1fc3d 100644 --- a/gfsphysics/GFS_layer/GFS_restart.F90 +++ b/gfsphysics/GFS_layer/GFS_restart.F90 @@ -263,9 +263,12 @@ subroutine GFS_restart_populate (Restart, Model, Statein, Stateout, Sfcprop, & enddo endif #ifdef CCPP + if (Model%lrefres) then + num = Model%ntot3d+1 + else + num = Model%ntot3d + endif !--- RAP/HRRR-specific variables, 3D - num = Model%ntot3d - ! GF if (Model%imfdeepcnv == Model%imfdeepcnv_gf) then num = num + 1 diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index c5c16ed4e..3c1252b1e 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -1551,7 +1551,9 @@ module GFS_typedefs #ifdef CCPP real (kind=kind_phys), pointer :: TRAIN (:,:) => null() !< accumulated stratiform T tendency (K s-1) #endif - +#ifdef CCPP + real (kind=kind_phys), pointer :: cldfra (:,:) => null() !< instantaneous 3D cloud fraction +#endif !--- MP quantities for 3D diagnositics real (kind=kind_phys), pointer :: refl_10cm(:,:) => null() !< instantaneous refl_10cm ! @@ -5613,6 +5615,10 @@ subroutine diag_create (Diag, IM, Model) end if #endif +#ifdef CCPP + allocate (Diag%cldfra (IM,Model%levs)) +#endif + allocate (Diag%ca_deep (IM)) allocate (Diag%ca_turb (IM)) allocate (Diag%ca_shal (IM)) @@ -5930,6 +5936,10 @@ subroutine diag_phys_zero (Diag, Model, linit, iauwindow_center) Diag%TRAIN = zero end if #endif +#ifdef CCPP + Diag%cldfra = zero +#endif + Diag%totprcpb = zero Diag%cnvprcpb = zero Diag%toticeb = zero diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index 0c04b6baf..4c5d75267 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -6030,6 +6030,13 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys +[cldfra] + standard_name = instantaneous_3d_cloud_fraction + long_name = instantaneous 3D cloud fraction for all MPs + units = frac + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys [ndust] standard_name = number_of_dust_bins_for_diagnostics long_name = number of dust bins for diagnostics