diff --git a/CMakeLists.txt b/CMakeLists.txt index 354051dd0..efb11874c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -66,7 +66,7 @@ if(CABLE_LIBRARY) src/science/casa-cnp/casa_feedback.F90 src/science/casa-cnp/casa_inout.F90 src/science/casa-cnp/casa_param.F90 - src/science/casa-cnp/casa_phenology.F90 + #src/science/casa-cnp/casa_phenology.F90 src/science/casa-cnp/casa_readbiome.F90 src/science/casa-cnp/casa_rplant.F90 src/science/casa-cnp/casa_sumcflux.F90 @@ -186,7 +186,7 @@ else() src/science/casa-cnp/casa_feedback.F90 src/science/casa-cnp/casa_inout.F90 src/science/casa-cnp/casa_param.F90 - src/science/casa-cnp/casa_phenology.F90 + #src/science/casa-cnp/casa_phenology.F90 src/science/casa-cnp/casa_readbiome.F90 src/science/casa-cnp/casa_rplant.F90 src/science/casa-cnp/casa_sumcflux.F90 diff --git a/src/offline/CASAONLY_LUC.F90 b/src/offline/CASAONLY_LUC.F90 index d498c6da8..4a51c1cd1 100644 --- a/src/offline/CASAONLY_LUC.F90 +++ b/src/offline/CASAONLY_LUC.F90 @@ -11,7 +11,6 @@ SUBROUTINE CASAONLY_LUC( dels,kstart,kend,veg,soil,casabiome,casapool, & USE casadimension USE casaparm USE casavariable - USE phenvariable USE POP_Types, ONLY: POP_TYPE USE POPMODULE, ONLY: POPStep, POP_init_single USE TypeDef, ONLY: i4b, dp diff --git a/src/offline/cable_input.F90 b/src/offline/cable_input.F90 index 80301b4cd..6f31df25e 100644 --- a/src/offline/cable_input.F90 +++ b/src/offline/cable_input.F90 @@ -26,7 +26,6 @@ ! netcdf ! casadimension ! casavariable -! phenvariable ! cable_param_module ! cable_checks_module ! cable_radiation_module @@ -42,7 +41,6 @@ MODULE cable_input_module USE casadimension, ONLY: icycle USE casavariable USE casaparm, ONLY: forest, shrub - USE phenvariable ! vh_js ! USE POP_Types, ONLY: POP_TYPE USE POPLUC_Types, ONLY: POPLUC_TYPE diff --git a/src/offline/cable_mpimaster.F90 b/src/offline/cable_mpimaster.F90 index 6ae6ffb2c..0ce7d9065 100644 --- a/src/offline/cable_mpimaster.F90 +++ b/src/offline/cable_mpimaster.F90 @@ -31,7 +31,6 @@ ! cable_cbm_module ! casadimension ! casavariable -! phenvariable ! casa_cable ! casa_inout_module ! @@ -199,8 +198,7 @@ SUBROUTINE mpidrv_master (comm, dels, koffset, kend, PLUME, CRU) ! modules related to CASA-CNP USE casadimension, ONLY: icycle,mplant,mlitter,msoil,mwood USE casavariable, ONLY: casafile, casa_biome, casa_pool, casa_flux, & - casa_met, casa_balance, zero_sum_casa, update_sum_casa - USE phenvariable, ONLY: phen_variable + casa_met, casa_balance, zero_sum_casa, update_sum_casa, phen_variable USE casa_cable USE casa_inout_module @@ -3272,7 +3270,6 @@ SUBROUTINE master_casa_params (comm,casabiome,casapool,casaflux,casamet,& USE cable_def_types_mod USE casavariable - USE phenvariable IMPLICIT NONE @@ -6065,7 +6062,6 @@ SUBROUTINE master_casa_types (comm, casapool, casaflux, & USE cable_def_types_mod USE casadimension USE casavariable - USE phenvariable IMPLICIT NONE @@ -7409,9 +7405,9 @@ SUBROUTINE master_casa_dump_types(comm, casamet, casaflux, phen ) USE mpi - USE casavariable, ONLY: casa_met, casa_flux + use casadimension, only: mphase + USE casavariable, ONLY: casa_met, casa_flux, phen_variable USE cable_def_types_mod, ONLY: climate_type - USE phenvariable IMPLICIT NONE INTEGER,INTENT(IN) :: comm @@ -8049,7 +8045,6 @@ SUBROUTINE master_spincasacnp( dels,kstart,kend,mloop,veg,soil,casabiome,casapoo USE casadimension USE casaparm USE casavariable - USE phenvariable USE POP_Types, ONLY: POP_TYPE USE POPMODULE, ONLY: POPStep USE TypeDef, ONLY: i4b, dp @@ -8203,7 +8198,6 @@ SUBROUTINE master_CASAONLY_LUC( dels,kstart,kend,veg,casabiome,casapool, & USE casadimension USE casaparm USE casavariable - USE phenvariable USE POP_Types, ONLY: POP_TYPE USE POPMODULE, ONLY: POPStep, POP_init_single USE TypeDef, ONLY: i4b, dp diff --git a/src/offline/cable_mpiworker.F90 b/src/offline/cable_mpiworker.F90 index 3bf56f137..77039a5b1 100644 --- a/src/offline/cable_mpiworker.F90 +++ b/src/offline/cable_mpiworker.F90 @@ -32,7 +32,6 @@ ! cable_cbm_module ! casadimension ! casavariable -! phenvariable ! casa_cable ! casa_inout_module ! @@ -149,8 +148,7 @@ SUBROUTINE mpidrv_worker (comm) ! modules related to CASA-CNP USE casadimension, ONLY: icycle USE casavariable, ONLY: casafile, casa_biome, casa_pool, casa_flux, & - casa_met, casa_balance - USE phenvariable, ONLY: phen_variable + casa_met, casa_balance, phen_variable !CLN added ! modules related to POP @@ -2401,7 +2399,6 @@ SUBROUTINE worker_casa_params (comm,casabiome,casapool,casaflux,casamet,& USE cable_def_types_mod USE casavariable - USE phenvariable IMPLICIT NONE @@ -5560,7 +5557,6 @@ SUBROUTINE worker_casa_type (comm, casapool,casaflux, & USE casavariable ! gol124: commented out because casa_poolout in this version ! is no longer writing phen%phase - USE phenvariable IMPLICIT NONE @@ -6541,9 +6537,9 @@ SUBROUTINE worker_casa_dump_types(comm, casamet, casaflux, phen) USE mpi - USE casavariable, ONLY: casa_met, casa_flux, mplant + use casadimension, only: mphase, mplant + USE casavariable, ONLY: casa_met, casa_flux, phen_variable USE cable_def_types_mod, ONLY: climate_type - USE phenvariable IMPLICIT NONE @@ -6948,7 +6944,6 @@ SUBROUTINE worker_spincasacnp( dels,kstart,kend,mloop,veg,soil,casabiome,casapoo USE casadimension USE casaparm USE casavariable - USE phenvariable USE POP_Types, ONLY: POP_TYPE USE POPMODULE, ONLY: POPStep USE TypeDef, ONLY: i4b, dp @@ -7303,7 +7298,6 @@ SUBROUTINE worker_CASAONLY_LUC( dels,kstart,kend,veg,soil,casabiome,casapool, & USE casadimension USE casaparm USE casavariable - USE phenvariable USE POP_Types, ONLY: POP_TYPE USE POPMODULE, ONLY: POPStep USE TypeDef, ONLY: i4b, dp diff --git a/src/offline/cable_parameters.F90 b/src/offline/cable_parameters.F90 index 44ebc6b9d..563580117 100644 --- a/src/offline/cable_parameters.F90 +++ b/src/offline/cable_parameters.F90 @@ -35,7 +35,6 @@ ! casadimension ! casaparm ! cable_IO_vars_module -! phenvariable ! physical_constants ! netcdf @@ -56,7 +55,6 @@ MODULE cable_param_module USE cable_def_types_mod USE casadimension, ONLY: icycle USE casavariable - USE phenvariable USE cable_abort_module USE cable_IO_vars_module USE cable_common_module, ONLY: cable_user, gw_params diff --git a/src/offline/cable_serial.F90 b/src/offline/cable_serial.F90 index 2faec5942..906d6643e 100644 --- a/src/offline/cable_serial.F90 +++ b/src/offline/cable_serial.F90 @@ -119,9 +119,7 @@ MODULE cable_serial ! modules related to CASA-CNP USE casadimension, ONLY: icycle USE casavariable, ONLY: casafile, casa_biome, casa_pool, casa_flux, & - !mpidiff - casa_met, casa_balance, zero_sum_casa, update_sum_casa - USE phenvariable, ONLY: phen_variable + casa_met, casa_balance, zero_sum_casa, update_sum_casa, phen_variable ! vh_js ! ! modules related to POP diff --git a/src/offline/casa_cable.F90 b/src/offline/casa_cable.F90 index b85c0ea1c..c03daee72 100644 --- a/src/offline/casa_cable.F90 +++ b/src/offline/casa_cable.F90 @@ -34,7 +34,6 @@ SUBROUTINE POPdriver(casaflux,casabal,veg, POP) USE casadimension USE casaparm USE casavariable - USE phenvariable USE cable_common_module, ONLY: CurYear, CABLE_USER USE TypeDef, ONLY: i4b, dp USE POPMODULE, ONLY: POPStep @@ -91,8 +90,7 @@ SUBROUTINE read_casa_dump( ncfile, casamet, casaflux,phen, climate, ncall, kend USE netcdf USE cable_def_types_mod, ONLY : r_2,ms,mp, climate_type USE casadimension, ONLY : mplant,mdyear - USE casavariable, ONLY : casa_met, casa_flux - USE phenvariable + USE casavariable, ONLY : casa_met, casa_flux, phen_variable USE cable_common_module, ONLY: CABLE_USER USE casa_ncdf_module, ONLY : get_var_ncr2, & get_var_ncr3, stderr_nc @@ -261,9 +259,8 @@ SUBROUTINE write_casa_dump( ncfile, casamet, casaflux, phen, climate, n_call, ke USE casa_ncdf_module, ONLY : def_dims, def_vars, def_var_atts, & put_var_ncr1, put_var_ncr2, & put_var_ncr3, stderr_nc - USE casavariable, ONLY : CASA_MET, CASA_FLUX + USE casavariable, ONLY : CASA_MET, CASA_FLUX, phen_variable USE casadimension, ONLY : mplant - USE phenvariable USE cable_common_module, ONLY: CABLE_USER IMPLICIT NONE @@ -640,7 +637,6 @@ SUBROUTINE analyticpool(kend,veg,soil,casabiome,casapool, USE casadimension USE casaparm USE casavariable - USE phenvariable IMPLICIT NONE INTEGER, INTENT(IN) :: kend TYPE (veg_parameter_type), INTENT(INOUT) :: veg ! vegetation parameters diff --git a/src/offline/spincasacnp.F90 b/src/offline/spincasacnp.F90 index 5711a5549..de7f6335d 100755 --- a/src/offline/spincasacnp.F90 +++ b/src/offline/spincasacnp.F90 @@ -10,7 +10,6 @@ SUBROUTINE spincasacnp( dels,kstart,kend,mloop,veg,soil,casabiome,casapool, & USE casa_cable !jhan:also put this in mod USE casa_inout_module USE casavariable - USE phenvariable USE POP_Types, ONLY: POP_TYPE USE POPMODULE, ONLY: POPStep USE TypeDef, ONLY: i4b, dp diff --git a/src/science/casa-cnp/bgcdriver.F90 b/src/science/casa-cnp/bgcdriver.F90 index 34cc6ddae..92853ef6d 100644 --- a/src/science/casa-cnp/bgcdriver.F90 +++ b/src/science/casa-cnp/bgcdriver.F90 @@ -14,7 +14,6 @@ SUBROUTINE bgcdriver(ktau,kstart,kend,dels,met,ssnow,canopy,veg,soil, & USE casadimension USE casaparm USE casavariable - USE phenvariable USE cable_common_module, ONLY: CurYear, CABLE_USER USE TypeDef, ONLY: i4b, dp # ifndef UM_CBL diff --git a/src/science/casa-cnp/casa_cnp.F90 b/src/science/casa-cnp/casa_cnp.F90 index 981d291ca..b78f831ab 100644 --- a/src/science/casa-cnp/casa_cnp.F90 +++ b/src/science/casa-cnp/casa_cnp.F90 @@ -54,7 +54,6 @@ MODULE casa_cnp_module USE casadimension USE casaparm USE casavariable - USE phenvariable USE cable_common_module, ONLY: cable_user,l_landuse ! Custom soil respiration: Ticket #42 USE landuse_constant IMPLICIT NONE diff --git a/src/science/casa-cnp/casa_inout.F90 b/src/science/casa-cnp/casa_inout.F90 index 46f68959b..8f62d161f 100644 --- a/src/science/casa-cnp/casa_inout.F90 +++ b/src/science/casa-cnp/casa_inout.F90 @@ -44,7 +44,6 @@ SUBROUTINE casa_readphen(veg,casamet,phen) USE casadimension USE casaparm USE casavariable - USE phenvariable IMPLICIT NONE ! INTEGER, INTENT(IN) :: mvt TYPE (veg_parameter_type), INTENT(IN) :: veg ! vegetation parameters @@ -131,7 +130,6 @@ SUBROUTINE casa_init(casabiome,casamet,casaflux,casapool,casabal,veg,phen) USE casadimension USE casaparm USE casavariable - USE phenvariable ! for first time reading file *_1220.csv (BP may2010) USE cable_def_types_mod USE cable_io_vars_module, ONLY: landpt, patch @@ -447,7 +445,6 @@ SUBROUTINE casa_poolout(ktau,veg,soil,casabiome,casapool,casaflux,casamet, & USE casadimension USE casaparm USE casavariable - USE phenvariable USE cable_common_module, ONLY: cable_user IMPLICIT NONE INTEGER, INTENT(IN) :: ktau @@ -608,7 +605,6 @@ SUBROUTINE casa_fluxout(myear,veg,soil,casabal,casamet) USE casadimension USE casaparm USE casavariable - USE phenvariable ! USE casaDeclare IMPLICIT NONE TYPE (veg_parameter_type), INTENT(INOUT) :: veg ! vegetation parameters diff --git a/src/science/casa-cnp/casa_readbiome.F90 b/src/science/casa-cnp/casa_readbiome.F90 index fc9c88355..7104337cb 100644 --- a/src/science/casa-cnp/casa_readbiome.F90 +++ b/src/science/casa-cnp/casa_readbiome.F90 @@ -35,13 +35,8 @@ SUBROUTINE casa_readbiome(veg,soil,casabiome,casapool,casaflux,casamet,phen) USE cable_def_types_mod USE casadimension USE casaparm -USE casavariable, ONLY : casafile -USE casavariable, ONLY : casa_biome -USE casavariable, ONLY : casa_pool -USE casavariable, ONLY : casa_flux -USE casavariable, ONLY : casa_met - - USE phenvariable + USE casavariable, ONLY : casafile, casa_biome, casa_pool, casa_flux,& + casa_met, phen_variable !! vh_js !! USE cable_common_module, ONLY: cable_user IMPLICIT NONE diff --git a/src/science/casa-cnp/casa_rplant.F90 b/src/science/casa-cnp/casa_rplant.F90 index 6e902dc79..ae9c20c83 100644 --- a/src/science/casa-cnp/casa_rplant.F90 +++ b/src/science/casa-cnp/casa_rplant.F90 @@ -42,7 +42,6 @@ MODULE casa_rplant_module USE casadimension USE casaparm USE casavariable - USE phenvariable USE cable_common_module, ONLY: cable_user,l_landuse ! Custom soil respiration: Ticket #42 #ifndef UM_CBL USE landuse_constant diff --git a/src/science/casa-cnp/casa_variable.F90 b/src/science/casa-cnp/casa_variable.F90 index 2937f2f93..fbf4f15a5 100644 --- a/src/science/casa-cnp/casa_variable.F90 +++ b/src/science/casa-cnp/casa_variable.F90 @@ -264,13 +264,19 @@ MODULE casavariable REAL(r_2), DIMENSION(:),POINTER :: clabilelast END TYPE casa_balance - ! The following declarations are removed and have to be passed using - ! parameter list for each subroutine (BP apr2010) - ! TYPE (casa_biome) :: casabiome - ! TYPE (casa_pool) :: casapool - ! TYPE (casa_flux) :: casaflux - ! TYPE (casa_met) :: casamet - ! TYPE (casa_balance) :: casabal + TYPE phen_variable + INTEGER, DIMENSION(:), POINTER :: phase + REAL(r_2), DIMENSION(:), POINTER :: TKshed + INTEGER, DIMENSION(:,:),POINTER :: doyphase + REAL, DIMENSION(:), POINTER :: phen ! fraction of max LAI + REAL, DIMENSION(:), POINTER :: aphen ! annual leaf on sum + INTEGER, DIMENSION(:,:),POINTER :: phasespin + INTEGER, DIMENSION(:,:),POINTER :: doyphasespin_1 + INTEGER, DIMENSION(:,:),POINTER :: doyphasespin_2 + INTEGER, DIMENSION(:,:),POINTER :: doyphasespin_3 + INTEGER, DIMENSION(:,:),POINTER :: doyphasespin_4 + + END TYPE phen_variable ! Added filename type for casaCNP (BP apr2010) TYPE casafiles_type @@ -606,6 +612,27 @@ SUBROUTINE alloc_casavariable(casabiome,casapool,casaflux, & SOURCE=0.0_r_2) END SUBROUTINE alloc_casavariable + SUBROUTINE alloc_phenvariable(phen,arraysize) + !* Allocate phen derived type instance. + ! Allocated arrays are initialised to zero. + + TYPE(phen_variable), INTENT(INOUT) :: phen + INTEGER, INTENT(IN ) :: arraysize + + ALLOCATE(phen%Tkshed(mvtype), source=0.0_r_2) + ALLOCATE(phen%phen(arraysize), phen%aphen(arraysize), source=0.0) + ALLOCATE( & + phen%phase(arraysize), & + phen%doyphase(arraysize,mphase), & + phen%phasespin(arraysize,mdyear), & + phen%doyphasespin_1(arraysize,mdyear), & + phen%doyphasespin_2(arraysize,mdyear), & + phen%doyphasespin_3(arraysize,mdyear), & + phen%doyphasespin_4(arraysize,mdyear), & + source=0 & + ) + END SUBROUTINE alloc_phenvariable + SUBROUTINE alloc_sum_casavariable( sum_casapool, sum_casaflux & ,arraysize) diff --git a/src/science/landuse/landuse3.F90 b/src/science/landuse/landuse3.F90 index faccd6a58..0169fad9c 100644 --- a/src/science/landuse/landuse3.F90 +++ b/src/science/landuse/landuse3.F90 @@ -741,8 +741,8 @@ subroutine landuse_driver(mlon,mlat,landmask,arealand,ssnow,soil,veg,bal,canopy, soil_parameter_type, soil_snow_type, veg_parameter_type, & balances_type, canopy_type, bgc_pool_type, radiation_type USE casadimension, ONLY: icycle,mplant,mlitter,msoil,mwood,mso - USE casavariable, ONLY: casa_pool,casa_balance,casa_met,casa_biome,casa_flux - USE phenvariable, ONLY: phen_variable + USE casavariable, ONLY: casa_pool,casa_balance,casa_met,casa_biome,casa_flux,& + phen_variable USE landuse_variable IMPLICIT NONE TYPE (soil_snow_type) :: ssnow ! soil and snow variables diff --git a/src/shared/cable_phenology.F90 b/src/shared/cable_phenology.F90 index 8c93fddd3..30728ea35 100644 --- a/src/shared/cable_phenology.F90 +++ b/src/shared/cable_phenology.F90 @@ -42,7 +42,6 @@ SUBROUTINE cable_phenology_clim (veg, climate, phen) USE casadimension USE casaparm USE casavariable - USE phenvariable !data USE cable_surface_types_mod, ONLY: evergreen_needleleaf, deciduous_needleleaf USE cable_surface_types_mod, ONLY: evergreen_broadleaf, deciduous_broadleaf diff --git a/src/shared/casa_offline_inout.F90 b/src/shared/casa_offline_inout.F90 index 12e0af45e..33762b3d5 100644 --- a/src/shared/casa_offline_inout.F90 +++ b/src/shared/casa_offline_inout.F90 @@ -34,18 +34,19 @@ MODULE casa_offline_inout_module USE casavariable, ONLY : casafile +use casadimension, only: r_2 CONTAINS #ifndef UM_BUILD SUBROUTINE WRITE_CASA_RESTART_NC ( casamet, casapool, casaflux, phen, CASAONLY ) - USE casavariable, ONLY : casa_met, casa_pool, casa_flux, icycle, mplant, mlitter, msoil + USE casavariable, ONLY : casa_met, casa_pool, casa_flux, phen_variable,& + icycle, mplant, mlitter, msoil USE cable_common_module USE casa_ncdf_module, ONLY: HANDLE_ERR USE cable_def_types_mod, ONLY: met_type, mp - USE phenvariable USE netcdf IMPLICIT NONE @@ -261,7 +262,6 @@ END SUBROUTINE WRITE_CASA_RESTART_NC SUBROUTINE READ_CASA_RESTART_NC ( casamet, casapool, casaflux,phen ) USE CASAVARIABLE - USE phenvariable USE CABLE_COMMON_MODULE USE casa_ncdf_module, ONLY: HANDLE_ERR USE CABLE_DEF_TYPES_MOD, ONLY: MET_TYPE, r_2, mp