CORDEX-WRF-community / fps-urb-rcc

Repository to coordinate the WRF activity on the CORDEX FPS-URB-RCC
1 stars 2 forks source link

Diagnostic of mrsofc #11

Open LluisFB opened 1 day ago

LluisFB commented 1 day ago

Regarding the CMORization of the WRF output, I created a python/Fortran based post-processor: python-cordex.

Accordingly to the requested CORDEX variables, we need to provide mrsofc being `Capacity of Soil to Store Water (Field Capacity).

WRF does not provide this variable, thus, what I implemented is the following:

  1. Take the land-types variable ISLTYP
  2. Take the total depths of the soil layers
  3. Get the values inside SOILPARM.TBL
  4. Match the indices at each grid point of ISLTYP with the correspondent entries in SOILPARM.TBL
  5. At the correspondant line, get the values of the parameter REFSMC (whicih accroding to this NoahMP- web, corresponds to Reference soil moisture (field capacity), where transpiration begins to stress [volumetric fraction])
  6. Result is transformed to required units of m3m-2 by integrating to all soil depth (multiplying by totDZ) mrsofc(i,j) = REFSMC(i,j)*tot_dz

Please if anyone from the soil/land community can revise it, will be highly appreciated

Hope it make sense.

Lluís

jesusff commented 9 hours ago

Hi Lluís,

where did you get the required units from? in the FPS (and in CORDEX in general), they seem to be kg m-2

https://github.com/impetus4change/T32-CPRCM/blob/6aa28809a528cb042b2f577f50d154f6d2189811/data-request-fpsurbrcc.csv#L61

The REFSMC parameter leads to a single soil column value, depending on the soil type.

https://github.com/NCAR/noahmp/blob/c232448ef191de0ab0357ebd249636f504bb7a24/drivers/wrf/module_sf_noahmpdrv.F#L1642

But, then, there are places in the code where the field capacity (read into SMCREF) is considered by soil layer, as a 3D variable: https://github.com/NCAR/noahmp/blob/c232448ef191de0ab0357ebd249636f504bb7a24/src/module_sf_noahmplsm.F#L8089

Maybe a NoahMP developer can help us here to understand where we can get the field capacity actually used by the model @cenlinhe @barlage

barlage commented 3 hours ago

The soil properties in the parameters structure have dimension NSOIL, regardless of iopt_soil setting

https://github.com/NCAR/noahmp/blob/c232448ef191de0ab0357ebd249636f504bb7a24/src/module_sf_noahmplsm.F#L401

Depending on the iopt_soil setting, it will either use dominant for all layers (option 1) or use classes that can be different in each layer (option 2)

https://github.com/NCAR/noahmp/blob/c232448ef191de0ab0357ebd249636f504bb7a24/drivers/wrf/module_sf_noahmpdrv.F#L743

I believe the default in WRF is to use option 1

jesusff commented 3 hours ago

Thank you for the swift reply!

we are using the default opt_soil = 1, yes (one never ends learning about parameter settings in WRF) https://github.com/CORDEX-WRF-community/WRF/blob/v4.5.1.5/run/README.namelist#L1346

@LluisFB, then I think you are OK with your computation, except for the units. I'm no expert in soil processes, but I'd say that to convert from volumetric fraction:

mrsofc(i,j) = REFSMC(i,j) * tot_dz * 1000. [kg m-2]

Also, not sure why this variable was requested in the FPS, since soil moisture itself is not requested.