#============
# Contents
#============
* CMEM GRIBAPI I/O
* GRIBAPI
* Input
- Input
- Contain required forcing for CMEM
- Main (soil moisuture, soil temperature)
- Soil Condition
- Vegetation
- 2m air temperature
- Vegetation LAI
- Atmospheric optical thickness and TB
- Snow (single-layer)
- Snow (multi-layer)
- Incident Angle
* Output
- Output
- Output: Level-1
- Output: Level-2
- Output: Level-3
- Output: Level-4
#====================
# CMEM GRIBAPI I/O
#====================
input config : input # configuration of namelists
input files : [elem].grib
output files : out*.grib
put option CFINOUT='gribapi' in file 'input'.
#===========
# GRIBAPI
#===========
* GRIBAPI programs developed for encoding and decoding WMO FM-92 GRIB edition 1 and edition 2 messages
* To use GRIBAPI, which is the default of CMEM, you need to install GRIBAPI
https://confluence.ecmwf.int/display/ECC/What+is+ecCodes
* When using the GRIBAPI option, CMEM needs to have a template file to write the outputs.
e.g. For sample data, to this end you need to copy SWVL1.grib into SWVL1.tmpl
$ cp SWVL1.grib SWVL1.tmpl
* When using the GRIBAPI option, CMEM needs environment variable GRIB_TEMPLATES_PATH.
Before running cmem, do
e.g. template file: /home/user/wk/SWVL1.tmpl
$ export GRIB_TEMPLATES_PATH=/home/user/wk # for ksh or bash
#=========
# Input
#=========
* Prepare the forcing file according to your run config. Here GRIB input required
* forcing files must be consistent in terms of grid size (checked in rdcmemgribapiinfo.F90)
#=================================================
# Input: Main (soil moisuture, soil temperature)
#==================================================
* required for any option
* defalt: number of soil layer (NLAY_SOIL_LS) = 3
STL1.grib # Soil temperature level 1 (K)
STL2.grib # Soil temperature level 2 (K)
STL3.grib # Soil temperature level 3 (K)
TSKIN.grib # Skin temperature (K)
SWVL1.grib # Volumetric soil moisture level1 (m3/m3)
SWVL2.grib # Volumetric soil moisture level2 (m3/m3)
SWVL3.grib # Volumetric soil moisture level3 (m3/m3)
SWVL1.tmpl # copy of SWVL1.grib to be used as template for the output (only required if gribapi is used)
#=========================
# Input: Soil condition
#=========================
* required for any option
Z.grib # Geopotential at surface (m2/s2)
sand.grib # Fraction of sandy textured soil (%) range 0-100
clay.grib # Fraction of clay textured soil (%) range 0-100
#=====================
# Input: Vegetation
#=====================
* required file depends on options CIVEG:
#--------------------------
# if CIVEG = 'Ecoclimap'
#--------------------------
ECOCVL.grib # fraction of low veg (-)
ECOCVH.grib # fraction of high veg (-)
# These fractions are such as their sum is the complement to one of the bare soil fraction:
# bare soil frac = 1- cvh+cvl
ECOTVL.grib # low veg type
ECOTVH.grib # high veg type
ECOWAT.grib # water fraction (-)
#------------------------------------
# if CIVEG = 'Tessel' or 'HTessel'
#------------------------------------
CVL.grib # fraction of low veg (-)
CVH.grib # fraction of high veg (-)
# Appart for desert areas these fractions are such as their sum is 1
# Accordingly a weigting function is applied to these fractions to compute bare soil
TVL.grib # low veg type
TVH.grib # high veg type
LSM.grib # land fraction (water fraction is set = 1-LSM) (-)
#-----------------------
# Useful information:
#-----------------------
ECOCLIMAP types are:
No vegetation: 0
High vegetation: 1 Decidious forests; 2 Coniferous forests; 3 Rain forests
Low vegetation: 4 C3 Grasslands; 5 C4 Grasslands; 6 C3 Crops;
7 C4 Crops
TESSEL types are:
High vegetation: 3 Evergreen Needleleaf Trees; 4 Deciduous Needleleaf Trees; 5 eciduous Broadleaf Trees;
6 Evergreen Broadleaf Trees; 18 Mixed Forest/woodland; 19 Interrupted Forest
Low vegetation: 1 Crops, Mixed Farming; 2 Short Grass; 7 Tall Grass;
9 Tundra; 10 Irrigated Crops; 11 Semidesert;
13 Bogs and Marshes; 16 Evergreen Shrubs; 17 Deciduous Shrubs;
20 Water and Land Mixtures
Vegetation tables are provided in vegtable.F90
#=============================
# Input: 2m air temperature
#=============================
* required if
(CITVEG = 'Tair' or 'Da_dual_all' or 'Ds_dual_onlysnow')
or (CIATM = 'Pellarin' or 'Ulaby' or 'Input')
2T.grib # 2m air temperature (K)
#=========================
# Input: Vegetation LAI
#=========================
* required if CIDVEG = 'HTessel' or 'Ecoclimap'
* required file depends on options CIVEG:
#--------------------------
# if CIVEG = 'Ecoclimap'
#--------------------------
ECOLAIL.grib # LAI of low veg for each pixel
#------------------------
# if CIVEG = 'HTessel'
#------------------------
LAIL.grib # LAI of low veg for each pixel
#===============================================
# Input: Atmospheric optical thickness and TB
#===============================================
* required if CIATM = 'Input'
TAU_ATM.grib # optical thickness of atmosphere (zenith opacity / cos(angle))
TB_AU.grib # upward atmospheric radiation (TB) (K)
TB_AD.grib # downward atmospheric radiation (TB) (K)
#==============================
# Input: Snow (single-layer)
#==============================
* required if CISNOWSET = 'Single'
#-------------------------------------------------
# Snow depth in water equivalent (single-layer)
#-------------------------------------------------
* required if CISNOWSET = 'Single'
SD.grib # snow depth in water equivalent (m)
#-------------------------------
# Snow density (single-layer)
#-------------------------------
* required if CISNOWSET = 'Single'
RSN.grib # snow density (kg/m3)
#-----------------------------------
# Snow temperature (single-layer)
#-----------------------------------
* required if CISNOWSET = 'Single' and CISNOWTEMP = 'Snowtemp'
TSNOW.grib # snow temperature (K)
#--------------------------------------------
# Snow liquid water content (single-layer)
#--------------------------------------------
* required if CISNOWSET = 'Single' and CISNOWMV = 'Input'
SLW.grib # snow liquid water content (kg/m2)
#===========================
# Input: Multi-layer Snow
#===========================
* required if CISNOWSET = 'Multi'
* NLAY_SNOW: number of snow layers
#-------------------
# Layer structure
#-------------------
AIR
----------------------------------
snow layer 1 (top layer)
----------------------------------
snow layer 2
----------------------------------
...
----------------------------------
snow layer NLAY_SNOW (bottom)
==================================
SOIL
(Note: see 'Ignored data' and 'Ignored layer')
#--------------------------------------------------------------
# Snow depth (WEQ): multi-layer
# Take care that this is in [kg/m2] for multi-layer input,
# while [m] are used for single-layer input SD.grib
#--------------------------------------------------------------
* required if CISNOWSET = 'Multi'
SDWEQ_1.grib # snow water equivalent (kg/m2) : layer 1 (top)
SDWEQ_2.grib # snow water equivalent (kg/m2) : layer 2
... # snow water equivalent (kg/m2) : layer ...
SDWEQ_$NLAY_SNOW.grib # snow water equivalent (kg/m2) : layer NLAY_SNOW (bottom)
#------------------------------------------
# Snow liquid water content: multi-layer
#------------------------------------------
* required if CISNOWSET = 'Multi'
SLW_1.grib # snow liquid water content (kg/m2) : layer 1 (top)
SLW_2.grib # snow liquid water content (kg/m2) : layer 2
... # snow liquid water content (kg/m2) : layer ...
SLW_$NLAY_SNOW.grib # snow liquid water content (kg/m2) : layer NLAY_SNOW (bottom)
#-----------------------------
# Snow density: multi-layer
#-----------------------------
* required if CISNOWSET = 'Multi'
RSN_1.grib # snow density (kg/m3) : layer 1 (top)
RSN_2.grib # snow density (kg/m3) : layer 2
... # snow density (kg/m3) : layer ...
RSN_$NLAY_SNOW.grib # snow density (kg/m3) : layer NLAY_SNOW (bottom)
#---------------------------------
# Snow temperature: multi-layer
#---------------------------------
* required if CISNOWSET = 'Multi'
TSNOW_1.grib # snow temperature (K) : layer 1 (top)
TSNOW_2.grib # snow temperature (K) : layer 2
... # snow temperature (K) : layer ...
TSNOW_$NLAY_SNOW.grib # snow temperature (K) : layer NLAY_SNOW (bottom)
#----------------------
# NOTE: Ignored data
#----------------------
* if total snow water equivalent < 0.01 (m), the point is treated as without snow.
#-----------------------
# NOTE: Ignored layer
#-----------------------
* if snow depth (WEQ) >= 9999 or <= 0, the layer (about snow_weq, snow_lwc, snow_dense, snow_t) is ignored at the point.
* if snow liquid water content >= 9999 or <= 0, the layer (about snow_weq, snow_lwc, snow_dense, snow_t) is ignored at the point.
#=========================
# Input: Incident Angle
#=========================
* required if LTHETA_CONST = .False.
ANGLE.grib # Incident angle (degrees)
#==========
# Output
#==========
* option JPHISTLEV in file 'input' defines levels of outputs
* variables in output filename
$CNAMEID : Summarize of options # e.g. WaWiFrWiWiPeTsHTTeWaNoNoHsSiTsCoEf
$FREQ : frequency [0.1GHz] # e.g. 0014 (1.4[GHz])
$ANGLE : Incident angle [degree] # e.g. 040 (40[degree])
* details of $CNAMEID
Option CNAMEIDTYPE in file 'input' defines the length of $CNAMEID
if CNAMEIDTYPE = 'CI-0'
$CNAMEID = ''
if CNAMEIDTYPE = 'CI-8' # as CMEM.v5.1
$CNAMEID = CIDIEL(1:2) # first and second characters about option CIDIEL (e.g. 'Wa' if CIDIEL='Wang')
+ CITEFF(1:2) # same as above
+ CISMR (1:2) # same as above
+ CIRGHR(1:2) # same as above
+ CIVEG (1:2) # same as above
+ CIATM (1:2) # same as above
+ CITVEG(1:2) # same as above
+ CIDVEG(1:2) # same as above
if CNAMEIDTYPE = 'CI-ALL'
$CNAMEID = CIDIEL (1:2) # same as above
+ CITEFF (1:2)
+ CISMR (1:2)
+ CIRGHR (1:2)
+ CIVEG (1:2)
+ CIATM (1:2)
+ CITVEG (1:2)
+ CIDVEG (1:2)
+ CITDIEL (1:2)
+ CIVEGDW (1:2)
+ CIVEGDI (1:2)
+ CIDESERT (1:2)
+ CISNOW (1:2)
+ CISNOWSET (1:2)
+ CISNOWTEMP(1:2)
+ CISNOWMV (1:2)
+ CIOTEFF (1:2)
#====================================
# Output: Level-1 (JPHISTLEV >= 1)
#====================================
out_tbtoaH_$OPTID_$FREQ_$ANGLE.grib # simulated brightness temperature (H-pol) [K]
out_tbtoaV_$OPTID_$FREQ_$ANGLE.grib # simulated brightness temperature (V-pol) [K]
out_tmpeff_$OPTID_$FREQ_$ANGLE.grib # effective temperature (H-pol) [K]
#====================================
# Output: Level-2 (JPHISTLEV >= 2)
#====================================
out_VWCsum_$OPTID_$FREQ_$ANGLE.grib # total vegetation water content [kg/m2]
out_frbare_$OPTID_$FREQ_$ANGLE.grib # total bare soil fraction [-]
out_tau_at_$OPTID_$FREQ_$ANGLE.grib # atmospheric optical depth
out_tauvgH_$OPTID_$FREQ_$ANGLE.grib # effective vegetation opacity (H-pol) [-]
out_tauvgV_$OPTID_$FREQ_$ANGLE.grib # effective vegetation opacity (V-pol) [-]
out_tb_adw_$OPTID_$FREQ_$ANGLE.grib # atmospheric TB (downward) [K]
out_tb_aup_$OPTID_$FREQ_$ANGLE.grib # atmospheric TB (upward) [K]
#====================================
# Output: Level-3 (JPHISTLEV >= 3)
#====================================
out_Bpa_HI_$OPTID_$FREQ_$ANGLE.grib # high vegetation b parameter (if CIVEG=Jackson)
out_Bpa_LO_$OPTID_$FREQ_$ANGLE.grib # low vegetation b parameter (if CIVEG=Jackson)
out_VWC_HI_$OPTID_$FREQ_$ANGLE.grib # high vegetation water content [kg/m2]
out_VWC_HI_$OPTID_$FREQ_$ANGLE.grib # low vegetation water content [kg/m2]
out_WP_par_$OPTID_$FREQ_$ANGLE.grib # wilting point soil moisture [cm3/cm3]
out_emHeff_$OPTID_$FREQ_$ANGLE.grib # effective emissivity (H-pol) [-]
out_emVeff_$OPTID_$FREQ_$ANGLE.grib # effective emissivity (V-pol) [-]
out_emissH_$OPTID_$FREQ_$ANGLE.grib # soil surface emissivity (H-pol) [-]
out_emissV_$OPTID_$FREQ_$ANGLE.grib # soil surface emissivity (V-pol) [-]
out_ffrac1_$OPTID_$FREQ_$ANGLE.grib # pure (no snow) bare soil fraction [-]
out_ffrac3_$OPTID_$FREQ_$ANGLE.grib # pure (no snow) low vegetation fraction [-]
out_ffvegh_$OPTID_$FREQ_$ANGLE.grib # high vegetation fraction (snow + no snow) [-]
out_ffvegl_$OPTID_$FREQ_$ANGLE.grib # low vegetation fraction (snow + no snow) [-]
out_fh_par_$OPTID_$FREQ_$ANGLE.grib # roughness parameter
out_fracfr_$OPTID_$FREQ_$ANGLE.grib # frozen soil fraction [-]
out_fracsn_$OPTID_$FREQ_$ANGLE.grib # snow cover fraction [-]
out_frclay_$OPTID_$FREQ_$ANGLE.grib # cray fraction [%]
out_frsand_$OPTID_$FREQ_$ANGLE.grib # sand fraction [%]
out_swmvmx_$OPTID_$FREQ_$ANGLE.grib # volume fraction of liquid water (maximum value in snowlayers at the point) [-]
out_tbsoiH_$OPTID_$FREQ_$ANGLE.grib # soil TB (H-pol) [K]
out_tbsoiV_$OPTID_$FREQ_$ANGLE.grib # soil TB (V-pol) [K]
out_tbvegH_$OPTID_$FREQ_$ANGLE.grib # vegetation TB (H-pol) [K]
out_tbvegV_$OPTID_$FREQ_$ANGLE.grib # vegetation TB (V-pol) [K]
out_teff_C_$OPTID_$FREQ_$ANGLE.grib # C parameter used for effective temperature
out_teff_o_$OPTID_$FREQ_$ANGLE.grib # effective temperature used for calculating effective emissivity [K]
#====================================
# Output: Level-4 (JPHISTLEV >= 4)
#====================================
* LEVEL-4 outputs are ignored in GRIBAPI I/O