Users Guide to ISBA-F90

Original: Oct. 16, 2002, by Aaron Boone

Updated:


Users Guide to using the driver for Interactions between the Soil-Biosphere-Atmosphere (ISBA) Soil Vegetation Atmosphere Transfer (SVAT) scheme, the Town Energy Budget (TEB) Land Surface Scheme (LSS) model and a water surface LSS.

For more information about obtaining the code, questions, examples, references, etc., please see the ISBA Hompepage at http://www.cnrm.meteo.fr/isbadoc/index.htm.

Please note that the coupling of ISBA with the distributed hydrological model MODCOU is not currently discussed in this document. See http://www.cnrm.meteo.fr/isbadoc/index.htm (Projects) for information on MODCOU. Contact Florence Habets for information on the Modcou model (habets@meteo.fr).




1. Introduction

    This document describes the model setup of a generic driver and three LSSs which simulate the thermodynamics and hydrology of distinct sub-grid surfaces. Each of these surfaces interact (are forced by) the same grid-average atmospheric conditions. The 3 basic surface routines are described below.

Natural Surface: Interactions between Soil-Biosphere-Atmosphere (ISBA)

    ISBA (Noilhan and Planton, 1989; Noilhan and Mahfouf, 1996) is a soil-vegetation-atmosphere transfer (SVAT) scheme developed at the National Center for Meteorological Research (CNRM) at Météo-France which is used to model the exchange of heat, mass and momentum between the land or water surface and the overlying atmosphere. The model is used in so-called stand-alone mode for development, and in coupled mode in which the model supplies the lower boundary conditions to atmospheric numerical weather prediction models or the upper boundary conditions for distributed hydrological models. ISBA is currently coupled to the Météo-France operational numerical weather prediction model (ARPEGE), the Météo-France climate model or GCM (ARPEGE-climate), the non-hydrostatic mesoscale atmospheric model Meso-NH, and the distributed macroscale hydrologic model MODCOU (see Projects for more details).

Urban Surface: Town Energy Budget model (TEB)

    TEB (the Town Energy Budget model: Masson, 2000) is also a SVAT scheme, but for use over urbanized areas. A generalization of local canyon geometry is defined instead of the usual bare soil formulation currently used to represent cities in atmospheric models. This allows refinement of the radiative budgets as well as momentum, heat and conduction fluxes. This scheme is aimed to be as general as possible, in order to represent any city in the world, for any time or weather condition (heat island cooling by night, urban wake, water evaporation after rainfall and snow effects.

    TEB is built following the canyon approach, generalized in order to represent larger horizontal scales. The physics treated by the scheme are relatively complete. Due to the complex shape of the city surface, not one but three energy budgets are considered: one for the roofs, one for the roads, and one for the walls. Orientation effects are averaged for roads and walls. Up to two energy budgets are added for snow when it is present on roofs or roads. Some of the physics were derived from the literature (long wave radiation or thermal conduction through the surfaces), since they are classically assumed to estimate building temperature in conditions without feedback towards atmosphere (during night with calm wind). However, most parts of the physics need an original approach (short wave radiation, thermodynamic and anthropogenic flux treatment, rain and snow), since they occur when interaction with the atmosphere is strong.

Water Surface: WATER_FLUX

    WATER_FLUX is a very simple routine which is used to model the surface fluxes over either oceanic or inland water surfaces. It uses prescribed surface water temperatures (SSTs in the case of an ocean).

Back to Contents


2. Model Code

    The ISBA model has been written in both Fortran77 and Fortran90, while TEB and WATER_FLUX are available in F90. The Fortran77 code has been run on UNIX (HP, CRAY YMP) and Linux platforms. The Fortran90 code (all three routines described below) has been run on UNIX (HP, CRAY YMP, Fujitzu) and Linux (Portland Group F90 Compiler) platforms. The Fortran90 version of the code supports nearly all of the possible options and modifications, so it is recommended that USERS acquire this version of the code. There are also several sample case studies available for testing/validation of a SVAT scheme. Please contact us for further information.

2.a. Code Variable Naming Convention

type status INTEGER REAL LOGICAL CHARACTER TYPE
global or MODULE N X L C YST
dummy arguments K P O H YSTP
local variables I Z G Y YSTZ
loop control J - - - YS
Parameter JP PP LP YP YS
Save IS ZZ GS YS YSTS
  • Following Meso-NH (French non-hydrostatic research mesoscale meteorological model) norm from CST (1994).

  • The routines have been written to optimize performance on a Fujitzu (Vector Processor) computer under a UNIX platform. Modification might be necessary for other platforms for optimum CPU usage/model performance.

  • Note (:) or (:,:) etc... are not needed but are are used throughout the model in order indicate arrays (for clarity).

2.b. F90 Code Structure

    Model routines are highly modularized and many are used at least once within the code. When compiled, subroutines and independent function routines generate MODI files. Constants are contained in MODD files, and MODE files contain functions only. These modules are then implemented using USE within the various subroutines.

    A basic outline of the DRIVER and all of the associated routines are shown below. Only External subroutines (MODI) or functions (MODI or MODE modules) are shown: modules containing constants are not shown (MODD), and internal subroutines contained within the routines are also not shown. An * is used to indicate that a routine (and therefore all routines it calls) are optional. All routines are called at each time step unless either i) the corresponding option is NOT being used, or ii) it is only called before time integration (initialization: one call, indicated by #). Details related to model options are given in the next section.

DRIVER

  • INI_CST (#)
  • COTWOINIT (*#)
  • TEBINIT (*#)
  • THRMCONDZ (*#)
  • MODE_SOIL (#)
  • POSSOL
  • MODE_SURF_SNOW_FRAC
  • ISBA
    • LAILOSS (*)
      • Z0V_FROM_LAI
      • VEG_FROM_LAI
    • SOIL or SOILDIF (*)
    • SOILDIF (*) or SOIL
    • SNOW3L_ISBA
      • SNOW3L (*)
        • MODE_THERMO
        • SURFACE_RI
        • SURFACE_AERO_COND
        • SURFACE_CD
        • TRIDIAG_GROUND
    • VEG
    • DRAG
      • MODE_THERMO
      • SURFACE_RI
      • SURFACE_AERO_COND
      • SURFACE_CD
    • E_BUDGET
      • MODE_THERMO
      • SOIL_HEATDIF (*)
        • TRIDIAG_GROUND
    • COTWORES (*) or COTWORESTRESS (*)
      • CCETR
      • COTWO
    • COTWORESTRESS (*) or COTWORES (*)
      • CCETR
      • COTWO
    • ISBA_FLUXES
      • ICE_SOILDIF (*)
    • HYDRO
      • HYDRO_VEG
      • HYDRO_SNOW
      • HYDRO_DT92 (*)
      • HYDRO_SOILDIF (*) or HYDRO_SOIL
        • TRIDIAG_GROUND
      • HYDRO_SOIL or HYDRO_SOILDIF (*)
    • LAIGAIN (*)
  • URBAN (TEB) (*)
    • MODE_THERMO
    • MODE_SURF_SNOW_FRAC
    • URBAN_SOLAR_ABS
    • URBAN_DRAG
      • MODE_THERMO
      • SURFACE_RI
      • SURFACE_AERO_COND
      • SURFACE_CD
    • BLD_E_BUDGET
    • URBAN_SNOW_EVOL
      • MODE_SURF_SNOW_FRAC
      • SNOW_COVER_1LAYER
        • MODE_THERMO
        • SURFACE_RI
        • SURFACE_AERO_COND
      • URBAN_LW_COEF
    • ROOF_LAYER_E_BUDGE
      • MODE_THERMO
      • TRIDIAG_GROUND
    • ROAD_WALL_LAYER_E_BUDGET
      • MODE_THERMO
      • TRIDIAG_GROUND
      • URBAN_LW_COEF
    • URBAN_FLUXES
    • URBAN_HYDRO
  • WATER_FLUX (*)
    • MODE_THERMO
    • SURFACE_RI
    • SURFACE_AERO_COND
    • SURFACE_CD
  • GRIDAVG
Back to Contents


3. Driver

3.a. Purpose

    The purpose of this driver is to test/validate a surface vegetation atmosphere transfer (SVAT) scheme. It is also used for coupling to other models (such as the distributed hydrological model MODCOU) and for simulations in "forced-mode" in which atmospheric forcing is imposed (i.e. there are no feedbacks between the atmosphere and the surface). The driver acts, in essence, as a parent atmospheric model with a one-way coupling: the various modules have been coded such that the driver, in principle, can merely be replaced by a parent atmospheric model thus allowing full coupling with the overlying atmosphere (the routines ISBA and URBAN[TEB] are used within MesoNH using the same calls and input/output variables as is used in the driver).

    There are options to use from one to three of the models which comprise a three-tile mosaic surface: natural surfaces (vegetation, bare soil), urban surfaces and water bodies. The grid box average heat and momentum fluxes, surface radiative temperature and total runoff are then calculated based on the weighted-average of the values from each of up to three surfaces. The weights are assumed to be proportional to the fractional area of the grid box which is assumed to be occupied by each surface.

    Although this forced (or stand alone) mode is a somewhat limited environment, it has been accepted as a good method which greatly aids in testing/development/validation/calibration of a land surface scheme such as ISBA. For example, the utility of the so called "stand-alone" or "forced" method has been shown in many recent model intercomparison studies in which ISBA has participated: Project for the Intercomparison of Land-surface Parameterization Schemes: (PILPS), The Global Soil Wetness Project (GSWP); The Rhone-AGGregation Experiment (Rhone-AGG), and in numerous local-scale studies using ISBA.

3.b. Driver Options

    There are several available ISBA and TEB options in the current version. A description of the options can be found near the beginning of the routine DRIVER.F90, and in the routine PREP_OPTIONS.F90. The options are set in program PREP_OPTIONS.F90 and are output in file OPTIONS.DAT, which is then read as an input to DRIVER.F90. A sample (not inclusive) of references related to ISBA model developments listed in the header of DRIVER.F90 are:

YISBA: 2-L Force-Restore: single bulk soil layer for hydrology
YISBA: 3-L Force-Restore: root zone and baseflow layers for hydrology
YISBA: DIF N-layer diffusion: Darcys Law-Richards Eq. hydrology, heat diffusion
YTIME_VEG: MONTH Time-varying Input vegetation parameters: monthly time series
YTIME_VEG: FRC Time-varying Input vegetation parameters: same as forcing time step
YPHOTO: NON Photosynthes, Stomatal res. - Jarvis method
YPHOTO: AGS Photosynthes, Stomatal res. - ISBA-Ags
YPHOTO: LAI Photosynthes, Stomatal res. - ISBA-Ags, interactive vegetation
YPHOTO: AST Photosynthes, Stomatal res. - ISBA-Ags-stress
YPHOTO: LST Photosynthes, Stomatal res. - ISBA-Ags-stress, interactive vegetation
YRUNOFF: WSAT Runoff: saturated bucket
YRUNOFF: DT92 Runoff: subgrid surface runoff
YRUNOFF: TOP Runoff: Top Model runoff
YC1DRY: DEF (NOTE: used if YISBA/=DIF) DEFault: C1 Giard-Bazile formulation
YC1DRY: GB93 (NOTE: used if YISBA/=DIF) Giordani C1 1993, Braud 1993 discontinuous at WILT
YSCOND: NP89 Soil thermal cond: Noilhan and Planton 1989 implicit method for CG
YSCOND: PL98 Soil thermal cond: Peters-Lidard et al. 1998 explicit method for CG
YSNOW_ROOF: NONE no TEB snow roof scheme
YSNOW_ROOF: 1-L 1-L TEB snow roof scheme
YSNOW_ROAD: NONE no TEB snow road scheme
YSNOW_ROAD: 1-L 1-L TEB snow road scheme
YSNOW_ISBA: DEF 1-Layer Force-Restore snow scheme
YSNOW_ISBA: 3-L (NOTE: default if YISBA=DIF) 3-Layer Explicit Snow scheme
YSNOWRES: DEF (NOTE: used if YSNOW_ISBA=3-L) Default: Louis (ISBA)
YSNOWRES: RIL (NOTE: used if YSNOW_ISBA=3-L) Maximum Richardson number limit
YDEEPF: DEF Time varying boundary conditions: constant in time
YDEEPF: VAR Time varying boundary conditions: varies using same time step as forcing
YHYDRO: YES run the hydrological-routing model
YHYDRO: NO do NOT run the hydrological-routing model
YSOILFRZ: DEF Based on freezing depression and available mass of soil water-ice
YSOILFRZ: LWT (NOTE: default if YISBA=DIF) Soil freezing fn of unfrozen water and temp.
YDIFSFCOND: DEF (NOTE: used if YISBA=DIF) Sfc thermal cond uses soil properties only
YDIFSFCOND: MLCH (NOTE: used if YISBA=DIF) Sfc thermal cond includes mulch effects

Some baseline references for some of model options.

ISBA-Ags: CO2 Option, also Interactive vegetation (YPHOTO = AGS or LAI) Calvet et al. (1998a); Calvet (2000)
ISBA-3L: sub-root zone soil moisture reservoir: (YISBA=3-L) Boone et al. (1999)
ISBA-DF: explicit N-layer vertical diffusion scheme for liquid water, ice and heat (temperature). (YISBA='DIF') Boone et al. (2001); Habets et al. (2002)
ISBA-DT92 (sub-grid runoff scheme): (YRUNOFF = DT92) Habets et al. (1999)
ISBA-ES (Snow-3L): 3-layer explicit snow scheme option (YSNOW_ISBA = 3-L) Boone and Etchevers, (2001)
URBAN (TEB): Town Energy Budget option. Ability to model an urbanized surface. (if urban fraction of grid box > 0: set in PARA_FRACTIONS.DAT) Masson, (2000)

Back to Contents


Parameter Data

    The basic input parameter data and set-up is described in this section.

4.a. Parameter Files

There are 10 USER-specified files read in by DRIVER.F90 which contain case/spatially dependent but time invariant constants:

OPTIONS.DAT ISBA and TEB model options
INIT.DAT Initial values for prognostic variables for ISBA
INIT_TEB.DAT Initial values for prognostic variables for TEB
SOIL.DAT Soil primary parameters
VEG.DAT Vegetation parameters
CO2.DAT ISBA-Ags parameters
PARA.DAT Misc., atmospheric model parameters (forcing level) and model time step, etc.
PARA_FRACTIONS.DAT fractions of natural surface and water: residual is urban fraction
PARA_WATER.DAT Water surface parameters (emissivity, albedo, SST...)
PARA_TEB.DAT TEB parameters

There are 8 USER-specified input parameter files read in by DRIVER.F90 which contain case/spatially dependent and time varying constants.

ParamALB.DAT ISBA: non-snow-covered surface all-wavelength albedo
ParamLAI.DAT ISBA: Leaf Area Index (m2)
ParamVEG.DAT ISBA: Vegetation cover fraction
ParamZ0.DAT ISBA: non-snow-covered baresoil-vegetation roughness length
ParamHI_TEB.DAT TEB: Anthropogenic Flux: Sensible heat of Industry
ParamHT_TEB.DAT TEB: Anthropogenic Flux: Sensible heat of Traffic
ParamLEI_TEB.DAT TEB: Anthropogenic Flux: Latent heat of Industry
ParamLET_TEB.DAT TEB: Anthropogenic Flux: Latent heat of Traffic

    There are many ways for the USER to set up the data files. One method is to simply type them in, or transform them into the format expected by DRIVER using in-house programs. As a utility, several programs have been provided as an aid to the USER, but it is NOT necessary to use them. See prep_*f90 in Progs/, and sc_get_DAT in Scripts/ (which should be copied to DATA/). The script sc_get_DAT executes the USER modified prep_*f90 programs and produces the 10 time invariant files. Note that if the parameters listed as Param*DAT are not time invariant (for example, LAI is constant), then just give the values as constant in ParamLAI.DAT. Also note that Param*DAT files (LAI, ALB, ZO and VEG) can vary monthly, over a decad or at the model forcing time step (see YTIME_VEG above). The TEB Param*DAT files vary at the time increment of the forcing.

    Also note that prep_parameters.f90 produces isba_dimensions.inc and prep_parametersTEB.f90 produces teb_dimensions.inc. These 2 files must be in Comp/ when the DRIVER.F90 is compiled.

    Universal and physical constants, along with ISBA table data and variables which don't vary in space or time, are found in the MODD files.

MODD_CST.F90 Universal/Physical constants
MODD_CO2V_PAR.F90 contains Ags parameters as a function of whether vegetation is C3 or C4
MODD_GROUND_PAR.F90 contains soil, vegetation and default snow scheme default/constant parameters

    The variables in the input files are given below with their basic definitions.


PARA.DAT
ZTSTEP Model time step: must be <= forcing time step (s)
ZTSTEPFRC Forcing time step (see above). Generally 30 min. (s)
ZRESA (:) Initial aerodynamic surface resistance (m s-1)
ZZREF (:) Height of forcing (temperature, humidity, etc...) (m)
ZUREF (:) Height of wind ob/forcing (m)
ZJULIEN(:) Initial day (Julian)
ZHEURE (:) Initial hour
ZMINUTE(:) Initial minute
ZLAT(:) Latitude (degrees N)
ZLONG(:) Longitude (degrees E)
IYEAR Number of years for simulation
ITIM_INT Number of days for simulation
ISPINUP Number of times to repeat the first year
IFIRSTYEAR Used to check if leap year

SOIL.DAT
ZEMIS(:) Surface emissivity
ZRUNOFFB(:) Sub-grid surface runoff parameter: slope parameter-controls intensity of runoff
ZRUNOFFD(:) Sub-grid surface runoff parameter: depth over which to compute surface runoff (=total soil depth if YISBA=2-L, rooting depth if YISBA==3-L, and can be any value <= total soil depth if YISBA=DIF)
ZWDRAIN(:) Linear/Constant Drainage parameter
ZZ0REL(:) Roughness length due to the topography; 0.01 if ~flat (m)
ZWFCS_PRSCRB(:,:) Specified field capacity (m3 m-3) if different from that calculated from texture (default). If = XUNDEF, then use texture-defined value
ZWSAT_PRSCRB(:,:) as above, but for porosity (m3 m-3)
ZC3_PRSCRB(:) as above, but for C3
ZTAUICE(:) Constant for soil ice (s): characteristic time for freezing (s)
ZTPRO_CNST(:) Specified constant deep soil temperature (optional), set=XUNDEF if option not used
ZGAMMAT(:) Restore constant for deep soil temperature (optional) (if=0.0, then no deep soil temperature restore, this is the DEFAULT configuration in MesoNH and Stand Alone modes)
ZCLAYZ(:,:) clay fraction vertical profile (0 <= X <= 1)
ZSANDZ(:,:) sand fraction vertical profile (0 <= X <= 1)
ZD_G(:,:) Soil layer thickness vertical profile (m) Note that ZD_G(:,1) = 0.01 when YISBA=2-L or 3-L, and when YISBA=3-L, ZD_G(:,3) = 0.0
ZXSFRAC(:,:) water source vertical distribution (YISBA=DIF option). In some cases, an external water source will be defined (eg. MUREX case study) as a forcing. This is vertical distribution.

VEG.DAT
ZRSMIN(:) Minimum stomatal resistance (s m-1) (Jarvis-type)
ZGAMMA(:) Stomatal Resistance parameter (Jarvis-type)
ZRGL(:) Stomatal Resistance parameter (Jarvis-type)
ZCV(:) thermal inertia/inverse heat capacity of vegetation (m2 K J-1)
ZWWILT_PRSCRB(:,:) Specified wilting point (m3 m-3) if different from that calculated from texture (default)
ZZ0_O_Z0H(:) Ratio of momentum to thermal surface roughness lengths (usually 10, but always <= 200)
ZWRMAX_CF(:) parameter related to maximum intercepted-liquid water holding capacity of vegetation
ZROOTFRAC(:,:) root fraction vertical distribution (YISBA=DIF)

CO2.DAT
IVEGTYPES(:) Vegetation classification, currently 9 types possible
IYEARMOW(:) Year of simulation to cut/mow/harvest surface vegetation
IDAYMOW(:) Julian day, used to simulate a cut of vegetation. Set = 0 to prevent mowing/cutting of vegetation.
ZGMES(:) Mesophyll conductance (m s-1)
ZAN(:) Net assimilation (initial) (mg CO2 m-2 s-2)
ZLE(:) Evapotranspiration (initial)
ZXCOTWO(:) CO2 multiplication factor
ZBSLAI(:) ratio d(biomass)/d(lai) (g m-2)
ZH_TREE(:) height of vegetation canopy (m)
ZSEFOLD(:) e-folding time for senescence (days)
ZCSP_INIT(:) initial atmospheric CO2 concentration (ppm)
ZLAIMIN (:) Minimum LAI
ZSTRESS(:) stress vegetation strategy: 1=defensive strategy, 2=offensive strategy
ZF2I(:) critical normalized extractable water (0
ZGC(:) cuticular conductance (kg m-2 s-1)
ZDMAX(:) maximum saturation deficit tolerance (maximum value of leaf-to-air saturation deficit)

PARA_FRACTIONS.DAT
ZNATUREREAL(:) ISBA surface fraction
ZWATER (:) WATER surface fraction

PARA_TEB.DAT
ZTI_BLD(:) inside building temperature
ZESNOW_ROOF(:) snow emissivity
ZESNOW_ROAD(:) snow emissivity
ZZ0_TOWN(:) town roughness length for momentum
ZBLD(:) fraction of buildings
ZBLD_HEIGHT(:) buildings h
ZBLD_HL_RATIO(:) buildings h/L
ZALB_ROOF(:) roof albedo
ZEMIS_ROOF(:) roof emissivity
ZHC_ROOF (:,:) heat capacity for roof layers
ZTC_ROOF(:,:) thermal conductivity for roof layers
ZD_ROOF(:,:) depth of roof layers
ZALB_ROAD(:) road albedo
ZEMIS_ROAD(:) road emissivity
ZHC_ROAD(:,:) heat capacity for road layers
ZTC_ROAD(:,:) thermal conductivity for road layers
ZD_ROAD(:,:) depth of road layers
ZALB_WALL(:) wall albedo
ZEMIS_WALL(:) wall emissivity
ZHC_WALL(:,:) heat capacity for wall layers
ZTC_WALL(:,:) thermal conductivity for wall layers
ZD_WALL(:,:) depth of wall layers

PARA_WATER.DAT
ZZ0SEA (:) Initial sea surface roughness
ZSST (:) Fixed Sea (water) surface temperature
ZEMISSEA(:) Water surface emissivity
ZALBSEA (:) Water surface albedo

INIT.DAT
ZTG(:,:) Surface/Soil temperature profile (K)
ZWG(:,:) Soil volumetric water content profile (m3 m-3)
ZWGI(:,:) Soil volumetric liquid water equivalent ice content profile (m3 m-3)
ZWR(:) canopy interception (liquid)
ZSNOWALB(:) snow albedo
ZSNOWRHO(:,:) snow density (kg m-3) (profile if YSNOW_ISBA=3-L)
ZSNOWSWE(:,:) Snow liquid Water Equivalent (kg m-2) (profile if YSNOW_ISBA=3-L)
ZSNOWHEAT(:,:) Snow heat content or enthalpy (J m-2) (zero unless YSNOW_ISBA=3-L)
ZLAI(:) Leaf Area Index (m2 m-2) (prognostic variable if YPHOTO=LAI or LST)

INIT_TEB.DAT
ZTS_ROOF(:) roof surface temperature
ZTS_ROAD(:) road surface temperature
ZTS_WALL(:) wall surface temperature
ZTI_ROAD(:) road deep temperature
ZWS_ROOF(:) roof water reservoir
ZWS_ROAD(:) road water reservoir
ZWSNOW_ROOF(:,:) snow layers reservoir
ZTSNOW_ROOF(:,:) snow layers temperature
ZRSNOW_ROOF(:,:) snow layers density
ZASNOW_ROOF(:) snow albedo
ZTSSNOW_ROOF(:) snow surface temperature
ZWSNOW_ROAD(:,:) snow layers reservoir
ZTSNOW_ROAD(:,:) snow layers temperature
ZRSNOW_ROAD(:,:) snow layers density
ZASNOW_ROAD(:) snow albedo
ZTSSNOW_ROAD(:) snow surface temperature
Back to Contents


5. Forcing

5.a. Atmospheric Forcing

    The driver routine 'driver.f90' acts as the parent atmospheric model, but with no feedbacks allowed: i.e. the atmospheric conditions must be prescribed by an external file. These files are defined as Forc*DAT. The needed variables and the corresponding input file names are:

  • ZRG: ForcGLO.DAT = incoming (downwelling) solar radiation (W m-2)
  • ZRAT: ForcRAT.DAT = (downwelling) atmospheric infrared radiation (W m-2)
  • ZTA: ForcT.DAT = atmospheric temperature (K)
  • ZVA: ForcVv.DAT = V wind component (m s-1)
  • ZUA: ForcVu.DAT = U wind component (m s-1)
  • ZPS: ForcPRES.DAT = surface pressure (Pa)
  • ZQA: ForcQ.DAT = atmospheric specific humidity (kg kg-1)
  • ZPRECIP: ForcPRCP.DAT = liquid precipitation rate (kg m-2 s-1)
  • ZNEIGE: ForcSNOW.DAT = liquid water equivalent snow/frozen precipitation rate (kg m-2 s-1)

    Each of these variables has it's own corresponding file. This format is better when using multiple grid points, although the user can easily modify this (the code).

    Note that if the liquid water equivalent snow rate is not available, it can be calculated in DRIVER.F90 using ZTA and ZPRECIP (possibly humidity too: there are a number of published methods for determining this paritioning) where in this case ZPRECIP represents the TOTAL precipitation (solid + liquid).

    Note that DRIVER.F90 is set up to read in forcing at the so-called forcing time step (ZTSTEPFRC), while the actual model time step (ZTSTEP) can be considerably less. Provided forcing is linearly interpolated to the ISBA time step (except for precipitation rates which are constant over the forcing time step). The atmospheric and vegetation (see below) forcing variables are linearly interpolated to the model time step. Atmospheric forcing for one-way coupling is *generally* available at 30 minute to 6 hour time steps, and the ISBA scheme (in one-way mode) is usually run with a *default* time step of 5 minutes.

5.b. Parameter Forcing: Time Varying Boundary Conditions

    There are several possibilities for imposing time-varying boundary conditions. The first is related to soil water excess (variable ZWXS). This is the lateral transfer of water into the soil (from a neighboring perched water table for eg.). When ancillary data is available, this flux can be defined (eg. MUREX case study). In most cases, this flux is set to zero. It is expected to be at the same time step as the atmospheric forcing.

    The second possible time varying boundary condition is related to the soil temperature calculations. If YISBA=2-L or 3-L (i.e. 2-layer Force-Restore temperature approach), then ZTPRO represents the temperature at some depth/associated time scale. The time scale is controlled by input parameter ZGAMMAT. If YISBA=DIF, then ZTPRO represents the temperature at the base of the soil (i.e. at SUM(ZG_G(:,:),2) ). Normally, ZGAMMAT and/or ZTPRO = XUNDEF which results in a zero flux lower BC.

  • ZWXS: ForcWXS.DAT = sub-surface lateral soil water source (kg m-2 s-1)
  • ZTPRO: ForcTPRO.DAT = time-varying deep-layer soil temperature (K)
Back to Contents


6. Grid Dimensions

    The code can be run with as many (spatial) dimensions as desired (as the machine mandates!). The value is set in prep_parameters.f90, and isba_dimensions.inc carries this information to the DRIVER when the driver is compiled. As there are currently no lateral interactions at/beneath the surface, 2D space is treated as a 1D vector.

Back to Contents


7. ISBA

    Many modifications have been made to the baseline Force-Restore ISBA scheme. They are listed below with the corresponding references.

ISBA Developments

Some developments since the original 1989 scheme, along with some baseline references.

ISBA model: Noilhan and Planton (1989) Noilhan and Mahfouf (1996)
ISBA differentiation between roughness lengths for heat and momentum: Mascart et al. (1995)
Vapor transfer for dry soils: Braud et al. (1993)
ISBA inclusion of a gravitational drainage term: Mahfouf and Noilhan (1996)
ISBA-Single-layer Force-Restore Snow scheme Douville et al. (1995)
ISBA-soil freeze/thaw: Giard and Bazile, (2000); Boone et al., (2000)

    The routine ISBA.F90 calls several routines which comprise the model physics. Their respective purposes are outlined at the top of each routine. They are listed here. Note that routines which are called depending upon the options defined in DRIVER.F90 are denoted by (optional):

LAILOSS Calculates the time change in LAI due to senescence and cutting: i.e. losses/decreases to LAI. This in turn reduces the dry biomass of the canopy. Also, adjust BIOMASS, VEG, Z0VEG and Z0HVEG in time. (optional)
SOIL Calculates the coefficients related to the soil (i.e., CG, CT, C1, C2, WGEQ) and to the snow canopy (i.e., Cs, ps, psng, psnv, and psnz0) in Force-Restore snow scheme mode (YSNOW_ISBA=DEF)
SOIL_DIF Calculates the coefficients related to the soil heat diffusion (optional if YISBA=DIF)
SNOW3L_ISBA Interface between ISBA and ISBA-ES (3-layer snow scheme) This routine calls SNOW3L if either snow is falling or there is adequate snow on the surface. Conversions are also made (optional). Packing/Unpacking of arrays are done here, so ISBA-ES is only called at points which have a minimum amount of snow by this routine. (optional: if YSNOW_ISBA=3-L)
VEG Calculates the surface stomatal resistance Rs (Jarvis type method)
DRAG Calculates the drag coefficients for heat and momentum transfers over ground (i.e., Ch and Cd).
E_BUDGET Calculates the evolution of the surface and deep-soil temperature (i.e., Ts and T2) by solving the linearized surface energy balance equation. If YISBA=DIF, then entire soil temperature profile is calculated. Note, all of these computations done BEFORE phase changes effects accounted for
COTWORES Calculates net assimilation of CO2 and leaf conductance [from model of Jacobs (1994)] (optional)
COTWORESTRESS Calculates net assimilation of CO2 and leaf conductance [from model of Jacobs (1994)] (optional) using new offensive-defensive plant strategy
ISBA_FLUXES Calculates the surface fluxes, soil ice evolution, and default snow scheme (YSNOW_ISBA=DEF) melt.
HYDRO Calculates the evolution of the water variables, i.e., the superficial and deep-soil volumetric water content, the equivalent liquid water retained in the vegetation canopy (Wr), the equivalent water of the snow canopy (Ws) (if YSNOW_ISBA=DEF) , and also of the albedo and density of the snow (if YSNOW_ISBA=DEF). Also determine the runoff and drainage into the soil. If YISBA=DIF, then solve Richard's equation for soil water movement.
LAIGAIN Calculates the time change in LAI due to assimilation of CO2. This in turn changes the dry biomass of the canopy. (optional)
Back to Contents


8. ISBA-Ags

    Detailed information on ISBA-Ags can be found in Calvet et al. (1998a) and Calvet (2000), Parameter values for 2 types of vegetation cover are defined (C3 and C4 from Mathews): these values can be found in MODD_CO2V_PAR.F90. The routines LAIGAIN.F90 and LAILOSS.F90 are used only when the interactive option is in use (i.e. YPHOTO='LAI'), otherwise ISBA-Ags can be used in a mode in which vegetation properties are prescribed (as in the Jarvis method in VEG.F90) when YPHOTO='AGS'.

Back to Contents


9. ISBA-ES (SNOW3L) 3-layer explicit snow scheme option

    This is an option to the default single-layer snow scheme of Douville et al. (1995). The Douville scheme is currently used in the Météo-France Climate model ARPEGE. It is also used in this model configuration. The main differences between the default (ISBA-FR) scheme and the 3-layer scheme (ISBA-ES: Boone and Etchevers, 2001) are the representation of certain physical processes (ripening of the snowpack, retention of liquid water, solar radiation transmission, etc... and explicit resolution of the vertical gradient of temperature and density) in ISBA-ES. ISBA-FR is more computationally efficiency due to it's relative simplicity. ISBA-ES takes nearly the same CPU time as ISBA when all grid points are snow covered. ISBA-ES is only called when either snow is falling or there is snow above a certain threshold on the surface, otherwise it is not called and the overall ISBA model runs as if the snow option where not being used. Whether to use one option or another depends on the modelers applications/goals. Please feel free to contact Aaron Boone (boone@cnrm.meteo.fr) for details.

    Note that there is also a seperate DRIVER for running only ISBA-ES at a point (i.e. without the rest of ISBA, TEB, etc...). The USER must only specify the ground surface layer (snow-soil interface) temperature and humidity (which can be set as constants in the DRIVER) which are used to define the soil surface thermal conductivity (using classical ISBA methods). This DRIVER uses existing routines, and the same naming conventions for input atmospheric forcing. Please contact Aaron Boone if you are interested in this simple driver.

    Additional documentation on ISBA-ES exists in the form of a technical memo. Compared to the reference article Boone and Etchevers, (2001), this memo contains much more mathematical detail. Please contact Aaron Boone if you are interested in obtaining a copy of this memo. The reference is: Boone, 2001: Description du Schema de Neige ISBA-ES (Explicit Snow) (in English), Note de Centre N70, Meteo-France, GMME, 53 pp.

Back to Contents


10. ISBA-DIF

    The ISBA-DIF model has been described in Boone et al. (2000) and Habets et al. (2002). It uses a multi-layer approach with varying depths in space. The current default number of layers is 5, however, this can easily be changed by the USER as this dimension is merely an input parameter. The USER must also specify the layer thicknesses. Heat transfer is along the thermal gradient using simple Fourier diffusion. There is a choice of 2 different thermal conductivity algorithms (FLAG YDIFSFCOND): the Peters-Lidard method is recommended (especially for cases with soil freezing as soil ice is considered explicitly in this case). Zero heat flux at the base of the model is the default, however, a time varying or constant soil temperature at the base of the soil can be imposed (see FLAG YDEEPF). The advantage of the zero heat flux is that heat is conserved.

    Soil moisture evolution is determined using a mixed-form Richard's equation, thereby permitting the treatment of a heterogeneous soil texture profile: sand and clay content must be specified for each layer. Soil ice is also simulated within each layer using a soil freezing characteristic curve. The standard Clapp and Hornberger (1978) model for hydraulic conductivity and matric potential are used. The USER must also specify the root zone fraction profile.

    Additional documentation on ISBA-DIF exists in the form of the PhD thesis by Boone (2000) in French. The most updated version of the ISBA-DIF documentation is in the form of an informal unpublished document which can be obtained by contacting Aaron Boone. This document goes into more mathematical detail than published references.

Back to Contents


11. Budget Outputs of Interest

    Currently in DRIVER.F90, several variables are output which describe the surface energy balance (fluxes) and hydrology predicted by ISBA. The cumulative values (time) are calculated. The energy and mass budgets for ISBA-ES are output, along with the budgets for ISBA (soil/vegetation/ composite snow-Douville option), URBAN and WATER_FLUX. See BUDGET.OUT.DAT in Output/ after running the simulation.

Back to Contents


12. Run a Simulation: Description

    This section gives a basic description of setting up and executing a run on your local machine. Please contact Aaron Boone or Florence Habets with any questions.


12.a. Directory Structure and Basic Set-up

    The ISBA release, when untarred, should result in the creation of a directory tree (shown below). Progs/ contains the F90 source code, Scripts/ contains a few very elementary scripts which may have to be tailed for a particular platform or operating system. DATA (possibly provided separately) should contain the model INPUT data (a sample case, MUREX, should be provided. Contact us for obtaining other cases: there are many 1D local scale cases available, along with data over a regional scale domain/water basins).

    The script script_compile in Scripts/ should be copied to the parent directory, and then executed. It will copy the code from Progs/ to Comp/ and compile the routines. The script script_link should be copied from Scripts/ to RUN/, and upon execution it will create the executable isba. Model outputs will be written to RUN/Output/.

    parent directory
  • Progs/
  • Comp/
  • Scripts/
  • DATA/
  • RUN/
    • Output
  • doc/

12.b. Parameter Set-up

    The first step is to copy the programs prep_*f90 from Progs/ to DATA/. Edit the program prep_options.f90 to selected the ISBA and TEB options. Next, edit prep_parameters.f90 to give the number of grid points and the fractions of each surface within each grid box. At this point, the USER could modify the program to read data from another source, or type in parameter values (if doing a single-point study for example). This program is simply an aid for the USER, it is not necessary.

    The next step would be to edit prep_parametersTEB.f90, and the other prep*f90 files accordingly. then, copy from Scripts/sc_get_DAT to DATA/ and execute this script. This will generate the input parameter DAT files. Note that *DAT files for certain options and surfaces are NOT read and therefore do NOT need to be defined if the options in question are not evoked. For example, if the USER wishes to run ISBA alone without TEB or WATER_FLUX, then the TEB and WATER_FLUX *DAT files are NOT needed. To go further, if one is NOT using ISBA-Ags, then there is no need to create the CO2.DAT file.

    It is very important to note that execution of prep_parameters.f90 and prep_parametersTEB.f90 produce 2 include files: isba_dimensions.inc and teb_dimensions.inc. These 2 files MUST be located in Comp/ (the script sc_get_DAT will copy *.inc into Comp/ automatically upon the successful execution of the prep*f90 programs) before compiling DRIVER.F90. They simply contain dimensions and can be manually edited/created or created using the prep_parameters*f90 programs.


12.c. Compilation

    Copy Scripts/script_compile to the parent directory. Execute this script. This is a VERY simple script using NO options. The user may want to use optimization options to speed run time, etc., or even replace this file with a Makefile. This is only given as an example. The object files are created in Comp/


12.d. Linking and Running

    Copy Scripts/script_link to RUN/. Execution of this script creates (if the programs compiled successfully) the executable named isba. Simply type isba to run the model. Output data and statistics can be found in RUN/Output/. A description of output files can be found in DRIVER.F90.


12.e. Sample 1D Case

    For most releases, a sample case is provided (MUREX), 1995. This is a single point run, and details can be found in Calvet et al. 1998b, and on the MUREX web page. Parameters are set for using the Force-Restore 2-L configuration. Note that if the 3-L or DIF soil options are desired, then certain parameters will have to be recalibrated/tested to give reasonable results (as the parameters were calibrated for the simple 2L case): notably the minimum stomatal resistance, the wilting point, etc. For more help related to using other model options, please contact Aaron Boone or Florence Habets.

Back to Contents


13. References

    The references below are related to modifications made to ISBA (some optional) compared to the original Force-Restore scheme. See the ISBA reference page for a much more comprehensive listing of published works involving ISBA. Also, full references to other referenced material (herein) can be found in the publications listed below.


Boone, A., J.-C. Calvet and J. Noilhan, 1999: The inclusion of a third soil layer in a Land Surface Scheme using the Force-Restore method. J. of Appl. Meteor., 38, 1611-1630.

Boone, A., V. Masson, T. Meyers, and J. Noilhan, 2000: The influence of the inclusion of soil freezing on simulations by a soil-vegetation-atmosphere transfer scheme. J. of Appl. Meteor., 39, 1544-1569.

Boone, A., P. Etchevers, 2001: An inter-comparison of three snow schemes of varying complexity coupled to the same land-surface model: Local scale evaluation at an Alpine site. J. of Hydrometeor., 2, 374-394.

Braud, I., J. Noilhan, P. Bessemoulin, P. Mascart, R. Havercamp, and M. Vauclin, 1993: Bareground surface heat and water exchanges under dry conditions: Observations and parameterization. Bound. Layer Met., 66, 173-200.

Calvet, J. C., J. Noilhan, J.-L. Roujean, P. Bessemoulin, M. Cabelguenne, A. Olioso and J.-P. Wigneron, 1998a: An interactive vegetation SVAT model tested against data from six contrasting sites. Agric. Forest Meteorol., 92, 73-95.

Calvet, J.-C., J. Noilhan, and P. Bessemoulin, 1998b: Retrieving the root-zone soil moisture from surface soil moisture or temperature estimates: A feasibility study based on field measurements. J. Appl. Meteor., 37(4), 371-386.

Calvet, J. C., 2000: Investigating soil and atmospheric plant stress using physiological and micrometeorological dat, Agric. Forest Meteorol., 103, 229-247.

Douville, H., J.-F. Royer, and J.-F. Mahfouf, 1995: A new snow parameterization for the Meteo-France climate model, Climate Dynamics, 12, 21-35.

Giard, D., and E. Bazile, 2000: Implementation of a new assimilation scheme for soil and surface variables in a global NWP model. Mon. Wea. Rev., 128, 997-1015.

Habets, F., J. Noilhan, C. Golaz, J. P. Goutorbe, P. Lacarrère, E. Leblois, E. Ledoux, E. Martin, C. Ottlé, D. Vidal-Madjar, 1999a: The ISBA surface scheme in a macroscale hydrological model applied to the Hapex-Mobilhy area Part 1: Model and database. J. Hydrol., 217, 75-96.

Habets, F., A. Boone, and J. Noilhan, 2002: Simulation of a Scandinavian basin using the diffusion transfer version of ISBA. Glob. Plan. Change, (in press).

Mahfouf, J.-F. and J. Noilhan, 1996: Inclusion of gravitational drainage in a land surface scheme based on the force-restore method. J. Appl. Meteor., 35, 987-992.

Mascart, P, J. Noilhan, and H. Giordani, 1995: A modified parameterization of flux profile relationships in the surface layer using different roughness length values for heat and momentum. Bound. Layer Met., 72, 331-344.

Masson, V., 2000: A physically based scheme for the urban energy budget in atmospheric models. Bound. Layer Met., 94, 357-397.

Noilhan, J. and S. Planton, 1989: A simple parameterization of land surface processes for meteorological models. Mon. Wea. Rev., 117, 536-549.

Noilhan, J. and J.-F. Mahfouf, 1996: The ISBA land surface parameterization scheme. Global and Plan. Change, 13, 145-159.

Back to Contents