global_cycle
1.11.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, smc_state, slc_state, stc_updated, slc_updated, soilsnow_tile, soilsnow_fg_tile, lensfc, lsoil, idim, jdim, lsm, 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_soil (lsm, isot, ivegsrc, lensfc, lsoil, rsoiltype, mask, stc_bck, stc_adj, smc_adj, slc_adj, stc_updated, slc_updated, zsoil) |
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, public | land_increments::lsm_noah =1 |
flag for NOAH land surface model More... | |
integer, parameter, public | land_increments::lsm_noahmp =2 |
flag for NOAHMP land surface model copied from GFS_typedefs.F90 More... | |
integer, parameter | land_increments::lsoil_incr =3 |
number of layers to add incrments to More... | |
real, parameter | land_increments::tfreez =273.16 |
con_t0c in physcons 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 379 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, | ||
real, dimension(lensfc, lsoil), intent(inout) | smc_state, | ||
real, dimension(lensfc, lsoil), intent(inout) | slc_state, | ||
integer, dimension(lensfc), intent(out) | stc_updated, | ||
integer, dimension(lensfc), intent(out) | slc_updated, | ||
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) | lsm, | ||
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 | Soil temperature state vector |
[in,out] | SMC_STATE | Soil moisture (liquid plus solid) state vector |
[in,out] | SLC_STATE | Liquid soil moisture state vector |
[out] | stc_updated | Integer to record whether STC in each grid cell was updated |
[out] | slc_updated | Integer to record whether SMC in each grid cell was updated |
[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] | lsm | Integer flag indicating which land model is used (1-Noah, 2-Noah-MP) |
[in] | MYRANK | MPI rank number |
Definition at line 57 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 627 of file land_increments.f90.
subroutine, public land_increments::apply_land_da_adjustments_soil | ( | 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(inout) | stc_adj, | ||
real, dimension(lensfc,lsoil), intent(inout) | smc_adj, | ||
real, dimension(lensfc,lsoil), intent(inout) | slc_adj, | ||
integer, dimension(lensfc), intent(in) | stc_updated, | ||
integer, dimension(lensfc), intent(in) | slc_updated, | ||
real(kind=4), dimension(lsoil), intent(in) | zsoil | ||
) |
Make adjustments to dependent variables after applying land increments.
These adjustments are model-dependent, and are currently only coded if full for Noah LSM. For Noah LSM, copy relevent code blocks from model code (same as has been done in sfc_sub). For Noah-MP, have inserted place-holders to simply reset the model
variables back to the analysis if adjustments are needed. Later, will replace this with appropriate adjustmenets (in summary, for now we do not make STC updates if soils are frozen, and are also not applying the appropriate max. values for SMC). 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_adj | Analysis soil temperature states |
[in,out] | smc_adj | Analysis soil moisture states |
[in,out] | slc_adj | Analysis liquid soil moisture states |
[in] | stc_updated | Integer to record whether STC in each grid cell was updated |
[in] | slc_updated | Integer to record whether SLC in each grid cell was updated |
[in] | zsoil | Depth of bottom of each soil layer |
Definition at line 468 of file land_increments.f90.
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 409 of file land_increments.f90.
integer, parameter, public land_increments::lsm_noah =1 |
flag for NOAH land surface model
Definition at line 16 of file land_increments.f90.
integer, parameter, public land_increments::lsm_noahmp =2 |
flag for NOAHMP land surface model copied from GFS_typedefs.F90
Definition at line 17 of file land_increments.f90.
|
private |
number of layers to add incrments to
Definition at line 21 of file land_increments.f90.
|
private |
con_t0c in physcons
Definition at line 23 of file land_increments.f90.