diff --git a/.gitmodules b/.gitmodules index 1a8b888415..9fd45f8931 100644 --- a/.gitmodules +++ b/.gitmodules @@ -71,7 +71,7 @@ url = https://github.com/ekluzek/ccs_config_cesm.git #url = https://github.com/ESMCI/ccs_config_cesm.git #fxtag = ccs_config_cesm1.0.79 #branch = nvidia-hackathon-26 -fxtag = 5cb53b38ed26c896747ce22596f0b7e6186b58f0 +fxtag = e8acd6f93abd80ff8868e563576437ec647afa1e fxrequired = ToplevelRequired # Standard Fork to compare to with "git fleximod test" to ensure personal forks aren't committed fxDONOTUSEurl = https://github.com/ESMCI/ccs_config_cesm.git diff --git a/ccs_config b/ccs_config index 5cb53b38ed..e8acd6f93a 160000 --- a/ccs_config +++ b/ccs_config @@ -1 +1 @@ -Subproject commit 5cb53b38ed26c896747ce22596f0b7e6186b58f0 +Subproject commit e8acd6f93abd80ff8868e563576437ec647afa1e diff --git a/src/main/CMakeLists.txt b/src/main/CMakeLists.txt index fc324efeb9..e828f2a710 100644 --- a/src/main/CMakeLists.txt +++ b/src/main/CMakeLists.txt @@ -20,6 +20,7 @@ list(APPEND clm_sources column_varcon.F90 decompMod.F90 filterColMod.F90 + FilterDataBaseType.F90 FireMethodType.F90 glc2lndMod.F90 glcBehaviorMod.F90 diff --git a/src/main/FilterDataBaseType.F90 b/src/main/FilterDataBaseType.F90 new file mode 100644 index 0000000000..68405ae637 --- /dev/null +++ b/src/main/FilterDataBaseType.F90 @@ -0,0 +1,57 @@ +module FilterDataBaseType + implicit none + private + public :: filtered_data_base_type +type , abstract :: filtered_data_base_type + private + integer, private :: num_filter + Integer, pointer, private :: filter(:) +contains + procedure , public :: InitDataBase + procedure(InitData_interface) , public, deferred :: InitData + procedure , public :: ReInitDataBase + procedure(ReInitData_interface) , public, deferred :: ReInitData + procedure , public :: ValidateFiltersMatch + procedure(CompressData_interface) , public, deferred :: CompressData + procedure(DecompressData_interface) , public, deferred :: DecompressData +end type filtered_data_base_type + + abstract interface + + subroutine InitData_interface(this) + import :: filtered_data_base_type + class(filtered_data_base_type), intent(inout) :: this + end subroutine InitData_interface + + subroutine ReInitData_interface(this) + import :: filtered_data_base_type + class(filtered_data_base_type), intent(inout) :: this + end subroutine ReInitData_interface + + subroutine CompressData_interface(this) + import :: filtered_data_base_type + class(filtered_data_base_type), intent(inout) :: this + end subroutine CompressData_interface + + subroutine DecompressData_interface(this) + import :: filtered_data_base_type + class(filtered_data_base_type), intent(inout) :: this + end subroutine DecompressData_interface + + end interface + +contains + + subroutine ValidateFiltersMatch(this) + class(filtered_data_base_type), intent(in) :: this + end subroutine ValidateFiltersMatch + + subroutine InitDataBase(this) + class(filtered_data_base_type), intent(in) :: this + end subroutine InitDataBase + + subroutine ReInitDataBase(this) + class(filtered_data_base_type), intent(in) :: this + end subroutine ReInitDataBase + +end module FilterDataBaseType