From 7f4447b9e2a21a0b3b0fa962773a97bcb44ec2af Mon Sep 17 00:00:00 2001
From: tomrink <rink@ssec.wisc.edu>
Date: Thu, 7 Jul 2022 12:57:49 -0500
Subject: [PATCH] fix problems with water/ice content computations...

---
 modules/util/util.py | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/modules/util/util.py b/modules/util/util.py
index 24e7c7fc..d09b17d4 100644
--- a/modules/util/util.py
+++ b/modules/util/util.py
@@ -659,8 +659,11 @@ def make_for_full_domain_predict(h5f, name_list=None, satellite='GOES16', domain
     return grd_dct, ll, cc
 
 
-rho_water = 1.
-rho_ice = 0.917
+# rho_water = 1.
+# rho_ice = 0.917
+
+rho_water = 1000000.0  # g m^-3
+rho_ice = 917000.0  # g m^-3
 
 # real(kind=real4), parameter:: Rho_Water = 1.0    !g / m ^ 3
 # real(kind=real4), parameter:: Rho_Ice = 0.917    !g / m ^ 3
@@ -694,6 +697,9 @@ def compute_lwc_iwc(iphase, reff, opd, geo_dz):
     ice = iphase == 1
     no_ice = iphase != 1
 
+    # compute ice/liquid water path, g m-2
+    reff *= 1.0e-06  # convert microns to meters
+
     iwp_dcomp[ice] = 0.667 * opd[ice] * rho_ice * reff[ice]
     lwp_dcomp[no_ice] = 0.55 * opd[no_ice] * rho_water * reff[no_ice]
 
@@ -743,9 +749,10 @@ def make_for_full_domain_predict_viirs_clavrx(h5f, name_list=None, res_fac=1, da
 
     if use_nl_comp:
         cld_phase = get_grid_values(h5f, 'cloud_phase', j_0, i_0, None, num_j=ylen, num_i=xlen)
+        cld_dz = get_grid_values(h5f, 'cld_geo_thick', j_0, i_0, None, num_j=ylen, num_i=xlen)
         reff = grd_dct['cld_reff_dcomp']
         opd = grd_dct['cld_opd_dcomp']
-        lwc_nlcomp, iwc_nlcomp = compute_lwc_iwc(cld_phase, reff, opd)
+        lwc_nlcomp, iwc_nlcomp = compute_lwc_iwc(cld_phase, reff, opd, cld_dz)
         grd_dct['iwc_dcomp'] = iwc_nlcomp
         grd_dct['lwc_dcomp'] = lwc_nlcomp
 
-- 
GitLab