cable_climate_type_mod Module

This module defines the climate and climate_data types and allocates arrays and pointers for these types.


Derived Types

type, public ::  climate_data_type

Components

Type Visibility Attributes Name Initial
integer, public :: nyear_average = 20
integer, public :: nday_average = 31
integer, public :: nyears

number of years in climate record

integer, public :: doy

day of year

integer, public, ALLOCATABLE :: chilldays(:)

length of chilling period (period with T<5deg)

integer, public, ALLOCATABLE :: iveg(:)

potential vegetation type based on climatic constraints

integer, public, ALLOCATABLE :: biome(:)
real, public, ALLOCATABLE :: dtemp(:)

daily temperature

real, public, ALLOCATABLE :: dmoist(:)

daily moisture availability

real, public, ALLOCATABLE :: mtemp(:)

mean temperature over the last 31 days

real, public, ALLOCATABLE :: qtemp(:)

mean temperature over the last 91 days

real, public, ALLOCATABLE :: mmoist(:)

monthly moisture availability

real, public, ALLOCATABLE :: mtemp_min(:)

minimum monthly temperature

real, public, ALLOCATABLE :: mtemp_max(:)

maximum monthly temperature

real, public, ALLOCATABLE :: qtemp_max(:)

mean temperature of the warmest quarter (so far this year)

real, public, ALLOCATABLE :: mtemp_min20(:)

minimum monthly temperature, averaged over 20 y

real, public, ALLOCATABLE :: mtemp_max20(:)

maximum monthly temperature, averaged over 20 y

real, public, ALLOCATABLE :: atemp_mean(:)

annual average temperature

real, public, ALLOCATABLE :: AGDD5(:)
real, public, ALLOCATABLE :: GDD5(:)

growing degree day sum relative to 5deg base temperature

real, public, ALLOCATABLE :: AGDD0(:)
real, public, ALLOCATABLE :: GDD0(:)

growing degree day sum relative to 0deg base temperature

real, public, ALLOCATABLE :: alpha_PT(:)

ratio of annual evap to annual PT evap

real, public, ALLOCATABLE :: evap_PT(:)

annual PT evap [mm]

real, public, ALLOCATABLE :: aevap(:)

annual evap [mm]

real, public, ALLOCATABLE :: alpha_PT20(:)
real, public, ALLOCATABLE :: qtemp_max_last_year(:)

mean temperature of the warmest quarter (last calendar year)

real, public, ALLOCATABLE :: mtemp_min_20(:,:)

minimum monthly temperatures for the last 20 y

real, public, ALLOCATABLE :: mtemp_max_20(:,:)

maximum monthly temperatures for the last 20 y

real, public, ALLOCATABLE :: dtemp_31(:,:)

daily temperature for the last 31 days

real, public, ALLOCATABLE :: dmoist_31(:,:)

daily moisture availability for the last 31 days

real, public, ALLOCATABLE :: alpha_PT_20(:,:)

priestley Taylor Coefft for last 20 y

real, public, ALLOCATABLE :: dtemp_91(:,:)

daily temperature for the last 91 days

type, public ::  climate_type

Components

Type Visibility Attributes Name Initial
integer, public, POINTER :: nyear_average
integer, public, POINTER :: nday_average
integer, public, POINTER :: nyears

number of years in climate record

integer, public, POINTER :: doy

day of year

integer, public, POINTER :: chilldays(:)

length of chilling period (period with T<5deg)

integer, public, POINTER :: iveg(:)

potential vegetation type based on climatic constraints

integer, public, POINTER :: biome(:)
real, public, POINTER :: dtemp(:)

daily temperature

real, public, POINTER :: dmoist(:)

daily moisture availability

real, public, POINTER :: mtemp(:)

mean temperature over the last 31 days

real, public, POINTER :: qtemp(:)

mean temperature over the last 91 days

real, public, POINTER :: mmoist(:)

monthly moisture availability

real, public, POINTER :: mtemp_min(:)

minimum monthly temperature

real, public, POINTER :: mtemp_max(:)

maximum monthly temperature

real, public, POINTER :: qtemp_max(:)

mean temperature of the warmest quarter (so far this year)

real, public, POINTER :: mtemp_min20(:)

minimum monthly temperature, averaged over 20 y

real, public, POINTER :: mtemp_max20(:)

maximum monthly temperature, averaged over 20 y

real, public, POINTER :: atemp_mean(:)

annual average temperature

real, public, POINTER :: AGDD5(:)
real, public, POINTER :: GDD5(:)

growing degree day sum relative to 5deg base temperature

real, public, POINTER :: AGDD0(:)
real, public, POINTER :: GDD0(:)

growing degree day sum relative to 0deg base temperature

real, public, POINTER :: alpha_PT(:)

ratio of annual evap to annual PT evap

real, public, POINTER :: evap_PT(:)

annual PT evap [mm]

real, public, POINTER :: aevap(:)

annual evap [mm]

real, public, POINTER :: alpha_PT20(:)
real, public, POINTER :: qtemp_max_last_year(:)

mean temperature of the warmest quarter (last calendar year)

real, public, POINTER :: mtemp_min_20(:,:)

minimum monthly temperatures for the last 20 y

real, public, POINTER :: mtemp_max_20(:,:)

maximum monthly temperatures for the last 20 y

real, public, POINTER :: dtemp_31(:,:)

daily temperature for the last 31 days

real, public, POINTER :: dmoist_31(:,:)

daily moisture availability for the last 31 days

real, public, POINTER :: alpha_PT_20(:,:)

priestley Taylor Coefft for last 20 y

real, public, POINTER :: dtemp_91(:,:)

daily temperature for the last 91 days


Subroutines

public subroutine alloc_climate_type(climate, mp)

Allocate and initialise arrays in the climate_data type

Arguments

Type IntentOptional Attributes Name
type(climate_data_type), intent(inout) :: climate
integer, intent(in) :: mp

Number of tiles/patches in the CABLE simulation

public subroutine dealloc_climate_type(climate)

Deallocate arrays in the climate_data type

Arguments

Type IntentOptional Attributes Name
type(climate_type), intent(inout) :: climate

public subroutine assoc_climate_type(climate, climate_data)

Associate the climate type pointers to the climate_data arrays.

Arguments

Type IntentOptional Attributes Name
type(climate_type), intent(inout) :: climate
type(climate_data_type), intent(inout), TARGET :: climate_data

public subroutine nullify_climate_cbl(climate)

Nullify the climate type pointers.

Arguments

Type IntentOptional Attributes Name
type(climate_type), intent(inout) :: climate