global_cycle
1.9.0
|
Routines for applyng land DA increments. More...
Go to the source code of this file.
Functions/Subroutines | |
subroutine, public | land_increments::add_increment_snow (snd_inc, mask, lensfc, snd) |
Add snow depth increment to model snow depth state, and limit output to be non-negative. More... | |
subroutine, public | land_increments::add_increment_soil (rla, rlo, stc_state, soilsnow_tile, soilsnow_fg_tile, lensfc, lsoil, idim, jdim, myrank) |
Read in gsi file with soil state increments (on the gaussian grid), interpolate increments to the cubed-sphere tile, and add to the soil states. More... | |
subroutine, public | land_increments::apply_land_da_adjustments_snd (lsm, lensfc, mask, swe_bck, snd_bck, snd_anl, swe_adj) |
Make adjustments to dependent variables after applying land increments. More... | |
subroutine, public | land_increments::apply_land_da_adjustments_stc (lsm, isot, ivegsrc, lensfc, lsoil, rsoiltype, mask, stc_bck, stc_anl, smc_adj, slc_adj) |
Make adjustments to dependent variables after applying land increments. More... | |
subroutine, public | land_increments::calculate_landinc_mask (smc, swe, vtype, lensfc, veg_type_landice, mask) |
Calculate soil mask for land on model grid. More... | |
Variables | |
integer, parameter | land_increments::lsm_noah =1 |
flag for NOAH land surface model copied from GFS_typedefs.F90 More... | |
Routines for applyng land DA increments.
Definition in file land_increments.f90.
subroutine, public land_increments::add_increment_snow | ( | real, dimension(lensfc), intent(in) | snd_inc, |
integer, dimension(lensfc), intent(in) | mask, | ||
integer, intent(in) | lensfc, | ||
real, dimension(lensfc), intent(inout) | snd | ||
) |
Add snow depth increment to model snow depth state, and limit output to be non-negative.
JEDI increments are calculated globally, so must be screened to land-only locations here.
[in] | lensfc | Number of land points on this tile |
[in] | snd_inc | Soil depth increments |
[in] | mask | Land mask for increments |
[in,out] | snd | Soil depth background (in), and analysis (out) |
Definition at line 315 of file land_increments.f90.
subroutine, public land_increments::add_increment_soil | ( | real, dimension(lensfc), intent(inout) | rla, |
real, dimension(lensfc), intent(inout) | rlo, | ||
real, dimension(lensfc, lsoil), intent(inout) | stc_state, | ||
integer, dimension(lensfc), intent(in) | soilsnow_tile, | ||
integer, dimension(lensfc), intent(in) | soilsnow_fg_tile, | ||
integer, intent(in) | lensfc, | ||
integer, intent(in) | lsoil, | ||
integer, intent(in) | idim, | ||
integer, intent(in) | jdim, | ||
integer, intent(in) | myrank | ||
) |
Read in gsi file with soil state increments (on the gaussian grid), interpolate increments to the cubed-sphere tile, and add to the soil states.
Adapted from adjust_nsst. Currently only coded for soil temperature. Soil moisture will need the model soil moisture paramaters for regridding.
Does not make a temperature update if snow differ between fg and anal (allow correction of snow to address temperature error first), or if snow is present (will eventually updating of snow temperature in this case)
[in,out] | RLA | Latitude on the cubed-sphere tile |
[in,out] | RLO | Longitude on the cubed-sphere tile |
[in,out] | STC_STATE | |
[in] | SOILSNOW_TILE | Land mask for increments on the cubed-sphere tile |
[in] | SOILSNOW_FG_TILE | First guess land mask for increments on the cubed-sphere tile |
[in] | LENSFC | Number of land points on a tile |
[in] | LSOIL | Number of soil layers |
[in] | IDIM | 'I' dimension of a tile |
[in] | JDIM | 'J' dimension of a tile |
[in] | MYRANK | MPI rank number |
Definition at line 45 of file land_increments.f90.
subroutine, public land_increments::apply_land_da_adjustments_snd | ( | integer, intent(in) | lsm, |
integer, intent(in) | lensfc, | ||
integer, dimension(lensfc), intent(in) | mask, | ||
real, dimension(lensfc), intent(in) | swe_bck, | ||
real, dimension(lensfc), intent(in) | snd_bck, | ||
real, dimension(lensfc), intent(in) | snd_anl, | ||
real, dimension(lensfc), intent(inout) | swe_adj | ||
) |
Make adjustments to dependent variables after applying land increments.
These adjustments are model-dependent, and are currently only coded for Noah LSM. Here: adjust SWE to be consistent with updated SND, using snow density from the forecast.
[in] | lsm | Integer code for the LSM |
[in] | lensfc | Number of land points for this tile |
[in] | mask | Land mask for increments |
[in] | swe_bck | Background SWE |
[in] | snd_bck | Background snow depth |
[in] | snd_anl | Analysis snow depth |
[in,out] | swe_adj | SWE to be adjusted |
Definition at line 483 of file land_increments.f90.
subroutine, public land_increments::apply_land_da_adjustments_stc | ( | integer, intent(in) | lsm, |
integer, intent(in) | isot, | ||
integer, intent(in) | ivegsrc, | ||
integer, intent(in) | lensfc, | ||
integer, intent(in) | lsoil, | ||
real, dimension(lensfc), intent(in) | rsoiltype, | ||
integer, dimension(lensfc), intent(in) | mask, | ||
real, dimension(lensfc, lsoil), intent(in) | stc_bck, | ||
real, dimension(lensfc, lsoil), intent(in) | stc_anl, | ||
real, dimension(lensfc,lsoil), intent(inout) | smc_adj, | ||
real, dimension(lensfc,lsoil), intent(inout) | slc_adj | ||
) |
Make adjustments to dependent variables after applying land increments.
These adjustments are model-dependent, and are currently only coded for Noah LSM. For Noah LSM, copy relevent code blocks from model code (same as has been done in sfc_sub). Here: adjust (frozen) soil moisture to be consistent with changes in soil temperature from DA
[in] | lsm | Integer code for the LSM |
[in] | isot | Integer code for the soil type data set |
[in] | ivegsrc | Integer code for the vegetation type data set |
[in] | lensfc | Number of land points for this tile |
[in] | lsoil | Number of soil layers |
[in] | rsoiltype | Array of input soil types |
[in] | mask | Mask indicating surface type |
[in] | stc_bck | Background soil temperature states |
[in] | stc_anl | Analysis soil temperature states |
[in,out] | smc_adj | Soil moisture state to be adjusted |
[in,out] | slc_adj | Liquid soil moisture states to be adjusted |
Definition at line 396 of file land_increments.f90.
References tfreez().
subroutine, public land_increments::calculate_landinc_mask | ( | real, dimension(lensfc), intent(in) | smc, |
real, dimension(lensfc), intent(in) | swe, | ||
real, dimension(lensfc), intent(in) | vtype, | ||
integer, intent(in) | lensfc, | ||
integer, intent(in) | veg_type_landice, | ||
integer, dimension(lensfc), intent(out) | mask | ||
) |
Calculate soil mask for land on model grid.
Output is 1 - soil, 2 - snow-covered, 0 - land ice, -1 not land.
[in] | lensfc | Number of land points for this tile |
[in] | veg_type_landice | Value of vegetion class that indicates land-ice |
[in] | smc | Model soil moisture. |
[in] | swe | Model snow water equivalent |
[in] | vtype | Model vegetation type |
[out] | mask | Land mask for increments |
Definition at line 345 of file land_increments.f90.
|
private |
flag for NOAH land surface model copied from GFS_typedefs.F90
Definition at line 15 of file land_increments.f90.