global_cycle  1.13.0
 All Data Structures Files Functions Variables Pages
land_increments Module Reference

Public Member Functions

subroutine, public 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 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 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 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 calculate_landinc_mask (smc, swe, vtype, lensfc, veg_type_landice, mask)
 Calculate soil mask for land on model grid. More...
 

Data Fields

integer, parameter, public lsm_noah =1
 flag for NOAH land surface model More...
 
integer, parameter, public lsm_noahmp =2
 flag for NOAHMP land surface model copied from GFS_typedefs.F90 More...
 

Private Attributes

integer, parameter lsoil_incr =3
 number of layers to add incrments to More...
 
real, parameter tfreez =273.16
 con_t0c in physcons More...
 

Detailed Description

Definition at line 5 of file land_increments.f90.

Member Function/Subroutine Documentation

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.

Parameters
[in]lensfcNumber of land points on this tile
[in]snd_incSoil depth increments
[in]maskLand mask for increments
[in,out]sndSoil depth background (in), and analysis (out)
Author
Clara Draper.
Date
August 2021

Definition at line 378 of file land_increments.f90.

Referenced by sfcdrv().

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)

Parameters
[in,out]RLALatitude on the cubed-sphere tile
[in,out]RLOLongitude on the cubed-sphere tile
[in,out]STC_STATESoil temperature state vector
[in,out]SMC_STATESoil moisture (liquid plus solid) state vector
[in,out]SLC_STATELiquid soil moisture state vector
[out]stc_updatedInteger to record whether STC in each grid cell was updated
[out]slc_updatedInteger to record whether SMC in each grid cell was updated
[in]SOILSNOW_TILELand mask for increments on the cubed-sphere tile
[in]SOILSNOW_FG_TILEFirst guess land mask for increments on the cubed-sphere tile
[in]LENSFCNumber of land points on a tile
[in]LSOILNumber of soil layers
[in]IDIM'I' dimension of a tile
[in]JDIM'J' dimension of a tile
[in]lsmInteger flag indicating which land model is used (1-Noah, 2-Noah-MP)
[in]MYRANKMPI rank number
Author
Clara Draper.
Date
March 2021

Definition at line 55 of file land_increments.f90.

References utils::remap_coef().

Referenced by sfcdrv().

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.

Parameters
[in]lsmInteger code for the LSM
[in]lensfcNumber of land points for this tile
[in]maskLand mask for increments
[in]swe_bckBackground SWE
[in]snd_bckBackground snow depth
[in]snd_anlAnalysis snow depth
[in,out]swe_adjSWE to be adjusted
Author
Clara Draper
Date
August 2021

Definition at line 626 of file land_increments.f90.

Referenced by sfcdrv().

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

Parameters
[in]lsmInteger code for the LSM
[in]isotInteger code for the soil type data set
[in]ivegsrcInteger code for the vegetation type data set
[in]lensfcNumber of land points for this tile
[in]lsoilNumber of soil layers
[in]rsoiltypeArray of input soil types
[in]maskMask indicating surface type
[in]stc_bckBackground soil temperature states
[in]stc_adjAnalysis soil temperature states
[in,out]smc_adjAnalysis soil moisture states
[in,out]slc_adjAnalysis liquid soil moisture states
[in]stc_updatedInteger to record whether STC in each grid cell was updated
[in]slc_updatedInteger to record whether SLC in each grid cell was updated
[in]zsoilDepth of bottom of each soil layer
Author
Clara Draper
Date
April 2021

Definition at line 465 of file land_increments.f90.

Referenced by sfcdrv().

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.

Parameters
[in]lensfcNumber of land points for this tile
[in]veg_type_landiceValue of vegetion class that indicates land-ice
[in]smcModel soil moisture.
[in]sweModel snow water equivalent
[in]vtypeModel vegetation type
[out]maskLand mask for increments
Author
Clara Draper
Date
March 2021

Definition at line 408 of file land_increments.f90.

Referenced by sfcdrv().

Field Documentation

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.

integer, parameter land_increments::lsoil_incr =3
private

number of layers to add incrments to

Definition at line 21 of file land_increments.f90.

real, parameter land_increments::tfreez =273.16
private

con_t0c in physcons

Definition at line 23 of file land_increments.f90.


The documentation for this module was generated from the following file: