! ************************************************* ! * * ! * COLA Simple Biosphere (SiB) Model (v.2000) * ! * * ! ************************************************* !====================================================================== ! Description: Declare Modules and Data Structures ! ! $Log: drv_dat_mod.f90,v $ ! Revision 1.1 2002/09/17 17:08:12 guo ! Initial revision ! !====================================================================== MODULE drv_dat_mod IMPLICIT NONE INTEGER, PARAMETER :: idp =3 ! soil layers INTEGER, PARAMETER :: ncin_dim = 66 ! Max number of NetCDF input variables REAL, PARAMETER :: missing = 1.0e+20 ! ALMA missing data value INTEGER :: lpnts ! Number of modeled grid points INTEGER :: lonin ! X-dimension of rectangular grid INTEGER :: latin ! Y-dimension of rectangular grid CHARACTER(LEN=48) :: gout_title ! Title of experiment/integration for GPH output CHARACTER(LEN=48) :: title ! Title of experiment/integration CHARACTER(LEN=32) :: user ! Name of perpetrator INTEGER :: timesteps ! Timesteps since start of integration (sec) REAL :: nodsecin ! Output data interval for mean fields (sec) REAL :: adtt ! Atm forcing updating time-step (sec) REAL :: dtt ! Model Time-step (sec) REAL :: seconds ! Seconds since start of integration (sec) INTEGER :: nymdh ! INTEGER :: madtt ! Num of model time-steps in a forcing-update time-step INTEGER :: idein ! Num of forcing-update time-step in a outputing time-step INTEGER :: iyrst ! INTEGER :: mthst ! INTEGER :: ndyst ! INTEGER :: nhrst ! INTEGER :: minst ! INTEGER :: secst ! INTEGER :: iyrend ! INTEGER :: mthend ! INTEGER :: ndyend ! INTEGER :: nhrend ! INTEGER :: minend ! INTEGER :: secend ! INTEGER :: iyrbeg ! INTEGER :: mthbeg ! INTEGER :: ndybeg ! INTEGER :: nhrbeg ! INTEGER :: minbeg ! INTEGER :: secbeg ! INTEGER :: iyrfin ! INTEGER :: mthfin ! INTEGER :: ndyfin ! INTEGER :: nhrfin ! INTEGER :: minfin ! INTEGER :: secfin ! INTEGER :: gout_num ! Total number of grid points INTEGER,DIMENSION(200) :: fvarid ! Variable id vector for NetCDF outputs INTEGER,DIMENSION(200) :: mvarid ! Variable id vector for NetCDF outputs INTEGER,DIMENSION(200) :: gvarid ! Variable id vector for NetCDF GPH outputs INTEGER,DIMENSION(200) :: gout_index! Variable id vector for NetCDF GPH outputs LOGICAL,DIMENSION(200) :: fout_flag ! Flag of output variable for forcing interval LOGICAL,DIMENSION(200) :: mout_flag ! Flag of output variable for standard interval REAL,DIMENSION(200) :: gout_lat ! True latitude for GPH REAL,DIMENSION(200) :: gout_lon ! True longitude for GPH CHARACTER(len=128) :: ncin_file(10) ! Names of NetCDF input data files CHARACTER(len=128) :: mout_file ! NetCDF output file for standard interval CHARACTER(len=128) :: fout_file ! NetCDF output file for forcing interval CHARACTER(len=128) :: gout_file ! NetCDF GPH output file for forcing interval ! (Use 'none' if no aggregation) INTEGER :: ncin_count ! Number of NetCDF input data files INTEGER :: ncvar_count ! Number of NetCDF input variables found INTEGER :: ncid_fout ! NCID of output file for forcing interval INTEGER :: ncid_mout ! NCID of output file for standard interval INTEGER :: ncid_gout ! NCID of GPH output file for forcing interval TYPE nc_pointer ! Data type for NetCDF variable info CHARACTER(LEN=15) :: ncname ! ALMA Name of NetCDF field INTEGER :: ncid ! NCID of field INTEGER :: varid ! VARID of field END TYPE nc_pointer TYPE(nc_pointer) :: nc_input(ncin_dim) ! Structure for NetCDF input info REAL,DIMENSION(idp) :: glev ! REAL,POINTER :: fiindex(:) ! REAL,POINTER :: fjindex(:) ! REAL,POINTER :: fhmask(:) ! REAL,POINTER :: glon(:) ! REAL,POINTER :: glat(:) ! INTEGER,POINTER :: iindex(:) ! INTEGER,POINTER :: jindex(:) ! INTEGER,POINTER :: hmask(:) ! !ALMA forcing data REAL,POINTER :: A_SWdown(:) REAL,POINTER :: A_LWdown(:) REAL,POINTER :: A_RainfF(:) REAL,POINTER :: A_SnowfF(:) REAL,POINTER :: A_Wind(:) REAL,POINTER :: A_Tair(:) REAL,POINTER :: A_Qair(:) REAL,POINTER :: A_Psurf(:) !ALMA accumulators REAL,POINTER :: A_Missing(:) !ALMA O.1 REAL,POINTER :: A_SWnet(:) REAL,POINTER :: A_LWnet(:) REAL,POINTER :: A_Qle(:) REAL,POINTER :: A_Qh(:) REAL,POINTER :: A_Qg(:) REAL,POINTER :: A_Qf(:) REAL,POINTER :: A_Qv(:) REAL,POINTER :: A_Qa(:) REAL,POINTER :: A_DelSurfHeat(:) REAL,POINTER :: A_DelColdCont(:) !ALMA O.2 REAL,POINTER :: A_Rainf(:) REAL,POINTER :: A_Snowf(:) REAL,POINTER :: A_Evap(:) REAL,POINTER :: A_Qs (:) REAL,POINTER :: A_Qsb(:) REAL,POINTER :: A_Qsm(:) REAL,POINTER :: A_Qfz(:) REAL,POINTER :: A_Qst(:) REAL,POINTER :: A_DelSoilMoist(:) REAL,POINTER :: A_DelSWE(:) REAL,POINTER :: A_DelSurfStor(:) REAL,POINTER :: A_DelIntercept(:) !ALMA O.3 REAL,POINTER :: A_SnowT(:) REAL,POINTER :: A_VegT(:) REAL,POINTER :: A_BareSoilT(:) REAL,POINTER :: A_AvgSurfT(:) REAL,POINTER :: A_RadT(:) REAL,POINTER :: A_Alb_SWdown(:) REAL,POINTER :: A_Albedo(:) REAL,POINTER :: A_SWE(:) REAL,POINTER :: A_SurfStor(:) !ALMA O.4 REAL,POINTER :: A_SoilMoist(:,:) REAL,POINTER :: A_SoilTemp(:,:) REAL,POINTER :: A_SMLiqFrac(:,:) REAL,POINTER :: A_SMFrozFrac(:,:) REAL,POINTER :: A_SoilWet(:) !ALMA O.5 REAL,POINTER :: A_PotEvap(:) REAL,POINTER :: A_ECanop(:) REAL,POINTER :: A_TVeg(:) REAL,POINTER :: A_Esoil(:) REAL,POINTER :: A_Ewater(:) REAL,POINTER :: A_RootMoist(:) REAL,POINTER :: A_CanopInt(:) REAL,POINTER :: A_EvapSnow(:) REAL,POINTER :: A_SubSnow(:) REAL,POINTER :: A_SubSurf(:) REAL,POINTER :: A_ACond(:) !ALMA O.7 REAL,POINTER :: A_SnowFrac(:) REAL,POINTER :: A_SAlbedo(:) REAL,POINTER :: A_SnowTProf(:) REAL,POINTER :: A_SnowDepth(:) REAL,POINTER :: A_SliqFrac(:) ! END MODULE drv_dat_mod