diff --git a/src/core_atmosphere/Registry.xml b/src/core_atmosphere/Registry.xml index cfbf76344..9953f7cef 100644 --- a/src/core_atmosphere/Registry.xml +++ b/src/core_atmosphere/Registry.xml @@ -601,7 +601,11 @@ - + + + + + @@ -1008,7 +1012,11 @@ - + + + + + @@ -1077,7 +1085,12 @@ - + + + + + + @@ -1263,6 +1276,11 @@ + + + + + @@ -2633,11 +2651,23 @@ + + + + + + + + - + - diff --git a/src/core_atmosphere/physics/mpas_atmphys_driver_microphysics.F b/src/core_atmosphere/physics/mpas_atmphys_driver_microphysics.F index b2e172dad..9f1b9e75c 100644 --- a/src/core_atmosphere/physics/mpas_atmphys_driver_microphysics.F +++ b/src/core_atmosphere/physics/mpas_atmphys_driver_microphysics.F @@ -579,7 +579,7 @@ subroutine precip_to_MPAS(configs,diag_physics,its,ite) integer,dimension(:),pointer:: i_rainnc real(kind=RKIND),pointer:: config_bucket_rainnc - real(kind=RKIND),dimension(:),pointer:: precipw + real(kind=RKIND),dimension(:),pointer:: precipw,precipc,precipr,precipi,precipg,precips real(kind=RKIND),dimension(:),pointer:: graupelnc,rainnc,snownc real(kind=RKIND),dimension(:),pointer:: graupelncv,rainncv,snowncv,sr @@ -594,6 +594,12 @@ subroutine precip_to_MPAS(configs,diag_physics,its,ite) call mpas_pool_get_array(diag_physics,'i_rainnc' ,i_rainnc ) call mpas_pool_get_array(diag_physics,'precipw' ,precipw ) + call mpas_pool_get_array(diag_physics,'precipc' ,precipc ) + call mpas_pool_get_array(diag_physics,'precipr' ,precipr ) + call mpas_pool_get_array(diag_physics,'precipi' ,precipi ) + call mpas_pool_get_array(diag_physics,'precipg' ,precipg ) + call mpas_pool_get_array(diag_physics,'precips' ,precips ) + call mpas_pool_get_array(diag_physics,'graupelnc' ,graupelnc ) call mpas_pool_get_array(diag_physics,'graupelncv',graupelncv) call mpas_pool_get_array(diag_physics,'rainnc' ,rainnc ) @@ -604,6 +610,11 @@ subroutine precip_to_MPAS(configs,diag_physics,its,ite) do i = its,ite precipw(i) = 0._RKIND + precipc(i) = 0._RKIND + precipr(i) = 0._RKIND + precipi(i) = 0._RKIND + precipg(i) = 0._RKIND + precips(i) = 0._RKIND enddo !variables common to all cloud microphysics schemes: @@ -649,6 +660,15 @@ subroutine precip_to_MPAS(configs,diag_physics,its,ite) !accumulated precipitation: snownc(i) = snownc(i) + snowncv(i) graupelnc(i) = graupelnc(i) + graupelncv(i) + + do k = kts,kte + rho_a = rho_p(i,k,j) / (1._RKIND + qv_p(i,k,j)) + precipc(i) = precipc(i) + qc_p(i,k,j) * rho_a * dz_p(i,k,j) + precipr(i) = precipr(i) + qr_p(i,k,j) * rho_a * dz_p(i,k,j) + precipi(i) = precipi(i) + qi_p(i,k,j) * rho_a * dz_p(i,k,j) + precipg(i) = precipg(i) + qg_p(i,k,j) * rho_a * dz_p(i,k,j) + precips(i) = precips(i) + qs_p(i,k,j) * rho_a * dz_p(i,k,j) + enddo enddo enddo