cable_driver_common_mod Module

Module for CABLE offline driver common routines.



Variables

Type Visibility Attributes Name Initial
integer, private, parameter :: CASAONLY_ICYCLE_MIN = 10
integer, private, parameter :: N_MET_FORCING_VARIABLES_GSWP = 8

Number of GSWP met forcing variables (rain, snow, lw, sw, ps, qa, ta, wd)

real, private, parameter :: CONSISTENCY_CHECK_TOLERANCE = 1.e-7

Max tolerance value for quasi-bit reproducibility checks

logical, public, SAVE :: vegparmnew = .FALSE.
logical, public, SAVE :: spinup = .FALSE.
logical, public, SAVE :: spincasa = .FALSE.
logical, public, SAVE :: CASAONLY = .FALSE.
logical, public, SAVE :: l_casacnp = .FALSE.
logical, public, SAVE :: l_landuse = .FALSE.
logical, public, SAVE :: l_laiFeedbk = .FALSE.
logical, public, SAVE :: l_vcmaxFeedbk = .FALSE.
real, public, SAVE :: delsoilM
real, public, SAVE :: delsoilT
real, public, SAVE :: delgwM = 1e-4
integer, public, SAVE :: LALLOC = 0

Subroutines

public subroutine cable_driver_init(mpi_grp, NRRRR)

Model initialisation routine for the CABLE offline driver.

Arguments

Type IntentOptional Attributes Name
type(mpi_grp_t), intent(in) :: mpi_grp

MPI group to use

integer, intent(out) :: NRRRR

Number of repeated spin-up cycles

public subroutine cable_driver_init_gswp(mpi_grp, GSWP_MID, NRRRR)

Model initialisation routine (GSWP specific).

Arguments

Type IntentOptional Attributes Name
type(mpi_grp_t), intent(in) :: mpi_grp

MPI group to use

integer, intent(out), optional, ALLOCATABLE :: GSWP_MID(:,:)

NetCDF file IDs for GSWP met forcing

integer, intent(in), optional :: NRRRR

Number of repeated spin-up cycles

public subroutine cable_driver_init_site(site)

Model initialisation routine (site met specific). Site experiment, e.g. AmazonFace (spinup or transient run type).

Arguments

Type IntentOptional Attributes Name
type(site_TYPE), intent(out) :: site

public subroutine cable_driver_init_default(dels, koffset, kend)

Model initialisation routine (default met specific).

Arguments

Type IntentOptional Attributes Name
real, intent(out) :: dels

Time step size in seconds

integer, intent(out) :: koffset

Timestep to start at

integer, intent(out) :: kend

No. of time steps in run

public subroutine cable_driver_init_plume(dels, koffset, PLUME)

Model initialisation routine (PLUME specific). PLUME experiment setup using WATCH.

Arguments

Type IntentOptional Attributes Name
real, intent(out) :: dels

Time step size in seconds

integer, intent(out) :: koffset

Timestep to start at

type(PLUME_MIP_TYPE), intent(out) :: PLUME

public subroutine cable_driver_init_cru(dels, koffset, CRU)

Model initialisation routine (CRU specific). TRENDY experiment using CRU-NCEP.

Arguments

Type IntentOptional Attributes Name
real, intent(out) :: dels

Time step size in seconds

integer, intent(out) :: koffset

Timestep to start at

type(CRU_TYPE), intent(out) :: CRU

public subroutine prepareFiles(ncciy)

Select the correct files given the year for filenames following the gswp format

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ncciy

Year to select met. forcing data.

public subroutine renameFiles(logn, inFile, ncciy, inName)

Replace the year in the filename with the value of ncciy for the gswp file format.

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: logn

Log file unit number

character(len=200), intent(inout) :: inFile
integer, intent(in) :: ncciy

Year to use in replacement in filenames

character(len=*), intent(in) :: inName

public subroutine prepareFiles_princeton(ncciy)

Select the correct files given the year for filenames following the princeton format

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ncciy

private subroutine renameFiles_princeton(logn, inFile, ncciy, inName)

Replace the year in the filename with the value of ncciy for the princeton format

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: logn
character(len=200), intent(inout) :: inFile
integer, intent(in) :: ncciy
character(len=*), intent(in) :: inName

public subroutine LUCdriver(casabiome, casapool, casaflux, POP, LUC_EXPT, POPLUC, veg)

Reading LU input data, zeroing biomass in empty secondary forest tiles and tranferring LUC-based age weights for secondary forest to POP structure

Arguments

Type IntentOptional Attributes Name
type(casa_biome), intent(inout) :: casabiome
type(casa_pool), intent(inout) :: casapool
type(casa_flux), intent(inout) :: casaflux
type(POP_TYPE), intent(inout) :: POP
type(LUC_EXPT_TYPE), intent(inout) :: LUC_EXPT
type(POPLUC_TYPE), intent(inout) :: POPLUC
type(veg_parameter_type), intent(in) :: veg

public subroutine compare_consistency_check_values(new_sumbal)

Compare reference values for quasi-bitwise reproducibility checks and write reference value on failed reproducibility.

Arguments

Type IntentOptional Attributes Name
double precision, intent(in) :: new_sumbal

Reference value for current run.