Download presentation
Presentation is loading. Please wait.
Published byMaud Lee Modified over 9 years ago
1
Unified Noah LSM Code at NCAR Kevin W. Manning Fei Chen National Center for Atmospheric Research Boulder, CO
2
Goals Enhance communication and coordination between NCEP and NCAR LSM groups Better serve the community of users Developmental code base(s) maintained via CVS Documented developmental effort Maintain compatibility between coupled and uncoupled applications of Noah LSM
3
CVS Repository Allow NCEP and NCAR easy access to each other’s development code Currently limited to NCAR and NCEP groups Not a public CVS repository Regularly-updated repository to be made available to the community via web site or ftp site Simple repository structure CVS can get complicated Regular backup and archival of CVS repository
4
CVS Repository NCAR development tree NOAHLSM_NCARDEV HRLDAS HRLDAS_COLLECT_DATA NCEP development tree NOAHLSM_NCEPDEV Other? Official release NOAHLSM_ x. x. x
5
NCAR development efforts Code organization Fortran modules Noah LSM in WRF-ARW (NCAR’s coupled implementation) Noah LSM in HRLDAS (NCAR’s uncoupled implementation)
6
module_sf_noahlsm.F module_noahlsm_globals use module_model_constants (WRF module) declare soil, veg, general parameters define constants module_sfc_noahlsm use module_noahlsm_globals subroutine lsm used exclusively in WRF call redprm call sflx subroutine lsminit used exclusively in WRF use module_sf_noahlsm_param_init call soil_veg_gen_parm call frh2o subroutine redprm use module_sf_noahlsm_param_init assign point soil, vegetation, and general parameters subroutine sfcdif_off used exclusively in uncoupled mode (HRLDAS) subroutine SFLX Noah LSM core physics calls many subroutines see the SFLX calling tree module_sf_noahlsm_param_init call soil_veg_gen_parm subroutine soil_veg_gen_parm read VEGPARM, SOILPARM, and GENPARM Assign table array of soil, vegetation, and general parameters Noah LSM code organization Vegetation parameters: ALBZ0BRD SHDFACNROOT RSMINRGL HSSNUP XLAISNOALB_NOAH EMISSITOPT CMCMAXCFACTR RSMAXRTDIS Soil parameters BEXPSMCDRY F1SMCMAX SMCREFPSISAT DKSATDWSAT SMCWLTQUARTZ “General” parameters SLOPESBETA FXEXPCSOIL SALPREFDK REFKDTZBOT CZILPTU KDT FRZFACT
7
Fortran modules Why? Organized related tasks and routines Wider scope for widely-used variables Simplify subroutine argument lists Modules already used extensively in WRF Difficulties? Wider scope of variables is not obvious in the code Compile-time dependencies
8
Module variables Vegetation parameters Soil parameters “General” parameters Physical constants Many inherited from WRF module module_model_constants “Other”
9
SFLX -- Noah LSM SNOW_NEW – Compute snow depth and density to account for new snowfall ALCALC – compute albedo including snow effect SNOWZ0 – Compute total roughness length over snow SNFRAC – Compute the snow fraction (0-1) TDFCND – Compute soil thermal diffusivity and conductivity PENMAN – Compute potential evaporation and “various partial sums” CANRES – compute the canopy resistance, F(SW,T,Q,SMC) NOPAC/SNOPAC – Compute soil moisture and heat fluxes and update SMC and STC EVAPO Calculate evapotranspiration SMFLX Calculate soil moisture flux. Update SMC, CMC, SH2O TDFCND (NOPAC only) Compute thermal diffusivity and conductivity of soil SHFLX Update soil T based on thermal diffusion eqn, and update frozen SMC based on T SNOWPACK (SNOPAC only) Compute compaction of snow DEVAP Calculate direct soil evaporation TRANSP Compute transpiration according to vegetation class SRT RHS of time tendency term for soil water diffusion equation WDFCND Compute soil water diffusivity and soil hydraulic conductivity SSTEP Update SMC and CMC ROSR12 Solve a tri-diagonal matrix problem (to what end?) HRTICE RHS of time dend. term of soil thermal diffusion eqn in the case of sea ice HSTEP Update the soil temperature field HRT RHS of time tendency term of the soil thermal diffusion equation ROSR12 Solve a tri-diagonal matrix problem (to what end?) TBND Compute T on the boundary of a layer by interp. from layer T's TMPAVG Compute soil-layer avg T in a freezing or thawing layer TDFCND Compute thermal diffusivity and conductivity of soil SNKSRC compute sink/source term of thermal diffusion eqn FRH20 Compute liquid SMC in ground colder than 273.15 K Noah LSM subroutine SFLX and sub-routines CSNOW – Compute snow thermal conductivity CALL REDPRM
10
Call REDPRM Formerly inside SFLX, moved to before call to SFLX Easier for use in uncoupled applications Easier for user to override default values of soil and vegetation parameters with values from a 2D “map”
11
WRF-ARW subroutine LSM Initialization tasksTime Loop LSM_PARM_INIT (Noah_code/module_Noahlsm_param_init.F) MODULE module_sf_Noahlsm_param_init reads tables GENPARM SOILPARM, and VEGPARM I,J Loop REDPRM (Noah_code/module_Noahlsm.F) MODULE module_sf_Noahlsm Assign values of soil/veg parameters from the tables according to soil/veg categories of this particular (I,J) point SFLX (Noah_code/module_Noahlsm.F) MODULE module_sf_noahlsm Noah LSM code ( ) MODULE Key: Coupled implementation example, as in WRF- ARW WRF Noah LSM code CALTMP (Noah_code/module_Noahlsm_utility.F) MODULE module_Noahlsm_utility compute some termerature variables for use in CALHUM and SFLX CALHUM (Noah_code/module_Noahlsm_utility.F) MODULE module_Noahlsm_utility compute saturation mixing ratio Qsat and d/dT of Qsat SFCDIF_OFF (Noah_code/module_Noahlsm.F) MODULE module_sf_Noahlsm Calculate surface exchange coefficients CM and CH Special offline computations WRF-ARW subroutine LSM READLAND_HRLDAS (IO_code/module_hrldas_netcdf_io.F) MODULE module_hrldas_netcdf_io reads geographic information: Terrain, lat/lon, veg/soil maps READINIT_HRLDAS (IO_code/module_hrldas_netcdf_io.F) MODULE module_hrldas_netcdf_io read initial soil conditions: Soil moisture, Soil T, Canopy water, Snow depth, Skin T READVEG_HRLDAS (IO_code/module_hrldas_netcdf_io.F) MODULE module_hrldas_netcdf_io read vegetation conditions: FPAR, LAI READFORC_HRLDAS (IO_code/module_hrldas_netcdf_io.F) MODULE module_hrldas_netcdf_io reads the forcing fields P,T,Q,U,V,LW,SW,PCP,LAI,FPAR OUTPUT_HRLDAS (IO_code/module_hrldas_netcdf_io.F) MODULE module_hrldas_netcdf_io write out LSM output Uncoupled implementation example, as in NCAR HRLDAS HRLDAS I/O tasks Noah_hrldas_driver.F Main routine
12
New Improved urban treatment 2-season tables Date or season information needed in Noah LSM code In progress Water routing
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.