diff --git a/modules/deeplearning/cnn_cld_frac.py b/modules/deeplearning/cnn_cld_frac.py
index abd9d0bac205ed5a1d7374675c778ae7cbcd1ed1..204df912c9f2197d5c0a5c16d3ef108adb1350e1 100644
--- a/modules/deeplearning/cnn_cld_frac.py
+++ b/modules/deeplearning/cnn_cld_frac.py
@@ -174,6 +174,18 @@ def upsample(tmp):
     return tmp
 
 
+def upsample_nearest(grd):
+    bsize, ylen, xlen = grd.shape
+    up = np.zeros((bsize, ylen*2, xlen*2))
+
+    up[:, 0::2, 0::2] = grd[:, 0::, 0::]
+    up[:, 1::2, 0::2] = grd[:, 0::, 0::]
+    up[:, 0::2, 1::2] = grd[:, 0::, 0::]
+    up[:, 1::2, 1::2] = grd[:, 0::, 0::]
+
+    return up
+
+
 def upsample_mean(grd):
     bsize, ylen, xlen = grd.shape
     grd = get_grid_cell_mean(grd)