Scheduled Downtime
On Friday 21 April 2023 @ 5pm MT, this website will be down for maintenance and expected to return online the morning of 24 April 2023 at the latest

Noah-MP Snow Initialization

This post was from a previous version of the WRF&MPAS-A Support Forum. New replies have been disabled and if you have follow up questions related to this post, then please start a new thread from the forum home page.

politeness

New member
Hi, I am interested in modifying the snow water equivalent and snow depth fields in my WRF restart file (i.e., adding snow to a snow-free grid). I am wondering what other fields I will need to modify for physical consistency. For example, upon initialization will Noah-MP determine the appropriate number and thickness of snow layers and set snow cover=1?

Thank you in advance for any insight you can provide.
 
Hi,
If you look at wrfrst file, you will find the following data related to snow:
Code:
       float ACSNOW(Time, south_north, west_east) ;
                ACSNOW:FieldType = 104 ;
                ACSNOW:MemoryOrder = "XY " ;
                ACSNOW:description = "ACCUMULATED SNOW" ;
                ACSNOW:units = "kg m-2" ;
                ACSNOW:stagger = "" ;
                ACSNOW:coordinates = "XLONG XLAT XTIME" ;
                ACSNOM:description = "ACCUMULATED MELTED SNOW" ;
        float SNOW(Time, south_north, west_east) ;
                SNOW:FieldType = 104 ;
                SNOW:MemoryOrder = "XY " ;
                SNOW:description = "SNOW WATER EQUIVALENT" ;
                SNOW:units = "kg m-2" ;
                SNOW:stagger = "" ;
                SNOW:coordinates = "XLONG XLAT XTIME" ;
        float SNOWH(Time, south_north, west_east) ;
                SNOWH:FieldType = 104 ;
                SNOWH:MemoryOrder = "XY " ;
                SNOWH:description = "PHYSICAL SNOW DEPTH" ;
                SNOWH:units = "m" ;
                SNOWH:stagger = "" ;
                SNOWH:coordinates = "XLONG XLAT XTIME" ;
        float SNOWNC(Time, south_north, west_east) ;
                SNOWNC:FieldType = 104 ;
                SNOWNC:MemoryOrder = "XY " ;
                SNOWNC:description = "ACCUMULATED TOTAL GRID SCALE SNOW AND ICE" ;
                SNOWNC:units = "mm" ;
                SNOWNC:stagger = "" ;
                SNOWNC:coordinates = "XLONG XLAT XTIME" ;
        float SNOWNCV(Time, south_north, west_east) ;
                SNOWNCV:FieldType = 104 ;
                SNOWNCV:MemoryOrder = "XY " ;
                SNOWNCV:description = "TIME-STEP NONCONVECTIVE SNOW AND ICE" ;
                SNOWNCV:units = "mm" ;
                SNOWNCV:stagger = "" ;
                SNOWNCV:coordinates = "XLONG XLAT XTIME" ;
                TSNAV:description = "AVERAGE SNOW TEMPERATURE" ;
        float SNOWC(Time, south_north, west_east) ;
                SNOWC:FieldType = 104 ;
                SNOWC:MemoryOrder = "XY " ;
                SNOWC:description = "FLAG INDICATING SNOW COVERAGE (1 FOR SNOW COVER)" ;
                SNOWC:units = "" ;
                SNOWC:stagger = "" ;
                SNOWC:coordinates = "XLONG XLAT XTIME" ;
       float TSNAV(Time, south_north, west_east) ;
                TSNAV:FieldType = 104 ;
                TSNAV:MemoryOrder = "XY " ;
                TSNAV:description = "AVERAGE SNOW TEMPERATURE" ;
                TSNAV:units = "C" ;
                TSNAV:stagger = "" ;
                TSNAV:coordinates = "XLONG XLAT XTIME" ;
        float SNOALB(Time, south_north, west_east) ;
                SNOALB:FieldType = 104 ;
                SNOALB:MemoryOrder = "XY " ;
                SNOALB:description = "ANNUAL MAX SNOW ALBEDO IN FRACTION" ;
                SNOALB:units = "" ;
                SNOALB:stagger = "" ;
                SNOALB:coordinates = "XLONG XLAT XTIME" ;
       float ACSNOM(Time, south_north, west_east) ;
                ACSNOM:FieldType = 104 ;
                ACSNOM:MemoryOrder = "XY " ;
                ACSNOM:description = "ACCUMULATED MELTED SNOW" ;
                ACSNOM:units = "kg m-2" ;
                ACSNOM:stagger = "" ;
                ACSNOM:coordinates = "XLONG XLAT XTIME" ;

These variables should be changed at the grids where you will make changes.
 
Ming,
Thank you for your response. Relatedly, I wonder if you can explain cases that I am seeing in the WRF restart file where ISNOW=0, but 0<SNOWH<0.15 AND SNOWC==1. How does it happen that a snow-covered grid with a depth of snow does not have a layer of snow characterized?

Thanks,
Craig
 
Craig,
My understanding is that, NoahMP always specifies snow layer when it starts from initial run or from restart file.If you look at the code " module_sf_noahmplsm.F", you will find the following piece of codes:
Code:
! snow/soil layer thickness (m)

     DO IZ = ISNOW+1, NSOIL 
         IF(IZ == ISNOW+1) THEN
           DZSNSO(IZ) = - ZSNSO(IZ)
         ELSE  
           DZSNSO(IZ) = ZSNSO(IZ-1) - ZSNSO(IZ)
         END IF
     END DO

Even if isnow=0 in wrfrst files, snow layers are specified.
 
Hi Ming,
Sorry, but the code snippet doesn't help with the issue I am seeing. I think the explanation likely lies in the output/update sequence of isnow vs. SWE and SNOWH. For example, in my restart file, there is a grid with the following attributes:

snowc=1.0
isnow=0
tsno=[0,0,0]
zsnso=[0,0,0,-0.1, -0.4, -1.0, -2.0]
snliq=[0,0,0]
snice=[0,0,0]
snowh=0.0506
snow=10.117

It seems to me that either snowh and snow are from a previous or later timestep than the column variables (i.e., zsnso, tsno, snliq, snice, isnow).

Thanks,
 
Hi, Craig,
ISNOW is a variable specifically used in SSIB. It has nothing to do with snow fields in NoahMP.
snowh and snow in NoahMP are from a previous timestep.
Does this answer your question?
 
Top