global_cycle  1.7.0
 All Data Structures Files Functions Variables
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, 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 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_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 calculate_landinc_mask (smc, swe, vtype, lensfc, veg_type_landice, mask)
 Calculate soil mask for land on model grid. More...
 

Private Attributes

integer, parameter lsm_noah =1
 flag for NOAH land surface model copied from GFS_typedefs.F90 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 314 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,
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)

Parameters
[in,out]RLALatitude on the cubed-sphere tile
[in,out]RLOLongitude on the cubed-sphere tile
[in,out]STC_STATE
[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]MYRANKMPI rank number
Author
Clara Draper.
Date
March 2021

Definition at line 43 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 482 of file land_increments.f90.

Referenced by sfcdrv().

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

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_anlAnalysis soil temperature states
[in,out]smc_adjSoil moisture state to be adjusted
[in,out]slc_adjLiquid soil moisture states to be adjusted
Author
Clara Draper
Date
April 2021

Definition at line 394 of file land_increments.f90.

References tfreez().

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 344 of file land_increments.f90.

Referenced by sfcdrv().

Field Documentation

integer, parameter land_increments::lsm_noah =1
private

flag for NOAH land surface model copied from GFS_typedefs.F90

Definition at line 15 of file land_increments.f90.


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